/* LCARS console surfaces */
:root {
  --accent:#ffad72;
  --muted:#c5bed1;
  --line:#494158;
  --panel:#191621;
  --lavender:#bcabe7;
  --blue:#94aeee;
  --font-heading:"Arial Narrow","Bahnschrift SemiCondensed",Arial,sans-serif;
  --font-body:"Segoe UI",Arial,sans-serif;
}
body { background:#08070b; }
.header { height:auto;min-height:88px;border:0;gap:20px; }
.header nav { gap:5px; }
.header nav>a:not(.nav-contact),.header .nav-contact,.menu-toggle {
  border:0;background:var(--lavender);color:#120e19;border-radius:3px;
  padding:12px 18px;font:700 13px var(--font-heading);text-transform:uppercase;
}
.header nav>a:first-child { border-radius:24px 3px 3px 24px; }
.header nav>a:nth-child(2) { background:var(--blue); }
.header nav>a.nav-contact { background:var(--accent);border-radius:3px 24px 24px 3px;margin:0; }
.header nav>a:hover,.filters button:hover { filter:brightness(1.14); }
.hero { isolation:isolate;margin:0 auto;width:92%;padding:38px 0 38px clamp(54px,7vw,112px);gap:4%;align-items:center; }
.hero::before,.hero::after {
  content:"";position:absolute;z-index:-1;inset:0;
  border:solid var(--accent);border-width:12px 0 9px clamp(26px,4vw,68px);
  border-radius:55px 0 0 48px;pointer-events:none;
}
.hero::after {
  inset:27% auto 24% 0;width:clamp(26px,4vw,68px);border:0;border-radius:0;
  background:linear-gradient(to bottom,#08070b 0 5px,var(--lavender) 5px 42%,#08070b 42% calc(42% + 5px),#df939f calc(42% + 5px) 75%,#08070b 75% calc(75% + 5px),var(--blue) calc(75% + 5px) calc(100% - 5px),#08070b calc(100% - 5px));
}
.hero-grid { display:none; }
.hero h1 { font:800 clamp(46px,5.4vw,92px)/.95 var(--font-heading);letter-spacing:-.055em;margin:24px 0; }
.hero h1>span,.section .eyebrow,.hero .eyebrow { color:var(--accent); }
.hero-visual { border:0;border-radius:4px 40px 4px 4px;overflow:hidden;min-height:460px; }
.visual-top { font-family:monospace; }
.button.primary,.filters button.active,.legal-tabs a[aria-current="page"] { background:var(--accent);color:#150f15;border-color:var(--accent);border-radius:30px; }
.discipline-strip { margin:18px auto;width:92%;padding:0;border:0;gap:5px; }
.discipline-strip>span:not(.strip-claim) { text-align:right;padding:9px 15px;background:var(--lavender);color:#150f15;font-weight:700;flex:1; }
.discipline-strip>span:first-child { border-radius:24px 0 0 24px; }
.discipline-strip>span:nth-of-type(2) { background:#df939f; }
.discipline-strip>span:nth-of-type(3) { background:var(--blue);border-radius:0 24px 24px 0; }
.discipline-strip b,.strip-claim { display:none; }
.service-grid { gap:8px;border:0; }
.service { border:0;border-top:12px solid var(--lavender);border-radius:24px 0 0 0;background:#191621; }
.service:nth-child(2) { border-top-color:var(--blue); }
.service:nth-child(3) { border-top-color:var(--accent); }
.service .service-icon { background:var(--lavender);border-radius:50%;color:#151116; }
.filters button,.gallery-nav,.dialog-close { border-radius:24px; }
.section h2,.legal-page h1 { color:#efdfec; }
.project-image { border-radius:0 24px 0 0; }
@media(max-width:900px) { .header nav>a:not(.nav-contact),.header .nav-contact { padding:10px; } }
@media(max-width:720px) {
  .header { min-height:76px; }
  .header nav { background:#100e15;gap:6px; }
  .hero { padding:30px 0 24px 31px;width:94%;gap:24px; }
  .hero::before { border-width:8px 0 7px 14px;border-radius:24px 0 0 24px; }
  .hero::after { width:14px; }
  .hero h1 { font-size:clamp(44px,12vw,72px); }
  .hero-visual { min-height:310px; }
  .discipline-strip { width:94%; }
  .discipline-strip>span:not(.strip-claim) { padding:8px;text-align:center; }
  .service+.service { border-top-width:12px;border-top-style:solid; }
}

/* The two opposing elbows connect the station controls with the main display. */
:root {
  --console-black:#060509;
  --apricot:#ffb875;
  --iris:#a99bda;
  --coral:#e58e88;
  --rail-width:clamp(156px,13vw,218px);
  --console-type:"Bahnschrift Condensed","Arial Narrow","Bahnschrift",sans-serif;
}
body { background:var(--console-black); }
.console-ident { display:none; }
.header .brand img { object-fit:contain; }
.display-title {
  grid-column:1/-1;display:flex;align-items:center;gap:12px;color:var(--apricot);
  font:700 clamp(17px,2vw,29px)/1 var(--console-type);text-transform:uppercase;
}
.display-title::before,.display-title::after {
  content:"";height:12px;flex:1;background:var(--apricot);border-radius:0 10px 10px 0;
}
.display-title::before { flex:.15;border-radius:10px 0 0 10px;background:var(--iris); }
.display-title b { color:var(--iris); }
.hero { row-gap:24px; }
.hero h1,.section h2,.legal-page h1 {
  font-family:var(--console-type);text-transform:uppercase;letter-spacing:-.035em;
}
.hero h1 { font-weight:700;font-stretch:condensed;font-size:clamp(42px,5vw,82px); }
.hero .eyebrow,.visual-top,.section-label,.filters button,.legal-tabs a {
  font-family:var(--console-type);letter-spacing:.075em;text-transform:uppercase;
}
.hero-visual { outline:1px solid #5d516a;outline-offset:-1px;border-radius:3px 34px 3px 24px; }
.section[id],.legal-heading {
  position:relative;border-top:12px solid var(--iris);border-left:14px solid var(--iris);
  border-top-left-radius:42px;margin-block:36px;
}
.section.projects { border-color:var(--apricot); }
.section.company { border-color:var(--blue); }
.section.contact { border-color:var(--coral); }
.section[id]::before,.legal-heading::before {
  content:"";position:absolute;top:-12px;right:0;width:30%;height:12px;
  background:linear-gradient(90deg,var(--console-black) 0 5px,var(--coral) 5px 19%,var(--console-black) 19% calc(19% + 5px),var(--blue) calc(19% + 5px) 61%,var(--console-black) 61% calc(61% + 5px),var(--iris) calc(61% + 5px));border-radius:0 8px 8px 0;
}
.section[id]::after {
  content:"";position:absolute;left:-14px;top:84px;width:14px;height:58px;
  background:var(--apricot);border-block:5px solid var(--console-black);
}
.legal-heading { padding:24px; }
.filters button,.legal-tabs a { border-radius:20px 4px 4px 20px; }
@media(min-width:1000px) {
  body { padding:20px 2vw 0 calc(var(--rail-width) + 42px); }
  .header {
    position:fixed;z-index:8;inset:20px auto 20px 18px;width:var(--rail-width);
    min-height:0;max-height:calc(100dvh - 40px);margin:0;padding:0;display:flex;
    flex-direction:column;align-items:stretch;justify-content:flex-start;gap:5px;overflow:auto;
  }
  .console-ident { display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;min-height:88px;padding:14px 12px;background:var(--apricot);color:#130d13;border-radius:44px 0 0 0;font:700 13px/1 var(--console-type); }
  .console-ident strong { font-size:36px;letter-spacing:-.04em; }
  .header .brand { order:-1;width:100%;padding:12px 10px 18px; }
  .header nav { display:flex;flex-direction:column;align-items:stretch;gap:5px; }
  .header nav>a:not(.nav-contact),.header nav>a.nav-contact {
    border:0;border-radius:0;padding:20px 12px 9px;text-align:right;margin:0;
    color:#130d13;font:700 clamp(14px,1.16vw,19px)/1.1 var(--console-type);
  }
  .header nav>a:nth-child(3) { background:var(--coral); }
  .header .nav-contact span { margin:0; }
  .header .language-switch { margin:0;align-self:flex-end; }
  .header::after { content:"";flex:1;min-height:38px;border-radius:0 0 0 35px;background:linear-gradient(to bottom,var(--iris) 0 20%,var(--console-black) 20% calc(20% + 5px),#947fa7 calc(20% + 5px) 64%,var(--console-black) 64% calc(64% + 5px),var(--apricot) calc(64% + 5px)); }
  .hero,.discipline-strip,.section[id] { width:100%; }
  .hero { padding-left:clamp(40px,4vw,68px);grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); }
  .hero::before { border-left-width:22px; }
  .hero::after { width:22px; }
}
@media(max-width:999px) {
  .section[id] { width:94%;margin-inline:auto; }
  .display-title { gap:7px; }
}
@media(max-width:720px) {
  .display-title::before { display:none; }
  .hero h1 { font-size:clamp(39px,10.8vw,68px); }
  .section[id] { border-left-width:8px;padding-inline:5%; }
  .section[id]::after { left:-8px;width:8px; }
  .header .menu-toggle { border-radius:22px 4px 4px 22px; }
}
@media print {
  body { padding:0; }
  .header,.console-ident { display:none; }
}

/* Match every header control to the visible logo at its native aspect ratio. */
.header { --key-height:52px; }
.header .brand { height:var(--key-height);padding:0;flex-shrink:0; }
.header .brand img { width:auto;max-width:100%;height:100%;object-fit:contain;object-position:left center; }
.header nav>a:not(.nav-contact),.header nav>a.nav-contact,
.header .menu-toggle,.header .language-switch a {
  height:var(--key-height);min-height:var(--key-height);box-sizing:border-box;
  padding-block:0;align-items:center;
}
.header nav>a:not(.nav-contact),.header nav>a.nav-contact { display:flex;gap:.4em; }
.header .language-switch a[aria-current="true"] { border-color:var(--apricot); }
.header .language-switch a:hover { color:var(--apricot); }
@media(min-width:1000px) {
  .header { --key-height:calc(var(--rail-width) * .28); }
  .header nav>a:not(.nav-contact),.header nav>a.nav-contact { justify-content:flex-end; }
}
@media(max-width:720px) {
  .header { --key-height:44px; }
  .header .brand { width:auto;min-width:0;flex-shrink:1; }
}

/* Lower console: a continuous elbow ends in a segmented row of controls. */
footer {
  position:relative;width:94%;margin:42px auto 20px;padding:20px clamp(14px,3vw,46px) 22px;
  border:solid var(--iris);border-width:0 0 10px 18px;border-radius:0 0 0 38px;
  background:var(--console-black);
}
footer::before {
  content:"";position:absolute;left:-18px;top:0;width:18px;height:34%;
  background:var(--coral);border-bottom:5px solid var(--console-black);
}
.footer-top { gap:20px;padding-bottom:18px; }
.footer-top>span { color:var(--iris);font-family:var(--console-type);text-transform:uppercase; }
.footer-bottom { border:0;padding-top:0;align-items:center;color:var(--muted); }
.footer-bottom>div { display:flex;flex-wrap:wrap;gap:4px; }
.footer-top>a:last-child,.footer-bottom>div>a {
  display:inline-flex;align-items:center;min-height:44px;padding:0 16px;
  background:var(--iris);color:#130d13;font:700 14px/1.15 var(--console-type);
  text-transform:uppercase;text-decoration:none;
}
.footer-top>a:last-child { background:var(--apricot);border-radius:4px 24px 24px 4px; }
.footer-bottom>div>a:first-child { border-radius:23px 0 0 23px; }
.footer-bottom>div>a:nth-child(2) { background:var(--blue); }
.footer-bottom>div>a:nth-child(3) { background:var(--coral); }
.footer-bottom>div>a:last-child { border-radius:0 23px 23px 0; }
.footer-top>a:last-child:hover,.footer-bottom>div>a:hover { filter:brightness(1.15);text-decoration:underline; }
@media(min-width:1000px) { footer { width:100%; } }
@media(max-width:720px) {
  footer { padding-inline:14px;border-left-width:10px; }
  footer::before { left:-10px;width:10px; }
  .footer-bottom { align-items:flex-start; }
  .footer-bottom>div { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%; }
  .footer-bottom>div>a { justify-content:center;border-radius:4px; }
  .footer-top .brand { width:125px; }
}

.console-ident strong,.display-title b { display:inline-flex;align-items:center;gap:.3em; }
.console-ident strong::before,.display-title b::before {
  content:"";display:inline-block;flex:none;width:.95em;height:1.12em;
  background:url("/assets/Logos/flottenkurs.svg") center / contain no-repeat;
}

/* The home control starts the navigation rail. */
.header > .brand { display:none; }
.header > .console-ident {
  display:flex;flex-direction:column;align-items:flex-end;justify-content:center;
  gap:4px;min-height:88px;padding:14px 12px;background:var(--apricot);
  color:#130d13;border-radius:44px 0 0 0;text-decoration:none;
  font:700 13px/1 var(--console-type);
}
.header > .console-ident strong { font-size:32px; }
.header > .console-ident:hover { filter:brightness(1.1); }
.header > .console-ident:focus-visible { outline:2px solid white;outline-offset:-4px; }
.hero::before {
  border-width:12px 0 12px 14px;
  border-radius:42px 0 0 42px;
}
.hero::after { width:14px; }
@media(max-width:999px) {
  .header > .console-ident { min-height:64px;padding:10px 16px;border-radius:28px 0 0 0;flex-shrink:0; }
  .header > .console-ident strong { font-size:25px; }
}
@media(max-width:720px) {
  .hero::before { border-width:12px 0 12px 8px;border-radius:42px 0 0 42px; }
  .hero::after { width:8px; }
}

/* Simulated instruments fill the three unused navigation-rail segments. */
.console-telemetry { display:none; }
@media(min-width:1000px) {
  .header::after { display:none; }
  .console-telemetry { display:grid;grid-template-rows:1.2fr 1.5fr 1.4fr;gap:5px;flex:1;min-height:260px;order:10;overflow:hidden;border-radius:0 0 0 35px; }
  .telemetry-panel { display:flex;flex-direction:column;min-height:0;padding:10px 10px 8px;background:var(--iris);color:#171021;overflow:hidden; }
  .telemetry-power { background:#a28db5; }
  .telemetry-motion { background:var(--apricot);padding-bottom:18px; }
  .telemetry-heading,.telemetry-scale { display:flex;justify-content:space-between;gap:4px;flex:none;font:600 9px/1.2 var(--console-type);letter-spacing:.06em;text-transform:uppercase; }
  .telemetry-heading { padding-bottom:6px;border-bottom:1px solid #17102140; }
  .telemetry-heading>span { opacity:.65; }
  .telemetry-scale { font-size:8px;padding-top:4px; }
  .telemetry-panel svg { display:block;width:100%;height:100%;min-height:0;flex:1;margin-top:5px;overflow:hidden; }
  .telemetry-grid { fill:none;stroke:currentColor;stroke-width:.7;opacity:.2; }
  .telemetry-panel svg text { fill:currentColor;font:600 8px var(--console-type);letter-spacing:.03em; }
  .monitor-trace { fill:none;stroke:currentColor;stroke-width:1.5;animation:console-trace 5s linear infinite; }
  .trace-1 { animation-duration:7s; }
  .trace-2 { animation-duration:10s; }
  .monitor-meter { fill:currentColor;transform-box:fill-box;transform-origin:left;animation:console-meter 3s ease-in-out infinite alternate; }
  .meter-1 { animation-delay:-1s; }
  .meter-2 { animation-duration:5s;animation-delay:-2s; }
  .power-dial { fill:none;stroke:currentColor;stroke-width:4;opacity:.25; }
  .power-ticks,.power-bus { fill:none;stroke:currentColor;stroke-width:1;opacity:.5; }
  .power-needle { animation:console-load 8s ease-in-out infinite; }
  .power-needle path { stroke:currentColor;stroke-width:2;stroke-linecap:round; }
  .power-channel-1 { animation-duration:11s;animation-delay:-4s; }
  .power-channel-2 { animation-duration:9s;animation-delay:-6s; }
  .power-hub { fill:currentColor; }
  .power-label,.power-caption { text-anchor:middle; }
  .motion-rail { fill:none;stroke:currentColor;stroke-width:.8;opacity:.25; }
  .motion-set { fill:currentColor;animation:console-set 12s ease-in-out infinite; }
  .motion-actual,.motion-actuator { fill:currentColor;animation:console-position 12s ease-in-out infinite; }
  .motion-actuator path { stroke:var(--apricot);stroke-width:1.5; }
}
@keyframes console-trace { to { transform:translateX(-80px); } }
@keyframes console-meter { from { transform:scaleX(.25);opacity:.5; } to { transform:scaleX(1);opacity:.9; } }
@keyframes console-load { 0%,100% { transform:rotate(-65deg); } 28% { transform:rotate(32deg); } 52% { transform:rotate(-12deg); } 76% { transform:rotate(70deg); } }
@keyframes console-ack { 0%,100% { opacity:.4; } 35%,65% { opacity:1; } }
@keyframes console-set { 0%,8%,90%,100% { transform:translateX(0); } 30%,55% { transform:translateX(144px); } }
@keyframes console-position { 0%,14%,96%,100% { transform:translateX(0); } 38%,61% { transform:translateX(144px); } }
@media(prefers-reduced-motion:reduce) {
  .console-telemetry * { animation:none !important; }
}
/* The company overview becomes a schematic console in LCARS mode. */
.system-architecture.has-system-display { background:var(--console-black);border-color:#645674;border-radius:24px 0 24px 0;overflow:hidden; }
.system-architecture.has-system-display>a { display:none; }
.lcars-system-display svg { display:block;width:100%;height:auto;color:var(--lavender);font-family:var(--console-type); }
.architecture-elbow { fill:none;stroke:var(--apricot);stroke-width:12; }
.architecture-kicker { fill:var(--apricot);font-size:17px;font-weight:700;letter-spacing:2px; }
.architecture-title { fill:#f2eaf9;font-size:26px;font-weight:700; }
.architecture-caption { fill:var(--muted);font-size:10px;letter-spacing:1px; }
.architecture-route,.architecture-tx,.architecture-rx { fill:none;stroke-width:2;stroke-linejoin:round; }
.architecture-route { stroke:#544860; }
.architecture-tx { stroke:var(--apricot);stroke-dasharray:8 62;animation:architecture-transmit 8s linear infinite; }
.architecture-rx { stroke:var(--blue);stroke-dasharray:4 66;animation:architecture-transmit 8s linear infinite reverse; }
.architecture-device rect { fill:#191621;stroke:#78678b; }
.architecture-id { fill:var(--apricot);font-size:12px; }
.architecture-name { fill:#e9def4;font-size:15px;font-weight:700; }
.architecture-detail { fill:var(--muted);font-size:11px; }
.architecture-wave { fill:none;stroke:var(--blue);stroke-width:2; }
.architecture-status { fill:var(--apricot);animation:console-ack 4s ease-in-out infinite; }
.architecture-core { fill:var(--apricot); }
.architecture-brand { fill:#171021;font-size:30px;font-weight:700;text-anchor:middle; }
.architecture-core-caption { fill:#171021;font-size:10px;font-weight:700;text-anchor:middle; }
.architecture-axis { fill:var(--apricot);animation:architecture-axis 10s ease-in-out infinite; }
.architecture-footer-line { stroke:var(--iris);stroke-width:5; }
.architecture-footer { fill:var(--muted);font-size:13px;text-anchor:middle; }
@keyframes architecture-transmit { to { stroke-dashoffset:-140; } }
@keyframes architecture-axis { 0%,10%,90%,100% { transform:translateX(0); } 40%,60% { transform:translateX(92px); } }
@media(prefers-reduced-motion:reduce) { .lcars-system-display * { animation:none !important; } }
