/* =====================================================================
   Black Coast Group, shared stylesheet (site.css)
   Tokens, base, header, menu, language panel, footer, page transition,
   orb, reveals and shared components. See assets/PARTIALS.md.
   Fonts: Inter via Google Fonts (link in each <head>). Before launch,
   self-host: replace the <link> with an @font-face block here.
   ===================================================================== */

:root{
  /* palette */
  --tiefsee:#051B29; --abend:#0E4863; --dunst:#4A7C8D; --nebel:#B7B6A6;
  --glut:#E2BE9D; --licht:#FAFAFA; --black:#000;
  --ink:var(--tiefsee); --ink-2:#3A4A55; --ink-3:#5E646A;
  --rule:rgba(5,27,41,.12); --rule-d:rgba(250,250,250,.10);
  --blaue-stunde:linear-gradient(180deg,#083B55 0%,#0E4863 18%,#236076 38%,#4A7C8D 56%,#7E9CA1 72%,#B7B6A6 86%,#E2BE9D 100%);

  /* type */
  --font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --fs-display:clamp(56px,8.9vw,128px);
  --fs-h1:clamp(44px,6.1vw,88px);
  --fs-h2:clamp(32px,4.2vw,60px);
  --fs-h3:clamp(24px,2.2vw,32px);
  --fs-num:clamp(48px,6.7vw,96px);
  --fs-lead:clamp(19px,1.67vw,24px);
  --fs-body:clamp(17px,1.25vw,18px);

  /* motion: one curve, three durations (+ line/move curves for scenes) */
  --e:cubic-bezier(.16,1,.3,1);
  --e-line:cubic-bezier(.65,0,.35,1);
  --e-move:cubic-bezier(.7,0,.2,1);
  --ui:240ms; --ct:560ms; --sc:1200ms;

  /* grid */
  --m:max(20px,env(safe-area-inset-left,0px));
  --mr:max(20px,env(safe-area-inset-right,0px));
  --gut:16px; --cols:4;
  --sec:96px;
  --hd-h:64px; --hd-meta:36px; --hd-bar:84px;
  --r:20px;
  color-scheme:light;
}
@media (min-width:768px){:root{--m:40px;--mr:40px;--gut:24px;--cols:8}}
@media (min-width:1024px){:root{--m:clamp(40px,5vw,72px);--mr:clamp(40px,5vw,72px);--cols:12;--sec:160px;--hd-h:120px}}

*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;scrollbar-gutter:stable;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--tiefsee)}
body{margin:0;background:var(--licht);color:var(--ink);font-family:var(--font);font-size:var(--fs-body);line-height:1.56;letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;overflow-x:clip;min-height:100svh}
h1,h2,h3,h4{margin:0;font-weight:600;text-wrap:balance;hyphens:none;-webkit-hyphens:none}
p{margin:0;text-wrap:pretty}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
button{font:inherit;color:inherit;letter-spacing:inherit}
figure{margin:0}
:focus-visible{outline:2px solid var(--dunst);outline-offset:3px;border-radius:4px}
::selection{background:var(--glut);color:var(--tiefsee)}
.nb{white-space:nowrap}
.num{font-variant-numeric:tabular-nums}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip{position:fixed;left:12px;top:12px;z-index:200;padding:12px 16px;border-radius:999px;background:var(--licht);color:var(--tiefsee);font-size:14px;font-weight:500;text-decoration:none;transform:translateY(-200%)}
.skip:focus{transform:none}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:1584px;margin:0 auto;padding-left:var(--m);padding-right:var(--mr)}
.grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));column-gap:var(--gut)}
.sec{padding:var(--sec) 0}
.s-paper{background:var(--licht);color:var(--ink)}
.s-deep{background:var(--tiefsee);color:var(--licht)}
.s-black{background:var(--black);color:var(--licht)}
.s-grad{background:var(--blaue-stunde);color:var(--licht)}
.s-paper + .s-paper{padding-top:0}

/* ---------- type ---------- */
.display{font-size:var(--fs-display);line-height:.98;letter-spacing:-.045em}
.h1{font-size:var(--fs-h1);line-height:1.02;letter-spacing:-.04em}
.h2{font-size:var(--fs-h2);line-height:1.06;letter-spacing:-.035em;max-width:18ch}
.h3{font-size:var(--fs-h3);line-height:1.12;letter-spacing:-.02em}
.lead{font-size:var(--fs-lead);line-height:1.42;letter-spacing:-.018em;max-width:44ch}
.body{font-size:var(--fs-body);line-height:1.56}
.small,.note{font-size:13px;line-height:1.5;letter-spacing:0}
.note{color:var(--ink-3);max-width:72ch}
.s-deep .note,.s-black .note{color:rgba(183,182,166,.9)}
.eb{display:flex;align-items:center;gap:12px;margin:0 0 24px;font-size:13px;font-weight:500;line-height:1.3;letter-spacing:0;color:var(--ink-2)}
.eb::before{content:"";width:16px;height:1px;background:currentColor;flex:none}
.s-deep .eb,.s-black .eb,.s-grad .eb,.ph .eb{color:rgba(250,250,250,.72)}
.mute{color:var(--ink-2)}
.s-deep .mute,.s-black .mute{color:rgba(250,250,250,.78)}

/* ---------- links + pills ---------- */
.lnk{display:inline;padding:12px 0;font-weight:500;color:var(--abend);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:rgba(14,72,99,.35);transition:text-decoration-color var(--ui) var(--e),color var(--ui) var(--e)}
.lnk .arr{vertical-align:-1px;margin-left:6px}
.lnk .arr--l{margin:0 6px 0 0}
.lnk:hover{color:var(--tiefsee);text-decoration-color:currentColor}
.s-deep .lnk,.s-black .lnk,.s-grad .lnk,.ph .lnk{color:var(--licht);text-decoration-color:rgba(250,250,250,.4)}
.s-deep .lnk:hover,.s-black .lnk:hover,.s-grad .lnk:hover,.ph .lnk:hover{text-decoration-color:currentColor}
.arr{display:inline-block;width:14px;height:14px;flex:none;transition:transform var(--ui) var(--e)}
a:hover > .arr,a:hover .arr--go{transform:translateX(3px)}
.ext{font-style:normal}

.pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 24px;border-radius:999px;font:500 15px/1 var(--font);letter-spacing:-.009em;text-decoration:none;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color var(--ui) var(--e),border-color var(--ui) var(--e),color var(--ui) var(--e),transform var(--ui) var(--e)}
.pill:active{transform:scale(.975)}
.pill--l{background:var(--licht);color:var(--tiefsee)}
.pill--l:hover{background:#fff}
.pill--o{background:transparent;color:var(--licht);border-color:rgba(250,250,250,.36)}
.pill--o:hover{border-color:var(--licht)}
.pill--t{background:var(--tiefsee);color:var(--licht)}
.pill--t:hover{background:#0A2A3D}
.pill--op{background:transparent;color:var(--tiefsee);border-color:rgba(5,27,41,.24)}
.pill--op:hover{border-color:var(--tiefsee)}
.pill--k{background:var(--black);color:var(--licht)}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
@media (max-width:767px){.actions{flex-direction:column;align-items:stretch}.actions .pill{width:100%}}

/* ---------- logos (real SVG files) ---------- */
.logo{display:block;height:var(--lh,24px);width:auto;max-width:100%}
.logo--ink{filter:brightness(0)}             /* white source file shown black on paper */
.logo--deep{filter:brightness(0) invert(8%) sepia(37%) saturate(2400%) hue-rotate(178deg) brightness(.6)}

/* =====================================================================
   REVEAL SYSTEM (three kinds only)
   .rv  = block (fade + 24px rise)   .rl = masked text lines   .ri = image
   ===================================================================== */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity 900ms cubic-bezier(.22,1,.36,1),transform 900ms cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0ms)}
.js .rv.in{opacity:1;transform:none}
.rl .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.rl .ln > span{display:block}
.js .rl .ln > span{transform:translateY(105%);transition:transform 1000ms cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--d,0ms) + var(--i,0) * 80ms)}
.js .rl.in .ln > span{transform:none}
.js .ri{clip-path:inset(8% 0 0 0 round var(--r-img,var(--r)));transition:clip-path var(--sc) cubic-bezier(.22,1,.36,1)}
.js .ri img{transform:scale(1.06);transition:transform var(--sc) cubic-bezier(.22,1,.36,1)}
.js .ri.in{clip-path:inset(0 round var(--r-img,var(--r)))}
/* every rounded image wrapper isolates (Safari corner bleed with transformed children) and declares its radius once */
.ri,.cty__img,.mtp__img,.mk__c,.mk__c figure,.ka__c,.loc__img,.pf__img,.ar-cv__f,.ar-f .ri{isolation:isolate}
.mtp__img,.ar-f .ri{--r-img:16px}
@media (max-width:639px){.pf__img{--r-img:0px}}
@media (max-width:767px){.ar-cv__f{--r-img:0px}}
.js .ri.in img{transform:none}
.js .rule-draw{transform:scaleX(0);transform-origin:0 50%;transition:transform 900ms cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0ms)}
.js .rule-draw.in{transform:none}

/* =====================================================================
   HEADER  "Konzernleiste" (two tiers from 1024px, one bar below)
   Tier 1 .hd__meta: Presse · Karriere · Kontakt | Sprache (36px)
   Tier 2 .hd__bar:  logo left, Unternehmen ▾ · Märkte ▾ · Über uns right (84 → 64px)
   .hd__cl: the header hairline is a Küstenlinie; its one rise sits under
   the active or hovered primary item (site.js). Exactly ONE compositing
   layer: the glass lives on .hd::before. Nothing inside .hd may carry
   will-change, filter or backdrop-filter (that caused the light smudges).
   ===================================================================== */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;color:var(--licht);padding-top:env(safe-area-inset-top,0px);transform:translateY(0);transition:transform 420ms var(--e)}
.hd::before{content:"";position:absolute;inset:0;background:rgba(5,27,41,.86);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);opacity:0;transition:opacity var(--ui) var(--e),background-color var(--ui) var(--e)}
.hd--glass::before,.hd--solid::before,.hd--mega::before{opacity:1}
.hd--solid:not(.hd--glass)::before{background:var(--tiefsee)}
.hd--mega::before{background:rgba(5,27,41,.97)}
.hd--hide{transform:translateY(-100%)}
html.menu-open .hd,html.lp-open .hd{transform:none}

/* tier 1: meta navigation */
.hd__meta{position:relative;height:var(--hd-meta);overflow:hidden;transition:height 320ms var(--e),opacity 320ms var(--e)}
.hd__meta::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(250,250,250,.08)}
.hd__mw{height:100%;display:flex;justify-content:flex-end;align-items:center;gap:28px}
.hd__mn{display:flex;align-items:center;gap:28px}
.hd__mn a,.hd__lang{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0;border:0;background:none;font:500 13px/1 var(--font);letter-spacing:0;color:rgba(250,250,250,.64);text-decoration:none;cursor:pointer;transition:color var(--ui) var(--e)}
.hd__mn a:hover,.hd__mn a[aria-current="page"],.hd__lang:hover,.hd__lang[aria-expanded="true"]{color:var(--licht)}
.hd__msep{width:1px;height:12px;background:rgba(250,250,250,.2);flex:none}
.hd__lang svg,.hd__pi svg{width:10px;height:10px;flex:none;transition:transform var(--ui) var(--e)}
.hd__lang[aria-expanded="true"] svg,.hd__pi[aria-expanded="true"] svg{transform:scaleY(-1)}
.hd--compact .hd__meta{height:0;opacity:0}

/* tier 2: logo + primary navigation */
.hd__bar{position:relative;height:var(--hd-bar);display:flex;align-items:center;justify-content:space-between;gap:32px;max-width:1584px;margin:0 auto;padding:0 var(--mr) 0 var(--m);transition:height 320ms var(--e)}
.hd--compact .hd__bar{height:64px}
.hd__logo{display:block;flex:none;color:var(--licht);text-decoration:none;padding:8px 0;margin:-8px 0}
.hd__logo .lg{display:block;height:29px;width:auto;overflow:visible;fill:currentColor;transition:height 320ms var(--e)}
.hd--compact .hd__logo .lg{height:26px}
.lg__u,.lg__l,.lg__wm{transform-box:fill-box}
.hd__pn ul{display:flex;align-items:center;gap:44px}
.hd__pi{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0;border:0;background:none;font:500 16px/1 var(--font);letter-spacing:-.011em;color:rgba(250,250,250,.86);text-decoration:none;white-space:nowrap;cursor:pointer;transition:color var(--ui) var(--e)}
.hd__pi:hover,.hd__pi[aria-expanded="true"],.hd__pi[aria-current="page"],.hd__pi.is-on{color:var(--licht)}

/* the Küstenlinie hairline (full bleed, bottom of tier 2) */
.hd__cl{position:absolute;left:0;bottom:0;width:100%;height:8px;overflow:visible;pointer-events:none}
.hd__cl path{fill:none;stroke:var(--licht);stroke-width:1;stroke-linecap:butt;vector-effect:non-scaling-stroke}
.hd__cla{stroke-opacity:.22}
.hd__clb{stroke-opacity:.6}

.hd__burger{display:none;position:relative;width:44px;height:44px;margin-right:-11px;border:0;background:transparent;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hd__burger i{position:absolute;left:12px;width:20px;height:1.5px;background:currentColor;transition:transform var(--ui) var(--e)}
.hd__burger i:first-child{top:18px}
.hd__burger i:last-child{top:25px}
html.menu-open .hd__burger i:first-child{transform:translateY(3.5px) rotate(45deg)}
html.menu-open .hd__burger i:last-child{transform:translateY(-3.5px) rotate(-45deg)}

/* ---------- mega-menus ---------- */
.hd__mega{position:absolute;left:0;right:0;top:100%;background:var(--tiefsee);max-height:calc(100svh - 100%);overflow:auto;overscroll-behavior:contain;clip-path:inset(0 0 calc(100% + 2px) 0);visibility:hidden;transition:clip-path 300ms var(--e),visibility 0s linear 300ms}
.hd__mega.open{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path 300ms var(--e),visibility 0s}
.hd__mg{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);padding-top:56px;padding-bottom:64px}
.hd__mc{opacity:0;transform:translateY(12px);transition:opacity 200ms linear,transform 200ms linear}
.hd__mega.open .hd__mc{opacity:1;transform:none;transition:opacity 420ms var(--e),transform 520ms var(--e);transition-delay:calc(60ms + var(--k,0) * 40ms)}
.hd__mi{grid-column:1/4;padding-right:24px}
.hd__eb{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:500;color:rgba(250,250,250,.64)}
.hd__eb::before{content:"";width:16px;height:1px;background:currentColor}
.hd__ms{margin-top:20px;font-size:24px;font-weight:500;line-height:1.25;letter-spacing:-.022em;max-width:16ch}
.hd__ml,.hd__go,.hd__dom{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--licht);text-decoration:none}
.hd__ml{margin-top:28px;min-height:44px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:rgba(250,250,250,.36)}
.hd__ml:hover{text-decoration-color:currentColor}
/* Unternehmen: four columns split by hairlines, not cards */
.hd__cos{grid-column:4/13;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.hd__co{display:flex;flex-direction:column;gap:6px;padding:0 24px;border-left:1px solid rgba(250,250,250,.1)}
.hd__coa{display:flex;flex-direction:column;align-items:flex-start;text-decoration:none;color:var(--licht);border-radius:8px}
.hd__coa .logo{--lh:22px;opacity:.8;transition:opacity var(--ui) var(--e)}
.hd__co:hover .logo,.hd__coa:focus-visible .logo{opacity:1}
.hd__cot{display:block;margin-top:24px;min-height:3em;font-size:15px;line-height:1.45;color:var(--nebel)}
.hd__go{margin-top:20px;min-height:32px}
.hd__dom{min-height:32px;color:rgba(250,250,250,.64);font-weight:400;transition:color var(--ui) var(--e)}
.hd__dom:hover{color:var(--licht)}
.hd__coa:hover .hd__go .arr{transform:translateX(3px)}
.hd__coa[aria-current="page"] .hd__go{color:var(--glut)}
/* Märkte: rows + mini map */
.hd__mks{grid-column:4/9;display:grid;border-top:1px solid rgba(250,250,250,.1)}
.hd__mr{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:20px;padding:12px 0;border-bottom:1px solid rgba(250,250,250,.1);text-decoration:none;color:var(--licht)}
.hd__mrx{display:grid;place-items:center;width:56px;height:70px;border-radius:8px;border:1px solid rgba(250,250,250,.16);font-size:15px;font-weight:500;color:var(--licht)}
.hd__mr img{width:56px;height:70px;object-fit:cover;border-radius:8px;background:#0A2A3D}
.hd__mr b{display:flex;align-items:baseline;gap:10px;font-size:17px;font-weight:600;letter-spacing:-.018em}
.hd__mr b span{font-size:13px;font-weight:500;letter-spacing:0;color:var(--nebel)}
.hd__mr > span:nth-child(2) > span{display:block;margin-top:4px;font-size:14px;color:rgba(250,250,250,.72)}
.hd__mr .arr{opacity:.5;transition:transform var(--ui) var(--e),opacity var(--ui) var(--e)}
.hd__mr:hover .arr,.hd__mr:focus-visible .arr{opacity:1;transform:translateX(3px)}
.hd__map{grid-column:9/13;padding-left:24px;align-self:start}
.hd__map svg{display:block;width:100%;height:auto;aspect-ratio:720/440;border-radius:8px;overflow:hidden}
.hd__map .nb{fill:rgba(183,182,166,.08)}
.hd__map .ge{fill:rgba(74,124,141,.28);stroke:rgba(183,182,166,.35);stroke-width:1;vector-effect:non-scaling-stroke}
.hd__map .pin{fill:var(--licht);transition:fill var(--ui) var(--e)}
.hd__map .pin.on{fill:var(--glut)}
.hd__map text{fill:rgba(250,250,250,.72);font:500 22px var(--font)}
.hd__map text.on{fill:var(--glut)}
.hd__map figcaption{margin-top:12px;font-size:13px;color:rgba(183,182,166,.85)}
.hd__scrim{position:fixed;inset:0;z-index:49;background:rgba(5,27,41,.45);opacity:0;visibility:hidden;transition:opacity 300ms var(--e),visibility 0s linear 300ms}
.hd__scrim.open{opacity:1;visibility:visible;transition:opacity 300ms var(--e),visibility 0s}
/* no JS: the panels still open on hover and keyboard focus */
html:not(.js) .hd:has([aria-controls="hdMegaU"]:hover,[aria-controls="hdMegaU"]:focus,#hdMegaU:hover,#hdMegaU:focus-within) #hdMegaU,
html:not(.js) .hd:has([aria-controls="hdMegaM"]:hover,[aria-controls="hdMegaM"]:focus,#hdMegaM:hover,#hdMegaM:focus-within) #hdMegaM{clip-path:none;visibility:visible}
html:not(.js) .hd__mc{opacity:1;transform:none}

/* header load animation (every page; on the homepage the intro replaces it) */
.js .hd--load .lg__u{animation:hdCutL 480ms var(--e) both}
.js .hd--load .lg__l{animation:hdCutR 480ms var(--e) both}
.js .hd--load .lg__wm{animation:hdWord 420ms var(--e) 200ms both}
.js .hd--load .hd__pi,.js .hd--load .hd__mn a,.js .hd--load .hd__msep,.js .hd--load .hd__lang,.js .hd--load .hd__burger{animation:hdItem var(--ct) var(--e) both;animation-delay:calc(260ms + var(--k,0) * 38ms)}
.js .hd--load .hd__cl{animation:hdDraw 700ms var(--e-line) 200ms both}
/* intro hand-off: the lockup flies in, the chrome follows */
html.intro .hd__logo{opacity:0}
html.intro .hd__pn,html.intro .hd__meta .wrap,html.intro .hd__burger,html.intro .hd__cl{opacity:0}
html.intro-hand .hd__pn,html.intro-hand .hd__meta .wrap,html.intro-hand .hd__burger,html.intro-hand .hd__cl{opacity:1}
.js .hd--chrome .hd__pi,.js .hd--chrome .hd__mn a,.js .hd--chrome .hd__msep,.js .hd--chrome .hd__lang,.js .hd--chrome .hd__burger{animation:hdItem 480ms var(--e) both;animation-delay:calc(450ms + var(--k,0) * 40ms)}
.js .hd--chrome .hd__cl{animation:hdDraw 700ms var(--e-line) 300ms both}
@keyframes hdCutL{from{transform:translateX(-46%);opacity:0}to{transform:none;opacity:1}}
@keyframes hdCutR{from{transform:translateX(46%);opacity:0}to{transform:none;opacity:1}}
@keyframes hdWord{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes hdItem{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes hdDraw{from{clip-path:inset(-8px 100% -8px 0)}to{clip-path:inset(-8px 0 -8px 0)}}

@media (max-width:1023px){
  :root{--hd-h:64px}
  .hd__meta,.hd__pn,.hd__mega,.hd__scrim{display:none!important}
  .hd__bar{height:64px}
  .hd__logo .lg,.hd--compact .hd__logo .lg{height:21px}
  .hd--compact .hd__bar{height:60px}
  .hd__burger{display:block}
  .hd__cla{stroke-opacity:.1}
  .hd__clb{display:none}
}

/* =====================================================================
   MOBILE MENU (sheet grows down from the header)
   ===================================================================== */
.mm{position:fixed;inset:0;z-index:45;background:var(--tiefsee);color:var(--licht);display:flex;flex-direction:column;padding:calc(var(--hd-h) + env(safe-area-inset-top,0px) + 8px) var(--mr) max(24px,env(safe-area-inset-bottom,0px)) var(--m);overflow-y:auto;overscroll-behavior:contain;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path 420ms var(--e),visibility 0s linear 420ms}
html.menu-open .mm{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path var(--ct) var(--e),visibility 0s}
.mm__i{opacity:0;transform:translateY(-11px);transition:opacity 160ms linear,transform 160ms linear}
html.menu-open .mm__i{opacity:1;transform:none;transition:opacity 400ms var(--e),transform 520ms var(--e);transition-delay:calc(55ms + var(--k,0) * 38ms)}
.mm__list > li{border-bottom:1px solid var(--rule-d)}
.mm__a,.mm__acc{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:12px 0;border:0;background:none;text-align:left;font-size:30px;font-weight:600;letter-spacing:-.035em;line-height:1.1;text-decoration:none;color:var(--licht);cursor:pointer;-webkit-tap-highlight-color:transparent}
.mm__a[aria-current="page"]{color:var(--glut)}
.mm__acc svg{width:16px;height:16px;flex:none;transition:transform 420ms var(--e)}
.mm__acc[aria-expanded="true"] svg{transform:rotate(45deg)}
.mm__sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows 420ms var(--e)}
.mm__sub.open{grid-template-rows:1fr}
.mm__sub > div{overflow:hidden;min-height:0}
.mm__sub ul{padding:0 0 16px}
.mm__sub li + li{border-top:1px solid rgba(250,250,250,.06)}
.mm__sub a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:10px 0;line-height:1.2;font-size:19px;font-weight:500;letter-spacing:-.02em;color:rgba(250,250,250,.88);text-decoration:none;opacity:0;transform:translateY(-6px);transition:opacity 200ms linear,transform 200ms linear}
.mm__sub.open a{opacity:1;transform:none;transition:opacity 400ms var(--e),transform 520ms var(--e);transition-delay:calc(60ms + var(--k,0) * 38ms)}
.mm__sub a[aria-current="page"]{color:var(--glut)}
.mm__sub a .arr{opacity:.6}
.mm__sub small{display:block;font-size:13px;font-weight:400;letter-spacing:0;line-height:1.35;color:var(--nebel);margin-top:4px}
.mm__ft{margin-top:auto;padding-top:32px;display:grid;gap:4px}
.mm__lang{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;border:0;border-top:1px solid var(--rule-d);background:none;padding:0;font-size:15px;color:rgba(250,250,250,.86);cursor:pointer}
.mm__lang b{font-weight:500;color:var(--licht)}
.mm__lang > span:last-child{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
html.menu-open .hd::before{opacity:1;background:var(--tiefsee);-webkit-backdrop-filter:none;backdrop-filter:none}
.mm__lang svg{width:12px;height:12px;transform:scaleY(-1);transition:transform 420ms var(--e)}
.mm__lang[aria-expanded="true"] svg{transform:none}
.mm__langs ul{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;padding:4px 0 12px}

/* =====================================================================
   LANGUAGE PANEL (one element, positioned by site.js)
   ===================================================================== */
.lp{position:fixed;z-index:55;width:420px;padding:20px;border-radius:0 0 20px 20px;background:rgba(5,27,41,.97);color:var(--licht);border:1px solid rgba(250,250,250,.10);border-top:0;transform-origin:50% 0;transform:scaleY(.9);opacity:0;visibility:hidden;transition:transform var(--ui) var(--e),opacity var(--ui) var(--e),visibility 0s linear var(--ui)}
.lp--up{border-radius:20px;border-top:1px solid rgba(250,250,250,.10);transform-origin:50% 100%}
.lp.open{transform:none;opacity:1;visibility:visible;transition:transform var(--ui) var(--e),opacity var(--ui) var(--e),visibility 0s}
.lp__h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;font-size:13px;color:var(--nebel)}
.lp ul,.mm__langs ul{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px}
.lang{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-height:44px;padding:11px 12px;border-radius:10px;font-size:15px;line-height:1.3;color:var(--licht);text-decoration:none}
.mm__langs .lang{padding:11px 0}
a.lang:hover{background:rgba(250,250,250,.06)}
.lang[aria-current="true"] span:first-child{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.lang[aria-disabled="true"]{opacity:.4;cursor:default}
.lang small{font-size:11px;font-weight:500;letter-spacing:.02em;color:var(--nebel)}
.scrim{position:fixed;inset:0;z-index:54;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:opacity var(--ui) var(--e),visibility 0s linear var(--ui)}
.scrim.open{opacity:1;visibility:visible;transition:opacity var(--ui) var(--e),visibility 0s}
@media (max-width:1023px){
  .lp,.lp--up{left:0!important;right:0!important;top:auto!important;bottom:0!important;width:auto;max-height:80svh;overflow:auto;border-radius:20px 20px 0 0;border:0;border-top:1px solid rgba(250,250,250,.10);padding:20px var(--mr) max(24px,env(safe-area-inset-bottom,0px)) var(--m);transform-origin:50% 100%;transform:translateY(24px)}
}

/* =====================================================================
   FOOTER
   ===================================================================== */
.ft{position:relative;background:var(--tiefsee);color:var(--licht);padding:72px 0 max(32px,env(safe-area-inset-bottom,0px));overflow:clip}
.ft__logo{display:inline-block;color:var(--licht)}
.ft__logo img{width:300px;height:auto}
.ft__line{display:block;width:100%;height:40px;margin:28px 0 48px;overflow:visible}
.ft__line path{fill:none;stroke:var(--licht);stroke-opacity:.9;stroke-width:1.5;stroke-linecap:butt;vector-effect:non-scaling-stroke}
.ft__cols{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));column-gap:var(--gut);row-gap:40px}
.ft__c1{grid-column:1/4}.ft__c2{grid-column:4/7}.ft__c3{grid-column:7/10}.ft__c4{grid-column:10/13}
.ft h2{font-size:13px;font-weight:500;letter-spacing:0;color:var(--nebel);margin-bottom:16px}
.ft__cols ul{display:grid;gap:10px;font-size:15px}
.ft__cols a{color:rgba(250,250,250,.86);text-decoration:none;transition:color var(--ui) var(--e)}
.ft__cols a:hover{color:var(--licht)}
.ft__lang{height:44px;padding:0 16px 0 18px;border-radius:999px;border:1px solid rgba(250,250,250,.2);background:none;color:var(--licht);font:500 15px/1 var(--font);display:inline-flex;align-items:center;gap:10px;cursor:pointer;transition:border-color var(--ui) var(--e)}
.ft__lang:hover,.ft__lang[aria-expanded="true"]{border-color:rgba(250,250,250,.6)}
.ft__lang svg{width:10px;height:10px;transform:scaleY(-1);transition:transform var(--ui) var(--e)}
.ft__lang[aria-expanded="true"] svg{transform:none}
.ft__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 28px;margin-top:88px;padding-top:24px;border-top:1px solid var(--rule-d);font-size:13px;color:var(--nebel)}
.ft__bar a{color:inherit;text-decoration:none;transition:color var(--ui) var(--e)}
.ft__bar a:hover{color:var(--licht)}
.ft__legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px}
.ft__top{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.ft__top span{display:inline-block;transition:transform var(--ui) var(--e)}
.ft__top:hover span{transform:translateY(-3px)}
@media (max-width:1023px){
  .ft__c1{grid-column:1/-1}
  .ft__c2{grid-column:1/5}.ft__c3{grid-column:5/9}.ft__c4{grid-column:1/-1}
}
@media (max-width:767px){
  .ft{padding-top:52px}
  .ft__logo img{width:236px}
  .ft__line{margin:24px 0 40px;height:32px}
  .ft__c2{grid-column:1/3}.ft__c3{grid-column:3/5}
  .ft__lang{width:100%;height:48px;justify-content:space-between}
  .ft__bar{margin-top:56px;align-items:flex-start}
  .ft__legal{gap:4px 20px}
  .ft__legal > span{flex-basis:100%}
  .ft__legal a{display:inline-flex;align-items:center;min-height:44px}
}

/* =====================================================================
   ORB (stationary) + page transition
   ===================================================================== */
.orb{position:relative;width:var(--orb,220px);height:var(--orb,220px);border-radius:50%;flex:none;background:linear-gradient(180deg,#083B55 0%,#0E4863 18%,#236076 38%,#4A7C8D 56%,#7E9CA1 72%,#B7B6A6 86%,#E2BE9D 100%)}
.orb.orb--gl{background:none}
.orb canvas{position:absolute;inset:0;width:100%;height:100%}
@media (max-width:767px){.orb{--orb:var(--orb-m,160px)}}

.pt{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:var(--tiefsee);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 280ms cubic-bezier(.4,0,.2,1),visibility 0s linear 280ms}
.pt .orb{--orb:96px;opacity:0;transition:opacity 200ms linear 80ms}
.pt.on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 280ms cubic-bezier(.4,0,.2,1),visibility 0s}
.pt.on .orb{opacity:1}
/* arrival: painted before any script via the head flag */
html.pt-in body::after{content:"";position:fixed;inset:0;z-index:89;background:var(--tiefsee);transition:opacity 360ms cubic-bezier(.4,0,.2,1)}
html.pt-in body::before{content:"";position:fixed;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;z-index:91;background:linear-gradient(180deg,#083B55 0%,#0E4863 18%,#236076 38%,#4A7C8D 56%,#7E9CA1 72%,#B7B6A6 86%,#E2BE9D 100%);transition:opacity 200ms linear}
html.pt-in.pt-gl body::before{opacity:0}
html.pt-out body::after,html.pt-out body::before{opacity:0}
html.pt-in main{opacity:0;transform:translateY(24px)}
html.pt-out main{opacity:1;transform:none;transition:opacity 520ms var(--e),transform 520ms var(--e)}
.page-leave main{opacity:0;transform:translateY(-12px);transition:opacity 280ms var(--e),transform 280ms var(--e)}

/* =====================================================================
   SUBPAGE HERO (.ph)
   ===================================================================== */
.ph{position:relative;min-height:72svh;display:flex;align-items:flex-end;background:var(--tiefsee);color:var(--licht);padding:calc(var(--hd-h) + 64px) 0 72px;overflow:clip;isolation:isolate}
.ph--black{background:var(--black)}
.ph__media{position:absolute;inset:0;z-index:-2}
.ph__media img{width:100%;height:100%;object-fit:cover}
.ph__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.38) 0%,rgba(0,0,0,0) 32%,rgba(0,0,0,.2) 56%,rgba(0,0,0,.78) 100%)}
.ph__in{width:100%}
.crumb{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;font-size:13px;color:rgba(250,250,250,.7)}
.crumb a{text-decoration:none;color:inherit}
.crumb a:hover{color:var(--licht)}
.crumb span[aria-hidden]{opacity:.5}
.ph h1{font-size:var(--fs-h1);line-height:1.02;letter-spacing:-.04em;max-width:16ch}
.ph .lead{margin-top:28px;color:rgba(250,250,250,.86)}
.ph .actions{margin-top:36px}
.ph__logo{margin-bottom:32px;margin-left:calc(var(--lh,24px) * -.119)} /* optical: logo files carry ~12% side bearing */
@media (max-width:767px){.ph{min-height:64svh;padding-bottom:48px}}

/* =====================================================================
   SHARED CONTENT COMPONENTS
   ===================================================================== */
/* section head */
.sh{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));column-gap:var(--gut);align-items:end;margin-bottom:clamp(48px,6vw,80px)}
.sh > div{grid-column:1/9}
.sh .lead{margin-top:24px}
@media (max-width:1023px){.sh > div{grid-column:1/-1}}

/* numbered rows (not cards) */
.rows{border-top:1px solid var(--rule)}
.s-deep .rows,.s-black .rows{border-color:var(--rule-d)}
.row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);padding:32px 0;border-bottom:1px solid var(--rule)}
.s-deep .row,.s-black .row{border-color:var(--rule-d)}
.row__n{grid-column:1/2;font-size:13px;font-weight:500;color:var(--ink-3);font-variant-numeric:tabular-nums;padding-top:8px}
.row__h{grid-column:2/6;font-size:var(--fs-h3);line-height:1.12;letter-spacing:-.02em;font-weight:600}
.row__p{grid-column:7/12;color:var(--ink-2)}
.s-deep .row__p,.s-black .row__p{color:rgba(250,250,250,.8)}
.s-deep .row__n,.s-black .row__n{color:var(--nebel)}
@media (max-width:1023px){
  .row{grid-template-columns:minmax(0,1fr);row-gap:10px;padding:28px 0}
  .row__n,.row__h,.row__p{grid-column:1/-1;padding-top:0}
}

/* key-value list */
.kv{display:grid;border-top:1px solid var(--rule)}
.kv > div{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--gut);padding:20px 0;border-bottom:1px solid var(--rule)}
.kv dt{font-size:13px;font-weight:500;color:var(--ink-3);padding-top:3px}
.kv dd{margin:0}
.kv dd small{display:block;font-size:13px;color:var(--ink-3);margin-top:2px}
.kv[hidden],.kv > div[hidden]{display:none}
@media (max-width:767px){.kv > div{grid-template-columns:minmax(0,1fr);gap:4px}}

/* data table, stacks to key-value blocks on mobile (add data-label on td) */
.tbl{width:100%;border-collapse:collapse;font-size:16px}
.tbl th{text-align:left;font-size:13px;font-weight:500;color:var(--ink-3);padding:0 16px 14px 0;border-bottom:1px solid var(--rule)}
.tbl td{padding:20px 16px 20px 0;border-bottom:1px solid var(--rule);vertical-align:top;font-variant-numeric:tabular-nums}
.tbl td:first-child{font-weight:600}
@media (max-width:767px){
  .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block}
  .tbl tr{padding:20px 0;border-bottom:1px solid var(--rule)}
  .tbl td{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:4px 0;border:0}
  .tbl td::before{content:attr(data-label);font-size:13px;font-weight:500;color:var(--ink-3)}
}

/* company rows (homepage index, careers) */
.co{border-top:1px solid var(--rule)}
.co__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:center;min-height:96px;padding:20px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);transition:border-color var(--ui) var(--e)}
.co__row:hover{border-bottom-color:rgba(5,27,41,.5)}
.co__logo{grid-column:1/5;min-width:0}
.co__logo .logo{--lh:24px}
.co__t{grid-column:5/10;font-size:18px;letter-spacing:-.015em}
.co__go{grid-column:10/13;justify-self:end;display:flex;align-items:center;gap:20px;font-size:15px;font-weight:500;color:var(--abend);white-space:nowrap}
.co__go small{font-size:13px;font-weight:400;color:var(--ink-3)}
.co__go .arr{transition:transform var(--ui) var(--e)}
.co__row:hover .co__go .arr{transform:translateX(3px)}
@media (max-width:1023px){
  .co__row{grid-template-columns:minmax(0,1fr) auto;row-gap:10px;padding:24px 0}
  .co__logo{grid-column:1/2}.co__t{grid-column:1/2;font-size:16px;color:var(--ink-2)}
  .co__go{grid-column:2/3;grid-row:1/3}
  .co__go span,.co__go small,.co__go .co__dom{display:none}
  .co__logo .logo{--lh:21px}
}

/* route rows (contact) */
.rt{border-top:1px solid var(--rule)}
.rt__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:center;padding:28px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);transition:border-color var(--ui) var(--e)}
.rt__row:hover{border-bottom-color:rgba(5,27,41,.5)}
.rt__q{grid-column:1/7;font-size:clamp(20px,2vw,28px);font-weight:600;letter-spacing:-.025em;line-height:1.2}
.rt__a{grid-column:7/12;font-size:16px;color:var(--ink-2)}
.rt__a b{font-weight:500;color:var(--ink)}
.rt__sep{font-style:normal}
@media (max-width:767px){.rt__a:has(.rt__sep) b{display:block;margin-bottom:2px}.rt__sep{display:none}}
.rt__i{grid-column:12/13;justify-self:end;color:var(--abend)}
.rt__row:hover .rt__i .arr{transform:translateX(3px)}
@media (max-width:1023px){
  .rt__row{grid-template-columns:minmax(0,1fr) auto;row-gap:6px;padding:22px 0}
  .rt__q{grid-column:1/2;font-size:20px}.rt__a{grid-column:1/2;grid-row:2;font-size:15px}
  .rt__i{grid-column:2/3;grid-row:1/3}
}

/* filter chips (team, presse) */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--rule);background:transparent;font:500 14px/1 var(--font);color:var(--ink-2);cursor:pointer;transition:border-color var(--ui) var(--e),background-color var(--ui) var(--e),color var(--ui) var(--e)}
.chip:hover{border-color:rgba(5,27,41,.4);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--tiefsee);border-color:var(--tiefsee);color:var(--licht)}
@media (max-width:767px){.chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1*var(--mr)) 0 calc(-1*var(--m));padding:0 var(--mr) 0 var(--m)}.chips::-webkit-scrollbar{display:none}.chip{flex:none;height:44px}}

/* handover band */
.band{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:40px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink)}
.band b{font-size:var(--fs-h3);font-weight:600;letter-spacing:-.02em;line-height:1.15}
.band .arr{width:20px;height:20px;color:var(--abend)}
.s-deep .band,.s-black .band{border-color:var(--rule-d);color:var(--licht)}
.s-deep .band .arr,.s-black .band .arr{color:var(--licht)}
.band > span[aria-hidden],.band__x{flex:none;font-size:clamp(24px,2.2vw,28px);font-weight:400;line-height:1;color:var(--abend);transition:transform var(--ui) var(--e)}
.band:hover > span[aria-hidden],.band:hover .band__x{transform:translate(3px,-3px)}
.band > span:first-child{display:flex;flex-direction:column;gap:10px;min-width:0}
.band__k{display:block;font-size:13px;font-weight:500;color:var(--ink-3)}
.s-deep .band > span[aria-hidden],.s-black .band > span[aria-hidden],.s-deep .band__x,.s-black .band__x{color:var(--licht)}

/* Capital, Systems, Analytics (<body class="k">): black and white, black ink on paper */
.k{--ink:#000;--ink-2:#2E2E2E;--ink-3:#5F5F5F;--rule:rgba(0,0,0,.12)}
.k .s-paper .lnk{color:#000;text-decoration-color:rgba(0,0,0,.3)}
.k .s-paper .lnk:hover{color:#000;text-decoration-color:#000}
.k .chip:hover{border-color:rgba(0,0,0,.4)}
.k .chip[aria-pressed="true"]{background:#000;border-color:#000;color:var(--licht)}
.k .s-paper .pl__step.on .pl__n,.k .s-paper .band .arr,.k .s-paper .band > span[aria-hidden],.k .s-paper .band__x,.k .s-paper .co__go,.k .s-paper .rt__i{color:#000}
.k ::selection{background:#000;color:var(--licht)}

/* placeholders are visible on purpose */
.ph-mark{background:rgba(226,190,157,.28);padding:0 .2em;border-radius:3px}

/* ---------- news list (homepage #aktuelles; data: assets/press.json via BCG.press) ---------- */
.nw{border-top:1px solid var(--rule)}
.nw__r{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);align-items:baseline;padding:28px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);transition:border-color var(--ui) var(--e)}
.nw__r:hover{border-bottom-color:rgba(5,27,41,.5)}
.nw__d{grid-column:1/3;font-size:14px;font-weight:500;color:var(--ink-3);font-variant-numeric:tabular-nums}
.nw__s{grid-column:3/5;font-size:14px;color:var(--ink-2)}
.nw__t{grid-column:5/13;display:flex;justify-content:space-between;align-items:baseline;gap:24px;font-size:clamp(20px,1.9vw,26px);font-weight:600;letter-spacing:-.022em;line-height:1.25}
.nw__t i{flex:none;font-style:normal;font-weight:400;color:var(--abend);transition:transform var(--ui) var(--e)}
.nw__r:hover .nw__t i{transform:translateX(3px)}
.nw__r:hover .nw__t i.x{transform:translate(3px,-3px)}
.nw__b{display:inline-block;margin-left:10px;padding:2px 8px;border-radius:999px;border:1px solid var(--rule);font-size:11px;font-weight:500;letter-spacing:.02em;color:var(--ink-3);vertical-align:2px}
@media (max-width:1023px){
  .nw__r{grid-template-columns:minmax(0,1fr);row-gap:8px;padding:24px 0}
  .nw__d,.nw__s,.nw__t{grid-column:1/-1}
  .nw__d{display:inline}
  .nw__t{font-size:20px}
}

/* ---------- locations band (Tbilisi | Batumi | Remote, live local time) ---------- */
.locs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gut);border-top:1px solid var(--rule)}
.s-deep .locs,.s-black .locs{border-color:var(--rule-d)}
.locs__i{padding:28px 24px 8px 0}
.locs__i + .locs__i{padding-left:24px;border-left:1px solid var(--rule)}
.s-deep .locs__i + .locs__i,.s-black .locs__i + .locs__i{border-color:var(--rule-d)}
.locs__i h3{font-size:var(--fs-h3);line-height:1.12;letter-spacing:-.02em}
.locs__t{display:flex;align-items:baseline;gap:10px;margin-top:12px;font-size:13px;color:var(--ink-3)}
.locs__t time{font-size:19px;font-weight:500;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums}
.s-deep .locs__t,.s-black .locs__t{color:var(--nebel)}
.s-deep .locs__t time,.s-black .locs__t time{color:var(--licht)}
.locs__i p:not(.locs__t){margin-top:12px;font-size:15px;line-height:1.5;color:var(--ink-2);max-width:32ch}
.s-deep .locs__i p:not(.locs__t),.s-black .locs__i p:not(.locs__t){color:rgba(250,250,250,.78)}
@media (max-width:767px){
  .locs{grid-template-columns:minmax(0,1fr)}
  .locs__i,.locs__i + .locs__i{padding:24px 0;border-left:0;border-bottom:1px solid var(--rule)}
  .s-deep .locs__i,.s-black .locs__i{border-color:var(--rule-d)}
}

/* =====================================================================
   GROUP SCENE .grp  "Die Black Coast Group vereint vier Unternehmen."
   Desktop: pinned 200svh stage, scrubbed by scroll (site.js):
   0–8% lockup moves from centre to the line start; 8–40% the Küstenlinie
   draws with four rises and each company settles at its rise; 40–70%
   locations fade in; 70–100% the headline resolves line by line.
   Mobile and reduced motion: no pin, a vertical list with a stepping line.
   Markup in PARTIALS.md.
   ===================================================================== */
.grp{position:relative;background:var(--tiefsee);color:var(--licht)}
.grp__in{position:relative}
.grp__h{font-size:var(--fs-h2);line-height:1.06;letter-spacing:-.035em;max-width:20ch}
.grp__h .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.grp__h .ln > span{display:block}
.grp__lk{display:block;height:48px;width:auto;max-width:none}
.grp__svg{overflow:visible;pointer-events:none}
.grp__path{fill:none;stroke:var(--licht);stroke-width:1.5;stroke-linecap:butt;vector-effect:non-scaling-stroke}
.grp__track{fill:none;stroke:var(--licht);stroke-opacity:.16;stroke-width:1;stroke-dasharray:1 5;vector-effect:non-scaling-stroke}
.grp__c .logo{--lh:24px}
.grp__t{margin-top:18px;font-size:16px;line-height:1.45;color:var(--nebel);max-width:24ch}
.grp__loc{margin-top:10px;font-size:13px;font-weight:500;color:rgba(250,250,250,.72);font-variant-numeric:tabular-nums}
.grp__c a{color:inherit;text-decoration:none}
/* default (no JS, mobile, reduced motion): list */
.grp{padding:var(--sec) 0}
.grp__lk{margin-top:48px;height:36px}
.grp__stage{position:relative;margin-top:40px;padding-left:40px}
.grp__stage > .grp__svg{position:absolute;left:0;top:0;width:24px;height:100%}
.grp__list{display:grid}
.grp__c{padding:28px 0;border-bottom:1px solid var(--rule-d)}
.grp__c:first-child{padding-top:8px}
@media (min-width:1024px){
  .grp__list{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--gut)}
  .grp__c{border:0;padding:0}
  .grp__stage{padding-left:0}
}
/* pinned stage (desktop with motion; site.js adds .grp--pin) */
.grp--pin{height:200svh;padding:0}
.grp--pin .grp__st{position:sticky;top:0;height:100svh;min-height:640px;overflow:clip}
.grp--pin .grp__in{height:100%}
.grp--pin .grp__h{position:absolute;left:var(--m);right:var(--mr);top:calc(var(--hd-h) + 5svh)}
.grp--pin .grp__h .ln > span{transform:translateY(105%)}
.grp--pin .grp__stage{position:absolute;left:var(--m);right:var(--mr);top:0;bottom:0;margin:0;padding:0}
.grp--pin .grp__lk{position:absolute;left:var(--m);top:0;margin:0;height:48px;transform-origin:0 0}
.grp--pin .grp__stage > .grp__svg{width:100%;height:100%}
.grp--pin .grp__list{display:block}
.grp--pin .grp__c{position:absolute;left:0;top:0;width:var(--cw,22%);opacity:0}
.grp--pin .grp__loc{opacity:0}

/* =====================================================================
   PROCESS LINE (subpages: Capital 7 steps, Karriere 5 steps)
   markup in PARTIALS.md; geometry + drawing in site.js
   ===================================================================== */
.pl{position:relative}
.pl__svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.pl__track{fill:none;stroke:currentColor;stroke-opacity:.22;stroke-width:1;stroke-dasharray:1 5;vector-effect:non-scaling-stroke}
.pl__path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:butt;vector-effect:non-scaling-stroke}
.pl__tick{stroke:currentColor;stroke-opacity:.3;stroke-width:1;vector-effect:non-scaling-stroke}
.pl__steps{position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));column-gap:var(--gut);align-items:end}
.pl__step{padding-bottom:calc(var(--lift) + 40px);transition:opacity var(--ct) var(--e)}
.pl__n{display:block;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink-3);margin-bottom:12px;transition:color var(--ct) var(--e)}
.pl__step.on .pl__n{color:var(--abend)}
.s-deep .pl__step.on .pl__n,.s-black .pl__step.on .pl__n{color:var(--glut)}
.pl__step h3{font-size:19px;line-height:1.2;letter-spacing:-.02em}
.pl__step p{margin-top:10px;font-size:15px;line-height:1.5;color:var(--ink-2)}
.s-deep .pl__step p,.s-black .pl__step p{color:rgba(250,250,250,.78)}
.pl__mini{display:none}
@media (max-width:1023px){
  .pl__svg{display:none}
  .pl__steps{display:block}
  .pl__step{padding:24px 0 24px 0!important;border-bottom:1px solid var(--rule)}
  .s-deep .pl__step,.s-black .pl__step{border-color:var(--rule-d)}
  .pl__mini{display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:5;height:56px;margin:0 calc(-1*var(--mr)) 8px calc(-1*var(--m));padding:0 var(--mr) 0 var(--m);background:var(--licht);border-bottom:1px solid var(--rule);transition:top 420ms var(--e)}
  html:not(.hd-hidden) .pl__mini{top:calc(60px + env(safe-area-inset-top,0px))}
  .s-deep .pl__mini{background:var(--tiefsee);border-color:var(--rule-d)}
  .s-black .pl__mini{background:var(--black);border-color:var(--rule-d)}
  .pl__mini svg{flex:1;height:28px;overflow:visible}
  .pl__mini b{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
}

/* =====================================================================
   REDUCED MOTION: final states, nothing travels
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .js .rv,.js .rl .ln > span,.js .ri,.js .ri img,.js .rule-draw{transform:none!important;clip-path:none!important;transition:opacity 200ms linear!important}
  .js .ri{border-radius:var(--r-img,var(--r));overflow:hidden}
  .js .rl .ln > span{transition:none!important}
  .hd,.hd__meta,.hd__bar,.mm,.mm__i,.mm__sub a,.lp,.hd__mega,.hd__mc,.hd__scrim{transition-duration:160ms!important;transition-delay:0ms!important}
  .hd__mega{clip-path:none!important}
  .hd__mega:not(.open){visibility:hidden}
  html.pt-in main{transform:none}
  html.pt-out main{transition:opacity 160ms linear!important}
}
@media print{.hd,.mm,.lp,.pt,.ft__line,.hd__scrim{display:none!important}body{background:#fff}}
.grp--pin .grp__c .logo{--lh:28px}
.grp--pin .grp__t{margin-top:54px;font-size:17px}
.grp--pin .grp__loc{margin-top:12px}
@media (min-width:1024px){.grp:not(.grp--pin) .grp__stage > .grp__svg{display:none}}
.mm__langs a.lang{min-height:44px;padding:11px 0;font-size:15px;font-weight:400;letter-spacing:0;line-height:1.3;align-items:baseline}
.mm__langs li+li{border-top:0}.mm__langs li:nth-child(n+3){border-top:1px solid rgba(250,250,250,.06)}
.lp ul,.mm__langs ul{grid-template-columns:1fr}.mm__langs li+li{border-top:1px solid rgba(250,250,250,.06)}
