/* ════════════════════════════════════════════════════════════════
   WALLACE GASTROPUB PRATO — THE HIGHLAND ROCK EXPERIENCE
   Scottish Highlands × Celtic × Rock Concert × Gastropub × UI 2500
   ════════════════════════════════════════════════════════════════ */

:root{
  /* Hintergrund */
  --bg-0:#080808; --bg-1:#11100E; --bg-2:#171411;
  /* Holz & Leder */
  --wood-1:#3B2418; --wood-2:#5A3421; --wood-3:#7A4B2B;
  /* Messing & Gold */
  --brass:#B78A45; --gold:#D1A45B;
  /* Rock-Rot */
  --red-1:#8A1010; --red-2:#C32121;
  /* Tartan-Grün */
  --green-1:#173E32; --green-2:#245244;
  /* Text */
  --ink:#F1E8D6; --ink-dim:#C7BBA8; --white:#FFFFFF;

  --font-display:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  --font-body:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;

  --maxw:1180px;
  --nav-h:64px;
  --ease:cubic-bezier(.22,.8,.24,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html:focus-within{scroll-behavior:smooth}
body{
  background:var(--bg-0);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--ink)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--red-1);color:var(--white)}
body::after{ /* feines Filmkorn — bewusst ohne mix-blend-mode (das kostet jedes Bild) */
  content:"";position:fixed;inset:0;z-index:250;pointer-events:none;
  background:url("tex/grain.svg");background-size:300px 300px;
  opacity:.035;
}

/* WICHTIG: hidden-Attribut muss IMMER gewinnen — auch gegen display:flex/grid der Overlays */
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skiplink{position:fixed;top:-48px;left:12px;z-index:300;background:var(--brass);color:#141210;padding:.6rem 1.2rem;border-radius:4px;font-weight:600;transition:top .2s}
.skiplink:focus{top:12px;color:#141210}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}

/* ── Pills / Buttons ─────────────────────────────────────────── */
.pill{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.72rem 1.5rem;border-radius:999px;
  border:1px solid rgba(183,138,69,.45);
  background:rgba(23,20,17,.65);
  color:var(--ink);font-weight:600;font-size:.92rem;letter-spacing:.04em;
  transition:transform .25s var(--ease),border-color .25s,background .25s,color .25s;
  min-height:44px;
}
.pill:hover{transform:translateY(-2px);border-color:var(--gold);color:var(--white)}
.pill--brass{background:linear-gradient(160deg,var(--gold),var(--brass) 60%,#8f6a33);color:#171310;border-color:transparent;text-shadow:0 1px 0 rgba(255,255,255,.25)}
.pill--brass:hover{color:#000;box-shadow:0 6px 24px -6px rgba(209,164,91,.5)}
.pill--red{background:linear-gradient(160deg,var(--red-2),var(--red-1));color:var(--white);border-color:transparent}
.pill--red:hover{color:#fff;box-shadow:0 6px 24px -6px rgba(195,33,33,.55)}
.pill--big{padding:1rem 2.2rem;font-size:1.05rem}

/* ── Chips (Filter) ──────────────────────────────────────────── */
.chipbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.2rem 0}
.chip{
  padding:.45rem 1.05rem;border-radius:999px;font-size:.85rem;letter-spacing:.03em;
  border:1px solid rgba(199,187,168,.25);color:var(--ink-dim);
  background:rgba(23,20,17,.5);transition:all .2s;min-height:38px;
}
.chip:hover{border-color:var(--brass);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--green-1);border-color:var(--green-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--green-2)}

/* ── Sektions-Basics ─────────────────────────────────────────── */
section{position:relative;padding:clamp(4rem,9vw,7.5rem) clamp(1.1rem,4vw,2.5rem);scroll-margin-top:calc(var(--nav-h) + 6px)}
.sectiontitle{
  font-family:var(--font-display);
  font-size:clamp(2rem,5.2vw,3.6rem);
  letter-spacing:.06em;line-height:1.08;
  color:var(--ink);text-transform:uppercase;
  margin-bottom:.6rem;
}
.sectiontitle--red{color:var(--red-2);text-shadow:0 2px 0 rgba(0,0,0,.7),0 0 22px rgba(195,33,33,.22)}
.sectiontitle--brass{color:var(--gold)}
.sectionsub{color:var(--ink-dim);max-width:56ch;margin-bottom:1rem;font-size:1.02rem}

/* Reveal-Animationen (mit Funktion, nicht Deko) */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* ════════════════ NAVIGATION ════════════════ */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:120;height:var(--nav-h);
  display:flex;align-items:center;gap:1.4rem;
  padding:0 clamp(.9rem,3vw,2rem);
  background:linear-gradient(180deg,rgba(8,8,8,.88),rgba(8,8,8,.55));
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(183,138,69,.18);
  transform:translateY(0);transition:transform .35s var(--ease),background .3s;
}
.nav.is-hidden{transform:translateY(-100%)}
.nav__brand{display:flex;align-items:center;gap:.6rem;color:var(--ink)}
.nav__crest{width:34px;height:34px;background:url("crest.svg") center/contain no-repeat;filter:drop-shadow(0 0 6px rgba(209,164,91,.35))}
.nav__name{font-family:var(--font-display);font-size:1rem;letter-spacing:.14em}
.nav__name i{color:var(--brass);font-style:normal}
.nav__links{display:flex;gap:1.15rem;margin-left:auto}
.nav__links a{
  color:var(--ink-dim);font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;
  padding:.4rem 0;position:relative;
}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--gold);transition:right .25s var(--ease)}
.nav__links a:hover{color:var(--ink)}
.nav__links a:hover::after{right:0}
.nav__right{display:flex;align-items:center;gap:.7rem;margin-left:.5rem}
.pill--nav{padding:.5rem 1.15rem;font-size:.8rem}

.soundbtn{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(199,187,168,.25);color:var(--ink-dim);transition:all .2s}
.soundbtn:hover{color:var(--gold);border-color:var(--brass)}
.soundbtn[aria-pressed="true"]{color:var(--gold);border-color:var(--brass);box-shadow:0 0 12px rgba(209,164,91,.25)}
.soundbtn[aria-pressed="true"] .mute{display:none}
.soundbtn[aria-pressed="false"] .waves{opacity:.25}

/* Sprachwahl */
.langswitch{position:relative}
.langswitch__btn{
  display:flex;align-items:center;gap:.4rem;padding:.45rem .8rem;border-radius:999px;
  border:1px solid rgba(199,187,168,.25);font-size:.8rem;letter-spacing:.08em;color:var(--ink-dim);
}
.langswitch__btn:hover{border-color:var(--brass);color:var(--ink)}
.langswitch__list{
  position:absolute;top:calc(100% + 8px);right:0;list-style:none;min-width:150px;
  background:rgba(17,16,14,.97);border:1px solid rgba(183,138,69,.3);border-radius:10px;
  padding:.4rem;box-shadow:0 18px 44px -10px rgba(0,0,0,.7);
}
.langswitch__list li button{
  width:100%;text-align:left;padding:.5rem .8rem;border-radius:6px;font-size:.9rem;color:var(--ink-dim);
}
.langswitch__list li button:hover{background:rgba(183,138,69,.12);color:var(--ink)}
.langswitch__list li button[aria-selected="true"]{color:var(--gold)}

.nav__burger{display:none;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--brass);position:relative;background:radial-gradient(circle at 50% 40%,#241c13,#141210)}
.nav__burger span{position:absolute;left:12px;right:12px;height:2px;background:var(--gold);border-radius:2px;transition:all .3s var(--ease)}
.nav__burger span:nth-child(1){top:15px}
.nav__burger span:nth-child(2){top:22px}
.nav__burger span:nth-child(3){top:29px}
.nav__burger[aria-expanded="true"] span:nth-child(1){top:22px;transform:rotate(45deg)}
.nav__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav__burger[aria-expanded="true"] span:nth-child(3){top:22px;transform:rotate(-45deg)}

.mobilemenu{
  position:fixed;inset:0;z-index:110;background:rgba(8,8,8,.97);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;
  padding:5rem 2rem 3rem;
}
.mobilemenu nav{display:flex;flex-direction:column;text-align:center;gap:.35rem}
.mobilemenu a{
  font-family:var(--font-display);font-size:clamp(1.5rem,6.5vw,2.2rem);
  color:var(--ink);letter-spacing:.08em;text-transform:uppercase;padding:.35rem 1rem;
}
.mobilemenu a:hover{color:var(--gold)}
.mobilemenu__lang{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:2rem}

/* ════════════════ 1 · TÜR-OPENER — KINO-FAHRT (Realfilm, Scroll-Scrub) ════════════════
   Echtes generiertes Filmmaterial: Kamera fährt auf die Eichentür zu, sie öffnet
   sich, Fahrt hinein ins Wallace. Scroll steuert die Zeitachse (ALL-INTRA-Encode).
   Fallback ohne Video: Tür-Foto mit langsamem Push-in. */
.opener{height:340vh;padding:0;position:relative}
.opener__sticky{
  position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;
  background:#040303;
}
.hero-film{position:absolute;inset:0;overflow:hidden}
.hero-film video{width:100%;height:100%;object-fit:cover;display:block;
  animation:heroDrift 26s ease-in-out infinite alternate}
/* Sobald der Film wirklich läuft, ist die Ersatzbewegung nicht mehr nötig */
.hero-film.is-playing video{animation:none}
@keyframes heroDrift{
  from{transform:scale(1.04) translate3d(0,0,0)}
  to{transform:scale(1.13) translate3d(-1.2%,-1%,0)}
}
.hero-film__grade{ /* Farb-Grade: warm unten, dunkel oben — Text bleibt lesbar */
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(4,3,3,.55) 0%,transparent 26% 62%,rgba(4,3,3,.62) 100%);
}
.hero-film__smoke{position:absolute;inset:-10%;pointer-events:none;opacity:.5;will-change:transform;
  background:
    radial-gradient(38% 30% at 22% 72%,rgba(226,205,175,.1),transparent 70%),
    radial-gradient(30% 26% at 70% 40%,rgba(226,205,175,.08),transparent 70%);
  filter:blur(24px);
  animation:smokeDrift 34s ease-in-out infinite alternate;
}
@keyframes smokeDrift{
  from{transform:translate3d(-3%,2%,0) scale(1)}
  to{transform:translate3d(4%,-3%,0) scale(1.15)}
}
.hero-film__embers{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-film__embers span{
  position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;
  background:#f0b45c;box-shadow:0 0 8px 2px rgba(240,180,92,.55);
  opacity:0;animation:emberRise linear infinite;
}
@keyframes emberRise{
  0%{transform:translate3d(0,0,0) scale(.8);opacity:0}
  14%{opacity:.85}
  100%{transform:translate3d(var(--dx,20px),-92vh,0) scale(1.2);opacity:0}
}
.hero-film__vignette{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(118% 92% at 50% 46%,transparent 55%,rgba(4,3,3,.55) 88%,rgba(4,3,3,.85) 100%)}
/* Fallback: kein Video verfügbar → Tür-Foto mit ruhigem Push-in */
.hero-film.is-still video{display:none}
.hero-film.is-still{background:url("img/door.webp") center/cover no-repeat}
@keyframes doorPush{from{transform:scale(1)}to{transform:scale(1.12)}}
.hero-film.is-still::before{content:"";position:absolute;inset:-4%;
  background:url("img/door.webp") center/cover no-repeat;
  animation:doorPush 22s linear infinite alternate;will-change:transform}

/* ── Ankunft: Titel & Aktionen ── */
.pub__content{
  position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:0 1.2rem;opacity:0;transform:scale(.97);pointer-events:none;
  background:radial-gradient(72% 60% at 50% 56%,rgba(4,3,3,.5),rgba(4,3,3,.12) 74%);
}
.pub__content.is-open{pointer-events:auto}
.pub__crest{width:clamp(72px,10vw,110px);aspect-ratio:1;background:url("crest.svg") center/contain no-repeat;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.9)) drop-shadow(0 0 14px rgba(209,164,91,.35));margin-bottom:1.1rem}
.pub__title{
  font-family:var(--font-display);font-size:clamp(3rem,11vw,7.2rem);line-height:.95;
  letter-spacing:.1em;color:var(--ink);
  text-shadow:0 2px 0 rgba(0,0,0,.85),0 10px 34px rgba(0,0,0,.9);
}
.pub__title span{display:block;font-size:clamp(.8rem,2vw,1.15rem);letter-spacing:.6em;color:var(--gold);margin-top:.7rem;padding-left:.6em;text-shadow:0 1px 0 #000}
.pub__claim{
  font-family:var(--font-display);font-size:clamp(1.15rem,3vw,1.8rem);letter-spacing:.35em;
  color:var(--red-2);margin-top:1.3rem;text-shadow:0 1px 0 rgba(0,0,0,.9),0 0 18px rgba(195,33,33,.3);
}
.pub__sub{color:var(--ink-dim);margin-top:.5rem;max-width:44ch;text-shadow:0 1px 2px rgba(0,0,0,.9)}
.pub__actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center;margin-top:1.8rem}

/* Aufforderung */
.opener__invite{
  position:absolute;inset:auto 0 7vh 0;z-index:8;text-align:center;pointer-events:none;
  transition:opacity .5s;
}
.opener__invite{animation:inviteBreath 3.6s ease-in-out infinite}
@keyframes inviteBreath{0%,100%{opacity:1}50%{opacity:.72}}
.opener__enter{
  font-family:var(--font-display);font-size:clamp(1.25rem,3.4vw,2rem);
  letter-spacing:.42em;color:var(--ink);text-shadow:0 2px 4px #000,0 0 24px rgba(232,166,74,.25);
  padding-left:.42em;
}
.opener__hint{color:var(--ink-dim);font-size:.85rem;letter-spacing:.14em;margin-top:.6rem;text-transform:uppercase;text-shadow:0 1px 2px #000}
.opener__arrow{width:22px;height:22px;margin:1rem auto 0;border-right:2px solid var(--brass);border-bottom:2px solid var(--brass);
  transform:rotate(45deg);animation:arrowNudge 2s ease-in-out infinite}
@keyframes arrowNudge{0%,100%{transform:rotate(45deg) translate(0,0);opacity:.9}50%{transform:rotate(45deg) translate(6px,6px);opacity:.4}}

.opener__sound{
  position:absolute;top:calc(var(--nav-h) + 16px);right:clamp(1rem,3vw,2rem);z-index:9;
  padding:.55rem 1.2rem;border-radius:999px;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-dim);border:1px solid rgba(199,187,168,.3);background:rgba(5,4,4,.78);
  transition:all .25s;
}
.opener__sound:hover{color:var(--gold);border-color:var(--brass)}
.opener__sound.is-on{color:var(--gold);border-color:var(--brass)}

/* ════════════════ 2 · THIS IS WALLACE ════════════════ */
.thisis{background:var(--bg-1);overflow:hidden}
.thisis__layers{position:absolute;inset:0;pointer-events:none}
.thisis__stone{position:absolute;inset:-12% 0;opacity:.95;will-change:transform;
  background:
    linear-gradient(180deg,rgba(8,7,6,.88),rgba(8,7,6,.45) 45%,rgba(8,7,6,.9)),
    url("img/interior.webp") center/cover no-repeat;
}
.thisis__tartan{position:absolute;inset:-14% -4%;opacity:.16;will-change:transform;
  background:
    repeating-linear-gradient(0deg,transparent 0 34px,rgba(23,62,50,.9) 34px 52px,transparent 52px 60px,rgba(138,16,16,.55) 60px 64px),
    repeating-linear-gradient(90deg,transparent 0 34px,rgba(36,82,68,.9) 34px 52px,transparent 52px 60px,rgba(209,164,91,.4) 60px 64px);
}
.thisis__inner{position:relative;max-width:var(--maxw);margin:0 auto;text-align:center}
.thisis__words{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;justify-content:center;margin:2.4rem 0}
.bigword{
  font-family:var(--font-display);font-size:clamp(1.7rem,5.4vw,3.4rem);letter-spacing:.22em;
  color:transparent;-webkit-text-stroke:1px rgba(199,187,168,.5);
  transition:color .5s,text-shadow .5s;
}
.bigword.is-in:hover,.bigword.is-lit{color:var(--ink);-webkit-text-stroke:0}
.bigword--red.is-in{color:var(--red-2);-webkit-text-stroke:0;text-shadow:0 0 30px rgba(195,33,33,.4)}
.bigword--brass.is-in{color:var(--gold);-webkit-text-stroke:0;text-shadow:0 0 26px rgba(209,164,91,.4)}
.thisis__text{font-size:clamp(1.1rem,2.6vw,1.5rem);color:var(--ink);max-width:34ch;margin:0 auto 2.6rem;font-family:var(--font-display);font-style:italic}
.thisis__string{max-width:720px;margin:0 auto}
.thisis__pour{margin:3.4rem calc(50% - 50vw) 0;width:100vw;position:relative}
.pourvid{
  width:100%;height:min(72vh,620px);object-fit:cover;display:block;
  background:#0b0908;
}
.thisis__pour::after{ /* oben/unten weich in die Sektion einblenden */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,var(--bg-1) 0%,transparent 16% 82%,var(--bg-1) 100%);
}

/* ════════════════ 3 · KULTUREN ════════════════ */
.cultures{background:var(--bg-0);padding-bottom:0}
.cultures__head{max-width:var(--maxw);margin:0 auto}
.cultures__track{
  display:grid;grid-auto-flow:column;grid-auto-columns:min(78vw,460px);gap:1.4rem;
  overflow-x:auto;scroll-snap-type:x mandatory;
  padding:2.2rem clamp(1.1rem,4vw,2.5rem) 3.4rem;
  scrollbar-width:thin;scrollbar-color:var(--wood-3) var(--bg-1);
}
.cultures__track::-webkit-scrollbar{height:8px}
.cultures__track::-webkit-scrollbar-thumb{background:var(--wood-2);border-radius:4px}
.culture{
  scroll-snap-align:center;position:relative;border-radius:14px;overflow:hidden;
  padding:2.4rem 1.9rem 2.1rem;min-height:340px;display:flex;flex-direction:column;justify-content:flex-end;
  border:1px solid rgba(183,138,69,.2);
  transition:transform .35s var(--ease),border-color .35s;
}
.culture:hover{transform:translateY(-6px);border-color:rgba(209,164,91,.5)}
.culture__mat{position:absolute;inset:0;z-index:0}
.culture__photo{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;
  opacity:.85;transition:opacity .4s,transform .6s var(--ease)}
.culture:hover .culture__photo{opacity:1;transform:scale(1.04)}
.culture::after{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(6,5,4,0) 0%,rgba(6,5,4,.1) 32%,rgba(6,5,4,.82) 68%,rgba(6,5,4,.96) 100%)}
.culture h3,.culture p,.culture__tags{z-index:1}
.culture--it .culture__mat{background:
  radial-gradient(90% 70% at 80% 0%,rgba(232,166,74,.16),transparent 60%),
  linear-gradient(165deg,rgba(23,16,11,.82),rgba(10,8,6,.94)),
  url("tex/stone.svg");background-size:auto,auto,560px 560px}
.culture--de .culture__mat{background:
  radial-gradient(90% 70% at 75% 0%,rgba(232,166,74,.2),transparent 60%),
  linear-gradient(165deg,rgba(20,15,10,.78),rgba(9,7,5,.92)),
  url("tex/wood.svg");background-size:auto,auto,460px 460px}
.culture--uk .culture__mat{background:
  repeating-linear-gradient(0deg,transparent 0 30px,rgba(23,62,50,.5) 30px 44px,transparent 44px 50px,rgba(138,16,16,.3) 50px 53px),
  repeating-linear-gradient(90deg,transparent 0 30px,rgba(36,82,68,.45) 30px 44px,transparent 44px 50px,rgba(209,164,91,.25) 50px 53px),
  linear-gradient(165deg,#12100d,#0b0a08)}
.culture--us .culture__mat{background:
  radial-gradient(110% 80% at 50% 0%,rgba(195,33,33,.26),transparent 62%),
  linear-gradient(165deg,rgba(16,12,11,.82),rgba(8,6,6,.94)),
  url("tex/iron.svg");background-size:auto,auto,300px 300px}
.culture h3{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.1em;position:relative;z-index:1;margin-bottom:.5rem}
.culture p{color:var(--ink-dim);position:relative;z-index:1;font-size:.98rem}
.culture__tags{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.1rem;position:relative;z-index:1}
.culture__tags li{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);
  border:1px solid rgba(183,138,69,.35);border-radius:999px;padding:.22rem .7rem}

/* ════════════════ 4 · ROCK-MENÜ (Setlist) ════════════════ */
.rockmenu{background:var(--bg-1)}
.rockmenu__poster{position:absolute;inset:0;pointer-events:none;opacity:.9;
  background:
    radial-gradient(70% 50% at 50% 0%,rgba(138,16,16,.3),transparent 62%),
    linear-gradient(180deg,rgba(8,7,6,.78),rgba(8,7,6,.9)),
    url("img/interior.webp") center/cover no-repeat;
}
.rockmenu__inner{max-width:900px;margin:0 auto;position:relative}
.setlist{list-style:none;counter-reset:set;margin-top:2.4rem;
  border-top:1px dashed rgba(199,187,168,.25)}
.setlist__item{border-bottom:1px dashed rgba(199,187,168,.25)}
.setlist__head{
  width:100%;display:flex;align-items:baseline;gap:1.1rem;text-align:left;
  padding:1.05rem .4rem;transition:background .2s;position:relative;
}
.setlist__head:hover{background:rgba(195,33,33,.06)}
.setlist__num{font-family:var(--font-display);color:var(--red-2);font-size:1rem;min-width:2.2rem;letter-spacing:.05em}
.setlist__name{
  font-family:var(--font-display);font-size:clamp(1.25rem,3.4vw,1.9rem);letter-spacing:.05em;color:var(--ink);
  flex:1;
}
.setlist__price{font-family:var(--font-display);color:var(--gold);font-size:1.1rem;white-space:nowrap}
.setlist__chev{color:var(--ink-dim);transition:transform .3s var(--ease)}
.setlist__item.is-open .setlist__chev{transform:rotate(180deg)}
.setlist__body{
  max-height:0;overflow:hidden;transition:max-height .5s var(--ease);
}
.setlist__card{
  margin:.2rem .4rem 1.3rem;padding:1.3rem 1.4rem;border-radius:10px;
  background:linear-gradient(170deg,rgba(59,36,24,.5),rgba(17,16,14,.9));
  border:1px solid rgba(183,138,69,.28);
  display:grid;gap:.85rem;grid-template-columns:minmax(0,1fr);
}
.setlist__card.has-img{grid-template-columns:minmax(200px,300px) minmax(0,1fr);align-items:start}
.setlist__img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;
  border:1px solid rgba(183,138,69,.3);box-shadow:0 14px 30px -12px rgba(0,0,0,.85);grid-row:span 4}
@media (max-width:680px){.setlist__card.has-img{grid-template-columns:1fr}.setlist__img{grid-row:auto}}
.setlist__desc{color:var(--ink-dim)}
.setlist__meta{display:flex;flex-wrap:wrap;gap:.45rem}
.tag{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:.24rem .72rem;border:1px solid rgba(199,187,168,.3);color:var(--ink-dim)}
.tag--veg{border-color:rgba(36,82,68,.8);color:#7fbfa5}
.tag--spice{border-color:rgba(195,33,33,.6);color:#e0705f}
.tag--beer{border-color:rgba(183,138,69,.55);color:var(--gold)}
.tag--feat{background:rgba(183,138,69,.14);border-color:var(--brass);color:var(--gold)}
.tag--share{border-color:rgba(199,187,168,.4);color:var(--ink-dim)}
.setlist__actions{display:flex;flex-wrap:wrap;gap:.6rem}
.setlist__actions .pill{padding:.5rem 1.15rem;font-size:.82rem}

/* ════════════════ 5 · LIVE ════════════════ */
.live{background:var(--bg-0);overflow:hidden}
.live__stage{position:absolute;inset:0;pointer-events:none}
.live__truss{position:absolute;top:0;left:8%;right:8%;height:10px;
  background:repeating-linear-gradient(90deg,#1c1c1e 0 26px,#101012 26px 30px);
  border-bottom:1px solid rgba(255,255,255,.05)}
.live__spot{position:absolute;top:8px;width:30vw;height:80vh;opacity:.34;mix-blend-mode:screen;filter:blur(8px);
  clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);transform-origin:top center;will-change:transform}
.live__spot--1{left:16%;background:linear-gradient(180deg,rgba(195,33,33,.65),transparent 78%)}
.live__spot--2{right:16%;background:linear-gradient(180deg,rgba(209,164,91,.55),transparent 78%)}
.live__inner{position:relative;max-width:var(--maxw);margin:0 auto}
.live__demobadge{display:inline-block;font-size:.78rem;letter-spacing:.06em;color:#0f0d0a;background:var(--gold);
  border-radius:4px;padding:.28rem .7rem;margin-bottom:.8rem;font-weight:700}
.live__list{display:grid;gap:.9rem;margin-top:1.4rem}
.event{
  display:grid;grid-template-columns:auto 1fr auto;gap:1.2rem;align-items:center;
  background:linear-gradient(170deg,rgba(23,20,17,.9),rgba(13,11,9,.95));
  border:1px solid rgba(183,138,69,.2);border-radius:12px;padding:1.1rem 1.3rem;
  transition:transform .3s var(--ease),border-color .3s;
}
.event:hover{transform:translateX(6px);border-color:rgba(209,164,91,.45)}
.event__date{text-align:center;min-width:64px;border-right:1px solid rgba(199,187,168,.18);padding-right:1.1rem}
.event__day{font-family:var(--font-display);font-size:1.9rem;color:var(--gold);line-height:1}
.event__month{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}
.event__title{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.04em}
.event__meta{color:var(--ink-dim);font-size:.88rem;display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-top:.25rem}
.event__genre{color:var(--red-2);text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:700}
.event .pill{padding:.5rem 1.1rem;font-size:.8rem}
.live__archive{margin-top:2rem;color:var(--ink-dim)}
.live__archive summary{cursor:pointer;font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim)}
.live__archive .event{opacity:.55;margin-top:.8rem}
.live__none{color:var(--ink-dim);font-style:italic;padding:1.4rem 0}

/* ════════════════ 6 · KILTS ════════════════ */
.kilts{background:var(--green-1);overflow:hidden}
.kilts__tartan{position:absolute;inset:-15% -5%;opacity:.4;
  background:
    repeating-linear-gradient(0deg,transparent 0 46px,rgba(13,34,27,.85) 46px 72px,transparent 72px 82px,rgba(138,16,16,.5) 82px 87px,transparent 87px 92px,rgba(209,164,91,.35) 92px 94px),
    repeating-linear-gradient(90deg,transparent 0 46px,rgba(18,45,36,.85) 46px 72px,transparent 72px 82px,rgba(138,16,16,.4) 82px 87px,transparent 87px 92px,rgba(209,164,91,.3) 92px 94px);
}
.kilts__inner{position:relative;max-width:var(--maxw);margin:0 auto}
.kilts__title{
  font-family:var(--font-display);font-size:clamp(1.7rem,4.6vw,3.1rem);letter-spacing:.05em;line-height:1.2;
  white-space:pre-line;color:var(--ink);max-width:22ch;margin-bottom:2.2rem;text-transform:uppercase;
}
.kilts__layout{display:grid;grid-template-columns:minmax(300px,1fr) 1fr;gap:2.6rem;align-items:center}
.kilts__photo{
  aspect-ratio:4/3;border-radius:14px;
  background:url("img/keeper.webp") 38% center/cover no-repeat,#0d0b09;
  border:1px solid rgba(183,138,69,.35);
  box-shadow:0 30px 70px -20px rgba(0,0,0,.9);
}
.kilts__cols{display:grid;gap:1.6rem;color:#d9d2c2;align-content:start}
@media (max-width:900px){
  .kilts__layout{grid-template-columns:1fr}
  .kilts__photo{max-width:340px;aspect-ratio:4/3}
}
.kilts__cols p{border-top:2px solid rgba(209,164,91,.5);padding-top:1.1rem}

/* ════════════════ 7 · BIER-WAND ════════════════ */
.beerwall{background:
  linear-gradient(180deg,rgba(13,11,9,.9),rgba(13,11,9,.72) 45%,rgba(13,11,9,.94)),
  url("tex/wood.svg");
  background-size:auto,520px 520px;
}
.beerwall__head{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center}
.beerwall__photo{aspect-ratio:4/3;border-radius:14px;border:1px solid rgba(183,138,69,.35);
  background:url("img/birra.webp") center/cover no-repeat,#0d0b09;
  box-shadow:0 26px 60px -18px rgba(0,0,0,.8)}
@media (max-width:820px){.beerwall__head{grid-template-columns:1fr}.beerwall__photo{max-width:420px}}
.beerwall__taps{
  display:grid;grid-auto-flow:column;grid-auto-columns:min(74vw,320px);gap:1.1rem;
  overflow-x:auto;scroll-snap-type:x proximity;
  padding:2rem .2rem 2.4rem;max-width:var(--maxw);margin:0 auto;
  scrollbar-width:thin;scrollbar-color:var(--brass) var(--bg-1);
}
.beerwall__taps::-webkit-scrollbar{height:8px}
.beerwall__taps::-webkit-scrollbar-thumb{background:var(--brass);border-radius:4px}
.tap{
  scroll-snap-align:start;position:relative;border-radius:14px;overflow:hidden;
  background:linear-gradient(175deg,rgba(20,17,13,.9),rgba(9,8,6,.96));
  border:1px solid rgba(183,138,69,.28);
  box-shadow:0 18px 40px -14px rgba(0,0,0,.85);
  transition:border-color .3s,transform .35s var(--ease);
  display:flex;flex-direction:column;
}
.tap:hover{border-color:rgba(209,164,91,.6);transform:translateY(-6px)}
.tap__photo{
  aspect-ratio:4/3;background-size:cover;background-position:center;
  transition:transform .6s var(--ease);
}
.tap:hover .tap__photo{transform:scale(1.06)}
.tap__body{padding:1.1rem 1.2rem 1.3rem;position:relative;flex:1;
  background:linear-gradient(180deg,rgba(9,8,6,.6),rgba(9,8,6,.95) 40%)}
.tap__name{font-family:var(--font-display);font-size:1.15rem;letter-spacing:.04em;margin-top:.2rem}
.tap__style{color:var(--ink-dim);font-size:.85rem;margin-top:.3rem;min-height:2.4em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tap__price{font-family:var(--font-display);color:var(--gold);font-size:1.15rem;margin-top:.6rem}
.tap__badge{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brass);border:1px solid rgba(183,138,69,.4);border-radius:999px;padding:.14rem .6rem}

/* ════════════════ 8 · SPEISEKARTE ════════════════ */
.menu{background:var(--bg-1)}
.menu__head{max-width:var(--maxw);margin:0 auto}
.menu__transnote{font-size:.85rem;color:#0f0d0a;background:var(--ink-dim);display:inline-block;border-radius:4px;padding:.3rem .8rem;margin-bottom:1rem}
.menu__search{position:relative;max-width:560px;margin:1.4rem 0 .4rem}
.menu__search input{
  width:100%;padding:.95rem 1.3rem;border-radius:999px;font-size:1rem;
  background:rgba(8,8,8,.6);border:1px solid rgba(183,138,69,.35);color:var(--ink);
  transition:border-color .25s,box-shadow .25s;
}
.menu__search input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(209,164,91,.15)}
.menu__search input::placeholder{color:rgba(199,187,168,.55)}
.menu__searchhint{display:block;font-size:.78rem;color:rgba(199,187,168,.6);margin:.45rem 0 0 1.2rem}
.menu__list{max-width:var(--maxw);margin:1.6rem auto 0}
.menucat{margin-bottom:.7rem;border:1px solid rgba(183,138,69,.16);border-radius:12px;overflow:hidden;background:rgba(8,8,8,.35);
  content-visibility:auto;contain-intrinsic-size:auto 90px}
.menucat__head{
  width:100%;display:flex;align-items:center;gap:1rem;padding:1.05rem 1.3rem;text-align:left;
  background:
    linear-gradient(90deg,rgba(12,9,7,.5),rgba(12,9,7,.86) 70%),
    url("tex/wood.svg");
  background-size:auto,460px 460px;
  transition:filter .25s;
}
.menucat__head:hover{filter:brightness(1.18)}
.menucat__thumb{width:58px;height:44px;border-radius:6px;object-fit:cover;border:1px solid rgba(183,138,69,.35);flex:none}
.menucat__name{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.07em;flex:1;text-transform:uppercase}
.menucat__count{color:var(--ink-dim);font-size:.82rem}
.menucat__chev{color:var(--brass);transition:transform .3s var(--ease)}
.menucat.is-open .menucat__chev{transform:rotate(180deg)}
.menucat__body{display:none;padding:.4rem 1.3rem 1.2rem}
.menucat.is-open .menucat__body{display:block}
.menucat__note{font-size:.82rem;color:var(--ink-dim);font-style:italic;padding:.4rem 0 .6rem}
.dish{
  display:grid;grid-template-columns:1fr auto;gap:.2rem 1.2rem;padding:.85rem 0;
  border-bottom:1px dotted rgba(199,187,168,.18);
}
.dish.has-img{grid-template-columns:92px 1fr auto;align-items:start;gap:.2rem 1.1rem}
.dish__img{
  width:92px;height:74px;object-fit:cover;border-radius:8px;grid-row:span 3;
  border:1px solid rgba(183,138,69,.25);
  box-shadow:0 8px 18px -8px rgba(0,0,0,.8);
  transition:transform .35s var(--ease);
}
.dish.has-img:hover .dish__img{transform:scale(1.06)}
.dish.has-img .dish__desc,.dish.has-img .dish__beer{grid-column:2 / -1}
@media (max-width:600px){
  .dish.has-img{grid-template-columns:68px 1fr auto}
  .dish__img{width:68px;height:56px}
}
.dish:last-child{border-bottom:0}
.dish__name{font-weight:600;color:var(--ink);display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}
.dish__name .tag{font-size:.64rem;padding:.14rem .5rem}
.dish__price{font-family:var(--font-display);color:var(--gold);white-space:nowrap;font-size:1.05rem}
.dish__desc{grid-column:1 / -1;color:var(--ink-dim);font-size:.92rem;max-width:70ch}
.dish__beer{grid-column:1 / -1;font-size:.8rem;color:var(--gold);letter-spacing:.03em}
.dish__beer::before{content:"◈ ";opacity:.7}
.dish.is-hidden{display:none}
.menu__noresults{max-width:var(--maxw);margin:1.5rem auto;color:var(--ink-dim);font-style:italic}
.menu__allergens{
  max-width:var(--maxw);margin:2.6rem auto 0;padding:1.4rem 1.6rem;border-radius:12px;
  border:1px solid rgba(195,33,33,.4);background:rgba(138,16,16,.08);
}
.menu__allergens h3{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4rem;color:var(--red-2)}
.menu__allergens p{color:var(--ink-dim);font-size:.95rem}
.menu__imgnote{font-size:.8rem!important;opacity:.75;margin-top:.5rem}

/* ════════════════ 9 · GALERIE ════════════════ */
.gallery{background:
  linear-gradient(180deg,rgba(8,7,6,.86),rgba(8,7,6,.5) 40%,rgba(8,7,6,.88)),
  url("tex/wood.svg");
  background-size:auto,560px 560px;
  perspective:1100px;
}
.gallery>.sectiontitle,.gallery>.sectionsub,.gallery>.chipbar{max-width:var(--maxw);margin-left:auto;margin-right:auto}
.gallery,.beerwall,.live,.reserve,.contact{content-visibility:auto;contain-intrinsic-size:auto 900px}
.gallery__table{
  max-width:var(--maxw);margin:1.6rem auto 0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.3rem;
  transform:rotateX(14deg) translateY(30px);transform-style:preserve-3d;
  transition:transform 1.1s var(--ease);
}
.gallery__table.is-flat{transform:rotateX(0) translateY(0)}
.polaroid{
  background:#efe9da;padding:10px 10px 40px;border-radius:3px;cursor:pointer;border:0;text-align:left;
  box-shadow:0 10px 28px -8px rgba(0,0,0,.65);
  transform:rotate(var(--tilt,0deg)) translateY(var(--drop,0px));
  transition:transform .6s var(--ease),box-shadow .3s;
  position:relative;
}
.polaroid:hover{transform:rotate(0deg) translateY(-6px) scale(1.02);box-shadow:0 20px 44px -10px rgba(0,0,0,.8);z-index:2}
.polaroid.is-in{--tilt:0deg;--drop:0px}
.polaroid__img{aspect-ratio:1;background:var(--bg-2) center/cover no-repeat;display:grid;place-items:center;overflow:hidden}
.polaroid__img span{color:rgba(199,187,168,.5);font-size:.8rem;text-align:center;padding:0 .8rem}
.polaroid__cap{position:absolute;left:12px;right:12px;bottom:10px;color:#3a332b;font-size:.82rem;
  font-family:"Segoe Print","Comic Sans MS",cursive;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.polaroid.is-hidden{display:none}

/* ════════════════ 10 · BEWERTUNGEN ════════════════ */
.reviews{background:var(--bg-1);text-align:center}
.reviews .sectionsub{margin-left:auto;margin-right:auto}
.reviews__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem;max-width:var(--maxw);margin:1.8rem auto}
.reviewcard{
  text-align:left;background:rgba(8,8,8,.5);border:1px solid rgba(183,138,69,.2);border-radius:12px;padding:1.3rem 1.4rem;
}
.reviewcard__stars{color:var(--gold);letter-spacing:.2em}
.reviewcard__text{color:var(--ink-dim);margin:.6rem 0;font-style:italic}
.reviewcard__meta{font-size:.8rem;color:rgba(199,187,168,.6)}
.reviews__links{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.4rem}

/* ════════════════ 11 · RESERVIERUNG ════════════════ */
.reserve{background:
  radial-gradient(70% 50% at 50% 100%,rgba(23,62,50,.3),transparent 65%),
  var(--bg-0)}
.reserve__inner{max-width:860px;margin:0 auto}
.resform{margin-top:2rem}
.resform__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem 1.4rem}
.resform label{display:flex;flex-direction:column;gap:.4rem;font-size:.86rem;letter-spacing:.05em;color:var(--ink-dim)}
.resform label>span{text-transform:uppercase;font-size:.74rem;letter-spacing:.14em}
.resform input,.resform select,.resform textarea{
  padding:.8rem 1rem;border-radius:8px;font:inherit;color:var(--ink);
  background:rgba(23,20,17,.75);border:1px solid rgba(183,138,69,.3);
  transition:border-color .2s,box-shadow .2s;
  min-height:46px;
}
.resform textarea{min-height:auto;resize:vertical}
.resform input:focus,.resform select:focus,.resform textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(209,164,91,.14)}
.resform input.is-invalid,.resform select.is-invalid{border-color:var(--red-2);box-shadow:0 0 0 3px rgba(195,33,33,.15)}
.resform__wide{grid-column:1 / -1}
.resform .err{display:none;color:#e0705f;font-size:.8rem;font-style:normal}
.resform .err.is-visible{display:block}
.resform__privacy{display:flex;gap:.7rem;align-items:flex-start;margin-top:1.4rem;color:var(--ink-dim);font-size:.9rem;cursor:pointer}
.resform__privacy input{width:20px;height:20px;min-height:auto;accent-color:var(--brass);margin-top:2px;flex:none}
.resform__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem;margin-top:1.6rem}
.resform__or{color:rgba(199,187,168,.6);font-size:.9rem}
.resform__phone{color:var(--ink-dim)}
.resform__phone strong{color:var(--gold);font-size:1.05rem}
.resform__success{
  margin-top:2rem;padding:1.8rem;border-radius:14px;text-align:center;
  border:1px solid rgba(36,82,68,.8);background:rgba(23,62,50,.25);
}
.resform__success h3{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.08em;color:var(--ink);margin-bottom:.5rem}
.resform__success p{color:var(--ink-dim)}
.resform__successbtns{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:1.2rem}
.reserve__ordernote{margin-top:2.4rem;color:rgba(199,187,168,.55);font-size:.85rem;text-align:center}

/* ════════════════ 12 · KONTAKT ════════════════ */
.contact{background:var(--bg-2)}
.contact__inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.contact__address h3,.contact__hours h3{
  font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin:1.4rem 0 .35rem}
.contact__address p,.contact__hours{color:var(--ink-dim)}
.contact__address a{font-size:1.15rem}
#hoursTable{border-collapse:collapse;width:100%;max-width:340px}
#hoursTable td{padding:.32rem 0;border-bottom:1px dotted rgba(199,187,168,.15);font-size:.94rem}
#hoursTable td:last-child{text-align:right;color:var(--ink)}
#hoursTable tr.is-today td{color:var(--gold);font-weight:600}
.contact__ctas{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem}
.contact__map{position:relative;border-radius:16px;overflow:hidden;border:1px solid rgba(183,138,69,.3);
  box-shadow:0 24px 60px -18px rgba(0,0,0,.7)}
.contact__map svg{width:100%;height:auto}
.contact__maplink{position:absolute;right:14px;bottom:14px}

/* ════════════════ FOOTER ════════════════ */
.footer{
  position:relative;text-align:center;
  padding:4.5rem clamp(1.1rem,4vw,2.5rem) 6.5rem;
  background:
    linear-gradient(180deg,rgba(7,6,5,.9),rgba(7,6,5,.78)),
    url("tex/stone.svg");
  background-size:auto,560px 560px;
  border-top:2px solid rgba(183,138,69,.3);
  box-shadow:inset 0 26px 60px -30px #000;
}
.footer__crest{width:74px;height:74px;margin:0 auto 1rem;background:url("crest.svg") center/contain no-repeat;opacity:.85;
  filter:drop-shadow(0 2px 2px #000) grayscale(.25)}
.footer__brand{font-family:var(--font-display);letter-spacing:.32em;font-size:1.15rem;padding-left:.32em}
.footer__tagline{color:var(--ink-dim);font-size:.9rem;margin-top:.4rem}
.footer__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.8rem;
  max-width:var(--maxw);margin:2.8rem auto 0;text-align:left;
}
.footer__grid h4{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-bottom:.6rem;margin-top:1rem}
.footer__grid h4:first-child{margin-top:0}
.footer__grid p{color:var(--ink-dim);font-size:.9rem;margin:.2rem 0}
.footer__grid a{color:var(--ink-dim)}
.footer__grid a:hover{color:var(--gold)}
.footer__langs{display:flex;flex-wrap:wrap;gap:.4rem}
.footer__langs button{font-size:.8rem;color:var(--ink-dim);border:1px solid rgba(199,187,168,.25);border-radius:999px;padding:.25rem .7rem;transition:all .2s}
.footer__langs button:hover,.footer__langs button.is-active{color:var(--gold);border-color:var(--brass)}
.footer__copy{margin-top:3rem;color:rgba(199,187,168,.45);font-size:.8rem}

/* ════════════════ QUICKBAR (mobil) ════════════════ */
.quickbar{
  position:fixed;left:0;right:0;bottom:0;z-index:100;display:none;
  grid-template-columns:repeat(4,1fr);
  background:rgba(10,9,8,.96);backdrop-filter:blur(12px);
  border-top:1px solid rgba(183,138,69,.3);
  padding-bottom:env(safe-area-inset-bottom);
}
.quickbar a{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:.6rem .2rem .55rem;color:var(--ink-dim);font-size:.68rem;letter-spacing:.04em;
  min-height:54px;
}
.quickbar a:active{background:rgba(183,138,69,.12)}
.quickbar__main{color:#171310!important;background:linear-gradient(160deg,var(--gold),var(--brass));margin:6px;border-radius:10px;padding:.45rem .2rem!important;font-weight:700}

/* ════════════════ OVERLAYS ════════════════ */
.langsuggest,.cookiebar{
  position:fixed;z-index:140;left:50%;transform:translateX(-50%);
  background:rgba(17,16,14,.98);border:1px solid rgba(183,138,69,.4);border-radius:14px;
  padding:1.1rem 1.4rem;box-shadow:0 22px 60px -12px rgba(0,0,0,.8);
  display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;
  max-width:min(92vw,560px);
}
.langsuggest{top:calc(var(--nav-h) + 14px)}
.cookiebar{bottom:14px}
@media (max-width:820px){.cookiebar{bottom:74px}}
.langsuggest p,.cookiebar p{color:var(--ink-dim);font-size:.9rem;flex:1;min-width:200px}
.langsuggest .pill,.cookiebar .pill{padding:.5rem 1.1rem;font-size:.82rem}

.lightbox{position:fixed;inset:0;z-index:200;background:rgba(4,4,4,.94);display:grid;place-items:center;padding:2rem}
.lightbox figure{max-width:min(92vw,900px);text-align:center}
.lightbox__img{width:min(86vw,820px);aspect-ratio:4/3;background:var(--bg-2) center/contain no-repeat;border-radius:8px;
  display:grid;place-items:center;color:rgba(199,187,168,.5)}
.lightbox figcaption{margin-top:1rem;color:var(--ink-dim)}
.lightbox__close{position:absolute;top:18px;right:26px;font-size:2.4rem;color:var(--ink-dim);line-height:1}
.lightbox__close:hover{color:var(--white)}

.a11y-status{position:fixed;bottom:12px;left:12px;z-index:90;font-size:.75rem;color:var(--ink-dim);
  background:rgba(17,16,14,.9);border:1px solid rgba(199,187,168,.2);border-radius:999px;padding:.3rem .8rem}

/* ════════════════ RESPONSIVE ════════════════ */
@media (max-width:1080px){
  .nav__links{display:none}
}
@media (max-width:820px){
  .nav__burger{display:block}
  .pill--nav{display:none}
  .quickbar{display:grid}
  body{padding-bottom:64px}
  .opener{height:260vh}
  .pub__actions .pill{padding:.62rem 1.1rem;font-size:.84rem}
  .contact__inner{grid-template-columns:1fr}
  .event{grid-template-columns:auto 1fr}
  .event .pill{grid-column:1 / -1;justify-self:start}
  .kilts__cols{gap:1.2rem}
  .footer{padding-bottom:8rem}
}
@media (max-width:480px){
  .pub__actions{flex-direction:column;width:100%;max-width:320px}
  .pub__actions .pill{width:100%}
  .setlist__head{gap:.6rem}
  .setlist__num{min-width:1.6rem}
}

/* ════════════════ REDUCED MOTION ════════════════ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .opener{height:auto}
  .opener__sticky{position:relative;height:auto;min-height:100vh}
  .hero-film video{display:none}
  .hero-film{background:url("img/hero-poster.jpg") center/cover no-repeat,url("img/door.webp") center/cover no-repeat}
  .opener__invite{display:none}
  .pub__content{position:relative;opacity:1!important;transform:none!important;padding:8rem 1.2rem 4rem;pointer-events:auto}
  .reveal{opacity:1;transform:none}
  .polaroid{--tilt:0deg;--drop:0px}
}
body.reduced-motion .opener{height:auto}
body.reduced-motion .opener__sticky{position:relative;height:auto;min-height:100vh}
body.reduced-motion .hero-film video{display:none}
body.reduced-motion .hero-film{background:url("img/hero-poster.jpg") center/cover no-repeat,url("img/door.webp") center/cover no-repeat}
body.reduced-motion .opener__invite{display:none}
body.reduced-motion .pub__content{position:relative;opacity:1!important;transform:none!important;padding:8rem 1.2rem 4rem;pointer-events:auto}
body.reduced-motion .reveal{opacity:1;transform:none}

/* ══════════════════════════════════════════════════════════════
   WOW-EBENE — Eintritt, Zeigerlicht, Bild-Peek, Scroll-Choreografie
   ══════════════════════════════════════════════════════════════ */

/* ── Eintritt: Wappen zeichnet sich, Tor öffnet sich ───────── */
.enter{
  position:fixed;inset:0;z-index:400;background:#050404;
  display:grid;place-items:center;overflow:hidden;
}
.enter__panel{
  position:absolute;top:0;bottom:0;width:50.5%;
  background:
    linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.05) 20% 80%,rgba(0,0,0,.5)),
    repeating-linear-gradient(90deg,rgba(0,0,0,.3) 0 2px,transparent 2px 58px),
    url("tex/wood.svg");
  background-size:auto,auto,360px 640px;
  transition:transform 1.5s cubic-bezier(.7,0,.2,1);
  will-change:transform;
}
.enter__panel--l{left:0;box-shadow:inset -22px 0 40px rgba(0,0,0,.7)}
.enter__panel--r{right:0;box-shadow:inset 22px 0 40px rgba(0,0,0,.7)}
.enter__core{position:relative;z-index:2;text-align:center;transition:opacity .5s,transform .8s var(--ease)}
.enter__crest{width:clamp(96px,13vw,150px);height:auto;overflow:visible}
.enter__stroke{
  fill:none;stroke:var(--gold);stroke-width:3;
  stroke-dasharray:var(--len,900);stroke-dashoffset:var(--len,900);
  animation:drawCrest 1.5s cubic-bezier(.5,0,.2,1) forwards;
  filter:drop-shadow(0 0 8px rgba(209,164,91,.55));
}
.enter__stroke--in{stroke-width:1.4;opacity:.7;animation-delay:.25s}
.enter__crest circle{animation-delay:.45s}
@keyframes drawCrest{to{stroke-dashoffset:0}}
.enter__w{
  font-family:var(--font-display);font-size:58px;font-weight:bold;fill:var(--gold);
  opacity:0;animation:wIn .7s .95s ease-out forwards;
}
@keyframes wIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.enter__bar{width:min(190px,44vw);height:2px;margin:1.7rem auto .9rem;background:rgba(199,187,168,.18);overflow:hidden}
.enter__bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brass),var(--gold));transition:width .3s ease-out}
.enter__word{
  font-family:var(--font-display);font-size:.8rem;letter-spacing:.6em;color:var(--ink-dim);
  padding-left:.6em;opacity:0;animation:wIn .8s 1.2s ease-out forwards;
}
/* Tor auf */
.enter.is-open .enter__core{opacity:0;transform:scale(1.12)}
.enter.is-open .enter__panel--l{transform:translateX(-101%)}
.enter.is-open .enter__panel--r{transform:translateX(101%)}
.enter.is-gone{display:none}
body.is-entering{overflow:hidden}

/* ── Zeigerlicht: Glut, die über die Seite wandert ─────────── */
.torch{
  position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;
  border-radius:50%;pointer-events:none;z-index:60;opacity:0;
  background:radial-gradient(circle,rgba(232,166,74,.15),rgba(232,166,74,.05) 42%,transparent 70%);
  mix-blend-mode:screen;
  transition:opacity .5s;
  will-change:transform;
}
body.torch-on .torch{opacity:1}
@media (hover:none),(max-width:900px){.torch{display:none}}

/* ── Bild am Zeiger (Speisekarte) ──────────────────────────── */
.peek{
  position:fixed;left:0;top:0;z-index:70;pointer-events:none;contain:layout paint;
  width:290px;margin:-110px 0 0 26px;
  opacity:0;transform:scale(.9) rotate(-3deg);
  transition:opacity .35s var(--ease),transform .45s var(--ease);
  will-change:transform;
}
.peek img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;
  border:1px solid rgba(209,164,91,.45);
  box-shadow:0 30px 70px -18px rgba(0,0,0,.95);
}
.peek.is-on{opacity:1;transform:scale(1) rotate(-1.5deg)}
@media (hover:none),(max-width:900px){.peek{display:none}}

/* ── Wort-für-Wort-Enthüllung ──────────────────────────────── */
.words .w{
  display:inline-block;opacity:.12;
  transition:opacity .45s var(--ease),transform .45s var(--ease),color .45s;
  transform:translateY(.18em);
}
.words .w.lit{opacity:1;transform:none}

/* ── Kultur-Reise: horizontal beim Scrollen ────────────────── */
.cultures__stage{position:relative}
@media (min-width:900px) and (hover:hover){
  .cultures{padding-bottom:0}
  .cultures__stage{height:320vh}
  .cultures__track{
    position:sticky;top:0;height:100vh;align-content:center;
    overflow:hidden;scroll-snap-type:none;
    grid-auto-columns:min(38vw,520px);gap:2.2rem;
    padding:0 6vw;
    will-change:transform;
  }
  .culture{min-height:min(64vh,560px)}
}

/* ── Rock-Bühne: Spot fährt an ─────────────────────────────── */
.rockmenu{overflow:hidden}
.rockmenu__spot{
  position:absolute;left:50%;top:-14vh;width:min(74vw,900px);height:118%;
  transform:translateX(-50%) scaleY(.06);transform-origin:top center;
  background:linear-gradient(180deg,rgba(232,166,74,.2),rgba(195,33,33,.1) 46%,transparent 78%);
  filter:blur(30px);opacity:0;pointer-events:none;
  transition:transform 1.3s cubic-bezier(.2,.8,.2,1),opacity 1s;
}
.rockmenu.is-lit .rockmenu__spot{transform:translateX(-50%) scaleY(1);opacity:1}
.setlist__item{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.rockmenu.is-lit .setlist__item{opacity:1;transform:none}

/* ── Magnetische Buttons ───────────────────────────────────── */
.pill{will-change:transform}

/* ── Weiche Übergänge zwischen den Sektionen ───────────────── */
.thisis::before,.rockmenu::before,.beerwall::before,.menu::before,.gallery::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:110px;pointer-events:none;
  background:linear-gradient(180deg,rgba(5,4,4,.9),transparent);
}

@media (prefers-reduced-motion:reduce){
  .enter{display:none}
  .torch,.peek{display:none}
  .words .w{opacity:1;transform:none}
  .cultures__stage{height:auto}
  .cultures__track{position:static;height:auto}
  .setlist__item{opacity:1;transform:none}
}
body.reduced-motion .enter{display:none}
body.reduced-motion .torch,body.reduced-motion .peek{display:none}
body.reduced-motion .words .w{opacity:1;transform:none}
body.reduced-motion .cultures__stage{height:auto}
body.reduced-motion .cultures__track{position:static;height:auto}
body.reduced-motion .setlist__item{opacity:1;transform:none}

/* ══════════════════════════════════════════════════════════════
   HANDY — Feinschliff für Daumenbedienung
   ══════════════════════════════════════════════════════════════ */
@media (max-width:820px){
  /* Touchflächen: mindestens 44px, wie von den Plattformen empfohlen */
  .chip{min-height:44px;padding:.6rem 1.1rem;font-size:.88rem}
  .langswitch__btn{min-height:44px}
  .langswitch__list li button{min-height:44px}
  .footer__langs button{min-height:44px;padding:.5rem 1rem}
  .setlist__head{min-height:56px}
  .menucat__head{min-height:56px}

  /* Filterleisten seitlich scrollbar statt umbrechend — spart Höhe */
  .chipbar{
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    margin-left:calc(var(--pad,0px) * -1);
    padding-bottom:.3rem;-webkit-overflow-scrolling:touch;
  }
  .chipbar::-webkit-scrollbar{display:none}
  .chip{flex:0 0 auto}

  /* Bier-Video: auf dem Handy kürzer, sonst frisst es den ganzen Schirm */
  .pourvid{height:min(52vh,380px)}

  /* Gerichtsbilder etwas größer — auf dem Handy verkauft das Bild */
  .dish.has-img{grid-template-columns:84px 1fr auto}
  .dish__img{width:84px;height:68px}

  /* Kompaktere Zeilen: sonst wird eine Kategorie mit 35 Pizzen endlos */
  .dish{padding:.7rem 0}
  .dish__desc{font-size:.86rem;line-height:1.45;margin-top:.15rem}
  .dish__name{font-size:.98rem;line-height:1.3}
  .dish__price{font-size:1rem}
  .dish__beer{font-size:.76rem}

  /* Zapfhahn-Karten: eine passt fast ganz aufs Bild, die nächste lugt hervor */
  .beerwall__taps{grid-auto-columns:78vw;gap:.9rem}

  /* Eintritt: Wappen etwas kleiner, Balken schmaler */
  .enter__crest{width:88px}
  .enter__bar{width:150px}

  /* Reservierung: volle Breite, große Felder */
  .resform__grid{grid-template-columns:1fr}
  .resform input,.resform select,.resform textarea{min-height:50px;font-size:16px}
  .resform__actions{flex-direction:column;align-items:stretch}
  .resform__actions .pill{width:100%}
  .resform__phone{text-align:center}

  /* Galerie: zwei Spalten statt gequetschter Reihe */
  .gallery__table{grid-template-columns:repeat(2,1fr);gap:.8rem}
  .polaroid{padding:7px 7px 30px}
  .polaroid__cap{font-size:.72rem;bottom:8px}

  /* Kontakt-Karte */
  .contact__maplink{right:10px;bottom:10px;padding:.6rem 1.1rem}

  /* Lange Titel dürfen umbrechen statt zu überlaufen */
  .setlist__name{overflow-wrap:anywhere}
  .event__title{overflow-wrap:anywhere}
}

/* Sehr schmale Geräte */
@media (max-width:380px){
  .dish.has-img{grid-template-columns:64px 1fr auto}
  .dish__img{width:64px;height:52px}
  .pub__title{font-size:2.6rem}
  .quickbar a{font-size:.62rem}
}

/* Querformat auf dem Handy: Hero nicht höher als der Schirm */
@media (max-height:520px) and (orientation:landscape){
  .opener__sticky{height:100svh}
  .pub__actions{margin-top:.8rem}
  .pub__crest{display:none}
}
