﻿  :root {
    --beige:     #F5F0E8;
    --beige-mid: #EDE5D4;
    --beige-dark:#D6C9B0;
    --brown:     #6B5744;
    --brown-dark:#3D2E20;
    --brown-deep:#4A3526;
    --terra:     #B14228;
    --green:     #4A5E4A;
    --text:      #2C2018;
    --muted:     #8A7260;
    --white:     #FDFAF5;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  body { font-family:'Jost',sans-serif; background:var(--beige); color:var(--text); font-weight:300; }

  /* NAV */
  nav {
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; justify-content:space-between; align-items:center; gap:2rem;
    padding:1.2rem 3rem;
    background:rgba(245,240,232,0.95);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--beige-dark);
    transition:transform 0.35s ease;
  }
  nav.nav-hidden { transform:translateY(-100%); }
  .nav-logo {
    font-family:'Cormorant Garamond',serif;
    font-size:1.6rem; font-weight:300; font-style:normal;
    text-transform:none; letter-spacing:0.08em;
    color:var(--brown-dark);
    cursor:pointer; flex-shrink:0; white-space:nowrap; margin-right:1rem;
  }
  .nav-links { display:flex; gap:2rem; align-items:center; }
  .nav-links a {
    font-size:0.76rem; letter-spacing:0.13em;
    text-transform:uppercase; color:var(--muted);
    text-decoration:none; cursor:pointer;
    transition:color 0.2s; border:none; background:none;
    font-family:'Jost',sans-serif; font-weight:300;
    padding:0; white-space:nowrap;
  }
  .nav-links a:hover, .nav-links a.active { color:var(--brown-dark); }
  .lang-toggle { font-size:0.72rem; letter-spacing:0.1em; color:var(--muted); user-select:none; }
  .lang-toggle [data-lang] { cursor:pointer; padding:0 0.25rem; transition:color 0.2s; }
  .lang-toggle [data-lang]:hover { color:var(--brown-dark); }
  .lang-toggle [data-lang].active { color:var(--brown-dark); font-weight:500; }
  .lang-toggle .sep { color:var(--beige-dark); }

  /* PAGES */
  .page { display:none; min-height:100vh; padding-top:80px; }
  .page.active { display:block; }

  /* HERO */
  .hero {
    min-height:100vh; display:flex; flex-direction:column;
    justify-content:center; align-items:center; text-align:center;
    padding:8rem 2rem 4rem;
    background:
      radial-gradient(ellipse at 20% 50%, rgba(180,160,130,0.15) 0%, transparent 60%),
      radial-gradient(ellipse at 80% 20%, rgba(74,94,74,0.08) 0%, transparent 50%),
      var(--beige);
  }
  .hero-eyebrow {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(1.4rem,3vw,2.2rem); font-weight:300; font-style:italic;
    letter-spacing:0.3em; color:var(--brown); margin-bottom:1.2rem;
  }
  .hero-tagline {
    display:inline-block;
    background: var(--brown-dark);
    color: var(--beige);
    font-family:'Cormorant Garamond',serif;
    font-size:0.95rem; font-style:italic; font-weight:300;
    letter-spacing:0.12em;
    padding:0.45rem 1.5rem;
    margin: 0 0 2rem;
  }
  .hero h1 {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(3.5rem,8vw,7rem); font-weight:300;
    line-height:1.05; color:var(--brown-dark); letter-spacing:0.02em;
  }
  .hero h1 em { font-style:italic; color:var(--brown); }
  .hero-cta-boxes { display:flex; gap:1rem; margin-top:1.4rem; flex-wrap:wrap; justify-content:center; }
  .cta-box {
    font-family:'Jost',sans-serif; font-size:0.75rem;
    letter-spacing:0.18em; text-transform:uppercase;
    padding:0.7rem 1.6rem; background:transparent;
    border:1px solid var(--brown); color:var(--brown);
    cursor:pointer; transition:all 0.2s;
  }
  .cta-box:hover { background:var(--brown); color:var(--beige); }
  .format-sub { display:block; font-size:0.68rem; color:var(--muted); margin-top:0.3rem; font-style:italic; letter-spacing:0.04em; }
  .hero-divider {
    width:1px; height:60px;
    background:var(--beige-dark); margin:3rem auto 0;
  }
  .btn {
    display:inline-block; padding:0.9rem 2.5rem;
    font-family:'Jost',sans-serif; font-size:0.78rem;
    font-weight:400; letter-spacing:0.15em; text-transform:uppercase;
    text-decoration:none; border:1px solid var(--brown);
    color:var(--brown-dark); background:transparent;
    cursor:pointer; transition:all 0.25s ease; margin-top:2rem;
  }
  .btn:hover { background:var(--brown-dark); color:var(--white); border-color:var(--brown-dark); }

  /* ── NEUE STARTSEITE ── */
  #page-home { padding:0; min-height:100vh; position:relative; }
  .home-bg {
    position:fixed; inset:0; z-index:-1;
    background:url('../Hintergrund.jpeg') center/cover no-repeat;
  }
  .home-hero {
    min-height:100vh; padding:0;
    display:grid; grid-template-columns:minmax(420px,40%) 1fr;
    align-items:stretch;
  }
  .home-grid { display:contents; }
  .home-box {
    align-self:stretch;
    display:flex; flex-direction:column; justify-content:flex-start;
    background:linear-gradient(to right,
      rgba(230,204,162,0.66) 0%,
      rgba(230,204,162,0.62) 82%,
      rgba(230,204,162,0.5) 100%);
    padding:20vh 3.2rem 4rem 4vw;
    border:none; border-radius:0;
  }
  .hb-eyebrow {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2rem,3.6vw,3.4rem); font-weight:500;
    color:var(--brown-deep); letter-spacing:0.02em; line-height:1.12;
    margin:0 0 10rem;
    display:flex; justify-content:space-between; align-items:baseline; width:100%;
  }
  .hb-eyebrow em { font-style:italic; }
  .hb-eyebrow .hb-dot { font-style:normal; }
  .hb-divider { display:none; }
  .hb-title {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(1.55rem,2.6vw,2.4rem); font-weight:300;
    line-height:1.3; margin:0 0 1.4rem; letter-spacing:0;
  }
  .hb-title .t1 { color:var(--brown-dark); }
  .hb-title .t2 { color:var(--brown); font-style:italic; }
  .hb-title .t3 { color:var(--terra); font-style:italic; }
  .hb-sub {
    font-size:0.88rem; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--brown-dark); margin:0 0 1.8rem;
  }
  .hb-cta {
    align-self:flex-start;
    background:var(--brown-deep); color:var(--beige);
    border:none; padding:0.82rem 1.9rem;
    font-family:'Jost',sans-serif; font-size:0.84rem;
    letter-spacing:0.15em; text-transform:uppercase;
    cursor:pointer; border-radius:3em;
    transition:all 0.2s;
  }
  .hb-cta:hover { background:var(--brown); transform:translateX(2px); }

  .home-angebote { color:var(--beige); align-self:center; justify-self:end; text-align:right; max-width:440px; padding-right:4vw; }
  .ang-label { display:none; }
  .ang-mask {
    height:520px; overflow:hidden;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 18%, black 82%, transparent 100%);
    mask-image:linear-gradient(to bottom, transparent 0%, black 18%, black 82%, transparent 100%);
  }
  .ang-list {
    list-style:none; padding:0; margin:0;
    animation:angScroll 26s linear infinite;
  }
  .ang-list li {
    height:66px; display:flex; align-items:center; justify-content:flex-end;
    font-family:'Jost',sans-serif; font-size:1.4rem; font-weight:300;
    letter-spacing:0.24em; text-transform:uppercase;
    color:rgba(245,240,232,0.95);
    text-shadow:0 1px 4px rgba(60,40,20,0.45);
  }
  @keyframes angScroll {
    from { transform:translateY(0); }
    to   { transform:translateY(-50%); }
  }

  .home-upcoming {
    padding:5rem 4vw 6rem;
    color:var(--brown-dark);
    background:linear-gradient(180deg, rgba(245,240,232,0.66) 0%, rgba(245,240,232,0.9) 100%);
  }
  .up-head {
    display:flex; justify-content:space-between; align-items:baseline;
    max-width:1400px; margin:0 auto 1.5rem; padding:0 0 1.2rem;
    border-bottom:1px solid rgba(107,87,68,0.3);
  }
  .up-title {
    font-family:'Jost',sans-serif; font-size:0.85rem;
    letter-spacing:0.32em; text-transform:uppercase;
    color:var(--brown-dark); margin:0; font-weight:500;
  }
  .up-all {
    display:block; max-width:1400px; margin:1.6rem auto 0; text-align:left;
    font-family:'Jost',sans-serif; font-style:normal;
    font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--brown-dark); cursor:pointer;
    text-decoration:none; transition:color 0.2s;
  }
  .up-all em { font-style:normal; }
  .up-all:hover { color:var(--brown); }
  .up-chips { max-width:1400px; margin:0 auto 2.5rem; display:flex; gap:2.2rem; flex-wrap:wrap; }
  .up-chip {
    display:inline-flex; align-items:center; gap:0.55rem;
    font-family:'Jost',sans-serif; font-size:0.76rem; font-weight:300;
    letter-spacing:0.16em; text-transform:uppercase;
    color:var(--brown-dark);
  }
  .up-chip .up-chip-ic { color:var(--terra); flex-shrink:0; vertical-align:middle; }
  .up-list { list-style:none; padding:0; margin:0 auto; max-width:1400px; }
  .up-row {
    display:grid; align-items:center;
    grid-template-columns:50px 120px 150px 1fr 180px 110px;
    gap:1.5rem; padding:1.4rem 0;
    border-bottom:0.5px solid rgba(107,87,68,0.22);
    color:var(--brown-dark);
  }
  .up-row .ur-wd { font-size:0.82rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }
  .up-row .ur-date { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.55rem; color:var(--brown-dark); }
  .up-row .ur-time { font-family:'Jost',sans-serif; font-size:0.92rem; color:var(--brown); }
  .up-row .ur-name { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.55rem; color:var(--brown-dark); }
  .up-row .ur-loc { font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); }
  .up-row .ur-btn {
    background:transparent; border:1px solid var(--brown);
    color:var(--brown-dark); padding:0.55rem 1.4rem; cursor:pointer;
    font-family:'Jost',sans-serif; font-size:0.7rem; letter-spacing:0.2em;
    text-transform:uppercase; border-radius:3em; transition:all 0.2s;
  }
  .up-row .ur-btn:hover { background:var(--brown-deep); color:var(--beige); border-color:var(--brown-deep); }
  .up-donate {
    max-width:1400px; margin:2rem auto 0;
    padding-top:1.5rem; border-top:0.5px solid rgba(107,87,68,0.22);
    font-size:0.7rem; letter-spacing:0.22em; text-transform:uppercase;
    color:var(--terra);
  }

  /* Mobile-Lauftext (versteckt auf Desktop) */
  .home-mobile-ticker { display:none; }

  body.on-home nav {
    background:transparent;
    backdrop-filter:none; -webkit-backdrop-filter:none;
    border-bottom:1px solid transparent;
  }
  body.on-home nav .nav-links a,
  body.on-home nav .lang-toggle { text-shadow:0 1px 6px rgba(245,238,225,0.7); }
  body.on-home nav .nav-links { gap:2rem; }
  body.on-home nav .nav-links a { font-size:0.85rem; letter-spacing:0.13em; color:var(--brown-dark); }

  /* SECTIONS */
  .container { max-width:900px; margin:0 auto; padding:5rem 2rem; }
  .section-label {
    font-size:0.7rem; letter-spacing:0.25em;
    text-transform:uppercase; color:var(--green); margin-bottom:1rem;
  }
  .section-title {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2rem,4vw,3rem); font-weight:300;
    color:var(--brown-dark); line-height:1.2; margin-bottom:1.5rem;
  }
  .section-body {
    font-size:0.92rem; line-height:1.9; color:var(--muted); max-width:560px;
  }

  /* ABOUT */
  .about-grid {
    display:grid; grid-template-columns:1fr 1fr;
    gap:5rem; align-items:start;
  }
  .about-photo {
    width:100%; aspect-ratio:3/4;
    border-radius:2px; overflow:hidden;
  }
  .about-photo img { width:100%; height:100%; object-fit:cover; }
  .about-photo-wrap { display:flex; flex-direction:column; }
  .about-quote {
    font-family:'Cormorant Garamond',serif; font-style:italic;
    font-size:1.15rem; color:var(--brown-dark);
    text-align:center; line-height:2;
    margin:1.5rem 0 0; letter-spacing:0.04em;
  }

  /* CALENDAR */
  .cal-grid {
    display:grid; grid-template-columns:repeat(7,minmax(0,1fr));
    gap:2px; margin-top:1.5rem;
  }
  .cal-header {
    display:flex; justify-content:space-between; align-items:center;
    margin-bottom:1rem;
  }
  .cal-header h3 {
    font-family:'Cormorant Garamond',serif;
    font-size:1.4rem; font-weight:300; color:var(--brown-dark);
  }
  .cal-nav {
    background:none; border:1px solid var(--beige-dark);
    padding:0.4rem 0.8rem; cursor:pointer; color:var(--muted);
    font-size:0.9rem; transition:all 0.2s;
  }
  .cal-nav:hover { border-color:var(--brown); color:var(--brown-dark); }
  .cal-day-name {
    text-align:center; font-size:0.68rem; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--muted); padding:0.5rem 0;
  }
  .cal-day {
    height:144px; overflow:hidden; padding:0.6rem 0.7rem;
    background:var(--white); border:0.5px solid var(--beige-dark);
    position:relative; font-size:0.78rem; color:var(--muted);
  }
  .cal-grid.week-view .cal-day { height:auto; min-height:auto; }
  .cal-day .cal-course-dot { padding:0.25rem 0.45rem; margin-top:0.25rem; font-size:0.7rem; line-height:1.25; }
  .cal-day .cd-time { display:block; font-weight:500; color:var(--brown); white-space:nowrap; }
  .cal-day .cd-name { display:block; margin-top:0.1rem; }
  .cal-day .cal-course-dot.hl .cd-time, .cal-day .cal-course-dot.reg-high .cd-time { color:var(--beige); }
  .cal-day .cal-course-dot.reg-low { background:#E8D4B5; border-color:#C9A97A; color:var(--brown-dark); }
  .cal-day .cal-course-dot.reg-high { background:#A87F4F; border-color:#8A6638; color:var(--beige); }
  .cal-more {
    display:inline-block; margin-top:0.45rem; padding:0.22rem 0.7rem;
    font-size:0.82rem; font-weight:500; color:var(--brown-dark);
    background:var(--beige); border:1px solid var(--brown);
    cursor:pointer; letter-spacing:0.04em; border-radius:1em;
    transition:all 0.15s; text-decoration:none;
  }
  .cal-more:hover { background:var(--brown); color:var(--beige); }
  .cal-day.empty { background:transparent; border-color:transparent; }
  .cal-day.has-course {
    background:var(--white); cursor:pointer;
    border-color:var(--brown);
  }
  .cal-day.has-course:hover { background:var(--beige-mid); }
  .cal-day .day-num {
    font-size:0.78rem; color:var(--muted); margin-bottom:0.2rem;
  }
  .cal-day.has-course .day-num { color:var(--brown-dark); font-weight:500; }
  .cal-day.is-today .day-num-inner {
    display:inline-flex; align-items:center; justify-content:center;
    width:1.8em; height:1.8em; border-radius:50%;
    background:var(--brown); color:var(--beige);
    font-weight:500;
  }
  .cal-grid.week-view .cal-day.is-today .day-num-inner {
    width:auto; height:auto; padding:0.2rem 0.7rem; border-radius:1em;
  }
  .cal-course-dot {
    display:block; font-size:0.72rem; color:var(--brown-dark);
    letter-spacing:0.04em; line-height:1.35;
    padding:0.3rem 0.45rem; margin-top:0.3rem;
    background:var(--white); border:1px solid var(--beige-dark);
    cursor:pointer; transition:background 0.15s, border-color 0.15s;
    word-break:break-word;
  }
  .cal-course-dot:hover { background:var(--beige-mid); border-color:var(--brown); }
  .cal-course-dot.hl { background:#A87F4F; border-color:#8A6638; color:var(--beige); font-weight:500; }
  .cal-more { text-decoration:none; }
  .day-popup-row:last-child { border-bottom:none !important; }

  #page-kurse .container { max-width:1100px; }
  .cal-section { width:100%; }
  .cal-controls { display:flex; flex-direction:row; flex-wrap:wrap; justify-content:center; align-items:center; gap:1rem; margin:1.5rem 0 0.8rem; }
  .view-group, .filter-group { display:flex; align-items:center; gap:0.7rem; flex-wrap:wrap; }
  .filter-group { flex-wrap:wrap; border-left:1px solid var(--beige-dark); padding-left:1rem; }
  .ctrl-label { font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); }
  .filter-toggle-btn {
    padding:0.55rem 1.4rem; background:transparent; border:1px solid var(--beige-dark);
    color:var(--brown-dark); cursor:pointer; font-family:'Jost',sans-serif;
    font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; transition:all 0.2s;
    display:inline-flex; align-items:center; gap:0.4rem;
  }
  .filter-toggle-btn:hover { border-color:var(--brown); }
  .filter-toggle-btn .arrow { font-size:0.7rem; }
  .view-toggle { display:flex; gap:0.5rem; justify-content:flex-start; margin:0; }
  .view-btn {
    padding:0.55rem 1.5rem; background:transparent; border:1px solid var(--beige-dark);
    color:var(--muted); cursor:pointer; font-family:'Jost',sans-serif;
    font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
    transition:all 0.2s;
  }
  .view-btn:hover { color:var(--brown-dark); }
  .view-btn.active { background:var(--brown); color:var(--beige); border-color:var(--brown); }

  .cal-legend {
    text-align:center; font-size:0.72rem; color:var(--muted);
    letter-spacing:0.06em; margin:0 0 0.8rem;
    display:flex; gap:0.6rem; justify-content:center; align-items:center;
  }
  .cal-legend .legend-sep { color:var(--beige-dark); }

  .cal-filter { display:flex; flex-wrap:wrap; gap:0.4rem; justify-content:flex-start; margin:0; }
  .cal-filter:empty { display:none; }
  .filter-chip {
    padding:0.35rem 0.9rem; background:transparent; border:1px solid var(--beige-dark);
    color:var(--muted); cursor:pointer; font-family:'Jost',sans-serif;
    font-size:0.78rem; letter-spacing:0.06em; border-radius:1em; transition:all 0.2s;
  }
  .filter-chip:hover { border-color:var(--brown); color:var(--brown-dark); }
  .filter-chip.active { background:var(--brown); color:var(--beige); border-color:var(--brown); }
  .filter-chip.reset { border-style:dashed; }
  .filter-fmt-group { display:inline-flex; align-items:center; gap:0.4rem; flex-wrap:nowrap; }
  .cal-filter .filter-sep { width:1px; background:var(--beige-dark); margin:0 0.2rem; align-self:stretch; }
  .cal-filter .filter-label { font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); align-self:center; margin-right:0.2rem; }
  .filter-chip .type-icon { color:inherit; margin:0 0.15rem 0 0; }
  .cal-legend span { display:inline-flex; align-items:center; gap:0.25rem; }
  .type-icon { display:inline-block; vertical-align:middle; color:var(--brown); margin-left:0.25rem; }

  .cal-grid.week-view { grid-template-columns:1fr; gap:0.5rem; }
  .cal-grid.week-view .cal-day-name { display:none; }
  .cal-grid.week-view .cal-day { padding:0.9rem 1.2rem; min-height:auto; height:auto; }
  .cal-grid.week-view .cal-day .day-num { font-size:0.95rem; font-weight:500; margin-bottom:0.5rem; color:var(--brown-dark); }
  .cal-grid.week-view .cal-course-dot { font-size:0.88rem; padding:0.5rem 0.7rem; margin-top:0.35rem; }
  .cal-course-dot.reg-low  { background:#C9A97A; border-color:#A88858; color:var(--brown-dark); font-weight:500; }
  .cal-course-dot.reg-high { background:#6B5744; border-color:#3D2E20; color:var(--beige); font-weight:600; }

  .course-list-wrap { margin-top:2rem; }
  .course-list-toggle {
    width:100%; padding:0.9rem 1.2rem;
    background:var(--beige); border:1px solid var(--beige-dark);
    color:var(--brown-dark); cursor:pointer;
    font-family:'Jost',sans-serif; font-size:0.85rem;
    letter-spacing:0.1em; text-transform:uppercase;
    display:flex; justify-content:center; align-items:center; gap:0.4rem;
    transition:background 0.2s;
  }
  .course-list-toggle:hover { background:var(--beige-mid); }
  .course-list-toggle .arrow { font-size:0.7rem; }
  .course-list-collapsed { display:none; }
  #course-list { margin-top:0.5rem; }
  .course-list-item {
    display:grid; grid-template-columns:70px 1fr; gap:1rem;
    align-items:center; padding:0.9rem 1rem;
    background:var(--white); border:1px solid var(--beige-dark);
    margin-bottom:0.5rem; cursor:pointer;
    transition:background 0.15s, border-color 0.15s;
  }
  .course-list-item:hover { background:var(--beige); border-color:var(--brown); }
  .cli-date {
    font-family:'Cormorant Garamond',serif;
    font-size:1.5rem; font-weight:300; color:var(--brown-dark);
    line-height:1; text-align:center;
  }
  .cli-date span { font-size:0.7rem; color:var(--muted); letter-spacing:0.1em; text-transform:uppercase; }
  .cli-date .cli-wd { display:block; margin-bottom:0.12rem; }
  .cli-info { font-size:0.85rem; color:var(--brown-dark); line-height:1.6; }
  .cli-info span { font-size:0.75rem; color:var(--muted); }

  /* EVENTS */
  .event-card { border:1px solid var(--beige-dark); background:var(--white); padding:2.5rem 2rem; margin-top:1.6rem; }
  .event-badge { display:inline-block; font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--terra); margin-bottom:0.9rem; }
  .event-name { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:2rem; color:var(--brown-dark); margin:0 0 0.5rem; }
  .event-place { font-size:0.9rem; color:var(--muted); letter-spacing:0.08em; }

  /* PRIVATSTUNDEN (Kurse-Seite) */
  .priv-section { max-width:420px; margin:3rem auto 0; text-align:center; }
  .priv-title { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:1.8rem; color:var(--brown-dark); margin:0 0 0.4rem; }
  .priv-sub { font-size:0.9rem; color:var(--muted); margin:0 0 1.5rem; line-height:1.6; }

  /* COURSE LIST */
  .course-list { display:flex; flex-direction:column; gap:1rem; margin-top:2rem; }
  .course-card {
    display:grid; grid-template-columns:80px 1fr auto;
    align-items:center; gap:1.5rem; padding:1.5rem 2rem;
    background:var(--white); border:1px solid var(--beige-dark);
    transition:border-color 0.2s;
  }
  .course-card:hover { border-color:var(--brown); }
  .course-date { text-align:center; }
  .course-date .day {
    font-family:'Cormorant Garamond',serif;
    font-size:2rem; font-weight:300; color:var(--brown-dark); line-height:1;
  }
  .course-date .weekday {
    font-size:0.65rem; letter-spacing:0.15em;
    text-transform:uppercase; color:var(--muted); margin-top:0.2rem;
  }
  .course-name {
    font-family:'Cormorant Garamond',serif;
    font-size:1.1rem; color:var(--brown-dark); margin-bottom:0.3rem;
  }
  .course-meta {
    font-size:0.76rem; color:var(--muted);
    display:flex; gap:1rem; flex-wrap:wrap;
  }
  .badge {
    display:inline-block; font-size:0.6rem; letter-spacing:0.08em;
    text-transform:uppercase; padding:0.2rem 0.5rem; margin-left:0.4rem;
  }
  .badge-outdoor { background:var(--beige-mid); color:var(--green); }
  .badge-online  { background:var(--beige-mid); color:var(--muted); }
  .btn-sm {
    padding:0.6rem 1.2rem; font-size:0.7rem; letter-spacing:0.1em;
    text-transform:uppercase; border:1px solid var(--brown);
    color:var(--brown-dark); background:transparent;
    cursor:pointer; transition:all 0.2s; white-space:nowrap;
    font-family:'Jost',sans-serif;
  }
  .btn-sm:hover { background:var(--brown-dark); color:var(--white); }

  /* INFO BOX */
  .info-box {
    background:var(--white); border:1px solid var(--beige-dark);
    padding:1.5rem 2rem; margin-bottom:2rem;
    font-size:0.82rem; color:var(--muted); line-height:1.8;
  }
  .info-box strong { color:var(--brown-dark); }

  /* GEMEINSCHAFTSTOPF */
  .pot-box {
    background:var(--white); border:1px solid var(--beige-dark);
    padding:2rem; margin-bottom:3rem;
  }

  /* PRICING */
  .price-grid {
    display:grid; grid-template-columns:1fr 1fr 1fr; gap:1.5rem; margin-bottom:2rem;
  }
  .price-card {
    padding:2rem; background:var(--beige);
    border:1px solid var(--beige-dark);
    display:flex; flex-direction:column; position:relative;
  }
  .price-free-note {
    position:absolute; top:0; left:50%; transform:translate(-50%,-50%);
    background:var(--terra); color:var(--beige);
    font-size:0.6rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:500;
    padding:0.35rem 1rem; border-radius:3em; white-space:nowrap;
  }
  .price-type {
    font-size:0.7rem; letter-spacing:0.2em;
    text-transform:uppercase; color:var(--green); margin-bottom:0.4rem;
  }
  .price-subtitle {
    font-size:0.72rem; color:var(--brown); font-style:italic; margin-bottom:1.2rem;
  }
  .price-row {
    display:flex; justify-content:space-between;
    font-size:0.85rem; color:var(--muted);
    padding:0.55rem 0; border-bottom:0.5px solid var(--beige-dark);
  }
  .price-row:last-of-type { border-bottom:none; }
  .price-row span:last-child { color:var(--brown-dark); font-weight:500; }

  /* MODAL */
  .modal-overlay {
    display:none; position:fixed; inset:0; z-index:200;
    background:rgba(44,32,24,0.5); backdrop-filter:blur(4px);
    align-items:center; justify-content:center;
  }
  .modal-overlay.open { display:flex; }
  .modal {
    background:var(--white); padding:3rem; max-width:480px; width:90%;
    position:relative; animation:modalIn 0.3s ease;
  }
  @keyframes modalIn {
    from { opacity:0; transform:translateY(16px); }
    to   { opacity:1; transform:translateY(0); }
  }
  .modal-close {
    position:absolute; top:1.2rem; right:1.5rem;
    font-size:1.4rem; color:var(--muted);
    cursor:pointer; background:none; border:none; line-height:1;
  }
  .modal-close:hover { color:var(--brown-dark); }
  .modal-back {
    position:absolute; top:1.2rem; left:1.5rem;
    font-size:1.3rem; color:var(--muted);
    cursor:pointer; background:none; border:none; line-height:1;
  }
  .modal-back:hover { color:var(--brown-dark); }
  .modal-course-name {
    font-family:'Cormorant Garamond',serif;
    font-size:1.9rem; font-weight:300; color:var(--brown-dark);
    margin-bottom:0.5rem; margin-top:0.8rem;
  }
  .modal-course-meta {
    font-size:0.95rem; color:var(--brown); line-height:1.6;
    margin-bottom:1.8rem; padding-bottom:1.4rem;
    border-bottom:1px solid var(--beige-dark);
  }
  .form-group { margin-bottom:1.2rem; }
  .form-group label {
    display:block; font-size:0.72rem; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--muted); margin-bottom:0.5rem;
  }
  .form-group input {
    width:100%; padding:0.8rem 1rem;
    background:var(--beige); border:1px solid var(--beige-dark);
    font-family:'Jost',sans-serif; font-size:0.9rem;
    color:var(--text); outline:none; transition:border-color 0.2s;
  }
  .form-group input:focus { border-color:var(--brown); }
  .donation-selector {
    display:grid; grid-template-columns:repeat(4,1fr); gap:0.5rem;
  }
  .donation-btn {
    padding:0.7rem; border:1px solid var(--beige-dark);
    background:var(--beige); font-family:'Jost',sans-serif;
    font-size:0.85rem; color:var(--muted); cursor:pointer; transition:all 0.2s;
  }
  .donation-btn:hover, .donation-btn.active {
    border-color:var(--brown); color:var(--brown-dark); background:var(--white);
  }
  .modal-notice {
    font-size:0.78rem; color:var(--muted); line-height:1.6;
    margin:1.2rem 0; padding:0.9rem 1rem;
    background:var(--beige); border-left:2px solid var(--beige-dark);
  }
  .modal-notice strong { color:var(--brown-dark); }
  .form-submit {
    width:100%; padding:1rem; margin-top:0.5rem;
    background:var(--brown-dark); color:var(--white); border:none;
    font-family:'Jost',sans-serif; font-size:0.78rem; font-weight:400;
    letter-spacing:0.15em; text-transform:uppercase;
    cursor:pointer; transition:background 0.2s;
  }
  .form-submit:hover { background:var(--brown); }
  .success-msg { display:none; text-align:center; padding:2rem 0; }
  .success-msg.show { display:block; }
  .success-icon { font-size:2.5rem; margin-bottom:1rem; }
  .success-msg h3 {
    font-family:'Cormorant Garamond',serif;
    font-size:1.8rem; font-weight:300; color:var(--brown-dark); margin-bottom:0.8rem;
  }
  .success-msg p { font-size:0.88rem; color:var(--muted); line-height:1.7; }

  /* IMPRESSUM / DATENSCHUTZ */
  .legal-section {
    background:var(--brown-dark); padding:3rem 2rem;
  }
  .legal-toggle {
    background:none; border:none; cursor:pointer;
    font-family:'Jost',sans-serif; font-size:0.72rem;
    letter-spacing:0.15em; text-transform:uppercase;
    color:var(--muted); padding:0; display:block;
    margin-bottom:0.5rem; text-decoration:underline;
  }
  .legal-content {
    display:none; margin-top:1.5rem;
    font-size:0.82rem; color:var(--muted); line-height:2;
  }
  .legal-content strong { color:var(--brown-dark); }
  .legal-head {
    background:none; border:none; cursor:pointer; padding:0;
    font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:300;
    color:var(--brown-dark); display:block; letter-spacing:0.02em;
  }
  .legal-head:hover { color:var(--brown); }

  /* FOOTER */
  footer {
    background:var(--brown-dark); padding:2.5rem 2rem 1rem;
    text-align:center;
    font-size:0.78rem; color:rgba(245,240,232,0.6);
    display:flex; flex-direction:column; align-items:center;
  }
  .footer-name {
    font-family:'Cormorant Garamond',serif;
    font-size:1.4rem; font-weight:300;
    color:var(--beige); margin-bottom:0;
    text-align:center; width:100%;
  }

  /* HAMBURGER */
  .hamburger {
    display:none; flex-direction:column; gap:5px;
    cursor:pointer; background:none; border:none; padding:4px;
  }
  .hamburger span {
    display:block; width:22px; height:1.5px;
    background:var(--brown-dark); transition:all 0.3s;
  }
  .mobile-menu {
    display:none; position:fixed; top:60px; left:0; right:0; z-index:99;
    background:rgba(245,240,232,0.98); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--beige-dark);
    flex-direction:column; padding:1.5rem 2rem;
    gap:1.5rem;
  }
  .mobile-menu.open { display:flex; }
  .mobile-menu a {
    font-size:0.85rem; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--muted);
    text-decoration:none; cursor:pointer;
    border:none; background:none;
    font-family:'Jost',sans-serif; font-weight:300;
    padding:0; text-align:left;
  }
  .mobile-menu a:hover { color:var(--brown-dark); }

  @media(max-width:900px) {
    .nav-links { display:none; }
    .hamburger { display:flex; }
  }
  @media(max-width:700px) {
    nav { padding:1rem 1.5rem; }
    .nav-links { display:none; }
    .hamburger { display:flex; }
    .about-grid { grid-template-columns:1fr; gap:2rem; }
    .price-grid { grid-template-columns:1fr; }
    .course-card { grid-template-columns:60px 1fr; }
    .course-card .btn-sm { display:none; }
    .page { overflow-x:hidden; }
    .cal-grid { gap:1px; }
    .cal-day { height:118px; overflow:hidden; padding:0.35rem; }
    .cal-grid.week-view .cal-day { height:auto; min-height:auto; }
    .cal-day .day-num { font-size:0.72rem; margin-bottom:0.1rem; }
    .cal-day .cal-course-dot { padding:0.18rem 0.3rem; margin-top:0.18rem; font-size:0.62rem; line-height:1.25; }
    .cal-more { font-size:0.72rem; padding:0.16rem 0.55rem; margin-top:0.3rem; }
    .cal-day-name { font-size:0.58rem; padding:0.3rem 0; }
    .cal-course-dot { font-size:0.62rem; line-height:1.3; padding:0.2rem 0.3rem; }
    .view-toggle { margin:1rem 0 0.5rem; }
    .view-btn { padding:0.4rem 1rem; font-size:0.66rem; letter-spacing:0.12em; }
    .cal-legend { font-size:0.68rem; margin-bottom:0.5rem; flex-wrap:wrap; }
    /* Wochenansicht auf Mobile als Liste: Tage untereinander */
    .cal-grid.week-view { grid-template-columns:1fr; gap:0.4rem; }
    .cal-grid.week-view .cal-day-name { display:none; }
    .cal-grid.week-view .cal-day { min-height:auto; padding:0.8rem 1rem; }
    .cal-grid.week-view .cal-day .day-num { font-size:0.9rem; font-weight:500; margin-bottom:0.4rem; }
    .cal-grid.week-view .cal-course-dot { font-size:0.78rem; padding:0.45rem 0.7rem; }
    .cal-header { margin-bottom:0.6rem; }
    .cal-header h3 { font-size:1.1rem; }
    .cal-nav { min-width:44px; min-height:44px; padding:0.6rem 0.9rem; font-size:1rem; }
    .container { padding:3rem 1.2rem; }
    .hero { padding:5rem 1.2rem 3rem; text-align:center; }
    .hero-eyebrow { font-size:1.3rem; letter-spacing:0.2em; margin-bottom:1rem; }
    .hero-tagline { font-size:0.78rem; padding:0.35rem 1rem; letter-spacing:0.08em; margin-bottom:1.5rem; }
    .hero h1 { font-size:3rem; }
    .hero h1 em { display:inline; }
    .btn { padding:0.8rem 2rem; font-size:0.75rem; }
    .hero-cta-boxes { gap:0.7rem; margin-top:1.2rem; max-width:340px; margin-left:auto; margin-right:auto; }
    .cta-box { flex:1 1 130px; min-width:130px; font-size:0.7rem; letter-spacing:0.14em; padding:0.65rem 0.9rem; }
    .section-body { max-width:100%; }
    .pot-box { padding:1.2rem; margin-bottom:1.5rem; }
    .pot-display { font-size:1.8rem !important; }
    .info-box { padding:1rem; margin-bottom:1.2rem; }
    .modal { padding:1.8rem 1.4rem; max-height:90vh; overflow-y:auto; }
    .modal-course-name { font-size:1.3rem; }
    .modal-course-meta { margin-bottom:1.2rem; padding-bottom:1rem; }
    .donation-selector { grid-template-columns:repeat(2,1fr); }
    /* Neue Startseite Mobile */
    .home-hero { padding:6rem 1rem 5rem; min-height:auto; grid-template-columns:1fr; gap:1.8rem; }
    .home-bg { position:absolute; top:0; bottom:auto; height:60vh; background-position:72% 30%; z-index:0; }
    #page-home { background:#E6CCA2; }
    .home-hero, .home-upcoming { position:relative; z-index:1; }
    .home-angebote { display:block; align-self:auto; justify-self:auto; text-align:center; max-width:none; padding-right:0; margin-top:14vh; }
    .ang-list li { justify-content:center; color:var(--brown-dark); text-shadow:none; }
    .ang-label { text-align:center; }
    .ang-mask { height:200px; }
    .home-box { align-self:auto; margin:0 -1rem; padding:1.4rem 1.2rem; background:rgba(230,204,162,0.62); border-radius:0; text-align:left; }
    .hb-title { font-size:1.9rem; line-height:1.32; }
    .hb-eyebrow { font-size:9vw; white-space:nowrap; font-weight:300; margin-bottom:3.5rem; }
    .hb-sub { font-size:0.74rem; letter-spacing:0.15em; }
    .home-mobile-ticker {
      display:none; position:fixed; bottom:0; left:0; right:0; z-index:50;
      background:rgba(245,240,232,0.82); backdrop-filter:blur(8px);
      border-top:1px solid rgba(107,87,68,0.25);
      padding:0.7rem 0; overflow:hidden; pointer-events:none;
      mask-image:linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
      -webkit-mask-image:linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
    }
    body.on-home:not(.on-home-other-page) .home-mobile-ticker { display:none; }
    .home-mobile-ticker .mt-strip {
      display:inline-flex; white-space:nowrap;
      animation:mtScroll 30s linear infinite;
    }
    .home-mobile-ticker .mt-strip span {
      font-family:'Jost',sans-serif; font-size:0.72rem;
      letter-spacing:0.22em; text-transform:uppercase;
      color:var(--brown-dark); padding:0 1.4rem;
    }
    @keyframes mtScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
    .home-upcoming { padding:3rem 1rem 4rem; background:#E6CCA2; }
    .up-row {
      grid-template-columns:auto auto auto 1fr;
      grid-template-areas:'wd date time name' 'loc loc loc btn';
      gap:0.4rem 0.6rem; padding:1.3rem 0; align-items:baseline;
    }
    .up-row .ur-wd { grid-area:wd; font-size:0.88rem; }
    .up-row .ur-date { grid-area:date; font-size:1.35rem; }
    .up-row .ur-time { grid-area:time; font-size:0.98rem; }
    .up-row .ur-name { grid-area:name; font-size:1.35rem; text-align:left; }
    .up-row .ur-loc { grid-area:loc; text-align:left; font-size:0.86rem; margin-top:0.25rem; align-self:center; }
    .up-row .ur-btn { grid-area:btn; padding:0.45rem 1rem; font-size:0.68rem; justify-self:end; align-self:center; }
    .up-head { flex-wrap:wrap; gap:0.5rem; }
    .up-title { font-size:0.74rem; }
    .up-all { font-size:0.66rem; }
    body.on-home { padding-bottom:0; }
  }