:root{
  --bg:#ffffff;
  --bg-alt:#e3ecfb;
  --text:#101114;
  --muted:#4a4f57;
  --border:#d9dde3;
  --accent:#0f4aa5;
  --accent-soft: rgba(15,74,165,.18);
  --accent-2:#b42828;
  --accent-2-soft: rgba(180,40,40,.10);
  --shadow: 0 10px 30px rgba(16,17,20,.06);
  --radius: 18px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  line-height:1.55;
  color:var(--text);
  background:var(--bg);
}

a{color:inherit;text-decoration:none}
a.link{display:inline-block;margin-top:10px;text-decoration:underline;color:var(--text)}
a.link:hover{opacity:.75}

.container{max-width:1120px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{left:12px;top:12px;width:auto;height:auto;background:#fff;border:1px solid var(--border);padding:10px;border-radius:12px;z-index:1000}

.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--border);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{font-weight:750;letter-spacing:.2px}
.nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.nav a{padding:9px 10px;border-radius:12px}
.nav a:hover{background:var(--bg-alt)}
.nav .cta{border:1px solid rgba(22,74,159,.35);background: rgba(22,74,159,.06)}
.nav .cta:hover{background: rgba(22,74,159,.12)}
.nav-toggle{display:none;border:1px solid var(--border);background:#fff;border-radius:12px;padding:8px 10px;cursor:pointer}
.mobile-nav{border-top:1px solid var(--border);background:rgba(255,255,255,.97)}
.mobile-nav-inner{display:grid;gap:6px;padding:14px 20px}
.mobile-nav a{padding:10px;border-radius:12px}
.mobile-nav a:hover{background:var(--bg-alt)}
.mobile-nav .cta{border:1px solid var(--border);background:#fff}

.hero{padding:72px 0 34px 0; background: linear-gradient(180deg, var(--accent-soft), rgba(255,255,255,0) 45%)}
.eyebrow{color:var(--muted);font-size:13px;margin:0 0 10px 0;letter-spacing:.15px}
.hero h1{font-size:40px;line-height:1.14;margin:0 0 14px 0;max-width:860px}
.lead{font-size:18px;color:var(--muted);max-width:900px;margin:0 0 8px 0}
.micro{color:var(--muted);margin:0 0 18px 0}
.cta-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cta-sub{color:var(--muted);font-size:13px}

.section{padding:46px 0;border-top:1px solid var(--border)}
.section.alt{background:var(--bg-alt)}
h2{font-size:24px;margin:0 0 14px 0}
h3{font-size:16px;margin:0 0 8px 0}
.note{color:var(--muted);max-width:980px}

.cards{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;
}
.cards li{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px;
  box-shadow: var(--shadow);
}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.tile{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);
  padding:16px;
  box-shadow: var(--shadow);
}
.tile p{margin:0;color:var(--muted)}
.tile.emph{border-color:#c8ccd3}
.section-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}

.callout{
  margin-top:16px;
  background: rgba(22,74,159,.08);border:1px solid var(--border);
  border-radius:var(--radius);
  padding:16px;
  box-shadow: var(--shadow);
}
.callout ul{margin:10px 0 0 18px;color:var(--muted)}

.steps{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.steps li{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px;
  display:grid;gap:6px;
  box-shadow: var(--shadow);
}
.steps strong{display:block}
.steps span{color:var(--muted)}

.accordion details{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);
  padding:0;
  box-shadow: var(--shadow);
  overflow:hidden;
  margin-bottom:10px;
}
.accordion summary{
  cursor:pointer;
  padding:14px 16px;
  list-style:none;
  font-weight:650;
}
.accordion summary::-webkit-details-marker{display:none}
.details-body{padding:0 16px 14px 16px;color:var(--muted)}

.two-col{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;align-items:start}
.form{display:grid;gap:12px;max-width:720px}
label{display:grid;gap:6px;font-size:13px;color:var(--muted)}
input,textarea{
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  font:inherit;
  background:#fff;
  color:var(--text);
}
.button{display:inline-block;padding:10px 14px;border-radius:14px;border:1px solid rgba(15,74,165,.45);background: rgba(15,74,165,.14);cursor:pointer}
.button:hover{background: rgba(15,74,165,.16);border-color: rgba(15,74,165,.60)}
.micro-note{color:var(--muted);font-size:13px;margin:0}
.contact-box{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);
  padding:16px;
  box-shadow: var(--shadow);
}
.muted{color:var(--muted)}
.small{font-size:13px}

.site-footer{border-top:1px solid var(--border);padding:22px 0}
.footer-inner{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.footer-links{display:flex;gap:14px}
.footer-links a{text-decoration:underline}
.footer-links a:hover{opacity:.75}

/* Responsive */
@media (max-width: 860px){
  .hero h1{font-size:34px}
  .two-col{grid-template-columns:1fr}
  .nav{display:none}
  .nav-toggle{display:inline-block}
}


/* Process flow (Grafik 1: Vorgehensmodell) */
.process-flow{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:12px;
  align-items:stretch;
  margin-top:14px;
}
.process-step{
  position:relative;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px;
  box-shadow: var(--shadow);
  min-height: 210px;
}
.process-step::after{
  content:"→";
  position:absolute;
  right:-14px;
  top:18px;
  color:var(--muted);
  font-size:16px;
}
.process-step:last-child::after{content:"";}
.process-title{
  font-weight:750;
  letter-spacing:.2px;
  margin-bottom:6px;
}
.process-sub{
  color:var(--muted);
  font-size:13px;
  margin-bottom:10px;
}
.process-bullets{
  margin:0;
  padding-left:16px;
  color:var(--muted);
  font-size:13px;
}
.process-bullets li{margin:6px 0;}
.process-footnote{
  margin-top:12px;
  color:var(--muted);
  font-size:13px;
}

/* Process flow responsive */
@media (max-width: 1020px){
  .process-flow{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .process-step::after{content:"";}
}
@media (max-width: 520px){
  .process-flow{grid-template-columns:1fr;}
}


/* Leistungslandkarte (Grafik 2) */
.service-map{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  margin-top:14px;
  margin-bottom:12px;
}
.service-group{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px;
  box-shadow: var(--shadow);
}
.service-group-title{
  font-weight:750;
  letter-spacing:.2px;
  margin-bottom:10px;
}
.service-list{
  margin:0;
  padding-left:16px;
  color:var(--muted);
  font-size:13px;
}
.service-list li{margin:7px 0}
.service-map-footnote{
  color:var(--muted);
  font-size:13px;
  margin:0 0 6px 0;
}

/* Service map responsive */
@media (max-width: 1020px){
  .service-map{grid-template-columns:repeat(2, minmax(0, 1fr));}
}
@media (max-width: 520px){
  .service-map{grid-template-columns:1fr;}
}


/* Subtle accents (V1.3) */
.section.alt{
  background: var(--bg-alt);
}
h2{
  position:relative;
  padding-bottom:10px;
}
h2::after{content:"";position:absolute;left:0;bottom:0;width:84px;height:3px;background: var(--accent);opacity:.50;border-radius:3px;}
.tile.emph{border-color: rgba(22,74,159,.55); box-shadow: 0 14px 38px rgba(22,74,159,.14);}
.tile.emph h3{
  position:relative;
}
.tile.emph h3::before{content:"";display:inline-block;width:9px;height:9px;border-radius:99px;background: var(--accent);opacity:.75;margin-right:8px;transform: translateY(-1px);}
/* Labels */
.service-group-title,
.process-title{
  color: var(--text);
}
.service-group-title{border-left: 4px solid rgba(22,74,159,.60);padding-left:10px;}
.process-step{background: linear-gradient(180deg, rgba(22,74,159,.10), rgba(255,255,255,0) 58%), #fff;}
.process-step::after{
  color: rgba(31,75,153,.45);
}
.button{
  border-color: rgba(31,75,153,.25);
}
.button:hover{
  border-color: rgba(31,75,153,.45);
}
.nav .cta{
  border-color: rgba(31,75,153,.25);
}


/* Entscheidungslogik (Grafik 3) */
.decision-flow{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.decision-step{
  background: linear-gradient(180deg, rgba(22,74,159,.12), rgba(255,255,255,0) 55%), #fff;
  border:1px solid rgba(22,74,159,.35);
  border-radius:var(--radius);
  padding:14px;
  box-shadow: var(--shadow);
}
.decision-title{
  font-weight:750;
  margin-bottom:6px;
}
.decision-branch{
  grid-column:2 / span 2;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  align-items:stretch;
}
.branch{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:12px;
  box-shadow: var(--shadow);
}
.branch h3{margin:0 0 6px 0;font-size:14px}
.branch.emph{
  border-color: rgba(22,74,159,.55);
  background: rgba(22,74,159,.10);
}
.branch.mandatory{
  border-color: rgba(180,40,40,.55);
  background: rgba(180,40,40,.08);
}
.decision-footnote{
  margin-top:12px;
  color:var(--muted);
  font-size:13px;
}
@media (max-width: 1020px){
  .decision-flow{grid-template-columns:1fr}
  .decision-branch{grid-column:auto;grid-template-columns:1fr}
}

/* Systemblick (Grafik 5) */
.system-map{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.system-center{grid-column:1 / -1;text-align:center;margin-bottom:6px}
.system-core{display:inline-block;padding:10px 18px;border-radius:999px;border:1px solid rgba(22,74,159,.55);background: rgba(22,74,159,.14);font-weight:750}
.system-sub{color:var(--muted);font-size:13px;margin-top:6px}
.system-node{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow: var(--shadow)}
.system-node h3{margin:0 0 8px 0;font-size:15px}
.system-node ul{margin:0;padding-left:16px;color:var(--muted);font-size:13px}
.system-node ul li{margin:6px 0}
.system-node.tech{border-color: rgba(22,74,159,.45)}
.system-node.orga{border-color: rgba(22,74,159,.35)}
.system-node.recht{border-color: rgba(22,74,159,.35)}
.system-node.wirtschaft{border-color: rgba(22,74,159,.45)}
.system-node.mensch{border-color: rgba(22,74,159,.55);background: rgba(22,74,159,.08)}
@media (max-width: 1020px){.system-map{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 520px){.system-map{grid-template-columns:1fr}}

/* Dezentralstruktur (Grafik 4) */
.decentral-wrap{margin-top:18px}
.decentral-diagram{
  position:relative;
  display:grid;
  grid-template-columns:1.05fr 1.1fr 1.05fr;
  gap:12px;
  margin-top:12px;
  align-items:stretch;
}
.node{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow: var(--shadow)}
.node.central{border-color: rgba(22,74,159,.45);background: rgba(22,74,159,.06)}
.node.audit{border-color: rgba(22,74,159,.35);background: linear-gradient(180deg, rgba(22,74,159,.10), rgba(255,255,255,0) 60%), #fff}
.node-title{font-weight:750;margin-bottom:8px}
.node ul{margin:0;padding-left:16px;color:var(--muted);font-size:13px}
.node ul li{margin:6px 0}
.badge{display:inline-block;margin-top:10px;padding:6px 10px;border-radius:999px;border:1px solid rgba(22,74,159,.35);background: rgba(22,74,159,.10);font-size:12px;color: var(--text)}
.badge.warn{border-color: rgba(180,40,40,.45);background: rgba(180,40,40,.10)}
.pill-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.pill{display:inline-block;padding:6px 10px;border-radius:999px;border:1px solid rgba(22,74,159,.25);background: rgba(22,74,159,.08);font-size:12px}
.hint{margin-top:10px;color:var(--muted);font-size:13px}
.connector{position:absolute;top:50%;height:2px;background: rgba(22,74,159,.35)}
.connector.left{left: calc(33.33% - 6px);width: calc(33.33% + 12px)}
.connector.right{left: calc(66.66% - 6px);width: calc(33.33% + 12px)}
.connector::after{content:"";position:absolute;right:-2px;top:-4px;width:0;height:0;border-left:8px solid rgba(22,74,159,.35);border-top:5px solid transparent;border-bottom:5px solid transparent}
@media (max-width: 980px){.decentral-diagram{grid-template-columns:1fr}.connector{display:none}}

/* Related links tiles */
.related-links .tile{text-decoration:none;color:inherit;display:block}
.related-links .tile p{color:var(--muted)}

/* Tags / badges */
.tag{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(15,74,165,.35);
  background: rgba(15,74,165,.10);
  font-size:12px;
  color: var(--text);
  margin-right:8px;
}
.tag.red{
  border-color: rgba(180,40,40,.45);
  background: rgba(180,40,40,.10);
}

.hero-tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:10px}

/* Stronger color on subpages */
.page-banner{
  background: linear-gradient(90deg, rgba(15,74,165,.20), rgba(15,74,165,.06));
  border-bottom: 1px solid rgba(15,74,165,.22);
}
.page-banner .container{ padding: 18px 0 14px 0; }
.page-kicker{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:10px; }
.page-title{ margin:0; padding-bottom:10px; position:relative; }
.page-title::after{
  content:""; position:absolute; left:0; bottom:0;
  width:88px; height:4px; border-radius:999px;
  background: rgba(15,74,165,.55);
}
.section.alt{background: var(--bg-alt);}

/* ProLook v2.6 */
:root{
  --shadow-2: 0 18px 45px rgba(0,0,0,.10);
  --shadow-3: 0 24px 65px rgba(0,0,0,.14);
}

/* Typography rhythm */
h1{letter-spacing:-.02em}
.hero h1, .page-title{font-weight:760}
.hero h1{font-size:44px;line-height:1.06}
@media (max-width: 760px){ .hero h1{font-size:34px} }

.section{padding:72px 0}
@media (max-width: 760px){ .section{padding:54px 0} }

/* Hero background + depth */
.hero{
  position:relative;
  overflow:hidden;
  border-bottom: 1px solid rgba(15,74,165,.18);
  background:
    radial-gradient(900px 420px at 15% 20%, rgba(15,74,165,.22), transparent 60%),
    radial-gradient(900px 420px at 85% 10%, rgba(15,74,165,.14), transparent 60%),
    linear-gradient(180deg, rgba(227,236,251,.85), rgba(255,255,255,0) 68%),
    #fff;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  opacity:.08;
  pointer-events:none;
}
.hero .container{position:relative; z-index:1}

/* Proof bar */
.proof-bar{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.proof-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(15,74,165,.22);
  background: rgba(255,255,255,.66);
  backdrop-filter: blur(8px);
  box-shadow: 0 10px 25px rgba(0,0,0,.06);
  font-size:13px;
}
.proof-dot{
  width:8px; height:8px;
  border-radius:999px;
  background: rgba(15,74,165,.70);
}

/* Buttons */
.button, .cta{
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
}
.button:hover, .cta:hover{
  transform: translateY(-1px);
  box-shadow: var(--shadow-2);
  background: rgba(15,74,165,.18);
}

/* Tiles depth */
.tile{
  border:1px solid rgba(15,74,165,.14);
  background:
    linear-gradient(180deg, rgba(15,74,165,.06), rgba(255,255,255,0) 45%),
    #fff;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.tile:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-2);
  border-color: rgba(15,74,165,.28);
}

/* Section headings accent */
.section h2{
  position:relative;
  padding-bottom:12px;
}
.section h2::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:74px; height:4px;
  border-radius:999px;
  background: rgba(15,74,165,.55);
}

/* Slightly richer alt sections */
.section.alt{
  background:
    radial-gradient(900px 420px at 20% 10%, rgba(15,74,165,.08), transparent 60%),
    var(--bg-alt);
}
