
:root{
  --dpsg-blue:#05468f;
  --dpsg-red:#C4002B;
  --dpsg-yellow:#FFB81C;
  --dpsg-green:#1E7F45;
  --bg:#0e1014;
  --surface:#151922;
  --text:#E8EEF6;
  --muted:#9FB0C6;
  --border: #233043;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
img{max-width:100%;height:auto;display:block}
a{color:var(--dpsg-yellow);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:0 1rem}
.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#000;color:#fff;padding:.5rem 1rem;border-radius:.5rem;z-index:999}
.site-header{position:sticky;top:0;background:rgba(10,12,18,.8);backdrop-filter:saturate(150%) blur(8px);border-bottom:1px solid var(--border);z-index:100}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:800;color:white}
.brand img{filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:transparent;border:0}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff}
.site-nav ul{display:flex;gap:1rem;list-style:none;margin:0;padding:0}
.site-nav a{color:#fff;padding:.4rem .6rem;border-radius:.5rem}
.site-nav a.active, .site-nav a:hover{background:rgba(255,255,255,.08)}

.hero{background-image:linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.4)), radial-gradient(1200px 400px at 20% -10%, rgba(247, 248, 252, 0.6), transparent 60%), radial-gradient(1200px 400px at 80% -10%, rgba(0,62,126,.5), transparent 60%);background-size:cover;background-repeat:no-repeat;color:#fff;padding:6rem 0;border-bottom:1px solid var(--border)}
.hero-inner{display:grid;gap:1rem}
.hero h1{font-size:clamp(2rem,4vw,3rem);margin:0}
.hero-cta{display:flex;gap:.8rem;margin-top:.5rem}
.btn{display:inline-block;padding:.7rem 1rem;border-radius:.8rem;border:1px solid var(--border);text-decoration:none;transition:transform .04s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--dpsg-blue);color:#fff;border-color:transparent}
.btn-secondary{background:var(--surface);color:#fff}
.btn-ghost{background:transparent;color:#fff}

.features{display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin:2.5rem auto}
.card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1rem}
.band{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:linear-gradient(0deg, rgba(255,184,28,.05), transparent 40%)}
.band-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;padding:2rem 0}
.band-illu{width:100%;max-width:420px;justify-self:end;filter:drop-shadow(0 16px 40px rgba(0,0,0,.3))}
.checks{padding-left:1rem}
.checks li{margin:.4rem 0}
.news h2{margin-top:2.5rem}
.news-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}
.news-item{background:var(--surface);border:1px solid var(--border);border-radius:.8rem;padding:1rem}
.center{text-align:center;margin-top:1rem}

.stufen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0}
.stufe h3{margin-top:.2rem}

.events-table{margin:1rem 0}
.events-table table{width:100%;border-collapse:collapse;border:1px solid var(--border)}
.events-table th,.events-table td{padding:.7rem;border-bottom:1px solid var(--border);text-align:left}
.events-table th{background:rgba(255,255,255,.04)}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:1.5rem 0}
.gallery figure{background:var(--surface);border:1px solid var(--border);border-radius:.6rem;overflow:hidden}
.gallery figcaption{padding:.5rem;color:var(--muted);font-size:.9rem}

.contact .grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.contact input,.contact textarea{width:100%;padding:.7rem;border-radius:.6rem;border:1px solid var(--border);background:#0f141d;color:var(--text)}
.form-actions{display:flex;gap:.6rem;margin-top:.6rem}

.site-footer{border-top:1px solid var(--border);margin-top:2rem;background:#0a0e15}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:1rem;padding:2rem 0}
.footnote{padding:.7rem 0;border-top:1px solid var(--border);color:var(--muted);font-size:.9rem;text-align:center}

@media (max-width: 980px){
  .features{grid-template-columns:1fr 1fr}
  .stufen-grid{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:repeat(3,1fr)}
  .band-grid{grid-template-columns:1fr}
  .band-illu{justify-self:start}
  .site-nav{display:none;position:absolute;top:64px;left:0;right:0;background:#0a0e15;border-bottom:1px solid var(--border)}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column;padding:1rem}
  .nav-toggle{display:flex}
}
@media (max-width: 640px){
  .features{grid-template-columns:1fr}
  .stufen-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .contact .grid{grid-template-columns:1fr}
}

.visually-hidden{position:absolute!important;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}


.leiter-card {
  text-align: center;
  padding-top: 1rem;
}
.leiter-img {
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 0.5rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.stufe-logo {
  position: relative;
}
.stufen-logo {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 36px;
  height: 36px;
  z-index: 2;
}


.btn-instagram {
  background: #05468f;
  color: #fff;
  border-radius: 2em;
  padding: 0.5em 1.2em;
  display: inline-block;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s;
}
.btn-instagram:hover {
  background: #05468f;
}
.insta-flex {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}


.gallery-folder { margin-bottom: 2rem; }
.folder-toggle {
  background: var(--dpsg-blue);
  color: #fff;
  border: none;
  border-radius: .6rem;
  padding: .7rem 1.2rem;
  font-size: 1.1rem;
  cursor: pointer;
  margin-bottom: .5rem;
  width: 100%;
  text-align: left;
}
.folder-toggle:focus { outline: 2px solid #fff; }
.gallery-folder-content { transition: all .2s; }

.folder-preview-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: .5rem;
}
.folder-preview-img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: .5rem;
  border: 1px solid var(--border);
  background: var(--surface);
}

.leiter-card {
  text-align: center;
  padding-top: 1rem;
}
.leiter-img {
  display: block;
  margin: 0 auto 0.8rem auto;
  width: 120px;
  height: 120px;
  object-fit: cover;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  border: 3px solid var(--surface);
}

.stufen-panel-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  margin-bottom: .5rem;
}
.stufen-toggle-btn {
  margin-left: auto;
  background: var(--dpsg-blue);
  color: #fff;
  border: none;
  border-radius: .6rem;
  padding: .4rem 1rem;
  font-size: 1rem;
  cursor: pointer;
}
.stufen-panel-content {
  background: var(--surface);
  border-radius: .7rem;
  margin-bottom: .7rem;
  padding: 1rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  animation: fadeIn .2s;
}
.stufen-panel-img {
  display: block;
  margin: 0 auto 1rem auto;
  max-width: 220px;
  border-radius: .7rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-8px);}
  to { opacity: 1; transform: translateY(0);}
}
.stufen-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  background: var(--dpsg-blue);
  color: #fff;
  border: none;
  border-radius: .6rem;
  padding: .4rem 1rem;
  font-size: 1rem;
  cursor: pointer;
}
.stufen-logo-btn {
  width: 28px;
  height: 28px;
  object-fit: contain;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.07);
}

.hero {
  background:
    linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,.4)),
    url('../img/header.jpg') center center/cover no-repeat;
  color: #fff;
  padding: 6rem 0;
  border-bottom: 1px solid var(--border);
}
.groessentabelle-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 0.5rem;
}
.groessentabelle-table th,
.groessentabelle-table td {
  padding: 0.5rem;
  border-bottom: 1px solid #ccc;
  text-align: center;
}
.groessentabelle-table th {
  background: rgba(5,70,143,0.12);
  color: var(--text);
  font-weight: 600;
}
.card--accent {
  background: var(--dpsg-blue, #05468f);
  color: #fff;
  border-radius: 1rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: 0.5rem; /* Erhöht den Abstand nach rechts */
}

.site-nav {
  margin-right: 0.5rem; /* Optional: zusätzlicher Abstand für die Navigation */
}
