@font-face{font-family:"Archivo";src:url(/assets/fonts/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Barlow Semi Condensed";src:url(/assets/fonts/barlow-sc-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Barlow Semi Condensed";src:url(/assets/fonts/barlow-sc-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(/assets/fonts/source-sans-3-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(/assets/fonts/source-sans-3-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(/assets/fonts/source-sans-3-700.woff2) format("woff2");font-weight:700;font-display:swap}

/* Layout: full-bleed night-motorway hero (canvas light trails) with Lizenz-Check → scrolling sign ticker → light content in a 1180px column; services as motorway sign plates, Ablauf as a route with km markers → night footer */
:root{
  --bg:#F2F6FA; --surface:#FFFFFF; --ink:#0A1C2E; --muted:#4A6178; --line:#D3E0EC;
  --navy:#023B6C; --night:#011A33; --night-2:#03284D; --on-dark:#FFFFFF; --on-dark-muted:#AFC6DC;
  --sky:#01A8EB; --sky-ink:#0072A3; --amber:#FFB400; --ok:#1E7F4F; --ok-bg:#E3F4EA; --warn:#8F5400; --warn-bg:#FFF1D6;
  --display:"Archivo",ui-sans-serif,system-ui,sans-serif;
  --sign:"Barlow Semi Condensed","Arial Narrow",ui-sans-serif,sans-serif;
  --body:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;
  --r:8px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#051628; --surface:#0A223C; --ink:#E6EEF6; --muted:#9CB2C7; --line:#1B3857;
  --sky-ink:#5CC8F2; --ok:#6FD3A0; --ok-bg:#0F3A2A; --warn:#F2C26B; --warn-bg:#3A2A0C; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#051628; --surface:#0A223C; --ink:#E6EEF6; --muted:#9CB2C7; --line:#1B3857;
  --sky-ink:#5CC8F2; --ok:#6FD3A0; --ok-bg:#0F3A2A; --warn:#F2C26B; --warn-bg:#3A2A0C; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.6;margin:0;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--night)}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);line-height:1.02;text-wrap:balance;margin:0;hyphens:auto;overflow-wrap:break-word}
h2{font-size:clamp(34px,5vw,60px);font-weight:900;font-stretch:115%;letter-spacing:-.015em}
h3{font-size:24px;font-weight:800;font-stretch:110%}
p{margin:0}
a{color:var(--sky-ink)}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.label{font-family:var(--sign);font-weight:700;font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--sky-ink)}

/* header */
header{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);z-index:6;transition:background .25s,box-shadow .25s}
header.solid{background:rgba(1,26,51,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px}
.bar img{height:48px;width:auto;display:block}
nav{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
nav a{color:var(--on-dark-muted);text-decoration:none;font-family:var(--sign);font-weight:600;font-size:18px;letter-spacing:.04em}
nav a:hover{color:var(--on-dark)}
.navcta{background:var(--amber);color:#1A1200!important;padding:8px 18px;border-radius:var(--r)}
@media (max-width:860px){nav a:not(.navcta){display:none}}

/* hero */
.hero{position:relative;background:var(--night);color:var(--on-dark);overflow:hidden;isolation:isolate}
#road{position:absolute;inset:0;width:100%;height:100%;z-index:-1;display:block}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(1,26,51,.9) 0%,rgba(1,26,51,.45) 42%,rgba(1,26,51,0) 70%),linear-gradient(0deg,var(--night) 0%,transparent 30%)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding-block:150px 110px}
.hero .wrap>*{min-width:0}
.hero .label{color:var(--amber)}
.hero h1{font-size:clamp(40px,5.4vw,78px);font-weight:900;font-stretch:118%;letter-spacing:-.02em;margin-top:20px}
.hero h1 .line{display:block;white-space:nowrap}
@media (max-width:420px){.hero h1 .line{white-space:normal}}
.hero h1 .out{color:transparent;-webkit-text-stroke:2px var(--sky)}
.hero h1 .sky{color:var(--sky)}
.hero .lead{color:var(--on-dark-muted);font-size:21px;margin-top:26px;max-width:32em}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sign);font-weight:700;font-size:20px;letter-spacing:.03em;padding:14px 26px;border-radius:var(--r);text-decoration:none;border:2px solid transparent;cursor:pointer}
.btn-amber{background:var(--amber);color:#1A1200}
.btn-amber:hover{background:#FFC633}
.btn-line{border-color:rgba(255,255,255,.35);color:var(--on-dark)}
.btn-line:hover{border-color:#fff}
.btn-sky{background:var(--sky);color:#fff}
@media (max-width:960px){.hero .wrap{grid-template-columns:1fr;padding-block:120px 72px}}

/* Lizenz-Check as glass panel */
.check{background:rgba(3,40,77,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:28px;color:var(--on-dark);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.check .label{color:var(--sky)}
.check h2{font-size:28px;font-stretch:112%;margin-top:6px}
.check .sub{color:var(--on-dark-muted);font-size:15px;margin-top:6px}
fieldset{border:0;margin:18px 0 0;padding:0}
legend{font-weight:700;font-size:15px;margin-bottom:8px;padding:0}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.seg.two{grid-template-columns:repeat(2,1fr)}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label{display:block;text-align:center;border:1.5px solid rgba(255,255,255,.18);border-radius:var(--r);padding:10px 4px;font-family:var(--sign);font-size:18px;font-weight:700;cursor:pointer;color:var(--on-dark);background:rgba(255,255,255,.04)}
.seg label small{display:block;font-family:var(--body);font-size:12px;font-weight:400;color:var(--on-dark-muted)}
.seg input:checked+label{border-color:var(--sky);background:var(--sky)}
.seg input:checked+label small{color:#E9F8FE}
.seg input:focus-visible+label{outline:3px solid var(--amber);outline-offset:2px}
.result{margin-top:20px;border-radius:var(--r);padding:16px 18px;border-left:5px solid var(--amber);background:rgba(255,180,0,.12)}
.result.ok{border-left-color:#4ADE9B;background:rgba(74,222,155,.12)}
.result .tag{font-family:var(--sign);font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber)}
.result.ok .tag{color:#4ADE9B}
.result h3{font-size:21px;margin-top:4px;color:var(--on-dark)}
.result p{font-size:15px;color:var(--on-dark-muted);margin-top:6px}
.check .fine{font-size:12px;color:var(--on-dark-muted);margin-top:12px}
@media (max-width:480px){.check{padding:22px 16px}.seg label{font-size:16px;padding:9px 2px}.seg label small{font-size:11px}}

/* ticker */
.ticker{background:var(--amber);color:#1A1200;overflow:hidden;border-block:3px solid #1A1200}
.track{display:flex;width:max-content;animation:run 40s linear infinite}
.track span{font-family:var(--sign);font-weight:700;font-size:22px;letter-spacing:.06em;text-transform:uppercase;padding:14px 28px;white-space:nowrap}
.track span::after{content:"◆";margin-left:56px;font-size:12px;vertical-align:middle}
@keyframes run{to{transform:translateX(-50%)}}

/* sections */
section{padding-block:110px}
.head{display:grid;gap:16px;max-width:46em;margin-bottom:56px}
.head p{color:var(--muted);font-size:20px}

/* services as motorway sign plates */
.signs{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.plate{background:var(--navy);color:#fff;border-radius:16px;padding:10px;box-shadow:0 18px 40px rgba(2,59,108,.22);transition:transform .25s}
.plate:hover{transform:translateY(-4px)}
.plate-in{border:3px solid #fff;border-radius:10px;padding:30px 30px 32px;height:100%;display:grid;gap:14px;align-content:start;min-width:0}
.plate .top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.plate .law{font-family:var(--sign);font-weight:600;font-size:16px;letter-spacing:.05em;color:#BFE6F8}
.plate h3{font-family:var(--sign);font-size:34px;font-weight:700;letter-spacing:.01em;line-height:1.05}
.plate p{color:#D6E6F3}
.plate ul{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.plate li{padding-left:28px;position:relative}
.plate li::before{content:"";position:absolute;left:0;top:.45em;width:14px;height:14px;border:2px solid var(--amber);border-radius:50%}
.pict{flex:none;width:64px;height:64px;border:3px solid #fff;border-radius:8px;display:grid;place-items:center}
.pict svg{width:38px;height:38px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:820px){.signs{grid-template-columns:1fr}.plate-in{padding:24px 20px}}

/* route */
.route-sec{background:var(--night);color:var(--on-dark)}
.route-sec .label{color:var(--amber)}
.route-sec .head p{color:var(--on-dark-muted)}
.route{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding-top:64px}
.route::before{content:"";position:absolute;left:0;right:0;top:22px;height:6px;border-radius:3px;background:repeating-linear-gradient(90deg,#fff 0 36px,transparent 36px 64px);opacity:.7}
.stop{position:relative;display:grid;gap:10px;min-width:0}
.stop .km{position:absolute;top:-64px;left:0;background:#fff;color:var(--night);font-family:var(--sign);font-weight:700;font-size:16px;padding:4px 10px;border-radius:4px;border:2px solid var(--night);box-shadow:0 0 0 2px #fff}
.stop h3{font-family:var(--sign);font-size:30px;font-weight:700;color:var(--on-dark)}
.stop p{color:var(--on-dark-muted);font-size:17px}
.stop.goal .km{background:var(--amber);box-shadow:0 0 0 2px var(--amber)}
@media (max-width:860px){.route{grid-template-columns:1fr 1fr;row-gap:80px}.route::before{display:none}}
@media (max-width:480px){.route{grid-template-columns:1fr}}

/* about */
.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.about>*{min-width:0}
.portrait{aspect-ratio:4/5;max-width:100%;border-radius:16px;background:linear-gradient(160deg,var(--navy),var(--night));display:grid;place-items:center;color:rgba(255,255,255,.18);font-family:var(--display);font-stretch:125%;font-weight:900;font-size:clamp(90px,14vw,160px);position:relative;overflow:hidden}
.portrait span{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-family:var(--sign);font-size:15px;font-weight:600;letter-spacing:.16em;color:var(--on-dark-muted)}
.about blockquote{margin:16px 0 0;font-family:var(--display);font-stretch:108%;font-size:clamp(26px,3.2vw,38px);font-weight:800;line-height:1.18}
.about blockquote b{color:var(--sky-ink);font-weight:800}
.about .who{margin-top:22px;color:var(--muted);max-width:36em}
.creds{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.creds span{border:2px solid var(--ink);border-radius:6px;padding:6px 14px;font-family:var(--sign);font-weight:700;font-size:17px;letter-spacing:.03em}
@media (max-width:820px){.about{grid-template-columns:1fr}.portrait{max-width:340px}}

.photo{margin:0;position:relative;max-width:100%;border-radius:16px;overflow:hidden;background:var(--navy);box-shadow:0 24px 60px rgba(2,59,108,.25)}
.photo img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:top}
.photo figcaption{position:absolute;left:16px;right:16px;bottom:16px;background:var(--navy);color:#fff;border:3px solid #fff;outline:6px solid var(--navy);border-radius:8px;padding:10px 16px;font-family:var(--sign);font-size:16px;letter-spacing:.03em;color:#D6E6F3}
.photo figcaption b{display:block;font-size:26px;color:#fff;letter-spacing:.01em}
@media (max-width:820px){.photo{max-width:380px}}
/* contact */
.contact{background:var(--surface);border-top:1px solid var(--line)}
.contact .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px}
.contact .wrap>*{min-width:0}
.cinfo{display:grid;gap:22px;align-content:start}
.cinfo dl{margin:8px 0 0;display:grid;gap:16px}
.cinfo dt{font-family:var(--sign);font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cinfo dd{margin:0;font-size:21px;font-weight:700;user-select:all}
form.cf{display:grid;gap:16px;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:28px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label.f{display:grid;gap:6px;font-weight:600;font-size:15px}
input[type=text],input[type=email],input[type=tel],select,textarea{font:inherit;font-size:17px;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);width:100%}
textarea{min-height:130px;resize:vertical}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted)}
.consent input{margin-top:4px;width:18px;height:18px;flex:none}
.note{font-size:14px;padding:12px 14px;border-radius:var(--r);background:var(--ok-bg)}
@media (max-width:820px){.contact .wrap,.row{grid-template-columns:1fr}form.cf{padding:20px}}

.legal{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.legal h3{margin-bottom:12px}
.legal p{color:var(--muted);font-size:16px}
.todo{background:var(--warn-bg);color:var(--ink);padding:2px 6px;border-radius:4px;font-size:14px}
@media (max-width:760px){.legal{grid-template-columns:1fr}}

footer{background:var(--night);color:var(--on-dark-muted);padding-block:44px;font-size:15px}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
footer img{height:60px}
footer a{color:var(--on-dark-muted)}
footer nav{gap:20px}
footer nav a{font-size:16px}

@media (prefers-reduced-motion:reduce){.track{animation:none}.plate{transition:none}}

/* legal pages */
.doc{padding-block:150px 90px}
.doc .wrap{max-width:820px}
.doc h1{font-size:clamp(36px,5vw,56px);font-weight:900;font-stretch:115%;margin:12px 0 32px}
.doc h2{font-size:26px;font-stretch:108%;margin:40px 0 12px}
.doc h3{font-size:19px;margin:24px 0 8px}
.doc p,.doc li{color:var(--muted);font-size:17px}
.doc p+p{margin-top:12px}
.doc ul{padding-left:22px}
.doc a{word-break:break-word}
.doc-hero{background:var(--night);height:84px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
