.skip-link{position:fixed;left:16px;top:16px;z-index:10000;transform:translateY(-160%);padding:10px 14px;background:var(--ink);color:#fff;border:2px solid var(--gold);border-radius:8px;text-decoration:none;font-weight:700}.skip-link:focus{transform:translateY(0)}
:root{
  --paper:#FFFFFF;
  --paper-soft:#F4F3F0;
  --paper-line:#E7E5E0;
  --ink:#1B1B18;
  --ink-soft:#5B5A54;
  --gold:#F5D547;
  --gold-dark:#C9971C;
  --gold-tint:#FFF9E5;
  --error:#C8102E;
  --error-dark:#9C0C24;
  --error-tint:#FBE9EA;
  --line: #E7E5E0;
  --line-strong:#D3D0C8;
  --maxw: 1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  margin:0;
  letter-spacing:-0.01em;
}
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:0.72rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex;
  align-items:center;
  gap:0.6em;
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--gold); display:inline-block; }
a{color:inherit;}
img{max-width:100%;display:block; -webkit-user-drag:none; user-select:none; -webkit-touch-callout:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
::selection{background:var(--gold); color:var(--ink);}

@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:none;}
}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none;} }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--gold); outline-offset:3px;
}

/* ---------- TOP-BAR ---------- */
.topbar{ background:var(--gold); color:#1B1B18; }
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; height:40px; font-family:'JetBrains Mono',monospace; font-size:0.76rem; }
.topbar-contact{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; row-gap:4px; }
.topbar-contact a{ display:flex; align-items:center; gap:7px; text-decoration:none; color:#1B1B18; opacity:0.92; transition:opacity .2s; }
.topbar-contact a:hover{ opacity:1; }
.topbar-contact svg{ width:14px; height:14px; flex:none; }
.topbar-social{ display:flex; align-items:center; gap:12px; }
.topbar-social a{ width:26px; height:26px; display:flex; align-items:center; justify-content:center; color:#1B1B18; opacity:0.85; transition:opacity .2s, transform .2s; }
.topbar-social a:hover{ opacity:1; transform:translateY(-1px); }
.topbar-social svg{ width:15px; height:15px; }

/* ---------- NAV (transparent über Foto-Hero, solide sobald gescrollt) ---------- */
/* Sorgt dafür, dass Sprungziele (z. B. über die Laufschrift-Shortcuts
   mit #anker in der URL) nicht hinter dem fixierten Header verschwinden. */
[id]{ scroll-margin-top:96px; }

header{
  position:absolute; top:var(--topbar-h, 40px); left:0; right:0; z-index:60;
  background:transparent; border-bottom:1px solid transparent;
  transition:background .3s ease, border-color .3s ease, box-shadow .3s ease, top .2s ease;
}
header.is-fixed{
  position:fixed; top:0; background:rgba(255,255,255,0.96); backdrop-filter:blur(10px);
  border-bottom-color:var(--line); box-shadow:0 8px 24px -18px rgba(0,0,0,0.3);
}
nav.wrap{ display:flex; align-items:center; justify-content:space-between; height:76px; position:relative;}
.brand{ font-family:'Manrope',sans-serif; font-weight:800; font-size:1.12rem; display:flex; align-items:center; gap:10px; text-decoration:none; color:#fff; transition:color .3s;}
header.is-fixed .brand{ color:var(--ink); }
.brand .mark{ width:9px; height:24px; background:var(--gold); position:relative; flex:none; }
.brand small{ display:block; font-family:'JetBrains Mono',monospace; font-weight:400; font-size:0.62rem; letter-spacing:0.12em; color:rgba(255,255,255,0.7); text-transform:uppercase; transition:color .3s;}
header.is-fixed .brand small{ color:var(--ink-soft); }
.navlinks{display:flex; gap:30px; font-size:0.92rem;}
.navlinks a{text-decoration:none; color:rgba(255,255,255,0.85); transition:color .2s; padding:4px 0; border-bottom:2px solid transparent;}
header.is-fixed .navlinks a{ color:var(--ink-soft); }
.navlinks a:hover{color:#fff;}
header.is-fixed .navlinks a:hover{ color:var(--ink); }
.navlinks a.active{color:#fff; border-bottom-color:var(--gold);}
header.is-fixed .navlinks a.active{ color:var(--ink); }
.nav-right{display:flex; align-items:center; gap:18px;}
.cta-btn{
  font-family:'JetBrains Mono',monospace; font-size:0.76rem; letter-spacing:0.03em;
  background:var(--gold); color:var(--ink); font-weight:600; padding:11px 20px;
  text-decoration:none; border:1px solid var(--gold); transition:background .2s, transform .2s, color .2s;
  white-space:nowrap; display:inline-block;
}
.cta-btn:hover{background:var(--gold-dark); color:#fff; transform:translateY(-1px);}
.cta-ghost{
  font-family:'JetBrains Mono',monospace; font-size:0.76rem;
  border:1px solid var(--line-strong); color:var(--ink); padding:10px 18px; text-decoration:none;
  transition:border-color .2s, background .2s; display:inline-block;
}
.cta-ghost:hover{border-color:var(--gold); background:var(--gold-tint);}
.menu-btn{
  display:none; background:none; border:1px solid rgba(255,255,255,0.5); color:#fff;
  width:42px; height:42px; cursor:pointer; align-items:center; justify-content:center; transition:color .3s, border-color .3s;
}
header.is-fixed .menu-btn{ border-color:var(--line-strong); color:var(--ink); }
.menu-btn svg{width:20px; height:20px;}

.mobile-drawer{
  display:none; position:fixed; inset:0; background:#fff; z-index:70;
  flex-direction:column; opacity:0; transition:opacity .25s ease;
}
.mobile-drawer.open{display:flex; opacity:1;}
.mobile-drawer-head{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:0 28px; height:68px; border-bottom:1px solid var(--line); flex:none;
}
.mobile-drawer-brand{font-family:'Manrope',sans-serif; font-weight:800; font-size:1.02rem; color:var(--ink); display:flex; align-items:center; gap:10px;}
.mobile-drawer-brand .mark{width:9px; height:22px; background:var(--gold); display:inline-block;}
.drawer-close{
  background:none; border:1px solid var(--line-strong); color:var(--ink); width:40px; height:40px;
  display:flex; align-items:center; justify-content:center; cursor:pointer; flex:none;
}
.drawer-close svg{width:18px; height:18px;}
.mobile-drawer-links{flex:1; overflow-y:auto; padding:8px 28px 28px; display:flex; flex-direction:column;}
.mobile-drawer-links a{
  display:flex; align-items:center; padding:17px 0; border-bottom:1px solid var(--line);
  text-decoration:none; color:var(--ink); font-family:'Manrope',sans-serif; font-weight:700; font-size:1.12rem;
}
.mobile-drawer-links a.active{color:var(--gold-dark);}
.mobile-drawer-links .cta-btn{margin-top:24px; text-align:center; justify-content:center; padding:15px 20px; font-size:0.86rem;}

/* ---------- FOTO-HERO (Startseite + Unterseiten) ---------- */
/* Volle Bildbreite, Bild oder Video als Hintergrund, dunkler Verlauf,
   darüber schwebt eine weiße, schräg angeschnittene Karte mit Text,
   die zur Hälfte auf dem Foto sitzt und zur Hälfte auf die Seite
   darunter hinausragt. */
.photo-hero{ position:relative; overflow:visible; background:var(--hero-bg, #14130f); margin-bottom:60px; }
.photo-hero.is-home{ height:min(86vh, 760px); margin-bottom:0; }
.photo-hero.is-page{ height:320px; margin-bottom:56px; }
.photo-hero-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.photo-hero-bg img, .photo-hero-bg video{ width:100%; height:100%; object-fit:cover; }
.photo-hero-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,14,11,0.55) 0%, rgba(15,14,11,0.25) 35%, rgba(15,14,11,0.75) 100%); }
.photo-hero-bg.is-placeholder{
  background:
    repeating-linear-gradient(135deg, rgba(245,213,71,0.09) 0px, rgba(245,213,71,0.09) 2px, transparent 2px, transparent 24px),
    linear-gradient(145deg, #1c1a15 0%, #2a281f 55%, #1c1a15 100%);
}
.photo-hero-placeholder-tag{
  position:absolute; top:96px; right:24px; z-index:1; font-family:'JetBrains Mono',monospace; font-size:0.62rem;
  color:rgba(255,255,255,0.55); letter-spacing:0.08em; text-transform:uppercase; border:1px dashed rgba(255,255,255,0.3);
  padding:5px 10px; background:rgba(0,0,0,0.25);
}
.hero-card-wrap{ position:absolute; left:0; right:0; bottom:-48px; z-index:2; }
.hero-card{
  position:relative; background:#fff; max-width:640px; padding:52px 48px 44px;
  clip-path:polygon(0 0, 100% 0, 100% 92%, 0 100%);
  box-shadow:0 30px 60px -30px rgba(0,0,0,0.35);
}
.photo-hero.is-page .hero-card-wrap{ bottom:-40px; }
.photo-hero.is-page .hero-card{ padding:36px 44px 32px; max-width:560px; clip-path:polygon(0 0, 100% 0, 100% 90%, 0 100%); }
.hero-card .eyebrow{margin-bottom:6px;}
.hero-card h1{ font-size:clamp(2.1rem, 4.2vw, 3.3rem); line-height:1.05; margin:14px 0 18px; color:var(--ink); text-transform:uppercase; letter-spacing:-0.01em;}
.photo-hero.is-page .hero-card h1{ font-size:clamp(1.8rem, 3.4vw, 2.5rem); margin:12px 0 14px; }
.hero-card p{ font-size:1.02rem; color:var(--ink-soft); max-width:46ch; margin:0 0 26px; }
.hero-card .hero-ctas{margin-bottom:6px;}
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap;}
.breadcrumb{font-family:'JetBrains Mono',monospace; font-size:0.72rem; color:var(--ink-soft); letter-spacing:0.04em; display:block; margin-bottom:2px;}
.breadcrumb a{text-decoration:none; color:var(--ink-soft);}
.breadcrumb a:hover{color:var(--gold-dark);}

/* ---------- MEDIEN-PLATZHALTER (Bilder & Video) ---------- */
.media-slot{position:relative; width:100%; height:100%; background:var(--paper-soft); overflow:hidden;}

/* Weichgezeichneter, vergrößerter Hintergrund aus demselben Bild —
   füllt die Box komplett, egal welches Format das Original hat. */
.media-slot img.media-bg{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; filter:blur(26px) saturate(1.15) brightness(0.82);
  transform:scale(1.18); /* verdeckt die vom Weichzeichner leicht sichtbaren Kanten */
}

/* Scharfes Originalbild, komplett unbeschnitten und mittig darüber. */
.media-slot img.media-fg{
  position:relative; z-index:1; width:100%; height:100%;
  object-fit:contain; display:block;
}

/* Video & Icons: unverändert einfach, ohne Weichzeichner-Ebene. */
.media-slot video, .media-slot img:not(.media-bg):not(.media-fg){
  width:100%; height:100%; object-fit:contain; display:block; background:var(--paper-soft);
}

.media-slot.is-placeholder{display:flex; align-items:center; justify-content:center; border:1px dashed var(--line-strong); background:var(--paper-soft);}
.media-slot-inner{text-align:center; padding:20px; max-width:220px;}
.media-slot-inner svg{width:34px; height:34px; margin:0 auto 12px; color:var(--line-strong); display:block;}
.media-slot-inner span{display:block; font-family:'Manrope',sans-serif; font-weight:700; font-size:0.92rem; color:var(--ink-soft); margin-bottom:8px;}
.media-slot-inner small{display:block; font-size:0.7rem; color:var(--ink-soft); opacity:0.8; line-height:1.5;}
.media-slot-inner small code{font-family:'JetBrains Mono',monospace; background:var(--line); padding:1px 5px; border-radius:2px;}

.gallery-accordion{ border:1px solid var(--line); background:#fff; margin-bottom:16px; }
.gallery-accordion:last-of-type{margin-bottom:0;}
.gallery-accordion summary{
  list-style:none; cursor:pointer; display:flex; align-items:center; gap:18px;
  padding:18px 24px; transition:background .2s ease;
}
.gallery-accordion summary::-webkit-details-marker{display:none;}
.gallery-accordion summary::marker{content:""; display:none;}
.gallery-accordion summary:hover{background:var(--paper-soft);}
.gallery-accordion .ga-cover{width:60px; height:60px; flex:none; border:1px solid var(--line); overflow:hidden;}
.gallery-accordion .ga-cover .media-slot-inner{padding:2px;}
.gallery-accordion .ga-cover .media-slot-inner svg{width:18px; height:18px; margin-bottom:2px;}
.gallery-accordion .ga-cover .media-slot-inner span, .gallery-accordion .ga-cover .media-slot-inner small{display:none;}
.gallery-accordion .ga-title{flex:1;}
.gallery-accordion .ga-title h4{font-size:1.08rem; color:var(--ink); margin-bottom:3px;}
.gallery-accordion .ga-title span{font-family:'JetBrains Mono',monospace; font-size:0.7rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.06em;}
.gallery-accordion summary::after{
  content:"+"; font-family:'JetBrains Mono',monospace; color:var(--gold-dark); font-size:1.4rem;
  flex:none; width:32px; height:32px; border:1px solid var(--line-strong); border-radius:50%;
  display:flex; align-items:center; justify-content:center; line-height:1; transition:border-color .2s ease, background .2s ease;
}
.gallery-accordion[open] summary::after{ content:"–"; border-color:var(--gold); background:var(--gold-tint); }
.gallery-accordion .ga-panel{padding:4px 24px 26px;}
.gallery-accordion .gallery-grid{margin-bottom:14px;}
.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.gallery-item{aspect-ratio:4/3; border:1px solid var(--line); height:auto;}
.video-slot{aspect-ratio:16/9; border:1px solid var(--line); height:auto;}

/* ---------- SECTION SHELL ---------- */
section{padding:92px 0; border-bottom:1px solid var(--line);}
section:last-of-type{border-bottom:none;}
.section-head{max-width:640px; margin-bottom:52px;}
.section-head h2{font-size:clamp(1.65rem,3vw,2.2rem); margin-top:14px; color:var(--ink);}
.section-head p{color:var(--ink-soft); margin-top:14px; font-size:1.01rem;}
.alt-bg{background:var(--paper-soft);}

/* ---------- ANGEBOT CARDS ---------- */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);}
.card{background:#fff; padding:34px 28px;}
.card .num{font-family:'JetBrains Mono',monospace; color:var(--gold); font-size:0.76rem;}
.card h3{font-size:1.25rem; margin:16px 0 12px; color:var(--ink);}
.card p{color:var(--ink-soft); font-size:0.94rem; margin:0 0 18px;}
.card ul{margin:0; padding:0; list-style:none; font-size:0.88rem; color:var(--ink-soft);}
.card ul li{padding:6px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:12px;}
.card ul li:first-child{border-top:none;}
.card ul li span.t{font-family:'JetBrains Mono',monospace; color:var(--ink); white-space:nowrap;}

/* ---------- EWTO SYSTEM ---------- */
.system-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.system-card{background:#fff; padding:28px 24px; display:flex; flex-direction:column;}
.system-card .icon-slot{width:38px; height:38px; margin-bottom:16px; flex:none; background:none;}
.system-card .icon-slot.media-slot{background:none;}
.system-card .icon-slot img{width:100%; height:100%; object-fit:contain;}
.system-card .icon-slot.is-placeholder{border:1px dashed var(--line-strong); background:var(--paper-soft);}
.system-card .icon-slot .media-slot-inner{padding:4px; max-width:none;}
.system-card .icon-slot .media-slot-inner svg{width:18px; height:18px; margin:0 auto;}
.system-card .icon-slot .media-slot-inner span, .system-card .icon-slot .media-slot-inner small{display:none;}
.system-card h4{font-size:1.02rem; margin-bottom:10px; color:var(--ink);}
.system-card p{font-size:0.86rem; color:var(--ink-soft); margin:0 0 14px; flex:1;}
.system-card .card-link{
  align-self:flex-start; font-family:'JetBrains Mono',monospace; font-size:0.76rem; color:var(--gold-dark);
  text-decoration:none; border-bottom:1px solid var(--line-strong); padding-bottom:2px; margin-top:14px;
}
.system-card .card-link:hover{border-bottom-color:var(--gold-dark);}
.system-card .status{
  font-family:'JetBrains Mono',monospace; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.06em;
  padding:5px 10px; border:1px solid var(--line-strong); align-self:flex-start; color:var(--ink-soft);
}
.system-card .status.active{color:var(--gold); border-color:var(--gold); background:var(--gold-tint);}
.system-note{margin-top:24px; font-size:0.9rem; color:var(--ink-soft); display:flex; gap:10px; align-items:flex-start;}
.system-note .dot{width:8px; height:8px; border-radius:50%; background:var(--gold); margin-top:6px; flex:none;}

/* ---------- PRINZIPIEN ---------- */
.principles{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);}
.principle{background:#fff; padding:28px 24px;}
.principle .p-eyebrow{font-family:'JetBrains Mono',monospace; font-size:0.68rem; color:var(--gold); letter-spacing:0.1em;}
.principle h4{font-size:1.03rem; margin:12px 0 10px; color:var(--ink);}
.principle p{font-size:0.87rem; color:var(--ink-soft); margin:0;}

/* ---------- STUNDENPLAN ---------- */
table.plan{width:100%; border-collapse:collapse; font-size:0.94rem; background:#fff;}
table.plan th, table.plan td{border:1px solid var(--line); padding:16px 14px; text-align:left; vertical-align:top;}
table.plan thead th{ font-family:'JetBrains Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold); background:var(--paper-soft); font-weight:500; }
table.plan td .slot{display:block; font-family:'JetBrains Mono',monospace; color:var(--ink); font-size:0.92rem;}
table.plan td .who{display:block; color:var(--ink-soft); font-size:0.8rem; margin-top:2px;}
table.plan td .slot.is-disabled, table.plan td .who.is-disabled{
  text-decoration:line-through; text-decoration-color:var(--error); text-decoration-thickness:1.5px; color:var(--error-dark);
}
table.plan td .disabled-badge{
  display:inline-block; margin-top:5px; font-family:'JetBrains Mono',monospace; font-size:0.64rem;
  text-transform:uppercase; letter-spacing:0.05em; color:#fff; background:var(--error); padding:2px 8px;
}
table.plan td.empty{color:var(--line-strong);}
table.plan tbody th{ font-family:'Manrope',sans-serif; font-weight:800; font-size:0.94rem; background:var(--paper-soft); white-space:nowrap; color:var(--ink);}
.plan-note{margin-top:22px; font-size:0.88rem; color:var(--ink-soft); display:flex; gap:10px; align-items:flex-start;}
.plan-note .dot{width:8px; height:8px; border-radius:50%; background:var(--gold); margin-top:6px; flex:none;}
.plan-legend{display:flex; gap:24px; margin-top:18px; flex-wrap:wrap;}
.plan-legend span{font-family:'JetBrains Mono',monospace; font-size:0.74rem; color:var(--ink-soft); display:flex; align-items:center; gap:8px;}
.plan-legend i{width:10px; height:10px; display:inline-block; background:var(--gold); border-radius:50%;}

/* ---------- TEAM ---------- */
.team-section{ margin-bottom:64px; }
.team-section:last-child{ margin-bottom:0; }
.team-section .section-head{ text-align:center; margin-left:auto; margin-right:auto; }
.team-section .section-head .eyebrow{ justify-content:center; }

/* Schulleiter: alle Karten einfach nebeneinander, zentriert, mit Umbruch
   auf kleinen Bildschirmen. */
.team-leaders-row{display:flex; flex-wrap:wrap; justify-content:center; gap:36px 44px; width:100%;}

/* Ausbilder-Team: eine Zeile pro Pyramiden-Reihe (siehe
   computeTeamPyramidRows() in script.js), jede Zeile zentriert. */
.team-pyramid-row{display:flex; flex-wrap:wrap; justify-content:center; gap:36px 44px; margin-bottom:36px; width:100%;}
.team-pyramid-row:last-child{margin-bottom:0;}

/* Einzelne Personen-Karte: Hochformat-Porträt, Name, Tags darunter. */
.team-card{width:270px; text-align:center;}
.team-photo{ aspect-ratio:3/4; height:auto; background:var(--paper-soft); border:1px solid var(--line-strong); position:relative; overflow:hidden; }
.team-name{ margin:16px 0 0; font-family:'Manrope',sans-serif; font-weight:800; font-size:1.02rem; color:var(--ink); }
.team-tag-row{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:12px;}
.team-tag{
  display:inline-flex; align-items:center; gap:7px;
  border:1px solid var(--line-strong); padding:7px 13px;
  font-family:'JetBrains Mono',monospace; font-size:0.74rem; letter-spacing:0.03em;
  color:var(--gold-dark); background:var(--paper-soft);
}
.team-tag img{width:18px; height:18px; object-fit:contain; flex:none;}

@media (max-width:640px){
  .team-card{width:230px;}
}

/* ---------- ZIELGRUPPEN ---------- */
.audience{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.a-card{border:1px solid var(--line); padding:26px 22px; transition:border-color .2s; background:#fff;}
.a-card:hover{border-color:var(--gold);}
.a-card h4{font-size:1.02rem; margin-bottom:10px; color:var(--ink);}
.a-card p{font-size:0.86rem; color:var(--ink-soft); margin:0;}

/* ---------- FAQ ---------- */
.faq{max-width:760px;}
details{border-bottom:1px solid var(--line); padding:20px 0;}
details summary{ cursor:pointer; font-family:'Manrope',sans-serif; font-weight:800; font-size:1.01rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--ink);}
details summary::-webkit-details-marker{display:none;}
details summary::after{content:"+"; font-family:'JetBrains Mono',monospace; color:var(--gold); font-size:1.3rem; flex:none;}
details[open] summary::after{content:"–";}
details p{color:var(--ink-soft); margin:14px 0 0; font-size:0.94rem; max-width:60ch;}

/* ---------- KONTAKT ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
.contact-info dl{margin:0;}
.contact-info dt{font-family:'JetBrains Mono',monospace; font-size:0.7rem; color:var(--gold); text-transform:uppercase; letter-spacing:0.08em; margin-top:22px;}
.contact-info dt:first-child{margin-top:0;}
.contact-info dd{margin:6px 0 0; font-size:1rem; color:var(--ink);}
.contact-info dd a{text-decoration:underline; text-decoration-color:var(--line-strong); text-underline-offset:4px;}
.map-box{ border:1px solid var(--line-strong); aspect-ratio:16/11; overflow:hidden; position:relative; margin-top:28px;}
.map-box iframe{width:100%; height:100%; border:0;}
.map-box a.overlay-link{ position:absolute; bottom:12px; right:12px; background:#fff; border:1px solid var(--line-strong); padding:8px 14px; font-family:'JetBrains Mono',monospace; font-size:0.7rem; text-decoration:none; color:var(--ink); }
.school-addresses-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:28px;}
.school-address-block{border:1px solid var(--line); padding:22px; background:#fff;}
.school-address-block h3{font-size:1.02rem; margin-bottom:4px; color:var(--ink);}
.school-address-block .addr-lines{color:var(--ink-soft); font-size:0.9rem; margin:0 0 14px;}
.school-address-block .addr-links{display:flex; gap:16px; font-size:0.84rem; flex-wrap:wrap;}
.school-address-block .addr-links a{color:var(--gold-dark); text-decoration:underline; text-decoration-color:var(--line-strong);}

/* ---------- CONTACT FORM ---------- */
.form-card{ background:#fff; border:1px solid var(--line); padding:36px; }
.form-row{margin-bottom:22px;}
.form-row label{ display:block; font-family:'JetBrains Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); margin-bottom:8px;}
.form-row .req{color:var(--gold);}
.form-row input[type="text"], .form-row input[type="email"], .form-row input[type="tel"], .form-row select, .form-row textarea{
  width:100%; border:1px solid var(--line-strong); background:var(--paper-soft); padding:12px 14px;
  font-family:'Inter',sans-serif; font-size:0.96rem; color:var(--ink); transition:border-color .2s, background .2s;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{ border-color:var(--gold); background:#fff; outline:none; }
.form-row textarea{resize:vertical; min-height:120px;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.check-row{display:flex; gap:10px; align-items:flex-start; font-size:0.86rem; color:var(--ink-soft);}
.check-row input{margin-top:4px;}
.check-row a{color:var(--ink); text-decoration:underline; text-decoration-color:var(--line-strong);}
.form-submit{display:flex; align-items:center; gap:18px; margin-top:6px; flex-wrap:wrap;}
.form-note{font-size:0.78rem; color:var(--ink-soft);}
.form-status{ display:none; border:1px solid #2E7D46; background:#EAF6EE; color:#1E5C31; padding:14px 16px; font-size:0.9rem; margin-bottom:22px;}
.form-status.show{display:block;}
.form-status.is-error{ border-color:var(--error); background:var(--error-tint); color:var(--error-dark); }
.hp-field{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

/* ---------- SCHOOLS OVERVIEW (Startseite) ---------- */
.schools-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
.school-card{border:1px solid var(--line); background:#fff; transition:border-color .2s; overflow:hidden;}
.school-card:hover{border-color:var(--gold);}
.school-card .school-cover{aspect-ratio:16/9; height:auto;}
.school-card .school-card-body{padding:26px 28px 30px;}
.school-card .city-tag{font-family:'JetBrains Mono',monospace; font-size:0.7rem; color:var(--gold-dark); letter-spacing:0.08em; text-transform:uppercase;}
.school-card h3{font-size:1.3rem; margin:12px 0 14px; color:var(--ink);}
.school-card address{font-style:normal; color:var(--ink-soft); font-size:0.94rem; margin-bottom:20px; line-height:1.5;}
.school-card .school-links{display:flex; gap:14px; flex-wrap:wrap;}

/* ---------- MULTI-SCHOOL STUNDENPLAN ---------- */
.school-plan{margin-bottom:56px;}
.school-plan:last-child{margin-bottom:0;}
.footer-grid{display:flex; justify-content:space-between; gap:30px; flex-wrap:wrap; align-items:flex-start;}
footer p{color:var(--ink-soft); font-size:0.82rem; max-width:60ch; margin:0 0 10px;}
footer .flinks{display:flex; gap:22px; font-size:0.82rem; flex-wrap:wrap;}
footer .flinks a{color:var(--ink-soft); text-decoration:none;}
footer .flinks a:hover{color:var(--ink);}
.legal-links{ margin-top:20px; font-size:0.76rem; }
.legal-links a{ color:var(--ink-soft); text-decoration:underline; }
.legal-links a:hover{ color:var(--gold-dark); }

/* ---------- Impressum / Datenschutzerklärung ---------- */
.legal-page{ max-width:760px; }
.legal-page h2{ font-family:'Manrope',sans-serif; font-weight:800; font-size:1.35rem; color:var(--ink); margin:44px 0 14px; }
.legal-page h2:first-child{ margin-top:0; }
.legal-page h3{ font-family:'Manrope',sans-serif; font-weight:700; font-size:1.02rem; color:var(--ink); margin:22px 0 8px; }
.legal-page p{ color:var(--ink-soft); margin:0 0 14px; font-size:0.96rem; line-height:1.65; }
.legal-page ul{ margin:0 0 14px; padding-left:20px; color:var(--ink-soft); font-size:0.96rem; line-height:1.65; }
.legal-page li{ margin-bottom:6px; }
.legal-page a{ color:var(--gold-dark); text-decoration:underline; }
.legal-page mark.tofill{ background:var(--gold-tint); color:var(--ink); padding:1px 5px; border:1px dashed var(--gold-dark); font-family:'JetBrains Mono',monospace; font-size:0.86em; }

@media (max-width: 920px){
  .photo-hero.is-home, .photo-hero.is-page{ height:auto; margin-bottom:0; }
  .photo-hero-bg{ position:relative; height:280px; }
  .hero-card-wrap{ position:static; bottom:auto; }
  .hero-card{ max-width:none; clip-path:none; padding:32px 24px 30px; box-shadow:none; }
  .photo-hero.is-page .hero-card{ clip-path:none; padding:28px 22px 26px; }
  .cards{grid-template-columns:1fr;}
  .principles{grid-template-columns:repeat(2,1fr);}
  .system-grid{grid-template-columns:repeat(2,1fr);}
  .team-card{width:240px;}
  .audience{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;}
  .two-col{grid-template-columns:1fr;}
  .schools-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .navlinks{display:none;}
  .menu-btn{display:flex;}
}
@media (max-width: 560px){
  .principles{grid-template-columns:1fr;}
  .system-grid{grid-template-columns:1fr;}
  .audience{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:1fr;}
  .school-addresses-grid{grid-template-columns:1fr;}
  section{padding:60px 0;}
  .form-card{padding:24px;}
  .topbar .wrap{height:auto; padding-top:8px; padding-bottom:8px; flex-wrap:wrap; gap:8px; font-size:0.68rem;}
  .topbar-social{display:none;}
  .hero-card h1{font-size:1.7rem;}
  .form-row input[type="text"], .form-row input[type="email"], .form-row input[type="tel"], .form-row select, .form-row textarea{
    font-size:16px;
  }
}

@media (max-width: 420px){
  nav.wrap{height:68px;}
  .brand small{display:none;}
  .brand{font-size:1rem;}
  .nav-right{gap:10px;}
  .nav-right .cta-btn{padding:9px 14px; font-size:0.7rem;}
  .menu-btn{width:38px; height:38px;}
  .mobile-drawer-head{height:60px; padding:0 20px;}
  .mobile-drawer-links{padding:8px 20px 24px;}
  .hero-card{padding:26px 20px 24px;}
  .hero-card h1{font-size:1.5rem;}
  .photo-hero.is-page .hero-card h1{font-size:1.4rem;}
}

/* ---------- MARQUEE (Laufschrift) ---------- */
.marquee{ overflow:hidden; background:var(--ink); border-bottom:1px solid var(--line); padding:16px 0; }
.marquee-track{ display:flex; width:max-content; gap:0; animation: marquee-scroll 34s linear infinite; }
.marquee-track a{
  font-family:'JetBrains Mono',monospace; font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase;
  color:rgba(255,255,255,0.55); padding:0 22px; white-space:nowrap; display:flex; align-items:center; gap:22px;
  text-decoration:none; transition:color .2s ease;
}
.marquee-track a:hover{ color:var(--gold); }
.marquee-track a::after{content:"◆"; color:var(--gold); font-size:0.6rem;}
@keyframes marquee-scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@media (prefers-reduced-motion: reduce){ .marquee-track{animation:none;} }

/* ---------- BREITBILD-BANNER (mit Parallax) ---------- */
.banner{ position:relative; overflow:hidden; min-height:420px; display:flex; align-items:center; border-bottom:1px solid var(--line); }
.banner-bg{ position:absolute; inset:-8% 0; z-index:0; }
.banner-bg img{ width:100%; height:100%; object-fit:cover; will-change:transform; }
.banner-bg.is-placeholder{
  background:
    repeating-linear-gradient(135deg, rgba(245,213,71,0.08) 0px, rgba(245,213,71,0.08) 2px, transparent 2px, transparent 22px),
    linear-gradient(135deg, #14130f 0%, #23211a 55%, #1b1a15 100%);
}
.banner-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(15,14,11,0.88) 0%, rgba(15,14,11,0.68) 45%, rgba(15,14,11,0.42) 100%); }
.banner-inner{ position:relative; z-index:1; max-width:560px; padding:80px 0; }
.banner .eyebrow{color:var(--gold);}
.banner h3{ color:#fff; font-size:clamp(1.7rem,3.4vw,2.4rem); margin:16px 0 16px; line-height:1.15; }
.banner p{ color:rgba(255,255,255,0.82); font-size:1.02rem; margin:0 0 28px; max-width:48ch; }
.banner-placeholder-tag{
  position:absolute; bottom:16px; right:16px; z-index:1; font-family:'JetBrains Mono',monospace; font-size:0.64rem;
  color:rgba(255,255,255,0.55); letter-spacing:0.08em; text-transform:uppercase; border:1px dashed rgba(255,255,255,0.3);
  padding:5px 10px; background:rgba(0,0,0,0.25);
}

/* ---------- HOVER- & SCROLL-POLISH ---------- */
.card, .a-card, .principle, .system-card, .school-card{ transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .25s ease; }
.card:hover, .a-card:hover, .principle:hover, .system-card:hover{ transform:translateY(-5px); box-shadow:0 18px 34px -18px rgba(20,19,15,0.28); position:relative; z-index:1; }
.school-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px -20px rgba(20,19,15,0.3); }
.school-card .school-cover{overflow:hidden;}
.school-card .school-cover img.media-fg{ transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.school-card:hover .school-cover img.media-fg{ transform:scale(1.08); }
.gallery-item{overflow:hidden;}
.gallery-item img.media-fg{ transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.gallery-item:hover img.media-fg{ transform:scale(1.08); }
.team-photo img.media-fg{ transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.team-photo:hover img.media-fg{ transform:scale(1.04); }

.navlinks a{ position:relative; }
.navlinks a::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--gold);
  transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.navlinks a:hover::after, .navlinks a.active::after{ transform:scaleX(1); }
.navlinks a.active::after{ background:var(--gold); }

.cta-btn{ position:relative; overflow:hidden; }
.cta-btn::before{
  content:""; position:absolute; inset:0; background:rgba(255,255,255,0.35); transform:translateX(-120%) skewX(-20deg);
  transition:transform .5s ease;
}
.cta-btn:hover::before{ transform:translateX(120%) skewX(-20deg); }

/* Gestaffelte Einblendung für Grid-Reihen */
@media (prefers-reduced-motion: no-preference){
  .cards .card:nth-child(1), .system-grid .system-card:nth-child(1), .principles .principle:nth-child(1), .audience .a-card:nth-child(1){ transition-delay:.05s; }
  .cards .card:nth-child(2), .system-grid .system-card:nth-child(2), .principles .principle:nth-child(2), .audience .a-card:nth-child(2){ transition-delay:.15s; }
  .cards .card:nth-child(3), .system-grid .system-card:nth-child(3), .principles .principle:nth-child(3), .audience .a-card:nth-child(3){ transition-delay:.25s; }
  .system-grid .system-card:nth-child(4), .principles .principle:nth-child(4), .audience .a-card:nth-child(4){ transition-delay:.35s; }
}

@media (max-width: 920px){
  .banner{min-height:340px;}
  .banner-inner{padding:60px 0;}
}
@media (max-width: 560px){
  .marquee-track{animation-duration:22s;}
  .banner-inner{max-width:100%;}
}

/* ---------- Cookie-/Datenschutz-Consent ---------- */
.consent-overlay{
  position:fixed; inset:0; z-index:500;
  background:rgba(27,27,24,0.55);
  display:flex; align-items:flex-end; justify-content:center;
  padding:20px;
}
.consent-card{
  background:var(--paper); max-width:460px; width:100%;
  padding:28px 28px 24px; border:1px solid var(--line);
  box-shadow:0 30px 70px -30px rgba(0,0,0,0.45);
  animation:consentIn .3s ease;
}
@keyframes consentIn{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:translateY(0);} }
.consent-head{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.consent-head .mark{ width:8px; height:20px; background:var(--gold); flex:none; }
.consent-head h2{ font-family:'Manrope',sans-serif; font-weight:800; font-size:1.15rem; color:var(--ink); margin:0; }
.consent-text{ font-size:0.9rem; line-height:1.55; color:var(--ink-soft); margin:0 0 18px; }
.consent-options{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.consent-option{
  display:flex; align-items:flex-start; gap:10px; padding:10px 12px;
  border:1px solid var(--line); cursor:pointer;
}
.consent-option.is-locked{ cursor:default; background:var(--paper-soft); }
.consent-option input{ margin-top:3px; flex:none; accent-color:var(--gold-dark); }
.consent-option b{ display:block; font-family:'Manrope',sans-serif; font-weight:700; font-size:0.86rem; color:var(--ink); }
.consent-option small{ display:block; font-size:0.76rem; color:var(--ink-soft); margin-top:2px; }
.consent-actions{ display:flex; flex-direction:column; gap:10px; margin-bottom:14px; }
.consent-btn{
  font-family:'JetBrains Mono',monospace; font-size:0.78rem; letter-spacing:0.03em;
  padding:13px 16px; border:1px solid transparent; cursor:pointer; text-align:center;
  transition:background .2s ease, transform .15s ease, border-color .2s ease;
}
.consent-btn-primary{ background:var(--gold); color:var(--ink); }
.consent-btn-primary:hover{ background:var(--gold-dark); color:#fff; }
.consent-btn-secondary{ background:var(--paper-soft); color:var(--ink); border-color:var(--line-strong); }
.consent-btn-secondary:hover{ border-color:var(--ink-soft); }
.consent-links{ text-align:center; font-size:0.76rem; margin:0; }
.consent-links a{ color:var(--ink-soft); text-decoration:underline; }
.consent-links a:hover{ color:var(--gold-dark); }
@media (min-width:560px){
  .consent-overlay{ align-items:center; }
}

.map-consent-placeholder{
  height:100%; min-height:220px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  padding:28px 22px; background:var(--paper-soft); border:1px dashed var(--line-strong);
}
.map-consent-placeholder p{ font-size:0.84rem; color:var(--ink-soft); max-width:340px; margin:0 0 16px; }
.map-consent-placeholder .map-consent-btn{ width:auto; padding:11px 18px; }

/* ---------- ZOOMBARE BILDER (Hinweis beim Hover) ---------- */
.is-zoomable{ cursor:zoom-in; position:relative; }
.is-zoomable::after{
  content:""; position:absolute; top:10px; right:10px; width:30px; height:30px;
  background:rgba(20,19,15,0.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3Cline x1='11' y1='8' x2='11' y2='14'/%3E%3Cline x1='8' y1='11' x2='14' y2='11'/%3E%3C/svg%3E") center/16px no-repeat;
  opacity:0; transition:opacity .2s ease; pointer-events:none;
}
.is-zoomable:hover::after, .is-zoomable:focus-visible::after{ opacity:1; }
.is-zoomable:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
/* Auf Touch-Geräten gibt es kein Hover — Lupe deshalb dezent dauerhaft
   zeigen, sonst ist für Handy-Nutzer nicht erkennbar, dass ein Bild
   vergrößerbar ist. */
@media (hover: none){
  .is-zoomable::after{ opacity:0.85; width:26px; height:26px; }
}

/* ---------- LIGHTBOX (vergrößerte Bildansicht) ---------- */
.lightbox-overlay{
  display:none; position:fixed; inset:0; z-index:90; background:rgba(10,10,8,0.92);
  align-items:center; justify-content:center; padding:60px 24px; opacity:0; transition:opacity .25s ease;
}
.lightbox-overlay.open{display:flex; opacity:1;}
.lightbox-img{
  max-width:100%; max-height:calc(100vh - 120px); object-fit:contain; box-shadow:0 30px 70px -20px rgba(0,0,0,0.6);
  user-select:none; -webkit-user-drag:none;
}
.lightbox-close{
  position:fixed; top:20px; right:20px; width:44px; height:44px; background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.35); color:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .2s ease, border-color .2s ease;
}
.lightbox-close:hover{background:rgba(255,255,255,0.18); border-color:#fff;}
.lightbox-close svg{width:18px; height:18px;}
@media (max-width: 560px){
  .lightbox-overlay{padding:20px 16px;}
  .lightbox-img{max-height:calc(100vh - 90px);}
  .lightbox-close{top:12px; right:12px; width:40px; height:40px;}
}

/* ---------- SEO HERO STARTSEITE ---------- */
.hero-home-content{position:relative;z-index:2;height:100%;display:flex;align-items:flex-end;padding-bottom:clamp(42px,8vh,88px);}
.hero-home-card{max-width:760px;background:rgba(255,255,255,.94);padding:34px 38px 36px;box-shadow:0 18px 50px rgba(0,0,0,.18);}
.hero-home-card h1{font-family:'Manrope',sans-serif;font-weight:800;font-size:clamp(2rem,4.5vw,4rem);line-height:1.03;letter-spacing:-.035em;color:var(--ink);margin:12px 0 16px;}
.hero-home-card p{color:var(--ink-soft);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.55;max-width:62ch;margin:0 0 22px;}
.hero-home-actions{display:flex;gap:12px;flex-wrap:wrap;}
.hero-home-actions .btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}
.btn-primary{
  font-family:'JetBrains Mono',monospace; font-size:0.8rem; letter-spacing:0.03em; font-weight:600;
  background:var(--ink); color:#fff; padding:14px 26px; border:1px solid var(--ink);
  transition:background .2s, border-color .2s, color .2s, transform .2s;
}
.btn-primary:hover{ background:var(--gold); border-color:var(--gold); color:var(--ink); transform:translateY(-1px); }
.btn-ghost{
  font-family:'JetBrains Mono',monospace; font-size:0.8rem; letter-spacing:0.03em; font-weight:600;
  background:transparent; color:var(--ink); padding:14px 26px; border:1px solid var(--line-strong);
  transition:background .2s, border-color .2s, color .2s;
}
.btn-ghost:hover{ background:var(--gold-tint); border-color:var(--gold); color:var(--ink); }
@media(max-width:640px){.hero-home-content{padding:0 18px 28px;}.hero-home-card{padding:26px 24px 28px;}.hero-home-card h1{font-size:clamp(1.8rem,9vw,2.6rem);}.hero-home-actions .btn{width:100%;}}


/* Leere Medienfelder aus config.js werden nicht als Platzhalter dargestellt. */
.media-empty { display:none !important; }

/* Sonderaktion / Special-Action ("Specials") — nutzt die .banner-Klassen
   (Bild + Text + Button), siehe renderSpecialAction() in script.js */
