:root { --bg:#f6f4ef; --card:#fff; --ink:#1f2a2e; --muted:#667176; --accent:#1d5c63; --accent-d:#154148; --line:#e2ded4; --ok:#2e7d4f; --err:#b3372b; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; background:var(--bg); color:var(--ink); }
header.hero { background:var(--accent); color:#fff; padding:40px 20px 36px; }
.wrap { max-width:960px; margin:0 auto; padding:0 20px; }
header.hero .wrap { padding:0; }
h1 { margin:0 0 6px; font-size:clamp(1.6rem,4vw,2.4rem); line-height:1.2; }
.addr { opacity:.85; margin:0; }
main.wrap { padding-top:24px; padding-bottom:48px; display:grid; gap:20px; grid-template-columns:1fr; }
@media (min-width:820px) { main.wrap { grid-template-columns:1.2fr 1fr; align-items:start; } }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:22px; }
.card h2 { margin:0 0 12px; font-size:1.15rem; }
.facts { display:grid; grid-template-columns:auto 1fr; gap:6px 18px; margin:16px 0 0; }
.facts dt { color:var(--muted); } .facts dd { margin:0; font-weight:600; }
.gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; margin-top:16px; }
.gallery img { width:100%; height:130px; object-fit:cover; border-radius:8px; }
.badge { display:inline-block; padding:3px 10px; border-radius:99px; font-size:.82rem; font-weight:600; background:#e8f1f2; color:var(--accent-d); }
.badge.open { background:#e3f3ea; color:var(--ok); } .badge.closed { background:#f6e4e1; color:var(--err); }
.countdown { font-size:1.9rem; font-weight:700; font-variant-numeric:tabular-nums; margin:10px 0 2px; }
.sub { color:var(--muted); font-size:.92rem; margin:0; }
.stats { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:18px 0; }
.stat { background:var(--bg); border-radius:10px; padding:12px 14px; }
.stat b { display:block; font-size:1.3rem; } .stat span { color:var(--muted); font-size:.85rem; }
form { display:grid; gap:12px; }
label { font-size:.9rem; font-weight:600; display:grid; gap:4px; }
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password] { font:inherit; padding:10px 12px; border:1px solid #cfcabd; border-radius:8px; width:100%; }
input:focus { outline:2px solid var(--accent); outline-offset:1px; }
.check { display:flex; gap:10px; font-weight:400; align-items:flex-start; font-size:.88rem; }
.check input { margin-top:4px; }
button { font:inherit; font-weight:600; padding:12px 18px; border:0; border-radius:8px; background:var(--accent); color:#fff; cursor:pointer; }
button:hover { background:var(--accent-d); } button:disabled { background:#9aa7a9; cursor:not-allowed; }
button.secondary { background:#e8e4d9; color:var(--ink); } button.secondary:hover { background:#dcd7c9; }
.msg { padding:10px 12px; border-radius:8px; font-size:.92rem; display:none; }
.msg.show { display:block; } .msg.ok { background:#e3f3ea; color:#1d5a37; } .msg.err { background:#f6e4e1; color:#8a2a20; }
.legal { font-size:.8rem; color:var(--muted); margin-top:14px; }
footer { text-align:center; color:var(--muted); font-size:.85rem; padding:0 20px 40px; }
table { width:100%; border-collapse:collapse; font-size:.92rem; }
th,td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:var(--muted); font-weight:600; } td.num { text-align:right; font-variant-numeric:tabular-nums; font-weight:600; }
tr.top td { background:#eef6f0; }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.table-wrap { overflow-x:auto; }

/* Ergänzungen (statt Inline-Styles, wegen Content-Security-Policy) */
main.wrap.single { grid-template-columns: 1fr; }
.spaced { margin-top: 16px; }
.row.between { justify-content: space-between; margin-bottom: 12px; }
footer a { color: var(--muted); }
.gallery img { background: #e8e4d9; }
.legal-page { max-width: 760px; margin: 0 auto; padding: 28px 20px 48px; }
.legal-page .card { padding: 26px; }
.legal-page h2 { margin-top: 26px; font-size: 1.1rem; }
.legal-page h2:first-of-type { margin-top: 0; }
.legal-page p, .legal-page li { font-size: .95rem; }
.legal-page .warn { background: #f6e4e1; color: #8a2a20; padding: 10px 12px; border-radius: 8px; margin-bottom: 18px; }
.legal-page .back { display: inline-block; margin-bottom: 14px; color: var(--accent); }
a { color: var(--accent); }

/* Galerie: anklickbare Vorschaubilder und Vollbildansicht */
.gallery .thumb { padding: 0; border: 0; background: none; border-radius: 8px; cursor: zoom-in; overflow: hidden; line-height: 0; }
.gallery .thumb:hover { background: none; }
.gallery .thumb img { transition: transform .15s; }
.gallery .thumb:hover img { transform: scale(1.04); }
.gallery .thumb:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
body.noscroll { overflow: hidden; }
.lightbox { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; background: rgba(10, 15, 17, .93); }
.lightbox.open { display: flex; }
.lb-img { max-width: 92vw; max-height: 84vh; object-fit: contain; border-radius: 4px; }
.lightbox .lb-btn { position: absolute; background: rgba(255, 255, 255, .14); color: #fff; border: 0; border-radius: 50%; width: 48px; height: 48px; padding: 0; font-size: 2rem; line-height: 1; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.lightbox .lb-btn:hover { background: rgba(255, 255, 255, .28); }
.lightbox .lb-btn[hidden] { display: none; }
.lb-close { top: 16px; right: 16px; }
.lb-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 16px; top: 50%; transform: translateY(-50%); }
.lb-count { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; color: #fff; opacity: .85; font-size: .95rem; }
@media (max-width: 600px) { .lb-img { max-width: 100vw; max-height: 78vh; border-radius: 0; } .lightbox .lb-btn { width: 42px; height: 42px; } }
