/* BAUKASTEN BASE — Struktur-CSS (Theme-unabhängig) */
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6}
img{max-width:100%;display:block}
a{color:var(--ink)}

.bk-header{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--border)}
.bk-header-inner{max-width:1180px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.bk-logo{font-weight:600;font-size:20px;color:var(--ink);text-decoration:none}
.bk-nav{display:flex;gap:24px;font-size:14px;flex-wrap:wrap}
.bk-nav a{color:var(--muted);text-decoration:none;font-size:13px}
.bk-nav a:hover{color:var(--ink)}

.bk-btn{
  display:inline-block;padding:12px 24px;border-radius:var(--radius,6px);background:var(--primary);color:#fff;
  font-weight:600;font-size:14px;border:none;cursor:pointer;text-decoration:none;transition:background .15s,transform .15s;
}
.bk-btn:hover{filter:brightness(.9)}
.bk-btn-outline{background:transparent;border:1px solid var(--primary);color:var(--primary)}
.bk-btn-outline:hover{background:var(--primary);color:#fff}

.bk-hero{padding:100px 24px 80px;border-bottom:1px solid var(--border)}
.bk-hero-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}
@media(max-width:900px){.bk-hero-inner{grid-template-columns:1fr;gap:40px}}
.bk-hero h1{font-family:var(--serif,var(--sans));font-size:clamp(32px,5vw,56px);line-height:1.1;margin:0 0 20px;font-weight:600;color:var(--ink)}
.bk-hero-sub{font-size:18px;color:var(--muted);margin:0 0 32px;line-height:1.7}
.bk-hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.bk-hero-img{aspect-ratio:4/3;background-size:cover;background-position:center;border-radius:var(--radius,6px)}

.bk-section{padding:80px 24px;border-bottom:1px solid var(--border)}
.bk-wrap{max-width:1180px;margin:0 auto}
.bk-section-head{margin-bottom:48px}
.bk-eyebrow{color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:2px;font-size:12px;margin-bottom:12px;display:block}
.bk-section-head h2{font-family:var(--serif,var(--sans));font-size:clamp(26px,3.5vw,40px);margin:0;font-weight:600;color:var(--ink)}
.bk-section-head p{color:var(--muted);max-width:640px;margin:16px 0 0;font-size:16px}

.bk-about-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:60px}
@media(max-width:900px){.bk-about-grid{grid-template-columns:1fr}}
.bk-prose{font-size:16px;line-height:1.65;color:var(--ink)}
.bk-prose p{margin:0 0 8px}
.bk-prose p:last-child{margin-bottom:0}
.bk-prose h2,.bk-prose h3,.bk-prose h4{margin:20px 0 10px}
.bk-prose ul,.bk-prose ol{margin:0 0 10px 24px}

.bk-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media(max-width:700px){.bk-gallery{grid-template-columns:repeat(2,1fr)}}
.bk-gallery-tile{aspect-ratio:1;overflow:hidden;background:#ddd;border-radius:var(--radius,6px)}
.bk-gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.bk-gallery-tile:hover img{transform:scale(1.05)}

.bk-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media(max-width:800px){.bk-info-grid{grid-template-columns:1fr}}
.bk-info-card h3{font-family:var(--serif,var(--sans));font-size:22px;margin:0 0 16px;font-weight:600}
.bk-info-card.bk-contact-card{border:1px solid var(--border);border-radius:var(--radius,8px);padding:24px;background:var(--card,var(--bg))}
.bk-hours-row{display:flex;justify-content:space-between;align-items:center;padding:12px 10px;font-size:14px;border-radius:4px}
.bk-hours-row:nth-child(even){background:rgba(0,0,0,.03)}
.bk-hours-row.closed{opacity:.35}
.bk-hours-day{text-transform:uppercase;letter-spacing:1px;font-size:12px;color:var(--muted);font-weight:500}
.bk-contact-line{padding:12px 0;font-size:14px;color:var(--ink);border-bottom:1px solid var(--border)}
.bk-contact-line:last-child{border-bottom:none;padding-bottom:0}
.bk-contact-line strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:4px;font-weight:500}

.bk-content-card{border:1px solid var(--border);border-radius:var(--radius,8px);padding:32px 36px;background:var(--card,var(--bg));max-width:660px;margin:0 auto}
@media(max-width:600px){.bk-content-card{padding:20px 16px}}
.bk-form{display:grid;gap:16px}
.bk-field{display:grid;gap:6px}
.bk-field label{font-size:13px;color:var(--muted);font-weight:500;letter-spacing:.5px}
.bk-field input,.bk-field textarea{
  padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius,6px);
  font-family:inherit;font-size:15px;background:var(--bg);color:var(--ink);
}
.bk-field input:focus,.bk-field textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}
.bk-field textarea{min-height:120px;resize:vertical}

.bk-footer{padding:48px 24px;background:var(--card,var(--bg));color:var(--muted);font-size:14px}
.bk-footer-inner{max-width:1180px;margin:0 auto;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.bk-footer a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.bk-footer a:hover{color:var(--ink)}
.bk-socials{display:flex;gap:16px;font-size:13px}

.bk-open-badge{
  display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;
  background:#10b98122;color:#059669;font-size:12px;font-weight:600;margin-top:16px;
}
.bk-open-badge::before{content:'';width:8px;height:8px;border-radius:50%;background:#10b981}
.bk-open-badge.closed{background:#9ca3af22;color:#6b7280}
.bk-open-badge.closed::before{background:#9ca3af}

.bk-cookie-banner{
  position:fixed;bottom:16px;left:16px;right:16px;max-width:480px;margin:0 auto;z-index:200;
  background:var(--ink);color:#fff;padding:16px 20px;border-radius:var(--radius,6px);
  display:flex;gap:16px;align-items:center;font-size:14px;box-shadow:0 10px 40px rgba(0,0,0,.2);
}
.bk-cookie-banner.hidden{display:none}
.bk-cookie-banner button{
  padding:8px 16px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius,4px);
  cursor:pointer;font-weight:600;font-size:13px;
}
