/* Schriften lokal gehostet – keine Verbindung zu Drittservern (DSGVO) */
  @font-face{
    font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;
    src:url('fonts/anton-latin-400-normal.woff2') format('woff2');
  }
  @font-face{
    font-family:'Manrope';font-style:normal;font-weight:300;font-display:swap;
    src:url('fonts/manrope-latin-300-normal.woff2') format('woff2');
  }
  @font-face{
    font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;
    src:url('fonts/manrope-latin-400-normal.woff2') format('woff2');
  }
  @font-face{
    font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;
    src:url('fonts/manrope-latin-500-normal.woff2') format('woff2');
  }
  @font-face{
    font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;
    src:url('fonts/manrope-latin-700-normal.woff2') format('woff2');
  }
  :root{
    --bg:#0B0D0A;
    --bg-2:#10140F;
    --pine:#17251A;
    --pine-soft:rgba(28,52,34,0.5);
    --green:#72B846;
    --green-deep:#3E7A21;
    --green-bright:#9BDC66;
    --green-glow:rgba(114,184,70,0.5);
    --amber:#D8A650;
    --amber-glow:rgba(216,166,80,0.4);
    --cream:#F2F1E8;
    --cream-dim:rgba(242,241,232,0.64);
    --cream-faint:rgba(242,241,232,0.4);
    --line-green:rgba(114,184,70,0.35);
    --line-faint:rgba(242,241,232,0.12);
    --wa:#25D366;
    --maxw:1220px;
    --display:'Anton', 'Arial Narrow', Impact, sans-serif;
    --body:'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:70px;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--cream);
    font-family:var(--body);
    font-size:16.5px;
    font-weight:300;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  ::selection{background:var(--green);color:var(--bg);}
  img{max-width:100%;display:block;}
  a{color:var(--green-bright);}

  /* ---------- typografie ---------- */
  .display{
    font-family:var(--display);
    font-weight:400;
    text-transform:uppercase;
    line-height:0.98;
    letter-spacing:0.01em;
    margin:0;
    color:var(--cream);
    text-shadow:0 0 24px rgba(155,220,102,0.22), 0 0 90px rgba(114,184,70,0.18);
  }
  .display em{font-style:normal;color:var(--green-bright);text-shadow:0 0 30px var(--green-glow), 0 0 100px rgba(114,184,70,0.35);}
  .scene h2.display, .scene h1.display{font-size:clamp(2.7rem, 8vw, 6.6rem);}
  .kicker{
    font-family:var(--body);font-weight:700;
    font-size:0.78rem;letter-spacing:0.34em;text-transform:uppercase;
    color:var(--green);margin:0 0 22px;
    display:flex;align-items:center;gap:14px;
  }
  .kicker::before{content:"";width:42px;height:1px;background:var(--green);box-shadow:0 0 8px var(--green-glow);flex:none;}
  .lede{font-size:clamp(1rem, 1.4vw, 1.15rem);color:var(--cream-dim);max-width:36em;font-weight:300;}

  /* ---------- ladeanimation ---------- */
  .loader{
    position:fixed;inset:0;z-index:300;
    background:var(--bg);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;
    transition:opacity 0.7s ease, visibility 0.7s ease;
  }
  .loader.is-done{opacity:0;visibility:hidden;}
  .loader__word{
    font-family:var(--display);text-transform:uppercase;
    font-size:clamp(2.2rem, 8vw, 4.2rem);letter-spacing:0.1em;
    color:var(--cream);overflow:hidden;display:block;
  }
  .loader__word span{display:block;transform:translateY(110%);animation:loaderUp 0.9s cubic-bezier(0.22,1,0.36,1) 0.1s forwards;}
  .loader__word em{font-style:normal;color:var(--green-bright);text-shadow:0 0 30px var(--green-glow);}
  @keyframes loaderUp{to{transform:translateY(0);}}
  .loader__line{
    width:min(240px, 50vw);height:1px;position:relative;overflow:hidden;
    background:var(--line-faint);
  }
  .loader__line::after{
    content:"";position:absolute;inset:0;transform:scaleX(0);transform-origin:left;
    background:linear-gradient(90deg, var(--green), var(--green-bright));
    box-shadow:0 0 12px var(--green-glow);
    animation:loaderLine 1.1s cubic-bezier(0.22,1,0.36,1) 0.25s forwards;
  }
  @keyframes loaderLine{to{transform:scaleX(1);}}

  /* ---------- fixe ebenen ---------- */
  .scroll-progress{
    position:fixed;top:0;left:0;z-index:120;
    height:2px;width:0%;
    background:linear-gradient(90deg, var(--green), var(--green-bright));
    box-shadow:0 0 10px var(--green-glow);
    pointer-events:none;
  }
  .dust-canvas{
    position:fixed;inset:0;width:100%;height:100%;
    z-index:60;pointer-events:none;mix-blend-mode:screen;
  }
  .cursor-glow{
    position:fixed;top:0;left:0;z-index:55;
    width:360px;height:360px;border-radius:50%;
    pointer-events:none;mix-blend-mode:screen;
    background:radial-gradient(circle, rgba(114,184,70,0.13) 0%, rgba(216,166,80,0.05) 40%, transparent 68%);
    transform:translate(-50%,-50%);
    opacity:0;transition:opacity 0.6s ease;
  }
  @media (hover:hover) and (pointer:fine){ .cursor-glow.is-on{opacity:1;} }

  /* ---------- header ---------- */
  .site-header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    padding:22px clamp(20px, 4vw, 48px);
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    transition:background 0.5s ease, padding 0.4s ease;
  }
  .site-header.is-scrolled{
    background:linear-gradient(180deg, rgba(11,13,10,0.92), rgba(11,13,10,0));
    padding-top:14px;padding-bottom:14px;
  }
  .logo{
    font-family:var(--display);font-size:1.5rem;letter-spacing:0.1em;
    color:var(--cream);text-decoration:none;
    text-shadow:0 0 18px rgba(155,220,102,0.3);
  }
  .logo span{color:var(--green-bright);}
  /* Firmenlogo auf weißer Plakette — klar sichtbar auf dunklem Grund */
  .logo-plate{
    display:inline-flex;align-items:center;
    background:#fff;border-radius:9px;
    padding:6px 12px;text-decoration:none;
    box-shadow:0 4px 20px rgba(0,0,0,0.45), 0 0 26px rgba(114,184,70,0.28);
    transition:box-shadow 0.35s ease, transform 0.35s ease;
  }
  .logo-plate:hover{box-shadow:0 4px 24px rgba(0,0,0,0.5), 0 0 40px rgba(114,184,70,0.45);transform:scale(1.03);}
  .logo-plate img{display:block;height:46px;width:auto;}
  @media (max-width: 640px){ .logo-plate img{height:36px;} .logo-plate{padding:5px 9px;} }
  .hero-logo{margin:0 0 34px;}
  .hero-logo img{
    display:block;width:min(230px, 55vw);height:auto;
    background:#fff;border-radius:12px;padding:12px 16px;
    box-shadow:0 0 50px rgba(114,184,70,0.32), 0 18px 44px rgba(0,0,0,0.5);
  }
  .footer-logo{
    display:block;margin:0 auto 42px;
    width:min(230px, 56vw);height:auto;
    background:#fff;border-radius:12px;padding:12px 16px;
    box-shadow:0 0 46px rgba(114,184,70,0.3), 0 16px 40px rgba(0,0,0,0.5);
    transition:box-shadow 0.4s ease, transform 0.4s ease;
  }
  .footer-logo:hover{box-shadow:0 0 64px rgba(114,184,70,0.45), 0 16px 40px rgba(0,0,0,0.5);transform:scale(1.02);}
  .header-right{display:flex;align-items:center;gap:16px;}
  .header-tel{
    display:inline-flex;align-items:center;gap:10px;
    color:var(--cream);text-decoration:none;
    font-weight:700;font-size:0.82rem;letter-spacing:0.16em;
    padding:12px 18px;border:1px solid var(--line-green);border-radius:999px;
    background:rgba(11,13,10,0.4);
    transition:border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
    white-space:nowrap;
  }
  .header-tel:hover{border-color:var(--green-bright);box-shadow:0 0 18px rgba(114,184,70,0.35);color:var(--green-bright);}
  .header-tel svg{width:15px;height:15px;stroke:var(--green-bright);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;}
  @media (max-width:640px){ .header-tel span{display:none;} .header-tel{padding:12px 13px;} }
  .burger{
    width:52px;height:52px;border-radius:50%;
    border:1px solid var(--line-green);
    background:rgba(11,13,10,0.4);
    cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    transition:border-color 0.3s ease, box-shadow 0.3s ease;
  }
  .burger:hover{border-color:var(--green-bright);box-shadow:0 0 18px rgba(114,184,70,0.35);}
  .burger span{display:block;width:20px;height:1.5px;background:var(--cream);transition:transform 0.35s ease, opacity 0.3s ease;}
  body.menu-open .burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
  body.menu-open .burger span:nth-child(2){opacity:0;}
  body.menu-open .burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

  /* ---------- fullscreen-menü ---------- */
  .menu-overlay{
    position:fixed;inset:0;z-index:90;
    background:#0B0D0A radial-gradient(130% 120% at 50% 0%, rgba(23,37,26,0.9) 0%, rgba(11,13,10,0) 70%);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
    opacity:0;visibility:hidden;transition:opacity 0.5s ease, visibility 0.5s ease;
  }
  body.menu-open .menu-overlay{opacity:1;visibility:visible;}
  .menu-overlay a{
    font-family:var(--display);text-transform:uppercase;text-decoration:none;
    font-size:clamp(1.5rem, 4.8vh, 2.7rem);letter-spacing:0.05em;
    color:var(--cream-dim);padding:3px 18px;
    transform:translateY(24px);opacity:0;
    transition:color 0.3s ease, text-shadow 0.3s ease, transform 0.55s cubic-bezier(0.22,1,0.36,1), opacity 0.55s ease;
  }
  body.menu-open .menu-overlay a{transform:translateY(0);opacity:1;}
  .menu-overlay a:hover{color:var(--green-bright);text-shadow:0 0 26px var(--green-glow);}
  .menu-overlay a:nth-child(1){transition-delay:0.05s;} .menu-overlay a:nth-child(2){transition-delay:0.09s;}
  .menu-overlay a:nth-child(3){transition-delay:0.13s;} .menu-overlay a:nth-child(4){transition-delay:0.17s;}
  .menu-overlay a:nth-child(5){transition-delay:0.21s;} .menu-overlay a:nth-child(6){transition-delay:0.25s;}
  .menu-overlay a:nth-child(7){transition-delay:0.29s;} .menu-overlay a:nth-child(8){transition-delay:0.33s;}
  .menu-overlay a:nth-child(9){transition-delay:0.37s;}

  /* ---------- szenen (full-viewport kapitel) ---------- */
  .scene{
    position:relative;overflow:hidden;
    min-height:100vh;min-height:100dvh;
    display:flex;align-items:center;
    padding:120px 0;
  }
  .scene__bg{
    position:absolute;inset:-6% 0;
    z-index:0;pointer-events:none;
    background:radial-gradient(120% 100% at 50% 30%, var(--pine) 0%, var(--bg-2) 55%, var(--bg) 100%);
    background-size:cover;background-position:center;
    will-change:transform;
  }
  .scene__bg video{
    position:absolute;top:50%;left:50%;
    min-width:100%;min-height:100%;width:auto;height:auto;
    transform:translate(-50%,-50%) scale(var(--vscale, 1.12));
    object-fit:cover;
    opacity:0;transition:opacity 2s ease;
    will-change:transform;
  }
  .scene__bg.is-playing video{opacity:var(--scene-video-opacity, 0.5);}
  /* Mobil: Videos deutlich ruhiger — kein Zusatz-Zoom, halbe Deckkraft, dunklerer Schleier */
  @media (max-width: 760px){
    .scene__bg video{transform:translate(-50%,-50%) scale(1.0);}
    .scene__bg.is-playing video{opacity:calc(var(--scene-video-opacity, 0.5) * 0.5);}
    .scene__bg::after{
      background:linear-gradient(180deg, rgba(11,13,10,0.94) 0%, rgba(11,13,10,0.62) 28%, rgba(11,13,10,0.62) 70%, rgba(11,13,10,0.96) 100%);
    }
  }
  .scene__bg::after{
    content:"";position:absolute;inset:0;
    background:
      linear-gradient(180deg, rgba(11,13,10,0.85) 0%, rgba(11,13,10,0.3) 26%, rgba(11,13,10,0.3) 68%, rgba(11,13,10,0.93) 100%),
      radial-gradient(90% 90% at 30% 50%, transparent 0%, rgba(11,13,10,0.55) 100%);
  }
  .scene > .wrap{position:relative;z-index:2;}
  .wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px, 4.5vw, 48px);}

  .glow-orb{
    position:absolute;border-radius:50%;pointer-events:none;z-index:1;
    background:radial-gradient(circle, rgba(114,184,70,0.28) 0%, rgba(114,184,70,0.07) 45%, transparent 70%);
    filter:blur(6px);
    animation:orbFloat 16s ease-in-out infinite;
  }
  @keyframes orbFloat{
    0%,100%{transform:translate(0,0) scale(1);}
    50%{transform:translate(3%,-7%) scale(1.15);}
  }

  /* ---------- reveals ---------- */
  .reveal{opacity:0;transform:translateY(46px);transition:opacity 0.9s ease, transform 0.9s cubic-bezier(0.22,1,0.36,1);}
  .reveal.is-visible{opacity:1;transform:none;}
  .reveal-line{display:block;overflow:hidden;}
  .reveal-line > span{display:block;transform:translateY(110%);transition:transform 1s cubic-bezier(0.22,1,0.36,1);}
  .is-visible .reveal-line > span, .reveal-line.is-visible > span{transform:translateY(0);}
  .reveal-line:nth-child(2) > span{transition-delay:0.1s;}
  .reveal-line:nth-child(3) > span{transition-delay:0.2s;}
  .d1{transition-delay:0.15s;} .d2{transition-delay:0.3s;} .d3{transition-delay:0.45s;} .d4{transition-delay:0.6s;}

  /* ---------- buttons ---------- */
  .btn-ring{
    display:inline-flex;align-items:center;justify-content:center;text-align:center;
    width:168px;height:168px;border-radius:50%;
    border:1px solid var(--line-green);
    color:var(--cream);text-decoration:none;
    font-weight:700;font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;
    padding:26px;position:relative;
    transition:border-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s ease, background 0.4s ease;
    background:rgba(11,13,10,0.3);
  }
  .btn-ring::before{
    content:"";position:absolute;inset:8px;border-radius:50%;
    border:1px dashed rgba(114,184,70,0.3);
    transition:transform 8s linear;
  }
  .btn-ring:hover{
    border-color:var(--green-bright);
    box-shadow:0 0 34px rgba(114,184,70,0.4), inset 0 0 24px rgba(114,184,70,0.12);
    transform:scale(1.045);
    background:rgba(23,37,26,0.5);
  }
  .btn-ring:hover::before{transform:rotate(180deg);}
  .btn-line{
    display:inline-flex;align-items:center;gap:12px;
    color:var(--cream);text-decoration:none;
    font-weight:700;font-size:0.82rem;letter-spacing:0.24em;text-transform:uppercase;
    padding:16px 4px;border-bottom:1px solid var(--line-green);
    transition:color 0.3s ease, border-color 0.3s ease, text-shadow 0.3s ease, gap 0.3s ease;
  }
  .btn-line:hover{color:var(--green-bright);border-color:var(--green-bright);text-shadow:0 0 18px var(--green-glow);gap:18px;}
  .btn-line .arr{transition:transform 0.3s ease;}
  .btn-line:hover .arr{transform:translateX(6px);}
  .btn-solid{
    display:inline-block;text-decoration:none;cursor:pointer;
    background:linear-gradient(135deg, var(--green), #4E9430);
    color:#0B1408;font-weight:700;font-size:0.85rem;letter-spacing:0.2em;text-transform:uppercase;
    padding:20px 42px;border:none;border-radius:2px;
    box-shadow:0 0 30px rgba(114,184,70,0.35);
    transition:box-shadow 0.35s ease, transform 0.35s ease;
    font-family:var(--body);
  }
  .btn-solid:hover{box-shadow:0 0 48px rgba(114,184,70,0.6);transform:translateY(-2px);}

  /* ---------- hero ---------- */
  .hero{padding-top:0;padding-bottom:0;}
  .hero .wrap{padding-top:110px;padding-bottom:130px;}
  .hero h1.display{font-size:clamp(3.1rem, 10.5vw, 8.6rem);}
  .hero__lede{margin:34px 0 44px;}
  .hero__cta{display:flex;align-items:center;gap:clamp(24px, 4vw, 48px);flex-wrap:wrap;}
  .hero__trust{
    list-style:none;display:flex;gap:28px;flex-wrap:wrap;
    margin:56px 0 0;padding:0;
    font-size:0.8rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--cream-faint);font-weight:500;
  }
  .hero__trust li{display:flex;align-items:center;gap:10px;}
  .hero__trust li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green-glow);}
  .hero__trust b{color:var(--green-bright);font-weight:700;}
  .scroll-hint{
    position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:3;
    display:flex;flex-direction:column;align-items:center;gap:10px;
    font-size:0.66rem;letter-spacing:0.32em;text-transform:uppercase;color:var(--cream-faint);
  }
  .scroll-hint::after{
    content:"";width:1px;height:52px;
    background:linear-gradient(180deg, var(--green), transparent);
    animation:hintPulse 2.2s ease-in-out infinite;
  }
  @keyframes hintPulse{0%,100%{opacity:0.3;transform:scaleY(0.6);transform-origin:top;}50%{opacity:1;transform:scaleY(1);}}

  /* ---------- leistungen ---------- */
  .service-grid{
    display:grid;grid-template-columns:repeat(3, 1fr);gap:1px;
    background:var(--line-faint);
    border:1px solid var(--line-faint);
    margin-top:64px;
  }
  .service{
    background:rgba(11,13,10,0.72);
    backdrop-filter:blur(6px);
    padding:38px 30px;
    display:flex;flex-direction:column;gap:16px;
    transition:background 0.4s ease, box-shadow 0.4s ease;
  }
  .service:hover{background:rgba(23,37,26,0.85);box-shadow:inset 0 0 40px rgba(114,184,70,0.1);}
  .service svg{width:34px;height:34px;stroke:var(--green-bright);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px rgba(114,184,70,0.5));}
  .service h3{
    font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:0.05em;
    font-size:1.3rem;margin:0;color:var(--cream);
    text-shadow:0 0 16px rgba(155,220,102,0.2);
  }
  .service p{margin:0;font-size:0.93rem;color:var(--cream-dim);}
  .service__tags{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px;}
  .service__tags li{
    font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;
    color:var(--cream-faint);
    border:1px solid var(--line-faint);border-radius:999px;padding:5px 12px;
  }
  .az-block{margin-top:70px;}
  .az-title{
    font-size:0.78rem;letter-spacing:0.34em;text-transform:uppercase;font-weight:700;
    color:var(--green);margin:0 0 26px;
    display:flex;align-items:center;gap:14px;
  }
  .az-title::after{content:"";height:1px;flex:1;background:linear-gradient(90deg, var(--line-green), transparent);}
  .az-list{
    list-style:none;margin:0;padding:0;
    display:grid;grid-template-columns:repeat(4, 1fr);gap:10px 26px;
  }
  .az-list li{
    display:flex;align-items:center;gap:12px;
    font-size:0.92rem;color:var(--cream-dim);
    padding:9px 2px;border-bottom:1px solid var(--line-faint);
  }
  .az-list li::before{
    content:"";width:6px;height:6px;flex:none;
    background:var(--green);transform:rotate(45deg);
    box-shadow:0 0 8px var(--green-glow);
  }

  /* ---------- emotionale zwischen-momente (licht-flächen) ---------- */
  .image-break{
    position:relative;overflow:hidden;
    height:clamp(380px, 62vh, 640px);
    background:
      radial-gradient(70% 110% at 50% 118%, rgba(216,166,80,0.18) 0%, rgba(216,166,80,0.05) 38%, transparent 62%),
      radial-gradient(120% 100% at 50% 40%, var(--pine) 0%, var(--bg-2) 52%, var(--bg) 100%);
  }
  .image-break::before{
    content:"";position:absolute;left:50%;top:50%;
    width:min(560px, 74vw);height:min(560px, 74vw);
    transform:translate(-50%,-50%) translateY(var(--ipy, 0px));
    border-radius:50%;
    border:1px solid rgba(216,166,80,0.22);
    box-shadow:0 0 70px rgba(216,166,80,0.13), inset 0 0 90px rgba(216,166,80,0.09);
    will-change:transform;
  }
  .image-break::after{
    content:"";position:absolute;left:50%;bottom:0;
    width:min(720px, 90vw);height:1px;transform:translateX(-50%);
    background:linear-gradient(90deg, transparent, rgba(114,184,70,0.55), transparent);
    box-shadow:0 0 18px rgba(114,184,70,0.4);
  }
  .image-break__caption{
    position:absolute;z-index:2;inset:0;
    display:flex;align-items:center;justify-content:center;text-align:center;
    padding:0 24px;
  }
  .image-break__caption .display{font-size:clamp(1.9rem, 5.6vw, 4.3rem);}

  /* ---------- vorher / nachher ---------- */
  .ba{
    position:relative;overflow:hidden;
    border:1px solid var(--line-faint);border-radius:5px;
    aspect-ratio:16 / 9;
    max-width:960px;margin:64px auto 0;
    background:var(--bg-2);
    --pos:50%;
  }
  .ba svg{position:absolute;inset:0;width:100%;height:100%;display:block;}
  .ba__after{
    position:absolute;inset:0;
    clip-path:inset(0 0 0 var(--pos));
  }
  .ba__handle{
    position:absolute;top:0;bottom:0;left:var(--pos);
    width:1px;background:var(--green-bright);
    box-shadow:0 0 16px var(--green-glow);
    pointer-events:none;
  }
  .ba__handle::after{
    content:"⟨ ⟩";position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:52px;height:52px;border-radius:50%;
    background:rgba(11,13,10,0.85);
    border:1px solid var(--green-bright);
    color:var(--green-bright);font-size:0.8rem;font-weight:700;letter-spacing:0.05em;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 0 24px rgba(114,184,70,0.4);
  }
  .ba__range{
    position:absolute;inset:0;width:100%;height:100%;
    opacity:0;cursor:ew-resize;margin:0;
  }
  .ba__label{
    position:absolute;top:18px;z-index:2;pointer-events:none;
    font-size:0.68rem;letter-spacing:0.28em;text-transform:uppercase;font-weight:700;
    padding:8px 14px;border-radius:2px;
    background:rgba(11,13,10,0.72);border:1px solid var(--line-faint);
  }
  .ba__label--before{left:18px;color:var(--cream-faint);}
  .ba__label--after{right:18px;color:var(--green-bright);border-color:var(--line-green);}
  .ba-note{
    text-align:center;margin:24px 0 0;
    font-size:0.7rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--cream-faint);
  }

  /* ---------- ablauf ---------- */
  .steps-grid{
    display:grid;grid-template-columns:repeat(4, 1fr);gap:1px;
    background:var(--line-faint);border:1px solid var(--line-faint);
    margin-top:64px;counter-reset:step;
  }
  .step{
    background:rgba(11,13,10,0.72);backdrop-filter:blur(6px);
    padding:40px 30px;position:relative;
    transition:background 0.4s ease, box-shadow 0.4s ease;
  }
  .step:hover{background:rgba(23,37,26,0.85);box-shadow:inset 0 0 40px rgba(114,184,70,0.1);}
  .step__num{
    font-family:var(--display);font-size:2.6rem;line-height:1;
    color:var(--green-bright);
    text-shadow:0 0 24px var(--green-glow);
    margin-bottom:20px;
  }
  .step h3{
    font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:0.05em;
    font-size:1.25rem;margin:0 0 12px;color:var(--cream);
  }
  .step p{margin:0;font-size:0.92rem;color:var(--cream-dim);}

  /* ---------- über uns / stats ---------- */
  .about-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(36px, 6vw, 90px);align-items:start;margin-top:24px;}
  .stats-row{
    display:grid;grid-template-columns:repeat(4, 1fr);gap:clamp(20px, 3vw, 44px);
    margin:70px 0 0;text-align:center;
  }
  .stat__num{
    font-family:var(--display);font-size:clamp(2.6rem, 6vw, 4.8rem);line-height:1;
    color:var(--green-bright);
    text-shadow:0 0 30px var(--green-glow), 0 0 80px rgba(114,184,70,0.3);
  }
  .stat__num small{font-size:0.45em;letter-spacing:0.08em;}
  .stat__label{margin-top:14px;font-size:0.72rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--cream-faint);font-weight:500;}
  .fleet-list{list-style:none;margin:44px 0 0;padding:0;display:flex;flex-direction:column;}
  .fleet-list li{
    display:flex;justify-content:space-between;align-items:baseline;gap:18px;
    padding:17px 2px;border-bottom:1px solid var(--line-faint);
    font-size:0.95rem;color:var(--cream-dim);
  }
  .fleet-list li b{
    font-family:var(--display);font-weight:400;letter-spacing:0.06em;
    color:var(--green-bright);font-size:1.05rem;text-transform:uppercase;
    text-shadow:0 0 14px rgba(114,184,70,0.35);white-space:nowrap;
  }
  .benefit-row{display:grid;grid-template-columns:repeat(3, 1fr);gap:1px;background:var(--line-faint);border:1px solid var(--line-faint);margin-top:70px;}
  .benefit{background:rgba(11,13,10,0.72);padding:40px 34px;}
  .benefit h3{
    font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:0.05em;
    font-size:1.35rem;margin:0 0 14px;color:var(--cream);
    text-shadow:0 0 16px rgba(155,220,102,0.2);
  }
  .benefit p{margin:0;font-size:0.95rem;color:var(--cream-dim);}

  /* ---------- galerie (horizontaler strip) ---------- */
  .gallery-strip{
    display:flex;gap:clamp(14px, 2vw, 26px);
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    padding:56px clamp(20px, 4.5vw, 48px) 26px;
    cursor:grab;
    scrollbar-width:none;
  }
  .gallery-strip::-webkit-scrollbar{display:none;}
  .gallery-card--video{background:radial-gradient(120% 120% at 30% 20%, rgba(23,37,26,0.9), rgba(11,13,10,0.98));}
  .gallery-strip.is-dragging{cursor:grabbing;scroll-snap-type:none;}
  .gallery-card{
    flex:0 0 auto;scroll-snap-align:center;
    width:min(78vw, 640px);
    position:relative;overflow:hidden;border-radius:4px;
    border:1px solid var(--line-faint);
    background:var(--bg-2);
    margin:0;
  }
  .gallery-card img, .gallery-card video{
    width:100%;height:min(58vh, 480px);object-fit:cover;
    transform:scale(1.08) translateY(var(--gpy, 0px));
    transition:transform 0.8s cubic-bezier(0.22,1,0.36,1), filter 0.6s ease;
    filter:saturate(0.92) brightness(0.9);
    will-change:transform;
  }
  .gallery-card:hover img, .gallery-card:hover video{transform:scale(1.02);filter:saturate(1) brightness(1);}
  .gallery-card figcaption{
    position:absolute;left:0;right:0;bottom:0;
    padding:60px 26px 20px;
    background:linear-gradient(180deg, transparent, rgba(11,13,10,0.88));
    font-family:var(--display);font-size:1.1rem;letter-spacing:0.1em;text-transform:uppercase;
    color:var(--cream);text-shadow:0 0 14px rgba(155,220,102,0.25);
  }
  .gallery-hint{
    display:flex;align-items:center;gap:14px;justify-content:flex-end;
    padding:0 clamp(20px, 4.5vw, 48px);
    font-size:0.68rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--cream-faint);
  }
  .gallery-hint::after{content:"⟶";color:var(--green);font-size:1.1rem;animation:hintX 2s ease-in-out infinite;}
  @keyframes hintX{0%,100%{transform:translateX(0);}50%{transform:translateX(8px);}}
  .gallery-note{
    padding:26px clamp(20px, 4.5vw, 48px) 0;
    font-size:0.7rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--cream-faint);
  }

  /* ---------- einzugsgebiet ---------- */
  .env-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(36px, 6vw, 90px);align-items:start;margin-top:24px;}
  .area-chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:40px 0 0;padding:0;}
  .area-chips li{
    font-size:0.78rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;
    color:var(--cream-dim);
    border:1px solid var(--line-faint);border-radius:999px;padding:10px 18px;
    transition:border-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
  }
  .area-chips li:hover{border-color:var(--line-green);color:var(--green-bright);box-shadow:0 0 14px rgba(114,184,70,0.18);}
  .area-chips li.is-hq{border-color:var(--line-green);color:var(--green-bright);}
  .map-shield{
    position:relative;border:1px solid var(--line-faint);border-radius:4px;
    background:linear-gradient(140deg, rgba(23,37,26,0.75), rgba(11,13,10,0.9));
    min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
    text-align:center;padding:34px;
  }
  .map-shield p{margin:0;font-size:0.86rem;color:var(--cream-faint);max-width:30em;}
  .map-shield h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:1.4rem;margin:0;color:var(--cream);}
  #gebiet iframe{width:100%;height:420px;border:1px solid var(--line-faint);border-radius:4px;filter:grayscale(0.4) invert(0.9) hue-rotate(120deg);}

  /* ---------- bewertungen ---------- */
  .rating-hero{text-align:center;max-width:860px;margin:0 auto;}
  .rating-hero .score{
    font-family:var(--display);font-size:clamp(4.4rem, 14vw, 10rem);line-height:1;
    color:var(--green-bright);
    text-shadow:0 0 40px var(--green-glow), 0 0 140px rgba(114,184,70,0.4);
  }
  .rating-hero .score small{font-size:0.32em;color:var(--cream-dim);text-shadow:none;letter-spacing:0.06em;}
  .rating-quote{
    font-family:var(--display);font-weight:400;text-transform:uppercase;
    font-size:clamp(1.3rem, 3.4vw, 2.3rem);line-height:1.25;letter-spacing:0.04em;
    color:var(--cream);margin:44px 0 0;
    text-shadow:0 0 22px rgba(155,220,102,0.2);
  }
  .rating-src{margin-top:26px;font-size:0.76rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--cream-faint);}
  .gstars{
    margin-top:18px;font-size:1.5rem;letter-spacing:0.3em;
    color:var(--green-bright);
    text-shadow:0 0 18px var(--green-glow), 0 0 50px rgba(114,184,70,0.35);
    min-height:1em;
  }
  .gstars .off{color:rgba(242,241,232,0.22);text-shadow:none;}
  .review-cta{
    margin-top:44px;
    display:flex;align-items:center;justify-content:center;gap:clamp(20px, 3vw, 40px);flex-wrap:wrap;
  }
  .reviews-grid{
    display:grid;grid-template-columns:repeat(auto-fit, minmax(290px, 1fr));gap:18px;
    max-width:1060px;margin:64px auto 0;
  }
  .review-card{
    border:1px solid var(--line-faint);border-radius:5px;
    background:linear-gradient(160deg, rgba(23,37,26,0.55), rgba(11,13,10,0.82));
    backdrop-filter:blur(6px);
    padding:26px 24px;text-align:left;
    animation:cardIn 0.8s cubic-bezier(0.22,1,0.36,1) both;
    transition:border-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease;
  }
  .review-card:hover{border-color:var(--line-green);box-shadow:0 0 30px rgba(114,184,70,0.18);transform:translateY(-4px);}
  .review-card:nth-child(2){animation-delay:0.12s;} .review-card:nth-child(3){animation-delay:0.24s;}
  .review-card:nth-child(4){animation-delay:0.36s;} .review-card:nth-child(5){animation-delay:0.48s;}
  @keyframes cardIn{from{opacity:0;transform:translateY(34px);}to{opacity:1;transform:translateY(0);}}
  .review-card__head{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
  .review-card__avatar{
    width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;
    border:1px solid var(--line-green);
    background:var(--pine);
  }
  .review-card__avatar--initial{
    display:flex;align-items:center;justify-content:center;
    font-family:var(--display);font-size:1.2rem;color:var(--green-bright);
  }
  .review-card__name{font-weight:700;font-size:0.95rem;color:var(--cream);text-decoration:none;}
  a.review-card__name:hover{color:var(--green-bright);}
  .review-card__date{font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--cream-faint);margin-top:2px;}
  .review-card__stars{font-size:0.95rem;letter-spacing:0.18em;color:var(--green-bright);text-shadow:0 0 10px var(--green-glow);margin-bottom:10px;}
  .review-card__stars .off{color:rgba(242,241,232,0.22);text-shadow:none;}
  .review-card__text{
    margin:0;font-size:0.92rem;color:var(--cream-dim);
    display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;
  }
  .reviews-note{
    text-align:center;margin:26px 0 0;
    font-size:0.7rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--cream-faint);
  }
  .consent-shield{
    max-width:640px;margin:56px auto 0;
    border:1px solid var(--line-faint);border-radius:5px;
    background:linear-gradient(160deg, rgba(26,46,22,0.55), rgba(11,13,10,0.82));
    padding:34px;text-align:center;
  }
  .consent-shield p{margin:0 0 20px;font-size:0.88rem;color:var(--cream-faint);}
  .consent-shield .btn-solid{cursor:pointer;}

  /* ---------- faq ---------- */
  .faq-wrap{max-width:860px;margin:56px auto 0;}
  .faq-wrap details{
    border:1px solid var(--line-faint);border-radius:4px;margin-bottom:14px;
    background:rgba(16,20,15,0.6);
    transition:border-color 0.3s ease;
  }
  .faq-wrap details[open]{border-color:var(--line-green);}
  .faq-wrap summary{
    cursor:pointer;padding:22px 26px;
    font-family:var(--display);text-transform:uppercase;letter-spacing:0.06em;font-size:1.02rem;
    color:var(--cream-dim);list-style:none;
    display:flex;justify-content:space-between;align-items:center;gap:16px;
    transition:color 0.3s ease;
  }
  .faq-wrap summary:hover{color:var(--cream);}
  .faq-wrap summary::-webkit-details-marker{display:none;}
  .faq-wrap summary::after{content:"+";color:var(--green-bright);font-size:1.3rem;flex:none;}
  .faq-wrap details[open] summary{color:var(--green-bright);}
  .faq-wrap details[open] summary::after{content:"–";}
  .faq-body{padding:0 26px 26px;font-size:0.94rem;color:var(--cream-dim);}
  .faq-body p{margin:0;}

  /* ---------- anfrage ---------- */
  .booking-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(40px, 6vw, 90px);align-items:start;}
  .contact-list{display:flex;flex-direction:column;gap:14px;margin-top:44px;}
  .contact-list a{
    display:flex;justify-content:space-between;align-items:center;gap:16px;
    padding:20px 24px;text-decoration:none;
    border:1px solid var(--line-faint);border-radius:3px;
    color:var(--cream);font-weight:700;font-size:0.82rem;letter-spacing:0.18em;text-transform:uppercase;
    transition:border-color 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
    background:rgba(11,13,10,0.5);
  }
  .contact-list a small{display:block;font-weight:400;letter-spacing:0.08em;text-transform:none;color:var(--cream-faint);font-size:0.78rem;margin-top:3px;}
  .contact-list a:hover{border-color:var(--green);box-shadow:0 0 26px rgba(114,184,70,0.25);background:rgba(23,37,26,0.6);}
  .contact-list a .arr{color:var(--green-bright);flex:none;}
  .contact-list a.wa:hover{border-color:var(--wa);box-shadow:0 0 26px rgba(37,211,102,0.25);}
  .form-panel{
    border:1px solid var(--line-green);border-radius:5px;
    background:linear-gradient(160deg, rgba(23,37,26,0.6), rgba(11,13,10,0.85));
    backdrop-filter:blur(8px);
    padding:clamp(28px, 4vw, 46px);
    box-shadow:0 0 60px rgba(114,184,70,0.08), inset 0 0 60px rgba(11,13,10,0.4);
  }
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .form-field{display:flex;flex-direction:column;gap:8px;}
  .form-field--full{grid-column:1 / -1;}
  .form-field label{font-size:0.7rem;letter-spacing:0.26em;text-transform:uppercase;color:var(--cream-faint);font-weight:700;}
  .form-field input, .form-field select, .form-field textarea{
    background:rgba(11,13,10,0.7);
    border:1px solid var(--line-faint);border-radius:3px;
    color:var(--cream);font-family:var(--body);font-size:1rem;font-weight:300;
    padding:15px 16px;
    transition:border-color 0.3s ease, box-shadow 0.3s ease;
    width:100%;
  }
  .form-field select option{background:var(--bg-2);color:var(--cream);}
  .form-field input:focus, .form-field select:focus, .form-field textarea:focus{
    outline:none;border-color:var(--green);box-shadow:0 0 16px rgba(114,184,70,0.25);
  }
  .form-field textarea{min-height:110px;resize:vertical;}
  .form-note{font-size:0.78rem;color:var(--cream-faint);margin:18px 0 0;}
  .form-note a{color:var(--cream-faint);}
  .form-panel .btn-solid{width:100%;margin-top:26px;}

  /* ---------- footer / kontakt ---------- */
  .footer-scene{padding:140px 0 60px;text-align:center;}
  .footer-links{display:flex;flex-direction:column;align-items:center;gap:26px;margin:70px 0 0;}
  .footer-links a{
    font-family:var(--display);text-transform:uppercase;text-decoration:none;
    font-size:clamp(1.15rem, 3vw, 1.8rem);letter-spacing:0.08em;
    color:var(--cream-dim);
    transition:color 0.3s ease, text-shadow 0.3s ease, transform 0.3s ease;
    display:inline-flex;align-items:center;gap:14px;
  }
  .footer-links a::after{content:"◆";font-size:0.5em;color:var(--green);opacity:0.7;}
  .footer-links a:hover{color:var(--green-bright);text-shadow:0 0 28px var(--green-glow);transform:scale(1.03);}
  .footer-meta{
    margin-top:60px;
    font-size:0.82rem;letter-spacing:0.1em;color:var(--cream-faint);line-height:2;
  }
  .footer-small{
    margin-top:70px;padding-top:30px;border-top:1px solid var(--line-faint);
    display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
    font-size:0.74rem;letter-spacing:0.12em;color:var(--cream-faint);
  }
  .footer-small a{color:var(--cream-faint);text-decoration:none;}
  .footer-small a:hover{color:var(--green-bright);}

  /* ---------- legal ---------- */
  .legal-wrap{max-width:860px;margin:70px auto 0;text-align:left;}
  .legal-wrap details{
    border:1px solid var(--line-faint);border-radius:4px;margin-bottom:16px;
    background:rgba(16,20,15,0.6);
  }
  .legal-wrap summary{
    cursor:pointer;padding:20px 24px;
    font-family:var(--display);text-transform:uppercase;letter-spacing:0.08em;font-size:1.05rem;
    color:var(--cream-dim);list-style:none;
  }
  .legal-wrap summary::-webkit-details-marker{display:none;}
  .legal-wrap summary::after{content:"+";float:right;color:var(--green);}
  .legal-wrap details[open] summary::after{content:"–";}
  .legal-body{padding:0 24px 26px;font-size:0.9rem;color:var(--cream-dim);}
  .legal-body h3{font-size:0.95rem;color:var(--cream);margin:22px 0 8px;}
  .legal-body p{margin:0 0 12px;}

  /* ---------- lightbox ---------- */
  .lightbox{
    position:fixed;inset:0;z-index:140;
    background:rgba(6,8,6,0.96);
    display:flex;align-items:center;justify-content:center;
    opacity:0;visibility:hidden;transition:opacity 0.4s ease, visibility 0.4s ease;
    padding:5vh 5vw;
  }
  .lightbox.is-open{opacity:1;visibility:visible;}
  .lightbox img{max-width:100%;max-height:82vh;border:1px solid var(--line-green);border-radius:3px;box-shadow:0 0 80px rgba(114,184,70,0.15);}
  .lightbox figcaption{
    position:absolute;bottom:4vh;left:0;right:0;text-align:center;
    font-size:0.8rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--cream-dim);
  }
  .lb-btn{
    position:absolute;z-index:2;
    width:54px;height:54px;border-radius:50%;
    border:1px solid var(--line-green);background:rgba(11,13,10,0.6);
    color:var(--cream);font-size:1.15rem;cursor:pointer;
    transition:border-color 0.3s ease, box-shadow 0.3s ease;
  }
  .lb-btn:hover{border-color:var(--green-bright);box-shadow:0 0 20px var(--green-glow);}
  .lb-close{top:24px;right:24px;}
  .lb-prev{left:20px;top:50%;transform:translateY(-50%);}
  .lb-next{right:20px;top:50%;transform:translateY(-50%);}

  /* ---------- sticky cta (mobil) ---------- */
  .sticky-cta{
    position:fixed;left:14px;right:14px;bottom:14px;z-index:80;
    display:none;text-align:center;text-decoration:none;
    background:linear-gradient(135deg, var(--green), #4E9430);
    color:#0B1408;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;font-size:0.8rem;
    padding:17px 20px;border-radius:3px;
    box-shadow:0 8px 34px rgba(0,0,0,0.5), 0 0 26px rgba(114,184,70,0.35);
    transform:translateY(130%);transition:transform 0.45s cubic-bezier(0.22,1,0.36,1);
  }
  .sticky-cta.is-visible{transform:translateY(0);}

  /* ---------- focus & a11y ---------- */
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible{
    outline:2px solid var(--green-bright);outline-offset:3px;
  }
  .skip-link{
    position:absolute;left:-9999px;top:0;z-index:400;
    background:var(--green);color:#0B1408;padding:12px 20px;font-weight:700;
  }
  .skip-link:focus{left:12px;top:12px;}

  /* ---------- responsive ---------- */
  @media (max-width: 1020px){
    .service-grid{grid-template-columns:repeat(2, 1fr);}
    .az-list{grid-template-columns:repeat(2, 1fr);}
    .steps-grid{grid-template-columns:repeat(2, 1fr);}
    .about-grid{grid-template-columns:1fr;}
    .env-grid{grid-template-columns:1fr;}
    .booking-grid{grid-template-columns:1fr;}
    .stats-row{grid-template-columns:repeat(2, 1fr);gap:44px 20px;}
    .benefit-row{grid-template-columns:1fr;}
  }
  @media (max-width: 640px){
    body{font-size:15.5px;}
    .scene{padding:90px 0;}
    .hero .wrap{padding-top:90px;padding-bottom:110px;}
    .service-grid{grid-template-columns:1fr;}
    .az-list{grid-template-columns:1fr;}
    .steps-grid{grid-template-columns:1fr;}
    .form-grid{grid-template-columns:1fr;}
    .btn-ring{width:142px;height:142px;font-size:0.7rem;}
    .sticky-cta{display:block;}
    .gallery-card{width:84vw;}
    .footer-small{justify-content:center;text-align:center;}
  }

  /* ---------- reduced motion ---------- */
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *, *::before, *::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}
    .reveal, .reveal-line > span{opacity:1 !important;transform:none !important;}
    .loader{display:none;}
    .cursor-glow{display:none;}
  }
