/* ============================================================
   Jugend Zukunft Perspektive gGmbH
   Design: Variante D – Ruhig & Modern
   ============================================================ */

:root{
  --nacht:#131B33;
  --nacht-2:#1C2748;
  --blau:#2B3A8C;
  --blau-hell:#5A72D6;
  --rot:#D94B4B;
  --rot-tief:#C13C3C;

  --hell:#FFFFFF;
  --hell-2:#F4F5F9;
  --hell-3:#EAECF5;
  --linie:#E3E5EC;
  --text:#161A24;
  --muted:#616677;

  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --max:1200px;
  --kopf:98px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);color:var(--text);background:var(--hell);
  line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 30px}

/* Nur für Screenreader */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--rot);color:#fff;padding:14px 22px;border-radius:0 0 8px 0;font-weight:600}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--rot);outline-offset:3px;border-radius:4px}

/* ============================================================
   KOPFBEREICH
   ============================================================ */
.kopf{
  position:absolute;top:0;left:0;right:0;z-index:60;
  transition:background .25s,box-shadow .25s;
}
/* Auf Unterseiten liegt der Kopf nicht über einem Bild */
.kopf--fest{position:sticky;background:#fff;border-bottom:1px solid var(--linie)}
.kopf .wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:var(--kopf)}

.marke{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0}
.marke img{width:50px;height:auto;flex-shrink:0;background:#fff;border-radius:10px;padding:4px}
.marke b{display:block;font-size:1.02rem;line-height:1.24;font-weight:700}
.marke span{display:block;font-size:.74rem;opacity:.72;margin-top:1px}
.kopf:not(.kopf--fest) .marke{color:#fff}
.kopf--fest .marke b{color:var(--nacht)}
.kopf--fest .marke span{color:var(--muted);opacity:1}

.nav>ul{display:flex;gap:4px;list-style:none;align-items:center}
.nav>ul>li>a{
  text-decoration:none;font-size:.94rem;font-weight:500;
  padding:10px 15px;border-radius:8px;display:inline-block;
}
.kopf:not(.kopf--fest) .nav>ul>li>a{color:#fff;opacity:.9}
.kopf:not(.kopf--fest) .nav>ul>li>a:hover,
.kopf:not(.kopf--fest) .nav>ul>li>a[aria-current]{background:rgba(255,255,255,.13);opacity:1}
.kopf--fest .nav>ul>li>a{color:var(--text)}
.kopf--fest .nav>ul>li>a:hover,
.kopf--fest .nav>ul>li>a[aria-current]{background:var(--hell-2);color:var(--blau)}

.hat-sub{position:relative}
.hat-sub>a::after{
  content:"";display:inline-block;width:5px;height:5px;
  border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(45deg) translateY(-2px);margin-left:8px;opacity:.6;
}
.sub{
  position:absolute;top:calc(100% + 4px);left:0;background:#fff;border-radius:12px;
  box-shadow:0 20px 50px rgba(10,16,40,.26);padding:10px;min-width:315px;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s,transform .15s,visibility .15s;
  list-style:none;
}
.hat-sub:hover .sub,.hat-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:10px 14px;font-size:.9rem;text-decoration:none;border-radius:8px;color:var(--text);font-weight:500}
.sub a:hover,.sub a:focus{background:var(--hell-2);color:var(--blau)}
.sub small{display:block;color:var(--muted);font-size:.77rem;font-weight:400;margin-top:1px}

/* Menü-Schalter für Mobil */
.menue-schalter{
  display:none;background:none;border:0;cursor:pointer;padding:10px;
  border-radius:8px;color:#fff;
}
.kopf--fest .menue-schalter{color:var(--nacht)}
.menue-schalter span{display:block;width:24px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s,opacity .2s}
.menue-schalter span+span{margin-top:6px}
.menue-schalter[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menue-schalter[aria-expanded="true"] span:nth-child(2){opacity:0}
.menue-schalter[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ============================================================
   KNÖPFE
   ============================================================ */
.knopf{
  display:inline-block;background:var(--rot);color:#fff;text-decoration:none;
  padding:13px 25px;border-radius:8px;font-weight:600;font-size:.94rem;
  border:1.5px solid var(--rot);transition:background .15s,border-color .15s;cursor:pointer;
  font-family:inherit;text-align:center;
}
.knopf:hover{background:var(--rot-tief);border-color:var(--rot-tief)}
.knopf--geist{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.34);color:#fff}
.knopf--geist:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.5)}
.knopf--linie{background:transparent;color:var(--nacht);border-color:var(--linie)}
.knopf--linie:hover{background:var(--hell-2);border-color:var(--linie)}
.knopf--weiss{background:#fff;color:var(--nacht);border-color:#fff}
.knopf--weiss:hover{background:var(--hell-3);border-color:var(--hell-3)}
.knopfreihe{display:flex;gap:12px;flex-wrap:wrap}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:640px;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(19,27,51,.86) 0%,rgba(19,27,51,.60) 42%,rgba(19,27,51,.94) 100%);
}
.hero .wrap{position:relative;padding-top:calc(var(--kopf) + 72px);padding-bottom:74px}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.1rem);line-height:1.06;letter-spacing:-.032em;font-weight:700;margin-bottom:24px;max-width:16em}
.hero__lead{font-size:1.18rem;opacity:.87;max-width:34em;margin-bottom:36px}

.kicker{
  display:inline-flex;align-items:center;gap:9px;font-size:.8rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.24);padding:7px 15px;border-radius:100px;margin-bottom:26px;
}

/* Kopfbereich der Unterseiten */
.seitenkopf{background:var(--nacht);color:#fff;padding:64px 0 68px}
.seitenkopf .kruemel{font-size:.86rem;opacity:.62;margin-bottom:18px}
.seitenkopf .kruemel a{text-decoration:none}
.seitenkopf .kruemel a:hover{text-decoration:underline}
.seitenkopf .kruemel span{margin:0 8px;opacity:.6}
.seitenkopf .para{
  display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:#fff;background:var(--rot);padding:5px 12px;border-radius:5px;margin-bottom:18px;
}
.seitenkopf h1{font-size:clamp(2.1rem,4.2vw,3.1rem);line-height:1.1;letter-spacing:-.03em;font-weight:700;max-width:17em}
.seitenkopf p{margin-top:20px;font-size:1.12rem;opacity:.85;max-width:40em}

/* ============================================================
   ZAHLENBAND
   ============================================================ */
.zahlen{background:var(--nacht-2);color:#fff}
.zahlen .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding:0}
.zahl{padding:36px 24px;border-right:1px solid rgba(255,255,255,.12)}
.zahl:last-child{border-right:0}
.zahl b{display:block;font-size:2.6rem;font-weight:700;letter-spacing:-.035em;line-height:1}
.zahl span{display:block;font-size:.87rem;opacity:.72;margin-top:9px}

/* ============================================================
   ABSCHNITTE
   ============================================================ */
.abschnitt{padding:92px 0}
.abschnitt--schmal{padding:66px 0}
.abschnitt--hell{background:var(--hell-2)}
.abschnitt--dunkel{background:var(--nacht);color:#fff}
.abschnitt--dunkel h2,.abschnitt--dunkel h3{color:#fff}
.abschnitt--dunkel p{opacity:.82}

.kopfzeile{max-width:660px;margin-bottom:50px}
.kopfzeile--mitte{margin-left:auto;margin-right:auto;text-align:center}
.label{font-size:.79rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--rot);margin-bottom:14px}
h2{font-size:clamp(1.9rem,3.3vw,2.6rem);line-height:1.16;letter-spacing:-.028em;font-weight:700;color:var(--nacht)}
h3{font-size:clamp(1.35rem,2.2vw,1.7rem);line-height:1.24;letter-spacing:-.022em;font-weight:700;color:var(--nacht)}
h4{font-size:1.1rem;line-height:1.3;font-weight:700;color:var(--nacht)}
.kopfzeile p{margin-top:16px;font-size:1.07rem;color:var(--muted)}

/* ============================================================
   FLIESSTEXT
   ============================================================ */
.text{max-width:44em}
.text h2{margin:52px 0 18px}
.text h2:first-child{margin-top:0}
.text h3{margin:38px 0 14px}
.text p{margin-bottom:17px;color:#2C3140}
.text ul,.text ol{margin:0 0 20px 0;list-style:none}
.text ol{counter-reset:li}
.text li{padding-left:32px;position:relative;margin-bottom:11px;color:#2C3140}
.text ul>li::before{
  content:"";position:absolute;left:2px;top:.62em;width:15px;height:8px;
  border-left:2.2px solid var(--rot);border-bottom:2.2px solid var(--rot);transform:rotate(-45deg);
}
.text ol>li{counter-increment:li}
.text ol>li::before{
  content:counter(li) ".";position:absolute;left:0;top:0;color:var(--rot);font-weight:700;
}
.text a{color:var(--blau);font-weight:500}
.text strong{color:var(--nacht)}
.text img{border-radius:14px;margin:32px 0}
.text figure{margin:32px 0}
.text figure img{margin:0}
.text figcaption{font-size:.88rem;color:var(--muted);margin-top:10px}

/* Hinweiskasten */
.kasten{background:var(--hell-2);border-left:4px solid var(--rot);border-radius:0 12px 12px 0;padding:26px 30px;margin:32px 0}
.kasten h4{margin-bottom:8px}
.kasten p:last-child{margin-bottom:0}
.kasten--dunkel{background:var(--nacht);color:#fff;border-radius:14px;border-left:0}
.kasten--dunkel h4{color:#fff}
.kasten--dunkel p{opacity:.85}

/* Zwei Spalten: Text + Bild */
.zweispalt{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.zweispalt--bild-links{direction:rtl}
.zweispalt--bild-links>*{direction:ltr}
.zweispalt img{border-radius:14px;aspect-ratio:4/3;object-fit:cover;width:100%}
.zweispalt p{color:#2C3140;margin-bottom:15px}
.abschnitt--dunkel .zweispalt p{color:#fff}

.merkliste{list-style:none;margin-top:28px}
.merkliste li{padding:18px 0;border-top:1px solid var(--linie);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline}
.merkliste li:last-child{border-bottom:1px solid var(--linie)}
.merkliste b{color:var(--rot);font-size:.88rem;letter-spacing:.06em}
.merkliste span{font-size:.99rem;color:#2C3140}
.abschnitt--dunkel .merkliste li{border-color:rgba(255,255,255,.15)}
.abschnitt--dunkel .merkliste span{color:#fff;opacity:.85}

/* ============================================================
   ANGEBOTS-KARTEN
   ============================================================ */
.karten{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.karte{
  background:var(--hell-2);border-radius:14px;padding:34px 32px;text-decoration:none;
  display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;transition:background .16s;
}
.karte:hover{background:var(--hell-3)}
.karte--weit{grid-column:1/-1}
.karte__nr{
  width:46px;height:46px;border-radius:12px;background:var(--nacht);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;flex-shrink:0;
}
.karte__para{display:block;font-size:.77rem;letter-spacing:.07em;text-transform:uppercase;color:var(--blau-hell);font-weight:700;margin-bottom:10px}
.karte h3{font-size:1.22rem;margin-bottom:7px}
.karte p{font-size:.96rem;color:var(--muted);line-height:1.62}

/* ============================================================
   BILD-KACHELN
   ============================================================ */
.kacheln{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.kachel{border-radius:14px;overflow:hidden;position:relative;aspect-ratio:3/4;display:block;text-decoration:none}
.kachel img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.kachel:hover img{transform:scale(1.05)}
.kachel__text{position:absolute;inset:auto 0 0 0;padding:24px 22px;background:linear-gradient(180deg,transparent,rgba(19,27,51,.93));color:#fff}
.kachel__text h4{color:#fff;font-size:1.06rem;margin-bottom:4px}
.kachel__text p{font-size:.86rem;opacity:.84;line-height:1.5}

/* ============================================================
   ZITAT
   ============================================================ */
.zitat{max-width:900px;margin:0 auto;text-align:center}
.zitat p{font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.38;letter-spacing:-.022em;color:var(--nacht);font-weight:600;margin-bottom:24px}
.zitat cite{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-style:normal}

/* ============================================================
   KONTAKT
   ============================================================ */
.kontakt-raster{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:start}
.k-raster{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.k-box{border:1px solid var(--linie);border-radius:14px;padding:24px 26px}
.k-box b{display:block;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rot);margin-bottom:10px}
.k-box span,.k-box p{display:block;color:var(--muted);font-size:.95rem;line-height:1.65}
.k-box a{color:var(--nacht);font-weight:500}

/* Formular */
.formular{display:grid;gap:18px}
.feld{display:grid;gap:7px}
.feld label{font-size:.9rem;font-weight:600;color:var(--nacht)}
.feld label .pflicht{color:var(--rot)}
.feld input,.feld select,.feld textarea{
  font-family:inherit;font-size:1rem;padding:13px 15px;border:1.5px solid var(--linie);
  border-radius:9px;background:#fff;color:var(--text);width:100%;
}
.feld input:focus,.feld select:focus,.feld textarea:focus{border-color:var(--blau-hell);outline:none;box-shadow:0 0 0 3px rgba(90,114,214,.16)}
.feld textarea{min-height:150px;resize:vertical}
.feld--zwei{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.zustimmung{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;font-size:.9rem;color:var(--muted);line-height:1.55}
.zustimmung input{width:19px;height:19px;margin-top:3px;accent-color:var(--rot)}
.zustimmung a{color:var(--blau)}
.hinweis-klein{font-size:.85rem;color:var(--muted)}

/* ============================================================
   FUSSBEREICH
   ============================================================ */
.fuss{background:var(--nacht);color:rgba(255,255,255,.72);padding:66px 0 30px;font-size:.92rem}
.fuss__raster{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:44px;padding-bottom:42px;border-bottom:1px solid rgba(255,255,255,.14)}
.fuss h5{color:#fff;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;margin-bottom:18px}
.fuss ul{list-style:none}
.fuss li{margin-bottom:9px}
.fuss a{text-decoration:none}
.fuss a:hover{color:#fff;text-decoration:underline}
.fuss__marke{display:flex;gap:14px;margin-bottom:16px;align-items:flex-start}
.fuss__marke img{width:48px;height:auto;flex-shrink:0;background:#fff;border-radius:10px;padding:4px}
.fuss__marke b{color:#fff;display:block;font-size:1.02rem}
.fuss__unten{padding-top:26px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.86rem;opacity:.7}

/* ============================================================
   RESPONSIV
   ============================================================ */
@media(max-width:1000px){
  .karten,.zweispalt,.kontakt-raster,.k-raster{grid-template-columns:1fr;gap:38px}
  .k-raster{gap:16px}
  .zweispalt--bild-links{direction:ltr}
  .zweispalt--bild-links img{order:-1}
  .kacheln{grid-template-columns:1fr 1fr}
  .zahlen .wrap{grid-template-columns:1fr 1fr}
  .zahl{border-bottom:1px solid rgba(255,255,255,.12)}
  .zahl:nth-child(2n){border-right:0}
  .fuss__raster{grid-template-columns:1fr 1fr}
  .hero{min-height:520px}
  .hero .wrap{padding-top:calc(var(--kopf) + 40px);padding-bottom:52px}

  /* Mobile Navigation */
  .menue-schalter{display:block}
  .nav{
    position:fixed;inset:var(--kopf) 0 0 0;background:#fff;padding:24px 30px 40px;
    overflow-y:auto;display:none;z-index:70;
  }
  .nav[data-offen="true"]{display:block}
  .nav>ul{flex-direction:column;align-items:stretch;gap:2px}
  .nav>ul>li>a{color:var(--text)!important;font-size:1.08rem;font-weight:600;padding:14px 12px;border-radius:10px}
  .nav>ul>li>a:hover{background:var(--hell-2)!important}
  .hat-sub>a::after{float:right;margin-top:9px}
  .sub{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    padding:2px 0 10px 12px;min-width:0;border-left:2px solid var(--linie);margin:2px 0 8px 12px;
  }
  .kopf{position:sticky;background:#fff;border-bottom:1px solid var(--linie)}
  .kopf .marke{color:var(--nacht)!important}
  .kopf .marke b{color:var(--nacht)}
  .kopf .marke span{color:var(--muted);opacity:1}
  .kopf .menue-schalter{color:var(--nacht)}
  .kopf__cta{display:none}
  .hero .wrap{padding-top:56px}
}

@media(max-width:620px){
  .wrap{padding:0 22px}
  .kacheln,.fuss__raster,.feld--zwei{grid-template-columns:1fr}
  .abschnitt{padding:58px 0}
  .abschnitt--schmal{padding:44px 0}
  .seitenkopf{padding:44px 0 48px}
  .karte{padding:26px 24px;gap:16px}
  .zahl{padding:26px 18px}
  .zahl b{font-size:2.1rem}
  .kicker{font-size:.72rem;letter-spacing:.05em;padding:6px 13px}
  .hero__lead{font-size:1.06rem}
  .marke b{font-size:.94rem}
  .marke span{font-size:.7rem}
  .text ul[style*="columns"]{columns:1 !important}
  .zweispalt,.kontakt-raster{gap:30px}
}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

@media print{
  .kopf,.fuss,.knopf,.menue-schalter{display:none}
  body{color:#000}
  .hero,.seitenkopf,.abschnitt--dunkel{background:#fff!important;color:#000!important}
}
