:root{
      color-scheme: light dark;
      --bg:#f8f7f4;
      --fg:#1a1a1a;
      --muted:#4a4a4a;
      --accent:#3f4d27;
      --accent-2:#c6d08e;
      --card:#ffffff;
      --pill-bg:#e6ead3;
      --pill-fg:#3f4d27;
      --danger:#aa0000;
      --footer-bg:#000;
      --footer-fg:#ccc;
      --footer-head:#fff;
      --footer-border:#2a2a2a;
    }
    @media (prefers-color-scheme: dark){
      :root{
        --bg:#111;
        --fg:#f8f7f4;
        --card:#1a1a1a;
        --muted:#bdbdbd;
        --accent:#c6d08e;
        --accent-2:#3f4d27;
        --pill-bg:#3f4d27;
        --pill-fg:#c6d08e;
        --footer-bg:#000;
        --footer-fg:#ccc;
        --footer-head:#fff;
        --footer-border:#2a2a2a;
      }
    }

    *{box-sizing:border-box}
    html,body{
      margin:0;
      padding:0;
      font-family: Montserrat, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Arial, sans-serif;
      color:var(--fg);
      background:var(--bg)
    }
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block;height:auto}
    .container{width:min(1100px, 92vw);margin-inline:auto}
    .visually-hidden{
      position:absolute!important;
      width:1px;height:1px;
      padding:0;margin:-1px;overflow:hidden;
      clip:rect(0 0 0 0);white-space:nowrap;border:0;
    }
    :focus-visible{
      outline:3px solid var(--accent);
      outline-offset:2px;
      border-radius:inherit;
    }
    @media (prefers-reduced-motion: reduce){
      *{transition:none!important;scroll-behavior:auto!important}
    }
    @media (prefers-reduced-motion: no-preference){
      html{scroll-behavior:smooth}
    }

    /* Utility-Klassen */
    .flex{display:flex;}
    .inline-flex{display:inline-flex;}
    .flex-wrap{flex-wrap:wrap;}
    .gap-6{gap:6px;}
    .gap-8{gap:8px;}
    .gap-10{gap:10px;}
    .justify-start{justify-content:flex-start;}
    .justify-between{justify-content:space-between;}
    .w-full{width:100%;}
    .block{display:block;}
    .inline-block{display:inline-block;}
    .text-left{text-align:left;}
    .text-right{text-align:right;}
    .text-muted{color:var(--muted);}
    .mt-4{margin-top:4px;}
    .mt-6{margin-top:6px;}
    .mt-8{margin-top:8px;}
    .mt-10{margin-top:10px;}
    .mt-12{margin-top:12px;}
    .mt-16{margin-top:16px;}
    .mb-0{margin-bottom:0;}
    .items-start{align-items:flex-start;}

    .form-input,
    .form-textarea{
      width:100%;
      padding:10px;
      border:1px solid #ddd;
      border-radius:10px;
      font:inherit;
      color:inherit;
      background:var(--card);
    }

    .form-error{
      font-size:12px;
      line-height:1.4;
      color:var(--danger);
      margin:4px 0 0;
      display:none;
      text-align:left;
    }
    .form-status{
      font-size:14px;
      line-height:1.5;
      color:var(--fg);
      text-align:left;
    }
    .ds-hinweis{
      font-size:12px;
      line-height:1.5;
      color:var(--muted);
      text-align:left;
    }
    .badge-open-now,
    .open-badge{
      font-size:12px;
      font-weight:600;
      margin-left:8px;
      display:inline-block;
      padding:4px 8px;
      line-height:1.3;
      border-radius:999px;
      border:1px solid currentColor;
    }
    .wine-meta-list{
      list-style:none;
      padding:0;
      margin:10px 0 0;
      color:var(--fg);
      line-height:1.5;
      font-size:14px;
      text-align:left;
    }
    .wine-tag-row{
      margin-top:8px;
      display:flex;
      gap:6px;
      flex-wrap:wrap;
      color:var(--fg);
      justify-content:flex-start;
    }
    .wine-note{
      margin-top:12px;
      font-weight:600;
      color:#3f4d27;
      text-align:left;
      font-size:13px;
      line-height:1.4;
    }
    .wine-cta{
      margin-top:12px;
      margin-right:auto;
    }
    .weine-status{
      margin:6px 12px 0 12px;
      color:#ccc;
      text-align:left;
    }
    .map-embed{
      border:0;
      width:100%;
      height:240px;
      border-radius:12px;
      margin-top:12px;
    }
    .map-note{
      margin-top:8px;
      font-size:14px;
      line-height:1.5;
      color:var(--muted);
      text-align:left;
    }
    .honeypot{
      position:absolute;
      left:-9999px;
    }

    .skip{
      position:absolute;
      left:-9999px;
      top:auto;
      width:1px;
      height:1px;
      overflow:hidden
    }
    .skip:focus{
      position:static;
      width:auto;
      height:auto;
      display:inline-block;
      padding:8px 12px;
      background:#000;
      color:#fff;
      border-radius:8px;
      margin:8px
    }
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      padding:10px 16px;
      border-radius:999px;
      background:var(--accent);
      color:#fff;
      font-weight:600;
      font-size:14px;
      line-height:1.2;
      transition:.2s;
      cursor:pointer;
      border:1px solid rgba(0,0,0,.15);
      box-shadow:0 8px 18px rgba(82,97,49,.35)
    }
    .btn:hover,
    .btn:focus{
      transform:translateY(-1px);
      box-shadow:0 10px 22px rgba(82,97,49,.5)
    }
    .btn--dark{
      background:#222;
      color:#fff;
      box-shadow:0 8px 18px rgba(0,0,0,.5)
    }
    .btn--dark:hover,
    .btn--dark:focus{
      box-shadow:0 10px 22px rgba(0,0,0,.7)
    }
    .tag,
    .pill{
      display:inline-block;
      padding:6px 10px;
      border-radius:999px;
      background:var(--pill-bg);
      color:var(--pill-fg);
      font-weight:600;
      font-size:13px;
      letter-spacing:.4px
    }
    .small{
      font-size:13px;
      color:var(--muted)
    }

    /* NAV */
    .nav{
      position:sticky;
      top:0;
      background:rgba(248,247,244,.85);
      backdrop-filter:saturate(150%) blur(8px);
      z-index:100;
      border-bottom:1px solid #e6e3db
    }
    @media (prefers-color-scheme: dark){
      .nav{
        background:rgba(17,17,17,.85);
        border-bottom:1px solid #2a2a2a;
      }
    }
    .nav .inner{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:10px 0;
      position:relative;
      gap:16px;
    }
    .brand{display:flex;gap:10px;align-items:center}
    .brand .logo{width:44px;height:44px;display:block}
    .brand .logo img{
      width:100%;height:100%;
      object-fit:contain;display:block;
      filter:drop-shadow(0 1px 2px rgba(0,0,0,.18))
    }
    .brand span{
      font-weight:600;
      letter-spacing:.5px;
      color:var(--fg);
      font-size:15px;
    }
    .menu{display:flex}
    .menu ul{
      display:flex;
      gap:20px;
      list-style:none;
      margin:0;
      padding:0
    }
    .menu a{
      opacity:.9;
      font-weight:400;
      font-size:14px;
    }
    .menu a:hover,
    .menu a:focus{opacity:1}

    /* Mobile nav / burger */
    .mobile-menu-wrapper{
      position:relative;
      display:none;
      align-items:center;
    }
    .burger{
      appearance:none;
      border:1px solid #d9d6cd;
      background:var(--accent);
      color:#fff;
      border-radius:999px;
      width:44px;
      height:44px;
      display:none;
      align-items:center;
      justify-content:center;
      font-size:20px;
      line-height:0;
      cursor:pointer;
      box-shadow:0 6px 16px rgba(0,0,0,.15);
      transition:transform .15s ease, box-shadow .15s ease;
      backdrop-filter:saturate(140%) blur(6px);
    }
    .burger:hover,
    .burger:focus{
      transform:translateY(-1px);
      box-shadow:0 10px 22px rgba(0,0,0,.2)
    }
    .mobile-menu{
      position:absolute;
      right:0;
      top:calc(100% + 8px);
      background:var(--card);
      border:1px solid #ece9e1;
      border-radius:16px;
      padding:16px;
      box-shadow:0 24px 40px rgba(0,0,0,.18);
      min-width:200px;
      z-index:1000;
    }
    @media (prefers-color-scheme: dark){
      .mobile-menu{
        background:var(--card);
        border:1px solid #2a2a2a;
      }
    }
    .mobile-menu ul{
      list-style:none;
      padding:0;
      margin:0;
      display:flex;
      flex-direction:column;
      gap:12px;
    }
    .mobile-menu a{
      font-weight:600;
      font-size:15px;
      color:var(--fg);
      opacity:.9;
      display:inline-block;
      padding:4px 0;
    }
    .mobile-menu a:hover,
    .mobile-menu a:focus{
      opacity:1;
    }

    /* HERO SLIDER */
    .hero-slider{
      position:relative;
      min-height:clamp(520px, 72vh, 900px);
      color:#fff;
      background:#000;
      overflow:hidden;
      isolation:isolate;
    }
    @supports (min-height: 1svh){
      .hero-slider{ min-height:clamp(520px, 72svh, 900px); }
    }
    .hero-slide{
      position:absolute;
      inset:0;
      opacity:0;
      transition:opacity 1.8s ease-in-out;
      background:#000;
    }
    .hero-slide.is-active{opacity:1}
    .hero-slide::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.4));
      pointer-events:none;
    }
    .hero-slide img{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center;
      display:block;
      transform:scale(1.03);
      transition:transform 3s ease-out;
    }
    .hero-slide.is-active img{
      transform:scale(1);
    }
    .hero-content-wrapper{
      position:relative;
      z-index:2;
      display:grid;
      grid-template-columns:1fr;
      align-items:center;
      min-height:clamp(520px, 72vh, 900px);
      padding:96px 0 72px;
    }
    @supports (min-height: 1svh){
      .hero-content-wrapper{ min-height:clamp(520px, 72svh, 900px); }
    }
    .hero-inner-text{
      margin-right:auto;
      max-width:680px;
      text-align:left;
      color:#fff;
      text-shadow:0 2px 8px rgba(0,0,0,.6);
      padding-inline:16px;
    }

    h1{
      font-size:clamp(28px,3.8vw,48px);
      line-height:1.06;
      margin:16px 0 8px;
      color:#fff;
      font-weight:600;
      letter-spacing:-.02em;
      text-align:left;
    }

    /* Ursprüngliche Hero-Text-Animation überschreiben, damit
       unsere Zeilen-Animation die Sichtbarkeit steuert */
    .hero-text,
    .hero-subline,
    .lead{
      opacity:1;
      transform:none;
    }

    .hero-subline{
      font-size:clamp(15px,1.1vw,18px);
      font-weight:400;
      line-height:1.4;
      margin:0 0 16px;
      color:rgba(255,255,255,.85);
      text-align:left;
    }
    .lead{
      color:#f2f2f2;
      max-width:60ch;
      font-size:16px;
      font-weight:300;
      line-height:1.5;
      text-align:left;
      margin-left:0;
    }

    .hero-controls{
      position:absolute;
      left:0;
      right:0;
      bottom:16px;
      z-index:3;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      pointer-events:auto;
    }
    .hero-dot{
      width:10px;
      height:10px;
      border-radius:999px;
      background:rgba(255,255,255,.4);
      border:1px solid rgba(0,0,0,.4);
      box-shadow:0 4px 10px rgba(0,0,0,.6);
      cursor:pointer;
    }
    .hero-dot.is-active{background:#fff}
    .hero-dot:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

    /* SECTION GENERIC */
    section{ padding:72px 0; }
    h2{
      font-size:clamp(22px,2.6vw,30px);
      margin:0 0 24px;
      font-weight:600;
      line-height:1.3;
      color:var(--fg);
      text-align:left;
      opacity:0;
      transform:translateX(60px);
      transition:transform .8s ease-out, opacity .8s ease-out;
    }
    h3{
      font-size:clamp(18px,2vw,20px);
      font-weight:600;
      line-height:1.4;
      margin:0 0 12px;
      color:var(--fg);
      text-align:left;
      opacity:0;
      transform:translateX(60px);
      transition:transform .8s ease-out, opacity .8s ease-out;
    }

    /* Überschriften, die per Zeilen-Animation laufen,
       sollen nicht mit der Standard-TranslateX-Animation kollidieren */
    h2.js-line-animate,
    h3.js-line-animate{
      opacity:1;
      transform:none;
    }

    /* PANELS / LAYOUTS */
    .panel{
      background:var(--card);
      border:1px solid #ece9e1;
      border-radius:18px;
      padding:24px;
      color:var(--fg);
    }
    @media (prefers-color-scheme: dark){
      .panel{
        background:var(--card);
        border:1px solid #2a2a2a;
      }
    }
    .about{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:28px;
      align-items:start;
    }

    /* ÜBER UNS */
    #ueber{padding-top:80px;}
    #ueber .about{
      grid-template-columns:1fr;
      max-width:980px;
      margin-inline:auto;
      row-gap:18px;
    }
    #ueber .panel{
      background:transparent;
      border:none;
      padding:0;
    }
    #ueber figure.figure-bleed-lg{
      margin:0;
      border-radius:18px;
      overflow:hidden;
    }
    #ueber figure.figure-bleed-lg img{
      width:100%;
      height:auto;
      display:block;
    }
    #ueber .about-text h2{
      margin:10px 0 10px;
      font-weight:600;
      line-height:1.3;
      font-size:clamp(24px,2.8vw,32px);
      color:var(--fg);
      text-align:left;
    }
    #ueber .about-text p{
      font-size:18px;
      line-height:1.7;
      color:var(--fg);
      margin:0 0 16px;
      text-align:left;
    }

    /* TRADITION */
    #tradition .about{
      grid-template-columns:1fr;
      max-width:980px;
      margin-inline:auto;
      row-gap:18px;
    }
    #tradition .panel{
      background:transparent;
      border:none;
      padding:0;
    }
    #tradition figure.tradition-figure{
      margin:0;
      border-radius:18px;
      overflow:hidden;
    }
    #tradition figure.tradition-figure img{
      width:100%;
      height:auto;
      display:block;
    }
    #tradition .tradition-text h2{
      margin:10px 0 10px;
      font-weight:600;
      line-height:1.3;
      font-size:clamp(24px,2.8vw,32px);
      color:var(--fg);
      text-align:left;
    }
    #tradition .tradition-text p{
      font-size:18px;
      line-height:1.7;
      color:var(--fg);
      margin:0 0 16px;
      text-align:left;
    }

    /* ARCHITEKTUR */
    .architektur{
      padding:72px 0;
      background:var(--bg);
      color:var(--fg);
    }
    .architektur .inner{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:28px;
      align-items:stretch;
    }
    .architektur .panel{
      background:var(--card);
      border-radius:18px;
      padding:24px;
    }
    .architektur-figure{
      margin:0;
      border-radius:18px;
      overflow:hidden;
    }
    .architektur-figure img{
      width:100%;
      height:auto;
      display:block;
    }
    .architektur-text{
      background:transparent;
      border:none;
      padding:0;
    }
    .architektur-head{
      margin:6px 0 10px;
      font-weight:600;
      font-size:clamp(24px,2.8vw,32px);
      line-height:1.3;
      opacity:0;
      transform:translateX(60px);
      transition:transform .8s ease-out, opacity .8s ease-out;
    }
    .architektur-lead{
      font-size:18px;
      line-height:1.7;
      color:var(--fg);
      margin:0 0 12px;
    }
    .architektur-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
    .architektur .pill{ background:var(--pill-bg); color:var(--pill-fg); }
    .architektur .architektur-head.in-view{ transform:translateX(0); opacity:1; }

    @media (max-width:900px){
      .architektur .inner{ grid-template-columns:1fr; }
    }

    /* CLAIM */
    .claim{
      padding-top:32px;
    }

    /* WEINE */
    #weine{background:transparent;padding:0}
    .weine-wrapper{
      background:#000;
      color:#fff;
      width:100%;
      padding:72px 0;
    }
    .weine-wrapper h2{
      color:#fff;
      margin:0;
      text-align:left;
      font-size:clamp(22px,2.6vw,30px);
      line-height:1.3;
    }
    .slider{position:relative}
    .slider-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      margin:4px 0 10px;
    }
    .slides{
      display:flex;
      gap:18px;
      overflow:auto;
      padding:4px 12px 10px;
      scroll-snap-type:x mandatory;
      scroll-behavior:smooth;
      -webkit-overflow-scrolling: touch;
      min-height:560px;
      scroll-padding-left:12px;
      scroll-padding-right:12px;
    }
    .wine{
      background:var(--card);
      border:1px solid #ece9e1;
      border-radius:18px;
      padding:18px;
      position:relative;
      min-width:0;
      display:flex;
      flex-direction:column;
      color:var(--fg);
    }
    @media (prefers-color-scheme: dark){
      .wine{ background:var(--card); border:1px solid #2a2a2a; }
    }
    .wine h3{
      margin:10px 0 8px;
      font-size:16px;
      font-weight:600;
      line-height:1.4;
      color:var(--fg);
      text-align:left;
      opacity:0;
      transform:translateX(60px);
      transition:transform .8s ease-out, opacity .8s ease-out;
    }
    .wine p{
      color:var(--muted);
      font-size:14px;
      line-height:1.5;
      margin:0;
      text-align:left;
    }
    .wine-img{ aspect-ratio: 2/3; object-fit: cover; border-radius:12px; }
    .slide{
      scroll-snap-align:start;
      flex:0 0 85%;
      max-width:85%;
    }
    @media (min-width:700px){
      .slide{flex-basis:48%;max-width:48%}
    }
    @media (min-width:1024px){
      .slide{flex-basis:32%;max-width:32%}
    }
    .slider-arrows{
      position:absolute;
      top:50%;
      left:0;
      right:0;
      transform:translateY(-50%);
      display:flex;
      justify-content:space-between;
      pointer-events:none;
      padding:0 4px;
    }
    .slider-btn{
      appearance:none;
      border:1px solid rgba(255,255,255,.25);
      background:rgba(63,77,39,.9);
      color:#fff;
      border-radius:999px;
      width:46px;
      height:46px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      font-size:22px;
      line-height:1;
      cursor:pointer;
      box-shadow:0 16px 28px rgba(0,0,0,.8);
      transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;
      backdrop-filter:saturate(140%) blur(6px);
      pointer-events:auto;
      user-select:none;
      touch-action:manipulation;
    }
    .slider-btn[disabled]{ opacity:.35; cursor:default; box-shadow:none; transform:none; }
    .slider-btn:hover,
    .slider-btn:focus{ transform:translateY(-1px); box-shadow:0 16px 28px rgba(0,0,0,1) }

    .note-below{
      margin-top:16px;
      display:block;
      color:#ccc;
      font-size:13px;
      line-height:1.4;
      text-align:left;
    }
    .legal-note{
      font-size:12px;
      line-height:1.5;
      color:#c2c2c2;
      margin-top:12px;
      text-align:left;
    }

    /* BUSCHENSCHANK CARD */
    .busch-section{
      padding:72px 0;
      background:linear-gradient(180deg, rgba(198,208,142,.12), transparent);
    }
    @media (prefers-color-scheme: dark){
      .busch-section{
        background:linear-gradient(180deg, rgba(63,77,39,.25), transparent);
      }
    }
    .busch-card{
      display:grid;
      grid-template-columns: 1.2fr .8fr;
      gap:28px;
      align-items:stretch;
      background:var(--card);
      border:1px solid #ece9e1;
      border-radius:22px;
      padding:24px;
      box-shadow:0 30px 60px rgba(0,0,0,.12);
    }
    @media (prefers-color-scheme: dark){
      .busch-card{ border:1px solid #2a2a2a; background:var(--card); }
    }
    @media (max-width:900px){
      .busch-card{ grid-template-columns:1fr; }
    }
    .busch-card__content{ display:flex; flex-direction:column; gap:14px; }
    .busch-title{
      font-size:clamp(24px,2.8vw,32px);
      margin:6px 0;
      font-weight:600;
      color:var(--fg);
      opacity:1;
      transform:none;
    }
    .busch-sub{
      font-size:18px;
      line-height:1.7;
      margin:0;
      color:var(--fg);
    }
    .busch-chiprow{ display:flex; flex-wrap:wrap; gap:8px; }
    .busch-list{
      margin:4px 0 0;
      padding-left:0;
      list-style:none;
      display:grid;
      gap:6px;
      color:var(--muted);
      font-size:15px;
      text-align:left;
    }
    .busch-list li{
      position:relative;
      padding-left:22px;
    }
    .busch-list li::before{
      content:"•";
      position:absolute;
      left:0;
      top:0;
      line-height:1;
      color:var(--accent);
    }
    .busch-hours{ margin-top:6px; }
    .busch-hours h3{
      margin:4px 0 6px;
      font-size:clamp(18px,2vw,20px);
      font-weight:600;
      color:var(--fg);
      opacity:1;
      transform:none;
    }
    .hours-grid{
      display:grid;
      grid-template-columns:auto 1fr;
      gap:6px 14px;
      margin:0;
      color:var(--fg);
      font-weight:600;
    }
    .busch-actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:14px;
    }
    .busch-note{ color:var(--muted); }
    .busch-card__media{
      margin:0;
      border-radius:16px;
      overflow:hidden;
      position:relative;
      background:#000;
    }
    .busch-media-img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform:scale(1.03);
      transition:transform .6s ease;
    }
    .busch-card:hover .busch-media-img{ transform:scale(1.06); }

    .alert{
      margin-top:8px;
      padding:10px 12px;
      border-radius:10px;
      border:1px solid var(--danger);
      background:rgba(170,0,0,.06);
      color:var(--danger);
      font-size:12px;
      line-height:1.5;
      text-align:left;
    }
    @media (prefers-color-scheme: dark){
      .alert{ background:rgba(170,0,0,.18); }
    }

    /* FEIERN – Text + Galerie */
    .feiern-section{
      padding:72px 0;
      background:linear-gradient(180deg, rgba(198,208,142,.12), transparent);
    }
    @media (prefers-color-scheme: dark){
      .feiern-section{
        background:linear-gradient(180deg, rgba(63,77,39,.25), transparent);
      }
    }
    .feiern-grid{
      display:grid;
      grid-template-columns:1.2fr .8fr;
      gap:28px;
      align-items:start;
    }
    @media (max-width:640px){
      .feiern-grid{
        grid-template-columns:1fr;
      }
    }
    .feiern-text h2{
      margin-top:10px;
    }
    .feiern-lead{
      font-size:18px;
      line-height:1.7;
      margin:8px 0 16px;
      text-align:left;
    }
    .feiern-tags{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
    }
    .feiern-list{
      margin:0 0 12px;
      padding-left:0;
      list-style:none;
      display:grid;
      gap:6px;
      font-size:15px;
      color:var(--muted);
      text-align:left;
    }
    .feiern-list li{
      position:relative;
      padding-left:20px;
    }
    .feiern-list li::before{
      content:"•";
      position:absolute;
      left:0;
      top:0;
      line-height:1;
      color:var(--accent);
    }
    .feiern-note{
      margin-top:6px;
      text-align:left;
    }
    .feiern-actions{
      margin-top:16px;
      display:flex;
      flex-wrap:wrap;
      gap:10px;
    }

    /* Neue, erweiterte Galerie */
    .feiern-gallery{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      grid-auto-rows:160px;
      gap:10px;
    }
    @media (min-width:900px){
      .feiern-gallery{
        grid-template-columns:repeat(3,minmax(0,1fr));
        grid-auto-rows:190px;
      }
    }
    @media (max-width:640px){
      .feiern-gallery{
        grid-template-columns:1fr;
        grid-auto-rows:220px;
      }
    }

    .feiern-figure{
      margin:0;
      padding:0;
      border:none;
      background:transparent;
      border-radius:16px;
      overflow:hidden;
      position:relative;
      cursor:pointer;
      box-shadow:0 10px 24px rgba(0,0,0,.18);
      transition:transform .25s ease, box-shadow .25s ease, opacity .25s ease;
    }
    .feiern-figure img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform:scale(1.02);
      transition:transform .4s ease;
    }
    .feiern-figure::after{
      content:"Vergrößern";
      position:absolute;
      inset:auto 10px 10px 10px;
      padding:4px 10px;
      border-radius:999px;
      font-size:11px;
      letter-spacing:.08em;
      text-transform:uppercase;
      background:rgba(0,0,0,.55);
      color:#fff;
      text-align:center;
      opacity:0;
      transform:translateY(6px);
      transition:opacity .25s ease, transform .25s ease;
    }

    .feiern-figure--wide{
      grid-column:span 2;
    }
    .feiern-figure--tall{
      grid-row:span 2;
    }

    @media (max-width:640px){
      .feiern-figure--wide,
      .feiern-figure--tall{
        grid-column:span 1;
        grid-row:span 1;
      }
    }

    .feiern-figure:hover,
    .feiern-figure:focus-visible{
      transform:translateY(-4px);
      box-shadow:0 18px 36px rgba(0,0,0,.35);
    }
    .feiern-figure:hover img,
    .feiern-figure:focus-visible img{
      transform:scale(1.06);
    }
    .feiern-figure:hover::after,
    .feiern-figure:focus-visible::after{
      opacity:1;
      transform:translateY(0);
    }

    /* KONTAKT */
    #kontakt h2{
      font-weight:600;
      font-size:clamp(22px,2.6vw,30px);
      line-height:1.3;
      color:var(--fg);
      margin:0 0 16px;
      text-align:left;
    }
    #kontakt h3{
      font-weight:600;
      font-size:clamp(18px,2vw,20px);
      line-height:1.4;
      color:var(--fg);
      margin:0 0 12px;
      text-align:left;
    }
    #kontakt .panel{
      background:var(--card);
      border:1px solid #ece9e1;
      border-radius:18px;
      padding:24px;
      color:var(--fg);
    }
    @media (prefers-color-scheme: dark){
      #kontakt .panel{
        border:1px solid #2a2a2a;
        background:var(--card);
        color:var(--fg);
      }
    }

    .faq{
      margin-top:32px;
    }
    .faq h3{
      text-align:left;
      font-size:clamp(18px,2vw,20px);
      line-height:1.4;
      font-weight:600;
      margin:0 0 8px;
      color:var(--fg);
    }
    .faq details{
      border:1px solid #ece9e1;
      border-radius:12px;
      background:var(--card);
      padding:16px;
      margin-bottom:8px;
      color:var(--fg);
    }
    @media (prefers-color-scheme: dark){
      .faq details{
        border:1px solid #2a2a2a;
        background:var(--card);
        color:var(--fg);
      }
    }
    .faq summary{
      cursor:pointer;
      font-weight:600;
      outline:none;
      list-style:none;
    }
    .faq summary::-webkit-details-marker{display:none}
    .faq p{
      font-size:14px;
      line-height:1.5;
      color:var(--muted);
      margin:12px 0 0;
      text-align:left;
    }

    /* FOOTER */
    .footer{
      background:var(--footer-bg);
      color:var(--footer-fg);
      font-size:14px;
      line-height:1.5;
      padding-top:48px;
      margin-top:16px;
    }
    .footer-top{
      display:grid;
      grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));
      gap:32px;
      border-bottom:1px solid var(--footer-border);
      padding-bottom:32px;
    }
    .footer-col h4{
      color:var(--footer-head);
      margin:0 0 12px;
      font-weight:600;
      font-size:15px;
      line-height:1.3;
      text-align:left;
    }
    .footer-col p,
    .footer-col li,
    .footer-col address,
    .footer-col a{
      color:var(--footer-fg);
      font-size:14px;
      line-height:1.5;
      margin:0;
      text-decoration:none;
      font-style:normal;
      text-align:left;
    }
    .footer-col a:hover,
    .footer-col a:focus{ color:#fff; }
    .footer-nav-list,
    .footer-legal-list{
      list-style:none;
      padding:0;
      margin:0;
      display:flex;
      flex-direction:column;
      gap:8px;
    }
    .footer-legal-list{
      margin-top:16px;
      font-size:13px;
      color:#888;
      line-height:1.4;
    }
    .footer-contact-actions{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:16px;
    }
    .footer-contact-actions .btn{
      font-size:14px;
      padding:10px 14px;
      border-radius:999px;
      line-height:1.2;
      background:var(--accent);
      color:#fff;
      border:1px solid rgba(0,0,0,.15);
      box-shadow:0 8px 18px rgba(82,97,49,.35);
    }
    .footer-hours{
      font-size:13px;
      line-height:1.4;
      color:var(--footer-fg);
    }
    .footer-hours strong{
      display:block;
      font-weight:600;
      color:var(--footer-head);
      margin-bottom:4px;
      font-size:14px;
      line-height:1.4;
      text-align:left;
    }
    .footer-bottom{
      padding:16px 0 24px;
      font-size:12px;
      line-height:1.4;
      color:#999;
      text-align:left;
    }
    .footer-brand-logo{
      width:90px;
      height:auto;
      margin-bottom:10px;
      filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));
    }

    /* Lightbox */
    .lightbox{
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.9);
      display:none;
      align-items:center;
      justify-content:center;
      z-index:2000;
    }
    .lightbox.active{display:flex;}
    .lightbox img{
      max-width:90vw;
      max-height:85vh;
      border-radius:12px;
      box-shadow:0 0 40px rgba(0,0,0,.8);
      display:block;
    }
    .lightbox-close-btn{
      position:absolute;
      top:16px;
      right:16px;
      background:#000;
      color:#fff;
      border:1px solid #444;
      border-radius:999px;
      font-size:20px;
      line-height:1;
      width:36px;
      height:36px;
      display:flex;
      align-items:center;
      justify-content:center;
      cursor:pointer;
      box-shadow:0 16px 32px rgba(0,0,0,.8);
    }

    .lightbox-arrow{
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      background:#000;
      border:1px solid #444;
      border-radius:999px;
      width:40px;
      height:40px;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:22px;
      line-height:1;
      cursor:pointer;
      box-shadow:0 12px 24px rgba(0,0,0,.8);
    }
    .lightbox-arrow--prev{ left:16px; }
    .lightbox-arrow--next{ right:16px; }
    .lightbox-arrow:focus-visible{
      outline:2px solid var(--accent);
      outline-offset:2px;
    }

    @media (max-width:900px){
      .about{grid-template-columns:1fr}
    }
    @media (max-width:640px){
      .menu{display:none}
      .mobile-menu-wrapper{display:flex}
      .burger{display:inline-flex}
      .brand span{display:none;}
      .hero-slider{ min-height:clamp(440px, 78svh, 900px); }
      .hero-content-wrapper{ min-height:clamp(440px, 78svh, 900px); padding-top:80px; }
      .hero-inner-text{
        text-align:left;
        margin:0;
      }

      .footer-nav-list{
        flex-direction:row;
        flex-wrap:wrap;
        gap:10px 14px;
      }
      .footer-nav-list li{
        display:inline-flex;
      }

      .about{
        display:flex;
        flex-direction:column;
      }
      .claim .inner{
        display:flex;
        flex-direction:column;
      }
      .claim .inner .panel:first-child{
        order:2;
      }
      .claim .inner .panel:last-child{
        order:1;
      }
      .feiern-grid{
        display:flex;
        flex-direction:column;
      }
      .feiern-gallery{
        order:1;
      }
      .feiern-text{
        order:2;
      }
    }

    [inert]{ pointer-events:none; }
    [inert] *{ pointer-events:none; }

    .in-view{ transform:translateX(0)!important; opacity:1!important; }

    /* ---------------------------------- */
    /*       ZEILEN-ANIMATION (NEU)      */
    /* ---------------------------------- */

    .js-line-animate{
      position:relative;
    }
    .line-block{
      display:block;
      overflow:hidden;
    }
    .line-block-inner{
      display:inline-block;
      transform:translateX(-40px);
      opacity:0;
      transition:transform 0.7s ease-out, opacity 0.7s ease-out;
      will-change:transform, opacity;
    }
    .line-block-inner.is-visible{
      transform:translateX(0);
      opacity:1;
    }

/* --- WordPress Overrides / Editable Theme Hooks --- */

/* Make sure content anchor jump isn't hidden under fixed nav on home */
html{ scroll-padding-top: 110px; }

body.home .nav,
body.front-page .nav{
  position:fixed;
  top:0; left:0; right:0;
  width:100%;
  background:transparent;
  border-bottom:0;
}

body.home .nav:not(.is-solid) .menu a,
body.front-page .nav:not(.is-solid) .menu a,
body.home .nav:not(.is-solid) .brand span,
body.front-page .nav:not(.is-solid) .brand span{
  color:#fff;
}

body.home .nav:not(.is-solid) .brand .logo img,
body.front-page .nav:not(.is-solid) .brand .logo img{
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.35));
}

body.home .nav.is-solid,
body.front-page .nav.is-solid{
  background:rgba(248,247,244,.92);
  border-bottom:1px solid #e6e3db;
}

body.home .nav.is-solid .menu a,
body.front-page .nav.is-solid .menu a,
body.home .nav.is-solid .brand span,
body.front-page .nav.is-solid .brand span{
  color: inherit;
}

/* Ensure nav sits above hero */
.nav{ z-index:9999; }

/* WordPress widget styling inside footer columns */
.footer .widget{ margin:0 0 18px; }
.footer .widget:last-child{ margin-bottom:0; }
.footer .widget-title{ margin:0 0 10px; font-weight:700; }

/* Gutenberg content spacing */
.wp-content-area{ padding: 56px 0; }
.wp-content-area > *:first-child{ margin-top:0; }
