/* Hero */
.hero{position:relative;padding:70px 0 90px;overflow:hidden}
.hero .checker{position:absolute}
.hero .c1{top:0;right:0} .hero .c2{top:44px;right:0}
.hero-in{position:relative;text-align:center;display:grid;justify-items:center;gap:22px}
.hero-logo{font-size:clamp(2.5rem,12.5vw,9.6rem);-webkit-text-stroke:5px var(--navy);text-shadow:9px 9px 0 var(--navy);padding:0 .1em .12em;margin-top:24px}
.hero-sub{font-size:clamp(1.15rem,2.4vw,1.5rem);font-weight:600;max-width:34ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin-top:6px}
.hero-burst{position:absolute;left:0;top:-36px;--s:150px;rotate:-10deg;text-decoration:none;transition:rotate .3s ease}
.hero-burst:hover{rotate:6deg}
.hero-stamp{position:absolute;right:0;bottom:-40px;rotate:9deg;text-decoration:none;transition:rotate .3s ease}
.hero-stamp:hover{rotate:-6deg}
@media (max-width:860px){
  .hero{padding:40px 0 70px}
  .hero-burst{--s:108px;font-size:.9rem;top:-34px;left:-6px}
  .hero-stamp{width:112px;height:112px;font-size:.9rem;bottom:-64px;right:-4px;outline-offset:-10px}
  .hero-logo{-webkit-text-stroke:3px var(--navy);text-shadow:5px 5px 0 var(--navy);margin-top:70px}
}

/* Deals */
.deals-sec{padding-top:30px}
.deals{background:var(--navy);box-shadow:10px 10px 0 var(--orange);padding:62px 28px 34px}
.deals .tab{background:var(--orange);color:var(--paper);font-size:1.7rem;border:var(--border) solid var(--navy)}
.deal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.deal{position:relative;background:var(--yellow);border-radius:18px;padding:26px 22px 24px;display:flex;flex-direction:column;gap:12px;min-height:100%}
.deal h3{font-size:1.6rem;padding-right:84px;padding-bottom:12px;border-bottom:3px solid var(--navy)}
.deal p{font-weight:600;font-size:1.02rem;line-height:1.45}
.deal .burst{--s:104px;position:absolute;right:-18px;top:-28px;background:var(--orange);color:var(--paper);font-size:1.35rem;rotate:8deg;transition:rotate .25s ease,scale .25s ease}
.deal:hover .burst{rotate:-8deg;scale:1.06}
@media (max-width:980px){.deal-grid{grid-template-columns:repeat(2,1fr);row-gap:40px}}
@media (max-width:560px){.deal-grid{grid-template-columns:1fr}.deals{padding:58px 18px 26px}}

/* Speisekarte: links Kategorien, rechts Produkte */
#karte .h2{margin-bottom:34px}
.menu-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:44px;align-items:start}
.menu-nav{position:sticky;top:100px;background:var(--navy);border-radius:var(--r);box-shadow:8px 8px 0 var(--orange);padding:22px 14px}
.menu-nav h3{font:400 1.05rem/1 var(--f-head);color:var(--orange);padding:14px 14px 10px}
.menu-nav h3:first-child{padding-top:4px}
.menu-nav button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  font:400 1.18rem/1.15 var(--f-head);color:var(--paper);padding:.68em 14px;border-radius:14px;transition:background .15s ease}
.menu-nav button small{font:600 .85rem/1 var(--f-body);opacity:.65}
.menu-nav button:hover{background:rgb(255 255 255 / .1)}
.menu-nav button[aria-current=true]{background:var(--yellow);color:var(--navy)}
.menu-nav button[aria-current=true] small{opacity:.8}
.menu-nav button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.menu-body .panel{padding:54px 34px 30px}
.menu-body .panel .tab{font-size:1.6rem}
.menu-body .items{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));column-gap:46px;row-gap:18px}
.menu-body .item{opacity:0;transform:translateY(.5em);filter:blur(6px);animation:in .32s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*22ms)}
@keyframes in{to{opacity:1;transform:none;filter:none}}
@media (prefers-reduced-motion:reduce){.menu-body .item{animation:none;opacity:1;transform:none;filter:none}}
@media (max-width:860px){
  .menu-layout{grid-template-columns:minmax(0,1fr);gap:40px}
  .menu-nav{top:76px;z-index:20;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:10px;border-radius:18px;box-shadow:5px 5px 0 var(--orange);margin-inline:-6px}
  .menu-nav::-webkit-scrollbar{display:none}
  .menu-nav h3{display:none}
  .menu-nav button{width:auto;flex:none;font-size:1.02rem;padding:.7em 1em;white-space:nowrap}
  .menu-nav button small{display:none}
  .menu-body .panel{padding:48px 20px 24px}
}

/* Geschlossen-Hinweis */
.closed-bar{background:var(--red);color:var(--paper);text-align:center;font:400 1.15rem/1.3 var(--f-head);padding:.75em 20px}
.closed-box{background:var(--red);color:var(--paper);border-radius:16px;padding:14px 18px;margin-bottom:16px}
.closed-box b{display:block;font:400 1.3rem/1.2 var(--f-head)}
.closed-next{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:8px}
.closed-next li{background:var(--cream);border:3px dashed var(--red);border-radius:14px;padding:10px 14px;font-weight:600}
.closed-next b{font:400 1.05rem/1.2 var(--f-head);color:var(--red)}

/* Punkte */
.points-sec{background:var(--paper);border-block:var(--border) solid var(--navy)}
.points-in{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.steps{list-style:none;counter-reset:s;padding:0;margin:30px 0 34px;display:grid;gap:18px}
.steps li{counter-increment:s;display:grid;grid-template-columns:54px 1fr;column-gap:16px;align-items:center}
.steps li::before{content:counter(s);grid-row:span 2;width:54px;height:54px;border-radius:50%;background:var(--navy);color:var(--yellow);
  display:grid;place-items:center;font:400 1.5rem/1 var(--f-head)}
.steps b{font:400 1.3rem/1.2 var(--f-head)} .steps span{color:var(--soft)}
.road-preview{--c:var(--navy);background:var(--cream)}
.fine{font-size:.92rem;color:var(--soft);margin-top:18px}
.mini-road{display:grid;gap:16px;position:relative;padding-left:46px}
.mini-road::before{content:"";position:absolute;left:17px;top:10px;bottom:10px;width:6px;border-radius:6px;background:repeating-linear-gradient(var(--orange) 0 14px,transparent 0 24px)}
.mr{position:relative;background:var(--paper);border:var(--border) solid var(--navy);border-radius:16px;padding:14px 18px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.mr::before{content:"";position:absolute;left:-41px;width:28px;height:28px;border-radius:50%;background:var(--yellow);border:var(--border) solid var(--navy)}
.mr b{font:400 1.15rem/1.15 var(--f-head)}
.mr span{font:400 1.05rem/1 var(--f-head);background:var(--navy);color:var(--yellow);border-radius:999px;padding:.5em .8em;white-space:nowrap;display:inline-flex;align-items:center}
@media (max-width:900px){.points-in{grid-template-columns:minmax(0,1fr)}}
.points-in>*{min-width:0}
.mr{flex-wrap:wrap}

/* Standort */
.loc{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:stretch}
.map-box{padding:46px 14px 14px;min-height:460px;display:grid}
.map{grid-area:1/1;border-radius:14px;min-height:400px;height:100%;border:var(--border) solid var(--navy);background:#E9DCC6}
.map-consent{grid-area:1/1;align-self:center;justify-self:center;max-width:380px;text-align:center;display:grid;gap:16px;justify-items:center;padding:20px;z-index:2}
.map .leaflet-tile-pane{filter:grayscale(1) contrast(1.06) brightness(1.04)}
.map .tint{position:absolute;inset:0;z-index:250;pointer-events:none;background:#F6C99A;mix-blend-mode:multiply;opacity:.75}
.map .leaflet-control-attribution{font-size:11px}
.pin{width:64px;height:64px;display:grid;place-items:center;font:400 1rem/1 var(--f-head);color:var(--paper);background:var(--orange);
  clip-path:polygon(50% 0,59% 14%,75% 7%,77% 24%,93% 25%,86% 41%,100% 50%,86% 59%,93% 75%,77% 76%,75% 93%,59% 86%,50% 100%,41% 86%,25% 93%,23% 76%,7% 75%,14% 59%,0 50%,14% 41%,7% 25%,23% 24%,25% 7%,41% 14%);
  filter:drop-shadow(3px 3px 0 var(--navy))}
.info{display:flex;flex-direction:column;gap:6px}
.hours{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.hours li{display:flex;justify-content:space-between;gap:14px;border-bottom:3px dotted var(--orange);padding-bottom:10px;font-weight:600}
.hours b{font:400 1.1rem/1.2 var(--f-head);white-space:nowrap}
.addr{font:400 1.25rem/1.3 var(--f-head);margin-top:18px}
.row-btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:auto;padding-top:20px}
@media (max-width:900px){.loc{grid-template-columns:minmax(0,1fr)}}
