/* Tischreservierung (Demo) – übernimmt die Farben der jeweiligen Beispielseite */
.resv{--r-bg:var(--paper,var(--bg,#faf7ef));--r-ink:var(--ink,#2b2b2b);--r-acc:var(--brand,var(--accent,#a23d27));
  --r-line:color-mix(in srgb,var(--r-ink) 16%,transparent);--r-soft:color-mix(in srgb,var(--r-ink) 6%,var(--r-bg));
  background:var(--r-soft);color:var(--r-ink);padding-block:clamp(56px,8vw,110px);font-family:inherit}
.resv-inner{width:min(1120px,calc(100% - 32px));margin-inline:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:start}
.resv-copy{display:flex;flex-direction:column;gap:16px;min-width:0}
.resv-copy .eyebrow{color:var(--r-acc);margin:0}
.resv-copy h2{margin:0;font-family:var(--display,Georgia,serif)}
.resv-copy p{margin:0;max-width:44ch}
.resv-perks{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px}
.resv-perks li{display:flex;gap:10px;align-items:baseline}
.resv-perks li::before{content:"✓";color:var(--r-acc);font-weight:700}
.resv-card{background:var(--r-bg);border:1px solid var(--r-line);border-radius:20px;padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:22px;box-shadow:0 24px 60px -36px #0008;min-width:0}
.resv-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.75;margin:0 0 10px;display:block}
.resv-people{display:flex;align-items:center;gap:14px}
.resv-people button{width:44px;height:44px;border-radius:50%;border:1px solid var(--r-line);background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer}
.resv-people button:disabled{opacity:.3;cursor:default}
.resv-people output{font-size:22px;font-weight:700;min-width:7ch;text-align:center;font-variant-numeric:tabular-nums}
.resv-days{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;margin-inline:-2px;padding-inline:2px}
.resv-day{flex:0 0 auto;width:64px;padding:10px 0;border-radius:14px;border:1px solid var(--r-line);background:transparent;color:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;font:inherit}
.resv-day small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;opacity:.7}
.resv-day b{font-size:20px;font-variant-numeric:tabular-nums}
.resv-day em{font-style:normal;font-size:10px;opacity:.7}
.resv-day:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.resv-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}
.resv-time{padding:11px 0;border-radius:12px;border:1px solid var(--r-line);background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}
.resv-time:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.resv-day[aria-pressed=true],.resv-time[aria-pressed=true]{background:var(--r-acc);border-color:var(--r-acc);color:var(--r-bg)}
.resv-day[aria-pressed=true] small,.resv-day[aria-pressed=true] em{opacity:.9}
.resv-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.resv-fields .full{grid-column:1/-1}
.resv-fields label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.resv-fields input,.resv-fields textarea{font:inherit;font-size:16px;padding:12px 14px;border-radius:12px;border:1px solid var(--r-line);background:var(--r-soft);color:inherit;width:100%}
.resv-fields textarea{min-height:76px;resize:vertical}
.resv-submit{border:0;border-radius:999px;background:var(--r-acc);color:var(--r-bg);padding:16px 22px;font:inherit;font-weight:700;font-size:16px;cursor:pointer;transition:transform .2s}
.resv-submit:hover{transform:translateY(-2px)}
.resv-error{margin:0;font-size:14px;font-weight:600;color:var(--r-acc)}
.resv-hint{margin:0;font-size:12px;opacity:.7}
.resv-done{display:flex;flex-direction:column;gap:14px;text-align:center;align-items:center;padding-block:12px}
.resv-done .tick{width:64px;height:64px;border-radius:50%;background:var(--r-acc);color:var(--r-bg);display:grid;place-items:center;font-size:30px;animation:resv-pop .5s cubic-bezier(.2,.9,.3,1.4)}
.resv-done h3{margin:0;font-family:var(--display,Georgia,serif);font-size:28px}
.resv-ticket{width:100%;border:1px dashed var(--r-line);border-radius:14px;padding:16px;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;text-align:left;font-size:15px}
.resv-ticket dt{opacity:.65}
.resv-ticket dd{margin:0;font-weight:700}
.resv-again{background:transparent;border:1px solid var(--r-line);color:inherit;border-radius:999px;padding:10px 18px;font:inherit;cursor:pointer}
.resv :focus-visible{outline:3px solid var(--r-acc);outline-offset:2px}
@keyframes resv-pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.resv *{animation:none!important;transition:none!important}}
@media (max-width:820px){.resv-inner{grid-template-columns:1fr}}
@media (max-width:480px){.resv-fields{grid-template-columns:1fr}}
