/* =====================================================================
   Musikschule Waldkirchen – Theme-Stylesheet
   Vereinheitlicht: Startseite + Unterrichts-Detail + Team-Seite.
   Markenorange durchgängig #f7ab00.
   ===================================================================== */

*{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#0E3B4E;--amber:#f7ab00;--cream:#F5F1E8;--paper:#FAFAF7;--dark:#060E12}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;color:var(--ink);background:var(--dark);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.fr{font-family:'Fraunces',Georgia,serif}
.page{width:100%;margin:0 auto}
img{max-width:100%}

/* ===== NAV ===== */
/* Helle Nav mit vollfarbigem Logo */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:14px 48px;display:flex;justify-content:space-between;align-items:center}
.nav::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,0.96);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);border-bottom:1px solid rgba(14,59,78,0.10);z-index:-1;pointer-events:none}
.nav-logo{display:flex;align-items:center;line-height:0}
.nav-logo-img{height:48px;width:auto;display:block}
.nav-links{display:flex;gap:32px;font-size:13px;font-weight:400;letter-spacing:0.5px;list-style:none}
.nav-links li{position:relative}
.nav-links a,.nav-links span{color:var(--dark);text-decoration:none;cursor:pointer;opacity:0.55;transition:all 0.3s}
.nav-links a:hover,.nav-links span:hover{opacity:1}
.nav-links .current-menu-item>a,.nav-links .current_page_item>a,.nav-links .current-menu-parent>a,.nav-links span.active-link{opacity:1;font-weight:500}
.nav-cta{border:1px solid var(--amber);padding:10px 22px;border-radius:999px;font-size:12px;font-weight:500;cursor:pointer;transition:all 0.3s;color:var(--dark) !important;text-decoration:none}
.nav-cta:hover{background:var(--amber);color:var(--dark) !important}
/* Burger (nur mobil sichtbar) */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:10px;z-index:120}
.nav-toggle-bar{display:block;width:24px;height:2px;background:var(--dark);border-radius:2px;transition:transform 0.3s,opacity 0.3s}
.nav.is-open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.is-open .nav-toggle-bar:nth-child(2){opacity:0}
.nav.is-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.menu-open{overflow:hidden}

/* ===== BUTTONS ===== */
.btn-primary{background:var(--ink);color:white;padding:16px 32px;border-radius:999px;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:12px;cursor:pointer;transition:all 0.3s;text-decoration:none;border:none}
.btn-primary:hover{background:var(--amber);color:var(--dark);transform:translateY(-2px)}
.btn-primary .arr{width:20px;height:20px;border-radius:50%;background:var(--amber);color:var(--dark);display:inline-flex;align-items:center;justify-content:center;font-size:11px;transition:all 0.3s}
.btn-primary:hover .arr{background:var(--dark);color:var(--amber)}
.btn-ghost{border:1px solid rgba(14,59,78,0.2);color:var(--ink);padding:16px 32px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;transition:all 0.3s;display:inline-flex;text-decoration:none}
.btn-ghost:hover{border-color:var(--ink);background:var(--ink);color:white}

/* ===== EYEBROW / KICKER ===== */
.eyebrow,.intro-tag,.faecher-tag,.news-tag,.werte-tag,.team-tag{font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--amber);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before,.intro-tag::before,.faecher-tag::before,.news-tag::before,.werte-tag::before,.team-tag::before{content:'';width:24px;height:1px;background:var(--amber)}

/* ===== BREADCRUMB ===== */
.bread{padding:100px 56px 0;background:var(--dark);font-size:12px;color:rgba(255,255,255,0.4);letter-spacing:0.5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bread a{color:rgba(255,255,255,0.5);text-decoration:none;transition:color 0.3s}
.bread a:hover{color:var(--amber)}
.bread .sep{opacity:0.3}
.bread .current{color:var(--amber)}

/* ===== HERO (Startseite) ===== */
.hero{height:100vh;position:relative;display:flex;align-items:flex-end;overflow:hidden;background:radial-gradient(72% 62% at 80% 28%,rgba(247,171,0,0.30) 0%,rgba(247,171,0,0) 58%),linear-gradient(180deg,#134c63 0%,#0E3B4E 52%,#0b2f3e 100%)}
.hero-visual{position:absolute;right:0;bottom:0;top:auto;height:calc(100% - 104px);width:auto;max-width:62%;object-fit:contain;object-position:bottom right;z-index:1;pointer-events:none;filter:drop-shadow(0 18px 38px rgba(0,0,0,0.25));aspect-ratio:569/746}
.hero-overlay{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(11,47,62,0) 70%,rgba(11,47,62,0.42) 100%)}
.hero-content{position:relative;z-index:3;padding:0 56px 80px;width:100%}
.hero h1{font-size:clamp(64px,min(9vw,16vh),150px);line-height:1.05;color:white;font-weight:300;letter-spacing:-0.04em;margin-bottom:32px;max-width:58%;text-shadow:0 2px 30px rgba(6,14,18,0.35)}
.hero h1 em{color:var(--amber);font-style:italic;font-weight:400}
.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end}
.hero-sub{font-size:17px;color:rgba(255,255,255,0.6);max-width:420px;line-height:1.65;font-weight:300}
.hero-scroll{display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,0.5);font-size:11px;letter-spacing:2px;text-transform:uppercase}
.hero-scroll .line{width:1px;height:60px;background:linear-gradient(180deg,var(--amber),transparent);animation:scrollpulse 2s ease infinite}
@keyframes scrollpulse{0%,100%{opacity:0.3;transform:scaleY(0.6)}50%{opacity:1;transform:scaleY(1)}}

/* ===== MARQUEE ===== */
.marquee{padding:20px 0;background:var(--amber);overflow:hidden;white-space:nowrap}
.marquee-track{display:inline-flex;gap:40px;animation:marq 30s linear infinite}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee-item{font-family:'Fraunces',serif;font-size:20px;color:var(--dark);font-weight:500;display:inline-flex;align-items:center;gap:40px}
.marquee-item .sep{width:6px;height:6px;border-radius:50%;background:var(--dark);opacity:0.4}

/* ===== INTRO (Startseite) ===== */
.intro{background:var(--paper);padding:200px 56px 180px;position:relative}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:120px;align-items:start}
.intro-num{font-family:'Fraunces',serif;font-size:320px;line-height:0.75;color:var(--cream);font-weight:900;position:absolute;top:80px;left:40px;user-select:none;pointer-events:none;letter-spacing:-0.05em}
.intro-tag{margin-bottom:24px}
.intro h2{font-size:60px;line-height:1;letter-spacing:-0.03em;margin-bottom:0;font-weight:400}
.intro h2 em{color:var(--amber);font-style:italic}
.intro-text{font-size:18px;line-height:1.8;color:rgba(14,59,78,0.65);font-weight:300;padding-top:20px}

/* ===== FULLBLEED ===== */
.fullbleed{position:relative;height:70vh;overflow:hidden}
.fullbleed svg,.fullbleed img{width:100%;height:100%;display:block;object-fit:cover}
.fullbleed-text{position:absolute;bottom:60px;left:56px;color:white;z-index:2}
.fullbleed-text h3{font-size:48px;font-weight:300;letter-spacing:-0.02em}
.fullbleed-text p{font-size:13px;opacity:0.7;margin-top:8px;letter-spacing:1px;text-transform:uppercase}

/* ===== FÄCHER (horizontaler Slider) ===== */
.faecher{background:var(--dark);padding:160px 0 160px 56px;overflow:hidden}
.faecher-head{margin-bottom:80px;padding-right:56px}
.faecher-tag{margin-bottom:24px}
.faecher h2{font-size:72px;color:white;font-weight:300;letter-spacing:-0.03em;line-height:1}
.faecher h2 em{color:var(--amber);font-style:italic}
.fach-row{display:flex;gap:20px;overflow-x:auto;padding-bottom:24px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.fach-row::-webkit-scrollbar{display:none}
.fach-card{flex:0 0 380px;height:520px;border-radius:20px;overflow:hidden;position:relative;scroll-snap-align:start;cursor:pointer;transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);text-decoration:none;color:inherit;display:block}
.fach-card:hover{transform:scale(0.97)}
.fach-card:last-child{margin-right:56px}
.fach-card .fach-bg{position:absolute;inset:0}
.fach-card .fach-bg svg{width:100%;height:100%}
.fach-bg-photo{position:absolute;inset:0;background:radial-gradient(125% 95% at 50% 32%,#1A5A75 0%,#0E3B4E 46%,#060E12 100%);display:flex;align-items:center;justify-content:center;padding:40px 30px 96px}
.fach-bg-photo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 44px rgba(0,0,0,0.5))}
.fach-bg-placeholder{position:absolute;inset:0;background:radial-gradient(125% 95% at 50% 32%,#1A5A75 0%,#0E3B4E 46%,#060E12 100%)}
.fach-card .fach-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(6,14,18,0.85) 100%)}
.fach-card .fach-info{position:absolute;bottom:0;left:0;right:0;padding:32px;color:white}
.fach-card .fach-label{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--amber);margin-bottom:12px;font-weight:500}
.fach-card .fach-name{font-size:26px;font-weight:400;line-height:1.1;margin-bottom:6px}
/* Slider-Pfeile */
.fach-slider{position:relative}
.fach-nav{position:absolute;top:calc(50% - 12px);transform:translateY(-50%);z-index:6;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,0.25);background:rgba(6,14,18,0.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s}
.fach-nav:hover{background:var(--amber);color:var(--dark);border-color:var(--amber)}
.fach-nav:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.fach-prev{left:14px}
.fach-next{right:14px}

/* ===== UNTERRICHT-ÜBERSICHT (Archiv Fachbereiche, 4×2-Raster) ===== */
.unterricht-hero{background:var(--dark);padding:48px 56px 84px}
.unterricht-hero .eyebrow{margin-bottom:24px}
.unterricht-hero h1{font-family:'Fraunces',serif;font-size:clamp(44px,6vw,76px);color:#fff;font-weight:300;letter-spacing:-0.03em;line-height:1.02;margin-bottom:24px}
.unterricht-hero h1 em{color:var(--amber);font-style:italic}
.unterricht-lead{max-width:620px;font-size:18px;line-height:1.7;color:rgba(255,255,255,0.6);font-weight:300}
.fach-overview{background:var(--paper);padding:80px 56px 140px}
.fach-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.fach-grid .fach-card{flex:none;width:auto;height:500px}
.fach-grid .fach-card:last-child{margin-right:0}
.fach-grid .fach-card .fach-bg-photo{padding:32px 20px 88px}
.fach-grid .fach-card .fach-name{font-family:'Fraunces',serif;font-size:22px;line-height:1.15}
.fach-grid .fach-card .fach-info{overflow:hidden}
@media (max-width:1024px){
  .unterricht-hero{padding:40px 40px 64px}
  .fach-overview{padding:64px 40px 120px}
  .fach-grid{grid-template-columns:repeat(2,1fr)}
  .fach-grid .fach-card{height:420px}
}
@media (max-width:600px){
  .unterricht-hero{padding:32px 24px 48px}
  .fach-overview{padding:48px 24px 90px}
  .fach-grid{grid-template-columns:1fr}
  .fach-grid .fach-card{height:380px}
}

/* ===== NEWS (Startseite) ===== */
.news{background:var(--paper);padding:180px 56px}
.news-tag{margin-bottom:24px}
.news h2{font-size:72px;font-weight:300;letter-spacing:-0.03em;line-height:1;margin-bottom:80px}
.news h2 em{color:var(--amber);font-style:italic}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.news-card{cursor:pointer;transition:transform 0.4s;text-decoration:none;color:inherit;display:block}
.news-card:hover{transform:translateY(-4px)}
.news-img{aspect-ratio:3/2;border-radius:16px;overflow:hidden;margin-bottom:24px;position:relative;background:#0E3B4E}
.news-img svg,.news-img img{width:100%;height:100%;display:block;object-fit:cover}
.news-img-placeholder{position:absolute;inset:0;background:linear-gradient(160deg,#0E3B4E,#3A1E08)}
.news-meta{font-size:12px;color:rgba(14,59,78,0.45);margin-bottom:10px;display:flex;gap:16px;align-items:center}
.news-meta .tag{background:rgba(14,59,78,0.07);padding:4px 12px;border-radius:999px;font-weight:500;color:var(--ink)}
.news-title{font-size:28px;line-height:1.2;font-weight:400;letter-spacing:-0.01em}

/* ===== WERTE (Startseite – dunkel, 3 Spalten) ===== */
.werte{background:var(--dark);padding:200px 56px;position:relative;overflow:hidden}
.werte-bg-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Fraunces',serif;font-size:600px;color:rgba(255,255,255,0.02);font-weight:900;line-height:1;pointer-events:none;user-select:none;letter-spacing:-0.05em}
.werte-tag{margin-bottom:24px}
.werte h2{font-size:72px;color:white;font-weight:300;letter-spacing:-0.03em;line-height:1;margin-bottom:100px}
.werte h2 em{color:var(--amber);font-style:italic}
.werte .werte-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:80px;position:relative}
.wert{border-left:1.5px solid rgba(255,255,255,0.1);padding-left:32px;transition:border-color 0.4s}
.wert:first-child{border-left-color:var(--amber)}
.wert:hover{border-left-color:var(--amber)}
.wert-num{font-family:'Fraunces',serif;font-size:80px;font-weight:300;color:rgba(255,255,255,0.15);line-height:1;margin-bottom:24px;transition:color 0.4s}
.wert:hover .wert-num{color:var(--amber)}
.wert h3{font-size:20px;font-weight:500;color:white;margin-bottom:16px;line-height:1.3}
.wert p{font-size:14px;line-height:1.75;color:rgba(255,255,255,0.5);font-weight:300}

/* ===== TEAM-TEASER (Startseite) ===== */
.team{background:var(--paper);padding:200px 56px;overflow:hidden}
.team-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.team-img{aspect-ratio:3/2;border-radius:24px;overflow:hidden;position:relative}
.team-img svg,.team-img img{width:100%;height:100%;display:block;object-fit:cover;object-position:top center}
.team-img .floating-badge{position:absolute;bottom:32px;left:32px;background:rgba(255,255,255,0.15);backdrop-filter:blur(16px);border-radius:16px;padding:20px 28px;color:white;display:flex;gap:40px}
.team-img .floating-badge .stat{text-align:center}
.team-img .floating-badge .stat-num{font-family:'Fraunces',serif;font-size:28px;font-weight:400}
.team-img .floating-badge .stat-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;opacity:0.7;margin-top:2px}
.team-tag{margin-bottom:24px}
.team h2{font-size:60px;font-weight:300;letter-spacing:-0.03em;line-height:1;margin-bottom:32px}
.team h2 em{color:var(--amber);font-style:italic}
.team p{font-size:18px;line-height:1.75;color:rgba(14,59,78,0.6);font-weight:300;margin-bottom:48px}

/* ===== LEHRKRÄFTE-BEREICH ===== */
.lk-pw-wrap{min-height:80vh;display:flex;align-items:center;justify-content:center;background:var(--dark);padding:60px 24px}
.lk-pw-box{max-width:480px;width:100%;text-align:center}
.lk-pw-icon{margin-bottom:24px;display:flex;justify-content:center}
.lk-pw-box .eyebrow{margin-bottom:12px}
.lk-pw-heading{font-size:clamp(36px,6vw,56px);font-weight:300;letter-spacing:-0.03em;line-height:1.05;color:#fff;margin-bottom:16px}
.lk-pw-heading em{color:var(--amber);font-style:italic}
.lk-pw-desc{color:rgba(255,255,255,0.55);font-size:16px;line-height:1.65;margin-bottom:40px}
/* WP Passwort-Formular */
.lk-pw-wrap .post-password-form{margin:0}
.lk-pw-wrap .post-password-form>p:first-of-type{color:rgba(255,255,255,0);height:0;overflow:hidden;margin:0;padding:0}
.lk-pw-wrap .post-password-form>p:last-of-type{display:flex;gap:0;border-radius:14px;overflow:hidden;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.12);margin:0}
.lk-pw-wrap .post-password-form label{display:flex;flex:1}
.lk-pw-wrap .post-password-form label>input[type="password"]{flex:1;background:transparent;border:none;padding:16px 20px;font-size:16px;color:#fff;outline:none;font-family:inherit;min-width:0;width:100%}
.lk-pw-wrap .post-password-form label>input[type="password"]::placeholder{color:rgba(255,255,255,0.4)}
.lk-pw-wrap .post-password-form input[type="submit"]{background:var(--amber);border:none;padding:16px 28px;font-size:15px;font-weight:600;color:var(--dark);cursor:pointer;font-family:inherit;transition:background 0.2s;white-space:nowrap}
.lk-pw-wrap .post-password-form input[type="submit"]:hover{background:#e09a00}
.lk-hero{background:var(--dark)}
@media(max-width:600px){.lk-pw-wrap .post-password-form>p:last-of-type{flex-direction:column}.lk-pw-wrap .post-password-form input[type="submit"]{border-radius:0 0 13px 13px}}

/* ===== DOWNLOADS-SEITE ===== */
.dl-hero{background:var(--dark);padding:48px 56px 84px}
.dl-hero .eyebrow{margin-bottom:24px}
.dl-hero h1{font-size:clamp(44px,6vw,76px);color:#fff;font-weight:300;letter-spacing:-0.03em;line-height:1.02;margin-bottom:24px}
.dl-hero h1 em{color:var(--amber);font-style:italic}
.dl-lead{max-width:640px;font-size:18px;line-height:1.7;color:rgba(255,255,255,0.6);font-weight:300}
.dl-body{background:var(--paper);padding:80px 56px 120px;display:flex;flex-direction:column;gap:72px}
.dl-section-head{margin-bottom:32px}
.dl-cat-title{font-size:clamp(26px,3vw,36px);font-weight:300;color:var(--ink);letter-spacing:-0.02em;margin-bottom:8px}
.dl-cat-desc{font-size:15px;color:rgba(14,59,78,0.55);font-weight:300}
.dl-list{list-style:none;display:flex;flex-direction:column;gap:12px}
.dl-card{display:flex;align-items:center;gap:20px;background:#fff;border-radius:16px;padding:20px 24px;border:1px solid rgba(14,59,78,0.08);transition:box-shadow 0.3s,transform 0.3s}
.dl-card:hover{box-shadow:0 8px 32px rgba(14,59,78,0.10);transform:translateY(-2px)}
.dl-icon{flex-shrink:0;width:44px;height:44px;background:rgba(247,171,0,0.12);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--amber)}
.dl-info{flex:1;min-width:0}
.dl-doc-title{font-size:16px;font-weight:500;color:var(--ink);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dl-doc-desc{font-size:13px;color:rgba(14,59,78,0.55);font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dl-doc-meta{font-size:11px;color:rgba(14,59,78,0.35);margin-top:3px;letter-spacing:0.5px;text-transform:uppercase}
.dl-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;background:var(--dark);color:#fff;font-size:13px;font-weight:500;padding:10px 18px;border-radius:999px;text-decoration:none;transition:background 0.3s,color 0.3s;white-space:nowrap}
.dl-btn:hover{background:var(--amber);color:var(--dark)}
.dl-btn-soon{background:rgba(14,59,78,0.06);color:rgba(14,59,78,0.4);cursor:default}
.dl-btn-soon:hover{background:rgba(14,59,78,0.06);color:rgba(14,59,78,0.4)}
.dl-empty{color:rgba(14,59,78,0.45);font-size:16px;padding:40px 0}
@media (max-width:1024px){.dl-hero{padding:40px 40px 64px}.dl-body{padding:64px 40px 100px}}
@media (max-width:768px){
  .dl-hero{padding:32px 24px 48px}
  .dl-body{padding:48px 24px 80px;gap:56px}
  .dl-card{flex-wrap:wrap;gap:14px}
  .dl-btn{width:100%;justify-content:center}
}

/* ===== IMPRESSUM ===== */
.impr-hero{background:var(--dark);padding:48px 56px 72px}
.impr-hero .eyebrow{margin-bottom:12px}
.impr-hero h1{font-size:clamp(40px,6vw,72px);font-weight:300;color:#fff;letter-spacing:-0.03em;line-height:1}
.impr-hero h1 em{color:var(--amber);font-style:italic}
.impr-body{background:var(--paper);padding:72px 56px 120px;display:flex;flex-direction:column;gap:48px}
.impr-block{max-width:720px}
.impr-block h2{font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--dark);margin-bottom:12px}
.impr-block p{font-size:16px;line-height:1.75;color:rgba(14,59,78,0.75)}
.impr-block a{color:var(--dark);text-decoration:underline;text-underline-offset:3px}
.impr-block a:hover{color:var(--amber)}
@media(max-width:768px){.impr-hero{padding:32px 24px 56px}.impr-body{padding:48px 24px 80px;gap:36px}}

/* ===== PARTNER ===== */
.partner-section{background:var(--paper);padding:80px 56px 100px;display:flex;flex-direction:column;gap:56px}
.partner-intro .eyebrow{margin-bottom:12px}
.partner-intro h2{font-size:clamp(36px,5vw,56px);font-weight:300;letter-spacing:-0.03em;line-height:1.05;color:var(--dark)}
.partner-intro h2 em{color:var(--amber);font-style:italic}
.partner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.partner-card{display:flex;align-items:center;gap:16px;background:#fff;border-radius:16px;padding:20px 24px;border:1px solid rgba(14,59,78,0.08);transition:box-shadow 0.3s,transform 0.3s;text-decoration:none;color:var(--dark);position:relative}
a.partner-card:hover{box-shadow:0 8px 32px rgba(14,59,78,0.10);transform:translateY(-2px)}
.partner-logo-wrap{flex-shrink:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center}
.partner-logo-wrap img{max-width:56px;max-height:56px;object-fit:contain}
.partner-initials{flex-shrink:0;width:56px;height:56px;border-radius:12px;background:var(--dark);color:#fff;font-family:'Fraunces',serif;font-size:22px;font-weight:600;display:flex;align-items:center;justify-content:center;letter-spacing:-0.02em}
.partner-info{flex:1;min-width:0}
.partner-name{font-family:'Fraunces',serif;font-size:16px;font-weight:600;line-height:1.2;color:var(--dark)}
.partner-desc{font-size:13px;color:rgba(14,59,78,0.55);margin-top:4px;line-height:1.4}
.partner-arrow{flex-shrink:0;font-size:18px;color:var(--amber);transition:transform 0.3s}
a.partner-card:hover .partner-arrow{transform:translateX(3px)}
@media (max-width:1024px){.partner-section{padding:64px 40px 80px}}
@media (max-width:768px){.partner-section{padding:48px 24px 64px;gap:40px}.partner-grid{grid-template-columns:1fr}}
.partner-section--gemeinden{background:#f0f4f6;border-top:1px solid rgba(14,59,78,0.07)}

/* ===== CTA (Basis = Unterseiten 80px) ===== */
.cta{padding:160px 56px;background:var(--dark);text-align:center;position:relative;overflow:hidden}
.cta h2{font-size:clamp(56px,8vw,80px);color:white;font-weight:300;letter-spacing:-0.04em;line-height:0.95;margin-bottom:24px}
.cta h2 em{color:var(--amber);font-style:italic}
.cta p{font-size:18px;color:rgba(255,255,255,0.5);margin-bottom:48px;font-weight:300}
.cta .btn-primary{background:var(--amber);color:var(--dark);font-size:15px;padding:18px 40px}
.cta .btn-primary:hover{background:white}
.cta .btn-primary .arr{background:var(--dark);color:var(--amber)}
body.home .cta h2{font-size:clamp(64px,11vw,120px);line-height:1.02;margin-bottom:28px}

/* ===== FÖRDERLEISTE ===== */
.foerd-bar{background:#fff;border-top:1px solid #e8e8e8;padding:40px 56px}
.foerd-inner{display:flex;align-items:center;justify-content:center;gap:56px;flex-wrap:wrap}
.foerd-item{display:flex;align-items:center;gap:20px}
.foerd-divider{width:1px;height:60px;background:#ccc9c3;flex-shrink:0}
.foerd-logo{height:56px;width:auto;object-fit:contain;display:block}
.foerd-logo--vdm{height:64px}
.foerd-item--vdm{gap:20px}
.foerd-label{font-size:12px;color:#666;line-height:1.55;max-width:220px}
@media(max-width:600px){
  .foerd-bar{padding:32px 24px}
  .foerd-inner{gap:36px}
  .foerd-divider{display:none}
  .foerd-item--vdm{flex-direction:column;align-items:flex-start;gap:10px}
}

/* ===== FOOTER ===== */
.foot{background:var(--dark);border-top:1px solid rgba(255,255,255,0.06);padding:72px 56px 44px;color:rgba(255,255,255,0.45);font-size:14px}
.foot-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:48px;margin-bottom:56px;align-items:start}
.foot-col-title{font-size:10px;color:var(--amber);letter-spacing:2.5px;text-transform:uppercase;margin-bottom:20px;font-weight:500}
.foot-logo{height:48px;width:auto;display:block;margin-bottom:18px;filter:brightness(0) invert(1);opacity:0.85}
.foot-col--brand p{max-width:100%;line-height:1.8;font-weight:300;font-size:13px;margin-bottom:24px}
.foot-cta{display:inline-block;padding:10px 20px;border:1px solid rgba(247,171,0,0.5);color:var(--amber);font-size:12px;font-weight:500;letter-spacing:.5px;text-decoration:none;border-radius:4px;transition:background .25s,color .25s,border-color .25s}
.foot-cta:hover{background:var(--amber);color:var(--dark);border-color:var(--amber)}
.foot-col .foot-menu{list-style:none}
.foot-col .foot-menu a,.foot-col .foot-menu span{display:block;color:rgba(255,255,255,0.55);margin-bottom:12px;text-decoration:none;transition:color 0.25s;font-size:13px}
.foot-col .foot-menu a:hover{color:#fff}
.foot-address{font-style:normal;display:flex;flex-direction:column;gap:22px}
.foot-contact-block{display:flex;flex-direction:column;gap:4px}
.foot-contact-label{font-size:10px;color:var(--amber);letter-spacing:2px;text-transform:uppercase;font-weight:500;margin-bottom:5px}
.foot-contact-block span,.foot-contact-block a{color:rgba(255,255,255,0.55);text-decoration:none;transition:color 0.25s;line-height:1.6;font-size:13px}
.foot-contact-block a:hover{color:#fff}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;border-top:1px solid rgba(255,255,255,0.06);gap:16px;flex-wrap:wrap;font-size:12px;color:rgba(255,255,255,0.3)}
.foot-legal,.foot-legal-fallback{list-style:none;display:flex;gap:24px}
.foot-legal a,.foot-legal-fallback a{color:rgba(255,255,255,0.35);text-decoration:none;transition:color 0.25s}
.foot-legal a:hover,.foot-legal-fallback a:hover{color:rgba(255,255,255,0.7)}

/* =====================================================================
   UNTERSEITEN
   ===================================================================== */

/* ===== SUB-HERO (Detailseite) ===== */
.sub-hero{display:grid;grid-template-columns:1fr 1fr;min-height:80vh;background:var(--dark)}
.sub-hero-text{padding:60px 56px 80px;display:flex;flex-direction:column;justify-content:center}
.sub-hero-visual{position:relative;overflow:hidden;min-height:80vh;background:radial-gradient(110% 90% at 50% 35%,#1A5A75 0%,#0E3B4E 46%,#060E12 100%)}
/* Kinder absolut füllen → feste Box für object-fit (auch bei SVG ohne Eigengröße) */
.sub-hero-visual > svg,.sub-hero-visual > img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
/* Bild-Illustrationen contained auf Verlauf statt formatfüllend (kein Überlaufen) */
.sub-hero-visual > img{object-fit:contain;padding:6% 8%;filter:drop-shadow(0 22px 44px rgba(0,0,0,0.45))}
.sub-hero-tag{font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--amber);margin-bottom:24px;display:inline-flex;align-items:center;gap:10px}
.sub-hero-tag::before{content:'';width:24px;height:1px;background:var(--amber)}
.sub-hero h1{font-family:'Fraunces',serif;font-size:80px;line-height:0.95;color:white;font-weight:300;letter-spacing:-0.03em;margin-bottom:28px}
.sub-hero h1 em{color:var(--amber);font-style:italic;font-weight:400}
.sub-hero-desc{font-size:18px;line-height:1.7;color:rgba(255,255,255,0.65);font-weight:300;max-width:480px;margin-bottom:40px}
.sub-hero-meta{display:flex;gap:40px;padding-top:32px;border-top:0.5px solid rgba(255,255,255,0.1)}
.sub-hero-meta .meta-num{font-family:'Fraunces',serif;font-size:28px;color:white;font-weight:400}
.sub-hero-meta .meta-label{font-size:10px;color:rgba(255,255,255,0.45);letter-spacing:1.5px;text-transform:uppercase;margin-top:4px}

/* ===== INTRO-SPLIT ===== */
.intro-split{display:grid;grid-template-columns:1fr 1fr;background:var(--paper)}
.intro-split-text{padding:120px 56px 120px 80px;max-width:600px}
.intro-split-text h2{font-family:'Fraunces',serif;font-size:44px;line-height:1.1;font-weight:400;letter-spacing:-0.02em;margin-bottom:28px}
.intro-split-text h2 em{color:var(--amber);font-style:italic}
.intro-split-text p{font-size:16px;line-height:1.8;color:rgba(14,59,78,0.65);font-weight:300;margin-bottom:20px}
.intro-split-img{position:relative;overflow:hidden;min-height:360px;background:linear-gradient(150deg,#1A5A75,#0E3B4E)}
.intro-split-img > svg,.intro-split-img > img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}
.intro-split-img > img{object-fit:contain;padding:6%}

/* ===== UNTERRICHTSFORMEN ===== */
.formats{background:var(--dark);padding:160px 56px}
.formats h2{font-family:'Fraunces',serif;font-size:56px;color:white;font-weight:300;letter-spacing:-0.03em;line-height:1;margin:24px 0 80px}
.formats h2 em{color:var(--amber);font-style:italic}
.format-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.format-card{border:0.5px solid rgba(255,255,255,0.1);border-radius:24px;padding:48px 36px;transition:all 0.4s;cursor:pointer;position:relative;overflow:hidden}
.format-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(247,171,0,0.08),transparent);opacity:0;transition:opacity 0.4s}
.format-card:hover{border-color:rgba(247,171,0,0.3);transform:translateY(-4px)}
.format-card:hover::before{opacity:1}
.format-card .format-icon{width:56px;height:56px;border-radius:14px;background:rgba(247,171,0,0.12);display:flex;align-items:center;justify-content:center;margin-bottom:28px;position:relative}
.format-card h3{font-size:22px;font-weight:500;color:white;margin-bottom:14px;position:relative}
.format-card p{font-size:14px;line-height:1.75;color:rgba(255,255,255,0.55);font-weight:300;position:relative}
.format-card .format-detail{font-size:12px;color:var(--amber);margin-top:20px;font-weight:500;letter-spacing:0.5px;position:relative}

/* ===== LEHRKRÄFTE (Detailseite) ===== */
.lehrer{background:var(--paper);padding:160px 56px}
.lehrer h2{font-family:'Fraunces',serif;font-size:56px;font-weight:300;letter-spacing:-0.03em;line-height:1;margin:24px 0 80px}
.lehrer h2 em{color:var(--amber);font-style:italic}
.lehrer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.lehrer-card{cursor:pointer;transition:transform 0.4s}
.lehrer-card:hover{transform:translateY(-4px)}
.lehrer-img{aspect-ratio:4/5;border-radius:20px;overflow:hidden;margin-bottom:20px;position:relative;background:#0E3B4E}
.lehrer-img svg,.lehrer-img img{width:100%;height:100%;display:block;object-fit:cover}
.lehrer-img .lehrer-badge{position:absolute;bottom:16px;left:16px;background:rgba(255,255,255,0.15);backdrop-filter:blur(12px);border-radius:10px;padding:10px 16px;color:white;font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:500}
.lehrer-name{font-size:20px;font-weight:500;margin-bottom:4px}
.lehrer-role{font-size:13px;color:rgba(14,59,78,0.55);font-weight:300}

/* ===== UNTERRICHT-GALERIE (Archiv-Grid + Lightbox) ===== */
.ug-galerie{background:var(--cream);padding:100px 56px 120px}
.ug-galerie-head{margin-bottom:56px}
.ug-galerie-head .eyebrow{margin-bottom:12px}
.ug-galerie-head h2{font-size:clamp(36px,5vw,56px);font-weight:300;letter-spacing:-0.03em;line-height:1.05;color:var(--dark)}
.ug-galerie-head h2 em{color:var(--amber);font-style:italic}
.ug-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.ug-item{position:relative;aspect-ratio:3/2;border:none;padding:0;cursor:pointer;border-radius:14px;overflow:hidden;background:var(--dark)}
.ug-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.4s cubic-bezier(0.16,1,0.3,1),opacity 0.3s}
.ug-item:hover img{transform:scale(1.04);opacity:0.85}
.ug-zoom{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;opacity:0;transition:opacity 0.25s;pointer-events:none;text-shadow:0 2px 8px rgba(0,0,0,0.5)}
.ug-item:hover .ug-zoom{opacity:1}
/* Lightbox */
.ug-lb{position:fixed;inset:0;z-index:9000;background:rgba(6,14,18,0.95);display:flex;align-items:center;justify-content:center;padding:24px}
.ug-lb[hidden]{display:none}
.ug-lb-fig{max-width:1200px;width:100%;margin:0}
.ug-lb-fig img{width:100%;max-height:85vh;object-fit:contain;border-radius:10px;display:block}
.ug-lb-close,.ug-lb-prev,.ug-lb-next{position:fixed;background:rgba(255,255,255,0.12);border:none;color:#fff;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background 0.2s}
.ug-lb-close{top:20px;right:20px;width:44px;height:44px;font-size:20px}
.ug-lb-prev,.ug-lb-next{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:32px}
.ug-lb-prev{left:16px}
.ug-lb-next{right:16px}
.ug-lb-close:hover,.ug-lb-prev:hover,.ug-lb-next:hover{background:rgba(255,255,255,0.25)}
@media(max-width:1280px){.ug-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1024px){.ug-galerie{padding:72px 40px 90px}.ug-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.ug-galerie{padding:56px 24px 72px}.ug-grid{grid-template-columns:repeat(2,1fr)}.ug-lb-prev{left:8px}.ug-lb-next{right:8px}}

/* ===== GALERIE ===== */
.galerie{background:var(--cream);padding:120px 0 120px 56px;overflow:hidden}
.galerie h2{font-family:'Fraunces',serif;font-size:56px;font-weight:300;letter-spacing:-0.03em;line-height:1;margin:24px 0 60px;padding-right:56px}
.galerie h2 em{color:var(--amber);font-style:italic}
.gal-row{display:flex;gap:16px;overflow-x:auto;padding-bottom:20px;scroll-snap-type:x mandatory;scrollbar-width:none}
.gal-row::-webkit-scrollbar{display:none}
.gal-item{flex:0 0 420px;aspect-ratio:3/2;border-radius:18px;overflow:hidden;scroll-snap-align:start;position:relative;cursor:pointer;transition:transform 0.4s;background:#0E3B4E}
.gal-item:hover{transform:scale(0.97)}
.gal-item:last-child{margin-right:56px}
.gal-item svg,.gal-item img{width:100%;height:100%;display:block;object-fit:cover}

/* ===== FAQ ===== */
.faq{background:var(--paper);padding:160px 56px}
.faq-layout{display:grid;grid-template-columns:380px 1fr;gap:100px}
.faq h2{font-family:'Fraunces',serif;font-size:48px;font-weight:300;letter-spacing:-0.03em;line-height:1.1;position:sticky;top:120px}
.faq h2 em{color:var(--amber);font-style:italic}
.faq-list{display:flex;flex-direction:column}
.faq-item{border-top:0.5px solid rgba(14,59,78,0.12);padding:32px 0;transition:all 0.3s}
.faq-item:last-child{border-bottom:0.5px solid rgba(14,59,78,0.12)}
.faq-q{width:100%;background:none;border:none;font-family:inherit;text-align:left;color:inherit;display:flex;justify-content:space-between;align-items:center;font-size:18px;font-weight:500;cursor:pointer}
.faq-q .faq-toggle{width:32px;height:32px;border-radius:50%;border:1px solid rgba(14,59,78,0.2);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink);transition:all 0.3s;flex-shrink:0;margin-left:24px}
.faq-item:hover .faq-toggle{border-color:var(--amber);color:var(--amber)}
.faq-a{max-height:0;overflow:hidden;transition:max-height 0.5s cubic-bezier(0.16,1,0.3,1);font-size:15px;line-height:1.75;color:rgba(14,59,78,0.6);font-weight:300}
.faq-item.open .faq-a{max-height:400px;padding-top:16px}
.faq-item.open .faq-toggle{transform:rotate(45deg);background:var(--amber);border-color:var(--amber);color:var(--dark)}

/* ===== TEAM-HERO (Team-Seite) ===== */
.team-hero{background:var(--dark);padding:60px 56px 0;display:grid;grid-template-columns:1fr 1fr;gap:80px;min-height:85vh;align-items:center}
.team-hero-text .tag{font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--amber);margin-bottom:24px;display:flex;align-items:center;gap:10px}
.team-hero-text .tag::before{content:'';width:24px;height:1px;background:var(--amber)}
.team-hero h1{font-family:'Fraunces',serif;font-size:76px;line-height:0.95;color:white;font-weight:300;letter-spacing:-0.03em;margin-bottom:28px}
.team-hero h1 em{color:var(--amber);font-style:italic;font-weight:400}
.team-hero-desc{font-size:18px;line-height:1.7;color:rgba(255,255,255,0.6);font-weight:300;max-width:480px;margin-bottom:48px}
.team-hero-stats{display:flex;gap:48px;padding-top:36px;border-top:0.5px solid rgba(255,255,255,0.1);flex-wrap:wrap}
.team-hero-stats .stat-num{font-family:'Fraunces',serif;font-size:32px;color:white;font-weight:400}
.team-hero-stats .stat-label{font-size:10px;color:rgba(255,255,255,0.45);letter-spacing:1.5px;text-transform:uppercase;margin-top:4px}
.team-hero-img{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:3/2}
.team-hero-img svg,.team-hero-img img{width:100%;height:100%;display:block;object-fit:cover;object-position:top center}
.team-hero-img .floating-badge{position:absolute;bottom:32px;left:32px;right:32px;background:rgba(255,255,255,0.12);backdrop-filter:blur(16px);border-radius:18px;padding:24px 28px;color:white;text-align:center}
.team-hero-img .floating-badge p{font-family:'Fraunces',serif;font-size:18px;font-weight:400;line-height:1.5;font-style:italic;margin-bottom:8px}
.team-hero-img .floating-badge .attr{font-size:11px;opacity:0.6;letter-spacing:1px;text-transform:uppercase}

/* ===== FILTER ===== */
.filter-bar{background:var(--paper);padding:40px 56px;display:flex;gap:12px;align-items:center;border-bottom:0.5px solid rgba(14,59,78,0.08);flex-wrap:wrap}
.filter-btn{padding:10px 20px;border-radius:999px;font-size:12px;font-weight:500;cursor:pointer;transition:all 0.3s;border:1px solid rgba(14,59,78,0.15);background:transparent;color:var(--ink);font-family:inherit}
.filter-btn:hover{border-color:var(--amber);color:var(--amber)}
.filter-btn.active{background:var(--ink);color:white;border-color:var(--ink)}
.filter-label{font-size:11px;color:rgba(14,59,78,0.45);letter-spacing:1.5px;text-transform:uppercase;margin-right:12px}

/* ===== TEAM GRID (Team-Seite) ===== */
.team-section{background:var(--paper);padding:80px 56px 160px}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.t-card{cursor:pointer;transition:transform 0.4s cubic-bezier(0.16,1,0.3,1)}
.t-card.is-hidden{display:none}
.t-card:hover{transform:translateY(-6px)}
.t-img{aspect-ratio:3/4;border-radius:20px;overflow:hidden;margin-bottom:18px;position:relative;background:#0E3B4E}
.t-img svg,.t-img img{width:100%;height:100%;display:block;object-fit:cover}
.t-img .t-badge{position:absolute;top:16px;left:16px;background:rgba(247,171,0,0.9);color:var(--dark);padding:6px 14px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.t-img .t-fach{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,rgba(6,14,18,0.7));color:white;display:flex;gap:8px;flex-wrap:wrap}
.t-img .t-fach span{background:rgba(255,255,255,0.2);backdrop-filter:blur(8px);padding:4px 10px;border-radius:999px;font-size:10px;font-weight:500;letter-spacing:0.5px}
.t-name{font-size:18px;font-weight:500;margin-bottom:4px}
.t-role{font-size:13px;color:rgba(14,59,78,0.55);font-weight:300;line-height:1.5}

/* ===== ZITAT-BAND ===== */
.quote-sec{background:var(--dark);padding:160px 56px;position:relative;overflow:hidden;text-align:center}
.quote-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Fraunces',serif;font-size:500px;color:rgba(255,255,255,0.02);font-weight:900;pointer-events:none;user-select:none;line-height:1}
.quote-text{font-family:'Fraunces',serif;font-size:42px;font-weight:300;color:white;line-height:1.35;max-width:900px;margin:0 auto 32px;position:relative;letter-spacing:-0.02em}
.quote-text em{color:var(--amber);font-style:italic}
.quote-attr{font-size:13px;color:rgba(255,255,255,0.45);letter-spacing:1px;position:relative}

/* ===== WERTE (Team-Seite – hell, 4 Spalten) ===== */
.werte-team{background:var(--cream);padding:160px 56px}
.werte-team h2{font-family:'Fraunces',serif;font-size:56px;font-weight:300;letter-spacing:-0.03em;line-height:1;margin:24px 0 80px}
.werte-team h2 em{color:var(--amber);font-style:italic}
.werte-team .werte-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.wert-card{padding:36px 0;border-top:1.5px solid rgba(14,59,78,0.1);transition:border-color 0.4s;cursor:pointer}
.wert-card:hover{border-top-color:var(--amber)}
.wert-card .w-num{font-family:'Fraunces',serif;font-size:48px;color:rgba(14,59,78,0.12);margin-bottom:20px;transition:color 0.4s}
.wert-card:hover .w-num{color:var(--amber)}
.wert-card h3{font-size:18px;font-weight:500;margin-bottom:12px;line-height:1.3}
.wert-card p{font-size:14px;line-height:1.75;color:rgba(14,59,78,0.6);font-weight:300}

/* ===== STELLENANGEBOTE ===== */
.stellen{background:var(--paper);padding:160px 56px}
.stellen-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:100px;align-items:start}
.stellen h2{font-family:'Fraunces',serif;font-size:56px;font-weight:300;letter-spacing:-0.03em;line-height:1;margin:24px 0 24px}
.stellen h2 em{color:var(--amber);font-style:italic}
.stellen-desc{font-size:16px;color:rgba(14,59,78,0.6);font-weight:300;line-height:1.7}
.stelle{border:0.5px solid rgba(14,59,78,0.12);border-radius:20px;padding:36px;margin-bottom:16px;transition:all 0.4s;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;text-decoration:none;color:inherit}
.stelle:hover{border-color:var(--amber);transform:translateY(-2px);box-shadow:0 8px 32px rgba(14,59,78,0.06)}
.stelle h3{font-size:18px;font-weight:500;margin-bottom:6px}
.stelle .stelle-meta{font-size:13px;color:rgba(14,59,78,0.55);font-weight:300;display:flex;gap:16px;flex-wrap:wrap}
.stelle .stelle-arrow{width:44px;height:44px;border-radius:50%;border:1px solid rgba(14,59,78,0.15);display:flex;align-items:center;justify-content:center;font-size:16px;transition:all 0.3s;flex-shrink:0}
.stelle:hover .stelle-arrow{background:var(--amber);border-color:var(--amber);color:var(--dark)}

/* ===== STANDARD-SEITEN / NEWS-DETAIL / ARCHIV ===== */
.content-page{background:var(--paper);padding:160px 24px 120px}
.content-head,.content-body,.content-foot,.content-hero-img{max-width:820px;margin-left:auto;margin-right:auto}
.content-head{margin-bottom:40px}
.content-head h1{font-size:clamp(40px,6vw,64px);font-weight:300;letter-spacing:-0.02em;line-height:1.05;color:var(--ink)}
.content-meta{display:flex;gap:16px;align-items:center;font-size:12px;color:rgba(14,59,78,0.5);margin-bottom:16px}
.content-meta .tag{background:rgba(14,59,78,0.07);padding:4px 12px;border-radius:999px;font-weight:500;color:var(--ink)}
.content-hero-img{border-radius:18px;overflow:hidden;margin-bottom:40px}
.content-hero-img img{width:100%;display:block}
.content-body{font-size:17px;line-height:1.8;color:rgba(14,59,78,0.8)}
.content-body h2{font-family:'Fraunces',serif;font-size:32px;font-weight:400;margin:40px 0 16px;color:var(--ink)}
.content-body h3{font-size:22px;font-weight:600;margin:32px 0 12px;color:var(--ink)}
.content-body p{margin-bottom:20px}
.content-body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--amber)}
.content-body ul,.content-body ol{margin:0 0 20px 22px}
.content-body img{border-radius:14px;margin:24px 0}
.content-body blockquote{border-left:3px solid var(--amber);padding-left:24px;margin:24px 0;font-style:italic;color:rgba(14,59,78,0.7)}
.content-foot{margin-top:56px}

.archive{background:var(--paper);padding:160px 56px 120px}
body.post-type-archive-fachbereich{background:var(--paper);padding:0}
.archive-head,.archive-grid,.archive-nav{max-width:1200px;margin-left:auto;margin-right:auto}
.archive-head h1{font-size:clamp(40px,6vw,64px);font-weight:300;margin-bottom:60px;color:var(--ink)}
.archive-head h1 em{color:var(--amber);font-style:italic}
.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.archive-card{text-decoration:none;color:inherit;display:block;transition:transform 0.4s}
.archive-card:hover{transform:translateY(-4px)}
.archive-img{aspect-ratio:3/2;border-radius:16px;overflow:hidden;margin-bottom:20px;background:#0E3B4E}
.archive-img img{width:100%;height:100%;object-fit:cover;display:block}
.archive-meta{font-size:12px;color:rgba(14,59,78,0.45);margin-bottom:8px}
.archive-title{font-size:24px;font-weight:400;line-height:1.2;margin-bottom:10px}
.archive-excerpt{font-size:14px;line-height:1.7;color:rgba(14,59,78,0.6);font-weight:300}
.archive-nav{margin-top:60px}
.archive-nav .page-numbers{display:inline-flex;padding:8px 14px;margin:0 4px;border-radius:8px;background:rgba(14,59,78,0.06);color:var(--ink);text-decoration:none}
.archive-nav .page-numbers.current{background:var(--ink);color:#fff}
.archive-empty{padding:40px 0;color:rgba(14,59,78,0.6)}

/* ===== HEADLINE-SCHRIFT: Fave Script (nur Startseite) ===== */
@font-face{font-family:'Fave Script';src:url('../fonts/FaveScript.woff2') format('woff2'),url('../fonts/FaveScript.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
body.home .hero h1,body.home .intro h2,body.home .fullbleed-text h3,body.home .faecher h2,body.home .news h2,body.home .news-title,body.home .werte h2,body.home .team h2,body.home .cta h2,body.home .fach-name{font-family:'Fave Script','Kaushan Script',cursive;font-weight:400;letter-spacing:0;line-height:1.08}
body.home .hero h1 em,body.home .intro h2 em,body.home .faecher h2 em,body.home .news h2 em,body.home .werte h2 em,body.home .team h2 em,body.home .cta h2 em{font-style:normal}
body.home .hero h1{line-height:1.05}
body.home .cta h2{line-height:1.02}

/* ===== SCROLL-ANIMATIONEN ===== */
.reveal{opacity:0;transform:translateY(60px);transition:all 1s cubic-bezier(0.16,1,0.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1,.d1{transition-delay:0.15s}
.reveal-delay-2,.d5{transition-delay:0.25s}
.d2{transition-delay:0.2s}
.d3{transition-delay:0.3s}
.d4{transition-delay:0.15s}
.d6{transition-delay:0.35s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.marquee-track,.hero-scroll .line{animation:none}}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1024px){
  .nav{padding:16px 32px}
  .nav-links{gap:22px;font-size:12px}
  .hero-content{padding:0 40px 64px}
  .hero h1{font-size:clamp(56px,min(11vw,15vh),140px)}
  .intro{padding:140px 40px 120px}
  .intro-grid{gap:64px}
  .intro-num{font-size:220px;top:60px;left:24px}
  .intro h2{font-size:clamp(38px,6vw,60px)}
  .faecher{padding:120px 0 120px 40px}
  .faecher h2,.news h2,.werte h2{font-size:clamp(44px,8vw,72px)}
  .news{padding:120px 40px}
  .news-grid{grid-template-columns:repeat(2,1fr)}
  .werte{padding:140px 40px}
  .werte-bg-text{font-size:360px}
  .werte .werte-grid{gap:48px}
  .team{padding:140px 40px}
  .team-layout{gap:56px}
  .team h2{font-size:clamp(38px,6vw,60px)}
  .cta{padding:120px 40px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:40px 32px}
  .foot-col--brand{grid-column:1 / -1}
  /* Unterseiten */
  .sub-hero-text{padding:48px 40px 64px}
  .sub-hero h1,.team-hero h1{font-size:clamp(48px,8vw,80px)}
  .intro-split-text{padding:80px 40px}
  .formats,.lehrer,.faq,.stellen,.werte-team,.team-section,.quote-sec{padding-left:40px;padding-right:40px}
  .format-grid,.lehrer-grid{grid-template-columns:repeat(2,1fr)}
  .team-grid{grid-template-columns:repeat(3,1fr)}
  .werte-team .werte-grid{grid-template-columns:repeat(2,1fr)}
  .stellen-layout{grid-template-columns:1fr;gap:48px}
  .stellen h2{position:static}
  .faq-layout{grid-template-columns:1fr;gap:32px}
  .faq h2{position:static}
  .quote-text{font-size:34px}
  .bread{padding:100px 40px 0}
}
@media (max-width:768px){
  .nav{padding:14px 22px}
  .nav-toggle{display:flex}
  /* Mobil-Menü: Vollbild-Overlay */
  .nav-links{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(6,14,18,0.98);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;justify-content:center;align-items:center;gap:30px;font-size:24px;letter-spacing:0.5px;padding:88px 24px 40px;overflow-y:auto;transform:translateX(100%);transition:transform 0.38s cubic-bezier(0.16,1,0.3,1);display:flex}
  .nav.is-open .nav-links{transform:translateX(0)}
  .nav-links a,.nav-links span{opacity:0.92;color:#fff}
  .nav-links .current-menu-item>a,.nav-links span.active-link{opacity:1;color:var(--amber)}
  .nav-cta{display:none}
  .nav.is-open .nav-cta{display:inline-flex;position:fixed;left:50%;bottom:12%;transform:translateX(-50%);font-size:14px;padding:14px 30px;background:var(--amber);color:var(--dark) !important;border-color:var(--amber);z-index:121}
  /* Hero mobil: Headline oben (voll sichtbar), Key-Visual gestapelt darunter */
  .hero{height:auto;min-height:0;flex-direction:column;align-items:stretch;padding:104px 0 0}
  .hero-content{order:1;z-index:3;padding:0 24px 8px}
  .hero h1{font-size:clamp(40px,12vw,76px);margin-bottom:18px;max-width:100%}
  .hero-bottom{flex-direction:column;align-items:flex-start;gap:18px}
  .hero-sub{max-width:none}
  .hero-scroll{display:none}
  .hero-visual{order:2;position:relative;top:auto;right:auto;bottom:auto;left:auto;transform:none;height:auto;width:82%;max-width:360px;margin:12px auto 0;display:block;object-position:bottom center}
  .hero-overlay{display:none}
  .marquee-item{font-size:16px}
  .intro{padding:100px 24px 90px}
  .intro-grid{grid-template-columns:1fr;gap:32px}
  .intro-num{font-size:160px;position:static;margin-bottom:-40px}
  .fullbleed{height:52vh}
  .fullbleed-text{left:24px;bottom:40px}
  .fullbleed-text h3{font-size:32px}
  .faecher{padding:90px 0 90px 24px}
  .faecher-head{padding-right:24px;margin-bottom:48px}
  .fach-card{flex:0 0 78vw;max-width:340px;height:460px}
  .fach-card:last-child{margin-right:24px}
  .fach-nav{width:42px;height:42px;font-size:22px}
  .fach-prev{left:8px}
  .fach-next{right:8px}
  .fach-bg-photo{padding:28px 22px 88px}
  .news{padding:90px 24px}
  .news h2{margin-bottom:48px}
  .news-grid{grid-template-columns:1fr;gap:28px}
  .werte{padding:100px 24px}
  .werte-bg-text{font-size:220px}
  .werte h2{margin-bottom:56px}
  .werte .werte-grid{grid-template-columns:1fr;gap:36px}
  .team{padding:100px 24px}
  .team-layout{grid-template-columns:1fr;gap:40px}
  .team-img .floating-badge{gap:28px;padding:16px 20px}
  .cta{padding:90px 24px}
  .foot{padding:48px 24px 32px}
  .foot-grid{grid-template-columns:1fr;gap:36px;margin-bottom:40px}
  .foot-bottom{flex-direction:column;gap:16px}
  /* Unterseiten */
  .bread{padding:90px 24px 0}
  .sub-hero{grid-template-columns:1fr}
  .sub-hero-visual{min-height:52vh;order:-1}
  .sub-hero-text{padding:40px 24px 56px}
  .sub-hero-meta{gap:28px;flex-wrap:wrap}
  .intro-split{grid-template-columns:1fr}
  .intro-split-text{padding:64px 24px;max-width:none}
  .intro-split-img{min-height:300px}
  .formats,.lehrer,.faq,.stellen,.werte-team,.team-section,.quote-sec{padding-left:24px;padding-right:24px}
  .formats,.lehrer,.stellen,.werte-team{padding-top:100px;padding-bottom:100px}
  .format-grid,.lehrer-grid{grid-template-columns:1fr}
  .gal-item{flex:0 0 78vw}
  .gal-item:last-child{margin-right:24px}
  .galerie{padding-left:24px}
  .galerie h2{padding-right:24px}
  .team-hero{grid-template-columns:1fr;padding:90px 24px 40px;min-height:0;gap:40px}
  .team-hero-stats{gap:28px}
  .team-hero-img{overflow:visible;border-radius:28px 28px 0 0}
  .team-hero-img img,.team-hero-img svg{border-radius:28px 28px 0 0}
  .team-hero-img .floating-badge{position:static;border-radius:0 0 20px 20px;background:var(--dark);backdrop-filter:none;padding:20px 24px;margin:0}
  .filter-bar{padding:24px}
  .team-section{padding:48px 24px 100px}
  .team-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .quote-sec{padding:100px 24px}
  .quote-bg{font-size:280px}
  .quote-text{font-size:26px}
  .werte-team .werte-grid{grid-template-columns:1fr}
  .content-page{padding:120px 22px 90px}
  .archive{padding:120px 24px 90px}
  .archive-grid{grid-template-columns:1fr}
}
@media (max-width:480px){
  .nav-cta{padding:8px 16px;font-size:11px}
  .hero h1{font-size:clamp(34px,11vw,60px)}
  .hero-visual{width:88%;max-width:300px}
  .intro h2{font-size:30px}
  .faecher h2,.news h2,.werte h2{font-size:34px}
  .fach-card{flex:0 0 82vw;height:420px}
  .team h2{font-size:32px}
  .team-img .floating-badge .stat-num{font-size:22px}
  .team-grid{grid-template-columns:1fr}
  .sub-hero h1,.team-hero h1{font-size:38px}
  .formats h2,.lehrer h2,.stellen h2,.werte-team h2,.galerie h2{font-size:34px}
}

/* =====================================================================
   Schnupperstunde
   ===================================================================== */
.sn-hero{background:var(--dark);padding:56px 56px 80px;display:flex;align-items:flex-start;gap:40px;position:relative;overflow:hidden}
.sn-hero-inner{flex:1;min-width:0}
.sn-hero .eyebrow{margin-bottom:20px}
.sn-hero h1{font-size:clamp(40px,6vw,72px);color:#fff;font-weight:300;letter-spacing:-0.03em;line-height:1.02;margin-bottom:24px}
.sn-hero h1 em{color:var(--amber);font-style:italic}
.sn-lead{font-size:clamp(16px,1.8vw,20px);color:rgba(255,255,255,0.72);max-width:560px;line-height:1.6}
.sn-hero-icon{flex-shrink:0;opacity:0.6;margin-top:8px}
.sn-form-wrap{background:var(--paper);padding:72px 56px 100px}
.sn-form-box{max-width:760px;margin:0 auto;background:#fff;border-radius:20px;padding:48px 56px;box-shadow:0 4px 32px rgba(14,59,78,0.08)}
.sn-no-form{color:rgba(14,59,78,0.5);font-style:italic;text-align:center;padding:40px 0}

/* CF7 Reset – Theme-Stil */
.sn-form-box .wpcf7-form{display:flex;flex-direction:column;gap:0}
.sn-form-box .wpcf7-form p{margin:0 0 20px;display:flex;flex-direction:column;gap:6px}
.sn-form-box .wpcf7-form label{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:0.04em;text-transform:uppercase}
.sn-form-box .wpcf7-form input[type="text"],
.sn-form-box .wpcf7-form input[type="email"],
.sn-form-box .wpcf7-form input[type="tel"],
.sn-form-box .wpcf7-form input[type="date"],
.sn-form-box .wpcf7-form select,
.sn-form-box .wpcf7-form textarea{width:100%;padding:14px 18px;border:1.5px solid rgba(14,59,78,0.14);border-radius:10px;font-size:15px;font-family:inherit;color:var(--ink);background:#fff;transition:border-color 0.2s,box-shadow 0.2s;outline:none}
.sn-form-box .wpcf7-form input:focus,
.sn-form-box .wpcf7-form select:focus,
.sn-form-box .wpcf7-form textarea:focus{border-color:var(--amber);box-shadow:0 0 0 3px rgba(247,171,0,0.12)}
.sn-form-box .wpcf7-form textarea{resize:vertical;min-height:120px}
.sn-form-box .wpcf7-form .wpcf7-submit{background:var(--amber);color:var(--dark);font-weight:700;font-size:15px;padding:16px 40px;border:none;border-radius:12px;cursor:pointer;font-family:inherit;letter-spacing:0.02em;transition:background 0.2s,transform 0.15s;margin-top:8px;align-self:flex-start}
.sn-form-box .wpcf7-form .wpcf7-submit:hover{background:#e09a00;transform:translateY(-1px)}
.sn-form-box .wpcf7-not-valid-tip{color:#c0392b;font-size:12px;margin-top:4px}
.sn-form-box .wpcf7-response-output{margin-top:20px;padding:16px 20px;border-radius:10px;font-size:14px;border:none}
.sn-form-box .wpcf7-mail-sent-ok{background:rgba(39,174,96,0.1);color:#1e7e4f}
.sn-form-box .wpcf7-validation-errors,.sn-form-box .wpcf7-mail-sent-ng{background:rgba(192,57,43,0.1);color:#922b21}

/* Zweispaltig auf größeren Screens */
@media(min-width:640px){
  .sn-form-box .wpcf7-form{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
  .sn-form-box .wpcf7-form p:has(textarea),
  .sn-form-box .wpcf7-form p:last-child,
  .sn-form-box .wpcf7-form p:has([type="submit"]){grid-column:1/-1}
}
@media(max-width:768px){.sn-hero{padding:40px 40px 56px;flex-direction:column}.sn-hero-icon{display:none}.sn-form-wrap{padding:48px 32px 72px}.sn-form-box{padding:32px 28px}}
@media(max-width:480px){.sn-hero{padding:32px 24px 48px}.sn-form-wrap{padding:40px 20px 60px}.sn-form-box{padding:28px 20px;border-radius:14px}}
