/* ===================== AI CONSULTING · DACH ===================== */
.sh{display:grid;gap:22px;max-width:1100px}
.sh .h2{margin-top:2px}
.sh--row{max-width:none;grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:end;gap:28px 64px}
.sh--row .lead{justify-self:end}
.sw{display:inline-block;width:12px;height:12px;flex:none}
.sw-on{background:var(--vul)}
.sw-rem{box-shadow:inset 0 0 0 1.5px currentColor;opacity:.7}
.sw-a{background:linear-gradient(135deg,var(--vul) 50%,transparent 50%);box-shadow:inset 0 0 0 1.5px var(--vul)}

/* ---------- hero ---------- */
.dh{padding-block:calc(env(safe-area-inset-top,0px) + 128px) clamp(60px,7vw,100px);min-height:100svh;display:flex;align-items:center}
.dh>.wrapx{width:100%}
.dh-k{display:flex;flex-wrap:wrap;gap:8px 22px}
.dh h1{white-space:nowrap;font-size:clamp(44px,min(8.2vw,14.5vh),150px);font-weight:800;letter-spacing:-.06em;line-height:.86;margin-top:22px}
.dh h1 .l{display:block;overflow:hidden;padding:.02em .08em .14em 0;margin-bottom:-.12em}
.dh h1 .l>span{display:inline-block;position:relative}
.dh h1 .dead{color:var(--mut)}.dh h1 .fin{color:var(--ac)}
html.fx .dh h1 .l>span{transform:translate3d(0,112%,0);transition:transform 1.1s var(--eo)}
html.fx .dh h1 .l+.l>.dead{transition-delay:.12s}
html.fx .dh h1 .strike{transition:transform .45s var(--eio) .95s}
html.fx .dh h1 .l>.fin{transition-delay:1.3s}
html.fx.ready .dh h1 .l>span{transform:none}
html.fx.ready .dh h1 .strike,html:not(.fx) .dh h1 .strike{transform:scaleX(1)}
.dh-g{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px clamp(40px,5vw,90px);align-items:end;margin-top:clamp(36px,5vh,64px)}
.dh-l .lead{max-width:44ch}
.dh-b{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.dh-stats{display:flex;flex-wrap:wrap;gap:18px 34px;margin-top:38px;padding-top:24px;border-top:1px solid var(--ln)}
.dh-stats div{display:flex;flex-direction:column;gap:6px}
.dh-stats b{font:800 clamp(28px,2.6vw,40px)/1 var(--f);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.dh-stats span{font:500 12px/1.3 var(--m);color:var(--mut)}

/* departures board */
.board{background:#031A25;border:1px solid var(--line);padding:clamp(16px,1.8vw,26px);font-family:var(--m);color:var(--rime);position:relative}
.board::before{content:"";position:absolute;left:-1px;top:-1px;width:26px;height:3px;background:var(--vul)}
.bd-h{display:flex;justify-content:space-between;gap:14px;font:500 11px/1.2 var(--m);letter-spacing:.12em;text-transform:uppercase;color:var(--gangue);padding-bottom:14px;border-bottom:1px solid var(--line)}
.bd-cols,.bd-rows li{display:grid;grid-template-columns:minmax(0,15.5em) 5.4em minmax(0,1fr) 5.6em;gap:0 14px;align-items:center}
.bd-cols{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gangue);padding:12px 0 8px}
.bd-cols span:nth-child(2),.bd-d{text-align:right}
.bd-rows{list-style:none;margin:0;padding:0}
.bd-rows li{padding:7px 0;border-top:1px solid rgba(27,51,64,.7);font-size:12.5px}
.flap{display:flex;gap:2px;white-space:nowrap;overflow:hidden}
.flap i{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.2em;height:1.75em;background:#0A2A37;border-radius:2px;font-style:normal;font-weight:500;font-size:12px;color:var(--rime);line-height:1}
.flap i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,22,33,.85)}
.flap i.sp{background:transparent}
.flap i.sp::after{display:none}
.flap i.code{color:var(--vul)}
.bd-d{color:var(--rime);font-variant-numeric:tabular-nums}
.bd-p{color:var(--gangue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd-s{justify-self:end;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:4px 7px;border:1px solid var(--line2);color:var(--rime);white-space:nowrap}
.bd-s::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--vul);margin-right:6px;vertical-align:1px}
.bd-rows li.rem .bd-s{background:var(--vul);color:var(--noturno);border-color:var(--vul)}
.bd-rows li.rem .bd-s::before{background:var(--noturno);animation:pulse 1.6s infinite}
.bd-rows li.rem .bd-p{color:var(--rime)}
.bd-f{margin-top:12px;font-size:10.5px;color:var(--gangue);letter-spacing:.04em}
html.fx .board{opacity:0;transform:translateY(24px);transition:opacity .9s var(--eo) .5s,transform 1.1s var(--eo) .5s}
html.fx.ready .board{opacity:1;transform:none}

/* ---------- how ---------- */
.hw{padding-block:clamp(100px,12vw,180px)}
.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:clamp(56px,6vw,90px);border-top:1px solid var(--ln)}
.mode{padding:28px clamp(18px,2.2vw,34px) 10px 0;border-right:1px solid var(--ln)}
.mode+.mode{padding-left:clamp(18px,2.2vw,34px)}
.mode:last-child{border-right:0;padding-right:0}
.mode-h{display:flex;align-items:center;gap:12px}
.mode-h h3{font-size:clamp(26px,2.4vw,36px);font-weight:800;letter-spacing:-.04em;line-height:1}
.mode-h span{margin-left:auto;font:500 11.5px/1 var(--m);color:var(--mut)}
.mode ul{list-style:none;margin:22px 0 0;padding:0}
.mode li{display:grid;gap:4px;padding:15px 0;border-top:1px solid var(--ln)}
.mode li b{font-size:17px;font-weight:700;letter-spacing:-.015em}
.mode li span{font-size:15px;line-height:1.45;color:var(--mut)}
.shape{margin-top:clamp(70px,8vw,120px)}
.shape-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 28px;padding-bottom:22px;border-bottom:1px solid var(--fg)}
.shape-h h3{font-size:clamp(24px,2.2vw,34px);font-weight:800;letter-spacing:-.035em}
.lgd{display:flex;gap:22px;font:500 12px/1 var(--m);color:var(--mut)}
.lgd span{display:inline-flex;align-items:center;gap:8px}
.eng{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:18px 48px;align-items:start;padding:28px 0;border-bottom:1px solid var(--ln)}
.eng-t{display:grid;gap:6px}
.eng-t b{font-size:22px;font-weight:800;letter-spacing:-.03em}
.eng-t span{font-size:15px;color:var(--mut)}
.strip{--n:3;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:3px;padding-bottom:44px;position:relative}
.strip .c{position:relative;height:46px;background:transparent;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--fg) 30%,transparent)}
.strip .c.o{background:var(--vul);box-shadow:none}
.strip .c>b{position:absolute;left:0;top:calc(100% + 10px);font:500 11.5px/1.25 var(--m);white-space:nowrap;color:var(--fg)}
.strip .c>b::before{content:"";position:absolute;left:0;top:-10px;width:1px;height:7px;background:currentColor;opacity:.5}
.strip .c:last-child>b{left:auto;right:0}.strip .c:last-child>b::before{left:auto;right:0}
.eng-t em{font:500 11.5px/1 var(--m);font-style:normal;color:var(--mut);margin-top:6px}
html.fx .strip .c{transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--eo) calc(var(--i) * 40ms)}
html.fx .strip.in .c{transform:none}
.note{margin-top:18px;font:500 12px/1.5 var(--m);color:var(--mut)}

/* ---------- where: sticky map ---------- */
.wh{padding-block:clamp(100px,12vw,180px) clamp(40px,6vw,90px)}
.wh-g{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,5vw,90px);margin-top:clamp(40px,5vw,70px)}
.mapc{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;justify-content:center}
.map-in{position:relative;height:min(86vh,calc((100vw - 2 * var(--g)) * .52 * 1.27));aspect-ratio:754/960;max-width:100%}
#map{display:block;width:100%;height:100%;overflow:visible}
#map .dx{fill:#10303D}
#map .dc{fill:#37525F;transition:fill .6s var(--eo)}
#map.c-de .dc-de,#map.c-at .dc-at,#map.c-ch .dc-ch{fill:#AFC0C7}
#map .gr{stroke:#123241;stroke-width:1;fill:none}
#map .gt{font:500 10px var(--m);fill:#4E6874;letter-spacing:.04em}
#map .arc{fill:none;stroke:#4E6874;stroke-width:1.2;stroke-dasharray:2 5;opacity:.8}
#map .arco{fill:none;stroke:var(--vul);stroke-width:2.2;stroke-linecap:round;transition:stroke-dashoffset 1.1s var(--eo)}
#map .pin{transition:opacity .4s}
#map .pin circle.p{fill:var(--vul);stroke:var(--noturno);stroke-width:2}
#map .pin .pr{fill:none;stroke:var(--vul);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .4s,transform .6s var(--eo);transform:scale(.4)}
#map .pin.on .pr{opacity:1;transform:scale(1)}
#map .pin text{font:600 13px var(--f);fill:var(--rime);letter-spacing:-.01em;paint-order:stroke;stroke:#001621;stroke-width:4px;stroke-linejoin:round}
#map .pin text.k{font:500 9.5px var(--m);fill:var(--gangue);letter-spacing:.08em}
#map .pin.on text{fill:#fff}
#map .pin.hq circle.p{fill:var(--rime)}
#map .hqr{fill:none;stroke:var(--rime);stroke-width:1;opacity:.6;transform-box:fill-box;transform-origin:center;animation:hqp 2.4s var(--eo) infinite}
@keyframes hqp{0%{transform:scale(.3);opacity:.8}100%{transform:scale(2.4);opacity:0}}
#map .sec circle{fill:var(--rime);opacity:.55}
#map .sec text{font:500 10px var(--m);fill:var(--gangue);opacity:0;transition:opacity .4s;paint-order:stroke;stroke:#001621;stroke-width:3px}
#map.c-at .sec.at text,#map.c-ch .sec.ch text{opacity:1}
#map .sc line{stroke:var(--gangue);stroke-width:1.5}
#map .sc text{font:500 10px var(--m);fill:var(--gangue)}
.map-ro{position:absolute;left:0;top:calc(50% - min(43vh,33vw));z-index:2;font:500 11px/1.6 var(--m);color:var(--gangue);pointer-events:none;max-width:60%}
.map-ro b{display:block;color:var(--rime);font-weight:500;font-size:12px}
.map-ro .km{display:inline-block;margin-top:6px;padding:3px 7px;background:var(--vul);color:var(--noturno);font-weight:500}
.cities{padding-block:14vh 20vh}
.cty{min-height:78vh;display:flex;flex-direction:column;justify-content:center;gap:0;padding-block:40px;opacity:.28;transition:opacity .6s var(--eo)}
.cty.on{opacity:1}
.cty-k{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;padding-bottom:16px;border-bottom:1px solid var(--ln)}
.cty-k .ll{font:500 11.5px/1.2 var(--m);color:var(--mut)}
.cty h3{font-size:clamp(52px,6vw,104px);font-weight:800;letter-spacing:-.06em;line-height:.9;margin-top:22px}
.cty-s{font-size:clamp(20px,1.8vw,26px);font-weight:700;letter-spacing:-.025em;color:var(--ac);margin-top:12px}
.cty-r{font-size:17px;line-height:1.55;color:var(--mut);margin-top:18px;max-width:52ch}
.cty-ask{margin-top:28px}
.cty-ask ol{list-style:none;margin:12px 0 0;padding:0;counter-reset:a}
.cty-ask li{counter-increment:a;display:grid;grid-template-columns:34px minmax(0,1fr);padding:11px 0;border-top:1px solid var(--ln);font-size:16px;font-weight:600;line-height:1.4;letter-spacing:-.01em}
.cty-ask li::before{content:counter(a,decimal-leading-zero);font:500 11px/1.9 var(--m);color:var(--ac)}
.cty-m{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;margin:24px 0 0}
.cty-m div{display:grid;gap:6px;align-content:start}
.cty-m dt{font:600 11px/1.2 var(--f);letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.cty-m dd{margin:0;font-size:14.5px;line-height:1.5}
.cty-m dd a{color:var(--ac);border-bottom:1px solid currentColor}
.cty-a{align-self:flex-start;display:inline-flex;gap:10px;margin-top:28px;padding:14px 0 6px;font-weight:700;font-size:16px;border-bottom:2px solid var(--vul)}
.cty-a span{transition:transform .5s var(--eo)}.cty-a:hover span{transform:translateX(6px)}

/* ---------- rules ---------- */
.rl{padding-block:clamp(100px,12vw,180px)}
.rtabs{display:none}
.rules{margin-top:clamp(50px,6vw,90px);border-top:1px solid var(--fg)}
.rr{display:grid;grid-template-columns:minmax(0,190px) repeat(3,minmax(0,1fr));gap:0 28px;padding:20px 0;border-bottom:1px solid var(--ln)}
.rr>b{font:600 11px/1.5 var(--f);letter-spacing:.16em;text-transform:uppercase;color:var(--mut);padding-top:2px}
.rr>span{font-size:15.5px;line-height:1.5}
.rr--h{padding:22px 0 18px;border-bottom:1px solid var(--fg)}
.rr--h span{font-size:clamp(24px,2.3vw,34px);font-weight:800;letter-spacing:-.04em;display:flex;align-items:center;gap:12px}
.rr--h i{font:500 11px/1 var(--m);font-style:normal;letter-spacing:.06em;padding:5px 6px;background:var(--fg);color:var(--bg)}
.rnote{margin-top:22px;font:500 12px/1.6 var(--m);color:var(--mut);max-width:90ch}
.rnote a{color:var(--fg);border-bottom:1px solid var(--ac)}

/* ---------- faq ---------- */
.fq{padding-block:clamp(100px,12vw,170px)}
.fq-g{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px clamp(40px,6vw,110px);align-items:start}
.fq .sh{position:sticky;top:130px}
.fq .h3{font-size:clamp(34px,3.6vw,58px);letter-spacing:-.05em;line-height:.98}
.faq{border-top:1px solid var(--ln)}
.faq details{border-bottom:1px solid var(--ln)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-size:clamp(18px,1.5vw,22px);font-weight:700;letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{position:relative;flex:none;width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line2);transition:transform .5s var(--eo),background-color .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;margin:-.75px 0 0 -5.5px;background:currentColor}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg);background:var(--vul);box-shadow:none;color:var(--noturno)}
.faq details p{padding:0 50px 26px 0;font-size:16.5px;line-height:1.6;color:var(--mut);max-width:62ch}

/* ---------- cta ---------- */
.dc{padding-block:clamp(110px,13vw,200px)}
.dc .label{color:var(--mut)}
.dc h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .28em;font-size:clamp(52px,min(9vw,17vh),168px);font-weight:800;letter-spacing:-.065em;line-height:.88;margin-top:22px}
.dc h2 .or{font:500 .22em/1 var(--m);letter-spacing:0;align-self:center;padding:.4em .6em;border:1.5px solid currentColor;border-radius:999px;transform:translateY(-.3em)}
.dc h2 b{font-weight:800}
.dc-b{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 40px;align-items:end;margin-top:clamp(40px,5vw,70px);padding-top:28px;border-top:1.5px solid rgba(0,22,33,.3)}
.dc-b p{font-size:clamp(18px,1.5vw,22px);font-weight:600;max-width:36ch;letter-spacing:-.015em}
.dc-a{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}
.dc .btn{--btnbg:#001621;--btnfg:#FF4103;--fg:#E4ECEF;--bg:#001621}
.dc .mail{font:500 14px/1 var(--m);border-bottom:1.5px solid currentColor;padding-bottom:4px}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .dh-g{grid-template-columns:1fr}
  .sh--row{grid-template-columns:1fr}.sh--row .lead{justify-self:start}
  .modes{grid-template-columns:1fr}
  .mode,.mode+.mode{padding:26px 0 8px;border-right:0}
  .mode+.mode{border-top:1px solid var(--ln)}
  .fq-g{grid-template-columns:1fr}.fq .sh{position:static}
}
@media (max-width:900px){
  .wh-g{grid-template-columns:1fr;gap:0}
  .mapc{top:calc(env(safe-area-inset-top,0px) + 70px);height:42vh;height:42svh;z-index:4;background:var(--bg);flex-direction:column;justify-content:flex-start;align-items:center}
  .mapc::after{content:"";position:absolute;left:0;right:0;top:100%;height:28px;background:linear-gradient(var(--bg),transparent);pointer-events:none}
  .map-in{height:calc(100% - 40px)}
  .map-ro{top:auto;bottom:6px;left:0;right:0;max-width:none;display:flex;justify-content:space-between;align-items:center;gap:10px;line-height:1.2}
  .map-ro .l2,.map-ro br{display:none}
  .map-ro b{font-size:11px}
  .map-ro .km{margin:0;white-space:nowrap}
  .cities{padding-block:4vh 10vh}
  .cty{min-height:auto;padding-block:48px}
  .eng{grid-template-columns:1fr}
  .rtabs{display:flex;gap:6px;margin-top:40px}
  .rtabs button{flex:1;min-height:44px;font:700 14px/1 var(--f);color:var(--fg);background:transparent;border:1px solid var(--ln);cursor:pointer}
  .rtabs button[aria-selected="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
  .rules{margin-top:18px}
  .rr{grid-template-columns:minmax(0,110px) minmax(0,1fr);gap:0 18px}
  .rr>[data-k]{display:none}
  .rules[data-c="de"] .rr>[data-k="de"],.rules[data-c="at"] .rr>[data-k="at"],.rules[data-c="ch"] .rr>[data-k="ch"]{display:block}
  .rr--h{display:none}
  .dc-b{grid-template-columns:1fr}
}
@media (max-width:640px){
  .dh{min-height:0;padding-top:calc(env(safe-area-inset-top,0px) + 118px)}
  .dh h1{white-space:normal;font-size:clamp(44px,13.4vw,70px)}
  .dh h1 .strike{display:none}
  .dh h1 .dead{text-decoration:line-through;text-decoration-color:var(--vul);text-decoration-thickness:.085em}
  .dh-b .btn{flex:1 1 auto}
  .dh-stats{gap:18px 26px}
  .board{padding:14px 12px}
  .bd-cols,.bd-rows li{grid-template-columns:minmax(0,1fr) 44px 58px;gap:0 8px}
  .bd-s{font-size:9.5px;padding:4px 5px;letter-spacing:.04em}.bd-s::before{display:none}
  .dh-stats{display:grid;grid-template-columns:1fr 1fr}
  .bd-pc,.bd-p{display:none}
  .flap i{width:1.05em;height:1.6em;font-size:10.5px}
  .bd-rows li{font-size:11.5px}
  .bd-h span:last-child{display:none}
  .cty h3{font-size:52px}
  .cty-m{grid-template-columns:1fr}
  .strip .c{height:38px}
  .strip .c>b{font-size:10.5px}
  .faq details p{padding-right:0}
  .dc h2{font-size:clamp(46px,14vw,80px)}
  html.fx .hud-bl{display:none}
}
