:root {
  --ink: #0A1128;
  --navy: #0D1B3D;
  --blue: #2563FF;
  --cyan: #00C2FF;
  --coral: #FF5A5F;
  --mist: #F2F6FB;
  --white: #FFFFFF;
  --line: rgba(13, 27, 61, 0.12);
  --muted: rgba(13, 27, 61, 0.67);
  --shadow: 0 18px 56px rgba(13, 27, 61, 0.07);
  --radius: 22px;
  --max: 1200px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--white); }
body {
  margin: 0; color: var(--navy);
  background: radial-gradient(circle at 78% 14%, rgba(0,194,255,.065), transparent 29rem), linear-gradient(180deg,#fff 0%,#fff 78%,#fbfdff 100%);
  font-family: Inter, Aptos, "Segoe UI", Helvetica, Arial, sans-serif;
  line-height: 1.52; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
.site-shell { min-height: 100vh; display: flex; flex-direction: column; }
.container { width: min(calc(100% - 48px), var(--max)); margin-left: auto; margin-right: auto; }
.site-header { min-height: 94px; display:flex; align-items:center; position:relative; z-index:20; padding: 7px 0 9px; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:10px; min-width:0; overflow:visible; padding:5px 0 9px; }
.brand-emblem { width:44px; height:44px; object-fit:contain; flex:0 0 auto; }
.brand-wordmark { width:clamp(190px,21vw,268px); height:auto; object-fit:contain; overflow:visible; }
.header-tools { display:flex; align-items:center; gap:18px; }
.lang-switch { display:inline-flex; gap:5px; align-items:center; font-size:12px; font-weight:800; letter-spacing:.08em; }
.lang-switch a { opacity:.42; transition:opacity .2s ease,color .2s ease; }
.lang-switch a:hover,.lang-switch a.active { opacity:1; color:var(--blue); }
.lang-switch .divider { opacity:.22; }
.menu-toggle { position:absolute; opacity:0; pointer-events:none; }
.menu-button { width:44px; height:44px; display:grid; place-items:center; cursor:pointer; border:1px solid var(--line); border-radius:50%; background:rgba(255,255,255,.9); box-shadow:0 7px 24px rgba(13,27,61,.04); }
.menu-button span,.menu-button span:before,.menu-button span:after { width:17px; height:1.5px; background:var(--navy); display:block; position:relative; transition:.25s ease; }
.menu-button span:before,.menu-button span:after { content:""; position:absolute; left:0; }
.menu-button span:before { top:-6px; }.menu-button span:after { top:6px; }
.menu-toggle:checked + .menu-button span { background:transparent; }
.menu-toggle:checked + .menu-button span:before { top:0; transform:rotate(45deg); }
.menu-toggle:checked + .menu-button span:after { top:0; transform:rotate(-45deg); }
.menu-panel { position:absolute; top:82px; right:max(24px,calc((100vw - var(--max))/2)); width:min(370px,calc(100vw - 48px)); padding:12px; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.98); box-shadow:var(--shadow); opacity:0; transform:translateY(-8px) scale(.98); pointer-events:none; transition:.22s ease; }
.menu-toggle:checked ~ .menu-panel { opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.menu-panel a { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:13px 14px; border-radius:12px; font-size:15px; font-weight:750; }
.menu-panel a:hover,.menu-panel a.current { background:var(--mist); color:var(--blue); }
.menu-index { font-size:11px; opacity:.45; letter-spacing:.1em; }
.page-main { flex:1; }
.hero,.service-hero { min-height:calc(100vh - 94px - 138px); display:grid; align-items:center; padding:50px 0 62px; }
.hero-grid,.service-grid { display:grid; grid-template-columns:minmax(0,.94fr) minmax(410px,1.06fr); gap:clamp(48px,7vw,96px); align-items:center; }
.copy { max-width:620px; }
.eyebrow { margin:0 0 18px; color:var(--blue); font-size:12px; font-weight:850; letter-spacing:.15em; text-transform:uppercase; }
h1 { margin:0; color:var(--ink); font-size:clamp(42px,5.3vw,72px); line-height:1.01; letter-spacing:-.052em; max-width:880px; }
h1 .accent { color:var(--blue); }
.lead { margin:26px 0 0; max-width:640px; font-size:clamp(17px,1.45vw,20px); color:var(--muted); }
.feature-list,.check-list { list-style:none; padding:0; margin:29px 0 0; display:grid; gap:12px; }
.feature-list li,.check-list li { display:flex; gap:12px; align-items:flex-start; font-size:15px; font-weight:650; color:var(--navy); }
.feature-dot { width:9px; height:9px; margin-top:7px; flex:0 0 9px; border-radius:50%; background:linear-gradient(135deg,var(--cyan),var(--blue)); box-shadow:0 0 0 5px rgba(37,99,255,.06); }
.check { width:21px; height:21px; flex:0 0 21px; border:1.5px solid var(--blue); border-radius:50%; display:grid; place-items:center; color:var(--blue); font-size:11px; margin-top:1px; }
.service-list { margin-top:30px; }
.actions { display:flex; gap:12px; margin-top:33px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:50px; padding:0 21px; border-radius:8px; background:var(--navy); color:#fff; font-size:12px; font-weight:850; letter-spacing:.055em; border:1px solid var(--navy); transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease; }
.button:hover { transform:translateY(-2px); box-shadow:0 10px 26px rgba(37,99,255,.19); background:var(--blue); border-color:var(--blue); }
.arrow { font-size:17px; line-height:1; }
.hero-art { position:relative; min-height:540px; display:grid; place-items:center; overflow:visible; }
.hero-art:before { content:""; position:absolute; width:74%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(0,194,255,.10) 0,rgba(37,99,255,.035) 46%,transparent 70%); }
.hero-art img { width:min(590px,100%); position:relative; z-index:1; filter:drop-shadow(0 25px 34px rgba(13,27,61,.075)); }
.hero-horizon { position:absolute; left:1%; right:1%; bottom:8.5%; height:1px; background:linear-gradient(90deg,transparent,rgba(37,99,255,.42),transparent); }
.service-art { padding:14px; }
.service-art img { width:min(650px,100%); margin-left:auto; margin-right:auto; }
.visual-card { position:relative; border-radius:28px; background:radial-gradient(circle at 50% 50%,rgba(0,194,255,.045),transparent 58%); }
.visual-card:after { content:""; position:absolute; left:12%; right:12%; bottom:7%; height:1px; background:linear-gradient(90deg,transparent,rgba(37,99,255,.22),transparent); }
.cta-strip { margin-top:auto; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:linear-gradient(90deg,rgba(242,246,251,.86),rgba(255,255,255,.97)); }
.cta-inner { min-height:116px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:28px; }
.cta-copy { text-align:left; }
.cta-title { font-size:19px; font-weight:800; line-height:1.28; color:var(--ink); max-width:700px; }
.cta-note { margin-top:6px; font-size:13px; color:var(--muted); }
.cta-strip .button { background:var(--blue); border-color:var(--blue); min-width:188px; }
.site-footer { min-height:76px; display:flex; align-items:center; }
.footer-inner { display:flex; justify-content:space-between; gap:22px; color:var(--navy); font-size:10px; }
.footer-inner .legal { opacity:.22; transition:opacity .2s ease; }
.footer-inner .legal:hover { opacity:.72; }
.footer-inner .copyright { opacity:.40; }
.page-marker { position:fixed; right:20px; top:50%; transform:translateY(-50%); display:grid; gap:8px; z-index:5; }
.page-marker a { width:6px; height:6px; border-radius:999px; background:var(--navy); opacity:.14; }
.page-marker a.current { height:24px; opacity:.74; background:var(--blue); }
.contact-page { padding:52px 0 82px; }
.contact-inner { max-width:1040px; }
.contact-brand { display:grid; justify-items:center; text-align:center; margin-bottom:58px; }
.contact-emblem { width:132px; height:132px; object-fit:contain; margin-bottom:13px; }
.contact-wordmark { width:min(560px,78vw); height:auto; }
.contact-claim { margin:4px 0 0; color:var(--muted); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.contact-claim span { color:var(--coral); padding:0 8px; }
.contact-intro { max-width:760px; margin:0 auto 36px; text-align:center; }
.contact-intro h1 { margin-left:auto; margin-right:auto; }
.contact-intro .lead { margin-left:auto; margin-right:auto; }
.contact-card { max-width:960px; margin:0 auto; padding:6px; filter:drop-shadow(0 18px 36px rgba(13,27,61,.07)); }
.contact-card img { width:100%; height:auto; }
.impressum { max-width:760px; padding:78px 0 100px; }
.impressum h1 { font-size:clamp(38px,5vw,62px); }
.impressum h2 { margin-top:38px; color:var(--ink); }
.notice { margin:28px 0; padding:18px 20px; border-radius:14px; background:#fff4f4; border:1px solid rgba(255,90,95,.26); color:#7a2431; }
.placeholder { background:var(--mist); padding:2px 7px; border-radius:5px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
@media (max-width:900px) {
  .container { width:min(calc(100% - 36px),var(--max)); }
  .site-header { min-height:82px; }
  .brand-emblem { width:38px; height:38px; }
  .brand-wordmark { width:210px; }
  .hero,.service-hero { min-height:auto; padding:34px 0 54px; }
  .hero-grid,.service-grid { grid-template-columns:1fr; gap:32px; }
  .hero-art { min-height:auto; order:-1; }
  .hero-art img { width:min(450px,86vw); }
  .service-art { order:-1; }
  .service-art img { width:min(530px,100%); }
  .cta-inner { grid-template-columns:1fr auto; padding:24px 0; }
  .page-marker { display:none; }
}
@media (max-width:600px) {
  .container { width:min(calc(100% - 28px),var(--max)); }
  .brand { gap:7px; }
  .brand-emblem { width:33px; height:33px; }
  .brand-wordmark { width:168px; }
  .header-tools { gap:9px; }
  .menu-button { width:40px; height:40px; }
  h1 { font-size:clamp(37px,11.5vw,54px); }
  .lead { font-size:17px; }
  .cta-inner { grid-template-columns:1fr; gap:14px; }
  .cta-strip .button { width:100%; }
  .footer-inner { align-items:center; }
  .contact-page { padding-top:34px; }
  .contact-brand { margin-bottom:42px; }
  .contact-emblem { width:104px; height:104px; }
  .contact-claim { font-size:10px; letter-spacing:.055em; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; transition:none !important; } }
