﻿  /* ============================================================
     DESIGN TOKENS
  ============================================================ */
  :root {
    /* Forest greens */
    --forest-950: #080F09;
    --forest-900: #0F1E11;
    --forest-800: #172C1A;
    --forest-700: #1F3C23;
    --forest-600: #285030;
    --forest-500: #326440;
    --forest-400: #4A8A56;
    --forest-300: #6FAF7A;
    --forest-200: #A4CFA9;
    --forest-100: #D8EDD9;
    --forest-50:  #EFF7F0;

    /* Amber / earth */
    --amber-700: #92420E;
    --amber-600: #B3541A;
    --amber-500: #CC6820;
    --amber-400: #E07C35;
    --amber-100: #FDF0E3;

    /* Neutrals */
    --text-primary:   #1A1A1A;
    --text-secondary: #424242;
    --text-muted:     #6B6B6B;
    --white:          #FFFFFF;
    --surface:        #FAFAF8;
    --surface-alt:    #F2F5EF;
    --border:         #E1E6DE;

    /* Typography */
    --ff-display: 'Playfair Display', Georgia, serif;
    --ff-body:    'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;

    --fs-display: clamp(2.75rem, 6vw, 5.25rem);
    --fs-h2:      clamp(1.875rem, 3.5vw, 2.75rem);
    --fs-h3:      clamp(1.25rem, 2vw, 1.5rem);
    --fs-lead:    clamp(1rem, 1.5vw, 1.125rem);
    --fs-body:    1rem;
    --fs-sm:      0.875rem;
    --fs-xs:      0.75rem;

    /* Spacing (8-pt grid) */
    --s1:  0.25rem;
    --s2:  0.5rem;
    --s3:  0.75rem;
    --s4:  1rem;
    --s5:  1.25rem;
    --s6:  1.5rem;
    --s8:  2rem;
    --s10: 2.5rem;
    --s12: 3rem;
    --s16: 4rem;
    --s20: 5rem;
    --s24: 6rem;
    --s32: 8rem;

    /* Layout */
    --max-w:      1200px;
    --max-w-text: 720px;
    --nav-h:      140px;
    --r-sm:       6px;
    --r:          12px;
    --r-lg:       20px;
    --r-xl:       32px;
    --r-full:     9999px;

    /* Shadows */
    --sh-sm:  0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05);
    --sh:     0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.05);
    --sh-md:  0 8px 24px rgba(0,0,0,.10), 0 3px 8px rgba(0,0,0,.06);
    --sh-lg:  0 16px 48px rgba(0,0,0,.11), 0 6px 16px rgba(0,0,0,.06);
    --sh-xl:  0 32px 72px rgba(0,0,0,.14);

    /* Transitions */
    --t-fast:   150ms ease;
    --t:        250ms ease;
    --t-slow:   400ms ease;
    --t-spring: 380ms cubic-bezier(0.34, 1.56, 0.64, 1);
  }

  /* ============================================================
     RESET & BASE
  ============================================================ */
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--nav-h);
    font-size: 16px;
  }

  body {
    font-family: var(--ff-body);
    font-size: var(--fs-lead);
    line-height: 1.75;
    color: var(--text-primary);
    background: var(--surface);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }

  h1, h2, h3 { font-family: var(--ff-display); line-height: 1.2; }
  a { color: inherit; text-decoration: none; }
  img { max-width: 100%; height: auto; display: block; }
  button { cursor: pointer; border: none; background: none; font-family: inherit; }
  ul { list-style: none; }

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

  /* ============================================================
     SKIP LINK
  ============================================================ */
  .skip-link {
    position: absolute;
    top: -100%;
    left: var(--s4);
    padding: var(--s3) var(--s6);
    background: var(--forest-700);
    color: var(--white);
    font-weight: 600;
    font-size: var(--fs-sm);
    border-radius: 0 0 var(--r) var(--r);
    z-index: 9999;
    transition: top var(--t-fast);
  }
  .skip-link:focus { top: 0; }

  /* ============================================================
     UTILITIES
  ============================================================ */
  .container {
    width: 100%;
    max-width: var(--max-w);
    margin-inline: auto;
    padding-inline: var(--s6);
  }

  /* Screen-reader only */
  .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;
  }

  /* Scroll reveal */
  .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .65s ease, transform .65s ease;
  }
  .reveal.in { opacity: 1; transform: translateY(0); }
  .reveal.d1 { transition-delay: .10s; }
  .reveal.d2 { transition-delay: .20s; }
  .reveal.d3 { transition-delay: .30s; }
  .reveal.d4 { transition-delay: .40s; }

  /* Section label */
  .label {
    display: inline-flex;
    align-items: center;
    gap: var(--s2);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--forest-600);
    margin-bottom: var(--s4);
  }
  .label::before {
    content: '';
    display: block;
    width: 20px;
    height: 2px;
    background: var(--amber-500);
    border-radius: 2px;
  }

  .section-title {
    font-size: var(--fs-h2);
    font-weight: 700;
    color: var(--forest-900);
    margin-bottom: var(--s4);
    letter-spacing: -.02em;
  }
  .section-sub {
    font-size: var(--fs-lead);
    color: var(--text-muted);
    max-width: 560px;
    line-height: 1.7;
  }

  .hdr { margin-bottom: var(--s16); }
  .hdr--center { text-align: center; }
  .hdr--center .label     { justify-content: center; }
  .hdr--center .section-sub { margin-inline: auto; }

  /* ============================================================
     BUTTONS
  ============================================================ */
  .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--s2);
    padding: .875rem 1.875rem;
    font-family: var(--ff-body);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    border-radius: var(--r-full);
    transition: transform var(--t), box-shadow var(--t), background var(--t-fast);
    line-height: 1;
    white-space: nowrap;
  }
  .btn:focus-visible { outline: 3px solid var(--amber-500); outline-offset: 3px; }

  .btn-forest {
    background: var(--forest-600);
    color: var(--white);
    box-shadow: 0 4px 14px rgba(40,80,48,.35);
  }
  .btn-forest:hover { background: var(--forest-700); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(40,80,48,.40); color: var(--white); }

  .btn-ghost-white {
    background: transparent;
    color: var(--white);
    border: 1.5px solid rgba(255,255,255,.55);
  }
  .btn-ghost-white:hover { background: rgba(255,255,255,.12); border-color: var(--white); }

  .btn-white {
    background: var(--white);
    color: var(--forest-700);
  }
  .btn-white:hover { background: var(--forest-50); transform: translateY(-2px); }

  .btn-amber {
    background: var(--amber-600);
    color: var(--white);
    box-shadow: 0 4px 14px rgba(179,84,26,.35);
  }
  .btn-amber:hover { background: var(--amber-700); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(179,84,26,.40); color: var(--white); }

  /* ============================================================
     NAVIGATION
  ============================================================ */
  .nav {
    position: fixed;
    inset: 0 0 auto 0;
    height: var(--nav-h);
    z-index: 1000;
    transition: background var(--t-slow), backdrop-filter var(--t-slow), box-shadow var(--t-slow);
  }
  .nav.scrolled {
    box-shadow: 0 1px 0 rgba(255,255,255,.06), 0 8px 32px rgba(0,0,0,.30);
  }
  /* backdrop-filter via ::before — verhindert Stacking-Context-Bug bei position:fixed Kindern */
  .nav.scrolled::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(15,30,17,.90);
    backdrop-filter: blur(24px) saturate(160%);
    -webkit-backdrop-filter: blur(24px) saturate(160%);
    z-index: -1;
  }
  .nav__inner {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s8);
    padding-block: var(--s5);
  }
  .nav__logo {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--s3);
  }
  .nav__logo img {
    height: 150px;
    width: auto;
    filter: drop-shadow(0 2px 10px rgba(0,0,0,.55));
    transition: opacity var(--t-fast);
  }
  .nav__logo:hover img { opacity: .85; }
  .nav__logo:focus-visible { outline: 3px solid var(--amber-500); border-radius: var(--r-sm); outline-offset: 2px; }
  .nav__logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
  }
  .nav__logo-text strong {
    font-family: var(--ff-display);
    font-size: .9375rem;
    font-weight: 700;
    color: var(--white);
    letter-spacing: .01em;
  }
  .nav__logo-text span {
    font-size: .6875rem;
    font-weight: 500;
    color: rgba(255,255,255,.60);
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  @media (max-width: 1060px) { .nav__logo-text { display: none; } }

  .nav__badge {
    display: inline-flex;
    align-items: center;
    gap: var(--s2);
    padding: .25rem .75rem;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--amber-400);
    border: 1.5px solid rgba(204,104,32,.35);
    border-radius: var(--r-full);
    background: rgba(204,104,32,.08);
  }
  .nav__badge::before {
    content: '';
    width: 6px;
    height: 6px;
    background: var(--amber-400);
    border-radius: 50%;
    animation: blink 2.2s ease-in-out infinite;
  }
  @keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }

  .nav__list {
    display: flex;
    align-items: center;
    gap: var(--s1);
  }
  .nav__link {
    display: block;
    padding: .625rem var(--s4);
    font-size: .875rem;
    font-weight: 600;
    color: rgba(255,255,255,.82);
    border-radius: var(--r-full);
    transition: color var(--t-fast), background var(--t-fast);
    letter-spacing: .01em;
  }
  .nav__link:hover, .nav__link.is-active { color: var(--white); background: rgba(255,255,255,.14); }
  .nav__link--cta {
    background: var(--amber-600) !important;
    color: var(--white) !important;
    font-weight: 700;
    box-shadow: 0 2px 10px rgba(179,84,26,.35);
  }
  .nav__link--cta:hover { background: var(--amber-700) !important; }

  /* Burger */
  .nav__burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px; height: 44px;
    padding: 10px;
    border-radius: var(--r-sm);
    transition: background var(--t-fast);
  }
  .nav__burger:hover { background: rgba(255,255,255,.10); }
  .nav__burger:focus-visible { outline: 3px solid var(--amber-500); }
  .nav__burger span {
    display: block; width: 22px; height: 2px;
    background: var(--white); border-radius: 2px;
    transition: transform var(--t), opacity var(--t-fast);
    transform-origin: center;
  }
  .nav__burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav__burger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
  .nav__burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* Mobile menu */
  @media (max-width: 840px) {
    .nav__burger { display: flex; }
    .nav__badge  { display: none; }
    .nav__menu {
      position: fixed;
      top: var(--nav-h);
      left: 0; right: 0; bottom: 0;
      z-index: 1100;
      background: #0A150B;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: flex-start;
      gap: 0;
      overflow-y: auto;
      padding-block: var(--s10);
      padding-bottom: calc(var(--s12) + env(safe-area-inset-bottom, 0px));
      opacity: 0;
      pointer-events: none;
      transition: opacity var(--t);
    }
    .nav__menu.is-open { opacity: 1; pointer-events: auto; }
    .nav__list {
      flex-direction: column;
      align-items: center;
      gap: 0;
      width: 100%;
      padding-inline: var(--s6);
    }
    .nav__list li { width: 100%; }
    .nav__link {
      font-size: 1.25rem;
      font-weight: 600;
      padding: var(--s5) var(--s6);
      color: rgba(255,255,255,.90);
      border-radius: var(--r);
      display: block;
      text-align: center;
      border-bottom: 1px solid rgba(255,255,255,.06);
    }
    .nav__link:hover,
    .nav__link.is-active {
      background: rgba(255,255,255,.08);
      color: var(--white);
    }
    .nav__link--cta {
      margin-top: var(--s4);
      background: var(--amber-600) !important;
      border-bottom: none !important;
      border-radius: var(--r-full) !important;
      padding: var(--s5) var(--s8) !important;
    }
  }

  /* ============================================================
     HERO
  ============================================================ */
  .hero {
    position: relative;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    color: var(--white);
    overflow: hidden;
  }

  .hero__bg {
    position: absolute;
    inset: 0;
  }
  .hero__bg img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 30%;
    animation: heroZoom 22s ease-in-out infinite alternate;
    transform: scale(1.05);
  }
  @keyframes heroZoom { to { transform: scale(1.0); } }

  .hero__overlay {
    position: absolute;
    inset: 0;
    background:
      radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,.38) 100%),
      linear-gradient(170deg, rgba(8,15,9,.78) 0%, rgba(15,30,17,.55) 45%, rgba(23,44,26,.82) 100%);
  }

  .hero__content {
    position: relative;
    z-index: 1;
    padding-block: var(--s32);
    padding-block-start: calc(var(--nav-h) + var(--s20));
  }

  .hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: var(--s3);
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--forest-200);
    opacity: .9;
    margin-bottom: var(--s6);
  }
  .hero__eyebrow span { display: block; width: 28px; height: 1px; background: var(--forest-200); opacity: .5; }

  .hero__title {
    font-size: var(--fs-display);
    font-weight: 900;
    font-style: italic;
    line-height: 1.08;
    letter-spacing: -.025em;
    max-width: 740px;
    margin-bottom: var(--s6);
    text-shadow: 0 2px 24px rgba(0,0,0,.25);
  }
  .hero__title em {
    font-style: normal;
    color: var(--forest-200);
  }

  .hero__sub {
    font-size: clamp(.95rem, 2vw, 1.2rem);
    color: rgba(255,255,255,.78);
    max-width: 460px;
    line-height: 1.65;
    margin-bottom: var(--s10);
  }

  .hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s4);
  }

  .hero__scroll-hint {
    position: absolute;
    bottom: var(--s8);
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    color: rgba(255,255,255,.45);
    animation: scrollFloat 2.8s ease-in-out infinite;
  }
  @keyframes scrollFloat {
    0%,100% { transform: translateX(-50%) translateY(0); }
    50%      { transform: translateX(-50%) translateY(9px); }
  }

  /* ============================================================
     STATS BAND
  ============================================================ */
  .stats {
    background: var(--forest-900);
    padding-block: var(--s16);
    position: relative;
    overflow: hidden;
  }
  .stats::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='80' height='80' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='1' cy='1' r='1' fill='white' fill-opacity='.025'/%3E%3C/svg%3E") repeat;
  }

  .stats__grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    position: relative;
    z-index: 1;
  }

  .stat {
    text-align: center;
    padding: var(--s8) var(--s6);
    color: var(--white);
    position: relative;
  }
  .stat + .stat::before {
    content: '';
    position: absolute;
    left: 0; top: 20%; height: 60%;
    width: 1px;
    background: rgba(255,255,255,.10);
  }
  .stat__num {
    font-family: var(--ff-display);
    font-size: clamp(3.25rem, 6vw, 5.5rem);
    font-weight: 900;
    line-height: 1;
    color: var(--forest-200);
    letter-spacing: -.04em;
    margin-bottom: var(--s2);
  }
  .stat__num .plus { color: var(--amber-400); }
  .stat__label {
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: .10em;
    text-transform: uppercase;
    color: rgba(255,255,255,.50);
  }

  @media (max-width: 560px) {
    .stats__grid { grid-template-columns: 1fr; }
    .stat + .stat::before { top: 0; left: 20%; width: 60%; height: 1px; }
  }

  /* ============================================================
     SECTIONS — BASE
  ============================================================ */
  .section { padding-block: var(--s32); }
  .section--alt  { background: var(--surface-alt); }
  .section--dark {
    background: var(--forest-800);
    color: var(--white);
  }
  .section--dark .section-title { color: var(--white); }
  .section--dark .section-sub   { color: rgba(255,255,255,.72); }
  .section--dark .label         { color: var(--forest-200); }

  /* ============================================================
     ABOUT
  ============================================================ */
  .about__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s16);
    align-items: center;
  }

  .about__copy p {
    color: var(--text-secondary);
    line-height: 1.8;
    margin-bottom: var(--s5);
  }
  .about__copy p:last-child { margin-bottom: 0; }

  .about__pullquote {
    margin-block: var(--s8);
    padding: var(--s6) var(--s8);
    background: var(--forest-50);
    border-left: 3px solid var(--amber-500);
    border-radius: 0 var(--r) var(--r) 0;
    font-family: var(--ff-display);
    font-style: italic;
    font-size: 1.125rem;
    color: var(--forest-800);
    line-height: 1.6;
  }

  .about__img-wrap {
    position: relative;
  }
  .about__img-wrap img {
    width: 100%;
    height: 540px;
    object-fit: cover;
    border-radius: var(--r-lg);
    box-shadow: var(--sh-xl);
  }
  .about__img-wrap::before {
    content: '';
    position: absolute;
    top: -14px; right: -14px;
    width: 70px; height: 70px;
    border-top: 3px solid var(--amber-500);
    border-right: 3px solid var(--amber-500);
    border-radius: 0 var(--r) 0 0;
    z-index: 1;
  }
  .about__img-wrap::after {
    content: '';
    position: absolute;
    bottom: -14px; left: -14px;
    width: 70px; height: 70px;
    border-bottom: 3px solid var(--forest-400);
    border-left: 3px solid var(--forest-400);
    border-radius: 0 0 0 var(--r);
  }

  @media (max-width: 860px) {
    .about__grid { grid-template-columns: 1fr; }
    .about__img-wrap { order: -1; }
    .about__img-wrap img { height: 340px; }
  }

  /* ============================================================
     PROCESS
  ============================================================ */
  .process__steps {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: var(--s6);
    position: relative;
  }
  .process__steps::before {
    content: '';
    position: absolute;
    top: 40px;
    left: calc(12.5% + var(--s6));
    right: calc(12.5% + var(--s6));
    height: 2px;
    background: linear-gradient(to right, var(--amber-400), var(--forest-400));
    z-index: 0;
    pointer-events: none;
  }

  .step-card {
    background: var(--white);
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh);
    transition: transform var(--t), box-shadow var(--t);
    position: relative;
    z-index: 1;
  }
  .step-card:hover { transform: translateY(-7px); box-shadow: var(--sh-lg); }

  .step-card__img { height: 220px; overflow: hidden; }
  .step-card__img img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform var(--t-slow);
  }
  .step-card:hover .step-card__img img { transform: scale(1.07); }

  .step-card__body {
    padding: var(--s6);
    position: relative;
  }
  .step-card__num {
    position: absolute;
    top: -20px; left: var(--s6);
    width: 40px; height: 40px;
    background: var(--amber-600);
    color: var(--white);
    font-family: var(--ff-display);
    font-weight: 900;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--r-full);
    box-shadow: 0 4px 12px rgba(179,84,26,.40);
  }
  .step-card__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--forest-800);
    margin-bottom: var(--s3);
    margin-top: var(--s2);
  }
  .step-card__text {
    font-size: var(--fs-sm);
    color: var(--text-muted);
    line-height: 1.7;
  }

  @media (max-width: 840px) {
    .process__steps { grid-template-columns: repeat(2,1fr); }
    .process__steps::before { display: none; }
  }
  @media (max-width: 600px) {
    .process__steps { grid-template-columns: 1fr; }
  }

  /* ============================================================
     GALLERY
  ============================================================ */
  .gallery__grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    grid-template-rows: auto;
    gap: var(--s3);
  }
  .gal-item {
    position: relative;
    overflow: hidden;
    border-radius: var(--r);
    cursor: zoom-in;
    background: var(--forest-900);
  }
  .gal-item--tall  { grid-row: span 2; }
  .gal-item--wide  { grid-column: span 2; }

  .gal-item img {
    width: 100%; height: 100%;
    min-height: 200px;
    object-fit: cover;
    display: block;
    transition: transform var(--t-slow), filter var(--t-slow);
  }
  .gal-item--tall img { min-height: 430px; }
  .gal-item--wide img { min-height: 220px; }

  .gal-item:hover img { transform: scale(1.07); filter: brightness(.70); }

  .gal-item__caption {
    position: absolute;
    inset: auto 0 0 0;
    padding: var(--s6) var(--s4) var(--s4);
    background: linear-gradient(to top, rgba(0,0,0,.78), transparent);
    color: var(--white);
    font-size: var(--fs-sm);
    font-weight: 500;
    transform: translateY(100%);
    transition: transform var(--t);
  }
  .gal-item:hover .gal-item__caption { transform: translateY(0); }

  .gal-item__zoom {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%,-50%) scale(.5);
    opacity: 0;
    color: var(--white);
    pointer-events: none;
    transition: opacity var(--t), transform var(--t);
  }
  .gal-item:hover .gal-item__zoom { opacity: 1; transform: translate(-50%,-50%) scale(1); }
  .gal-item:focus-visible {
    outline: 3px solid var(--amber-500);
    outline-offset: -3px;
    border-radius: var(--r);
  }

  @media (max-width: 700px) {
    .gallery__grid { grid-template-columns: repeat(2,1fr); }
    .gal-item--tall { grid-row: span 1; }
    .gal-item--wide { grid-column: span 1; }
  }
  @media (max-width: 440px) {
    .gallery__grid { grid-template-columns: 1fr; }
  }

  /* Lightbox */
  .lightbox {
    position: fixed;
    inset: 0;
    z-index: 9000;
    background: rgba(0,0,0,.94);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--t);
  }
  .lightbox.is-open { opacity: 1; pointer-events: auto; }
  .lightbox__img {
    max-width: 90vw;
    max-height: 88vh;
    object-fit: contain;
    border-radius: var(--r);
    box-shadow: var(--sh-xl);
    transition: opacity .2s ease;
  }
  .lb-btn {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    color: var(--white);
    background: rgba(255,255,255,.10);
    border-radius: var(--r-full);
    transition: background var(--t-fast);
  }
  .lb-btn:hover { background: rgba(255,255,255,.22); }
  .lb-btn:focus-visible { outline: 3px solid var(--amber-500); }
  .lb-close { top: var(--s6); right: var(--s6); font-size: 1.375rem; line-height: 1; }
  .lb-prev  { left: var(--s6); top: 50%; transform: translateY(-50%); }
  .lb-next  { right: var(--s6); top: 50%; transform: translateY(-50%); }

  /* ============================================================
     VIDEO
  ============================================================ */
  .video-wrap {
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-xl);
    background: var(--forest-900);
    aspect-ratio: 16/9;
  }
  .video-wrap video { width: 100%; height: 100%; object-fit: cover; display: block; }
  .video-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.22);
    transition: opacity var(--t);
  }
  .video-overlay.is-hidden { opacity: 0; pointer-events: none; }
  .video-play {
    width: 80px; height: 80px;
    background: var(--white);
    color: var(--forest-800);
    border-radius: var(--r-full);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 32px rgba(0,0,0,.38);
    transition: transform var(--t-spring), box-shadow var(--t);
  }
  .video-play:hover { transform: scale(1.12); box-shadow: 0 14px 42px rgba(0,0,0,.45); }

  /* ============================================================
     TEAM
  ============================================================ */
  .team__banner {
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    height: clamp(240px, 32vw, 420px);
    box-shadow: var(--sh-lg);
    margin-bottom: var(--s16);
  }
  .team__banner img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 30%;
  }
  .team__banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(15,30,17,.72) 0%, transparent 65%);
  }
  .team__banner-copy {
    position: absolute;
    bottom: var(--s10); left: var(--s10);
    z-index: 1;
    color: var(--white);
    max-width: 380px;
  }
  .team__banner-copy h3 {
    font-size: var(--fs-h3);
    font-weight: 700;
    margin-bottom: var(--s2);
  }
  .team__banner-copy p {
    font-size: var(--fs-sm);
    opacity: .75;
  }

  .team__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s16);
    align-items: center;
    margin-bottom: var(--s12);
  }
  .team__text p {
    color: var(--text-secondary);
    line-height: 1.8;
    margin-bottom: var(--s5);
  }
  .team__text p:last-child { margin-bottom: 0; }
  .team__photo {
    border-radius: var(--r-lg);
    overflow: hidden;
    box-shadow: var(--sh-md);
  }
  .team__photo img {
    width: 100%; height: 360px;
    object-fit: cover;
  }

  .team__join {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s8);
    padding: var(--s8) var(--s10);
    background: var(--forest-50);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
  }
  .team__join p {
    font-size: var(--fs-lead);
    font-weight: 600;
    color: var(--forest-800);
  }

  @media (max-width: 720px) {
    .team__banner-copy { left: var(--s6); bottom: var(--s6); }
    .team__grid { grid-template-columns: 1fr; }
    .team__join { flex-direction: column; text-align: center; }
  }

  /* ============================================================
     DONATE
  ============================================================ */
  .donate__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s12);
    align-items: start;
  }

  .donate__copy h3 { font-size: var(--fs-h3); color: var(--forest-900); margin-bottom: var(--s5); }
  .donate__copy p  { color: var(--text-secondary); line-height: 1.8; margin-bottom: var(--s5); }
  .donate__copy p:last-child { margin-bottom: 0; }

  .donate__checklist {
    display: flex;
    flex-direction: column;
    gap: var(--s3);
    margin-bottom: var(--s8);
  }
  .donate__checklist li {
    display: flex;
    align-items: center;
    gap: var(--s3);
    font-size: var(--fs-lead);
    color: var(--text-secondary);
  }
  .donate__checklist li::before {
    content: '';
    flex-shrink: 0;
    width: 22px; height: 22px;
    background: var(--forest-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23285030' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/13px no-repeat;
    border-radius: var(--r-full);
  }

  .donate__card {
    background: var(--white);
    border-radius: var(--r-xl);
    border: 1px solid var(--border);
    overflow: hidden;
    box-shadow: var(--sh-lg);
    text-align: center;
  }
  .donate__card-top {
    height: 5px;
    background: linear-gradient(to right, var(--forest-500), var(--amber-500));
  }
  .donate__card-body { padding: var(--s10); }

  .donate__qr {
    display: inline-flex;
    padding: var(--s4);
    border: 2px solid var(--border);
    border-radius: var(--r);
    margin-bottom: var(--s6);
    box-shadow: var(--sh-sm);
    background: var(--white);
  }
  .donate__qr img { width: 190px; height: 190px; object-fit: contain; }

  .donate__card-hint {
    font-size: var(--fs-sm);
    color: var(--text-muted);
    margin-bottom: var(--s8);
  }

  .donate__divider {
    border: none;
    border-top: 1px solid var(--border);
    margin: var(--s6) 0;
  }

  .donate__iban-label {
    font-size: var(--fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--text-muted);
    margin-bottom: var(--s3);
  }
  .donate__iban {
    display: inline-block;
    font-family: 'Courier New', monospace;
    font-size: .9375rem;
    font-weight: 700;
    color: var(--forest-800);
    background: var(--surface-alt);
    padding: var(--s3) var(--s5);
    border-radius: var(--r);
    border: 1px solid var(--border);
    letter-spacing: .03em;
    margin-bottom: var(--s3);
  }
  .donate__bank {
    font-size: var(--fs-sm);
    color: var(--text-muted);
    line-height: 1.6;
  }

  @media (max-width: 720px) {
    .donate__grid { grid-template-columns: 1fr; }
  }

  /* ============================================================
     CONTACT
  ============================================================ */
  .contact__inner {
    max-width: 600px;
    margin-inline: auto;
    text-align: center;
  }
  .contact__inner p {
    color: var(--text-secondary);
    line-height: 1.8;
    margin-bottom: var(--s8);
  }
  .contact__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s4);
    justify-content: center;
  }

  /* ============================================================
     FOOTER
  ============================================================ */
  .footer {
    background: var(--forest-950);
    color: rgba(255,255,255,.65);
    padding-block: var(--s20) var(--s10);
  }
  .footer__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: var(--s12);
    padding-bottom: var(--s12);
    border-bottom: 1px solid rgba(255,255,255,.07);
    margin-bottom: var(--s8);
  }
  .footer__brand img { height: 40px; margin-bottom: var(--s5); opacity: .85; }
  .footer__brand p { font-size: var(--fs-sm); line-height: 1.7; max-width: 280px; opacity: .65; }

  .footer__social {
    display: flex;
    gap: var(--s3);
    margin-top: var(--s6);
  }
  .footer__social a {
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    color: rgba(255,255,255,.45);
    background: rgba(255,255,255,.06);
    border-radius: var(--r-full);
    transition: color var(--t-fast), background var(--t-fast);
  }
  .footer__social a:hover { color: var(--white); background: rgba(255,255,255,.12); }
  .footer__social a:focus-visible { outline: 3px solid var(--amber-500); }

  .footer__col-title {
    font-family: var(--ff-body);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255,255,255,.35);
    margin-bottom: var(--s5);
  }
  .footer__links { display: flex; flex-direction: column; gap: var(--s3); }
  .footer__links a { font-size: var(--fs-sm); color: rgba(255,255,255,.60); transition: color var(--t-fast); }
  .footer__links a:hover { color: var(--white); }
  .footer__links a:focus-visible { outline: 3px solid var(--amber-500); border-radius: 2px; }

  .footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--s4);
    flex-wrap: wrap;
    font-size: var(--fs-xs);
    opacity: .4;
  }

  @media (max-width: 720px) {
    .footer__grid { grid-template-columns: 1fr 1fr; }
    .footer__brand { grid-column: 1/-1; }
  }
  @media (max-width: 440px) {
    .footer__grid { grid-template-columns: 1fr; }
  }

  /* ============================================================
     SPONSOREN
  ============================================================ */
  .sponsors__intro {
    max-width: 640px;
    margin-inline: auto;
    text-align: center;
    margin-bottom: var(--s16);
  }
  .sponsors__intro p { color: var(--text-secondary); line-height: 1.8; }

  .sponsors__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--s5);
    margin-bottom: var(--s16);
  }
  @media (max-width: 860px) { .sponsors__grid { grid-template-columns: repeat(3,1fr); } }
  @media (max-width: 560px) { .sponsors__grid { grid-template-columns: repeat(2,1fr); } }

  .sponsor-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--s6) var(--s5);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--r);
    min-height: 100px;
    transition: border-color var(--t), box-shadow var(--t), transform var(--t);
  }
  .sponsor-logo:hover {
    border-color: var(--forest-300);
    box-shadow: var(--sh-md);
    transform: translateY(-3px);
  }
  .sponsor-logo img {
    max-height: 52px;
    width: auto;
  }

  /* Placeholder logo cards (when no real logo available) */
  .sponsor-logo--placeholder {
    flex-direction: column;
    gap: var(--s2);
  }
  .sponsor-logo--placeholder svg { color: var(--border); }
  .sponsor-logo--placeholder span {
    font-size: var(--fs-xs);
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: .04em;
    text-align: center;
  }

  /* Sponsor werden Card */
  .sponsor-cta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--sh-lg);
    border: 1px solid var(--border);
  }
  @media (max-width: 720px) { .sponsor-cta { grid-template-columns: 1fr; } }

  .sponsor-cta__left {
    background: var(--forest-800);
    padding: var(--s12) var(--s10);
    color: var(--white);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--s5);
  }
  .sponsor-cta__left h3 {
    font-size: var(--fs-h3);
    color: var(--white);
    line-height: 1.3;
  }
  .sponsor-cta__left p {
    font-size: var(--fs-sm);
    color: rgba(255,255,255,.70);
    line-height: 1.75;
  }

  .sponsor-cta__perks {
    display: flex;
    flex-direction: column;
    gap: var(--s3);
    margin-top: var(--s2);
  }
  .sponsor-cta__perk {
    display: flex;
    align-items: flex-start;
    gap: var(--s3);
    font-size: var(--fs-sm);
    color: rgba(255,255,255,.80);
  }
  .sponsor-cta__perk-icon {
    flex-shrink: 0;
    width: 22px; height: 22px;
    background: rgba(164,207,169,.15);
    border-radius: var(--r-full);
    display: flex; align-items: center; justify-content: center;
    color: var(--forest-200);
    margin-top: 2px;
  }

  .sponsor-cta__right {
    background: var(--white);
    padding: var(--s12) var(--s10);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--s6);
  }
  .sponsor-cta__right h4 {
    font-family: var(--ff-display);
    font-size: 1.375rem;
    color: var(--forest-900);
    margin-bottom: var(--s2);
  }
  .sponsor-cta__right p {
    font-size: var(--fs-sm);
    color: var(--text-secondary);
    line-height: 1.75;
  }
  .sponsor-cta__right .btn { align-self: flex-start; }

  /* ============================================================
     SHOP
  ============================================================ */
  .shop__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s16);
    align-items: center;
  }

  /* Sticker Mockup */
  .shop__mockup {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    min-height: 420px;
  }
  .shop__mockup-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, var(--forest-100) 0%, var(--surface-alt) 70%);
    border-radius: var(--r-xl);
    border: 1px solid var(--border);
  }
  .shop__sticker-wrap {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--s8);
  }
  /* Sticker Produkt-Display */
  .shop__product-display {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--s6);
  }

  .shop__product-frame {
    background: #4a4a4a;
    border-radius: var(--r-xl);
    padding: var(--s8);
    box-shadow: var(--sh-xl);
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .shop__product-frame img {
    width: 100%;
    max-width: 380px;
    height: auto;
    display: block;
    border-radius: var(--r);
  }

  .shop__product-variants {
    display: flex;
    gap: var(--s4);
    flex-wrap: wrap;
    justify-content: center;
  }
  .shop__product-tag {
    display: inline-flex;
    align-items: center;
    gap: var(--s2);
    padding: var(--s2) var(--s4);
    border: 1.5px solid var(--border);
    border-radius: var(--r-full);
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--white);
  }

  .shop__variant-dot {
    width: 12px; height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
  }
  .shop__variant-dot--black { background: #111; }
  .shop__variant-dot--white { background: #fff; border: 1.5px solid var(--border); }

  .shop__badge-coming {
    display: inline-flex;
    align-items: center;
    gap: var(--s2);
    padding: var(--s2) var(--s4);
    background: var(--amber-100);
    border: 1.5px solid var(--amber-400);
    border-radius: var(--r-full);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--amber-600);
  }
  .shop__badge-coming::before {
    content: '';
    width: 7px; height: 7px;
    background: var(--amber-500);
    border-radius: 50%;
    animation: blink 2s ease-in-out infinite;
  }

  /* Product info */
  .shop__mockup { display: none; }
  .shop__info { }
  .shop__info h3 {
    font-size: var(--fs-h3);
    color: var(--forest-900);
    margin-bottom: var(--s5);
  }
  .shop__info p {
    color: var(--text-secondary);
    line-height: 1.8;
    margin-bottom: var(--s5);
  }
  .shop__info p:last-of-type { margin-bottom: 0; }

  .shop__specs {
    display: flex;
    flex-direction: column;
    gap: var(--s3);
    margin-block: var(--s8);
    padding: var(--s6);
    background: var(--forest-50);
    border-radius: var(--r);
    border: 1px solid var(--forest-100);
  }
  .shop__spec {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: var(--fs-sm);
    padding-bottom: var(--s3);
    border-bottom: 1px solid var(--forest-100);
  }
  .shop__spec:last-child { padding-bottom: 0; border-bottom: none; }
  .shop__spec-label { color: var(--text-muted); font-weight: 500; }
  .shop__spec-value { font-weight: 700; color: var(--forest-800); }

  .shop__cta-note {
    font-size: var(--fs-sm);
    color: var(--text-muted);
    margin-top: var(--s4);
    display: flex;
    align-items: flex-start;
    gap: var(--s2);
    line-height: 1.6;
  }
  .shop__cta-note svg { flex-shrink: 0; margin-top: 2px; color: var(--amber-500); }

  .shop__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s4);
    align-items: center;
    margin-top: var(--s8);
  }

  @media (max-width: 860px) {
    .shop__grid { grid-template-columns: 1fr; }
    .shop__product-frame { padding: var(--s6); }
  }
  @media (max-width: 600px) {
    .shop__product-frame { padding: var(--s4); }
    .shop__actions { flex-direction: column; }
    .shop__actions .btn { width: 100%; justify-content: center; }
  }

  /* ============================================================
     MOBILE & RESPONSIVE OPTIMIERUNGEN
  ============================================================ */

  /* Tablet: 840px */
  @media (max-width: 840px) {
    /* Nav deutlich kleiner, Logo passend */
    :root { --nav-h: 80px; }
    .nav__inner  { padding-block: var(--s3); }
    .nav__logo img { height: 68px; }

    /* Sections weniger Padding */
    .section { padding-block: var(--s20); }
    .hdr     { margin-bottom: var(--s10); }

    /* About: Bild-Rahmen ausblenden (würde clippen) */
    .about__img-wrap::before,
    .about__img-wrap::after { display: none; }
    .about__img-wrap img { height: 280px; }

    /* Team — banner uses clamp(), photo needs manual override */
    .team__photo img { height: 280px; }

    /* Sponsor-CTA */
    .sponsor-cta__left,
    .sponsor-cta__right { padding: var(--s8) var(--s6); }
  }

  /* Mobile: 600px */
  @media (max-width: 600px) {
    :root { --nav-h: 72px; }
    .nav__logo img { height: 56px; }
    .nav__inner    { padding-block: var(--s2); }

    /* Container enger */
    .container { padding-inline: var(--s4); }

    /* Sections */
    .section { padding-block: var(--s16); }
    .hdr     { margin-bottom: var(--s8); }

    /* Hero: weniger top-Abstand, Buttons stapeln */
    .hero__content {
      padding-block-start: calc(var(--nav-h) + var(--s12));
      padding-block-end: var(--s20);
    }
    .hero__title  { margin-bottom: var(--s5); }
    .hero__sub    { margin-bottom: var(--s8); }
    .hero__actions { flex-direction: column; }
    .hero__actions .btn { width: 100%; justify-content: center; }

    /* Stats */
    .stats { padding-block: var(--s12); }
    .stat  { padding-block: var(--s6); }

    /* Galerie: Captions immer sichtbar auf Touch, min-height reduzieren */
    .gal-item img { min-height: 160px; }
    .gal-item--tall img { min-height: 160px; }
    .gal-item__caption {
      transform: translateY(0);
      background: linear-gradient(to top, rgba(0,0,0,.82), transparent);
    }
    .gal-item__zoom { display: none; }

    /* Process */
    .step-card__img { height: 180px; }

    /* Team */
    .team__banner-copy { left: var(--s4); bottom: var(--s4); }
    .team__banner-copy h3 { font-size: 1.1rem; }
    .team__join { padding: var(--s6); }

    /* Spenden: QR kleiner */
    .donate__qr img { width: 150px; height: 150px; }
    .donate__card-body { padding: var(--s6); }
    .donate__iban { font-size: .8125rem; word-break: break-all; }

    /* Sponsoren */
    .sponsors__grid { grid-template-columns: repeat(2,1fr); gap: var(--s3); }
    .sponsor-logo   { min-height: 80px; padding: var(--s4) var(--s3); }
    .sponsor-logo img { max-height: 40px; }
    .sponsor-cta { grid-template-columns: 1fr; }
    .sponsor-cta__left  { padding: var(--s8) var(--s6); }
    .sponsor-cta__right { padding: var(--s8) var(--s6); }
    .sponsor-cta__right .btn { width: 100%; justify-content: center; }

    /* Kontakt */
    .contact__actions { flex-direction: column; align-items: stretch; }
    .contact__actions .btn { justify-content: center; }

    /* Footer */
    .footer { padding-block: var(--s12) var(--s8); }
    .footer__brand p { max-width: 100%; }

    /* Scroll-to-top weiter weg vom Rand */
    .scroll-top-btn { bottom: var(--s5); right: var(--s4); }
  }

  /* Sehr kleine Screens: 380px */
  @media (max-width: 380px) {
    :root { --nav-h: 64px; }
    .nav__logo img { height: 48px; }
    .gallery__grid { grid-template-columns: 1fr; }
    .sponsors__grid { grid-template-columns: 1fr; }
    .about__img-wrap img { height: 220px; }
    .gal-item img { min-height: 140px; }
    .gal-item--tall img { min-height: 140px; }
  }

  /* Grosse Screens: 1400px+ */
  @media (min-width: 1400px) {
    :root { --max-w: 1320px; }
    .section { padding-block: calc(var(--s32) + var(--s8)); }
    .stats { padding-block: var(--s20); }
  }

  /* Touch-Optimierungen */
  @media (hover: none) {
    /* Captions immer sichtbar da kein Hover auf Touch */
    .gal-item__caption {
      transform: translateY(0);
      background: linear-gradient(to top, rgba(0,0,0,.75), transparent);
    }
    .gal-item__zoom { display: none; }
    /* Keine Transform-Effekte auf Touch (fühlt sich laggy an) */
    .step-card:hover { transform: none; box-shadow: var(--sh); }
  }

  /* Buttons: 300ms tap delay entfernen */
  .btn, button, a { touch-action: manipulation; }

  /* ============================================================
     SCROLL-TO-TOP
  ============================================================ */
  .scroll-top-btn {
    position: fixed;
    bottom: var(--s6); right: var(--s6);
    z-index: 200;
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: var(--forest-600);
    color: var(--white);
    border-radius: var(--r-full);
    box-shadow: var(--sh-md);
    opacity: 0;
    transform: translateY(14px);
    transition: opacity var(--t), transform var(--t), background var(--t-fast);
    pointer-events: none;
  }
  .scroll-top-btn.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
  .scroll-top-btn:hover { background: var(--forest-700); }
  .scroll-top-btn:focus-visible { outline: 3px solid var(--amber-500); }

