/* BXM.pl homepage: compact header and introduction.
 * One layout per breakpoint; does not change legacy subpage headers. */
.bxm-home-header, .bxm-home-prelude {
  --header-blue: #3274d2;
  --header-line: #dce1e2;
  --header-height: clamp(88px, 5.2vw, 104px);
  color: #292e30;
  font-family: "Open Sans", sans-serif;
}
.bxm-home-header *, .bxm-home-prelude *, .bxm-home-prelude *::before, .bxm-home-prelude *::after { box-sizing: border-box; }
.bxm-home-header { position: relative; top: auto; z-index: 1100; background: #fff; }
.bxm-home-header__wrap, .bxm-home-prelude__wrap {
  width: min(1840px, calc(100% - clamp(40px, 5vw, 128px))) !important;
  max-width: none !important; margin-inline: auto;
}
.bxm-home-header__utility-top { min-height: 28px; background: #878d8f; color: #fff; }
.bxm-home-header__utility-top-wrap { min-height: inherit; display: flex; align-items: center; justify-content: flex-end; }
.bxm-home-header__utility-access { display: flex; align-items: center; gap: 14px; font-size: 14px; line-height: 1.4; }
.bxm-home-header__utility-separator { width: 1px; height: 16px; display: block; flex: 0 0 auto; background: #c6cccd; }
.bxm-home-header__utility-top .bxm-home-header__utility-separator { background: #c4c8ca; }
.bxm-home-header__utility { min-height: 34px; background: #f1f2f2; color: #646a6d; border-bottom: 1px solid #e3e6e7; }
.bxm-home-header__utility-wrap { min-height: inherit; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.bxm-home-header__utility-services, .bxm-home-header__utility-contact {
  display: flex; align-items: center; gap: 9px; min-width: 0;
  font-size: clamp(12px, .83vw, 15px); line-height: 1.4; white-space: nowrap;
}
.bxm-home-header__utility a { color: #4b5255 !important; font-weight: 600; text-decoration: none; }
.bxm-home-header__utility a:hover { color: var(--header-blue) !important; }
.bxm-home-header__utility-contact { flex-shrink: 0; }
.bxm-home-header__main { min-height: var(--header-height); background: #fff; border-bottom: 1px solid var(--header-line); }
.bxm-home-header__main-wrap {
  position: relative; min-height: var(--header-height); display: grid;
  grid-template-columns: clamp(280px, 23vw, 420px) minmax(0, 1fr) auto;
  align-items: center; gap: clamp(24px, 2.4vw, 48px);
}
.bxm-home-header__brand {
  position: relative; display: block; width: 100%; min-width: 0; height: auto;
  aspect-ratio: 405 / 80; flex: none; container-type: inline-size;
}
.bxm-home-header__brand img { display: block; width: 100%; min-width: 0; max-width: 100% !important; height: auto; }
/* The original logo already contains the green badge and 'lat'.
 * Overlay only the animated number in the original 405 × 80 coordinates. */
.bxm-home-header__brand .bxm-home-header__years {
  position: absolute; top: 10%; left: 86%; width: 7%; display: block;
  color: #fff; font: 300 4.6cqw/1 "Open Sans", sans-serif;
  text-align: center; letter-spacing: -.04em;
}
.bxm-home-header__navigation {
  position: static; inset: auto; display: flex; align-items: stretch; justify-content: center;
  width: auto; min-width: 0; gap: clamp(26px, 1.85vw, 36px); padding: 0;
  border: 0; box-shadow: none; opacity: 1; visibility: visible;
  transform: none; overflow: visible; pointer-events: auto;
}
.bxm-home-header__navigation a {
  position: relative; display: flex; align-items: center; min-height: var(--header-height);
  color: #1d2327; font-size: clamp(16px, 1.08vw, 20px); font-weight: 600;
  line-height: 1.4; letter-spacing: -.015em; white-space: nowrap; text-decoration: none;
  transition: color 220ms ease;
}
.bxm-home-header__navigation a::after { content: none; display: none; }
.bxm-home-header__navigation a::before {
  content: ""; position: absolute; left: -13px; top: calc(50% - 3px);
  width: 6px; height: 6px; border-radius: 50%; background: var(--header-blue);
  opacity: 0; transform: translateX(-3px) scale(.4);
  transition: opacity 220ms ease, transform 300ms cubic-bezier(.22,1,.36,1);
}
.bxm-home-header__nav-label { display: block; position: relative; overflow: hidden; }
.bxm-home-header__nav-label > span {
  display: block; transition: transform 320ms cubic-bezier(.22,1,.36,1);
}
.bxm-home-header__nav-label > span[aria-hidden] { position: absolute; inset: 100% 0 auto; }
.bxm-home-header__navigation a:is(:hover, :focus-visible) { color: #245fb5; }
.bxm-home-header__navigation a:is(:hover, :focus-visible)::before { opacity: 1; transform: none; }
.bxm-home-header__navigation a:is(:hover, :focus-visible) .bxm-home-header__nav-label > span { transform: translateY(-100%); }
.bxm-home-header__main-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
.bxm-home-header__languages { display: flex; align-items: center; gap: 8px; }
.bxm-home-header__language {
  width: 26px; height: 26px; position: relative; display: inline-flex;
  flex: 0 0 auto; overflow: hidden; border: 1px solid #cbd1d3; border-radius: 50%; background: #fff;
}
.bxm-home-header__language::before, .bxm-home-header__language::after, .bxm-home-header__language i { position: absolute; display: block; content: ""; }
.bxm-home-header__language--pl::after { inset: 50% 0 0; background: #d53a42; }
.bxm-home-header__language--en { background: #244f88; }
.bxm-home-header__language--en::before { width: 6px; height: 40px; left: 9px; top: -7px; background: #fff; transform: rotate(45deg); }
.bxm-home-header__language--en::after { width: 6px; height: 40px; left: 9px; top: -7px; background: #fff; transform: rotate(-45deg); }
.bxm-home-header__language--en i { z-index: 1; background: #c83c45; }
.bxm-home-header__language--en i:nth-child(1) { inset: 9px -1px; border-block: 2px solid #fff; }
.bxm-home-header__language--en i:nth-child(2) { inset: -1px 9px; border-inline: 2px solid #fff; }
.bxm-home-header__language--de { flex-direction: column; }
.bxm-home-header__language--de i { position: static; width: 100%; height: 33.333%; }
.bxm-home-header__language--de i:nth-child(1) { background: #202426; }
.bxm-home-header__language--de i:nth-child(2) { background: #bc3840; }
.bxm-home-header__language--de i:nth-child(3) { background: #d6a72e; }
.bxm-home-header__language.is-active { outline: 1px solid var(--header-blue); outline-offset: 3px; }
.bxm-home-header__search { position: relative; display: block; z-index: 2; }
.bxm-home-header__search summary {
  min-height: 46px; display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; padding: 7px 0 7px 8px; border: 0; color: #1d2327;
  background: #fff; cursor: pointer; font: 600 17px/1.3 "Open Sans", sans-serif; list-style: none;
}
.bxm-home-header__search summary::-webkit-details-marker { display: none; }
.bxm-home-header__search summary svg {
  box-sizing: border-box; width: 38px; height: 38px; padding: 9px; border-radius: 50%;
  fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.75;
  transition: background-color 220ms ease, transform 300ms cubic-bezier(.22,1,.36,1);
}
.bxm-home-header__search summary:is(:hover, :focus-visible) svg,
.bxm-home-header__search[open] summary svg { background: #edf3fd; transform: rotate(-12deg); }
.bxm-home-header__search[open] summary, .bxm-home-header__search summary:hover { border-color: var(--header-blue); color: var(--header-blue); }
.bxm-home-header__search form {
  position: absolute; top: calc(100% - 1px); right: 0; width: min(400px, 90vw);
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 12px;
  border: 1px solid #d5dbdc; background: #fff;
}
.bxm-home-header__search form label { min-width: 0; margin: 0; }
.bxm-home-header__search input { width: 100%; min-height: 44px; padding: 9px; border: 1px solid #bfc7c9; color: #2e3335; background: #fff; font: 400 16px/1.3 "Open Sans", sans-serif; }
.bxm-home-header__search button { padding: 9px 12px; border: 1px solid var(--header-blue); color: #fff; background: var(--header-blue); font: 600 15px/1.3 "Open Sans", sans-serif; }
.bxm-home-header__sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.bxm-home-header__toggle { display: none; }
.bxm-home-header a:focus-visible, .bxm-home-header button:focus-visible,
.bxm-home-header summary:focus-visible, .bxm-home-header input:focus-visible,
.bxm-home-prelude a:focus-visible { outline: 2px solid var(--header-blue); outline-offset: 5px; }

/* Compact introduction: the right column gets a real share of the width,
 * instead of the previous 250px text measure and an extra thumbnail. */
.bxm-home-prelude { position: relative; isolation: isolate; min-height: 0; overflow: hidden; background: #f1f3f3; border-bottom: 1px solid var(--header-line); }
.bxm-home-prelude::before { content: none; }
.bxm-home-prelude__wrap {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, 1.24fr) minmax(0, .86fr);
  align-items: center; gap: clamp(32px, 4vw, 76px); min-height: 0;
  padding-block: clamp(44px, 3.8vw, 72px) clamp(66px, 4.8vw, 90px);
}
.bxm-home-prelude p, .bxm-home-prelude h1 { margin: 0; }
.bxm-home-prelude__statement, .bxm-home-prelude__aside { min-width: 0; }
.bxm-home-prelude__eyebrow { margin-bottom: 22px !important; color: var(--header-blue); font: 700 clamp(12px, .87vw, 16px)/1.5 "Open Sans", sans-serif; letter-spacing: .12em; }
.bxm-home-prelude__title { max-width: none; color: #262a2c; font: 300 clamp(56px, 5.65vw, 112px)/.99 "Open Sans", sans-serif; letter-spacing: -.068em; }
.bxm-home-prelude__title > span { display: block; }
.bxm-home-prelude__title-accent { margin-top: .3em; color: #778083; font-size: .52em; letter-spacing: -.045em; line-height: 1.15; }
.bxm-home-prelude__aside { justify-self: start; width: 100%; max-width: 540px; }
.bxm-home-prelude__aside > p { max-width: none; color: #535a5d; font: 400 clamp(19px, 1.22vw, 23px)/1.55 "Open Sans", sans-serif; }
.bxm-home-prelude__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
/* One lightweight action style shared by the introduction and mobile view. */
:is(a,button).bxm-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 16px;
  min-height: 58px; max-width: 100%; padding: 9px 0; border: 0; border-radius: 999px;
  color: #20272b !important; background: transparent; box-shadow: none;
  font: 600 var(--bxm-type-action)/1.35 var(--bxm-font-family);
  text-decoration: none !important; cursor: pointer;
  transition: color 220ms ease, background-color 220ms ease, transform 320ms cubic-bezier(.22,1,.36,1);
}
:is(a,button).bxm-action.bxm-action--primary { padding-inline: 24px 10px; color: #fff !important; background: #2769d1; }
.bxm-action__arrow {
  display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px;
  overflow: hidden; border: 0; border-radius: 50%; color: #fff; background: #2769d1;
  transition: color 220ms ease, background-color 220ms ease;
}
.bxm-action--primary .bxm-action__arrow { color: #fff; background: #ffffff26; }
.bxm-action--down .bxm-action__arrow { rotate: 90deg; }
.bxm-action--back .bxm-action__arrow { rotate: 180deg; }
.bxm-action__arrow svg {
  grid-area: 1 / 1; width: 21px; height: 21px; fill: none; stroke: currentColor;
  stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;
  transition: transform 360ms cubic-bezier(.22,1,.36,1);
}
.bxm-action__arrow svg:last-child { transform: translateX(-165%); }
:is(a,button).bxm-action:is(:hover, :focus-visible) { color: #245fb5 !important; transform: translateY(-2px); }
:is(a,button).bxm-action.bxm-action--primary:is(:hover, :focus-visible) { color: #fff !important; background: #1c55b2; }
:is(a,button).bxm-action:is(:hover, :focus-visible) .bxm-action__arrow { background: #1c55b2; }
:is(a,button).bxm-action.bxm-action--primary:is(:hover, :focus-visible) .bxm-action__arrow { color: #1c55b2; background: #fff; }
:is(a,button).bxm-action:is(:hover, :focus-visible) .bxm-action__arrow svg:first-child { transform: translateX(165%); }
:is(a,button).bxm-action:is(:hover, :focus-visible) .bxm-action__arrow svg:last-child { transform: none; }
:is(a,button).bxm-action:active { transform: translateY(0) scale(.98); }
:is(a,button).bxm-action:focus-visible { outline: 2px solid #2769d1; outline-offset: 5px; }
.bxm-home-prelude__scroll { position: absolute; bottom: 16px; left: 50%; display: inline-flex; align-items: center; gap: 8px; color: #576266; font: 600 11px/1.4 "Open Sans", sans-serif; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; transform: translateX(-50%); }
.bxm-home-prelude__scroll svg { width: 23px; height: 23px; fill: none; stroke: var(--header-blue); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; animation: bxm-home-scroll-cue 1.7s ease-in-out infinite; }
@keyframes bxm-home-scroll-cue { 0%,100% { transform: translateY(-2px); } 50% { transform: translateY(3px); } }
#bxm-administrator { scroll-margin-top: 24px; }

/* Give the navigation uninterrupted space at laptop widths. */
@media (min-width: 1201px) and (max-width: 1599px) {
  .bxm-home-header__languages { position: absolute; right: 0; top: -60px; height: 26px; }
  .bxm-home-header__utility-access { padding-right: 122px; }
  .bxm-home-header__main-wrap { grid-template-columns: clamp(280px, 23vw, 360px) minmax(0, 1fr) auto; gap: 24px; }
  .bxm-home-header__navigation { gap: clamp(24px, 1.9vw, 30px); }
  .bxm-home-header__navigation a { font-size: 16px; }
  .bxm-home-header__utility-services > span:nth-last-child(-n + 2) { display: none; }
}
@media (max-width: 1200px) {
  .bxm-home-header { --header-height: 80px; position: sticky; top: 0; }
  .bxm-home-header__utility-top, .bxm-home-header__utility { display: none; }
  .bxm-home-header__main-wrap { display: flex; justify-content: space-between; gap: 18px; }
  .bxm-home-header__brand { width: min(340px, 60vw); min-width: 0; height: auto; flex: 0 1 auto; }
  .bxm-home-header__main-actions { display: none; }
  .bxm-home-header__toggle { display: inline-flex; min-width: 80px; flex: 0 0 auto; align-items: center; justify-content: flex-end; gap: 10px; margin-left: auto; padding: 10px 0 10px 10px; }
  .bxm-home-header__toggle-label { font-size: 17px; font-weight: 600; }
  .bxm-home-header__navigation {
    position: fixed; inset: var(--header-height) 0 0; z-index: 1099;
    display: grid; align-content: start; align-items: stretch; justify-content: stretch;
    width: 100%; max-height: calc(100dvh - var(--header-height));
    padding: 15px max(20px, 2.5vw) 32px; gap: 0; overflow-y: auto;
    background: #fff; border-top: 1px solid var(--header-line);
    opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px);
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
  }
  .bxm-home-header.is-menu-open .bxm-home-header__navigation { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .bxm-home-header__navigation a { min-height: 66px; padding-inline: 16px; font-size: 21px; border-bottom: 0; }
  .bxm-home-header__navigation a::before { left: 0; }
  .bxm-home-header__navigation a::after { display: none; }
  .bxm-home-prelude__title { font-size: clamp(46px, 5.65vw, 68px); }
  .bxm-home-prelude__aside > p { font-size: 18px; }
}
@media (max-width: 760px) {
  .bxm-home-header { --header-height: 76px; }
  .bxm-home-header__wrap, .bxm-home-prelude__wrap { width: calc(100% - 36px) !important; }
  .bxm-home-header__brand { width: min(62vw, 310px); }
  .bxm-home-prelude__wrap { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-block: 35px 60px; }
  .bxm-home-prelude__eyebrow { margin-bottom: 16px !important; font-size: 11px; letter-spacing: .085em; }
  .bxm-home-prelude__title { font-size: clamp(39px, 10.8vw, 72px); }
  .bxm-home-prelude__aside { max-width: 580px; }
  .bxm-home-prelude__aside > p { font-size: 18px; line-height: 1.55; }
  .bxm-home-prelude__actions { margin-top: 22px; gap: 10px; }
  :is(a,button).bxm-action { min-height: 54px; gap: 12px; font-size: 16px; }
  :is(a,button).bxm-action.bxm-action--primary { padding-inline: 20px 8px; }
  .bxm-action__arrow { flex-basis: 36px; width: 36px; height: 36px; }
  .bxm-home-prelude__scroll { bottom: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .bxm-home-header *, .bxm-home-header *::before, .bxm-home-header *::after,
  .bxm-home-prelude *, :is(a,button).bxm-action, .bxm-action__arrow, .bxm-action__arrow svg { animation: none !important; transition: none !important; }
  .bxm-home-header__nav-label > span, :is(a,button).bxm-action,
  .bxm-action__arrow svg:first-child { transform: none !important; }
  .bxm-home-header__nav-label > span[aria-hidden], .bxm-action__arrow svg:last-child { display: none; }
}

/* Decorative connection paths: vectors only, no gradients, filters or canvas.
 * The circles never change layout; only two small SVG groups rotate. */
[data-bxm-motion-surface] { isolation: isolate; }
.bxm-ambient {
  position: absolute; z-index: 0; top: 50%; right: clamp(-360px, -15vw, -160px);
  width: clamp(740px, 74vw, 1500px); aspect-ratio: 1; height: auto;
  transform: translateY(-50%); opacity: .78; pointer-events: none;
  user-select: none; -webkit-user-select: none;
}
.bxm-ambient__drawing { display: block; width: 100%; height: 100%; overflow: visible; }
.bxm-ambient__tracks { stroke: #c4cfd8; stroke-width: 1.1; }
.bxm-ambient__bridge { stroke-dasharray: 2 8; }
.bxm-ambient__orbit {
  transform-box: view-box; transform-origin: 50% 50%;
  animation-timing-function: linear; animation-iteration-count: infinite;
  animation-play-state: paused;
}
.bxm-ambient__orbit--outer { transform: rotate(-90deg); animation-name: bxm-orbit-outer; animation-duration: 64s; }
.bxm-ambient__orbit--inner { transform: rotate(145deg); animation-name: bxm-orbit-inner; animation-duration: 48s; }
.bxm-ambient__trail { stroke: #3274d2; stroke-width: 2.5; stroke-linecap: round; opacity: .45; }
.bxm-ambient__orbit--inner .bxm-ambient__trail { stroke-width: 1.8; opacity: .35; }
.bxm-ambient__halo { stroke: #3274d2; stroke-width: 1.2; opacity: .4; }
.bxm-ambient__signal { fill: #3274d2; }
.bxm-ambient__satellite { fill: #9aabb9; }
.bxm-ambient.is-running .bxm-ambient__orbit { animation-play-state: running; }
@keyframes bxm-orbit-outer { from { transform: rotate(-90deg); } to { transform: rotate(270deg); } }
@keyframes bxm-orbit-inner { from { transform: rotate(145deg); } to { transform: rotate(-215deg); } }
.bxm-home-prelude__scroll { z-index: 2; }
.bxm-mobile-slider__surface > :not(.bxm-ambient):not(.bxm-ambient-toggle) { position: relative; z-index: 1; }
.bxm-ambient-toggle {
  position: absolute; right: max(18px, 2.5vw); bottom: 5px; z-index: 2;
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
  color: #5b6c78; background: transparent; cursor: pointer;
}
.bxm-ambient-toggle[hidden] { display: none; }
.bxm-ambient-toggle svg {
  display: block; width: 30px; height: 30px; padding: 4px;
  fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round;
  stroke-linejoin: round; border-radius: 50%; transition: background-color 180ms ease, color 180ms ease;
}
.bxm-ambient-toggle:is(:hover, :focus-visible) svg { color: #245fb5; background: #e3eaf0; }
.bxm-ambient-toggle:focus-visible { outline: 2px solid #3274d2; outline-offset: 1px; }
.bxm-ambient-toggle__play { display: none; }
[data-motion-paused="true"] .bxm-ambient-toggle__play { display: block; }
[data-motion-paused="true"] .bxm-ambient-toggle__pause { display: none; }
@media (max-width: 800px) {
  .bxm-ambient { width: 720px; right: -460px; top: 38%; opacity: .6; }
  .bxm-mobile-slider__surface .bxm-ambient { top: 50%; }
  .bxm-ambient-toggle { right: 10px; bottom: 3px; }
}
@media (prefers-reduced-motion: reduce) {
  .bxm-ambient__orbit { animation: none !important; }
  .bxm-ambient-toggle { display: none; }
}
