  @font-face{ font-family:"Filson Pro"; font-weight:400; font-style:normal; font-display:swap;
    src:url("../assets/fonts/filsonpro-book-webfont.woff2") format("woff2"); }
  @font-face{ font-family:"Filson Pro"; font-weight:600; font-style:normal; font-display:swap;
    src:url("../assets/fonts/filsonpro-medium-webfont.woff2") format("woff2"); }
  :root{ --gap:50px; --hdr:86px; }
  *{box-sizing:border-box; margin:0; padding:0}
  html{scroll-behavior:smooth}
  body{background:#FFFAE5; font-family:"Filson Pro","Segoe UI",Helvetica,Arial,sans-serif;}

  .site-header{ position:fixed; left:0; right:0; top:0; z-index:200; background:transparent; }
  .site-header a, .mobile-menu a{ text-decoration:none; }
  .hdr-inner{ display:flex; align-items:center; gap:1rem; padding:.8rem clamp(1.5rem,4vw,3rem); }
  .hdr-logo img{ height:72px; width:auto; display:block; }

  .hdr-nav{ flex:1; display:flex; justify-content:center; align-items:center; gap:clamp(1.2rem,2.4vw,2.3rem); }
  .hdr-link{ display:inline-flex; align-items:center; gap:.5rem; font-weight:600; font-size:1.08rem;
    color:#151515; white-space:nowrap; text-decoration:none; }
  .hdr-link .caret{ width:.85rem; height:.85rem; }
  .hdr-link .search-ic{ width:1.2rem; height:1.2rem; color:#EE6A4D; }

  .hdr-cta{ display:inline-flex; align-items:center; gap:.6rem; background:#FCDD51; color:#151515;
    font-weight:600; font-size:1.08rem; padding:.85rem 1.5rem; border-radius:999px; white-space:nowrap;
    transition:background .2s ease, transform .2s ease; }
  .hdr-cta:hover{ background:#F5C900; transform:translateY(-1px); }
  .hdr-cta svg{ width:22px; height:22px; }

  .hdr-burger{ display:none; width:46px; height:46px; border-radius:50%; border:none; cursor:pointer;
    background:rgba(21,21,21,.06); color:#151515; align-items:center; justify-content:center; }
  .hdr-burger svg{ width:22px; height:22px; }

  @media(max-width:1000px){
    .hdr-nav{ display:none; }
    .hdr-cta{ display:none; }
    .hdr-burger{ display:flex; }
  }

  .mobile-menu{ position:fixed; inset:0; z-index:250; background:#FFFAE5;
    padding:5.5rem clamp(1.5rem,6vw,3rem) 2rem; pointer-events:none; opacity:0;
    transform:translateY(-12px); transition:opacity .3s ease, transform .3s ease; }
  .mobile-menu.open{ pointer-events:auto; opacity:1; transform:none; }
  .mobile-menu a{ display:block; padding:1rem 0; font-size:1.5rem; font-weight:600; color:#151515;
    border-bottom:1px solid rgba(21,21,21,.1); }
  .mobile-close{ position:absolute; top:1.2rem; right:clamp(1.25rem,4vw,2.5rem);
    width:44px; height:44px; border-radius:50%; border:none; background:rgba(21,21,21,.06);
    cursor:pointer; font-size:1.5rem; color:#151515; display:flex; align-items:center; justify-content:center; }

  .stage{ height:340vh; position:relative; }
  .stage .sticky{ position:sticky; top:0; height:100vh; overflow:hidden; }

  .frame{ position:absolute; inset:var(--hdr) var(--gap) var(--gap) var(--gap);
    border-radius:120px 120px 120px 40px; overflow:hidden; }
  .frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
  .frame .caption{ position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:space-between;
    gap:1.5rem; pointer-events:none; padding:clamp(2rem,6vw,5.5rem);
    background:linear-gradient(180deg, rgba(21,21,21,0) 45%, rgba(21,21,21,.45) 100%); }

  .frame .hero-cap{ margin:0; color:#fff; font-weight:600; letter-spacing:-.03em; line-height:1.04;
    font-size:clamp(2.2rem,5.2vw,4.6rem); text-shadow:0 2px 30px rgba(0,0,0,.28); }

  .pill{ display:inline-block; vertical-align:middle; margin-left:1rem;
    background:#FCDD51; color:#151515; font-weight:600; font-size:clamp(1.15rem,1.5vw,1.5rem);
    padding:.8rem 1.6rem; border-radius:999px; line-height:1; white-space:nowrap;
    text-shadow:none; letter-spacing:normal; }

  .dots{ flex:none; display:inline-flex; align-items:center; gap:.55rem; margin-bottom:.9rem; }
  .dots i{ width:.7rem; height:.7rem; border-radius:50%; box-sizing:border-box;
    border:2px solid rgba(255,255,255,.9); }
  .dots i.on{ background:#FCDD51; border-color:#FCDD51; }

  .base   { z-index:0; }
  .layer  { clip-path:inset(0 0 100% 0); will-change:clip-path; }
  .l-two  { z-index:1; }
  .l-three{ z-index:2; }

  @media(max-width:640px){
    :root{ --gap:20px; }

    .frame{ border-radius:60px 60px 60px 24px;
      inset:var(--hdr) var(--gap) calc(62px + var(--gap)) var(--gap); }
    .frame .caption{ padding:clamp(1.4rem,7vw,2.2rem); }
    .frame .hero-cap{ font-size:clamp(2.6rem,10vw,3.8rem); max-width:14ch; }

    .pill{ display:block; margin-left:0; margin-top:1.1rem; width:fit-content; font-size:1.2rem; }
  }

  .statement{ background:#FFFAE5; text-align:center;
    padding:clamp(5rem,13vw,11rem) clamp(1.5rem,5vw,3rem); }
  .statement .wrap{ max-width:900px; margin:0 auto; }
  .statement h2, .statement h1{ color:#151515; font-weight:600; letter-spacing:-.03em; line-height:1.06;
    font-size:clamp(2rem,4.6vw,3.4rem); }
  .statement h2.oneline, .statement h1.oneline{ white-space:nowrap; font-size:clamp(1.5rem,3.3vw,3rem); }
  @media(max-width:720px){ .statement h2.oneline, .statement h1.oneline{ white-space:normal; font-size:clamp(1.9rem,7vw,2.4rem); } }
  .statement p{ color:#4A4742; margin:1.6rem auto 0; max-width:56ch;
    font-size:clamp(1.15rem,1.7vw,1.5rem); line-height:1.55; }

  .reg{ font-size:.6em; vertical-align:super; line-height:0; }

  .brush{ white-space:nowrap; padding:0 .35em .1em; margin:0 -.22em;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 44' preserveAspectRatio='none'%3E%3Cpath d='M16 22 C16 13 23 10 36 11 C130 16 185 7 268 11 C285 12 290 15 290 22 C290 31 283 34 267 33 C180 28 120 37 36 33 C22 32 16 31 16 22 Z' fill='%23FCDD51'/%3E%3C/svg%3E") no-repeat;
    background-position:center 92%; background-size:100% .72em;
    -webkit-box-decoration-break:clone; box-decoration-break:clone; }

  .gallery{ background:#FFFAE5; padding-block:clamp(1rem,3vw,2rem) clamp(4rem,8vw,7rem); }
  .gal-viewport{ overflow-x:auto; cursor:grab;
    scrollbar-width:none; -ms-overflow-style:none; }
  .gal-viewport::-webkit-scrollbar{ display:none; }
  .gal-viewport.dragging{ cursor:grabbing; }
  .gal-track{ display:flex; gap:1.6rem; padding-inline:clamp(1.25rem,4vw,3rem); width:max-content; }

  .tile{ position:relative; flex:0 0 clamp(380px,42vw,620px); aspect-ratio:4/3.4;
    scroll-snap-align:center; border-radius:32px; overflow:hidden; display:block; text-decoration:none;
    background:linear-gradient(150deg,var(--tc1,#FFAE90),var(--tc2,#FF8559)); }
  .tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; -webkit-user-drag:none; }

  .tile .cap{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
    padding:2rem;
    background:linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.34) 45%, rgba(0,0,0,.6) 100%); }
  .tile .eyebrow{ display:inline-block; align-self:flex-start; background:#151515; color:#fff;
    font-size:.82rem; font-weight:600; letter-spacing:.02em; padding:.35rem .8rem; border-radius:999px; margin-bottom:1rem; }
  .tile h3{ color:#fff; font-weight:600; letter-spacing:-.02em; line-height:1.1; font-size:1.85rem;
    text-shadow:0 2px 18px rgba(0,0,0,.28); }
  .tile p{ color:rgba(255,255,255,.92); font-size:1.32rem; line-height:1.4; margin-top:.75rem;
    text-shadow:0 1px 12px rgba(0,0,0,.28); }

  .gal-nav{ display:flex; justify-content:center; gap:.7rem;
    padding-inline:clamp(1.25rem,4vw,3rem); margin-top:1.6rem; }
  .gal-btn{ width:46px; height:46px; border-radius:50%; border:none; cursor:pointer;
    background:#FCDD51; color:#151515; font-size:1.3rem; line-height:1;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s ease, opacity .2s ease; }
  .gal-btn:hover{ background:#F5C900; }
  .gal-btn:disabled{ opacity:.3; cursor:default; }
  @media(max-width:640px){ .tile{ flex-basis:78vw; } }

  .anfang{ background:#FFFAE5; padding:clamp(1.5rem,3vw,2.5rem) var(--gap) clamp(4rem,8vw,7rem); }
  .anfang-inner{ position:relative; overflow:hidden; background:#FCDD51;
    border-radius:clamp(32px,4vw,64px); padding:clamp(2.4rem,5.5vw,5rem) clamp(1.8rem,5vw,5rem) clamp(3rem,6vw,5rem); }

  .anfang-inner::before{ content:""; position:absolute; inset:0; pointer-events:none;
    background:radial-gradient(640px 440px at 72% -5%, rgba(255,255,255,.55), rgba(255,255,255,0) 70%); }
  .anfang-inner > *{ position:relative; z-index:1; }

  .anfang-head{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(1.5rem,5vw,4rem);
    align-items:start; margin-bottom:clamp(2.4rem,5vw,3.6rem); }
  .anfang-head h2{ color:#151515; font-weight:600; letter-spacing:-.03em; line-height:1.03;
    font-size:clamp(2rem,4.6vw,3.5rem); }
  .anfang-head h2 .coral{ color:#EE6A4D; }
  .anfang-head p{ color:#151515; font-weight:600; line-height:1.45; align-self:center;
    font-size:clamp(1.1rem,1.6vw,1.4rem); max-width:42ch; }

  .feel-row{ display:flex; gap:1.2rem; overflow-x:auto; cursor:grab;
    padding-bottom:.4rem; scrollbar-width:none; -ms-overflow-style:none; }
  .feel-row.dragging{ cursor:grabbing; }
  .feel-row::-webkit-scrollbar{ display:none; }
  .feel-card{ flex:0 0 clamp(260px,24vw,340px); scroll-snap-align:start;
    background:#fff; border-radius:30px 30px 30px 8px; padding:2rem; }
  .feel-card h3{ color:#151515; font-weight:600; letter-spacing:-.01em; line-height:1.15;
    font-size:1.5rem; margin-bottom:1rem; }
  .feel-card p{ color:#4A4742; font-size:1.18rem; line-height:1.45; }

  .feel-nav{ display:flex; justify-content:center; gap:.7rem; margin-top:1.4rem; }
  .feel-nav .gal-btn{ background:#fff; }
  .feel-nav .gal-btn:hover{ background:#f0efe9; }

  .anfang-close{ text-align:center; color:#151515; font-weight:600; line-height:1.3;
    font-size:clamp(1.4rem,2.7vw,2.2rem); margin:clamp(2.4rem,5vw,3.6rem) auto 0; max-width:22ch; }
  .anfang-close .coral{ color:#EE6A4D; }

  @media(max-width:760px){
    .anfang-head{ grid-template-columns:1fr; gap:1.2rem; }
    .feel-card{ flex-basis:78vw; }
  }

  .stack{ background:#FFFAE5; padding:clamp(3rem,6vw,5rem) var(--gap) clamp(5rem,10vw,8rem); }
  .stack-inner{ max-width:1200px; margin:0 auto; display:flex; flex-direction:column; gap:6vh; }

  .stack-spacer{ flex:none; height:62vh; }

  .scard{ position:sticky; top:12vh;
    min-height:62vh; border-radius:120px 120px 120px 40px; overflow:hidden;
    display:grid; grid-template-columns:1.05fr 1fr; background:#fff;
    box-shadow:0 24px 70px rgba(21,21,21,.14);
    transform-origin:center top; will-change:transform; }
  .scard .txt{ align-self:center; padding:clamp(2rem,4vw,4rem); }
  .scard .eyebrow{ display:inline-block; font-size:.85rem; font-weight:600; letter-spacing:.04em;
    text-transform:uppercase; color:#EE6A4D; margin-bottom:1rem; }
  .scard h3{ color:#151515; font-weight:600; letter-spacing:-.025em; line-height:1.05;
    font-size:clamp(1.8rem,3.4vw,2.8rem); }
  .scard p{ color:#4A4742; margin-top:1.1rem; font-size:clamp(1.05rem,1.4vw,1.3rem); line-height:1.5; max-width:44ch; }
  .scard .pic{ position:relative; min-height:300px; }
  .scard .pic img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  @media(max-width:760px){
    .scard{ grid-template-columns:1fr; min-height:auto; top:8vh; border-radius:60px 60px 60px 24px; }
    .scard .pic{ order:-1; height:44vw; min-height:220px; }
  }

  .steps{ background:#FFFAE5; text-align:center;
    padding:clamp(4rem,8vw,7rem) var(--gap); }
  .steps .kick{ display:inline-block; background:#FFE7DE; color:#151515;
    font-weight:600; font-size:.9rem; letter-spacing:.02em;
    padding:.55rem 1.3rem; border-radius:999px; margin-bottom:1.6rem; }
  .steps h2{ color:#151515; font-weight:600; letter-spacing:-.03em; line-height:1.04;
    font-size:clamp(2.2rem,5vw,3.8rem); }
  .step-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
    max-width:1200px; margin:clamp(2.6rem,5vw,4rem) auto 0; text-align:left; }
  .step{ background:#FFE7DE; border-radius:28px; padding:clamp(1.8rem,2.5vw,2.4rem); }
  .step .num{ width:3rem; height:3rem; border-radius:50%; background:#FCDD51; color:#151515;
    font-weight:600; font-size:1.4rem; display:flex; align-items:center; justify-content:center; margin-bottom:1.4rem; }
  .step h3{ color:#151515; font-weight:600; letter-spacing:-.01em; font-size:1.5rem; margin-bottom:.8rem; }
  .step p{ color:#4A4742; font-size:1.12rem; line-height:1.45; }
  @media(max-width:760px){ .step-grid{ grid-template-columns:1fr; } }

  .facts{ background:#FFFAE5; padding:clamp(3rem,6vw,5rem) var(--gap) clamp(5rem,10vw,8rem); }
  .facts-inner{ max-width:1080px; margin:0 auto; }
  .facts h2{ color:#151515; font-weight:600; letter-spacing:-.02em; line-height:1.05;
    font-size:clamp(1.8rem,3.6vw,2.8rem); margin-bottom:1.8rem; text-align:center; }
  .facts-box{ background:#F4F2EB; border-radius:32px;
    padding:clamp(1rem,3vw,2rem) clamp(1.5rem,4vw,3.5rem);
    display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(2rem,4vw,3.5rem); }
  @media(max-width:640px){ .facts-box{ grid-template-columns:1fr; } }

  .fact{ display:grid; grid-template-columns:6.4em 1fr; column-gap:.5rem; align-items:baseline;
    padding:.85rem 0; border-bottom:1px solid rgba(21,21,21,.09);
    color:#4A4742; font-size:clamp(.98rem,1.2vw,1.12rem); line-height:1.4; }
  .fact:last-child{ border-bottom:none; }
  .fact strong{ color:#151515; font-weight:600; white-space:nowrap; }
  .fact strong::after{ content:":"; }
  .cta-btn{ display:flex; width:fit-content; align-items:center; gap:.7rem; margin:2.8rem auto 0;
    background:#FCDD51; color:#151515; font-weight:600; font-size:clamp(1.2rem,1.8vw,1.5rem);
    white-space:nowrap; padding:1.3rem 2.8rem; border-radius:999px; text-decoration:none;
    transition:background .2s ease, transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s ease; }
  .cta-btn:hover{ background:#F5C900; transform:translateY(-2px); box-shadow:0 12px 26px rgba(245,201,0,.4); }
  .cta-btn .arr{ transition:transform .25s ease; }
  .cta-btn:hover .arr{ transform:translateX(4px); }

  @media(max-width:640px){ .cta-btn{ font-size:.98rem; padding:1.05rem 1.4rem; gap:.5rem; } }

  .kurssuche-fab{ position:fixed; right:clamp(1rem,3vw,2rem); bottom:clamp(1rem,3vw,2rem); z-index:300;
    display:inline-flex; align-items:center; gap:.6rem; background:#FCDD51; color:#151515;
    font-weight:600; font-size:1.05rem; padding:1rem 1.6rem; border:none; cursor:pointer;
    border-radius:999px; box-shadow:0 12px 30px rgba(21,21,21,.2);
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease; }
  .kurssuche-fab:hover{ background:#F5C900; transform:translateY(-2px); box-shadow:0 16px 38px rgba(21,21,21,.26); }
  .kurssuche-fab svg{ width:22px; height:22px; }

  .kurssuche-pop{ position:fixed; margin:0; inset:auto clamp(1rem,3vw,2rem) calc(clamp(1rem,3vw,2rem) + 70px) auto;
    width:min(380px,92vw); background:#fff; border:none; border-radius:24px; padding:1.8rem 1.8rem 1.6rem;
    box-shadow:0 24px 60px rgba(21,21,21,.24); }
  .kurssuche-pop:popover-open{ animation:popIn .25s cubic-bezier(.22,1,.36,1); }
  @keyframes popIn{ from{ opacity:0; transform:translateY(14px) scale(.98); } to{ opacity:1; transform:none; } }
  .kurssuche-pop::backdrop{ background:rgba(21,21,21,.18); }
  .pop-close{ position:absolute; top:1rem; right:1rem; width:34px; height:34px; border:none; cursor:pointer;
    background:rgba(21,21,21,.06); border-radius:50%; font-size:1.25rem; line-height:1; color:#151515; }
  .pop-close:hover{ background:rgba(21,21,21,.12); }
  .kurssuche-pop h3{ font-size:1.4rem; color:#151515; letter-spacing:-.01em; margin-bottom:1.1rem; max-width:15ch; }
  .pop-form{ display:flex; gap:.4rem; background:#F4F2EB; border-radius:999px; padding:.4rem .4rem .4rem 1.2rem; }
  .pop-form input{ flex:1; min-width:0; border:none; background:transparent; font-family:inherit;
    font-size:1rem; outline:none; color:#151515; }
  .pop-form input::placeholder{ color:#8A857C; }
  .pop-go{ border:none; cursor:pointer; background:#FCDD51; color:#151515; font-weight:600;
    border-radius:999px; padding:.7rem 1.3rem; transition:background .2s ease; }
  .pop-go:hover{ background:#F5C900; }
  .pop-note{ margin-top:.9rem; font-size:.86rem; color:#8A857C; line-height:1.4; }

  @media(max-width:640px){
    .kurssuche-fab{ display:flex; left:0; right:0; bottom:0; border-radius:0;
      justify-content:center; padding:1.15rem; font-size:1.12rem;
      box-shadow:0 -6px 24px rgba(21,21,21,.15); }
    .kurssuche-pop{ inset:auto .8rem calc(62px + .8rem) .8rem; width:auto; }

    body{ padding-bottom:62px; }
  }

  .faq{ background:#FFFAE5; padding:clamp(4rem,8vw,7rem) var(--gap); }
  .faq-grid{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:.48fr 1fr;
    gap:clamp(2rem,4vw,3rem); align-items:start; }
  .faq-head .kicker{ display:inline-block; background:#FFE7DE; color:#151515; font-weight:600;
    font-size:.9rem; padding:.5rem 1.2rem; border-radius:999px; margin-bottom:1.4rem; }
  .faq-head h2{ color:#151515; font-weight:600; letter-spacing:-.02em; line-height:1.05;
    font-size:clamp(2rem,4vw,3.1rem); }
  .faq-intro{ margin-top:1.2rem; color:#8A857C; font-size:1.05rem; line-height:1.5; max-width:32ch; }

  .faq-tabs{ display:flex; gap:.4rem; background:#fff; padding:.4rem; border-radius:999px; margin-bottom:1.1rem;
    box-shadow:0 4px 20px rgba(21,21,21,.04); }
  .faq-tab{ flex:1; border:none; cursor:pointer; font-family:inherit; font-weight:600; font-size:1.02rem;
    color:#8A857C; background:transparent; padding:.9rem 1rem; border-radius:999px; white-space:nowrap;
    transition:background .2s ease, color .2s ease; }
  .faq-tab:hover{ color:#151515; }
  .faq-tab[aria-selected="true"]{ background:#FCDD51; color:#151515; }
  .faq-list[hidden]{ display:none; }

  .faq-group{ font-size:1.1rem; font-weight:600; color:#151515; letter-spacing:-.01em;
    margin:1.8rem 0 .9rem; }
  .faq-list > .faq-group:first-child{ margin-top:0; }
  .faq-item{ background:#fff; border-radius:22px; margin-bottom:.7rem; overflow:hidden;
    box-shadow:0 4px 20px rgba(21,21,21,.04); transition:background .2s ease; }
  .faq-item.open{ background:#FFF5CC; }
  .faq-q{ width:100%; text-align:left; background:none; border:none; cursor:pointer; font-family:inherit;
    padding:1.35rem 1.6rem; font-size:1.15rem; font-weight:600; color:#151515;
    display:flex; justify-content:space-between; gap:1.2rem; align-items:center; }
  .faq-q .sg{ flex:none; width:2.3rem; height:2.3rem; border-radius:50%; background:#FCDD51; color:#151515;
    display:flex; align-items:center; justify-content:center; font-size:1.5rem; line-height:1;
    transition:transform .3s ease; }
  .faq-item.open .sg{ transform:rotate(45deg); }
  .faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
  .faq-a p{ padding:0 1.6rem 1.5rem; color:#4A4742; line-height:1.55; max-width:60ch; }
  @media(max-width:820px){ .faq-grid{ grid-template-columns:1fr; } }
  @media(max-width:460px){ .faq-tabs{ flex-direction:column; } }

  .foerderung{ background:#fff; text-align:center;
    padding:clamp(3rem,6vw,5rem) var(--gap) clamp(4rem,7vw,6rem); }
  .foerderung .label{ font-size:1rem; font-weight:600; color:#4A4742; margin-bottom:1.2rem; }
  .foerderung img{ height:135px; width:auto; max-width:100%; display:inline-block; }
  .foerderung .disclaimer{ margin:1.8rem auto 0; max-width:64ch;
    font-size:.85rem; color:#8A857C; line-height:1.55; }
  @media(max-width:360px){ .foerderung img{ height:auto; width:min(277px,82vw); } }

  .reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
  .reveal.in{ opacity:1; transform:none; }
  @media(prefers-reduced-motion:reduce){ .reveal{opacity:1; transform:none;} }

  @media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
