/* ==========================================================================
   Kovis — Advanced solutions (trade-fair kiosk)
   Design canvas: 3840 x 2160, scaled to the viewport by script.js.
   Every length below is a Figma value at 1:1; do not "responsive-ify" them.
   ========================================================================== */

:root {
  /* Figma styles */
  --siva:        #d7dbdf;   /* Kovis/Color/Siva  */
  --blue-2:      #8ddffb;   /* Kovis/Color/Blue 2 */

  /* Raw values from the frames */
  --bg:          #00121b;
  --white:       #ffffff;
  --cyan-glass:  rgba(10, 188, 249, 0.2);
  --blue-glow:   rgba(31, 90, 251, 0.4);
  --blue-drop:   #1f5afb;
  --btn-ring:    rgba(0, 117, 181, 0.66);
  --line:        #96dcff;
  --yellow:      #ffde2f;

  --font-display: 'Space Grotesk', system-ui, sans-serif;
  --font-ui:      'Poppins', system-ui, sans-serif;
}

* { box-sizing: border-box; }

/* Author styles set display on several of these, so hidden needs the weight. */
[hidden] { display: none !important; }

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #000;
  color: var(--white);
  font-family: var(--font-display);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  cursor: default;
}

a { text-decoration: none; color: inherit; cursor: pointer; }
img { display: block; max-width: none; }
h1, p { margin: 0; }

/* -------------------------------------------------------------------------- */
/* Stage / scaled canvas                                                      */
/* -------------------------------------------------------------------------- */

.stage {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
}

.canvas {
  position: relative;
  width: 3840px;
  height: 2160px;
  overflow: hidden;
  background: var(--bg);
  transform-origin: center center;
  transform: scale(var(--scale, 1));   /* --scale set by script.js */
  flex: none;
}

/* -------------------------------------------------------------------------- */
/* Screens                                                                    */
/* -------------------------------------------------------------------------- */

.screen { position: absolute; inset: 0; display: none; z-index: 0; }
.screen.is-active { display: block; z-index: 1; }

/* -------------------------------------------------------------------------- */
/* Shared chrome                                                              */
/* -------------------------------------------------------------------------- */

/* BCKG instance — 3838 x 2160 with the source image over-cropped, then a
   30% black scrim. The 126.32% / -2.42% pair is Figma's crop, kept literal. */
.bckg { position: absolute; left: 0; top: 0; width: 3838px; height: 2160px; }
.bckg__crop { position: absolute; inset: 0; overflow: hidden; }
.bckg__img  { position: absolute; left: 0; top: -2.42%; width: 100%; height: 126.32%; }
.bckg__scrim { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.3); }

/* Button / Big — used for the two primary home actions */
.btn-big {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 61.034px;
  flex: none;
  width: 1200px;
  height: 480px;
  padding: 120px;
  overflow: hidden;
  border-radius: 1000px;
  background: var(--cyan-glass);
  box-shadow: 200px 200px 200px 0 var(--blue-glow);
}
.btn-big__label {
  font-size: 40px;
  line-height: 97.654px;
  letter-spacing: 6.1034px;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  color: var(--white);
}
.btn-big__circle {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 160px;
  height: 160px;
  overflow: hidden;
  border: 2px solid var(--btn-ring);
  border-radius: 97.654px;
  color: var(--yellow);
  /* background: var(--white); */
  border: 2px solid var(--yellow);
  /* box-shadow: 0 20px 40px 0 var(--blue-drop); */
}
.btn-big__icon { width: 48px; height: 48px; }

/* Button / Medium — outlined pill, Poppins per the Figma component */
.btn-medium {
  position: absolute;
  left: calc(50% + 1492.5px);
  top: 60px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 661px;
  padding: 40px 120px 40px 80px;
  overflow: hidden;
  border: 2px solid var(--blue-2);
  border-radius: 97.654px;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 32px;
  line-height: 97.654px;
  letter-spacing: 6.1034px;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  color: var(--blue-2);
}

/* -------------------------------------------------------------------------- */
/* Home — Figma 3425-19822                                                    */
/* -------------------------------------------------------------------------- */

.home-logo { position: absolute; left: 100px; top: 97px; }
.home-logo img { width: 483px; height: 136.931px; }

.home-main {
  position: absolute;
  left: 620px;
  top: 0;
  width: 2600px;
  height: 1836px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 180px;
}

.home-heading {
  display: flex;
  flex-direction: column;
  gap: 80px;
  width: 1920px;
  text-align: center;
  color: var(--white);
  word-break: break-word;
}
.home-title    { font-weight: 500; font-size: 160px; line-height: 140px; letter-spacing: -8px; }
.home-subtitle { font-weight: 400; font-size: 48px;  line-height: 60px;  letter-spacing: -1px; }

.home-actions { display: flex; align-items: center; gap: 200px; width: 100%; }

/* Facts strip */
.facts {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 20px;
  padding-bottom: 160px;
}
.fact {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: none;
  width: 400px;
  height: 164px;
}
.fact__number {
  height: 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-weight: 500;
  letter-spacing: -4px;
  text-align: center;
  color: var(--white);
  word-break: break-word;
}
.fact__number p { margin: 0; }
.fact__number--lg { font-size: 80px; line-height: 140px; }
.fact__number--sm { font-size: 48px; line-height: 140px; }
/* Fact 4 ("100+ million EUR") is set on an 80px leading in Figma, not 140px. */
.fact__number--tight .fact__number--lg,
.fact__number--tight .fact__number--sm { line-height: 80px; }
.fact__label {
  height: 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  font-weight: 400;
  font-size: 28px;
  line-height: 32px;
  letter-spacing: 2.8px;
  text-align: center;
  color: var(--siva);
  word-break: break-word;
}
.fact__label p { margin: 0; }
/* Divider is a zero-width layer in Figma; the 1px line overhangs to the left. */
.fact-divider { position: relative; flex: none; width: 2px; height: 164px; background-color: var(--line); }
.fact-divider img { display: none;; position: absolute; top: 0; right: -1px; width: 1px; height: 164px; }

/* -------------------------------------------------------------------------- */
/* Screensaver — Figma 3280-8517                                              */
/* -------------------------------------------------------------------------- */

.screensaver {
  position: absolute;
  inset: 0;
  z-index: 9999;
  background: var(--bg);
  opacity: 0;
  transition: opacity 600ms ease;
  pointer-events: none;
}
.screensaver.is-visible { opacity: 1; pointer-events: auto; }
.screensaver[hidden] { display: none; }

.screensaver__bg {
  position: absolute;
  inset: 0;
  width: 3838px;
  height: 2160px;
  object-fit: cover;
}

.screensaver__headline,
.screensaver__cta {
  position: absolute;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transform: translate(-50%, -50%);
  text-align: center;
  color: var(--white);
  word-break: break-word;
}
/* Brand is now a logo lockup image (Figma 4138:9519), not text */
.screensaver__logo     { position: absolute; left: 50%; top: 566px; width: 640px; height: 181.44px; transform: translateX(-50%); }
.screensaver__headline { left: 1919.5px; top: 1150px; width: 2235px; font-weight: 500; font-size: 220px; line-height: 200px; letter-spacing: -11px; }
.screensaver__cta      { left: 1920px;   top: 1583px; width: 1440px; font-weight: 400; font-size: 48px;  line-height: 60px;  letter-spacing: -1px; }

/* ==========================================================================
   SHARED CHROME
   The instances every content frame reuses: BCKG, leftTop_logo, Content,
   leftBottom_navigation, back_forward. Positions are Figma values.
   ========================================================================== */

/* BCKG variant "Video BCKG Blurry" — a 30px-blurred still behind the content */
.bckg--blur .bckg__img { filter: blur(30px); width: 100%; height: 100%; top: 0; object-fit: cover; }

/* leftTop_logo (3189:8632) — 0,0 with 100px padding */
.chrome-logo { position: absolute; left: 0; top: 0; padding: 100px; }
.chrome-logo img { width: 483px; height: 136.931px; }

/* leftBottom_navigation (3189:9189) — bottom-left, 80px padding */
.nav-back { position: absolute; left: 0; bottom: 0; padding: 80px; }

/* Button / Medium, yellow outline — BACK / HOME / BACK TO MAP */
.btn-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 61.034px;
  height: 178px;
  padding: 40px 120px 40px 80px;
  overflow: hidden;
  border: 2px solid var(--yellow);
  border-radius: 97.654px;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 32px;
  line-height: 97.654px;
  letter-spacing: 6.1034px;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  color: var(--yellow);
}
.btn-pill img { width: 48px; height: 48px; flex: none; }

/* back_forward (3189:9281) — 3164,1822; two 178px circles, each in 80px padding */
.nav-steps { position: absolute; left: 3164px; top: 1822px; display: flex; align-items: center; }
.nav-steps__slot { padding: 80px; }
.btn-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 178px;
  height: 178px;
  padding: 40px;
  overflow: hidden;
  border: 2px solid var(--yellow);
  border-radius: 97.654px;
}
.btn-circle img { width: 48px; height: 48px; }
.btn-circle.is-disabled { opacity: 0.3; }

/* Content (3189:9854) — the right-hand column, 1920 wide, vertically centred */
.content-panel {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1920px;
  padding-left: 20px;
  padding-right: 200px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.content-panel__inner { display: flex; flex-direction: column; gap: 80px; width: 100%; }
.content-panel__head  { display: flex; flex-direction: column; gap: 20px; width: 100%; word-break: break-word; }

.eyebrow {
  font-weight: 400;
  font-size: 30px;
  line-height: 60px;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: var(--line);
}
.panel-title { font-weight: 500; font-size: 120px; line-height: 140px; letter-spacing: -6px; color: var(--white); }
.panel-body  { width: 1440px; font-weight: 400; font-size: 44px; line-height: 60px; letter-spacing: -1px; color: var(--white); word-break: break-word; }
.panel-body p { margin: 0; }
.panel-body strong { font-weight: 700; }

/* Facts inside the content panel — same parts as home's strip, ice-blue numbers */
.panel-facts { display: flex; align-items: center; gap: 20px; width: 100%; }
.panel-facts .fact { flex: 1 0 0; min-width: 1px; width: auto; }
.panel-facts .fact__number { color: var(--line); }
.panel-facts .fact--hidden { flex: none; width: 400px; opacity: 0; }

/* Button / Industry — the left-hand menu pills (3183:2615) */
.menu-list {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1200px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.menu-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
  height: 140px;
  width: 100%;
  padding: 40px 60px 40px 120px;
  overflow: hidden;
  border: 2px solid rgba(185, 209, 219, 0.2);
  border-radius: 0 1000px 1000px 0;
  background-image:
    linear-gradient(90deg, rgba(215, 219, 223, 0.8) 9.4167%, rgba(0, 117, 181, 0) 100%),
    linear-gradient(90deg, rgba(185, 209, 219, 0.2) 0%, rgba(185, 209, 219, 0.2) 100%);
}
.menu-pill__label {
  flex: 1 0 0;
  min-width: 1px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  font-weight: 400;
  font-size: 40px;
  line-height: 60px;
  letter-spacing: 6.1034px;
  text-transform: uppercase;
  /* Figma centres the text inside a shrink-wrapped box pinned to the start of
     the pill, which renders left-aligned in the full-width pill. */
  text-align: left;
  white-space: nowrap;
  color: var(--white);
}
.btn-circle img.is-flipped { transform: rotate(180deg); }

/* Selected row in a selector list (3900-22518 "SERVICE VEHICLES" pill) */
.menu-pill.is-active {
  border-color: var(--blue-2);
  background-image: none;
  background-color: var(--blue-2);
}
.menu-pill.is-active .menu-pill__label { color: #000; }

/* Button / Products — gearbox-housings / motor-units selector rows, updated
   2026-09-10: taller (160px vs 140px), roomier padding, a leading vehicle
   icon, and a slightly bluer border than the plain .menu-pill (3900-22518,
   3900-22828 and siblings). Reuses .menu-pill/.menu-pill__label/.is-active
   for shape, color and the active state — only the additions below. */
.menu-pill--products {
  height: 160px;
  gap: 20px;
  padding: 80px 120px;
  border-color: rgba(150, 220, 255, 0.2);
}
.menu-pill--products.is-active { border-color: var(--blue-2); }
.menu-pill__products-icon { flex: none; width: 120px; height: 120px; object-fit: contain; pointer-events: none; }

/* --------------------------------------------------------------------------
   Carrousel — the left-hand media card with an action pill (3246:6898)
   -------------------------------------------------------------------------- */

.carousel {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1920px;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 52px;
}
.carousel__frame { display: flex; align-items: center; justify-content: center; width: 100%; }
.carousel__media {
  position: relative;
  flex: none;
  width: 1200px;
  height: 800px;
  border-radius: 60px;
  box-shadow: -40px 40px 80px 0 rgba(0, 0, 0, 0.2);
}
.carousel__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 60px; }
.carousel__media::after { content: ""; position: absolute; inset: 0; border-radius: 60px; background: rgba(10, 188, 249, 0.1); }

/* Button / Small — PLAY VIDEO, EXPAND IMAGE, OPEN GALLERY */
.btn-small {
  position: absolute;
  left: 750px;
  top: 840px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 61.034px;
  padding: 20px 20px 20px 60px;
  overflow: hidden;
  border: 2px solid var(--blue-2);
  border-radius: 1000px;
}
.btn-small__label {
  font-weight: 400;
  font-size: 32px;
  line-height: 32px;
  letter-spacing: 3.2px;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  color: var(--blue-2);
}
.btn-small__circle {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 80px;
  height: 80px;
  overflow: hidden;
  border-radius: 97.654px;
  background: var(--blue-2);
}
.btn-small__circle img { width: 32px; height: 32px; }

/* --------------------------------------------------------------------------
   Overlay with media (3223:24686) — fullscreen media over a dimmed screen
   -------------------------------------------------------------------------- */

.media-overlay {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3840px;
  height: 2160px;
  z-index: 50;
  display: flex;
  gap: 80px;
  align-items: flex-start;
  justify-content: center;
  padding: 80px;
  background: rgba(0, 0, 0, 0.8);
}
.media-overlay[hidden] { display: none; }
.media-overlay__slot { flex: 1 0 0; min-width: 1px; display: flex; align-items: center; justify-content: center; }
.media-overlay__stack { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 40px; }
.media-overlay__media {
  position: relative;
  flex: none;
  width: 2700px;
  height: 1800px;
  border-radius: 60px;
  box-shadow: -80px 80px 160px 0 rgba(0, 0, 0, 0.2);
}
.media-overlay__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 60px; }
.media-overlay__media::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 60px;
  background-image:
    linear-gradient(90deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 100%),
    linear-gradient(90deg, rgba(10, 188, 249, 0.1) 0%, rgba(10, 188, 249, 0.1) 100%);
}
.media-overlay__play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 178px;
  height: 178px;
  padding: 40px;
  overflow: hidden;
  border: 2px solid var(--blue-2);
  border-radius: 97.654px;
  background: var(--blue-2);
}
.media-overlay__play img { width: 48px; height: 48px; }

/* --------------------------------------------------------------------------
   Explore companies — world map with company pills (3183:3061)
   -------------------------------------------------------------------------- */

.world-map { position: absolute; left: -199px; top: 612.46px; width: 2026px; height: 1140.638px; }
.world-map img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.75;
  mix-blend-mode: screen;
  pointer-events: none;
}

.map-pill-row { position: absolute; display: flex; align-items: center; gap: 40px; transform: translateX(-50%); }
.map-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 32px 80px 32px 60px;
  overflow: hidden;
  border: 2px solid var(--blue-2);
  border-radius: 97.654px;
}
.map-pill--free { position: absolute; }
.map-pill img { width: 48px; height: 48px; flex: none; }
.map-pill__label {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 24px;
  line-height: 24px;
  letter-spacing: 6.1034px;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  color: var(--blue-2);
}

/* Leader lines. Figma draws the verticals as a 410/571px horizontal rule
   rotated -90deg inside a zero-width box, so it is reproduced that way. */
.map-line { position: absolute; width: 2px; display: flex; align-items: center; justify-content: center; background-color: var(--white); }
.map-line > div { flex: none; transform: rotate(-90deg); }
.map-line img { display: none; }
.map-dot { position: absolute; width: 12px; height: 12px; }
.map-leader { position: absolute; width: 12px; }
/* The map screen's panel is nudged half a pixel in Figma (top: calc(50% + 0.5px)). */
.content-panel--map { top: calc(50% + 0.5px); }

/* --------------------------------------------------------------------------
   Company detail — one template, six data rows (3183:7405 and siblings)
   -------------------------------------------------------------------------- */

/* BCKG photo variant: photo, 70% black, then the shared texture at 33% */
.bckg--photo .bckg__img { width: 100%; height: 100%; top: 0; object-fit: cover; }
.bckg__tex {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.33;
}
.bckg--photo .bckg__scrim { background: rgba(0, 0, 0, 0.7); }

.company-location {
  font-weight: 400;
  font-size: 30px;
  line-height: 60px;
  letter-spacing: 6px;
  color: var(--line);
}

/* The company body is set bold, with individual paragraphs dropped to regular. */
.panel-body--bold { font-weight: 700; }
.panel-body--bold .rg { font-weight: 400; }
.panel-body ul { list-style: disc; margin: 0; padding: 0; }
.panel-body li { margin-inline-start: 66px; margin-bottom: 20px; }
.panel-body li .rg { font-weight: 400; }

/* Kovis d.o.o. is the one frame whose Content sits 140px lower and 8px in. */
.content-panel--nudged { right: 8px; top: calc(50% + 140px); }

.btn-small--expand { left: 721px; }

/* --------------------------------------------------------------------------
   Complete integrated solution — accordion (3183:3356)
   -------------------------------------------------------------------------- */

.split-right { position: absolute; left: 1918px; top: 50%; transform: translateY(-50%); width: 1922px; display: flex; flex-direction: column; gap: 80px; }
.split-right .content-panel { position: static; transform: none; width: 100%; }
.split-block { display: flex; flex-direction: column; align-items: center; padding-left: 20px; padding-right: 200px; width: 100%; }

.accordion { display: flex; flex-direction: column; gap: 24px; width: 100%; }
.accordion__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
  padding: 24px 40px;
  overflow: hidden;
  border-radius: 64px;
  background: rgba(255, 255, 255, 0.3);
  text-align: left;
}
.accordion__row.is-open { background: rgba(0, 117, 181, 0.5); }
.accordion__main { flex: 1 0 0; min-width: 1px; display: flex; align-items: flex-start; gap: 40px; }
.accordion__icon { display: flex; align-items: center; justify-content: center; flex: none; width: 80px; height: 80px; }
.accordion__icon img { width: 64px; height: 64px; }
.accordion__text { flex: 1 0 0; min-width: 1px; display: flex; flex-direction: column; gap: 32px; color: var(--white); }
.accordion__title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 80px;
  width: 100%;
  font-weight: 700;
  font-size: 48px;
  line-height: 60px;
  letter-spacing: -2.4px;
  text-transform: uppercase;
  text-align: left;
  word-break: break-word;
}
.accordion__body { font-weight: 400; font-size: 44px; line-height: 60px; letter-spacing: 6.1034px; width: 100%; }
.accordion__row:not(.is-open) .accordion__body { display: none; }
.accordion__toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; height: 80px; }
.accordion__toggle img { width: 48px; height: 48px; }
.accordion__row:not(.is-open) .accordion__toggle .ico-remove,
.accordion__row.is-open      .accordion__toggle .ico-add { display: none; }

.integrated-hero { position: absolute; left: 345px; top: 50%; transform: translateY(-50%); width: 1270px; height: 1270px; }
.integrated-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }

/* --------------------------------------------------------------------------
   Sustainability — icon grid (3183:6814)
   -------------------------------------------------------------------------- */

.eco-grid {
  position: absolute;
  left: 337px;
  top: calc(50% - 0.39px);
  transform: translateY(-50%);
  width: 1270px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  gap: 64px;
}
.eco-grid__item { position: relative; flex: none; width: 380.605px; height: 380.605px; overflow: hidden; }
.eco-grid__item img { position: absolute; display: block; }
/* Figma insets: icon 01 is cropped differently from 02-06. */
.eco-grid__item--01 img { inset: 13.75% 4.97% 14.8% 4.96%; width: auto; height: auto; }
.eco-grid__item--std img { inset: 2.5% 2.6% 1.82% 1.87%; width: auto; height: auto; }

/* A fact whose "number" slot holds words rather than a figure. */
.fact__number--words { font-size: 48px; letter-spacing: -2.4px; }

/* --------------------------------------------------------------------------
   Certificates & permits (3246:8549) and its gallery overlay (3246:9146)
   -------------------------------------------------------------------------- */

/* Stacked-card carousel: a dimmed 600x900 card peeking behind an 800x1200 one */
.carousel--cards { left: 20px; }
.cert-cards { display: flex; align-items: center; justify-content: center; width: 100%; }
.cert-card {
  position: relative;
  flex: none;
  border-radius: 60px;
}
.cert-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 60px; }
.cert-card--back  { width: 600px;  height: 900px;  margin-right: -520px; }
.cert-card--back::after  { content: ""; position: absolute; inset: 0; border-radius: 60px; background: rgba(0, 0, 0, 0.6); }
.cert-card--front { width: 800px;  height: 1200px; box-shadow: -40px 40px 80px 0 rgba(0, 0, 0, 0.2); }
.cert-card--front::after { content: ""; position: absolute; inset: 0; border-radius: 60px; background: rgba(10, 188, 249, 0.1); }
.btn-small--gallery { left: 761px; top: 1240px; }

/* Gallery overlay */
.cert-gallery {
  position: absolute;
  left: 0;
  top: 0;
  width: 3840px;
  height: 2160px;
  z-index: 50;
  padding: 80px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.8);
}
.cert-gallery[hidden] { display: none; }
.cert-gallery__inner { display: flex; flex-direction: column; align-items: center; gap: 24px; width: 100%; height: 100%; }
.cert-gallery__row { flex: 1 0 0; min-height: 1px; display: flex; align-items: center; justify-content: center; gap: 40px; width: 100%; }
.cert-gallery__main { display: flex; flex-direction: column; align-items: center; gap: 24px; }
.cert-gallery__sheet { position: relative; flex: none; width: 1132px; height: 1600px; border-radius: 60px; box-shadow: -80px 80px 160px 0 rgba(0, 0, 0, 0.2); }
.cert-gallery__sheet img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; border-radius: 60px; }
.cert-gallery__sheet::after { content: ""; position: absolute; inset: 0; border-radius: 60px; background: rgba(10, 188, 249, 0.1); }
.cert-gallery__caption { width: 100%; opacity: 0.75; text-align: center; color: var(--white); letter-spacing: -2px; word-break: break-word; }
.cert-gallery__caption p { margin: 0; font-size: 32px; line-height: 48px; font-weight: 400; }
.cert-gallery__caption p + p { font-weight: 700; }

.cert-gallery__thumbs { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 40px; }
.cert-thumb { position: relative; flex: none; width: 300px; border-radius: 30px; box-shadow: -80px 80px 160px 0 rgba(0, 0, 0, 0.2); }
.cert-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 30px; }
.cert-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 30px;
  background-image:
    linear-gradient(90deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.25) 100%),
    linear-gradient(90deg, rgba(10, 188, 249, 0.1) 0%, rgba(10, 188, 249, 0.1) 100%);
}
.cert-thumb.is-active {
  box-shadow: 0 0 20px 0 var(--line), 0 0 12px 0 var(--line), 0 0 4px 0 var(--line);
}
.cert-thumb.is-active::after { background-image: none; background: rgba(10, 188, 249, 0.1); }

.cert-gallery__pager { display: flex; align-items: center; gap: 80px; }
.btn-circle--cyan { border-color: var(--blue-2); }

/* --------------------------------------------------------------------------
   What makes us different
   -------------------------------------------------------------------------- */

/* Carrousel "Gallery" variant (3189:9385): 900x600 dimmed card behind a
   1200x800 one, with the OPEN GALLERY pill at left 741. */
.cert-card--gallery-back  { width: 900px;  height: 600px; margin-right: -820px; }
.cert-card--gallery-front { width: 1200px; height: 800px; box-shadow: -40px 40px 80px 0 rgba(0, 0, 0, 0.2); }
.btn-small--gallery-mid { left: 741px; top: 840px; }

/* The hub's schematic panel + its "SHEMA Z OZNAKAMI" placeholder caption,
   which Figma fills with the same image clipped into the type. */
.schema-panel {
  position: absolute;
  left: 1874px;
  top: 801px;
  width: 1610.461px;
  height: 1073.641px;
  border-radius: 60px;
  box-shadow: -40px 40px 80px 0 rgba(0, 0, 0, 0.2);
  overflow: hidden;
}
.schema-panel img { position: absolute; left: -2.74%; top: 0; width: 102.69%; height: 93.67%; max-width: none; }
.schema-caption {
  position: absolute;
  left: 2730.3px;
  top: 1349.14px;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 1016.021px;
  height: 475.04px;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 64px;
  line-height: 97.654px;
  letter-spacing: 6.1034px;
  text-transform: uppercase;
  text-align: center;
  color: transparent;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  -webkit-background-clip: text;
  background-clip: text;
  word-break: break-word;
}

/* Button / Small, filled variant — a CTA inside the content panel */
.btn-small--filled {
  position: relative;
  left: auto;
  top: auto;
  border: 0;
  background: var(--blue-2);
}
.btn-small--filled .btn-small__label { color: #000; }
.btn-small--filled .btn-small__circle { background: #000; }
.btn-small--filled .btn-small__circle img { width: 32px; height: 32px; }
.content-panel__cta { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 80px; width: 100%; }

/* "benefits" pages centre a 1920 column on the full canvas */
.content-panel--center { right: 0; width: 3840px; padding-left: 960px; padding-right: 960px; }
.content-panel--center .content-panel__inner { width: 1920px; }

/* A photo BCKG with a lighter scrim and no texture layer */
.bckg--photo-soft .bckg__scrim { background: rgba(0, 0, 0, 0.2); }
.bckg--photo-mid  .bckg__scrim { background: rgba(0, 0, 0, 0.6); }
.bckg--photo-mid  .bckg__tex   { opacity: 0.3; }

/* Carrousel with a single portrait card (800x1200), pill at 1240 */
.carousel__media--portrait { width: 800px; height: 1200px; }
.btn-small--low { top: 1240px; }
.panel-title .rg { font-weight: 400; }

/* Foundry process schematic with its own labels (3229:25410) */
.foundry-schema { position: absolute; left: 0; top: calc(50% - 0.08px); transform: translateY(-50%); width: 1846px; height: 1039.846px; }
.foundry-schema__img { position: absolute; left: 0; top: 0; width: 1846.487px; height: 1039.572px; object-fit: cover; opacity: 0.85; pointer-events: none; }
.foundry-schema__label {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 107.599px;
  font-weight: 700;
  font-size: 23.537px;
  line-height: normal;
  letter-spacing: 5.1306px;
  text-transform: uppercase;
  text-align: center;
  color: var(--blue-2);
  word-break: break-word;
}

/* Carrousel with an arrow pager instead of a pill (3200:11405) */
.carousel--pager { left: 0; padding: 0 320px; gap: 40px; }
.carousel__pager { display: flex; align-items: center; justify-content: center; }
.carousel__pager img { width: 80px; height: 80px; }
.carousel__pager img:first-child { margin-right: -20px; }
.cert-card--plain::after { content: none; }
.bckg--photo-qc .bckg__scrim { background: rgba(0, 0, 0, 0.4); }
.bckg--photo-qc .bckg__tex   { opacity: 0.3; }

/* Quality control — inspection capability cards (3205:17576) */
.spec-grid { display: grid; grid-template-columns: repeat(2, max-content); gap: 80px; }
.spec-card {
  align-self: start;
  width: 810px;
  padding: 24px 32px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  flex-direction: column;
  gap: 16px;
  color: var(--white);
  font-size: 48px;
  line-height: 60px;
  letter-spacing: -1px;
  word-break: break-word;
}
.spec-card__title { font-weight: 700; }
.spec-card__note  { font-weight: 400; }

/* Half-canvas photo panel with a bottom fade (3200:11375) */
.half-photo { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 1920px; height: 2160px; padding-right: 320px; }
.half-photo__inner { position: relative; width: 100%; height: 100%; }
.half-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.half-photo__inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(180deg, rgba(0, 0, 0, 0) 51.111%, rgba(0, 0, 0, 0.5) 87.778%),
    linear-gradient(90deg, rgba(10, 188, 249, 0.1) 0%, rgba(10, 188, 249, 0.1) 100%);
}
.carousel__pager img.is-flipped { transform: rotate(180deg); }
.panel-body ol { list-style: decimal; margin: 0; padding: 0; }

/* Menu pill with a trailing icon (3205:18596) */
.menu-pill--icon { justify-content: space-between; gap: 0; }
.menu-pill__icon { flex: none; width: 48px; height: 48px; }

/* --------------------------------------------------------------------------
   Solutions portfolio
   -------------------------------------------------------------------------- */

/* Background wireframe-train graphic (Rectangle 15/16, 3999:22055 + 4174:11614)
   — identical image on both the hub and "for passenger rail vehicles" screens,
   centred, 75% opacity, sat behind the content. */
.portfolio-bg-train {
  position: absolute;
  left: calc(50% - 260.5px);
  top: 50%;
  transform: translate(-50%, -50%);
  width: 1325px;
  height: 1424px;
  opacity: 0.75;
  overflow: hidden;
  pointer-events: none;
}
.portfolio-bg-train img { position: absolute; left: 0; top: 0.02%; width: 100%; height: 99.96%; max-width: none; }

/* Train photo under the "For passenger rail vehicles" bullet list (3900:24403) */
.passenger-train-photo {
  position: absolute;
  left: 1940px;
  top: 1550px;
  width: 1200px;
  height: 403px;
  border-radius: 60px;
  box-shadow: -40px 40px 80px 0 rgba(0, 0, 0, 0.2);
  overflow: hidden;
}
.passenger-train-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; border-radius: 60px; }
.passenger-train-photo::after { content: ""; position: absolute; inset: 0; border-radius: 60px; background: rgba(10, 188, 249, 0.1); }

/* Carrousel "3D render" variant (3666:8402). The model itself is a placeholder
   in Figma too ("3D model placeholder"); the <model-viewer> slot is ready. */
.stage-3d {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1920px;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.stage-3d__glow {
  position: relative;
  flex: none;
  width: 1400px;
  height: 1400px;
  margin-bottom: -88px;
  filter: blur(8px);
  background: radial-gradient(closest-side, rgba(255,174,115,0.6) 0%, rgba(244,121,77,0.3) 50%, rgba(233,67,38,0) 100%);
}
.stage-3d__glow img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: bottom; }

/* The model sits in its own layer, not inside .stage-3d__glow — that div's
   blur(8px) filter would otherwise blur the <model-viewer> along with it. */
.stage-3d__model {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1400px;
  height: 1400px;
}
.stage-3d__model model-viewer { position: absolute; inset: 0; width: 100%; height: 100%; --poster-color: transparent; background: transparent; }
.stage-3d__model[hidden] { display: none; }

/* Right-anchored variant — the gearbox/motor-unit detail carousels put the
   selector list on the left and the model on the right (3900-22518). */
.stage-3d--right { left: auto; right: 0; }
.stage-3d--plain .stage-3d__glow { background: none; filter: none; }
.stage-3d__note {
  position: absolute;
  left: 960px;
  top: 671px;
  transform: translateX(-50%);
  margin: 0;
  font-family: system-ui, sans-serif;
  font-size: 48px;
  line-height: normal;
  text-align: center;
  white-space: nowrap;
  color: red;
}
.stage-3d__controls { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 80px; width: 1400px; }
.btn-3d {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 32px 80px 32px 60px;
  overflow: hidden;
  border: 2px solid var(--blue-2);
  border-radius: 97.654px;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 24px;
  line-height: 24px;
  letter-spacing: 6.1034px;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  color: var(--blue-2);
}
.btn-3d img { width: 24px; height: 24px; flex: none; }
.stage-3d__buttons { display: flex; align-items: center; gap: 40px; }
.btn-small--static { position: relative; left: auto; top: auto; }

/* Materials / applications spec pair on a product page (3431:23556) */
.spec-pair { display: flex; align-items: center; gap: 80px; }
.spec-pair .spec-card { align-self: stretch; }
.spec-card--todo { color: #ff00d0; }
.panel-body--todo { color: #ff00d0; }

/* Gallery slots whose images Figma has not filled in yet */
.cert-gallery__sheet--blank { background-image: linear-gradient(90deg, rgba(10,188,249,0.1) 0%, rgba(10,188,249,0.1) 100%), linear-gradient(90deg, #909090 0%, #909090 100%); }
.cert-gallery__sheet--blank::after { content: none; }
.cert-thumb--blank { background-image: linear-gradient(90deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.25) 100%), linear-gradient(90deg, rgba(10,188,249,0.1) 0%, rgba(10,188,249,0.1) 100%), linear-gradient(90deg, #777 0%, #777 100%); }
.cert-thumb--blank::after { content: none; }
.cert-thumb--blank.is-active { background-image: linear-gradient(90deg, rgba(10,188,249,0.1) 0%, rgba(10,188,249,0.1) 100%), linear-gradient(90deg, #909090 0%, #909090 100%); }
.menu-pill__icon img { width: 48px; height: 48px; display: block; }
