:root{
  --green:#009f56;
  --green-2:#18bd70;
  --ink:#101416;
  --ink-2:#1c2326;
  --muted:#677074;
  --line:#e8ecea;
  --paper:#f7f9f8;
  --white:#fff;
  --shadow:0 24px 70px rgba(7,22,14,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Manrope,Arial,sans-serif;color:#eef5f1;background:#07100c;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea,select{font:inherit}
.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;background:rgba(5,12,9,.90);backdrop-filter:blur(16px);border-bottom:1px solid rgba(0,0,0,.05);transition:.3s}
.site-header.scrolled{box-shadow:0 10px 40px rgba(0,0,0,.08)}
.nav-wrap{height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand-logo{width:240px;height:auto}
.nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:700;color:#eef5f1}
.nav a:not(.btn){position:relative}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--green);transition:.25s}
.nav a:hover::after{right:0}
.nav-toggle{display:none;background:none;border:0;width:42px;height:42px;padding:9px;cursor:pointer}
.nav-toggle span{display:block;height:2px;background:#fff;margin:6px 0;border-radius:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--green);color:white;padding:15px 24px;font-weight:800;cursor:pointer;box-shadow:0 10px 28px rgba(0,159,86,.23);transition:.25s}
.btn:hover{transform:translateY(-2px);background:#008b4b;box-shadow:0 16px 35px rgba(0,159,86,.28)}
.btn-sm{padding:11px 17px;font-size:13px}
.btn-ghost{background:rgba(255,255,255,.12);box-shadow:none;border:1px solid rgba(255,255,255,.38);backdrop-filter:blur(10px)}
.btn-ghost:hover{background:#fff;color:#111}
.btn-ghost-dark{background:#fff;color:#111;border:1px solid #dfe5e2;box-shadow:none}
.btn-full{width:100%;border-radius:14px}
.hero{min-height:760px;position:relative;display:flex;align-items:center;padding-top:84px;color:#fff;overflow:hidden}
.hero-media{position:absolute;inset:0;background:url('hero.png') center center/cover no-repeat;transform:scale(1.01)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,10,7,.92) 0%,rgba(3,10,7,.62) 43%,rgba(3,10,7,.10) 72%),linear-gradient(0deg,rgba(3,10,7,.72) 0%,transparent 42%)}
.hero-content{position:relative;z-index:2;padding-block:90px 60px}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:#b9ffda;margin-bottom:16px}
.eyebrow.green{color:var(--green)}
.hero h1,.section h2{margin:0;letter-spacing:-.045em;line-height:1.04}
.hero h1{font-size:clamp(52px,7vw,88px);max-width:860px}
.hero h1 span{color:#7cf4b5}
.hero p{max-width:760px;font-size:20px;color:#eef8f2;margin:24px 0 30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-points{display:flex;gap:44px;margin-top:58px;border-top:1px solid rgba(255,255,255,.26);padding-top:22px;max-width:760px}
.hero-points div{display:flex;flex-direction:column}
.hero-points strong{font-size:15px}
.hero-points span{font-size:13px;color:#ccd8d1}
.section{padding:110px 0}
.section-light{background:#0a1510;color:#eef5f1}
.section-dark{background:var(--ink);color:white}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}
.section h2{font-size:clamp(38px,5vw,62px);max-width:760px}
.lead{font-size:21px;line-height:1.55;color:#c5d1ca}
.copy p:not(.lead){color:#9eada5;font-size:16px}
.quote-card{margin-top:28px;padding:20px 22px;border-left:4px solid var(--green);background:#101e17;border-radius:0 14px 14px 0;font-weight:800;box-shadow:0 12px 40px rgba(0,0,0,.05)}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.fact-card{min-height:180px;background:#101e17;border:1px solid rgba(255,255,255,.07);border-radius:24px;padding:28px;box-shadow:0 16px 50px rgba(0,0,0,.055);display:flex;flex-direction:column;justify-content:flex-end}
.fact-number{font-size:46px;line-height:1;font-weight:800;color:var(--green);margin-bottom:9px}
.fact-card span:last-child{font-weight:700;color:#aebbb4}
.section-head{max-width:760px;margin-bottom:42px}
.section-dark .section-head p{color:#aeb9b3;font-size:18px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-card{background:var(--ink-2);border:1px solid rgba(255,255,255,.07);border-radius:22px;padding:32px;min-height:285px;transition:.25s}
.service-card:hover{transform:translateY(-6px);border-color:rgba(124,244,181,.35)}
.service-card .icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:rgba(0,159,86,.15);color:#7cf4b5;font-size:25px;margin-bottom:48px}
.service-card h3{font-size:22px;margin:0 0 12px}
.service-card p{color:#abb5b0;margin:0}
.career{background:linear-gradient(180deg,#08120d,#0c1a13);color:#eef5f1}
.career-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:start}
.pill{display:inline-flex;padding:8px 12px;border-radius:999px;background:#e8fff2;color:#007d43;font-weight:800;font-size:12px;margin-bottom:20px}
.check-list{list-style:none;padding:0;margin:28px 0 34px;display:grid;gap:14px}
.check-list li{position:relative;padding-left:30px;font-weight:600;color:#c7d2cc}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:900}
.career-panel{position:sticky;top:120px;background:#111816;color:white;border-radius:28px;padding:36px;box-shadow:var(--shadow)}
.career-badge{width:72px;height:72px;border-radius:22px;background:var(--green);display:grid;place-items:center;font-size:36px;font-weight:800;margin-bottom:30px}
.career-panel h3{font-size:30px;line-height:1.15;margin:0 0 12px}
.career-panel p{color:#bec8c2}
.mini-info{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-top:1px solid rgba(255,255,255,.1);font-size:14px}
.mini-info span{color:#90a198}
.mini-info strong{text-align:right}
.form-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:start}
.form-intro{position:sticky;top:120px}
.privacy-note{margin-top:28px;padding:18px;border-radius:16px;background:#10241a;color:#aebbb4;font-size:14px}
.application-form{background:#101e17;border:1px solid rgba(255,255,255,.08);border-radius:26px;padding:34px;box-shadow:0 18px 60px rgba(0,0,0,.07);display:grid;gap:17px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{display:grid;gap:7px;font-size:13px;font-weight:800;color:#dfe9e3}
input,textarea,select{width:100%;border:1px solid rgba(255,255,255,.18);background:#0b1711;color:#eef5f1;border-radius:12px;padding:13px 14px;outline:none;transition:.2s;caret-color:#eef5f1}
input::placeholder,textarea::placeholder{color:#8fa29a;opacity:1}
input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(0,159,86,.08);background:#10241a;color:#eef5f1}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus{
  -webkit-text-fill-color:#eef5f1;
  caret-color:#eef5f1;
  -webkit-box-shadow:0 0 0px 1000px #10241a inset;
  box-shadow:0 0 0px 1000px #10241a inset;
  border:1px solid var(--green);
  transition:background-color 9999s ease-in-out 0s;
}
.file-label input{padding:12px;background:#10241a;color:#eef5f1}
.consent{display:flex;align-items:flex-start;gap:10px;font-weight:500;color:#aebbb4}
.consent input{width:18px;height:18px;margin-top:3px;accent-color:var(--green)}
.form-help{margin:0;text-align:center;font-size:13px;color:#77807c}
.form-help a{color:var(--green);font-weight:800}
.contact{background:#08120d;color:#eef5f1}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.contact-card{border:1px solid rgba(255,255,255,.08);border-radius:26px;padding:32px;background:#101e17;box-shadow:0 18px 60px rgba(0,0,0,.05)}
.contact-item{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.contact-item span{color:#91a097;font-size:13px;font-weight:700}
.contact-item strong{font-size:15px}
.contact-actions{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
footer{background:#0b100e;color:#d4ddd8;padding:66px 0 24px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px}
.footer-logo{width:240px;filter:brightness(0) invert(1);opacity:.92;margin-bottom:16px}
.footer-grid p{color:#8f9b95;max-width:390px}
.footer-grid>div:not(:first-child){display:grid;align-content:start;gap:10px}
.footer-grid strong{color:white;margin-bottom:6px}
.footer-grid a,.link-btn{color:#98a49e;font-size:14px}
.link-btn{background:none;border:0;padding:0;text-align:left;cursor:pointer}
.footer-bottom{margin-top:48px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#7f8a84}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:200;display:none;place-items:center;padding:20px}
.modal.open{display:grid}
.modal-card{position:relative;background:white;color:#111;width:min(650px,100%);max-height:80vh;overflow:auto;border-radius:24px;padding:34px;box-shadow:var(--shadow)}
.modal-card h2{font-size:34px;margin-top:0}
.modal-close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:32px;cursor:pointer}
.reveal{opacity:1;transform:none}
@media(max-width:900px){
  .nav-toggle{display:block}.nav{position:absolute;top:84px;left:20px;right:20px;background:white;border-radius:18px;padding:18px;box-shadow:0 18px 60px rgba(0,0,0,.14);display:none;flex-direction:column;align-items:stretch;gap:10px}.nav.open{display:flex}.nav a{padding:10px 6px}.brand-logo{width:205px}
  .hero{min-height:720px}.hero-overlay{background:linear-gradient(90deg,rgba(6,14,10,.86),rgba(6,14,10,.45))}.hero-points{gap:22px;flex-wrap:wrap}.hero h1{font-size:58px}
  .split,.career-grid,.form-grid,.contact-grid,.route-grid{grid-template-columns:1fr;gap:42px}.facts{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:1fr}.service-card{min-height:auto}.career-panel,.form-intro{position:static}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}
}
@media(max-width:620px){
  .container{width:min(100% - 28px,1180px)}.nav-wrap{height:72px}.nav{top:72px}.site-header{position:fixed}.hero{padding-top:72px;min-height:760px}.hero-content{padding-block:78px 42px}.hero h1{font-size:45px}.hero p{font-size:17px}.hero-points{display:grid;grid-template-columns:1fr 1fr}.hero-actions .btn{width:100%}.section{padding:80px 0}.section h2{font-size:40px}.facts{grid-template-columns:1fr 1fr}.fact-card{min-height:140px;padding:21px}.fact-number{font-size:35px}.field-row{grid-template-columns:1fr}.application-form{padding:22px;border-radius:20px}.contact-item{grid-template-columns:1fr;gap:4px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.brand-logo{width:185px}.career-panel{padding:28px}.mini-info{flex-direction:column;gap:4px}.mini-info strong{text-align:left}
}

.form-status{padding:14px 16px;border-radius:12px;font-weight:700;font-size:14px}
.form-status.success{display:block;background:rgba(0,159,86,.16);border:1px solid rgba(24,189,112,.38);color:#bff7d7}
.form-status.error{display:block;background:rgba(190,54,54,.14);border:1px solid rgba(255,110,110,.28);color:#ffd1d1}
.btn.is-loading{opacity:.75;pointer-events:none}

/* Einsatzgebiet: interaktive Karte mit allen 26 Schweizer Kantonen */
.route-section{background:radial-gradient(circle at 74% 44%,rgba(0,159,86,.09),transparent 32%),#0a1710;color:#eef5f1}
.route-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:68px;align-items:center}
.route-copy .lead{color:#aebbb4}
.map-summary{display:flex;align-items:center;gap:16px;margin:28px 0 18px}
.map-summary-badge{width:86px;height:86px;border-radius:22px;border:1px solid rgba(124,244,181,.18);background:linear-gradient(145deg,#132a1e,#0c1d14);display:grid;place-items:center;align-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.map-summary-badge strong{font-size:29px;line-height:1;color:#7cf4b5}.map-summary-badge span{font-size:11px;color:#90a198;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-top:5px}
.map-summary-text{display:grid;gap:4px}.map-summary-text span{font-size:12px;color:#7f9187;font-weight:700}.map-summary-text strong{font-size:15px}
.route-chip{border:1px solid rgba(255,255,255,.12);background:#101e17;color:#aebbb4;border-radius:999px;padding:10px 14px;cursor:pointer;font-size:13px;font-weight:800;transition:background .2s,border-color .2s,color .2s,transform .2s}
.route-chip.active,.route-chip:hover{border-color:rgba(124,244,181,.45);background:#153126;color:#eef5f1;transform:translateY(-1px)}
.route-status{margin:14px 0 0;color:#7cf4b5;font-weight:800;font-size:14px;min-height:22px;transition:opacity .18s,transform .18s}.route-status.is-changing{opacity:.2;transform:translateY(4px)}
.swiss-map-card{position:relative;background:linear-gradient(145deg,#0b1a12,#07110c);border:1px solid rgba(124,244,181,.12);border-radius:30px;padding:14px;box-shadow:0 28px 70px rgba(0,0,0,.28);overflow:hidden;min-height:555px}
.map-glow{position:absolute;width:340px;height:340px;right:-110px;top:-130px;border-radius:50%;background:radial-gradient(circle,rgba(35,211,119,.14),transparent 70%);pointer-events:none}
.map-toolbar{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px 4px;color:#92a59a;font-size:12px;font-weight:800}
.map-toolbar-left{display:flex;align-items:center;gap:9px}.map-live-dot{width:8px;height:8px;border-radius:50%;background:#27d17b;box-shadow:0 0 0 5px rgba(39,209,123,.08);animation:livePulse 2s ease-out infinite}.map-toolbar-hint{color:#6f8478}
@keyframes livePulse{0%,100%{box-shadow:0 0 0 5px rgba(39,209,123,.08)}50%{box-shadow:0 0 0 10px rgba(39,209,123,0)}}
.swiss-map{display:block;width:100%;height:auto;min-height:420px;filter:drop-shadow(0 20px 34px rgba(0,0,0,.22))}
.canton-map{position:relative;z-index:1;overflow:visible}
.canton-shape{fill:#11291c;stroke:#315844;stroke-width:1.3;vector-effect:non-scaling-stroke;cursor:pointer;opacity:0;transform:scale(.965);transform-box:fill-box;transform-origin:center;animation:cantonBuild .5s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--canton-order) * 34ms);transition:fill .22s,stroke .22s,opacity .22s,filter .22s,transform .22s}
.canton-shape:hover,.canton-shape.is-selected{fill:#1e754b;stroke:#98f3bf;filter:drop-shadow(0 0 8px rgba(52,220,134,.38));transform:scale(1.015)}
.canton-shape.is-origin{fill:#17613f;stroke:#8bf0b6;filter:drop-shadow(0 0 7px rgba(45,212,126,.32))}
.canton-shape.is-dimmed{opacity:.28!important;filter:none}
@keyframes cantonBuild{to{opacity:1;transform:scale(1)}}
.canton-label{fill:#dce9e2;font-size:11px;font-weight:800;text-anchor:middle;dominant-baseline:central;pointer-events:none;opacity:0;animation:cantonLabelIn .35s ease forwards;animation-delay:calc(900ms + var(--canton-order) * 18ms);paint-order:stroke;stroke:#08120d;stroke-width:2.2px;stroke-linejoin:round}
.canton-label.is-selected{fill:#fff;font-size:12px}.canton-label.is-dimmed{opacity:.2!important}
@keyframes cantonLabelIn{to{opacity:.94}}
.active-canton-route{fill:none;stroke:url(#routeGradient);stroke-width:3;stroke-linecap:round;stroke-dasharray:10 10;opacity:0;filter:drop-shadow(0 0 5px rgba(74,226,143,.45));animation:routeDash 1.6s linear infinite;transition:opacity .2s}
.active-canton-route.is-visible{opacity:1}@keyframes routeDash{to{stroke-dashoffset:-40}}
.canton-route-runner{fill:#d4ffe6;filter:url(#cantonGlow);opacity:0;transition:opacity .2s}.canton-route-runner.is-visible{opacity:1}
.canton-map-loading{position:absolute;inset:68px 16px 82px;z-index:4;display:flex;align-items:center;justify-content:center;gap:10px;color:#809388;font-size:13px;background:rgba(7,17,12,.42);backdrop-filter:blur(2px);transition:opacity .3s,visibility .3s}.canton-map-loading.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.map-loader{width:18px;height:18px;border:2px solid rgba(124,244,181,.18);border-top-color:#7cf4b5;border-radius:50%;animation:mapSpin .8s linear infinite}@keyframes mapSpin{to{transform:rotate(360deg)}}
.canton-info{position:absolute;z-index:5;left:28px;right:28px;bottom:30px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;padding:13px 15px;border:1px solid rgba(255,255,255,.09);border-radius:17px;background:rgba(7,16,12,.90);backdrop-filter:blur(12px);box-shadow:0 12px 30px rgba(0,0,0,.2)}
.canton-code{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(24,189,112,.13);border:1px solid rgba(124,244,181,.16);color:#7cf4b5;font-weight:900;font-size:15px}.canton-info-copy{display:grid;gap:2px}.canton-info-copy span{font-size:11px;color:#71857a;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.canton-info-copy strong{font-size:15px}.canton-info-arrow{color:#7cf4b5;font-size:18px}
.map-source{position:absolute;z-index:2;right:26px;bottom:9px;font-size:9px;color:#52645a;letter-spacing:.02em}
.facebook-link{display:inline-flex;align-items:center;gap:9px;width:max-content}
.facebook-icon{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:#1877f2;color:#fff;font-weight:900;font-size:18px}
.footer-legal-title{margin-top:15px}
@media(max-width:900px){.route-grid{grid-template-columns:1fr;gap:42px}.swiss-map-card{min-height:520px}}
@media(max-width:620px){.swiss-map{min-height:330px}.swiss-map-card{padding:8px;border-radius:22px;min-height:440px}.map-toolbar{padding:9px 8px 0}.map-toolbar-hint{display:none}.canton-info{left:16px;right:16px;bottom:22px}.map-source{right:18px;bottom:5px}.canton-label{font-size:9px}.map-summary{margin-top:22px}.map-summary-badge{width:74px;height:74px}.map-summary-badge strong{font-size:25px}}

.facebook-link{display:inline-flex;align-items:center;gap:9px;width:max-content}.facebook-icon{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:#1877f2;color:#fff;font-weight:900;font-size:18px}.footer-legal-title{margin-top:15px}
@media(max-width:620px){.swiss-map{min-height:300px}.map-note{position:static;margin-top:10px}.route-buttons{gap:7px}.route-chip{font-size:12px;padding:8px 11px}.map-location text{font-size:13px}.swiss-map-card{padding:8px;border-radius:22px}}
