/* Wirtshaus Weber – gemeinsame Gestaltung für alle Seiten */
/* Schriften lokal eingebunden (kein Abruf bei Google) – Lizenz: SIL Open Font License, siehe fonts/ */
@font-face{font-family:"Kalam";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/kalam-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Kalam";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/kalam-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Bitter";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/bitter-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Bitter";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/bitter-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Bitter";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/bitter-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/source-sans-3-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/source-sans-3-latin-600-normal.woff2") format("woff2")}
  :root{
  --slate:#262b2a;
  --slate-2:#2f3534;
  --chalk:#f1eee6;
  --chalk-dim:#c9c5bb;
  --kraft:#eadfc8;
  --kraft-2:#dfd0b1;
  --ink:#2b2420;
  --muted:#6b5f53;
  --wood:#6b4426;
  --wood-d:#4a2e19;
  --red:#b8452f;
  --yellow:#f2d27a;
  /* feine Kreidestaub-Textur */
  --dust:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Bitter",Georgia,serif;font-size:17px;line-height:1.7;color:var(--ink);background:var(--kraft)}
img{max-width:100%;display:block}
a{color:var(--red)}
h1,h2,h3,.chalk{font-family:"Kalam",cursive;font-weight:700;line-height:1.15}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.board{background:var(--dust),radial-gradient(ellipse at 30% 20%,var(--slate-2),var(--slate) 70%);color:var(--chalk)}
.board h1,.board h2,.board h3{color:var(--chalk)}
.framed{border:14px solid var(--slate);box-shadow:0 20px 50px rgba(0,0,0,.35),inset 0 0 40px rgba(0,0,0,.35)}
.squiggle{display:block;width:150px;height:14px;margin:10px auto 0}

/* Header */
header{position:sticky;top:0;z-index:50;background:var(--dust),var(--slate);border-bottom:5px solid var(--wood)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;height:74px}
.brand{text-decoration:none;color:var(--chalk);font-family:"Kalam",cursive;font-weight:700;font-size:1.7rem;white-space:nowrap;display:flex;flex-direction:column;line-height:1.1}
.brand small{font-family:"Source Sans 3",system-ui,sans-serif;font-weight:400;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#c8a464;margin-top:2px}
.brand span{color:var(--yellow)}
.menu{display:flex;align-items:center;gap:24px;list-style:none}
.menu a{color:var(--chalk);text-decoration:none;font-family:"Kalam",cursive;font-size:1.15rem;white-space:nowrap}
.menu a:hover{color:var(--yellow)}
.res{font-family:"Kalam",cursive;font-size:1.1rem;color:var(--slate);background:var(--yellow);padding:6px 14px;border-radius:4px;transform:rotate(-2deg);display:inline-block;white-space:nowrap}
.burger{display:none;background:none;border:0;color:var(--chalk);font-size:1.8rem;cursor:pointer}

/* Hero */
.hero{min-height:78vh;display:grid;place-items:center;padding:60px 20px;
      background:linear-gradient(180deg,rgba(30,18,10,.35),rgba(30,18,10,.7)),url("img/theke.jpg") center/cover no-repeat}
.hero .sign{max-width:760px;text-align:center;padding:40px 20px;color:var(--chalk)}
.hero .sign h1{color:#fff;text-shadow:0 3px 18px rgba(0,0,0,.45)}
.hero .sign p{color:var(--chalk);text-shadow:0 1px 6px rgba(0,0,0,.5)}
.hero .hi{font-family:"Source Sans 3",system-ui,sans-serif;font-weight:400;font-size:.9rem;letter-spacing:.3em;text-transform:uppercase;color:#c8a464;margin-bottom:10px}
.hero h1{font-size:clamp(3rem,8vw,5.4rem);margin:2px 0}
.hero p{color:var(--chalk-dim);font-size:1.08rem;max-width:520px;margin:14px auto 0}
.actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{display:inline-block;padding:12px 22px;font-family:"Kalam",cursive;font-weight:700;font-size:1.15rem;text-decoration:none;border-radius:4px;transition:.2s}
.btn-yellow{background:var(--yellow);color:var(--slate)}
.btn-chalk{border:2px dashed var(--chalk);color:var(--chalk)}
.btn-chalk:hover{background:rgba(255,255,255,.08)}
.btn-ink{border:2px solid var(--ink);color:var(--ink)}
.btn-ink:hover{background:var(--ink);color:var(--kraft)}
.static{cursor:default}

section{padding:90px 0}
.head{text-align:center;max-width:660px;margin:0 auto 44px}
.head h2{font-size:clamp(2.3rem,5vw,3.4rem)}
.head p{margin-top:12px;color:var(--muted)}
.board .head p{color:var(--chalk-dim)}

/* Willkommen */
.welcome{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.polaroid{background:#fff;padding:12px 12px 48px;box-shadow:0 16px 34px rgba(60,40,20,.25);transform:rotate(2deg);position:relative}
.polaroid::before{content:"";position:absolute;top:-14px;left:50%;width:110px;height:28px;background:rgba(255,255,255,.55);transform:translateX(-50%) rotate(-3deg);box-shadow:0 2px 4px rgba(0,0,0,.1)}
.polaroid img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--kraft-2)}
.polaroid span{position:absolute;left:0;right:0;bottom:10px;text-align:center;font-family:"Kalam",cursive;font-size:1.25rem;color:var(--muted)}
.welcome h2{font-size:clamp(2.2rem,4.5vw,3.2rem);color:var(--wood-d);margin-bottom:16px}
.welcome p{margin-bottom:14px}
.gruss{font-family:"Kalam",cursive;font-size:1.6rem;color:var(--red);margin-top:14px;transform:rotate(-1.5deg);display:inline-block}

/* Speisekarte */
.menu-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:54px;align-items:center}
.stamp{display:inline-block;border:3px solid var(--yellow);color:var(--yellow);padding:16px 20px;border-radius:8px;transform:rotate(-3deg);margin:24px 0;max-width:420px}
.stamp b{display:block;font-family:"Kalam",cursive;font-size:1.6rem;line-height:1.1}
.stamp span{color:var(--chalk);font-size:.98rem}
.stamp a{color:var(--yellow)}
.paper{background:#fff;padding:12px;transform:rotate(1deg);box-shadow:0 30px 60px rgba(0,0,0,.45);position:relative}
.paper::before,.paper::after{content:"";position:absolute;top:-12px;width:90px;height:26px;background:rgba(242,210,122,.75);box-shadow:0 2px 4px rgba(0,0,0,.15)}
.paper::before{left:20px;transform:rotate(-8deg)}
.paper::after{right:20px;transform:rotate(7deg)}
.canva{position:relative;width:100%;aspect-ratio:1/1.4143;background:#fff}
.canva iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.note{color:var(--chalk-dim);font-size:.9rem;margin-top:18px}

/* Galerie */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.gallery figure{background:#fff;padding:10px 10px 40px;box-shadow:0 12px 26px rgba(60,40,20,.22);cursor:zoom-in;position:relative;transition:.3s}
.gallery figure:nth-child(3n+1){transform:rotate(-2deg)}
.gallery figure:nth-child(3n+2){transform:rotate(1.5deg)}
.gallery figure:nth-child(3n){transform:rotate(-.8deg)}
.gallery figure:hover{transform:rotate(0) scale(1.04);z-index:2}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--kraft-2)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-family:"Kalam",cursive;font-size:1.2rem;color:var(--muted)}
.cats{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 24px;margin-top:36px}
.cats a{font-family:"Kalam",cursive;font-size:1.25rem;color:var(--wood-d);text-decoration:underline wavy var(--red);text-underline-offset:5px}

/* Öffnungszeiten – Kreidetafel */
.hours-board{max-width:820px;margin:0 auto;padding:44px 50px}
.hours-board h2{text-align:center;font-size:clamp(2.3rem,5vw,3.2rem)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:28px}
.cols h3{font-size:1.6rem;color:var(--yellow);margin-bottom:8px}
.line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:2px dashed rgba(241,238,230,.25);font-family:"Kalam",cursive;font-size:1.2rem}
.line:last-child{border-bottom:0}
.ruhe{text-align:center;font-family:"Kalam",cursive;font-size:1.4rem;color:#f0a58f;margin-top:24px}
#today{text-align:center;font-family:"Kalam",cursive;font-size:1.25rem;margin-top:4px}
.on{color:#a9d8a1}.off{color:#f0a58f}

/* Kontakt */
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.note-card{background:#fffdf6;padding:30px 26px;box-shadow:0 14px 28px rgba(60,40,20,.18);position:relative;text-align:center}
.note-card::before{content:"";position:absolute;top:-10px;left:50%;width:18px;height:18px;border-radius:50%;background:var(--red);transform:translateX(-50%);box-shadow:0 3px 4px rgba(0,0,0,.3)}
.note-card:nth-child(1){transform:rotate(-1.5deg)}
.note-card:nth-child(2){transform:rotate(1deg)}
.note-card:nth-child(3){transform:rotate(-.6deg)}
.note-card h3{font-size:1.7rem;color:var(--wood-d);margin-bottom:6px}
.note-card .big{font-family:"Kalam",cursive;font-weight:700;font-size:2.2rem;color:var(--red);display:block}
.note-card address{font-style:normal}

/* Kontaktformular */
.form-board{max-width:820px;margin:70px auto 0;padding:44px 50px}
#formular{scroll-margin-top:100px}
.btn-yellow:hover{background:#f6dc95;transform:translateY(-2px)}
.form-board h2{text-align:center;font-size:clamp(2.2rem,5vw,3rem)}
.form-intro{text-align:center;color:var(--chalk-dim);margin:16px auto 28px;max-width:600px}
.form-intro strong{color:var(--yellow);font-weight:600}
#kontaktform label{display:block;font-family:"Kalam",cursive;font-size:1.2rem;color:var(--chalk);margin-bottom:16px}
#kontaktform .opt{font-size:.95rem;color:var(--chalk-dim)}
#kontaktform input[type=text],#kontaktform input[type=email],#kontaktform input[type=tel],#kontaktform select,#kontaktform textarea{
  display:block;width:100%;margin-top:4px;padding:11px 14px;font:inherit;font-family:"Bitter",Georgia,serif;font-size:1rem;color:var(--chalk);
  background:rgba(255,255,255,.06);border:2px dashed rgba(241,238,230,.35);border-radius:6px;outline:none;transition:.2s}
#kontaktform select option{color:var(--ink)}
#kontaktform textarea{resize:vertical;min-height:140px}
#kontaktform input:focus,#kontaktform select:focus,#kontaktform textarea:focus{border-color:var(--yellow);border-style:solid;background:rgba(255,255,255,.1)}
#kontaktform .invalid{border-color:#f0a58f !important;border-style:solid !important}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#kontaktform label.check{display:flex;gap:12px;align-items:flex-start;font-family:"Bitter",Georgia,serif;font-size:.92rem;color:var(--chalk-dim);line-height:1.5}
#kontaktform label.check input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:var(--yellow)}
#kontaktform label.check a{color:var(--yellow)}
.f-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:6px}
.f-actions button{border:0;cursor:pointer}
.f-actions button:disabled{opacity:.6;cursor:wait}
.f-hint{font-size:.85rem;color:var(--chalk-dim)}
.f-msg{margin-top:18px;font-family:"Kalam",cursive;font-size:1.3rem;min-height:1em}
.f-msg.ok{color:#a9d8a1}.f-msg.err{color:#f0a58f}

/* Events / Links */
.two{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.panel{padding:34px}
.panel h3{font-size:1.9rem;margin-bottom:8px}
.panel p{color:var(--chalk-dim)}
.partner{display:flex;gap:18px;align-items:center;margin-top:8px}
.partner img{width:130px;background:var(--slate-2)}
.panel a{color:var(--yellow)}

footer{border-top:5px solid var(--wood);text-align:center;padding:44px 20px 34px;font-size:.95rem}
footer .brand{display:inline-flex;align-items:center;margin-bottom:10px}
footer p{color:var(--chalk-dim)}
footer a{color:var(--chalk)}

dialog{border:0;max-width:640px;width:calc(100% - 32px);padding:40px;background:#fffdf6;color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.4)}
dialog::backdrop{background:rgba(20,16,12,.7)}
dialog h2{color:var(--wood-d);margin-bottom:10px;font-size:2.2rem}
dialog h4{margin:16px 0 2px}
dialog .x{position:absolute;top:14px;right:18px;border:0;background:none;font-size:1.8rem;cursor:pointer}

.lightbox{position:fixed;inset:0;background:rgba(20,16,12,.94);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.lightbox.show{display:flex}
.lightbox img{max-height:86vh;border:10px solid #fff}
.lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer;padding:10px 18px}
.lb-close{top:10px;right:10px}.lb-prev{left:10px}.lb-next{right:10px}

@media (max-width:1050px){
  .burger{display:block}
  .menu{position:absolute;top:79px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--dust),var(--slate);display:none;padding:8px 20px 22px;border-bottom:5px solid var(--wood)}
  .menu.open{display:flex}
  .menu a{display:block;padding:10px 0;border-bottom:1px dashed rgba(241,238,230,.2)}
  .res{text-align:center;margin-top:14px;display:block;transform:none}
}
@media (max-width:860px){
  .welcome,.menu-grid,.cols,.contact,.two{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr;gap:16px}
  .hero .sign{padding:30px 20px}
  .framed{border-width:10px}
  .hours-board{padding:30px 22px}
  .cols{gap:20px}
  section{padding:66px 0}
  .contact{gap:34px}
  .form-board{padding:30px 20px;margin-top:50px}
  .f-row{grid-template-columns:1fr}
}

/* ===== Mehrseitige Website ===== */
.menu a.active{color:var(--yellow);text-decoration:underline wavy var(--yellow);text-underline-offset:6px}
.page-hero{min-height:40vh;display:grid;place-items:center;text-align:center;padding:70px 20px;
      background:linear-gradient(180deg,rgba(30,18,10,.35),rgba(30,18,10,.72)),url("img/theke.jpg") center/cover no-repeat}
.page-hero .hi{font-family:"Source Sans 3",system-ui,sans-serif;font-size:.85rem;letter-spacing:.3em;text-transform:uppercase;color:#c8a464;margin-bottom:8px}
.page-hero h1{color:#fff;font-size:clamp(2.6rem,6.5vw,4.4rem);text-shadow:0 3px 18px rgba(0,0,0,.45)}
.page-hero p{color:var(--chalk);max-width:560px;margin:10px auto 0;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.crumb{font-size:.85rem;margin-top:14px}
.crumb a{color:var(--chalk-dim);text-decoration:none}
.crumb a:hover{color:var(--yellow)}

/* Startseite: Wegweiser-Zettel */
.teasers{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.teaser{display:block;text-decoration:none;color:var(--ink);background:#fffdf6;padding:30px 26px 26px;box-shadow:0 14px 28px rgba(60,40,20,.18);position:relative;text-align:center;transition:.25s}
.teaser::before{content:"";position:absolute;top:-10px;left:50%;width:18px;height:18px;border-radius:50%;background:var(--red);transform:translateX(-50%);box-shadow:0 3px 4px rgba(0,0,0,.3)}
.teaser:nth-child(1){transform:rotate(-1.5deg)}.teaser:nth-child(2){transform:rotate(1deg)}.teaser:nth-child(3){transform:rotate(-.6deg)}
.teaser:hover{transform:rotate(0) translateY(-4px);box-shadow:0 20px 34px rgba(60,40,20,.25)}
.teaser h3{font-size:1.8rem;color:var(--wood-d);margin-bottom:6px}
.teaser p{color:var(--muted)}
.teaser .more{display:inline-block;margin-top:12px;font-family:"Kalam",cursive;font-size:1.2rem;color:var(--red)}
.teaser .today-text{font-family:"Kalam",cursive;font-size:1.25rem;display:block;margin-top:4px}
.teaser .today-text .on{color:#3d7a3a}.teaser .today-text .off{color:var(--red)}
.events-wrap{max-width:820px;margin:0 auto}
.one{max-width:720px;margin:0 auto}
.partner img{width:190px;flex:none;background:#fffdf6;padding:12px 16px;border-radius:4px;box-shadow:0 6px 14px rgba(0,0,0,.3);transform:rotate(-1.5deg)}
.partner{gap:26px}
@media (max-width:860px){.partner{flex-direction:column;align-items:flex-start}.partner img{width:170px}.partner > div{min-width:0}.partner a{word-break:break-word}}

/* Footer mit Öffnungszeiten auf jeder Seite */
.foot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;max-width:1000px;margin:0 auto 26px;text-align:left}
.foot-grid h4{font-family:"Kalam",cursive;font-size:1.35rem;color:var(--yellow);margin-bottom:6px}
.foot-grid p{color:var(--chalk-dim);line-height:1.7}
.foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;margin:4px 0 16px}
.foot-nav a{color:var(--chalk);text-decoration:none;font-family:"Kalam",cursive;font-size:1.1rem}
.foot-nav a:hover{color:var(--yellow)}

/* Impressum-Seite */
.legal-paper{max-width:760px;margin:0 auto;background:#fffdf6;padding:44px 50px;box-shadow:0 14px 28px rgba(60,40,20,.18)}
.legal-paper h4{font-family:"Kalam",cursive;font-size:1.45rem;color:var(--wood-d);margin:22px 0 2px}
.legal-paper h4:first-of-type{margin-top:18px}
.legal-paper h3{font-family:"Kalam",cursive;font-size:1.6rem;color:var(--wood-d);margin:30px 0 6px}
.legal-paper p{margin-bottom:10px}
.legal-paper ul{margin:6px 0 12px 22px}
.legal-paper .legal-lead{font-size:1.05rem;color:var(--muted)}
.legal-paper .todo{background:#fff3c4;border-left:4px solid var(--yellow);padding:8px 12px;font-weight:600}
.legal-paper a{word-break:break-word}

@media (max-width:860px){
  .teasers,.foot-grid{grid-template-columns:1fr}
  .teasers{gap:34px}
  .foot-grid{text-align:center}
  .legal-paper{padding:30px 22px}
  .page-hero{min-height:32vh}
}

