/* GENERATED by build-public-css-bundles.php
 * sources-sha256: 46afe0ef518755aeeb20673b286e7968b57fef60679e9e9880230cd597c34edb
 * Do not edit this file directly.
 */

/* source: rt-fonts.css */
/* RailTime - lokale Schriften (aus Google Fonts, Subsets: latin, latin-ext, greek).
   Selbst gehostet fuer DSGVO-Konformitaet ohne externe Verbindung. */

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-400-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/manrope-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-500-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/manrope-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-600-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/manrope-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-700-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/manrope-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/manrope-800-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/manrope-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/manrope-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/space-mono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/space-mono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/space-mono-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/space-mono-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* source: design-system.css */
:root{--rt-red:#e4002b;--rt-ink:#090c11;--rt-paper:#f4f2ed;--rt-line:rgba(255,255,255,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;font-family:Manrope,Arial,sans-serif;overflow-x:hidden}.rt-shell{min-height:100vh}.rt-nav{position:fixed;z-index:100;top:0;left:0;right:0;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,6vw,90px);background:rgba(7,9,13,.82);border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(18px)}.rt-nav img{width:150px}.rt-nav nav{display:flex;gap:24px}.rt-nav a{color:#fff;text-decoration:none;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.rt-hero{position:relative;min-height:100svh;overflow:hidden;background:#05070a;color:#fff}.rt-hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.rt-hero:after{position:absolute;inset:0;content:"";background:var(--hero-gradient)}.rt-hero-copy{position:relative;z-index:2;width:min(1180px,calc(100% - 44px));margin:auto;padding-top:27vh}.rt-kicker{color:#ff3759;font:600 11px 'DM Mono',monospace;letter-spacing:.13em;text-transform:uppercase}.rt-display{max-width:980px;margin:15px 0 26px;font-size:clamp(42px,7.2vw,106px);line-height:.9;letter-spacing:-.07em}.rt-button{display:inline-flex;align-items:center;gap:15px;padding:14px 20px;background:var(--rt-red);color:#fff;text-decoration:none;font:700 12px Manrope;text-transform:uppercase;letter-spacing:.06em}.rt-section{padding:clamp(74px,10vw,145px) max(22px,8vw)}.rt-title{max-width:880px;margin:12px 0 36px;font-size:clamp(34px,5vw,72px);line-height:.98;letter-spacing:-.055em}.rt-lead{max-width:700px;font-size:17px;line-height:1.75;color:#69717b}.rt-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid currentColor;border-bottom:1px solid currentColor}.rt-metrics div{padding:35px;border-right:1px solid currentColor}.rt-metrics strong{display:block;font-size:clamp(45px,7vw,95px);line-height:.8;letter-spacing:-.06em}.rt-metrics span{font:500 11px 'DM Mono';text-transform:uppercase}.rt-service-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.rt-card{position:relative;grid-column:span 4;min-height:360px;overflow:hidden;color:#fff;text-decoration:none;background:#111820}.rt-card:nth-child(4),.rt-card:nth-child(5){grid-column:span 6}.rt-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}.rt-card:after{position:absolute;inset:0;content:"";background:linear-gradient(0deg,rgba(4,6,9,.9),transparent 70%)}.rt-card:hover img{transform:scale(1.045)}.rt-card div{position:absolute;z-index:2;inset:auto 24px 24px}.rt-card h3{font-size:clamp(22px,3vw,40px);line-height:1;margin:8px 0}.rt-card span,.rt-card b{font:500 10px 'DM Mono';text-transform:uppercase;color:#ff5772}.rt-process{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#313842}.rt-process div{padding:28px;background:#111820;color:#fff}.rt-process b{color:#e4002b;font-size:30px}.rt-process p{font-size:13px;line-height:1.55;color:#bcc3cc}.rt-split{display:grid;grid-template-columns:1fr 1fr;min-height:560px}.rt-split img{width:100%;height:100%;object-fit:cover}.rt-split>div{padding:clamp(55px,8vw,110px);display:flex;flex-direction:column;justify-content:center}.rt-emergency{display:flex;justify-content:space-between;align-items:center;gap:40px;padding:75px max(22px,8vw);background:linear-gradient(120deg,#111820,#3b0a18);color:#fff}.rt-footer{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px;padding:70px max(22px,8vw) 25px;background:#07090d;color:#aeb5bf;border-top:3px solid #e4002b}.rt-footer img{width:140px}.rt-footer a{display:block;color:#dbe0e6;text-decoration:none;font-size:12px;margin:9px 0}.rt-footer small{grid-column:1/-1;border-top:1px solid #252b34;padding-top:18px}.theme-1{--hero-gradient:linear-gradient(90deg,rgba(3,5,8,.94),rgba(3,5,8,.42) 58%,rgba(228,0,43,.38))}.theme-1 .rt-section.alt{background:#10151d;color:#fff}.theme-2{--hero-gradient:linear-gradient(0deg,rgba(4,5,8,.94),transparent 70%),linear-gradient(90deg,rgba(4,5,8,.25),rgba(73,0,19,.55))}.theme-2 .rt-display{text-align:center;margin-inline:auto}.theme-2 .rt-hero-copy{text-align:center}.theme-2 .rt-section.alt{background:#f3f0e9}.theme-3{--hero-gradient:linear-gradient(90deg,rgba(225,218,203,.93),rgba(225,218,203,.45),rgba(18,43,61,.62));color:#111820}.theme-3 .rt-nav{background:rgba(22,32,42,.9)}.theme-3 .rt-hero{color:#111820}.theme-3 .rt-button{background:#111820}.theme-3 .rt-section.alt{background:#183a55;color:#fff}.theme-3 .rt-card{border-radius:0}.theme-4{--hero-gradient:linear-gradient(112deg,rgba(7,8,11,.9),rgba(7,8,11,.2) 50%,rgba(228,0,43,.54))}.theme-4 .rt-title{font-family:Georgia,serif}.theme-4 .rt-section.alt{background:#e7e2d7}.theme-4 .rt-card:nth-child(odd){transform:translateY(35px)}@media(max-width:780px){.rt-nav nav{display:none}.rt-display{font-size:48px}.rt-service-grid,.rt-process,.rt-split,.rt-footer{display:block}.rt-card,.rt-card:nth-child(4),.rt-card:nth-child(5){display:block;min-height:310px;margin-bottom:12px}.rt-process div{margin-bottom:1px}.rt-split img{height:330px}.rt-emergency{display:block}.rt-emergency .rt-button{margin-top:22px}.rt-footer>div{margin-bottom:30px}.theme-4 .rt-card:nth-child(odd){transform:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.rt-scroll-bound{opacity:var(--rt-scroll-opacity,1);transform:translate3d(0,var(--rt-scroll-y,0),0) scale(var(--rt-scroll-scale,1));transform-origin:center;will-change:transform,opacity}
.theme-5{--hero-gradient:linear-gradient(90deg,rgba(8,9,12,.94),rgba(8,9,12,.24) 60%,rgba(91,8,28,.54));background:#f5f2ec;color:#25252b}.theme-5 .rt-nav{height:72px;background:rgba(247,244,238,.94);border-color:rgba(30,30,36,.12)}.theme-5 .rt-nav a{color:#25252b}.theme-5 .rt-nav>a:last-child{padding:10px 15px;background:#760d29;color:#fff}.theme-5 .rt-hero{color:#fff}.theme-5 .rt-hero-copy{padding-top:31vh}.theme-5 .rt-display,.theme-5 .rt-title{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em}.theme-5 .rt-display{max-width:820px;font-size:clamp(48px,6.5vw,94px);line-height:.94}.theme-5 .rt-title{font-size:clamp(34px,4.3vw,62px);line-height:1.02}.theme-5 .rt-button{background:#760d29;border-radius:2px}.theme-5 .rt-metrics{position:relative;z-index:3;width:min(1120px,calc(100% - 44px));margin:-44px auto 0;background:#f8f6f1;color:#25252b;border:1px solid #d7d1c7;box-shadow:0 22px 55px rgba(31,28,24,.12)}.theme-5 .rt-metrics div{padding:27px 32px;border-color:#d7d1c7}.theme-5 .rt-metrics strong{font-family:Georgia,serif;font-size:clamp(42px,5.2vw,72px);font-weight:400}.theme-5 .rt-section{padding-top:clamp(62px,7vw,105px);padding-bottom:clamp(62px,7vw,105px)}.theme-5 .rt-intro-section{display:grid;grid-template-columns:minmax(160px,.5fr) 1.4fr 1fr;column-gap:5vw;align-items:start}.theme-5 .rt-intro-section .rt-title,.theme-5 .rt-intro-section .rt-lead{margin-top:0}.theme-5 .rt-section.alt{background:#24242b;color:#fff}.theme-5 .rt-service-grid{grid-template-columns:repeat(12,1fr);gap:18px;align-items:start}.theme-5 .rt-card{min-height:310px;background:#5d0b22}.theme-5 .rt-card:nth-child(1),.theme-5 .rt-card:nth-child(4){grid-column:span 7}.theme-5 .rt-card:nth-child(2),.theme-5 .rt-card:nth-child(3){grid-column:span 5}.theme-5 .rt-card:nth-child(5){grid-column:3/span 8;min-height:380px}.theme-5 .rt-card:after{background:linear-gradient(0deg,rgba(24,20,25,.94),rgba(24,20,25,.05) 75%)}.theme-5 .rt-card h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(25px,3vw,41px)}.theme-5 .rt-process{gap:14px;background:transparent}.theme-5 .rt-process div{position:relative;min-height:200px;padding:28px;background:#fff;color:#25252b;border-top:3px solid #760d29;box-shadow:0 18px 44px rgba(30,28,25,.08)}.theme-5 .rt-process p{color:#66616a}.theme-5 .rt-split{min-height:510px;background:#e9e2d8}.theme-5 .rt-split>div{padding:clamp(50px,7vw,90px)}.theme-5 .rt-split>div.bg-gray-900{background:#760d29!important}.theme-5 .rt-emergency{background:linear-gradient(115deg,#1f2026 0 66%,#760d29 66%)}.theme-5 .rt-footer{background:#202127}.theme-5 main.pt-20{background:#f5f2ec}.theme-5 main.pt-20>.rt-section:nth-child(2){background:#f5f2ec}.theme-5 main.pt-20 [data-service-tile]{border-radius:3px;box-shadow:0 15px 38px rgba(30,28,25,.12)}.theme-5 main.pt-20>.rt-section.bg-gray-900{background:#25252b!important}.theme-5 form{border-top:4px solid #760d29}.theme-5 input,.theme-5 select,.theme-5 textarea{background:#faf9f6}@media(max-width:900px){.theme-5 .rt-intro-section{grid-template-columns:1fr}.theme-5 .rt-intro-section .rt-title{margin-top:12px}.theme-5 .rt-service-grid{display:grid;grid-template-columns:1fr 1fr}.theme-5 .rt-card,.theme-5 .rt-card:nth-child(1),.theme-5 .rt-card:nth-child(2),.theme-5 .rt-card:nth-child(3),.theme-5 .rt-card:nth-child(4),.theme-5 .rt-card:nth-child(5){grid-column:auto;min-height:300px}.theme-5 .rt-card:nth-child(5){grid-column:1/-1}}@media(max-width:620px){.theme-5 .rt-metrics{display:block;margin-top:-24px}.theme-5 .rt-metrics div{border-right:0;border-bottom:1px solid #d7d1c7}.theme-5 .rt-service-grid{display:block}.theme-5 .rt-emergency{background:linear-gradient(150deg,#1f2026 0 76%,#760d29 76%)}}
.accordion-panel{transition:max-height .48s cubic-bezier(.22,1,.36,1)}[data-accordion-item] .accordion-plus{transition:transform .35s ease}[data-accordion-item].is-open .accordion-plus{transform:rotate(45deg);color:#e4002b}
.rt-nav{opacity:0;transform:translateY(-105%);transition:opacity .45s ease,transform .45s ease}.rt-nav.is-visible{opacity:1;transform:none}.rt-intro-logo{position:absolute;z-index:4;inset:0;display:grid;place-items:center;opacity:0;transform:scale(.82);transition:opacity 1.15s ease,transform 1.45s cubic-bezier(.16,1,.3,1);pointer-events:none}.rt-intro-logo img{width:clamp(130px,16vw,235px);filter:drop-shadow(0 22px 45px rgba(0,0,0,.7))}.rt-intro-logo.is-visible{opacity:1;transform:scale(1)}.rt-hero-copy{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease;pointer-events:none}.rt-hero-copy.is-visible{opacity:.9;transform:none}.theme-1 .rt-service-grid{grid-template-columns:repeat(12,1fr)}.theme-2 .rt-service-grid{display:flex;flex-direction:column}.theme-2 .rt-card{min-height:250px;width:100%}.theme-2 .rt-card div{inset:50% 5vw auto;transform:translateY(-50%)}.theme-2 .rt-card h3{font-size:clamp(34px,5vw,70px)}.theme-3 .rt-service-grid{display:block;border-top:1px solid rgba(255,255,255,.35)}.theme-3 .rt-card{display:grid;grid-template-columns:110px 260px 1fr;min-height:190px;border-bottom:1px solid rgba(255,255,255,.35)}.theme-3 .rt-card img{position:relative;width:260px}.theme-3 .rt-card:after{background:linear-gradient(90deg,transparent,#0d2638)}.theme-3 .rt-card div{inset:50% 4vw auto 410px;transform:translateY(-50%)}.theme-4 .rt-service-grid{grid-template-columns:repeat(10,1fr);align-items:start}.theme-4 .rt-card{grid-column:span 5;min-height:440px}.theme-4 .rt-card:nth-child(3){grid-column:2/span 8}.theme-4 .rt-card:nth-child(4),.theme-4 .rt-card:nth-child(5){grid-column:span 5}@media(max-width:780px){.theme-2 .rt-card,.theme-3 .rt-card,.theme-4 .rt-card,.theme-4 .rt-card:nth-child(3){display:block;min-height:310px;width:auto}.theme-3 .rt-card img{position:absolute;width:100%}.theme-3 .rt-card div{inset:auto 24px 24px;transform:none}}

/* source: layout-polish.css */
/* Shared quality pass and inertial scroll-video intro for layouts 1, 3 and 5. */
[id]{scroll-margin-top:96px}
html{scrollbar-gutter:stable}
html.rt-intro-playing,body.rt-intro-playing{overflow:hidden!important;overscroll-behavior:none;touch-action:none}
.theme-1 .rt-hero::before,.theme-5 .rt-hero::before{position:absolute;z-index:1;inset:0;content:"";pointer-events:none;background:linear-gradient(112deg,rgba(2,3,6,.12) 0%,rgba(8,6,10,.28) 58%,rgba(74,7,24,.38) 100%);transition:background .8s ease,opacity .8s ease}
.theme-1 .rt-hero.is-video-ready,.theme-1 .rt-hero.is-video-playing,.theme-3 .rt-hero.is-video-ready,.theme-3 .rt-hero.is-video-playing,.theme-5 .rt-hero.is-video-ready,.theme-5 .rt-hero.is-video-playing{height:100svh;min-height:100svh;background:#020306}
.theme-1 .rt-hero.is-video-ready,.theme-1 .rt-hero.is-video-playing,.theme-1 .rt-hero.is-video-finishing,.theme-1 .rt-hero.is-video-complete,.theme-3 .rt-hero.is-video-ready,.theme-3 .rt-hero.is-video-playing,.theme-3 .rt-hero.is-video-finishing,.theme-3 .rt-hero.is-video-complete,.theme-5 .rt-hero.is-video-ready,.theme-5 .rt-hero.is-video-playing,.theme-5 .rt-hero.is-video-finishing,.theme-5 .rt-hero.is-video-complete{isolation:isolate;transition:height 1.1s cubic-bezier(.16,1,.3,1),min-height 1.1s cubic-bezier(.16,1,.3,1),background 1.1s ease}
.theme-1 .rt-hero.is-video-ready video,.theme-1 .rt-hero.is-video-playing video,.theme-1 .rt-hero.is-video-finishing video,.theme-3 .rt-hero.is-video-ready video,.theme-3 .rt-hero.is-video-playing video,.theme-3 .rt-hero.is-video-finishing video,.theme-5 .rt-hero.is-video-ready video,.theme-5 .rt-hero.is-video-playing video,.theme-5 .rt-hero.is-video-finishing video{z-index:0;display:block;background:#020306;backface-visibility:hidden;transform:translate3d(0,0,0) scale(1.001);transform-origin:50% 50%;transition:transform 1.15s cubic-bezier(.16,1,.3,1),opacity .95s ease,filter .95s ease;will-change:transform,opacity;contain:paint}
.theme-1 .rt-hero.is-video-playing video,.theme-3 .rt-hero.is-video-playing video,.theme-5 .rt-hero.is-video-playing video{filter:saturate(.94) contrast(1.04) brightness(.92)}
.theme-1 .rt-hero.is-video-finishing,.theme-1 .rt-hero.is-video-complete,.theme-3 .rt-hero.is-video-finishing,.theme-3 .rt-hero.is-video-complete,.theme-5 .rt-hero.is-video-finishing,.theme-5 .rt-hero.is-video-complete{height:clamp(250px,38svh,420px);min-height:clamp(250px,38svh,420px);background:radial-gradient(circle at 50% 45%,rgba(137,9,39,.28),transparent 30%),linear-gradient(110deg,#020306 0%,#08070b 62%,#3d0716 100%)}
.theme-1 .rt-hero.is-video-finishing video,.theme-3 .rt-hero.is-video-finishing video,.theme-5 .rt-hero.is-video-finishing video{opacity:0;filter:saturate(.35) brightness(.26);transform:translate3d(0,-22%,0) scale(1.09)}
.theme-1 .rt-hero.is-video-complete video,.theme-3 .rt-hero.is-video-complete video,.theme-5 .rt-hero.is-video-complete video{opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,-24%,0) scale(1.1)}
.theme-1 .rt-hero.is-video-ready .rt-intro-logo,.theme-3 .rt-hero.is-video-ready .rt-intro-logo,.theme-5 .rt-hero.is-video-ready .rt-intro-logo,.theme-1 .rt-hero.is-video-playing:not(.is-video-logo-visible) .rt-intro-logo,.theme-3 .rt-hero.is-video-playing:not(.is-video-logo-visible) .rt-intro-logo,.theme-5 .rt-hero.is-video-playing:not(.is-video-logo-visible) .rt-intro-logo{opacity:0;transform:translate3d(0,20px,0) scale(.84)}
.theme-1 .rt-hero.is-video-logo-visible .rt-intro-logo,.theme-1 .rt-hero.is-video-finishing .rt-intro-logo,.theme-1 .rt-hero.is-video-complete .rt-intro-logo,.theme-3 .rt-hero.is-video-logo-visible .rt-intro-logo,.theme-3 .rt-hero.is-video-finishing .rt-intro-logo,.theme-3 .rt-hero.is-video-complete .rt-intro-logo,.theme-5 .rt-hero.is-video-logo-visible .rt-intro-logo,.theme-5 .rt-hero.is-video-finishing .rt-intro-logo,.theme-5 .rt-hero.is-video-complete .rt-intro-logo{opacity:1;transform:translate3d(0,0,0) scale(1);transition:opacity .8s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.theme-1 .rt-hero.is-video-finishing .rt-intro-logo img,.theme-1 .rt-hero.is-video-complete .rt-intro-logo img,.theme-3 .rt-hero.is-video-finishing .rt-intro-logo img,.theme-3 .rt-hero.is-video-complete .rt-intro-logo img,.theme-5 .rt-hero.is-video-finishing .rt-intro-logo img,.theme-5 .rt-hero.is-video-complete .rt-intro-logo img{width:clamp(140px,15vw,215px)}
.theme-1 .rt-hero.is-video-ready .rt-hero-copy,.theme-1 .rt-hero.is-video-playing .rt-hero-copy,.theme-1 .rt-hero.is-video-finishing .rt-hero-copy,.theme-1 .rt-hero.is-video-complete .rt-hero-copy,.theme-5 .rt-hero.is-video-ready .rt-hero-copy,.theme-5 .rt-hero.is-video-playing .rt-hero-copy,.theme-5 .rt-hero.is-video-finishing .rt-hero-copy,.theme-5 .rt-hero.is-video-complete .rt-hero-copy{opacity:0!important;visibility:hidden;pointer-events:none;transform:translate3d(0,28px,0)!important}
.rt-video-scroll-cue{position:absolute;z-index:6;left:50%;bottom:clamp(22px,3.5svh,38px);display:grid;justify-items:center;gap:8px;color:#fff;opacity:.9;pointer-events:none;transform:translate3d(-50%,0,0);transition:opacity .35s ease,transform .35s ease,visibility .35s ease}.theme-3 .rt-video-scroll-cue,.theme-5 .rt-video-scroll-cue{bottom:72px}.rt-video-scroll-cue>span{position:relative;width:25px;height:38px;border:1px solid rgba(255,255,255,.68);border-radius:16px;box-shadow:0 0 0 0 rgba(228,0,43,.26);animation:rtVideoCuePulse 2s ease-out infinite}.rt-video-scroll-cue i{position:absolute;top:7px;left:50%;width:4px;height:7px;border-radius:4px;background:#e4002b;transform:translateX(-50%);animation:rtVideoCueDot 1.7s ease-in-out infinite}.rt-video-scroll-cue small{color:rgba(255,255,255,.82);font:600 8px/1 'Space Mono',monospace;letter-spacing:.16em;text-transform:uppercase}.rt-hero.is-video-scroll-engaged .rt-video-scroll-cue,.rt-hero.is-video-near-end .rt-video-scroll-cue,.rt-hero.is-video-finishing .rt-video-scroll-cue,.rt-hero.is-video-complete .rt-video-scroll-cue{opacity:0;visibility:hidden;transform:translate3d(-50%,8px,0)}@keyframes rtVideoCuePulse{0%,100%{box-shadow:0 0 0 0 rgba(228,0,43,.22)}55%{box-shadow:0 0 0 10px rgba(228,0,43,0)}}@keyframes rtVideoCueDot{0%{opacity:0;transform:translate(-50%,0)}24%{opacity:1}80%,100%{opacity:0;transform:translate(-50%,13px)}}
.theme-3 .rt-hero.is-video-finishing .sa-orbit,.theme-3 .rt-hero.is-video-complete .sa-orbit{transform:scale(.52);opacity:.42;transition:transform 1s cubic-bezier(.16,1,.3,1),opacity .8s ease}
.theme-3 .rt-hero.is-video-finishing .sa-orbit--two,.theme-3 .rt-hero.is-video-complete .sa-orbit--two{opacity:.12}
.theme-3 .rt-hero.is-video-finishing .sa-hero__status,.theme-3 .rt-hero.is-video-complete .sa-hero__status{bottom:14px;justify-content:center;transition:bottom 1s cubic-bezier(.16,1,.3,1)}
.theme-5 .rt-hero.is-video-finishing + .rt-metrics,.theme-5 .rt-hero.is-video-complete + .rt-metrics{margin-top:0;transition:margin-top 1.1s cubic-bezier(.16,1,.3,1)}
@media(prefers-reduced-motion:reduce){.rt-video-scroll-cue>span,.rt-video-scroll-cue i{animation:none}}
.rt-nav__phone{display:flex;align-items:center;gap:12px;white-space:nowrap}
.theme-1 .rt-metrics{position:relative;z-index:3;background:#0c1118;color:#fff;border-color:#2b3440}
.theme-1 .rt-metrics div{position:relative;padding:25px 34px;border-color:#2b3440}
.theme-1 .rt-metrics small,.theme-2 .rt-metrics small,.theme-5 .rt-metrics small{display:block;margin-bottom:7px;color:#e4002b;font:600 10px 'DM Mono',monospace;letter-spacing:.12em}
.theme-1 .rt-metrics strong{font-size:clamp(38px,4.5vw,66px)}

/* Layout 2: compact cinematic system rather than full-screen stacked cards. */
.theme-2 .rt-section{padding-top:clamp(58px,7vw,92px);padding-bottom:clamp(58px,7vw,92px)}
.theme-2 .rt-title{font-size:clamp(31px,3.8vw,52px)}
.theme-2 .rt-metrics{background:#11141a;color:#fff;border-color:#333944}
.theme-2 .rt-metrics div{padding:25px 32px;border-color:#333944}
.theme-2 .rt-metrics strong{font-size:clamp(38px,4.5vw,64px)}
.theme-2 .rt-service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.theme-2 .rt-card,.theme-2 .rt-card:nth-child(4),.theme-2 .rt-card:nth-child(5){display:block;grid-column:auto;width:auto;min-height:310px}
.theme-2 .rt-card div{inset:auto 18px 20px;transform:none}
.theme-2 .rt-card h3{font-size:clamp(20px,2vw,29px);line-height:1.02}

/* Layout 5: editorial rail-industry composition. */
.theme-5{background:#f4f0e9}
.theme-5 .rt-hero-copy{width:min(1180px,calc(100% - 56px));padding-top:30vh;text-align:left}
.theme-5 .rt-hero-copy>*{max-width:520px}
.theme-5 .rt-display{font-size:clamp(44px,5.4vw,78px);line-height:.96}
.theme-5 .rt-metrics{width:min(1080px,calc(100% - 48px));margin:-34px auto 0;background:#202127;color:#fff;border:0;box-shadow:0 22px 55px rgba(21,18,20,.18)}
.theme-5 .rt-metrics div{display:grid;grid-template-columns:42px auto;grid-template-rows:auto auto;align-items:end;column-gap:14px;padding:22px 30px;border-color:#42434a}
.theme-5 .rt-metrics small{grid-row:1/3;align-self:center;width:36px;height:36px;display:grid;place-items:center;margin:0;border:1px solid #62636b;border-radius:50%;color:#ff506c}
.theme-5 .rt-metrics strong{grid-column:2;font-family:Manrope,Arial,sans-serif;font-size:clamp(31px,3.8vw,50px);font-weight:700;letter-spacing:-.055em}
.theme-5 .rt-metrics span{grid-column:2;color:#c8c9ce;font-size:10px;letter-spacing:.1em}
.theme-5 .rt-intro-section{padding-top:clamp(64px,7vw,95px);padding-bottom:clamp(64px,7vw,95px)}
.theme-5 .rt-intro-section .rt-title{max-width:650px;font-size:clamp(30px,3.4vw,48px);line-height:1.04}
.theme-5 #leistungen{padding-top:clamp(58px,6vw,84px);padding-bottom:clamp(58px,6vw,84px)}
.theme-5 #leistungen .rt-title{max-width:720px;margin-bottom:28px}
.theme-5 .rt-service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.theme-5 .rt-card,.theme-5 .rt-card:nth-child(1),.theme-5 .rt-card:nth-child(2),.theme-5 .rt-card:nth-child(3),.theme-5 .rt-card:nth-child(4),.theme-5 .rt-card:nth-child(5){grid-column:auto;min-height:300px;border:1px solid rgba(255,255,255,.12)}
.theme-5 .rt-card:nth-child(5){min-height:300px}
.theme-5 .rt-card div{inset:auto 17px 19px}
.theme-5 .rt-card h3{font-family:Georgia,serif;font-size:clamp(18px,1.65vw,24px);line-height:1.04;overflow-wrap:anywhere}
.theme-5 .rt-card b{display:inline-block;margin-top:6px}
.theme-5 main>.rt-section:nth-of-type(5){background:#ebe4d9}
.theme-5 .rt-process{position:relative;grid-template-columns:repeat(4,1fr);gap:0;background:transparent;padding-top:26px}
.theme-5 .rt-process::before{position:absolute;top:43px;left:7%;right:7%;height:2px;content:"";background:linear-gradient(90deg,#760d29,#d9a7b5 50%,#760d29)}
.theme-5 .rt-process div{position:relative;z-index:1;min-height:150px;padding:0 24px;background:transparent;border:0;box-shadow:none;text-align:center}
.theme-5 .rt-process b{display:grid;place-items:center;width:36px;height:36px;margin:0 auto 22px;border-radius:50%;background:#760d29;color:#fff;font:700 12px Manrope}
.theme-5 .rt-process p{max-width:230px;margin:auto;color:#5c5960;font-size:13px;line-height:1.55}
.theme-5 .rt-map-tech{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);min-height:690px;background:#e8e1d7}
.theme-5 .rt-map-tech__map{display:grid;place-items:center;padding:45px}
.theme-5 .rt-map-tech .rt-germany-module{padding:0;background:transparent}
.theme-5 .rt-map-tech .rt-map-stage{width:min(100%,530px);margin:auto}
.theme-5 .rt-map-tech__copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(52px,6vw,88px);background:#24252b;color:#fff;overflow:hidden}
.theme-5 .rt-map-tech__copy .rt-title{margin-bottom:20px}
.theme-5 .rt-map-tech__copy .rt-lead{color:#c6c7cd;font-size:15px}
.theme-5 .rt-map-tech__copy img{width:100%;height:210px;margin-top:30px;object-fit:cover;clip-path:polygon(0 0,100% 0,100% 83%,88% 100%,0 100%)}
.theme-5 .rt-emergency{position:relative;isolation:isolate;padding-top:58px;padding-bottom:58px;background:#17181d;overflow:hidden}
.theme-5 .rt-emergency::before{position:absolute;z-index:-1;inset:0 0 0 auto;width:38%;content:"";background:linear-gradient(135deg,#6b0b24,#aa1239);clip-path:polygon(26% 0,100% 0,100% 100%,0 100%)}
.theme-5 .rt-emergency .rt-title{margin-bottom:14px;font-size:clamp(34px,4vw,56px)}
.theme-5 .rt-emergency>div{max-width:750px}
.theme-5 .rt-footer{grid-template-columns:1.4fr .8fr .8fr;gap:70px;padding-top:64px;background:radial-gradient(circle at 8% 0,#3b0b18,transparent 32%),#101116;border-top:0}
.theme-5 .rt-footer__brand{max-width:440px}
.theme-5 .rt-footer__brand>p{font-size:14px;line-height:1.7;color:#c2c3c8}
.theme-5 .rt-footer__hotline{display:inline-flex;align-items:center;gap:16px;margin-top:20px;padding:12px 16px;border:1px solid #4d3038!important;background:rgba(118,13,41,.22)}
.theme-5 .rt-footer__hotline span{color:#ff5b78;font-size:9px;text-transform:uppercase;letter-spacing:.12em}
.theme-5 .rt-footer__hotline strong{color:#fff;font-size:15px}
.theme-5 .rt-footer>div>b{display:block;margin-bottom:18px;color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.theme-5 .rt-footer a{font-size:13px}

/* Animation end-state safety: fixed visual zones and no overlapping transforms. */
.theme-1 .rt-hero-copy,.theme-5 .rt-hero-copy{pointer-events:none}
.theme-1 .rt-hero-copy.is-interactive,.theme-5 .rt-hero-copy.is-interactive{pointer-events:auto}
@media(max-width:1050px){.theme-2 .rt-service-grid,.theme-5 .rt-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.theme-2 .rt-card:nth-child(4),.theme-2 .rt-card:nth-child(5),.theme-5 .rt-card:nth-child(4),.theme-5 .rt-card:nth-child(5){grid-column:auto}.theme-5 .rt-map-tech{grid-template-columns:1fr 1fr}.theme-5 .rt-map-tech__map{padding:30px}}
@media(max-width:780px){.theme-1 .rt-hero.is-video-finishing,.theme-1 .rt-hero.is-video-complete,.theme-3 .rt-hero.is-video-finishing,.theme-3 .rt-hero.is-video-complete,.theme-5 .rt-hero.is-video-finishing,.theme-5 .rt-hero.is-video-complete{height:clamp(220px,34svh,285px);min-height:clamp(220px,34svh,285px)}.theme-3 .rt-hero.is-video-finishing .sa-hero__status,.theme-3 .rt-hero.is-video-complete .sa-hero__status{font-size:.44rem}.theme-2 .rt-service-grid,.theme-5 .rt-service-grid{display:grid;grid-template-columns:1fr 1fr}.theme-2 .rt-card,.theme-5 .rt-card{min-height:260px!important;margin:0}.theme-5 .rt-process{display:grid;grid-template-columns:1fr 1fr;gap:24px}.theme-5 .rt-process::before{display:none}.theme-5 .rt-map-tech{grid-template-columns:1fr}.theme-5 .rt-map-tech__map{padding:35px 20px}.theme-5 .rt-map-tech__copy{padding:48px 24px}.theme-5 .rt-emergency::before{width:55%;opacity:.45}.theme-5 .rt-footer{display:block}.theme-5 .rt-hero-copy{width:min(100% - 38px,620px);padding-top:55vh;text-align:center}.theme-5 .rt-hero-copy>*{max-width:none}.theme-5 .rt-display{font-size:42px}.theme-5 .rt-metrics{width:calc(100% - 28px)}.theme-5 .rt-metrics div{padding:18px 20px}}
@media(max-width:520px){.theme-1 .rt-nav,.theme-2 .rt-nav,.theme-5 .rt-nav{height:64px;padding:0 13px}.theme-1 .rt-nav img,.theme-2 .rt-nav img,.theme-5 .rt-nav img{width:112px}.theme-1 .rt-nav>a:last-child,.theme-2 .rt-nav>a:last-child,.theme-5 .rt-nav>a:last-child{min-width:50px;padding:9px 10px!important;font-size:0;text-align:center}.theme-1 .rt-nav>a:last-child::after,.theme-2 .rt-nav>a:last-child::after,.theme-5 .rt-nav>a:last-child::after{content:"24/7";font-size:11px;letter-spacing:.08em}.theme-2 .rt-service-grid,.theme-5 .rt-service-grid{grid-template-columns:1fr}.theme-2 .rt-card,.theme-5 .rt-card{min-height:245px!important}.theme-5 .rt-process{grid-template-columns:1fr}.theme-5 .rt-metrics{display:block}.theme-5 .rt-metrics div{border-bottom:1px solid #42434a}.theme-5 .rt-hero-copy{padding-top:52vh}.theme-5 .rt-intro-section{padding-top:48px;padding-bottom:48px}.theme-5 .rt-intro-section .rt-title{font-size:clamp(26px,8.5vw,34px)}}

/* =========================================================================
   Notfall-/24-7-Button: das Telefon startet als roter Kreis links und gleitet
   beim Hover/Keyboard-Fokus ueber die Beschriftung bis an den rechten Rand.
   Die Beschriftung wechselt dabei leicht verzoegert auf RailTime-Rot, sodass
   die Bewegung des Kreises zuerst sichtbar bleibt. Der mobile Drawer nutzt
   seine eigene, vollbreite Hotline-Karte und bleibt von der Kreisfahrt frei.
   ========================================================================= */
.rt-nav__phone--kompakt {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 3px 14px 3px 3px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 999px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .12),
    0 1px 2px rgba(0, 0, 0, .25);
  color: #fff;
  text-decoration: none;
  line-height: 1;
  isolation: isolate;
  transition:
    border-color .35s ease,
    box-shadow .35s ease,
    transform .18s cubic-bezier(.4, 0, .2, 1);
}

.rt-nav__phone--kompakt::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(105deg, transparent 34%, rgba(255, 255, 255, .16) 47%, transparent 60%);
  background-size: 260% 100%;
  background-position: 165% 0;
  pointer-events: none;
  transition: background-position .75s cubic-bezier(.19, 1, .22, 1);
}

.rt-nav__phone--kompakt i {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 26%, #ff3355, #e4002b 58%, #bf0023);
  color: #fff;
  font-size: .74rem;
  animation: rt-hotline-glow 3.2s ease-in-out infinite;
  transition:
    left .72s cubic-bezier(.16, 1, .3, 1),
    transform .38s cubic-bezier(.16, 1, .3, 1),
    box-shadow .38s ease;
}

.rt-nav__phone--kompakt i::before {
  display: inline-block;
  transform-origin: 50% 60%;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .3));
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) > span {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  height: 20px;
  font-size: 0;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  transition:
    transform .72s cubic-bezier(.16, 1, .3, 1),
    color .38s ease .2s;
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) > span::before,
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) > span::after {
  position: absolute;
  top: 50%;
  display: block;
  width: calc(100% - var(--rt-hotline-circle));
  font: 800 .68rem/1 Manrope, Arial, sans-serif;
  letter-spacing: .1em;
  text-align: center;
  white-space: nowrap;
  transition:
    opacity .24s ease,
    transform .36s cubic-bezier(.16, 1, .3, 1),
    visibility 0s linear;
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) > span::before {
  left: var(--rt-hotline-circle);
  color: #fff;
  content: "24/7";
  opacity: 1;
  transform: translate3d(calc(-1 * var(--rt-hotline-label-nudge)), -50%, 0);
  visibility: visible;
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) > span::after {
  left: 0;
  color: #fff;
  content: attr(data-hotline-hover);
  opacity: 0;
  transform: translate3d(var(--rt-hotline-label-nudge), -50%, 0);
  visibility: hidden;
  text-shadow: 0 1px 2px rgba(87, 0, 17, .45);
  transition-duration: .01s, .36s, 0s;
  transition-delay: 0s;
}

/* Nur der Desktop-CTA bekommt die Kreisbahn. Absolute Positionierung haelt
   die Breite des Buttons stabil und macht den Zielpunkt rechts exakt. */
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) {
  --rt-hotline-circle: 28px;
  --rt-hotline-width: 110px;
  --rt-hotline-label-nudge: 4px;
  display: inline-grid;
  grid-template-columns: 1fr;
  align-items: center;
  width: var(--rt-hotline-width);
  min-height: 36px;
  padding: 3px;
  border-left: 1px solid rgba(255, 255, 255, .14);
  overflow: hidden;
  outline: 1px solid transparent;
  animation: rt-hotline-ping 4.8s cubic-bezier(.22, 1, .36, 1) infinite;
  white-space: nowrap;
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) i {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 0;
  flex: none;
  transform: translateY(-50%);
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) span {
  position: relative;
  z-index: 1;
  grid-column: 1;
  color: transparent !important;
}

/* Beide ZustÃ¤nde nutzen spiegelbildliche HÃ¤lften: Text und Kreis stehen
   jeweils mittig, damit der Tausch wie eine klar gefÃ¼hrte Schaltbewegung wirkt. */
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):hover span,
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):focus-visible span {
  transform: translateX(0);
}

/* Rote Hintergrundspur: sie wächst von links in derselben Zeit wie die
   Kreisfahrt und macht den neuen linken Schwerpunkt sichtbar. */
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline)::before {
  position: absolute;
  z-index: 0;
  inset: 1px auto 1px 1px;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #e4002b 0%, #f01542 52%, #e4002b 100%);
  background-size: 180% 100%;
  background-position: 100% 0;
  box-shadow: inset -1px 0 rgba(255, 255, 255, .14), 0 0 16px rgba(228, 0, 43, .34);
  content: "";
  opacity: 0;
  pointer-events: none;
  transition:
    width .72s cubic-bezier(.16, 1, .3, 1),
    opacity .2s ease,
    background-position .72s cubic-bezier(.16, 1, .3, 1);
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):hover::before,
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):focus-visible::before {
  width: 100%;
  opacity: 1;
  background-position: 0 0;
  border-radius: inherit;
}

.rt-nav__phone--kompakt:hover,
.rt-nav__phone--kompakt:focus-visible {
  border-color: rgba(228, 0, 43, .5);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .16),
    0 6px 20px -8px rgba(228, 0, 43, .75);
  transform: translateY(-1px);
}

.rt-nav__phone--kompakt:hover::after,
.rt-nav__phone--kompakt:focus-visible::after { background-position: -60% 0; }

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):hover i,
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):focus-visible i {
  left: calc(100% - var(--rt-hotline-circle));
  background: radial-gradient(circle at 32% 26%, #ff5a75, #ed002e 58%, #e4002b 100%);
  transform: translateY(-50%) scale(1);
  box-shadow: 0 0 0 5px rgba(228, 0, 43, .16);
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):hover,
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):focus-visible {
  border-color: rgba(228, 0, 43, .5);
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):hover span,
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):focus-visible span {
  color: #ff4a69 !important;
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):hover > span::before,
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):focus-visible > span::before {
  opacity: 0;
  transform: translate3d(calc(-1 * var(--rt-hotline-label-nudge)), -50%, 0);
  visibility: hidden;
}

.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):hover > span::after,
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):focus-visible > span::after {
  opacity: 1;
  transform: translate3d(var(--rt-hotline-label-nudge), -50%, 0);
  visibility: visible;
  transition-delay: 0s;
}

.rt-nav__phone--kompakt:hover i::before,
.rt-nav__phone--kompakt:focus-visible i::before { animation: rt-hotline-ring .75s ease; }

/* Klick: kurzer, satter Press. */
.rt-nav__phone--kompakt:active { transform: translateY(0) scale(.95); }
.rt-nav__phone--kompakt:active i { transform: scale(.92); }
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):active {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .2),
    0 2px 8px -4px rgba(228, 0, 43, .9);
  transform: translateY(0) scale(.96);
}
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):active::before {
  width: 100%;
  opacity: 1;
  transition-duration: .18s;
}
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):active i {
  animation: rt-hotline-click .42s cubic-bezier(.2, .9, .3, 1);
}
.rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):active i {
  transform: translateY(-50%) scale(.92);
}
.rt-nav .rt-nav__phone--kompakt { color: #fff !important; font-size: inherit; }
@keyframes rt-hotline-glow {
  0%, 100% {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, .3),
      0 2px 6px rgba(228, 0, 43, .4),
      0 0 0 0 rgba(228, 0, 43, .45);
  }
  50% {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, .3),
      0 2px 6px rgba(228, 0, 43, .4),
      0 0 0 6px rgba(228, 0, 43, 0);
  }
}
@keyframes rt-hotline-ring {
  0%, 100% { transform: rotate(0); }
  15% { transform: rotate(-16deg); }
  30% { transform: rotate(13deg); }
  45% { transform: rotate(-10deg); }
  60% { transform: rotate(7deg); }
  75% { transform: rotate(-4deg); }
}
@keyframes rt-hotline-click {
  0%, 100% { transform: translateY(-50%) scale(1.08); }
  45% { transform: translateY(-50%) scale(.82); }
}
@keyframes rt-hotline-ping {
  0%, 68%, 100% {
    outline-color: rgba(228, 0, 43, 0);
    outline-offset: 0;
  }
  75% {
    outline-color: rgba(255, 74, 105, .42);
    outline-offset: 0;
  }
  91% {
    outline-color: rgba(228, 0, 43, 0);
    outline-offset: 8px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .rt-nav__phone--kompakt i { animation: none; }
  .rt-nav__phone--kompakt:hover i::before { animation: none; }
  .rt-nav__phone--kompakt::after { transition: none; }
  .rt-nav__phone--kompakt i,
  .rt-nav__phone--kompakt span { transition: none; }
  .rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) i,
  .rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) span {
    transition: none;
  }
  .rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) {
    animation: none;
  }
  .rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline)::before,
  .rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) > span::before,
  .rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline) > span::after {
    transition: none;
  }
  .rt-nav .rt-nav__phone--kompakt:not(.rt-mobile-drawer__hotline):active i {
    animation: none;
  }
}

/* ---------------------------------------------------------------------------
   Scrollbalken der Gesamtseite ausblenden. Das Scrollen selbst (Rad, Touch,
   Tastatur, ScrollTrigger) bleibt vollstaendig erhalten - nur die sichtbare
   Leiste verschwindet. Die bewusst gestalteten, duennen Scrollbalken in den
   kleinen Dropdowns (Mobil-Menue, Sprachliste) behalten wegen ihrer hoeheren
   Selektor-Spezifitaet ihr eigenes Styling.
   --------------------------------------------------------------------------- */
html {
  scrollbar-width: none;        /* Firefox */
  -ms-overflow-style: none;     /* alte Edge / IE */
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {       /* Chrome, Safari, neue Edge */
  width: 0;
  height: 0;
  display: none;
}

/* Navigations-Icons (plg_system_lmzbuildermenu + Template-Defaults) */
.rt-nav nav a.rt-nav__link--mit-icon,
.rt-nav nav a.rt-nav__link--icon { display: inline-flex; align-items: center; gap: 8px; }
.rt-nav nav a.rt-nav__link--mit-icon i { font-size: .95em; opacity: .85; }
.rt-nav nav a.rt-nav__link--icon i { font-size: .95rem; }
.rt-nav nav a.rt-nav__link--icon { padding-inline: 4px; }
/* Responsive editorial media keeps the established layout box while allowing
   an AVIF <source> to wrap the original PageBuilder <img> fallback. */
.lmz-responsive-picture {
    display: contents;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.rt-inline-icon {
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* source: logo-3d.css */
.rt-logo-lockup {
  position: relative;
  display: grid;
  justify-items: center;
  width: fit-content;
  max-width: 100%;
  isolation: isolate;
}

.rt-logo-3d {
  position: relative;
  width: clamp(132px, 15vw, 230px);
  aspect-ratio: 1;
  filter: drop-shadow(0 24px 38px rgba(0, 0, 0, .58));
}

.rt-logo-3d::before {
  position: absolute;
  z-index: -1;
  inset: 18%;
  content: '';
  border-radius: 50%;
  background: radial-gradient(circle, rgba(228, 0, 43, .3), rgba(228, 0, 43, 0) 70%);
  filter: blur(18px);
  transform: scale(.88);
  transition: opacity .7s ease, transform .9s cubic-bezier(.16, 1, .3, 1);
}

.rt-logo-3d canvas,
.rt-logo-3d__fallback {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.rt-logo-3d canvas {
  z-index: 2;
  opacity: 0;
  transition: opacity .45s ease;
}

.rt-logo-3d__fallback {
  z-index: 1;
  object-fit: contain;
  opacity: 1;
  transition: opacity .35s ease;
}

.rt-logo-3d.is-ready canvas { opacity: 1; }
.rt-logo-3d.is-ready .rt-logo-3d__fallback { opacity: 0; }

.rt-logo-wordmark {
  position: relative;
  z-index: 3;
  display: block;
  width: clamp(190px, 22vw, 340px);
  max-width: 100%;
  height: auto;
  margin-top: clamp(-12px, -1vw, -6px);
  object-fit: contain;
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .62));
}

.theme-1 .rt-intro-logo .rt-logo-lockup { gap: 0; }
.theme-1 .rt-intro-logo .rt-logo-3d__fallback { width: 100%; }
.theme-1 .rt-intro-logo .rt-logo-wordmark { width: clamp(190px, 22vw, 340px); }

.theme-1 .rt-hero.is-video-finishing .rt-intro-logo .rt-logo-3d,
.theme-1 .rt-hero.is-video-complete .rt-intro-logo .rt-logo-3d {
  width: clamp(108px, 11vw, 152px);
  transition: width 1s cubic-bezier(.16, 1, .3, 1);
}

.theme-1 .rt-hero.is-video-finishing .rt-intro-logo .rt-logo-wordmark,
.theme-1 .rt-hero.is-video-complete .rt-intro-logo .rt-logo-wordmark {
  width: clamp(164px, 17vw, 238px);
  transition: width 1s cubic-bezier(.16, 1, .3, 1);
}

@media (max-width: 780px) {
  .theme-1 .rt-intro-logo .rt-logo-3d { width: clamp(112px, 27vw, 148px); }
  .theme-1 .rt-intro-logo .rt-logo-wordmark { width: clamp(180px, 46vw, 238px); }

  .theme-1 .rt-hero.is-video-finishing .rt-intro-logo .rt-logo-3d,
  .theme-1 .rt-hero.is-video-complete .rt-intro-logo .rt-logo-3d { width: 102px; }

  .theme-1 .rt-hero.is-video-finishing .rt-intro-logo .rt-logo-wordmark,
  .theme-1 .rt-hero.is-video-complete .rt-intro-logo .rt-logo-wordmark { width: 174px; }
}

@media (prefers-reduced-motion: reduce) {
  .rt-logo-3d canvas,
  .rt-logo-3d__fallback,
  .rt-logo-3d::before { transition: none; }
}

/* source: signal-atlas.css */
.theme-3{--sa-red:#e4002b;--sa-black:#080b10;--sa-ink:#151b24;--sa-paper:#f3f1ec;background:var(--sa-black);color:#fff}.theme-3.is-home .rt-nav{background:rgba(6,8,11,.88);border-color:rgba(255,255,255,.1)}.sa-main{overflow:hidden}.sa-hero{min-height:100svh;background:#030406;color:#fff}.sa-hero:after{display:none}.sa-hero video{filter:contrast(1.05) saturate(.85);transition:opacity .35s linear,filter .35s linear}.sa-hero.is-scroll-video video{z-index:0;will-change:opacity;filter:saturate(calc(.88 - var(--hero-end-opacity,0)*.35)) brightness(calc(.85 - var(--hero-end-opacity,0)*.55))}.sa-hero.is-scrub-complete video{opacity:.025}.sa-hero__shade{position:absolute;z-index:1;inset:0;background:radial-gradient(circle at 50% 46%,transparent 0 20%,rgba(3,4,6,.24) 62%,rgba(3,4,6,.82)),linear-gradient(115deg,rgba(3,4,6,.72),transparent 52%,rgba(105,0,22,.28));pointer-events:none}.sa-hero .rt-intro-logo{z-index:3;transition:none}.sa-hero .rt-intro-logo img{width:clamp(145px,15vw,230px)}.sa-orbit{position:absolute;border:1px solid rgba(228,0,43,.55);border-radius:50%;transition:none}.sa-orbit--one{width:clamp(260px,30vw,430px);aspect-ratio:1}.sa-orbit--two{width:clamp(320px,38vw,560px);aspect-ratio:1;border-color:rgba(255,255,255,.14)}.sa-orbit--one:after{position:absolute;top:50%;left:-10px;width:19px;height:19px;border-radius:50%;background:var(--sa-red);box-shadow:0 0 0 8px rgba(228,0,43,.15);content:""}.sa-hero__status{position:absolute;z-index:3;right:clamp(20px,5vw,78px);bottom:34px;left:clamp(20px,5vw,78px);display:flex;align-items:center;gap:12px;color:#fff;font:700 .57rem/1 Space Mono,monospace;letter-spacing:.14em}.sa-hero__status i{width:34px;height:1px;background:rgba(255,255,255,.4)}.sa-scroll-cue{position:absolute;z-index:3;top:50%;right:clamp(20px,4vw,64px);display:grid;gap:10px;justify-items:center;color:#fff;font:700 .54rem Space Mono,monospace;letter-spacing:.1em;text-transform:uppercase;writing-mode:vertical-rl}.sa-scroll-cue b{width:1px;height:55px;background:var(--sa-red)}
.sa-intro,.sa-services,.sa-process{padding:clamp(66px,8vw,118px) max(22px,calc((100vw - 1240px)/2));}.sa-intro{display:grid;grid-template-columns:1.15fr .85fr;gap:42px;background:#f7f6f3;color:#10151b}.sa-intro__lead{align-self:end;max-width:800px}.sa-eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 18px;color:var(--sa-red)!important;font:700 .61rem/1.25 Space Mono,monospace!important;letter-spacing:.13em;text-transform:uppercase}.sa-eyebrow span{width:32px;height:1px;background:currentColor}.sa-intro h1,.sa-section-head h2,.sa-team h2,.sa-process h2,.sa-network h2,.sa-emergency h2{margin:0;letter-spacing:-.052em;line-height:1.02}.sa-intro h1{font-size:clamp(2.1rem,4.4vw,4.25rem)}.sa-intro__image{position:relative;min-height:330px;margin:0}.sa-intro__image:before{position:absolute;z-index:1;top:-13px;right:-13px;width:62%;height:55%;border:2px solid var(--sa-red);content:""}.sa-intro__image img{position:relative;z-index:2;width:100%;height:100%;object-fit:cover}.sa-intro__image figcaption{position:absolute;z-index:3;right:0;bottom:0;max-width:220px;padding:15px 17px;background:var(--sa-red);color:#fff;font-weight:800;font-size:.68rem;line-height:1.45}.sa-intro__facts{display:grid;grid-column:1/-1;grid-template-columns:repeat(3,1fr);margin-top:18px;border-top:1px solid rgba(16,21,27,.15);border-bottom:1px solid rgba(16,21,27,.15)}.sa-intro__facts div{display:flex;align-items:baseline;gap:12px;padding:18px 0;border-right:1px solid rgba(16,21,27,.15)}.sa-intro__facts div:last-child{border:0}.sa-intro__facts strong{font:800 clamp(1.55rem,2.5vw,2.35rem)/1 Space Mono,monospace}.sa-intro__facts span{font-size:.62rem;text-transform:uppercase}.sa-arrow-link{display:inline-flex;align-items:center;gap:16px;margin-top:28px;color:inherit!important;font-size:.7rem;font-weight:800;text-decoration:none;text-transform:uppercase;letter-spacing:.06em}.sa-arrow-link b,.sa-service>b{color:var(--sa-red);font-size:1.25rem;transition:transform .25s}.sa-arrow-link:hover b,.sa-service:hover>b{transform:translateX(6px)}
.sa-rail{overflow:hidden;padding:15px 0;background:var(--sa-red);color:#fff}.sa-rail>div{display:flex;width:max-content;align-items:center;gap:26px;font:700 .68rem Space Mono,monospace;letter-spacing:.06em;text-transform:uppercase;will-change:transform}.sa-rail i{flex:0 0 auto;width:8px;height:8px;border:1px solid rgba(255,255,255,.75);border-radius:50%}.sa-rail span{flex:0 0 auto;white-space:nowrap}.sa-services{background:#10161e}.sa-section-head{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:end;margin-bottom:40px}.sa-section-head h2{max-width:760px;font-size:clamp(2rem,3.7vw,3.75rem)}.sa-section-head .sa-arrow-link{justify-self:end}.sa-services__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.sa-service{position:relative;display:grid;grid-column:span 4;min-height:300px;overflow:hidden;padding:18px;color:#fff;text-decoration:none;background:#1a222c}.sa-service:nth-child(4),.sa-service:nth-child(5){grid-column:span 6;min-height:255px}.sa-service:after{position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,6,9,.92),rgba(4,6,9,.06) 70%);content:""}.sa-service figure{position:absolute;inset:0;margin:0}.sa-service img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .4s}.sa-service:hover img{transform:scale(1.06);filter:saturate(1.2)}.sa-service>span,.sa-service>h3,.sa-service>b{position:relative;z-index:2}.sa-service>span{font:700 .6rem Space Mono,monospace;color:#ff5a78}.sa-service h3{align-self:end;max-width:330px;margin:0;font-size:clamp(1.32rem,2.1vw,2.15rem);line-height:1.04;letter-spacing:-.04em}.sa-service>b{position:absolute;z-index:3;right:18px;bottom:16px}
.sa-team{display:grid;grid-template-columns:1.05fr .95fr;min-height:620px;background:#f3f1ec;color:#10151b}.sa-team__visual{position:relative;display:grid;grid-template-columns:1.1fr .75fr;gap:12px;padding:clamp(30px,5vw,74px);background:#1a222c}.sa-team__visual figure{margin:0;overflow:hidden}.sa-team__visual figure:first-child{margin-top:48px}.sa-team__visual img{width:100%;height:100%;object-fit:cover}.sa-team__copy{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(52px,7vw,100px)}.sa-team__copy h2{font-size:clamp(2rem,3.4vw,3.45rem)}.sa-team__copy>p:not(.sa-eyebrow){max-width:560px;color:#5f6974;font-size:.94rem}.sa-team__seal{display:flex;align-items:center;gap:12px;margin-top:38px;padding-top:20px;border-top:1px solid rgba(16,21,27,.15)}.sa-team__seal strong{font:800 2.4rem/1 Space Mono,monospace;color:var(--sa-red)}.sa-team__seal span{font-size:.68rem;text-transform:uppercase;line-height:1.45}
.sa-process{background:#090c11}.sa-process .sa-section-head{grid-template-columns:1fr;margin-bottom:35px}.sa-process h2{max-width:850px;font-size:clamp(2rem,3.7vw,3.75rem)}.sa-process__steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.18)}.sa-process__steps article{min-height:175px;padding:24px;border-right:1px solid rgba(255,255,255,.18)}.sa-process__steps article:first-child{padding-left:0}.sa-process__steps article:last-child{border-right:0}.sa-process__steps b{color:var(--sa-red);font:700 1.25rem Space Mono,monospace}.sa-process__steps span{display:block;width:7px;height:7px;margin:23px 0;border-radius:50%;background:var(--sa-red);box-shadow:0 0 0 7px rgba(228,0,43,.16)}.sa-process__steps p{max-width:220px;margin:0;color:#aab3bd;font-size:.76rem;line-height:1.55}.sa-network{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;background:#eef0ee;color:#10151b}.sa-network__map{padding:clamp(32px,6vw,80px);background:radial-gradient(circle at 50% 50%,#fff,transparent 62%)}.sa-network .rt-germany-module{padding:0!important;background:transparent!important}.sa-network .rt-map-header{display:none}.sa-network__copy{padding:clamp(52px,7vw,105px);background:linear-gradient(135deg,#e5e6e4,#f8f7f3)}.sa-network__copy h2{font-size:clamp(2rem,3.4vw,3.35rem)}.sa-network__copy>p:not(.sa-eyebrow){font-size:.84rem;line-height:1.7;color:#65707a}.sa-emergency{display:grid;grid-template-columns:.86fr 1.14fr;max-width:1240px;margin:clamp(58px,8vw,110px) auto;padding:0 max(22px,calc((100vw - 1240px)/2));background:transparent}.sa-emergency figure{min-height:365px;margin:0;overflow:hidden}.sa-emergency figure img{width:100%;height:100%;object-fit:cover}.sa-emergency>div{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(36px,6vw,78px);background:linear-gradient(130deg,#171e27,#080a0e 74%,#400614)}.sa-emergency h2{font-size:clamp(2rem,3.6vw,3.5rem)}.sa-emergency>div>p:not(.sa-eyebrow){max-width:550px;color:#b2bac3}.sa-button{display:inline-flex;gap:17px;align-items:center;margin-top:20px;padding:15px 19px;background:var(--sa-red);color:#fff!important;text-decoration:none;text-transform:uppercase;font-size:.68rem;font-weight:800}.sa-button b{font-size:1.1rem}
.sa-motion-up,.sa-motion-left,.sa-motion-right{will-change:transform,opacity}.theme-3 .rt-footer{background:#090c11}.theme-3 .rt-footer__brand p{color:#b4bdc6}@media(max-width:850px){.sa-intro,.sa-team,.sa-network,.sa-emergency{grid-template-columns:1fr}.sa-intro__facts{grid-template-columns:1fr}.sa-intro__facts div{border-right:0;border-bottom:1px solid rgba(16,21,27,.15)}.sa-section-head{grid-template-columns:1fr}.sa-section-head .sa-arrow-link{justify-self:start}.sa-service,.sa-service:nth-child(4),.sa-service:nth-child(5){grid-column:span 6}.sa-service:nth-child(5){grid-column:4/span 6}.sa-process__steps{grid-template-columns:1fr 1fr}.sa-process__steps article:nth-child(2){border-right:0}.sa-process__steps article:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.18)}}@media(max-width:560px){.sa-hero__status{gap:8px;font-size:.45rem}.sa-hero__status i{width:15px}.sa-scroll-cue{display:none}.sa-intro,.sa-services,.sa-process{padding:58px 20px}.sa-intro{gap:26px}.sa-intro__image{min-height:260px}.sa-service,.sa-service:nth-child(4),.sa-service:nth-child(5){grid-column:1/-1;min-height:245px}.sa-process__steps{grid-template-columns:1fr}.sa-process__steps article,.sa-process__steps article:nth-child(2){min-height:145px;padding:22px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.sa-team__visual{min-height:390px;padding:24px}.sa-team__copy{padding:58px 22px}.sa-network__map,.sa-network__copy{padding:48px 20px}.sa-emergency{margin:58px 0;padding:0;grid-template-columns:1fr}.sa-emergency figure{min-height:270px}.sa-emergency>div{padding:48px 20px}}
@media(prefers-reduced-motion:reduce){.sa-rail>div{animation:none}.sa-motion-up,.sa-motion-left,.sa-motion-right{opacity:1!important;transform:none!important}}

/* source: signal-atlas-tune.css */
.sa-intro h1 {
  font-size: clamp(1.95rem, 3.65vw, 3.65rem);
}

.theme-3 .sa-hero--intro {
  position: relative;
  height: 100svh;
  min-height: 620px;
  overflow: hidden;
  isolation: isolate;
  background: #030406;
  transition:
    height 1.1s cubic-bezier(.16, 1, .3, 1),
    min-height 1.1s cubic-bezier(.16, 1, .3, 1);
}

.theme-3 .sa-hero--intro.is-video-intro-docked {
  height: clamp(250px, 38svh, 420px);
  min-height: clamp(250px, 38svh, 420px);
}

.theme-3 .sa-hero--intro video {
  z-index: 0;
  opacity: 1;
  filter: saturate(.94) contrast(1.05) brightness(.94);
  transform: scale(1.002);
  transition: filter 1s ease, transform 1.2s cubic-bezier(.16, 1, .3, 1);
}

.theme-3 .sa-hero--intro.is-video-intro-complete video {
  filter: saturate(.72) contrast(1.08) brightness(.52);
  transform: scale(1.018);
}

.theme-3 .sa-hero--intro .sa-hero__shade {
  opacity: 0;
  background:
    radial-gradient(circle at 50% 48%, rgba(228, 0, 43, .17), transparent 29%),
    linear-gradient(180deg, rgba(0, 0, 0, .1), rgba(0, 0, 0, .62));
  transition: opacity .9s ease;
}

.theme-3 .sa-hero--intro.is-video-intro-complete .sa-hero__shade {
  opacity: 1;
}

.theme-3 .sa-hero--intro .rt-intro-logo {
  z-index: 4;
  opacity: 0;
  transform: scale(.64);
  transition: opacity .46s ease-out, transform .72s cubic-bezier(.16, 1, .3, 1);
  pointer-events: none;
}

.theme-3 .sa-hero--intro.is-video-logo-visible .rt-intro-logo {
  opacity: 1;
  transform: scale(1);
  transition: opacity .46s ease-out, transform .72s cubic-bezier(.16, 1, .3, 1);
}

.theme-3 .sa-hero__brand {
  position: relative;
  display: grid;
  width: fit-content;
  max-width: 92vw;
  justify-items: center;
}

.theme-3 .sa-hero__brand::before {
  content: none;
}

.theme-3 .sa-logo-stage {
  position: relative;
  display: grid;
  width: clamp(250px, 29vw, 410px);
  aspect-ratio: 1;
  place-items: center;
  isolation: isolate;
  transition: width 1.1s cubic-bezier(.16, 1, .3, 1);
}

.theme-3 .sa-hero--intro.is-video-intro-docked .sa-logo-stage {
  width: clamp(170px, 18vw, 220px);
}

.theme-3 .sa-logo-stage::before,
.theme-3 .sa-logo-stage::after {
  position: absolute;
  z-index: -2;
  border-radius: 50%;
  content: "";
}

.theme-3 .sa-logo-stage::before {
  inset: 20%;
  background: rgba(228, 0, 43, .22);
  box-shadow: 0 0 90px 34px rgba(228, 0, 43, .18);
  animation: saLogoCore 2.8s ease-in-out infinite;
}

.theme-3 .sa-logo-stage::after {
  inset: 7%;
  border: 1px solid rgba(255, 255, 255, .1);
  background: repeating-conic-gradient(from 0deg, rgba(255, 255, 255, .24) 0 1deg, transparent 1deg 18deg);
  -webkit-mask: radial-gradient(circle, transparent 67%, #000 68% 70%, transparent 71%);
  mask: radial-gradient(circle, transparent 67%, #000 68% 70%, transparent 71%);
  animation: saLogoDial 18s linear infinite;
}

.theme-3 .sa-logo-stage .rt-logo-orbit {
  position: absolute;
  z-index: 1;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 50%;
  transform: rotateX(68deg) rotateZ(10deg);
}

.theme-3 .sa-logo-stage .rt-logo-orbit::before {
  position: absolute;
  top: 50%;
  left: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 18px 5px rgba(228, 0, 43, .8);
  content: "";
}

.theme-3 .sa-logo-stage .rt-logo-orbit--outer {
  inset: 8%;
  animation: saLogoOrbit 7s linear infinite;
}

.theme-3 .sa-logo-stage .rt-logo-orbit--inner {
  inset: 19%;
  border-color: rgba(228, 0, 43, .55);
  transform: rotateX(72deg) rotateZ(-28deg);
  animation: saLogoOrbitReverse 5.5s linear infinite;
}

.theme-3 .sa-logo-stage .rt-logo-scan {
  position: absolute;
  z-index: 5;
  top: 14%;
  bottom: 14%;
  left: 14%;
  width: 1px;
  pointer-events: none;
  background: linear-gradient(transparent, #fff 34%, #e4002b 50%, #fff 66%, transparent);
  box-shadow: 0 0 25px 5px rgba(228, 0, 43, .42);
  opacity: .7;
  animation: saLogoScan 3.8s cubic-bezier(.65, 0, .35, 1) infinite;
}

.theme-3 .sa-logo-stage .sa-logo-3d {
  z-index: 3;
  width: 68%;
  pointer-events: auto;
  filter: drop-shadow(0 26px 42px rgba(0, 0, 0, .68));
}

.theme-3 .sa-logo-stage .sa-logo-3d::before {
  opacity: .62;
}

@keyframes saLogoCore {
  50% { opacity: .65; transform: scale(1.18); }
}

@keyframes saLogoDial {
  to { transform: rotate(360deg); }
}

@keyframes saLogoOrbit {
  to { transform: rotateX(68deg) rotateZ(370deg); }
}

@keyframes saLogoOrbitReverse {
  to { transform: rotateX(72deg) rotateZ(-388deg); }
}

@keyframes saLogoScan {
  0%, 100% { left: 14%; opacity: 0; transform: scaleY(.65); }
  15%, 85% { opacity: .75; }
  50% { left: 86%; opacity: 1; transform: scaleY(1); }
}

.theme-3 .sa-hero .rt-intro-logo .rt-logo-3d__fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.theme-3 .sa-hero .rt-intro-logo .rt-logo-wordmark {
  position: relative;
  width: clamp(225px, 25vw, 350px);
  margin-top: clamp(-34px, -2.6vw, -22px);
  filter: drop-shadow(0 15px 28px rgba(0, 0, 0, .72));
  transition:
    width 1.1s cubic-bezier(.16, 1, .3, 1),
    margin-top 1.1s cubic-bezier(.16, 1, .3, 1);
}

.theme-3 .sa-hero--intro.is-video-intro-docked .rt-logo-wordmark {
  width: clamp(175px, 19vw, 230px);
  margin-top: -20px;
}

.theme-3 .sa-hero--intro .sa-hero__status {
  right: max(24px, calc((100vw - 1220px) / 2));
  bottom: 30px;
  left: auto;
  gap: 13px;
  color: rgba(255, 255, 255, .72);
  opacity: 0;
  font-size: .58rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  transform: translateY(14px);
  transition: opacity .65s ease .58s, transform .8s cubic-bezier(.16, 1, .3, 1) .58s;
}

.theme-3 .sa-hero--intro .sa-hero__status i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #e4002b;
  box-shadow: 0 0 0 5px rgba(228, 0, 43, .18);
}

.theme-3 .sa-hero--intro.is-video-intro-complete .sa-hero__status {
  opacity: 1;
  transform: none;
}

.theme-3 .sa-video-start {
  position: absolute;
  z-index: 7;
  top: 50%;
  left: 50%;
  display: none;
  padding: 13px 18px;
  border: 1px solid rgba(255, 255, 255, .35);
  background: rgba(5, 7, 10, .86);
  color: #fff;
  font: 700 .6rem/1 "Space Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
  transform: translate(-50%, -50%);
  cursor: pointer;
}

/* Der Startknopf wird nicht mehr eingeblendet. Er erschien nur, wenn der
   Browser Autoplay ablehnte - praktisch also fast nur auf dem Telefon, nie auf
   dem Rechner. Das Intro soll ueberall gleich aussehen; verweigert der Browser
   den Start, holt home-intro.js ihn still mit der ersten Geste nach.

   Die display:none-Vorgabe darueber bleibt bewusst stehen: sie haelt den Knopf
   auch dann unsichtbar, wenn das Skript gar nicht laeuft und ihn deshalb nicht
   aus dem Markup entfernen kann. */

.theme-3 .rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__mark {
  width: clamp(32px, 2.6vw, 38px);
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, .76)) drop-shadow(0 6px 12px rgba(0, 0, 0, .42));
}

.theme-3 .rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__wordmark {
  width: clamp(150px, 14vw, 194px);
  filter: drop-shadow(0 5px 11px rgba(0, 0, 0, .34));
}

.theme-3 .sa-emergency,
.theme-3 .ig-emergency {
  width: min(100% - 40px, 1180px);
  min-height: 0;
  grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
  margin: clamp(44px, 6vw, 72px) auto;
  padding: 0;
}

.theme-3 .sa-emergency figure,
.theme-3 .ig-emergency figure {
  position: relative;
  min-height: 270px;
  max-height: none;
}

.theme-3 .sa-emergency figure img,
.theme-3 .ig-emergency figure img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.theme-3 .sa-emergency > div,
.theme-3 .ig-emergency > div {
  min-height: 270px;
  padding: clamp(28px, 3.2vw, 40px);
}

.theme-3 .sa-emergency h2,
.theme-3 .ig-emergency h2 {
  font-size: clamp(1.7rem, 2.7vw, 2.5rem);
}

.theme-3 .ig-emergency .ig-code {
  margin-bottom: 12px;
}

@media (max-width: 780px) {
  .theme-3 .sa-hero--intro {
    min-height: 560px;
  }

  .theme-3 .sa-hero--intro.is-video-intro-docked {
    height: clamp(220px, 34svh, 285px);
    min-height: clamp(220px, 34svh, 285px);
  }

  .theme-3 .sa-logo-stage {
    width: min(58vw, 240px);
  }

  .theme-3 .sa-hero--intro.is-video-intro-docked .sa-logo-stage {
    width: min(38vw, 155px);
  }

  .theme-3 .sa-logo-stage .sa-logo-3d {
    width: 69%;
  }

  .theme-3 .sa-hero .rt-intro-logo .rt-logo-wordmark {
    width: min(64vw, 270px);
    margin-top: -24px;
  }

  .theme-3 .sa-hero--intro.is-video-intro-docked .rt-logo-wordmark {
    width: min(52vw, 210px);
    margin-top: -18px;
  }

  .theme-3 .sa-hero--intro .sa-hero__status {
    right: 18px;
    left: 18px;
    justify-content: center;
    font-size: .48rem;
  }

  .theme-3 .sa-emergency,
  .theme-3 .ig-emergency {
    position: relative;
    width: calc(100% - 36px);
    grid-template-columns: 1fr;
    grid-template-rows: minmax(420px, auto);
    isolation: isolate;
  }

  .theme-3 .sa-emergency figure,
  .theme-3 .ig-emergency figure {
    z-index: 0;
    min-height: 420px;
    max-height: none;
    grid-area: 1 / 1;
  }

  .theme-3 .sa-emergency > div,
  .theme-3 .ig-emergency > div {
    z-index: 1;
    min-height: 420px;
    grid-area: 1 / 1;
    justify-content: flex-end;
    padding: 138px 22px 26px;
    background: linear-gradient(180deg, rgba(8, 11, 16, .02) 0 18%, rgba(8, 11, 16, .82) 47%, #080b10 72%);
  }

  .theme-3 .ig-emergency figcaption {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .theme-3 .sa-hero--intro .rt-intro-logo,
  .theme-3 .sa-hero--intro .sa-hero__shade,
  .theme-3 .sa-hero--intro .sa-hero__status {
    transition: none;
  }

  .theme-3 .sa-logo-stage::before,
  .theme-3 .sa-logo-stage::after,
  .theme-3 .sa-logo-stage .rt-logo-orbit,
  .theme-3 .sa-logo-stage .rt-logo-scan {
    animation: none;
  }
}

/* Shared action arrow: one SVG asset for all Layout 3 links and buttons. */
.theme-3 .rt-action-arrow {
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background-color: currentColor;
  font-size: 0 !important;
  line-height: 0;
  vertical-align: middle;
  transition: transform .25s ease;
  -webkit-mask: url('../assets/icons/nav-arrow.svg?v=1') center / contain no-repeat;
  mask: url('../assets/icons/nav-arrow.svg?v=1') center / contain no-repeat;
}

.theme-3 .ig-services > header > a,
.theme-3 .ig-panel a {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
}

.theme-3 :is(.sa-arrow-link, .sa-service, .sa-button, .ig-button, .ig-service, .ig-module-menu a, .ig-panel a, .ig-services > header > a):hover > .rt-action-arrow {
  transform: translate(4px, -4px);
}

.theme-3 .ig-module-menu a > .rt-action-arrow {
  transform: rotate(90deg);
}

.theme-3 .ig-module-menu a:hover > .rt-action-arrow {
  transform: translate(4px, 4px) rotate(90deg);
}

@media (prefers-reduced-motion: reduce) {
  .theme-3 .rt-action-arrow {
    transition: none;
  }
}

/* source: layout.css */
:root{--ig-red:#e4002b;--ig-ink:#090c11;--ig-blue:#101820;--ig-panel:#151c24;--ig-paper:#f4f2ed;--ig-line:rgba(255,255,255,.16);--ig-max:1220px;--ig-ease:cubic-bezier(.18,.72,.2,1)}
.theme-3{background:var(--ig-ink);color:#fff;font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.65;overflow-x:hidden}.theme-3 h1,.theme-3 h2,.theme-3 h3{margin:0;line-height:1.04;letter-spacing:-.045em}.theme-3 h1{font-size:clamp(2.4rem,5.2vw,5.4rem)}.theme-3 h2{font-size:clamp(2rem,4vw,4rem)}.theme-3 p{color:#9ba5b1}.ig-kicker{margin:0 0 13px!important;color:var(--ig-red)!important;font:700 .68rem/1.2 "Space Mono",monospace;letter-spacing:.13em;text-transform:uppercase}.ig-code{display:block;margin-bottom:28px;color:#727d89;font:700 .56rem "Space Mono",monospace;letter-spacing:.16em;text-transform:uppercase}.ig-button{display:inline-flex;min-height:50px;align-items:center;gap:24px;padding:0 20px;background:var(--ig-red);box-shadow:0 14px 36px rgba(228,0,43,.2);color:#fff!important;font-size:.7rem;font-weight:800;text-decoration:none;text-transform:uppercase}.ig-button.light{background:#fff;color:#0a0c10!important}.ig-button:hover{transform:translateY(-3px)}
.theme-3 .rt-nav{height:76px;padding:0 max(24px,calc((100vw - var(--ig-max))/2));background:rgba(7,10,13,.93);border-bottom:1px solid var(--ig-line)}.theme-3 .rt-nav__brand img{width:160px;filter:brightness(0) invert(1)}.theme-3 .rt-nav nav{gap:26px}.theme-3 .rt-nav nav a{padding:29px 0;font-size:.66rem}.rt-nav__phone{display:grid;grid-template-columns:auto auto;gap:8px;padding-left:18px;border-left:1px solid var(--ig-line)}.rt-nav__phone span{color:#8e98a5;font-size:.56rem}.rt-nav__phone strong{font-size:.72rem}.rt-nav__toggle{display:none}
.ig-hero{position:relative;min-height:100svh;background:#030508}.ig-hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ig-hero__screen{position:absolute;inset:0;background:linear-gradient(rgba(228,0,43,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(228,0,43,.08) 1px,transparent 1px),radial-gradient(circle at 50% 50%,transparent,rgba(0,0,0,.62));background-size:90px 90px,90px 90px,100% 100%;mix-blend-mode:screen}.theme-3 .rt-intro-logo{position:absolute;z-index:4;inset:0;display:grid;place-items:center;opacity:0;transform:scale(.82);transition:1.4s var(--ig-ease)}.theme-3 .rt-intro-logo img{position:relative;width:clamp(150px,18vw,255px)}.theme-3 .rt-intro-logo.is-visible{opacity:1;transform:scale(1)}.ig-target{position:absolute;width:clamp(230px,30vw,440px);aspect-ratio:1;border:1px solid rgba(228,0,43,.35);border-radius:50%}.ig-target:before,.ig-target:after{position:absolute;top:50%;left:50%;background:rgba(228,0,43,.42);content:"";transform:translate(-50%,-50%)}.ig-target:before{width:125%;height:1px}.ig-target:after{width:1px;height:125%}.ig-hero__meta{position:absolute;z-index:4;right:max(24px,calc((100vw - var(--ig-max))/2));bottom:28px;left:max(24px,calc((100vw - var(--ig-max))/2));display:flex;justify-content:space-between;color:#bbc2ca;font:700 .54rem "Space Mono",monospace;letter-spacing:.12em}
.ig-opening{display:grid;max-width:var(--ig-max);grid-template-columns:1.1fr .9fr .42fr;margin:auto;padding:90px 24px}.ig-opening__head{grid-column:1/3;padding:0 60px 56px 0}.ig-opening__head h1{max-width:980px;font-size:clamp(2.2rem,4.3vw,4.55rem)}.ig-opening__visual{position:relative;min-height:430px;overflow:hidden}.ig-opening__visual img{width:100%;height:100%;object-fit:cover}.ig-corner{position:absolute;width:46px;height:46px;border-color:var(--ig-red)}.ig-corner.top{top:14px;left:14px;border-top:2px solid;border-left:2px solid}.ig-corner.bottom{right:14px;bottom:14px;border-right:2px solid;border-bottom:2px solid}.ig-opening__data{display:flex;flex-direction:column;border:1px solid var(--ig-line);border-left:0}.ig-opening__data>div{display:grid;flex:1;grid-template-columns:38px 1fr;padding:20px;border-bottom:1px solid var(--ig-line)}.ig-opening__data small{grid-row:1/3;color:var(--ig-red);font:700 .56rem "Space Mono",monospace}.ig-opening__data strong{font:700 1.35rem "Space Mono",monospace}.ig-opening__data span{color:#8f99a5;font-size:.61rem;text-transform:uppercase}.ig-opening__data .ig-button{margin:auto 18px 18px}
.ig-services{padding:90px max(24px,calc((100vw - var(--ig-max))/2));background:#111820}.ig-services>header{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:42px}.ig-services>header h2{max-width:760px}.ig-services>header>a{color:#fff;font-size:.7rem;font-weight:800;text-decoration:none}.ig-service-list{border-top:1px solid var(--ig-line)}.ig-service{display:grid;min-height:165px;grid-template-columns:90px 230px 1fr 170px 40px;align-items:center;gap:24px;border-bottom:1px solid var(--ig-line);color:#fff;text-decoration:none}.ig-service__no{color:var(--ig-red);font:700 .64rem "Space Mono",monospace}.ig-service figure{height:130px;margin:16px 0;overflow:hidden}.ig-service img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:.5s}.ig-service:hover img{filter:saturate(1.2);transform:scale(1.06)}.ig-service h3{font-size:clamp(1.4rem,2.4vw,2.5rem)}.ig-service small{color:#7f8995;font:700 .54rem "Space Mono",monospace;text-transform:uppercase}.ig-service>b{color:var(--ig-red);font-size:1.25rem}.ig-promise{padding:0 max(24px,calc((100vw - var(--ig-max))/2));background:var(--ig-red)}.ig-promise>div{display:flex;align-items:center;justify-content:space-between;padding:20px 0}.ig-promise span{font:800 .75rem "Space Mono",monospace;text-transform:uppercase}.ig-promise i{width:6px;height:6px;border-radius:50%;background:#350009}
.ig-about{display:grid;grid-template-columns:1fr 1fr;min-height:620px}.ig-about__copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:80px max(30px,calc((100vw - var(--ig-max))/2));background:var(--ig-paper);color:#111}.ig-about__copy p:not(.ig-kicker){max-width:590px;color:#65707a}.ig-about figure{position:relative;margin:0;overflow:hidden}.ig-about figure img{width:100%;height:100%;object-fit:cover}.ig-about figcaption{position:absolute;right:0;bottom:0;display:flex;align-items:center;gap:12px;padding:18px 22px;background:var(--ig-red);font-size:.66rem;font-weight:800}.ig-about figcaption b{font:700 1.5rem "Space Mono",monospace}.ig-process{padding:88px max(24px,calc((100vw - var(--ig-max))/2));background:#0b0e13}.ig-process header{max-width:800px}.ig-process>div{display:grid;grid-template-columns:repeat(4,1fr);margin-top:40px;border-top:1px solid var(--ig-line)}.ig-process article{position:relative;padding:28px 24px;border-right:1px solid var(--ig-line)}.ig-process article b{color:var(--ig-red);font:700 1.2rem "Space Mono",monospace}.ig-process article span{display:block;width:8px;height:8px;margin:22px 0;border-radius:50%;background:var(--ig-red);box-shadow:0 0 0 7px rgba(228,0,43,.12)}.ig-process article p{margin:0;font-size:.72rem}.ig-map{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;background:var(--ig-paper);color:#111}.ig-map__module{padding:45px max(20px,calc((100vw - var(--ig-max))/2))}.ig-map .rt-germany-module{padding:0!important;background:transparent!important}.ig-map .rt-map-header{display:none}.ig-map .rt-map-stage{max-width:600px}.ig-map aside{padding:70px max(24px,calc((100vw - var(--ig-max))/2)) 70px 50px}.ig-map aside p:not(.ig-kicker){color:#68727d}.ig-emergency{display:grid;max-width:var(--ig-max);grid-template-columns:1.1fr .9fr;margin:90px auto;padding:0 24px}.ig-emergency>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:50px;background:linear-gradient(135deg,#181e26,#0c0f14 72%,#3b0814)}.ig-emergency figure{position:relative;min-height:380px;margin:0;overflow:hidden}.ig-emergency figure img{width:100%;height:100%;object-fit:cover}.ig-emergency figcaption{position:absolute;right:0;bottom:0;left:0;padding:13px 16px;background:rgba(5,7,10,.85);font:700 .55rem "Space Mono",monospace;text-transform:uppercase}
.theme-3 .rt-footer{grid-template-columns:1.5fr 1fr 1fr;padding:64px max(24px,calc((100vw - var(--ig-max))/2)) 24px;background:#06080b}.theme-3 .rt-footer__brand p{max-width:360px;font-size:.75rem}.theme-3 .rt-footer__hotline strong{display:block}.theme-3 .rt-footer>div:nth-child(n+2){display:flex;flex-direction:column;align-items:flex-start}
.ig-subpage{padding-top:76px}.ig-page-hero{position:relative;display:grid;min-height:540px;grid-template-columns:1fr 260px;align-items:end;padding:70px max(24px,calc((100vw - var(--ig-max))/2));overflow:hidden}.ig-page-hero:before{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,9,12,.96),rgba(6,9,12,.28)),var(--image) center/cover;content:""}.ig-page-hero>*{position:relative;z-index:2}.ig-page-hero>div{max-width:850px}.ig-page-hero>div>p:not(.ig-kicker){max-width:650px}.ig-page-hero aside{border-top:2px solid var(--ig-red);background:rgba(9,12,17,.75)}.ig-page-hero aside div{display:grid;grid-template-columns:60px 1fr;padding:14px 18px;border-bottom:1px solid var(--ig-line)}.ig-page-hero aside strong{font-size:1rem}.ig-page-hero aside span{align-self:center;color:#9ba4ae;font-size:.58rem}.ig-module-menu{padding:80px max(24px,calc((100vw - var(--ig-max))/2));background:#0c1015}.ig-module-menu header{max-width:800px;margin-bottom:36px}.ig-module-menu>div{display:grid;grid-template-columns:repeat(10,1fr);gap:10px}.ig-module-menu a{position:relative;grid-column:span 2;height:290px;overflow:hidden;color:#fff}.ig-module-menu img{width:100%;height:100%;object-fit:cover;opacity:.65;transition:.5s}.ig-module-menu a:hover img{opacity:1;transform:scale(1.05)}.ig-module-menu a:after{position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.88));content:""}.ig-module-menu a span{position:absolute;z-index:2;top:14px;left:14px;color:var(--ig-red);font:700 .6rem "Space Mono",monospace}.ig-module-menu a h3{position:absolute;z-index:2;right:14px;bottom:36px;left:14px;font-size:1rem}.ig-module-menu a b{position:absolute;z-index:2;right:14px;bottom:12px;color:var(--ig-red)}.ig-accordion{padding:80px max(24px,calc((100vw - var(--ig-max))/2));background:#151b23}.ig-accordion>header{margin-bottom:36px}.ig-accordion article{border-top:1px solid var(--ig-line);scroll-margin-top:96px}.ig-accordion article:last-child{border-bottom:1px solid var(--ig-line)}.ig-accordion button{display:grid;width:100%;grid-template-columns:70px 1fr 150px 34px;align-items:center;padding:22px 0;border:0;background:none;color:#fff;text-align:left;cursor:pointer}.ig-accordion button>span{color:var(--ig-red);font:700 .62rem "Space Mono",monospace}.ig-accordion button strong{font-size:1.05rem}.ig-accordion button small{color:#737e89;font:700 .52rem "Space Mono",monospace}.ig-accordion button i{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--ig-line);border-radius:50%;font-style:normal}.ig-accordion [data-panel]{max-height:0;overflow:hidden;opacity:0;transition:max-height .55s var(--ig-ease),opacity .3s}.ig-accordion article.is-open [data-panel]{opacity:1}.ig-panel{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:5px 0 30px}.ig-panel img{width:100%;height:290px;object-fit:cover}.ig-panel p,.ig-panel li{color:#a6aeb8;font-size:.76rem}.ig-panel ol{padding-left:20px}.ig-panel a{color:#fff;font-size:.7rem;font-weight:800}.ig-process.compact{background:var(--ig-paper);color:#111}.ig-process.compact article{border-color:rgba(10,12,16,.15)}.ig-about-detail{display:grid;max-width:var(--ig-max);grid-template-columns:1fr 1fr;gap:65px;align-items:center;margin:auto;padding:80px 24px}.ig-about-detail figure{position:relative;margin:0}.ig-about-detail img{width:100%;min-height:460px;object-fit:cover}.ig-about-detail figcaption{position:absolute;bottom:0;left:0;padding:12px;background:#fff;color:#111;font:700 .56rem "Space Mono",monospace}.ig-values{padding:80px max(24px,calc((100vw - var(--ig-max))/2));background:#151b23}.ig-values header{max-width:850px}.ig-values>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:36px}.ig-values article{padding:28px;border-top:2px solid var(--ig-red);background:#1b232d}.ig-values article b{color:var(--ig-red);font:700 .65rem "Space Mono",monospace}.ig-values article h3{margin-top:25px;font-size:1rem}.ig-values article p{font-size:.74rem}.ig-contact{display:grid;max-width:var(--ig-max);grid-template-columns:.8fr 1.2fr;gap:60px;margin:auto;padding:80px 24px}.ig-contact dl{display:grid;gap:8px;margin-top:30px}.ig-contact dl div{padding:17px;border-left:2px solid var(--ig-red);background:#151b23}.ig-contact dt{font-size:.68rem;font-weight:800}.ig-contact dd{margin:3px 0 0;color:#99a3ae;font-size:.68rem}.ig-contact dd a{color:inherit;text-decoration:none}.ig-contact form{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:30px;border-top:3px solid var(--ig-red);background:var(--ig-paper);color:#111}.ig-contact form header{grid-column:1/-1;display:flex;justify-content:space-between;border-bottom:1px solid #c8ccd0;padding-bottom:12px;font:700 .56rem "Space Mono",monospace}.ig-contact label{display:grid;gap:5px;font-size:.62rem;font-weight:800}.ig-contact .full{grid-column:1/-1}.ig-contact input,.ig-contact select,.ig-contact textarea{width:100%;border:1px solid #ccd0d4;background:#fff;padding:12px;color:#111}.ig-contact button{justify-self:start;border:0;cursor:pointer}.ig-legal-hero{padding:140px max(24px,calc((100vw - var(--ig-max))/2)) 60px;background:linear-gradient(120deg,#151b23,#300712)}.ig-legal{max-width:950px;margin:auto;padding:75px 24px}.ig-legal h2{margin:40px 0 12px;font-size:clamp(1.5rem,2.6vw,2.25rem)}.ig-legal h3{margin:25px 0 8px;font-size:1rem}.ig-legal p{font-size:.85rem}
[class*=ig-motion-]{will-change:transform,opacity}
@media(max-width:980px){.theme-3 .rt-nav nav{display:none}.rt-nav__phone{display:none}.rt-nav__toggle{display:block;width:44px;height:44px;border:0;background:transparent}.rt-nav__toggle span{display:block;width:24px;height:2px;margin:7px auto;background:#fff}.theme-3 .rt-nav.is-menu-open nav{position:absolute;top:76px;right:0;left:0;display:grid;gap:0;padding:15px 22px;background:#080b0f}.theme-3 .rt-nav.is-menu-open nav a{padding:12px 0;border-bottom:1px solid var(--ig-line)}.ig-opening{grid-template-columns:1fr 1fr}.ig-opening__head{grid-column:1/-1}.ig-opening__data{border-left:1px solid var(--ig-line)}.ig-service{grid-template-columns:60px 180px 1fr 35px}.ig-service small{display:none}.ig-about{grid-template-columns:1fr}.ig-about figure{height:450px}.ig-process>div{grid-template-columns:1fr 1fr}.ig-map{grid-template-columns:1fr}.ig-map aside{padding:60px 24px}.ig-page-hero aside{display:none}.ig-module-menu>div{grid-template-columns:repeat(6,1fr)}.ig-module-menu a{grid-column:span 2}.ig-module-menu a:last-child{grid-column:3/span 2}.ig-about-detail,.ig-contact{grid-template-columns:1fr}}
@media(max-width:640px){.ig-hero__meta{font-size:.44rem}.ig-opening{grid-template-columns:1fr;padding:65px 18px}.ig-opening__head{padding-right:0}.ig-opening__visual{min-height:330px}.ig-opening__data{border-left:1px solid var(--ig-line)}.ig-services{padding:65px 18px}.ig-services>header{display:block}.ig-services>header>a{display:block;margin-top:20px}.ig-service{grid-template-columns:42px 1fr 26px;gap:12px;padding:14px 0}.ig-service figure{grid-column:2/4;width:100%;height:170px;margin:0}.ig-service h3{grid-column:2;font-size:1.25rem}.ig-service small{display:none}.ig-promise>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ig-promise i{display:none}.ig-about__copy{padding:60px 20px}.ig-about figure{height:340px}.ig-process{padding:65px 20px}.ig-process>div{grid-template-columns:1fr}.ig-process article{border-right:0;border-bottom:1px solid var(--ig-line)}.ig-map__module{padding:30px 18px}.ig-emergency{grid-template-columns:1fr;margin:65px auto;padding:0 18px}.ig-emergency>div{padding:34px 22px}.ig-emergency figure{min-height:280px}.theme-3 .rt-footer{display:grid;grid-template-columns:1fr;padding:50px 20px}.ig-page-hero{min-height:480px;padding:55px 20px}.ig-module-menu{padding:60px 18px}.ig-module-menu>div{grid-template-columns:1fr 1fr}.ig-module-menu a,.ig-module-menu a:last-child{grid-column:auto;height:230px}.ig-accordion{padding:60px 20px}.ig-accordion button{grid-template-columns:45px 1fr 30px}.ig-accordion button small{display:none}.ig-panel{grid-template-columns:1fr}.ig-about-detail{padding:60px 20px}.ig-values{padding:60px 20px}.ig-values>div{grid-template-columns:1fr}.ig-contact{padding:60px 18px}.ig-contact form{grid-template-columns:1fr;padding:22px}.ig-contact form header,.ig-contact .full{grid-column:auto}}
@media(prefers-reduced-motion:reduce){[class*=ig-motion-]{opacity:1!important;transform:none!important}}

/* Ruhigere globale Ueberschriftenskala der Startseite. Spezifische Module
   (Intro und Karte) definieren ihre feinere Skalierung nachgelagert selbst. */
.theme-3.is-home main h2{font-size:clamp(1.85rem,3.65vw,3.65rem)}

/* source: motion-stability.css */
/*
 * x-cloak-style gate for scroll-driven content.
 * The head marks the page as pending before the first paint. Motion scripts set
 * these exact start values synchronously and then release the gate in one frame.
 */
.rt-motion-clip {
  overflow: hidden !important;
}

/* --- Kartensequenz (Startseite) -----------------------------------------
   Wird von rt-map-sequence.js gesetzt, solange die gepinnte Choreografie
   laeuft. Der Abschnitt fuellt dann das Fenster, damit die mittig
   vergroesserte Karte Platz hat und beim Pinnen kein Sprung entsteht. */

.sa-network.rt-karte-sequenz {
  height: 100svh;
  min-height: 620px;
  align-content: center;
  overflow: visible;
}

.sa-network.rt-karte-sequenz .sa-network__map,
.sa-network.rt-karte-sequenz .sa-network__copy {
  will-change: transform, opacity;
}

/* Waehrend die Karte mittig steht, liegt sie ueber der Textspalte.
   Der Text ist dann noch unsichtbar, darf aber keine Klicks abfangen. */
.sa-network.rt-karte-sequenz .sa-network__map {
  position: relative;
  z-index: 2;
  padding: clamp(24px, 4svh, 46px) clamp(24px, 4vw, 64px);
}

/* Die sehr hochformatige SVG-Karte darf nicht die Laptop-Hoehe sprengen.
   64svh ergeben inklusive Innenabstand auch bei 720px hohen Fenstern eine
   vollstaendig sichtbare Buehne; dadurch braucht die JS-Sequenz kein
   fehleranfaelliges offsetHeight-Gate mehr. */
.sa-network.rt-karte-sequenz .rt-map-stage {
  width: min(100%, 64svh);
}

@supports not (height: 100svh) {
  .sa-network.rt-karte-sequenz { height: 100vh; }
  .sa-network.rt-karte-sequenz .rt-map-stage { width: min(100%, 64vh); }
}

/* --- Hintergrundatmosphaere (Startseite) --------------------------------
   Wird von rt-atmosphere.js eingehaengt. Liegt fest im Viewport hinter dem
   Inhalt. Die vier Variablen steuern die Gesamtwirkung an einer Stelle. */

.rt-atmo {
  --rt-atmo-rot: 228, 0, 43;
  --rt-atmo-staerke: .16;
  --rt-atmo-raster: .045;
  --rt-atmo-links: 22%;

  position: fixed;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
}

/* Der Inhalt muss ueber der Atmosphaere liegen.
 *
 * Nur die beiden nicht positionierten Container brauchen das: eine fixierte
 * Ebene mit z-index 0 wird zwar spaet gemalt, aber nicht positionierte
 * Bloecke stehen in der Malreihenfolge darunter.
 *
 * .rt-nav (position:fixed, z-index:100) und .rt-skip-link (position:fixed,
 * z-index:1200) sind bereits darueber und duerfen hier NICHT auftauchen —
 * position:relative wuerde beide aus ihrer Fixierung reissen: die Navigation
 * verloere ihr Ueberlagern, der Sprunglink stuende sichtbar im Textfluss und
 * schoebe die Seite nach unten. */
.is-home > #rt-main-content,
.is-home > .rt-footer {
  position: relative;
  z-index: 1;
}

.rt-atmo__schein {
  position: absolute;
  display: block;
  width: 62vmax;
  height: 62vmax;
  border-radius: 50%;
  filter: blur(90px);
  will-change: transform;
}

.rt-atmo__schein--a {
  top: -14vmax;
  left: var(--rt-atmo-links);
  background: radial-gradient(circle, rgba(var(--rt-atmo-rot), var(--rt-atmo-staerke)), transparent 68%);
}

.rt-atmo__schein--b {
  right: -10vmax;
  bottom: -18vmax;
  background: radial-gradient(circle, rgba(90, 130, 190, calc(var(--rt-atmo-staerke) * .72)), transparent 70%);
}

/* Technisches Raster — erinnert an Gleisteilung, bleibt aber Andeutung. */
.rt-atmo__raster {
  position: absolute;
  inset: -20% 0 -20%;
  display: block;
  background-image:
    linear-gradient(rgba(255, 255, 255, var(--rt-atmo-raster)) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, calc(var(--rt-atmo-raster) * .6)) 1px, transparent 1px);
  background-size: 100% 88px, 88px 100%;
  mask-image: radial-gradient(120% 78% at 50% 42%, #000 12%, transparent 76%);
  will-change: transform;
}

/* Feine Koernung gegen Farbbanding in den Verlaeufen. */
.rt-atmo__korn {
  position: absolute;
  inset: 0;
  display: block;
  opacity: .5;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
}

@media (prefers-reduced-motion: reduce) {
  .rt-atmo {
    display: none;
  }
}

html.rt-motion-pending body.is-home [class*="-motion-"],
html.rt-motion-pending body.is-home [data-reveal],
html.rt-motion-pending body.is-home .rt-process > div,
html.rt-motion-pending body.is-home .rt-germany-module,
html.rt-motion-pending body.is-home .rt-card,
html.rt-motion-pending body.is-home .rt-split > img,
html.rt-motion-pending body.is-home .rt-split > div,
html.rt-motion-pending body.is-home .rt-map-tech > *,
html.rt-motion-pending body.is-subpage main > section,
html.rt-motion-pending body.is-subpage [data-service-tile],
html.rt-motion-pending body.is-subpage [data-accordion-item],
html.rt-motion-pending body.is-subpage form,
html.rt-motion-pending body.is-subpage .rt-emergency {
  visibility: hidden !important;
}

html.rt-motion-enabled body.is-home.theme-1 [data-reveal],
html.rt-motion-enabled body.is-home.theme-1 .rt-process > div,
html.rt-motion-enabled body.is-home.theme-1 .rt-germany-module {
  opacity: .12;
  transform: translate3d(0, 42px, 0);
}

html.rt-motion-enabled body.is-home.theme-1 .rt-card,
html.rt-motion-enabled body.is-home.theme-1 .rt-split > img,
html.rt-motion-enabled body.is-home.theme-1 .rt-split > div {
  opacity: .12;
  transform: translate3d(34px, 0, 0);
}

html.rt-motion-enabled body.is-home.theme-2 .sc-motion-rise {
  opacity: .12;
  transform: translate3d(0, 62px, 0);
}

html.rt-motion-enabled body.is-home.theme-2 .sc-motion-left {
  opacity: .12;
  transform: translate3d(-64px, 0, 0);
}

html.rt-motion-enabled body.is-home.theme-2 .sc-motion-right {
  opacity: .12;
  transform: translate3d(64px, 0, 0);
}

html.rt-motion-enabled body.is-home.theme-3 .sa-motion-up {
  opacity: .12;
  transform: translate3d(0, 34px, 0);
}

html.rt-motion-enabled body.is-home.theme-3 .sa-motion-left {
  opacity: .12;
  transform: translate3d(-42px, 0, 0);
}

html.rt-motion-enabled body.is-home.theme-3 .sa-motion-right {
  opacity: .12;
  transform: translate3d(42px, 0, 0);
}

html.rt-motion-enabled body.is-home.theme-3 .ig-motion-up {
  opacity: .12;
  transform: translate3d(0, 58px, 0);
}

html.rt-motion-enabled body.is-home.theme-3 .ig-motion-left {
  opacity: .12;
  transform: translate3d(-62px, 0, 0);
}

html.rt-motion-enabled body.is-home.theme-3 .ig-motion-right {
  opacity: .12;
  transform: translate3d(62px, 0, 0);
}

html.rt-motion-enabled body.is-home.theme-4 [data-reveal],
html.rt-motion-enabled body.is-home.theme-4 .rt-process > div {
  opacity: .12;
  transform: translate3d(0, 30px, 0);
}

html.rt-motion-enabled body.is-home.theme-4 .rt-card,
html.rt-motion-enabled body.is-home.theme-4 .rt-split > img,
html.rt-motion-enabled body.is-home.theme-4 .rt-split > div {
  opacity: .12;
  transform: translate3d(32px, 0, 0);
}

html.rt-motion-enabled body.is-home.theme-5 [data-reveal],
html.rt-motion-enabled body.is-home.theme-5 .rt-process > div,
html.rt-motion-enabled body.is-home.theme-5 .rt-map-tech > * {
  opacity: .12;
  transform: translate3d(0, 30px, 0);
}

html.rt-motion-enabled body.is-home.theme-5 .rt-card {
  opacity: .12;
  transform: translate3d(28px, 0, 0);
}

html.rt-motion-enabled body.is-home [class*="-motion-"],
html.rt-motion-enabled body.is-home [data-reveal],
html.rt-motion-enabled body.is-home .rt-process > div,
html.rt-motion-enabled body.is-home .rt-germany-module,
html.rt-motion-enabled body.is-home .rt-card,
html.rt-motion-enabled body.is-home .rt-split > img,
html.rt-motion-enabled body.is-home .rt-split > div,
html.rt-motion-enabled body.is-home .rt-map-tech > * {
  will-change: transform, opacity;
}

/* source: brand-lockup.css */
.rt-brand-lockup {
  position: relative;
  display: inline-flex;
  max-width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 1vw, 16px);
  line-height: 0;
  isolation: isolate;
}

.rt-brand-lockup img {
  display: block;
  flex: 0 0 auto;
  max-width: none;
  height: auto;
  margin: 0;
  object-fit: contain;
}

.rt-nav__brand {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  line-height: 0;
}

.rt-nav__brand .rt-brand-lockup--nav {
  justify-content: flex-start;
  gap: clamp(7px, .75vw, 11px);
}

/*
 * Fester Zielplatz fuer den Logo-Flug aus dem Startvideo. Ohne JavaScript
 * bleibt darin die normale SVG-Bildmarke sichtbar. Auf der Startseite ist
 * der Slot zunaechst leer: Dort landet der eine farbige SVG-Host aus dem
 * Video und bleibt anschliessend selbst das sichtbare Navigationslogo.
 */
.rt-nav__logo-slot {
  position: relative;
  display: grid;
  width: clamp(44px, 3.7vw, 48px);
  flex: 0 0 auto;
  aspect-ratio: 1;
  place-items: center;
  overflow: visible;
  isolation: isolate;
}

.rt-nav__logo-slot > * {
  grid-area: 1 / 1;
}

.rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__mark {
  position: static;
  width: clamp(44px, 3.7vw, 48px);
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, .72)) drop-shadow(0 5px 10px rgba(0, 0, 0, .3));
}

.rt-nav__brand .rt-brand-lockup--nav .rt-nav__logo-slot .rt-brand-lockup__mark {
  width: 100%;
}

.rt-nav__logo-static {
  opacity: 1;
  visibility: visible;
  transition: opacity .24s ease, visibility .24s ease;
}

.rt-nav.is-logo-handoff:not(.is-logo-handoff-complete) .rt-nav__logo-static {
  opacity: 0;
  visibility: hidden;
}

/* Die Startseite verwendet keinen Bildtausch mehr. Sollte aus einem alten
   Cache dennoch ein statisches Zielbild vorhanden sein, bleibt es verborgen. */
.theme-3 .rt-nav.is-logo-handoff-complete .rt-nav__logo-static {
  opacity: 0;
  visibility: hidden;
}

.theme-3 .rt-nav.is-logo-handoff-complete .rt-logo-3d.is-nav-docked {
  opacity: 1;
  visibility: visible;
}

.theme-3 .rt-nav__logo-slot .rt-logo-3d {
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  opacity: 1;
  visibility: visible;
  pointer-events: none;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .4));
  transition: none;
}

.theme-3 .rt-nav__logo-slot .rt-logo-3d__fallback {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  filter: drop-shadow(0 5px 9px rgba(0, 0, 0, .34));
}

.theme-3 .rt-nav__logo-slot .rt-logo-3d::before {
  inset: 4%;
  /* Kein heller Glow hinter den transparenten Kanaelen: Er wuerde die
     vergroesserten Zwischenraeume bei 30-48 px wieder optisch schliessen. */
  opacity: 0;
  filter: blur(5px);
}

.rt-logo-3d.is-logo-flight {
  pointer-events: none !important;
  will-change: transform;
}

.rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__wordmark {
  position: static;
  /* Der sichtbare „RAIL TIME“-Schriftzug liegt damit bei rund 75 % der Markenhöhe. */
  width: clamp(219px, 18.7vw, 269px);
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .22));
}

.rt-hero .rt-intro-logo .rt-brand-lockup--hero {
  flex-direction: row;
  gap: clamp(13px, 1.8vw, 26px);
  padding: clamp(10px, 1.5vw, 18px);
}

body .rt-hero .rt-intro-logo .rt-brand-lockup--hero .rt-brand-lockup__mark {
  position: relative;
  width: clamp(92px, 11vw, 146px);
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, .8)) drop-shadow(0 22px 38px rgba(0, 0, 0, .62));
}

body .rt-hero .rt-intro-logo .rt-brand-lockup--hero .rt-brand-lockup__wordmark {
  position: relative;
  width: clamp(180px, 22vw, 300px);
  filter: drop-shadow(0 16px 30px rgba(0, 0, 0, .65));
}

.theme-1 .rt-intro-section__brand {
  margin-bottom: clamp(20px, 2.6vw, 34px);
}

.theme-1 .rt-intro-section__brand .rt-brand-lockup--content {
  justify-content: flex-start;
  gap: clamp(10px, 1.2vw, 16px);
}

.theme-1 .rt-intro-section__brand .rt-brand-lockup__mark {
  width: clamp(42px, 4vw, 58px);
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, .72)) drop-shadow(0 12px 20px rgba(0, 0, 0, .4));
}

.theme-1 .rt-intro-section__brand .rt-brand-lockup__wordmark {
  width: clamp(148px, 15vw, 205px);
  filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .35));
}

.rt-footer__brand .rt-brand-lockup--footer {
  /* Bildmarke links, Schriftzug rechts — nebeneinander, solange Platz ist.
     Erst unterhalb von 380px bricht es um (siehe Media Query unten). */
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: clamp(11px, 1.2vw, 17px);
  margin-bottom: 14px;
}

.rt-footer__brand .rt-brand-lockup--footer .rt-brand-lockup__mark {
  width: clamp(52px, 5vw, 70px);
  filter: drop-shadow(0 0 1px rgba(255, 255, 255, .74)) drop-shadow(0 12px 22px rgba(0, 0, 0, .42));
}

.rt-footer__brand .rt-brand-lockup--footer .rt-brand-lockup__wordmark {
  width: clamp(168px, 16vw, 228px);
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, .4));
}

.theme-3 .rt-hero:is(.is-video-finishing, .is-video-complete) .rt-intro-logo .rt-brand-lockup--hero .rt-brand-lockup__mark,
.theme-5 .rt-hero:is(.is-video-finishing, .is-video-complete) .rt-intro-logo .rt-brand-lockup--hero .rt-brand-lockup__mark {
  width: clamp(72px, 7.5vw, 96px);
  transition: width 1s cubic-bezier(.16, 1, .3, 1);
}

.theme-3 .rt-hero:is(.is-video-finishing, .is-video-complete) .rt-intro-logo .rt-brand-lockup--hero .rt-brand-lockup__wordmark,
.theme-5 .rt-hero:is(.is-video-finishing, .is-video-complete) .rt-intro-logo .rt-brand-lockup--hero .rt-brand-lockup__wordmark {
  width: clamp(145px, 15vw, 205px);
  transition: width 1s cubic-bezier(.16, 1, .3, 1);
}

@media (max-width: 620px) {
  .rt-nav__logo-slot { width: 36px; }
  .rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__mark { width: 36px; }
  .rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__wordmark { width: 198px; }

  .rt-hero .rt-intro-logo .rt-brand-lockup--hero { gap: 11px; padding-inline: 12px; }
  body .rt-hero .rt-intro-logo .rt-brand-lockup--hero .rt-brand-lockup__mark { width: 80px; }
  body .rt-hero .rt-intro-logo .rt-brand-lockup--hero .rt-brand-lockup__wordmark { width: min(178px, 55vw); }

  .rt-footer__brand .rt-brand-lockup--footer .rt-brand-lockup__mark { width: 46px; }
  .rt-footer__brand .rt-brand-lockup--footer .rt-brand-lockup__wordmark { width: min(168px, 58vw); }
}

@media (max-width: 380px) {
  .rt-nav__logo-slot { width: 32px; }
  .rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__mark { width: 32px; }
  .rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__wordmark { width: 177px; }
}

@media (prefers-reduced-motion: reduce) {
  .rt-brand-lockup img { transition: none !important; }
  .rt-nav__logo-static { transition: none; }
  .theme-3 .rt-nav__logo-slot .rt-logo-3d { transition: none; }
}

/* source: mobile-navigation.css */
:root {
  --rt-mobile-drawer-width: min(92vw, 420px);
}

.rt-nav__toggle {
  display: none;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: rgba(7, 10, 14, .2);
  color: #fff;
  cursor: pointer;
  place-items: center;
  transition: background-color .25s ease, transform .25s ease;
}

.rt-nav__toggle:hover,
.rt-nav__toggle.is-open {
  background: rgba(228, 0, 43, .15);
  outline: none;
}

.rt-nav__toggle:focus-visible {
  background: rgba(228, 0, 43, .15);
  outline: 2px solid #ff3155;
  outline-offset: 3px;
}

.rt-nav__toggle:active { transform: scale(.96); }

.rt-nav__toggle span {
  display: block;
  width: 22px;
  height: 1.5px;
  grid-area: 1 / 1;
  margin: 0 auto;
  border-radius: 999px;
  background: currentColor;
  transform-origin: center;
  transition: transform .32s cubic-bezier(.16, 1, .3, 1), opacity .2s ease;
}

.rt-nav__toggle span:nth-child(1) { transform: translateY(-3px); }
.rt-nav__toggle span:nth-child(2) { transform: translateY(0); }
.rt-nav__toggle span:nth-child(3) { transform: translateY(3px); }

.rt-nav__toggle.is-open span:nth-child(1) { transform: rotate(45deg); }
.rt-nav__toggle.is-open span:nth-child(2) { opacity: 0; transform: scaleX(.45); }
.rt-nav__toggle.is-open span:nth-child(3) { transform: rotate(-45deg); }

.theme-5 .rt-nav__toggle {
  background: rgba(255, 255, 255, .78);
  color: #25252b;
}

.theme-5 .rt-nav__toggle:hover,
.theme-5 .rt-nav__toggle.is-open {
  background: #760d29;
  color: #fff;
}

.theme-5 .rt-nav__toggle:focus-visible {
  background: #760d29;
  color: #fff;
  outline-color: #760d29;
}

.rt-mobile-menu__scrim {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(2, 4, 7, .66);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity .38s ease, visibility .38s ease;
  visibility: hidden;
  -webkit-tap-highlight-color: transparent;
}

.rt-mobile-menu__scrim.is-open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

.rt-mobile-drawer {
  position: fixed;
  z-index: 1001;
  top: 0;
  right: 0;
  display: flex;
  width: var(--rt-mobile-drawer-width);
  max-width: 100%;
  height: 100dvh;
  flex-direction: column;
  overflow: hidden;
  border-left: 1px solid rgba(255, 255, 255, .12);
  background:
    linear-gradient(135deg, rgba(228, 0, 43, .2) 0, transparent 22%),
    linear-gradient(160deg, #151a22 0%, #090c11 56%, #050609 100%);
  box-shadow: -28px 0 70px rgba(0, 0, 0, .46);
  color: #fff;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(105%, 0, 0);
  transition: transform .52s cubic-bezier(.16, 1, .3, 1), opacity .3s ease, visibility .52s ease;
  visibility: hidden;
}

.rt-mobile-drawer.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(0, 0, 0);
  visibility: visible;
}

.rt-mobile-drawer__header {
  position: relative;
  display: flex;
  min-height: 86px;
  align-items: center;
  padding: 0 82px 0 clamp(24px, 7vw, 34px);
  border-bottom: 1px solid rgba(255, 255, 255, .11);
}

.rt-mobile-drawer__brand {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 13px;
  color: #fff;
  text-decoration: none;
}

.rt-mobile-drawer__brand-mark {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  object-fit: contain;
}

.rt-mobile-drawer__brand-wordmark {
  width: min(154px, 45vw);
  height: auto;
  max-height: 38px;
  object-fit: contain;
  object-position: left center;
}

.rt-mobile-drawer__body {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 10px 0 max(clamp(24px, 7vw, 38px), env(safe-area-inset-bottom));
  scrollbar-color: rgba(255, 255, 255, .32) transparent;
  scrollbar-width: thin;
}

.rt-mobile-drawer__body::-webkit-scrollbar { width: 5px; }
.rt-mobile-drawer__body::-webkit-scrollbar-track { background: transparent; }
.rt-mobile-drawer__body::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255, 255, 255, .32);
}

.rt-mobile-drawer__links {
  display: grid;
  padding: 4px clamp(16px, 5vw, 24px) 0;
}

.rt-mobile-drawer__links a {
  position: relative;
  display: flex;
  min-height: 56px;
  align-items: center;
  padding: 0 44px 0 clamp(12px, 4vw, 18px);
  border-bottom: 1px solid rgba(255, 255, 255, .09);
  color: #fff;
  font-size: clamp(16px, 4.5vw, 19px);
  font-weight: 700;
  letter-spacing: -.02em;
  text-decoration: none;
  text-transform: none;
  overflow-wrap: anywhere;
  transition: color .2s ease, background-color .2s ease, padding-left .3s cubic-bezier(.16, 1, .3, 1);
}

.rt-mobile-drawer__links a::after {
  position: absolute;
  right: 14px;
  width: 19px;
  height: 19px;
  background: #ff3155;
  content: '';
  -webkit-mask: url('../assets/icons/nav-arrow.svg?v=1') center / contain no-repeat;
  mask: url('../assets/icons/nav-arrow.svg?v=1') center / contain no-repeat;
  transition: transform .28s cubic-bezier(.16, 1, .3, 1);
}

.rt-mobile-drawer__links a:hover,
.rt-mobile-drawer__links a:focus-visible {
  padding-left: clamp(18px, 5vw, 24px);
  background: rgba(255, 255, 255, .045);
  color: #ffb0bf;
  outline: none;
}

.rt-mobile-drawer__links a:hover::after,
.rt-mobile-drawer__links a:focus-visible::after { transform: translate3d(4px, -4px, 0); }

.rt-mobile-drawer__links a[aria-current="page"],
.rt-mobile-drawer__links a[aria-current="true"],
.rt-mobile-drawer__links a.is-active {
  padding-left: clamp(18px, 5vw, 24px);
  border-left: 3px solid #e4002b;
  background: linear-gradient(90deg, rgba(228, 0, 43, .16), rgba(228, 0, 43, .025));
  color: #fff;
}

.rt-mobile-drawer__hotline {
  position: relative;
  display: grid;
  min-height: 76px;
  grid-template-columns: 54px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 13px;
  margin: 20px clamp(16px, 5vw, 24px) 0;
  padding: 9px 14px 9px 9px;
  border: 1px solid rgba(255, 71, 103, .56);
  border-radius: 0;
  background:
    linear-gradient(100deg, rgba(228, 0, 43, .25), rgba(228, 0, 43, .07) 54%, rgba(255, 255, 255, .035));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .09);
  color: #fff;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .2s ease, background-color .2s ease, transform .18s cubic-bezier(.16, 1, .3, 1);
}

.rt-mobile-drawer__hotline:hover,
.rt-mobile-drawer__hotline:focus-visible {
  border-color: #ff718b;
  background-color: rgba(228, 0, 43, .12);
  outline: none;
}

.rt-mobile-drawer__hotline:focus-visible {
  box-shadow: 0 0 0 3px rgba(228, 0, 43, .24), inset 0 1px 0 rgba(255, 255, 255, .12);
}

.rt-mobile-drawer__hotline:active { transform: scale(.985); }

.rt-mobile-drawer__hotline-icon {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  background: linear-gradient(145deg, #ff3155, #e4002b 58%, #b90022);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .32), 0 9px 24px rgba(140, 0, 27, .35);
  color: #fff;
  font-size: 18px;
}

.rt-mobile-drawer__hotline-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.rt-mobile-drawer__hotline-label {
  color: #ffbdc8;
  font: 700 9px/1.2 'Space Mono', monospace;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.rt-mobile-drawer__hotline-copy strong {
  overflow: hidden;
  color: #fff;
  font: 750 clamp(15px, 4.2vw, 17px)/1.1 Manrope, Arial, sans-serif;
  letter-spacing: .015em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rt-mobile-drawer__hotline-arrow {
  width: 20px;
  height: 20px;
  background: #ff718b;
  transition: transform .28s cubic-bezier(.16, 1, .3, 1);
  -webkit-mask: url('../assets/icons/nav-arrow.svg?v=1') center / contain no-repeat;
  mask: url('../assets/icons/nav-arrow.svg?v=1') center / contain no-repeat;
}

.rt-mobile-drawer__hotline:hover .rt-mobile-drawer__hotline-arrow,
.rt-mobile-drawer__hotline:focus-visible .rt-mobile-drawer__hotline-arrow {
  transform: translate3d(3px, -3px, 0);
}

.rt-mobile-drawer__languages {
  margin-top: auto;
  padding: 30px clamp(24px, 7vw, 34px) 0;
}

.rt-mobile-drawer__languages-title {
  display: block;
  margin: 0 0 12px;
  color: rgba(255, 255, 255, .55);
  font: 700 9px/1.2 'Space Mono', monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.rt-mobile-drawer__language-select-shell {
  position: relative;
}

.rt-mobile-drawer__language-select-shell::after {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid #ff718b;
  border-bottom: 1.5px solid #ff718b;
  content: '';
  pointer-events: none;
  transform: translateY(-70%) rotate(45deg);
}

.rt-mobile-drawer__language-select {
  width: 100%;
  min-height: 48px;
  padding: 0 46px 0 15px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
  background: rgba(255, 255, 255, .07);
  color: #fff;
  font: 700 16px/1.2 'Space Mono', monospace;
  letter-spacing: .02em;
  cursor: pointer;
  touch-action: manipulation;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.rt-mobile-drawer__language-select:hover {
  border-color: rgba(255, 113, 139, .7);
  background: rgba(228, 0, 43, .13);
}

.rt-mobile-drawer__language-select:focus-visible {
  border-color: #ff718b;
  box-shadow: 0 0 0 3px rgba(228, 0, 43, .24);
  outline: none;
}

.rt-mobile-drawer__language-select:disabled {
  cursor: wait;
  opacity: .72;
}

.rt-mobile-drawer__language-select option {
  background: #fff;
  color: #10141a;
}

.rt-mobile-drawer__footer {
  margin: 0 clamp(24px, 7vw, 34px);
  padding-top: 20px;
  color: rgba(255, 255, 255, .58);
  font: 600 10px/1.6 'Space Mono', monospace;
  letter-spacing: .09em;
  text-transform: uppercase;
}

body.rt-mobile-menu-open { overflow: hidden; }
html.rt-mobile-menu-open { scrollbar-gutter: auto !important; }

@media (max-width: 1120px) {
  .rt-nav > nav,
  .rt-nav > .rt-lang,
  .rt-nav > .rt-nav__phone,
  .rt-nav > a[href^="tel:"] { display: none !important; }

  .rt-nav > .rt-nav__toggle {
    display: grid !important;
    margin-left: auto;
  }

  .rt-nav.is-mobile-menu-open {
    z-index: 1003 !important;
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    pointer-events: none;
    transform: none !important;
    backdrop-filter: none !important;
  }

  .rt-nav.is-mobile-menu-open > *:not(.rt-nav__toggle) {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
  }

  .rt-nav.is-mobile-menu-open > .rt-nav__toggle {
    position: relative;
    z-index: 1004;
    background: rgba(228, 0, 43, .22);
    color: #fff;
    pointer-events: auto;
  }
}

@media (max-width: 520px) {
  .rt-nav > .rt-nav__toggle {
    width: 44px;
    height: 44px;
  }

  .rt-mobile-drawer { width: 100vw; }
  .rt-mobile-drawer__header { min-height: 74px; }
  .rt-mobile-drawer__links a { min-height: 53px; }
}

@media (max-width: 390px), (max-height: 640px) {
  .rt-mobile-drawer__header {
    min-height: 64px;
    padding: 0 70px 0 20px;
  }

  .rt-mobile-drawer__links a {
    min-height: 48px;
    padding-right: 42px;
    padding-left: 14px;
    font-size: 16px;
  }

  .rt-mobile-drawer__links a::after { right: 12px; }

  .rt-mobile-drawer__hotline {
    min-height: 68px;
    grid-template-columns: 48px minmax(0, 1fr) 18px;
    gap: 11px;
    margin-top: 14px;
    padding: 9px 12px 9px 9px;
  }

  .rt-mobile-drawer__hotline-icon { width: 48px; height: 48px; }

  .rt-mobile-drawer__languages { padding: 22px 20px 0; }
  .rt-mobile-drawer__footer { padding-top: 18px; }
}

@media (max-width: 390px) {
  .rt-nav > .rt-nav__toggle {
    position: relative;
    z-index: 2;
    width: 44px;
    flex: 0 0 44px;
  }
}

@media (max-width: 370px) {
  .rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__wordmark {
    width: 136px !important;
    max-width: 136px;
  }
}

@media (max-width: 350px) {
  body.rt-l3-page {
    min-width: 0 !important;
  }

  .theme-3 .rt-nav {
    padding-inline: 16px;
  }

  .rt-nav > .rt-nav__toggle {
    position: relative;
    z-index: 2;
    width: 44px;
    flex: 0 0 44px;
  }

  .rt-nav__brand .rt-brand-lockup--nav .rt-brand-lockup__wordmark {
    width: 112px !important;
    max-width: 112px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rt-nav__toggle,
  .rt-nav__toggle span,
  .rt-mobile-menu__scrim,
  .rt-mobile-drawer,
  .rt-mobile-drawer__links a,
  .rt-mobile-drawer__links a::after,
  .rt-mobile-drawer__language-select,
  .rt-mobile-drawer__hotline,
  .rt-mobile-drawer__hotline-arrow { transition: none !important; }
}

/* source: joomla-integration.css */
/* Native Joomla bridge for the Signal Atlas design. */
html {
  scroll-behavior: smooth;
  background: #080b10;
}

body.rt-l3-page {
  min-width: 320px;
  margin: 0;
  background: #080b10;
  color: #fff;
}

.rt-skip-link {
  position: fixed;
  z-index: 1200;
  top: 10px;
  left: 10px;
  padding: 10px 14px;
  background: #fff;
  color: #080b10;
  font: 700 .72rem/1 "Space Mono", monospace;
  transform: translateY(-150%);
  transition: transform .2s ease;
}

.rt-skip-link:focus {
  transform: translateY(0);
}

.rt-l3-component {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Start (nur Icon): aktives Icon in Signalrot. */
.rt-nav nav a.rt-nav__link--icon.is-active i {
  color: var(--rt-red, #e4002b);
}

/* Unterseiten-Menuepunkte (Text): rote Schrift bei Hover UND aktiv, mit
   weichem Farbwechsel und einer animierten Markierung (Unterstrich, der
   von links einfaehrt). */
/* Unterseiten-Menuepunkte: vertikaler Text-Swap. Die weisse Beschriftung
   faehrt nach oben aus, eine rote Kopie faehrt von unten herein - bei Hover,
   Fokus und im aktiven Zustand. Der echte Text traegt die Breite (transparent),
   zwei Pseudo-Kopien (aus data-text) machen die Animation. */
.rt-nav nav a:not(.rt-nav__link--icon) span {
  position: relative;
  display: inline-block;
  overflow: hidden;
  vertical-align: middle;
  color: transparent;
}
.rt-nav nav a:not(.rt-nav__link--icon) span::before,
.rt-nav nav a:not(.rt-nav__link--icon) span::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  white-space: nowrap;
  transition: transform .42s cubic-bezier(.19, 1, .22, 1);
}
.rt-nav nav a:not(.rt-nav__link--icon) span::before {
  top: 0;
  color: #ffffff;
}
.rt-nav nav a:not(.rt-nav__link--icon) span::after {
  top: 100%;
  color: var(--rt-red, #e4002b);
}
.rt-nav nav a:not(.rt-nav__link--icon):hover span::before,
.rt-nav nav a:not(.rt-nav__link--icon):focus-visible span::before,
.rt-nav nav a:not(.rt-nav__link--icon).is-active span::before,
.rt-nav nav a:not(.rt-nav__link--icon):hover span::after,
.rt-nav nav a:not(.rt-nav__link--icon):focus-visible span::after,
.rt-nav nav a:not(.rt-nav__link--icon).is-active span::after {
  transform: translateY(-100%);
}
@media (prefers-reduced-motion: reduce) {
  .rt-nav nav a:not(.rt-nav__link--icon) span { color: #ffffff; }
  .rt-nav nav a:not(.rt-nav__link--icon) span::before,
  .rt-nav nav a:not(.rt-nav__link--icon) span::after { transition: none; }
  .rt-nav nav a:not(.rt-nav__link--icon).is-active span::before { transform: none; color: var(--rt-red, #e4002b); }
  .rt-nav nav a:not(.rt-nav__link--icon).is-active span::after { display: none; }
}

.rt-nav__brand .rt-brand-lockup__mark,
.rt-nav__brand .rt-brand-lockup__wordmark,
.rt-footer .rt-brand-lockup__mark,
.rt-footer .rt-brand-lockup__wordmark {
  filter: brightness(0) invert(1) !important;
}

.rt-nav a:focus-visible,
.rt-footer a:focus-visible,
.rt-l3-component a:focus-visible,
.rt-l3-component button:focus-visible,
.rt-l3-component input:focus-visible,
.rt-l3-component select:focus-visible,
.rt-l3-component textarea:focus-visible {
  outline: 2px solid #ff3456;
  outline-offset: 4px;
}

.rt-l3-component .alert {
  position: relative;
  z-index: 20;
  margin: 90px auto 20px;
  max-width: 1180px;
}

@media (max-width: 850px) {
  .rt-footer {
    position: relative;
  }

  .sa-intro,
  .sa-team,
  .sa-network,
  .sa-emergency {
    grid-template-columns: minmax(0, 1fr);
  }

  .sa-intro > *,
  .sa-team > *,
  .sa-network > *,
  .sa-emergency > * {
    min-width: 0;
  }
}

@media (max-width: 980px) {
  .ig-page-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .ig-page-hero > div,
  .ig-page-hero h1,
  .ig-page-hero p {
    min-width: 0;
    overflow-wrap: break-word;
    hyphens: auto;
  }
}

@media (max-width: 640px) {
  .ig-page-hero h1 {
    font-size: clamp(2rem, 8.5vw, 2.4rem);
    word-break: normal;
  }

  .sa-intro h1 {
    font-size: 2rem;
  }
}

/* source: rt-motion.css */
/*
 * Ergaenzungen fuer das GSAP-Bewegungssystem (rt-motion.js).
 * Enthaelt nur, was die Skripte an CSS voraussetzen - die Startwerte der
 * Einblendungen setzt weiterhin motion-stability.css.
 */

/* --- Zeilenweise Aufloesung von Ueberschriften ------------------------- */

.rt-split-host {
  /* Die Zeilen fahren aus ihrer eigenen Maske heraus. */
  overflow: hidden;
}

.rt-split-line {
  display: block;
  will-change: transform, opacity;
}

/* --- Navigationsleiste beim Scrollen ---------------------------------- */

.rt-nav {
  transition:
    opacity .45s ease,
    transform .45s cubic-bezier(.22, 1, .36, 1),
    height .32s ease,
    background-color .32s ease,
    backdrop-filter .32s ease;
}

/* Kompakter, sobald die Seite verlassen wurde */
.rt-nav.is-condensed {
  background: rgba(8, 11, 16, .88);
  backdrop-filter: saturate(140%) blur(14px);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .38);
}

/* Beim Runterscrollen weicht die Leiste, beim Hochscrollen kommt sie zurueck */
.rt-nav.is-visible.is-tucked {
  transform: translateY(-104%);
  opacity: 0;
  pointer-events: none;
}

/* --- Intro-Choreografie ------------------------------------------------ *
 *
 * home-intro.js faehrt im Zweig "intro-once" und setzt dort die Klassen
 * is-video-intro-playing / -docked / -complete. Gestaltet waren bisher nur
 * die Klassen des Scroll-Zweigs (is-video-playing / -finishing / -complete)
 * in layout-polish.css; die Regeln fuer die intro-Variante liegen in
 * signal-atlas-tune.css, die das Template nicht einbindet. Der Hero blieb
 * deshalb auf seiner Ausgangshoehe stehen - die Schrumpf-Phase lief ins Leere.
 *
 * Statt die 435 Zeilen jener Datei ungeprueft nachzuladen, fuehren die
 * folgenden Regeln die intro-Klassen auf die bereits bewaehrte Darstellung
 * zurueck. Die Dauern sind gegenueber layout-polish.css durch 1,25 geteilt -
 * derselbe Faktor, um den das Startvideo beschleunigt wurde.
 * ---------------------------------------------------------------------- */

.theme-3 .rt-hero.is-video-intro-playing,
.theme-3 .rt-hero.is-video-intro-docked,
.theme-3 .rt-hero.is-video-intro-complete {
  isolation: isolate;
  transition:
    height 1.05s cubic-bezier(.16, 1, .3, 1),
    min-height 1.05s cubic-bezier(.16, 1, .3, 1),
    background 1.05s ease;
}

/*
 * Vollbild, solange nicht angedockt wurde.
 *
 * is-video-intro-complete setzt home-intro.js bereits beim Videoende - also
 * rund eine halbe Sekunde nachdem das Logo erschienen ist. Haengt die
 * Schrumpfung an dieser Klasse, startet sie sofort und der Dock-Timer laeuft
 * ins Leere. Deshalb loest ausschliesslich is-video-intro-docked aus, und die
 * Vollbildphase gilt ausdruecklich nur solange diese Klasse fehlt.
 */
.theme-3 .rt-hero.is-video-intro-playing:not(.is-video-intro-docked),
.theme-3 .rt-hero.is-video-intro-complete:not(.is-video-intro-docked) {
  height: 100svh;
  min-height: 100svh;
  background: #020306;
}

/* Erst das Andocken schrumpft den Hero auf das Kopfband */
.theme-3 .rt-hero.is-video-intro-docked {
  height: clamp(220px, 34svh, 285px);
  min-height: clamp(220px, 34svh, 285px);
  background:
    radial-gradient(circle at 50% 45%, rgba(137, 9, 39, .28), transparent 30%),
    linear-gradient(110deg, #020306 0%, #08070b 62%, #3d0716 100%);
}

/* Das Standbild bleibt stehen, bis angedockt wird - das ist die Zeit,
   in der das Logo fuer sich wirken soll. */
.theme-3 .rt-hero.is-video-intro-playing video,
.theme-3 .rt-hero.is-video-intro-complete video {
  transition:
    transform 1.05s cubic-bezier(.16, 1, .3, 1),
    opacity .9s ease,
    filter .9s ease;
}

/* Beim Andocken zieht sich das Video nach oben aus dem Bild */
.theme-3 .rt-hero.is-video-intro-docked video {
  opacity: 0;
  filter: saturate(.35) brightness(.26);
  transform: translate3d(0, -22%, 0) scale(1.09);
  transition:
    transform 1.05s cubic-bezier(.16, 1, .3, 1),
    opacity .9s ease,
    filter .9s ease;
}

/* Erst wenn beides vorbei ist, verschwindet das Element ganz */
.theme-3 .rt-hero.is-video-intro-docked.is-video-intro-complete video {
  visibility: hidden;
  pointer-events: none;
}

/* Logo-Einblendung, ebenfalls um den Faktor 1,25 gestrafft */
.theme-3 .rt-hero.is-video-intro-playing:not(.is-video-logo-visible) .rt-intro-logo {
  opacity: 0;
  transform: translate3d(0, 20px, 0) scale(.84);
}

.theme-3 .rt-hero.is-video-logo-visible .rt-intro-logo,
.theme-3 .rt-hero.is-video-intro-docked .rt-intro-logo,
.theme-3 .rt-hero.is-video-intro-complete .rt-intro-logo {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  transition:
    opacity .64s ease,
    transform .8s cubic-bezier(.16, 1, .3, 1);
}

/* Die Marke schrumpft erst mit dem Andocken - vorher soll sie gross
   stehenbleiben und wirken.

   Feste Hoehe statt Breite: Das Band ist nur clamp(220px,34svh,285px) hoch,
   und eine breitenbasierte Angabe lieferte je nach Rasterplatz
   unterschiedliche Ergebnisse. Ueber die Hoehe bleibt sie stabil. */
.theme-3 .rt-hero .rt-intro-logo img {
  transition:
    height 1.05s cubic-bezier(.16, 1, .3, 1),
    width 1.05s cubic-bezier(.16, 1, .3, 1);
}

.theme-3 .rt-hero.is-video-intro-docked .rt-intro-logo img {
  width: auto;
  height: clamp(68px, 10svh, 104px);
  max-width: min(100%, 240px);
  object-fit: contain;
}

.theme-3 .rt-hero.is-video-intro-docked .sa-hero__status {
  bottom: 14px;
  justify-content: center;
  transition: bottom .9s cubic-bezier(.16, 1, .3, 1);
}

/* --- Ruhige Darstellung, wenn Bewegung unerwuenscht ist ---------------- */

@media (prefers-reduced-motion: reduce) {
  .rt-nav.is-visible.is-tucked {
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }

  .rt-split-host {
    overflow: visible;
  }

}

/* source: rt-karriere-banner.css */
/*
 * Karriere-Banner auf der Startseite.
 *
 * Er steht zwischen dem hellen Netz-Abschnitt und dem hellen Partner-Teaser
 * und ist deshalb dunkel: so bleibt der Wechsel hell/dunkel/hell/dunkel bis
 * zum Notfallbanner erhalten.
 *
 * Vom Notfallbanner unterscheidet er sich bewusst in der Anlage - dort ein
 * Raster und ein grosses Wasserzeichen, hier ein Verlauf mit diagonalen
 * Signalstreifen und die acht Bewerbungswege als Zahlzeile. Beide dunkel,
 * aber nicht verwechselbar.
 *
 * Absatzregeln sind mit .rt-karriere qualifiziert: layout.css setzt
 * ".theme-3 p" auf #9ba5b1 und gewinnt sonst ueber die reine Klasse.
 */

.rt-karriere {
  --rt-kb-rot: #e4002b;
  --rt-kb-flaeche: #0b1016;

  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #eef1f5;
  background:
    radial-gradient(70% 130% at 8% 0%, rgba(228, 0, 43, .18), transparent 58%),
    linear-gradient(118deg, #0f151d 0%, var(--rt-kb-flaeche) 62%, #070a0e 100%);
  border-top: 1px solid rgba(255, 255, 255, .1);
}

/* Diagonale Signalstreifen - die Handschrift des Bahnbetriebs, sehr leise
   dosiert, damit der Text die Hauptsache bleibt. */
.rt-karriere::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  background-image: repeating-linear-gradient(
    -58deg,
    rgba(255, 255, 255, .028) 0 2px,
    transparent 2px 26px
  );
  background-position: 0 var(--rt-segment-raster, 0px);
  pointer-events: none;
}

.rt-karriere__inner {
  width: min(100%, 1480px);
  margin: 0 auto;
  padding: clamp(44px, 4.6vw, 72px) max(22px, 8vw);
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(268px, .55fr);
  align-items: center;
  gap: clamp(28px, 4vw, 68px);
}

.rt-karriere .rt-karriere__kicker {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 16px;
  color: #ff6a82;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.rt-karriere__kicker > span {
  width: 28px;
  height: 2px;
  flex: 0 0 auto;
  background: var(--rt-kb-rot);
  box-shadow: 9px 0 18px rgba(228, 0, 43, .6);
}

.rt-karriere h2 {
  max-width: 780px;
  margin: 0;
  color: #fff;
  font-size: clamp(27px, 2.9vw, 41px);
  font-weight: 650;
  line-height: 1.04;
  letter-spacing: -.042em;
  text-wrap: balance;
}

.rt-karriere .rt-karriere__text {
  max-width: 820px;
  margin: 15px 0 0;
  color: #aab4c1;
  font-size: clamp(13.5px, 1.2vw, 15.5px);
  line-height: 1.7;
}

/* --- Handlungsbereich --------------------------------------------------- */

.rt-karriere__actions {
  display: grid;
  gap: 10px;
  width: min(100%, 300px);
  justify-self: end;
}

.rt-karriere__wege,
.rt-karriere__initiativ {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 50px;
  padding: 0 18px 0 20px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.rt-karriere__wege {
  color: #fff;
  background: var(--rt-kb-rot);
  border: 1px solid var(--rt-kb-rot);
}

.rt-karriere__initiativ {
  color: #eef1f5;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .26);
}

.rt-karriere__wege svg,
.rt-karriere__initiativ svg {
  width: 19px;
  height: 19px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .25s ease;
}

.rt-karriere__wege:hover,
.rt-karriere__wege:focus-visible {
  background: #b1001f;
  border-color: #b1001f;
}

.rt-karriere__initiativ:hover,
.rt-karriere__initiativ:focus-visible {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .5);
}

.rt-karriere__wege:hover svg,
.rt-karriere__wege:focus-visible svg,
.rt-karriere__initiativ:hover svg,
.rt-karriere__initiativ:focus-visible svg {
  transform: translateX(4px);
}

.rt-karriere__wege:focus-visible,
.rt-karriere__initiativ:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

/* Ausgangszustand der Einblendung - siehe rt-partner.css, gleicher Grund:
   der Haken haengt am Besitzer, nicht am Markup. */
html.rt-motion-enabled .rt-karriere[data-rtk-besitzer]:not(.is-rtk-sichtbar) [data-rtk-stufe] {
  opacity: 0;
  transform: translateY(20px);
}

@media (max-width: 900px) {
  .rt-karriere__inner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .rt-karriere__actions {
    width: 100%;
    justify-self: stretch;
  }
}

@media (max-width: 560px) {
  .rt-karriere__inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rt-karriere::before {
    background-position: 0 0;
  }
}

/* source: rt-partner.css */
/*
 * Minimalistischer Kundenprojekte-Teaser auf der Startseite.
 * Eine klare Text-/Bildflaeche, keine Kartenreihe und kein zweites Motiv.
 */

.rt-partner {
  --rt-partner-red: #ed153f;
  --rt-partner-red-deep: #b80025;
  --rt-partner-ink: #080c12;
  --rt-partner-paper: #f4f3ef;
  --rt-partner-muted: #53606c;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--rt-partner-ink);
  background:
    radial-gradient(70% 110% at 96% 5%, rgba(237, 21, 63, .075), transparent 62%),
    linear-gradient(135deg, #fbfbf8 0%, var(--rt-partner-paper) 68%, #eff0ec 100%);
  border-top: 1px solid rgba(8, 12, 18, .12);
  border-bottom: 1px solid rgba(8, 12, 18, .1);
}

.rt-partner::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  background-image:
    linear-gradient(rgba(8, 12, 18, .042) 1px, transparent 1px),
    linear-gradient(90deg, rgba(8, 12, 18, .042) 1px, transparent 1px);
  background-position: var(--rt-segment-raster, 0) var(--rt-segment-raster, 0);
  background-size: 72px 72px;
  -webkit-mask-image: linear-gradient(118deg, #000, transparent 74%);
  mask-image: linear-gradient(118deg, #000, transparent 74%);
  pointer-events: none;
}

.rt-partner::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  width: clamp(3px, .36vw, 6px);
  height: 100%;
  background: var(--rt-partner-red);
  transform: translateX(var(--rt-segment-marke, 0));
  pointer-events: none;
}

.rt-partner__inner {
  width: min(100%, 1460px);
  margin: 0 auto;
  padding: clamp(60px, 6.2vw, 94px) max(22px, 7vw);
}

.rt-partner__editorial {
  display: grid;
  grid-template-columns: minmax(300px, .86fr) minmax(500px, 1.14fr);
  align-items: center;
  gap: clamp(42px, 6.5vw, 104px);
}

.rt-partner__head {
  position: relative;
  z-index: 2;
  max-width: 610px;
}

.rt-partner .rt-partner__kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 18px;
  color: var(--rt-partner-red-deep);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.rt-partner__kicker > span {
  position: relative;
  width: 34px;
  height: 2px;
  flex: 0 0 auto;
  background: var(--rt-partner-red);
}

.rt-partner__kicker > span::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--rt-partner-red);
  box-shadow: 0 0 0 5px rgba(237, 21, 63, .13);
  transform: translateY(-50%);
}

.rt-partner h2 {
  max-width: 610px;
  margin: 0;
  color: var(--rt-partner-ink);
  font-size: clamp(34px, 3.75vw, 58px);
  font-weight: 650;
  line-height: 1;
  letter-spacing: -.048em;
  text-wrap: balance;
}

.rt-partner .rt-partner__lead {
  max-width: 590px;
  margin: 25px 0 0;
  color: var(--rt-partner-muted);
  font-size: clamp(14px, 1.08vw, 16px);
  line-height: 1.72;
}

/* Das eine Projektmotiv bleibt auch ohne GSAP und vor dem Trigger sichtbar. */
.rt-partner__visual {
  position: relative;
  aspect-ratio: 16 / 10;
  min-width: 0;
  opacity: 1;
  visibility: visible;
}

.rt-partner__visual::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: clamp(66px, 9vw, 132px);
  height: 4px;
  background: var(--rt-partner-red);
  pointer-events: none;
}

.rt-partner__visual figure {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
  background: #151c25;
  border: 1px solid rgba(8, 12, 18, .14);
  box-shadow: 0 28px 76px rgba(17, 24, 39, .18);
}

.rt-partner__visual img {
  display: block;
  width: 100%;
  height: 100%;
  opacity: 1;
  visibility: visible;
  object-fit: cover;
  object-position: 52% 50%;
}

.rt-partner__visual-main::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 66%, rgba(5, 8, 12, .34));
  pointer-events: none;
}

.rt-partner__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 30px;
}

.rt-partner__more,
.rt-partner__request {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  min-height: 48px;
  padding: 13px 18px;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color .22s ease, background-color .22s ease, border-color .22s ease, transform .22s ease;
}

.rt-partner__more {
  color: #fff;
  background: var(--rt-partner-red);
  border: 1px solid var(--rt-partner-red);
}

.rt-partner__request {
  color: var(--rt-partner-ink);
  background: transparent;
  border: 1px solid rgba(8, 12, 18, .28);
}

.rt-partner__more svg,
.rt-partner__request svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .22s ease;
}

.rt-partner__more:hover,
.rt-partner__more:focus-visible {
  background: var(--rt-partner-red-deep);
  border-color: var(--rt-partner-red-deep);
  transform: translateY(-2px);
}

.rt-partner__request:hover,
.rt-partner__request:focus-visible {
  color: #fff;
  background: var(--rt-partner-ink);
  border-color: var(--rt-partner-ink);
  transform: translateY(-2px);
}

.rt-partner__more:hover svg,
.rt-partner__more:focus-visible svg,
.rt-partner__request:hover svg,
.rt-partner__request:focus-visible svg {
  transform: translateX(4px);
}

.rt-partner__more:focus-visible,
.rt-partner__request:focus-visible {
  outline: 2px solid #ff5d78;
  outline-offset: 4px;
}

/* Nur Text kann gestaffelt erscheinen. Das Bild ist niemals Motion-Gate. */
html.rt-motion-enabled .rt-partner[data-rtp-besitzer]:not(.is-rtp-sichtbar) [data-rtp-stufe] {
  opacity: 0;
  transform: translateY(18px);
}

@media (max-width: 1040px) {
  .rt-partner__editorial {
    grid-template-columns: minmax(280px, .82fr) minmax(420px, 1.18fr);
    gap: 42px;
  }
}

@media (max-width: 860px) {
  .rt-partner__editorial {
    grid-template-columns: 1fr;
  }

  .rt-partner__head {
    max-width: 760px;
  }

  .rt-partner__visual {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 560px) {
  .rt-partner__inner {
    padding: 58px 20px 64px;
  }

  .rt-partner__editorial {
    gap: 34px;
  }

  .rt-partner h2 {
    font-size: clamp(33px, 10.2vw, 46px);
  }

  .rt-partner__visual {
    aspect-ratio: 4 / 3;
  }

  .rt-partner__actions {
    display: grid;
  }

  .rt-partner__more,
  .rt-partner__request {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rt-partner,
  .rt-partner *,
  .rt-partner *::before,
  .rt-partner *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

/* source: rt-footer.css */
/*
 * Fusszeile - laeuft auf allen Seiten.
 * Laedt nach den uebrigen l3-Stylesheets und ueberschreibt deren
 * Footer-Regeln bei gleicher Spezifitaet.
 */

/*
 * Der sprachabhaengige Notfalldienst-CTA wird als globales LMZ-Element in
 * jeder Seite gerendert. Eine Bearbeitung aktualisiert damit alle Verwendungen.
 * Die hohe Spezifitaet gewinnt auch gegen die spaeter geladenen Seiten-CSS.
 */
body.rt-l3-page .rt-l3-component .sa-emergency,
body.rt-l3-page .rt-l3-component .rt-x__cta {
  display: none;
}

/* --- Einheitlicher Notfalldienst -------------------------------------- */

.rt-emergency-banner {
  --rt-notfall-rot: #e4002b;
  --rt-notfall-rot-hell: #ff3154;
  --rt-notfall-flaeche: #0c1119;
  --rt-notfall-linie: rgba(255, 255, 255, .12);

  position: relative;
  z-index: 1;
  isolation: isolate;
  overflow: hidden;
  color: #f7f8fa;
  background:
    linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px),
    radial-gradient(70% 180% at 96% 48%, rgba(228, 0, 43, .2), transparent 62%),
    linear-gradient(112deg, #111923 0%, var(--rt-notfall-flaeche) 54%, #070a0f 100%);
  background-position: 0 var(--rt-segment-raster, 0px), var(--rt-segment-raster, 0px) 0, 0 0, 0 0;
  background-size: 64px 64px, 64px 64px, auto, auto;
  border-top: 1px solid rgba(255, 255, 255, .08);
  border-bottom: 1px solid rgba(228, 0, 43, .32);
}

.rt-emergency-banner::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -58%;
  right: clamp(-250px, -9vw, -90px);
  width: min(62vw, 880px);
  height: 220%;
  opacity: .075;
  background: linear-gradient(145deg, #fff 18%, #ffb7c4 54%, #e4002b 100%);
  -webkit-mask: url("../../../../images/l3/logo/rt-logo.svg") 50% 50% / contain no-repeat;
  mask: url("../../../../images/l3/logo/rt-logo.svg") 50% 50% / contain no-repeat;
  transform: translate3d(var(--rt-segment-marke, 0px), 0, 0) scale(1.16);
  transform-origin: 66% 50%;
  pointer-events: none;
}

.rt-emergency-banner::after {
  content: "";
  position: absolute;
  z-index: -2;
  top: -38%;
  right: -13%;
  width: min(52vw, 760px);
  height: 176%;
  color: transparent;
  font-size: 0;
  opacity: .72;
  background: linear-gradient(135deg, rgba(228, 0, 43, .03), rgba(228, 0, 43, .3) 64%, rgba(113, 0, 25, .58));
  clip-path: polygon(31% 0, 100% 0, 78% 100%, 0 100%);
  transform: translate3d(var(--rt-segment-marke, 0px), 0, 0) rotate(-7deg);
  pointer-events: none;
}

.rt-emergency-banner__inner {
  position: relative;
  width: min(100%, 1480px);
  margin: 0 auto;
  /* Flacher als zuvor: gemessen 409px Bannerhoehe bei 1440px Breite, davon
     allein 132px Polsterung oben und unten. */
  padding: clamp(34px, 3.6vw, 54px) max(22px, 8vw);
  display: grid;
  /* Textspalte deutlich breiter (vorher 1.2fr/.8fr, gemessen 665px von 1440).
     Der Fliesstext bricht dadurch auf weniger Zeilen - das ist der groesste
     Hebel gegen die Hoehe, ohne etwas wegzulassen. */
  grid-template-columns: minmax(0, 1.75fr) minmax(288px, .55fr);
  align-items: center;
  gap: clamp(28px, 3.6vw, 64px);
}

.rt-emergency-banner__inner::before {
  content: "";
  position: absolute;
  top: 50%;
  left: max(22px, 8vw);
  width: 2px;
  height: min(58%, 188px);
  background: linear-gradient(transparent, var(--rt-notfall-rot) 22%, var(--rt-notfall-rot) 78%, transparent);
  box-shadow: 0 0 24px rgba(228, 0, 43, .5);
  transform: translateY(-50%);
}

.rt-emergency-banner__copy {
  max-width: 920px;
  padding-left: clamp(20px, 2.4vw, 38px);
}

/* Mit dem Banner qualifiziert - siehe Hinweis bei __text. */
.rt-emergency-banner .rt-emergency-banner__kicker {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 18px;
  color: #ff6a82;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.rt-emergency-banner__kicker > span {
  position: relative;
  width: 28px;
  height: 2px;
  flex: 0 0 auto;
  background: var(--rt-notfall-rot);
  box-shadow: 9px 0 18px rgba(228, 0, 43, .65);
}

.rt-emergency-banner__kicker > span::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--rt-notfall-rot-hell);
  transform: translateY(-50%);
}

.rt-emergency-banner h2 {
  max-width: 900px;
  margin: 0;
  color: #fff;
  font-size: clamp(29px, 3.1vw, 44px);
  font-weight: 650;
  line-height: 1.02;
  letter-spacing: -.045em;
  text-wrap: balance;
}

/* Absaetze brauchen die zusaetzliche Qualifizierung: layout.css setzt
   ".theme-3 p" auf #9ba5b1 und gewinnt sonst ueber die reine Klasse. */
.rt-emergency-banner .rt-emergency-banner__text {
  max-width: 880px;
  margin: 16px 0 0;
  color: #b7c0cc;
  font-size: clamp(14px, 1.25vw, 16px);
  line-height: 1.7;
}

.rt-emergency-banner__actions {
  position: relative;
  display: grid;
  /* Ein zusammenhaengender Block statt zweier gestapelter Kacheln: die
     Telefonzeile und der Knopf teilen sich Rahmen und Flaeche, getrennt nur
     durch eine Haarlinie. Das spart die Luecke, einen Rahmen und wirkt als
     ein Gegenstand statt als zwei. */
  width: min(100%, 372px);
  gap: 0;
  justify-self: end;
  overflow: hidden;
  background: linear-gradient(145deg, rgba(18, 27, 39, .9), rgba(4, 7, 11, .82));
  border: 1px solid rgba(255, 255, 255, .17);
  box-shadow: 0 26px 70px rgba(0, 0, 0, .32), inset 0 1px rgba(255, 255, 255, .04);
  backdrop-filter: blur(12px);
}

/* Rotes Glimmen hinter dem Block - ersetzt die frueher schraeg gestellte
   Hilfsflaeche, die den Block optisch nur groesser machte. */
.rt-emergency-banner__actions::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  background: radial-gradient(120% 120% at 100% 0%, rgba(228, 0, 43, .22), transparent 62%);
  pointer-events: none;
}

.rt-emergency-banner__phone,
.rt-emergency-banner__request {
  color: inherit;
  text-decoration: none;
}

.rt-emergency-banner__phone {
  min-height: 72px;
  padding: 13px 18px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  transition: background-color .25s ease;
}

.rt-emergency-banner__phone-icon {
  width: 42px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, var(--rt-notfall-rot-hell), var(--rt-notfall-rot) 58%, #a60020);
  box-shadow: 0 13px 30px rgba(228, 0, 43, .24);
}

.rt-emergency-banner__phone-icon svg {
  width: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.rt-emergency-banner__phone-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.rt-emergency-banner__phone-copy small,
.rt-emergency-banner__phone-copy > span {
  color: #9da8b6;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.rt-emergency-banner__phone-copy strong {
  color: #fff;
  font-size: clamp(19px, 1.6vw, 23px);
  font-weight: 650;
  line-height: 1.15;
  letter-spacing: -.025em;
}

.rt-emergency-banner__request {
  min-height: 52px;
  padding: 0 18px 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: var(--rt-notfall-rot);
  border: 0;
  font-size: 11.5px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: .11em;
  text-transform: uppercase;
  transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}

.rt-emergency-banner__request svg {
  width: 21px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .25s ease;
}

.rt-emergency-banner__phone:hover,
.rt-emergency-banner__phone:focus-visible {
  background: rgba(255, 255, 255, .06);
}

.rt-emergency-banner__request:hover,
.rt-emergency-banner__request:focus-visible {
  color: #fff;
  background: #c90026;
}

.rt-emergency-banner__request:hover svg,
.rt-emergency-banner__request:focus-visible svg {
  transform: translateX(4px);
}

.rt-emergency-banner__phone:focus-visible,
.rt-emergency-banner__request:focus-visible {
  /* Nach innen versetzt, weil der Aktionsblock jetzt overflow:hidden traegt
     und ein aeusserer Rahmen sonst abgeschnitten wuerde. */
  outline: 2px solid #fff;
  outline-offset: -3px;
}

/*
 * Doppelte Klasse: layout.css setzt `.theme-3 .rt-footer` mit Spezifitaet
 * (0,2,0). `.rt-footer.rt-footer` erreicht dieselbe Stufe und gewinnt, weil
 * diese Datei spaeter geladen wird.
 */
.rt-footer.rt-footer {
  --rt-fuss-linie: rgba(255, 255, 255, .09);
  --rt-fuss-text: #9aa3af;
  --rt-fuss-hell: #eef1f5;

  position: relative;
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 32px 44px;
  padding: clamp(38px, 3.4vw, 52px) max(22px, 8vw) 0;
  background:
    radial-gradient(120% 90% at 6% 0, rgba(228, 0, 43, .16), transparent 46%),
    #080b10;
  color: var(--rt-fuss-text);
  border-top: 0;
  overflow: hidden;
}

/* Feine Lichtkante statt harter roter Balken */
.rt-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, #e4002b, rgba(228, 0, 43, .35) 34%, transparent 72%);
}

/* --- Markenspalte ------------------------------------------------------ */

.rt-footer__brand {
  max-width: 420px;
}

.rt-footer__brand > p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.65;
  color: #b7bec8;
}

/* --- Linkspalten ------------------------------------------------------- */

.rt-footer > div > b {
  display: block;
  margin-bottom: 13px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--rt-fuss-linie);
  color: var(--rt-fuss-hell);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.rt-footer a {
  position: relative;
  display: block;
  width: fit-content;
  margin: 0 0 9px;
  color: #c3cad3;
  font-size: 13px;
  line-height: 1.5;
  text-decoration: none;
  transition: color .24s ease;
}

/* Unterstrich waechst aus der linken Kante */
.rt-footer > div a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 100%;
  height: 1px;
  background: #e4002b;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .32s cubic-bezier(.22, 1, .36, 1);
}

.rt-footer > div a:hover,
.rt-footer > div a:focus-visible {
  color: #fff;
}

.rt-footer > div a:hover::after,
.rt-footer > div a:focus-visible::after {
  transform: scaleX(1);
}

/* Das Markenzeichen ist ebenfalls ein <span> und wuerde hier auf `block`
   gesetzt — dann rutschen Bildmarke und Schriftzug untereinander. Es bleibt
   deshalb ausgenommen und behaelt sein inline-flex aus brand-lockup.css. */
.rt-footer > div > span:not(.rt-brand-lockup) {
  display: block;
  margin: 0 0 9px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--rt-fuss-text);
}

/* --- Kontakt ---------------------------------------------------------- */

.rt-footer__contact {
  display: block;
  min-width: 0;
}

.rt-footer__contact-list {
  display: grid;
  gap: 8px;
}

.rt-footer .rt-footer__contact-item {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  padding: 3px 0;
  border: 0;
  background: transparent;
  color: var(--rt-fuss-hell);
  transition:
    color .24s ease,
    transform .24s ease;
}

.rt-footer .rt-footer__contact-item--address {
  align-items: start;
}

.rt-footer a.rt-footer__contact-item:hover,
.rt-footer a.rt-footer__contact-item:focus-visible {
  color: #fff;
  transform: translateX(3px);
}

.rt-footer a.rt-footer__contact-item:hover .rt-footer__contact-icon,
.rt-footer a.rt-footer__contact-item:focus-visible .rt-footer__contact-icon {
  border-color: rgba(228, 0, 43, .8);
  background: linear-gradient(145deg, rgba(228, 0, 43, .3), rgba(228, 0, 43, .1));
}

.rt-footer .rt-footer__contact-item::after {
  content: none;
}

.rt-footer .rt-footer__contact-icon {
  display: grid;
  width: 40px;
  height: 40px;
  margin: 0;
  place-items: center;
  border: 1px solid rgba(228, 0, 43, .42);
  background: linear-gradient(145deg, rgba(228, 0, 43, .2), rgba(228, 0, 43, .07));
  color: #ff3659;
}

.rt-footer .rt-footer__contact-icon i {
  display: grid;
  margin: 0;
  place-items: center;
  color: inherit;
  line-height: 0;
}

.rt-footer .rt-footer__contact-icon .rt-inline-icon {
  width: 17px;
  height: 17px;
  fill: currentColor;
}

.rt-footer .rt-footer__contact-copy {
  display: block;
  min-width: 0;
  margin: 0;
  color: #d8dde4;
  font: 600 12.5px/1.5 Manrope, Arial, sans-serif;
  font-style: normal;
  letter-spacing: -.01em;
  overflow-wrap: anywhere;
}

.rt-footer .rt-footer__contact-item--address .rt-footer__contact-copy {
  padding-top: 1px;
  color: #b7c0cb;
  font-weight: 500;
}

.rt-footer .rt-footer__contact-item:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

/* --- Abschlussleiste --------------------------------------------------- */

.rt-footer small {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 26px;
  margin-top: clamp(22px, 2.2vw, 32px);
  padding: 15px 0 18px;
  border-top: 1px solid var(--rt-fuss-linie);
  font-size: 12px;
  color: #7d8794;
}

.rt-footer small a {
  display: inline;
  margin: 0;
  color: #7d8794;
  font-size: 12px;
}

.rt-footer small a:hover,
.rt-footer small a:focus-visible {
  color: var(--rt-fuss-hell);
}

.rt-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  align-items: center;
}

/* --- Schmalere Ansichten ----------------------------------------------- */

@media (max-width: 1080px) {
  .rt-emergency-banner__inner {
    /* Gleiche Verteilung wie in der Grundregel - sonst faellt die Textspalte
       hier auf die alte, schmale Breite zurueck (gemessen 475px von 1024). */
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, .6fr);
    gap: 34px;
  }

  .rt-footer.rt-footer {
    grid-template-columns: 1fr 1fr;
    gap: 26px 38px;
  }

  .rt-footer__brand {
    grid-column: 1 / -1;
    max-width: none;
  }
}

@media (max-width: 820px) {
  .rt-emergency-banner__inner {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .rt-emergency-banner__actions {
    width: 100%;
    justify-self: stretch;
  }

  .rt-emergency-banner::before {
    right: -260px;
    width: 820px;
    opacity: .055;
  }
}

/* 640px statt 620px: layout.css schaltet dort ebenfalls auf eine Spalte um.
   Gleiche Grenze vermeidet ein Band, in dem beide Regeln streiten. */
@media (max-width: 640px) {
  .rt-emergency-banner__inner {
    padding-top: 38px;
    padding-bottom: 40px;
  }

  .rt-emergency-banner__inner::before {
    left: 20px;
  }

  .rt-emergency-banner__copy {
    padding-left: 18px;
  }

  .rt-emergency-banner__kicker {
    margin-bottom: 15px;
    font-size: 10px;
  }

  .rt-emergency-banner h2 {
    font-size: clamp(29px, 9.5vw, 38px);
  }

  .rt-emergency-banner__text {
    margin-top: 18px;
  }

  .rt-emergency-banner__actions::before {
    inset: -10px;
  }

  .rt-emergency-banner__phone {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    min-height: 88px;
    padding: 15px;
  }

  .rt-emergency-banner__phone-icon {
    width: 48px;
  }

  .rt-emergency-banner__request {
    min-height: 56px;
    padding-inline: 18px;
  }

  /* Markenblock ueber die volle Breite, die drei Linkgruppen darunter
     zweispaltig — untereinander waere die Fusszeile auf dem Telefon sonst
     unnoetig lang. Die Desktop-Aufteilung bleibt davon unberuehrt. */
  .rt-footer.rt-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px 28px;
    padding-top: 36px;
  }

  .rt-footer__brand {
    grid-column: 1 / -1;
  }

  .rt-footer__contact {
    grid-column: 1 / -1;
  }

  .rt-footer > div {
    margin-bottom: 0;
  }

  .rt-footer small {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rt-emergency-banner__phone,
  .rt-emergency-banner__request,
  .rt-emergency-banner__request svg,
  .rt-footer__contact-item {
    transition: none;
  }
}

/* --- Notfalldienst, überarbeitete Fassung -------------------------------- *
 *
 * Neu gegenüber der ersten Fassung: ein Statusband unter dem Fliesstext, das
 * die Rund-um-die-Uhr-Bereitschaft SICHTBAR macht statt sie nur zu behaupten.
 * Der Puls ist der einzige Dauerreiz auf der Fläche - deshalb bleibt er klein,
 * langsam und ohne Farbwechsel; ein blinkender Notfallbanner wäre Lärm.
 * ------------------------------------------------------------------------- */

/* Siehe Hinweis bei __text: sonst gewinnt .theme-3 p. */
.rt-emergency-banner .rt-emergency-banner__status {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 26px 0 0;
    color: #93a0af;
    font: 700 11px/1.2 "Space Mono", monospace;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.rt-emergency-banner__puls {
    position: relative;
    width: 9px;
    height: 9px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #23d18b;
    box-shadow: 0 0 0 0 rgba(35, 209, 139, .55);
}

.rt-emergency-banner__puls::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: inherit;
    animation: rt-notfall-puls 2.6s ease-out infinite;
}

@keyframes rt-notfall-puls {
    0%   { transform: scale(1);   opacity: .55; }
    70%  { transform: scale(3.1); opacity: 0; }
    100% { transform: scale(3.1); opacity: 0; }
}

/* Der Puls ist Zierde. Wer reduzierte Bewegung eingestellt hat, bekommt den
   ruhenden Punkt - die Aussage "besetzt" geht dabei nicht verloren. */
@media (prefers-reduced-motion: reduce) {
    .rt-emergency-banner__puls::after {
        animation: none;
    }
}

/* Ausgangszustand der gestaffelten Einblendung.
 *
 * Der Haken haengt an data-nf-besitzer, NICHT am Markup-Merkmal data-rt-notfall:
 * der Banner steht auf drei Seiten, animiert wird er je nach Seite von
 * rt-notfall.js, rt-about.js oder rt-contact.js. Nur rt-notfall.js kennt die
 * Klasse is-nf-sichtbar - haenge ich die Ausblendung ans Markup, bleibt sie auf
 * "Ueber uns" und "Kontakt" fuer immer stehen (dort blieb der Aktionsblock mit
 * der Notrufnummer beziehungsweise der ganze Text unsichtbar). So blendet sich
 * nur aus, was auch wieder eingeblendet wird; alles andere ist von Haus aus
 * sichtbar - der sichere Ausgang fuer einen Notfallbanner.
 *
 * Zusaetzlich an die aktive Bewegungsschicht gebunden, damit bei abgeschaltetem
 * JavaScript oder reduzierter Bewegung nichts verschwindet. */
html.rt-motion-enabled .rt-emergency-banner--v2[data-nf-besitzer]:not(.is-nf-sichtbar) [data-nf-stufe] {
    opacity: 0;
    transform: translateY(18px);
}

@media (max-width: 780px) {
    .rt-emergency-banner__status {
        margin-top: 20px;
    }
}

/* source: rt-segment-motion.css */
/*
 * Bewegungsschicht der gespeicherten Segmente - gehoert zu
 * js/rt-segment-motion.js.
 *
 * Enthaelt nur, was fuer die scrollgebundene Bewegung noetig ist: den
 * durchlaufenden Streifen und die Anschlusspunkte, ueber die die Zierebenen
 * mitwandern. Aussehen und Aufbau der Segmente selbst stehen weiterhin in
 * rt-partner.css, rt-projekte.css und rt-footer.css.
 *
 * Laedt nach diesen drei Dateien, damit die wenigen Ueberschreibungen bei
 * gleicher Spezifitaet gewinnen.
 */

/* --- Streifen ----------------------------------------------------------- *
 * Gleiche Rolle wie .rt-home-story-scan in den oberen Segmenten der
 * Startseite: eine duenne rote Linie laeuft am Scrollweg durch den Abschnitt.
 * Farbe und Leuchten sind von dort uebernommen, damit es sich als dieselbe
 * Handschrift liest.
 * ----------------------------------------------------------------------- */

.rt-segment-scan {
  position: absolute;
  z-index: 1;
  top: 0;
  right: max(20px, calc((100vw - 1280px) / 2));
  left: max(20px, calc((100vw - 1280px) / 2));
  height: 1px;
  opacity: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(228, 0, 43, .14) 16%,
    rgba(255, 90, 120, .9) 50%,
    rgba(228, 0, 43, .14) 84%,
    transparent 100%);
  box-shadow: 0 0 22px rgba(228, 0, 43, .3);
  pointer-events: none;
}

/* Auf der hellen Projekteflaeche traegt das helle Rosa nicht. */
.rt-partner .rt-segment-scan,
.rt-projekte .rt-segment-scan {
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(228, 0, 43, .16) 16%,
    rgba(177, 0, 31, .85) 50%,
    rgba(228, 0, 43, .16) 84%,
    transparent 100%);
  box-shadow: 0 0 18px rgba(228, 0, 43, .22);
}

/* Der Streifen liegt zwischen Hintergrund und Inhalt. Ohne diese Zeile
   stuende er ueber dem Text, weil statische Kinder keine Stapelposition
   haben und das absolut gesetzte Element damit gewinnt. */
.rt-karriere > :not(.rt-segment-scan),
.rt-emergency-banner--v2 > :not(.rt-segment-scan),
.rt-partner > :not(.rt-segment-scan),
.rt-projekte > :not(.rt-segment-scan) {
  position: relative;
  z-index: 2;
}

/* --- Anschluss der Zierebenen ------------------------------------------- *
 * Raster und Wasserzeichen sind ::before / ::after und lassen sich nicht
 * direkt animieren. Die Zeitleiste schreibt deshalb Variablen an den
 * Abschnitt, die hier eingesetzt werden.
 * ----------------------------------------------------------------------- */

.rt-karriere::before,
.rt-partner::before,
.rt-projekte::before {
  background-position: 0 var(--rt-segment-raster, 0px);
}

/* Die Bilder erhalten ihre Tiefe ausschliesslich ueber Transform. Clip und
   Schatten bleiben im Stylesheet stabil, damit ScrollTrigger kein Layout
   neu berechnen muss. */
.rt-partner__visual,
.rt-projekte [data-rtj-media] {
  transform-origin: 50% 60%;
  backface-visibility: hidden;
  will-change: auto;
}

.rt-partner__visual img,
.rt-projekte [data-rtj-media] img {
  transform-origin: 50% 50%;
  will-change: auto;
}

.rt-partner.is-rt-segment-active .rt-partner__visual,
.rt-partner.is-rt-segment-active .rt-partner__visual img,
.rt-projekte.is-rt-segment-active [data-rtj-media],
.rt-projekte.is-rt-segment-active [data-rtj-media] img {
  will-change: transform;
}

/* --- Reduzierte Bewegung ------------------------------------------------ *
 * Ohne Bewegung gibt es nichts zu zeigen: der Streifen ist reine Bewegung,
 * und die Zierebenen stehen still. Die Segmente selbst bleiben vollstaendig
 * sichtbar - dafuer sorgen die Auswege im Skript.
 * ----------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .rt-segment-scan {
    display: none !important;
  }

  .rt-partner__visual,
  .rt-projekte [data-rtj-media],
  .rt-partner__visual img,
  .rt-projekte [data-rtj-media] img {
    transform: none !important;
    will-change: auto;
  }

  .rt-partner::before,
  .rt-projekte::before {
    background-position: 0 0;
  }

  .rt-emergency-banner--v2::before,
  .rt-emergency-banner--v2::after {
    transform: none;
  }
}

/* source: rt-language.css */
/*
 * Sprachumschalter in der Kopfzeile.
 *
 * Fuegt sich in die vorhandene Kopfzeile ein: dieselbe senkrechte Trennlinie
 * wie die Notfallnummer, Space Mono fuer das Kuerzel, Glasflaeche wie die
 * Navigation. Das Aufklappen uebernimmt rt-language.js; ohne JavaScript
 * bleibt die Liste ueber :focus-within erreichbar.
 */

.rt-lang {
  position: relative;
  display: flex;
  align-items: center;
  margin-left: 18px;
  padding-left: 18px;
  border-left: 1px solid var(--ig-line, rgba(255, 255, 255, .16));
}

/* --- Schaltflaeche ------------------------------------------------------ */

.rt-lang__knopf {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: #e8ecf1;
  font: 700 .62rem/1 "Space Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .28s ease, border-color .28s ease, color .28s ease;
}

.rt-lang__knopf:hover,
.rt-lang__knopf:focus-visible {
  border-color: rgba(228, 0, 43, .45);
  background: rgba(228, 0, 43, .12);
  color: #fff;
}

.rt-lang__knopf:focus-visible {
  outline: 2px solid rgba(228, 0, 43, .55);
  outline-offset: 2px;
}

.rt-lang.is-offen .rt-lang__knopf {
  border-color: rgba(255, 255, 255, .22);
  background: rgba(255, 255, 255, .08);
}

/* Unter .rt-nav gescopt, weil `.rt-nav img { width: 150px }` fuer die
   Wortmarke gilt und mit (0,1,1) sonst jede Flagge im Kopf auf 150px zieht.
   Zwei Klassen (0,2,0) gewinnen dagegen. Die Bilder in der Aufklappliste
   liegen ohnehin hoeher und waren nie betroffen. */
.rt-nav .rt-lang__flagge,
.rt-lang__flagge {
  display: block;
  flex: 0 0 auto;
  width: 18px;
  height: 12px;
  border-radius: 2px;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .22);
}

.rt-lang__kurz {
  line-height: 1;
}

.rt-lang__pfeil {
  width: 9px;
  height: 6px;
  opacity: .7;
  transition: transform .3s cubic-bezier(.22, 1, .36, 1), opacity .3s ease;
}

.rt-lang.is-offen .rt-lang__pfeil {
  transform: rotate(180deg);
  opacity: 1;
}

/* --- Aufklappliste ------------------------------------------------------ */

.rt-lang__liste {
  position: absolute;
  z-index: 120;
  top: calc(100% + 12px);
  right: 0;
  min-width: 186px;
  min-height: min(176px, 32vh);
  max-height: min(360px, 56vh);
  margin: 0;
  padding: 6px 4px 6px 6px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 14px;
  background: rgba(12, 16, 22, .94);
  backdrop-filter: saturate(150%) blur(16px);
  box-shadow: 0 22px 48px rgba(0, 0, 0, .55), 0 2px 0 rgba(255, 255, 255, .05) inset;
  list-style: none;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: rgba(255, 255, 255, .38) transparent;
  scrollbar-gutter: stable;
  scrollbar-width: thin;

  /* Geschlossen: unsichtbar, nicht bedienbar, nicht im Tabstopp. */
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px) scale(.97);
  transform-origin: top right;
  transition: opacity .26s ease, transform .3s cubic-bezier(.22, 1, .36, 1), visibility .26s;
}

.rt-lang__liste::-webkit-scrollbar {
  width: 7px;
}

.rt-lang__liste::-webkit-scrollbar-track {
  margin-block: 10px;
  background: transparent;
}

.rt-lang__liste::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background: rgba(255, 255, 255, .38);
  background-clip: padding-box;
}

/* Kleine rote Kante als Marke — dieselbe Sprache wie die Fusszeile. */
.rt-lang__liste::before {
  position: absolute;
  top: -1px;
  right: 18px;
  width: 34px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--ig-red, #e4002b), rgba(228, 0, 43, .2));
  content: "";
}

.rt-lang.is-offen .rt-lang__liste,
.rt-lang:focus-within .rt-lang__liste {
  visibility: visible;
  opacity: 1;
  transform: translateY(0) scale(1);
}

.rt-lang__liste a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 12px;
  border-radius: 9px;
  color: #c3cad3;
  font-family: Manrope, system-ui, sans-serif;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: -.01em;
  text-decoration: none;
  transition: background-color .22s ease, color .22s ease;
}

.rt-lang__liste a img {
  width: 20px;
  height: 14px;
  border-radius: 2px;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .2);
}

.rt-lang__liste a:hover,
.rt-lang__liste a:focus-visible {
  background: rgba(255, 255, 255, .07);
  color: #fff;
  outline: none;
}

/* Aktive Sprache: roter Punkt rechts statt eines zweiten Rahmens. */
.rt-lang__liste a.is-active {
  color: #fff;
}

.rt-lang__liste a.is-active::after {
  width: 6px;
  height: 6px;
  margin-left: auto;
  border-radius: 50%;
  background: var(--ig-red, #e4002b);
  box-shadow: 0 0 0 3px rgba(228, 0, 43, .2);
  content: "";
}

/* --- Helle Kopfzeile ----------------------------------------------------- */

.rt-nav.is-light .rt-lang__knopf {
  color: #1e1e24;
}

.rt-nav.is-light .rt-lang__liste {
  border-color: rgba(20, 22, 28, .12);
  background: rgba(252, 251, 249, .96);
  box-shadow: 0 22px 48px rgba(18, 20, 26, .18);
  scrollbar-color: rgba(20, 22, 28, .34) transparent;
}

.rt-nav.is-light .rt-lang__liste::-webkit-scrollbar-thumb {
  background-color: rgba(20, 22, 28, .34);
}

.rt-nav.is-light .rt-lang__liste a {
  color: #454b55;
}

.rt-nav.is-light .rt-lang__liste a:hover,
.rt-nav.is-light .rt-lang__liste a.is-active {
  color: #14161c;
  background: rgba(18, 20, 26, .06);
}

/* --- Schmale Fenster ----------------------------------------------------- */

@media (max-width: 900px) {
  /* Neben dem Menueknopf ist wenig Platz: nur die Flagge, kein Kuerzel. */
  .rt-lang {
    order: 3;
    margin-left: 10px;
    padding-left: 12px;
  }

  .rt-lang__kurz {
    display: none;
  }

  .rt-lang__knopf {
    gap: 6px;
    padding: 7px 8px;
  }

  .rt-lang__liste {
    right: -4px;
    min-width: 168px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rt-lang__liste,
  .rt-lang__pfeil,
  .rt-lang__knopf,
  .rt-lang__liste a {
    transition: none;
  }
}

/* source: template-settings-runtime.css */
/* Runtime projection of the validated LMZ Template Settings. Defaults mirror
   the original RailTime shell, so an absent settings row is visually inert. */
.rt-nav[data-lmz-template-settings] {
  color: var(--rt-settings-nav-text, #fff);
  background: var(--rt-settings-nav-background, #090c11) !important;
}

.rt-nav[data-lmz-template-settings] nav a,
.rt-nav[data-lmz-template-settings] .rt-lang__knopf,
.rt-nav[data-lmz-template-settings] .rt-nav__phone,
.rt-nav[data-lmz-template-settings] .rt-nav__toggle {
  color: var(--rt-settings-nav-text, #fff);
}

.rt-nav[data-lmz-template-settings] nav a::after,
.rt-nav[data-lmz-template-settings] nav a.is-active::after,
.rt-nav[data-lmz-template-settings] .rt-nav__toggle span {
  background-color: var(--rt-settings-nav-accent, #e4002b);
}

.rt-nav[data-lmz-template-settings] .rt-nav__phone,
.rt-nav[data-lmz-template-settings] .rt-lang__knopf {
  border-color: color-mix(in srgb, var(--rt-settings-nav-accent, #e4002b) 42%, transparent);
}

.rt-footer[data-lmz-template-settings] {
  color: var(--rt-settings-footer-text, #fff);
  background: var(--rt-settings-footer-background, #090c11) !important;
}

.rt-footer[data-lmz-template-settings] a,
.rt-footer[data-lmz-template-settings] b,
.rt-footer[data-lmz-template-settings] strong,
.rt-footer[data-lmz-template-settings] small {
  color: var(--rt-settings-footer-text, #fff);
}

.rt-footer[data-lmz-template-settings] b::after,
.rt-footer[data-lmz-template-settings] a:focus-visible,
.rt-footer[data-lmz-template-settings] a:hover {
  border-color: var(--rt-settings-footer-accent, #e4002b);
  color: var(--rt-settings-footer-accent, #e4002b);
}

.lmz-template-region--navigation,
.lmz-template-region--footer {
  display: contents;
}

.rt-mobile-drawer,
.rt-mobile-menu__scrim {
  --rt-settings-nav-background: inherit;
  --rt-settings-nav-text: inherit;
  --rt-settings-nav-accent: inherit;
}

@media (max-width: 1120px) {
  .rt-nav[data-lmz-template-settings].is-mobile-menu-open {
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
    backdrop-filter: none !important;
  }

  .rt-nav[data-lmz-template-settings].is-mobile-menu-open > *:not(.rt-nav__toggle) {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .rt-nav[data-lmz-template-settings].is-mobile-menu-open > .rt-nav__toggle {
    position: relative;
    z-index: 1004;
    visibility: visible !important;
    pointer-events: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rt-nav[data-lmz-template-settings] *,
  .rt-footer[data-lmz-template-settings] * {
    transition-duration: .01ms !important;
  }
}
