:root{
  --blue:#0b5ea8;
  --blue-dark:#0a3157;
  --blue-soft:#eaf3fb;
  --ink:#142433;
  --muted:#667789;
  --line:#dce5ec;
  --panel:#ffffff;
  --bg:#f3f7fa;
  --ok:#177c58;
  --danger:#b52a2a;
  --shadow:0 24px 70px rgba(28,53,74,.10);
}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{min-height:100vh;margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at 0 0,rgba(11,94,168,.08),transparent 34rem),var(--bg);display:flex;flex-direction:column}
a{color:var(--blue);text-underline-offset:3px}
.page-wrap{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.site-header{height:84px;background:rgba(255,255,255,.88);border-bottom:1px solid rgba(220,229,236,.92);backdrop-filter:blur(14px);display:flex;align-items:center}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand-lockup{display:inline-flex;align-items:center;gap:14px;color:inherit;text-decoration:none}
.logo-slot{width:112px;height:42px;display:grid;place-items:center;overflow:hidden}
.logo-slot img{width:100%;height:100%;object-fit:contain}
.brand-copy{display:flex;flex-direction:column;line-height:1.15}
.brand-copy strong{font-size:15px;letter-spacing:.01em}
.brand-copy small{margin-top:4px;color:var(--muted);font-size:12px}
.header-note{font-size:13px;color:var(--muted);padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#fff}
.page-shell{display:grid;grid-template-columns:minmax(280px,390px) minmax(0,1fr);gap:48px;align-items:start;padding-block:58px 42px;flex:1}
.intro-panel{position:sticky;top:42px;padding:26px 8px 24px 4px}
.intro-eyebrow{font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--blue);margin-bottom:18px}
.intro-panel h1{font-size:clamp(38px,4vw,58px);line-height:1.02;letter-spacing:-.045em;margin:0 0 22px;color:var(--blue-dark)}
.intro-panel>p{font-size:17px;line-height:1.7;color:var(--muted);margin:0;max-width:36ch}
.intro-points{display:grid;gap:16px;margin-top:38px;padding-top:28px;border-top:1px solid var(--line)}
.intro-points>div{display:grid;grid-template-columns:34px 1fr;gap:13px;align-items:start}
.intro-points>div>span{font-size:11px;font-weight:800;color:var(--blue);border:1px solid #bdd4e7;border-radius:8px;width:34px;height:30px;display:grid;place-items:center;background:rgba(255,255,255,.75)}
.intro-points p{margin:0;display:flex;flex-direction:column;gap:3px}
.intro-points strong{font-size:14px;color:var(--ink)}
.intro-points small{font-size:13px;line-height:1.45;color:var(--muted)}
.form-panel{background:var(--panel);border:1px solid rgba(208,220,229,.95);border-radius:24px;box-shadow:var(--shadow);overflow:hidden;min-height:610px}
.wizard-progress{display:grid;grid-template-columns:repeat(5,1fr);margin:0;padding:24px 30px 20px;background:#fbfdff;border-bottom:1px solid var(--line)}
.wizard-progress-item{position:relative;background:transparent;border:0;color:#8b99a6;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 4px;font:inherit}
.wizard-progress-item:not(:last-child)::after{content:"";position:absolute;top:14px;left:calc(50% + 18px);right:calc(-50% + 18px);height:1px;background:#d7e1e9}
.wizard-progress-item span{position:relative;z-index:1;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;border:1px solid #c9d5df;background:#fff;font-size:12px;font-weight:800}
.wizard-progress-item small{font-size:11px;font-weight:750;white-space:nowrap}
.wizard-progress-item.is-active{color:var(--blue-dark)}
.wizard-progress-item.is-active span{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 5px rgba(11,94,168,.10)}
.wizard-progress-item.is-complete{color:var(--ok)}
.wizard-progress-item.is-complete span{background:var(--ok);border-color:var(--ok);color:#fff}
.wizard-progress-item.is-complete:not(:last-child)::after{background:#9fcab9}
.card{background:transparent;border:0;border-radius:0;box-shadow:none;padding:42px 44px 36px;margin:0}
.success-card{padding:48px}
.wizard-step{display:none}
.wizard-step.is-active{display:block}
.step-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;margin-bottom:10px}
.step-kicker::before{content:"";width:18px;height:2px;background:var(--blue);border-radius:2px}
.card h2{font-size:32px;line-height:1.18;letter-spacing:-.025em;margin:0 0 10px;color:var(--blue-dark)}
.section-intro{color:var(--muted);font-size:15px;line-height:1.65;margin:0 0 30px;max-width:68ch}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px}
.grid-3{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px}
.grid-3>div:first-child{grid-column:span 1}
.full{grid-column:1/-1}
label{display:block;font-size:13px;font-weight:750;margin-bottom:8px;color:#263a4c}
input,select,textarea,button{font:inherit}
input,select,textarea{width:100%;min-height:50px;border:1px solid #c5d2dc;border-radius:11px;padding:12px 14px;background:#fbfdff;color:var(--ink);transition:border-color .18s,box-shadow .18s,background .18s}
input:hover,select:hover,textarea:hover{border-color:#9fb5c6;background:#fff}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px rgba(11,94,168,.11)}
input.is-invalid,select.is-invalid{border-color:var(--danger);background:#fff8f8}
button,.btn{min-height:48px;border:0;border-radius:11px;background:var(--blue);color:#fff;padding:12px 20px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(11,94,168,.18);transition:transform .18s,box-shadow .18s,background .18s}
button:hover{background:#084e8e;transform:translateY(-1px);box-shadow:0 10px 22px rgba(11,94,168,.23)}
button:active{transform:translateY(0)}
.btn-secondary{background:#fff;color:var(--blue-dark);border:1px solid #cbd8e2;box-shadow:none}
.btn-secondary:hover{background:#f4f8fb;box-shadow:none}
.map{height:450px;border-radius:14px;border:1px solid var(--line);overflow:hidden;background:#eef3f7;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
.hint{color:var(--muted);font-size:12px;line-height:1.5;margin:8px 0 0}
.resolved-address{min-height:0;margin:20px 0 0;padding:14px 16px 14px 44px;border-radius:11px;border:1px solid #c9dfd5;background:#f0f8f4;color:#195f47;display:none;position:relative}
.resolved-address::before{content:"✓";position:absolute;left:16px;top:13px;width:20px;height:20px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:900}
.resolved-address.is-visible{display:block}
.notice{padding:18px 20px;border-radius:12px;border:1px solid #c6dfd3;background:#eff8f4;color:#145d43}
.error{margin:0 30px 20px;padding:14px 16px;border-radius:10px;background:#fdeeee;color:#8d1e1e}
.consent{display:flex;gap:12px;align-items:flex-start;font-weight:500;line-height:1.55;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafcfd}
.consent input{width:auto;min-height:auto;margin-top:4px;accent-color:var(--blue)}
.consent-wrap{margin-top:22px}
.summary-box{border:1px solid var(--line);border-radius:13px;background:#f8fafc;padding:18px;margin-bottom:24px;display:grid;gap:10px}
.summary-row{display:flex;gap:18px;justify-content:space-between;border-bottom:1px solid #e4ebf0;padding-bottom:10px}
.summary-row:last-child{border-bottom:0;padding-bottom:0}
.summary-row span:first-child{color:var(--muted);font-size:13px}
.summary-row strong{text-align:right;font-size:13px;color:var(--ink)}
.final-grid{max-width:430px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px;padding-top:24px;border-top:1px solid #e9eef2}
.actions-end{justify-content:flex-end}
.actions-between{justify-content:space-between}
.honeypot{position:absolute!important;left:-9999px!important}
.site-footer{padding:0 0 30px;color:var(--muted);font-size:13px}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.footer-inner nav{display:flex;gap:22px}
.footer-inner a{color:inherit;text-decoration:none}
.footer-inner a:hover{color:var(--blue)}
.leaflet-container{font-family:inherit}
@media(max-width:980px){
  .page-shell{grid-template-columns:1fr;gap:26px;padding-top:34px}
  .intro-panel{position:static;padding:6px 4px 0;display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:end}
  .intro-panel>p{grid-column:1;max-width:52ch}
  .intro-panel h1{margin-bottom:16px}
  .intro-points{grid-column:2;grid-row:1/span 3;margin:0;padding:0 0 2px 28px;border-top:0;border-left:1px solid var(--line)}
}
@media(max-width:720px){
  .page-wrap{width:min(100% - 22px,1240px)}
  .site-header{height:72px}
  .brand-copy{display:none}
  .header-note{font-size:11px;padding:7px 9px}
  .logo-slot{width:96px;height:36px}
  .page-shell{padding-block:26px 28px}
  .intro-panel{display:block;padding:2px}
  .intro-panel h1{font-size:38px}
  .intro-panel>p{font-size:15px}
  .intro-points{display:none}
  .form-panel{border-radius:18px;min-height:0}
  .wizard-progress{padding:18px 12px 15px}
  .wizard-progress-item{gap:6px}
  .wizard-progress-item small{font-size:9px}
  .wizard-progress-item span{width:27px;height:27px}
  .wizard-progress-item:not(:last-child)::after{top:13px;left:calc(50% + 15px);right:calc(-50% + 15px)}
  .card{padding:30px 22px 24px}
  .card h2{font-size:27px}
  .grid,.grid-3{grid-template-columns:1fr}
  .map{height:360px}
  .actions-between{flex-direction:column-reverse}
  .actions-between button,.actions-end button{width:100%}
  .summary-row{display:block}
  .summary-row strong{display:block;text-align:left;margin-top:4px}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:12px}
  .footer-inner nav{gap:16px;flex-wrap:wrap}
}

/* Harmonized wizard */
.wizard-progress{
  gap:8px;
  padding:18px 22px;
  background:#f8fbfd;
}
.wizard-progress-item{
  min-width:0;
  min-height:54px;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  align-items:center;
  justify-items:start;
  gap:10px;
  padding:7px 10px;
  border:1px solid transparent;
  border-radius:12px;
  color:#718292;
  text-align:left;
}
.wizard-progress-item:not(:last-child)::after{display:none}
.wizard-progress-item span{
  width:30px;
  height:30px;
  border-color:#cad7e1;
  font-size:12px;
}
.wizard-progress-item small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:12px;
  font-weight:750;
  letter-spacing:.005em;
}
.wizard-progress-item.is-active{
  color:var(--blue-dark);
  background:#fff;
  border-color:#cddfeb;
  box-shadow:0 5px 16px rgba(28,53,74,.06);
}
.wizard-progress-item.is-active span{
  box-shadow:none;
}
.wizard-progress-item.is-complete{
  color:#315f4f;
  background:rgba(239,248,244,.72);
}
.wizard-progress-item.is-complete span{
  font-size:0;
}
.wizard-progress-item.is-complete span::after{
  content:"✓";
  font-size:13px;
  font-weight:900;
}
.wizard-step{
  min-height:500px;
}
.step-kicker{
  margin-bottom:12px;
  color:#5e7487;
  letter-spacing:.07em;
}
.step-kicker::before{
  width:16px;
  background:#9cb7ca;
}

/* Shared subpages */
.subpage-main{
  flex:1;
  width:min(920px,calc(100% - 48px));
  margin:0 auto;
  padding:54px 0 46px;
}
.subpage-card{
  background:#fff;
  border:1px solid rgba(208,220,229,.95);
  border-radius:22px;
  box-shadow:var(--shadow);
  padding:42px 44px;
}
.subpage-card h1{
  margin:0 0 14px;
  color:var(--blue-dark);
  font-size:clamp(30px,4vw,42px);
  line-height:1.12;
  letter-spacing:-.035em;
}
.subpage-card h2{
  margin:30px 0 8px;
  color:var(--blue-dark);
  font-size:20px;
}
.subpage-card p{
  color:var(--muted);
  line-height:1.7;
}
.subpage-card .notice{margin-bottom:24px}
.subpage-card form{margin-top:26px}
.subpage-card .actions{margin-top:28px}
.subpage-intro{
  max-width:68ch;
  margin:0 0 28px;
  color:var(--muted);
  font-size:15px;
  line-height:1.7;
}
.subpage-reference{
  display:inline-flex;
  margin:0 0 24px;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#f8fafc;
  color:var(--muted);
  font-size:12px;
}
.danger-zone{
  margin-top:34px;
  padding-top:26px;
  border-top:1px solid var(--line);
}
.btn-danger{
  background:#fff;
  color:var(--danger);
  border:1px solid #e6baba;
  box-shadow:none;
}
.btn-danger:hover{
  background:#fff5f5;
  color:#941f1f;
  box-shadow:none;
}

@media(max-width:860px){
  .wizard-progress{gap:4px;padding:14px 12px}
  .wizard-progress-item{grid-template-columns:1fr;justify-items:center;gap:5px;padding:6px 3px;text-align:center}
  .wizard-progress-item small{font-size:10px;max-width:100%}
  .wizard-step{min-height:0}
}
@media(max-width:720px){
  .wizard-progress-item{min-height:50px}
  .wizard-progress-item span{width:27px;height:27px}
  .subpage-main{width:min(100% - 22px,920px);padding:28px 0}
  .subpage-card{padding:30px 22px;border-radius:18px}
}

/* Fortschrittsanzeige ist rein informativ, nicht klickbar */
.wizard-progress-item:disabled{
  cursor:default;
  pointer-events:none;
  opacity:1;
}
.wizard-progress-item:disabled:hover,
.wizard-progress-item:disabled:active{
  transform:none;
  box-shadow:none;
}
.wizard-progress-item.is-active:disabled:hover{
  background:#fff;
  border-color:#cddfeb;
  box-shadow:0 5px 16px rgba(28,53,74,.06);
}
.wizard-progress-item.is-complete:disabled:hover{
  background:rgba(239,248,244,.72);
}
