/* =========================================================
   da obanWiacht – Reservierung (gothic look)
   ========================================================= */
:root{
  --chili:#b3261e;
  --chili-2:#e0432f;
  --lime:#9bbf3c;
  --gold:#c9a45c;
  --bone:#e6dcc3;
  --ink:#0b0b0a;
  --ink-2:#161614;
  --ink-3:#22221f;
}
body.reserve{background:var(--ink);color:var(--bone)}
body.reserve .site-header{border-bottom-color:var(--chili)}
body.reserve .stripes{background-image:repeating-linear-gradient(45deg,var(--chili) 0 14px,var(--ink) 14px 28px)}

/* ---------- banner ---------- */
.mex{position:relative;overflow:hidden;background:
  radial-gradient(ellipse at 50% 120%,rgba(179,38,30,.55),transparent 60%),
  linear-gradient(180deg,#1a0d0b 0%,var(--ink) 100%);
  border-bottom:3px solid var(--chili);padding:46px 24px 44px;text-align:center}
.mex::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.14;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.mex::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;
  background-image:repeating-linear-gradient(90deg,var(--chili) 0 30px,var(--lime) 30px 60px,var(--gold) 60px 90px,var(--ink) 90px 120px);opacity:.9}
.mex>*{position:relative}
.mex .ornament{font-family:var(--font-type);color:var(--gold);letter-spacing:.4em;text-transform:uppercase;font-size:12px;margin-bottom:14px}
.mex .ornament::before,.mex .ornament::after{content:"✠";margin:0 14px;color:var(--chili-2)}
.mex h1{font-family:var(--font-head);font-weight:400;font-size:clamp(44px,7vw,92px);line-height:.9;color:var(--bone);text-shadow:5px 5px 0 var(--chili),0 0 36px rgba(179,38,30,.5);margin:0 0 4px}
.mex h1 em{font-style:normal;display:block;margin-top:10px;color:var(--chili-2);font-size:.5em;text-shadow:3px 3px 0 var(--ink)}
.mex .meta{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin-top:18px}
.mex .sub{font-family:var(--font-stencil);text-transform:uppercase;letter-spacing:.2em;font-size:clamp(13px,1.6vw,17px);color:var(--gold)}
.mex .chilis{font-size:22px;letter-spacing:.2em;filter:drop-shadow(0 3px 0 rgba(0,0,0,.6))}
.mex .until{display:inline-block;border:2px solid var(--gold);color:var(--gold);padding:6px 16px;font-family:var(--font-type);letter-spacing:.2em;text-transform:uppercase;font-size:12px;transform:rotate(-2deg)}

/* ---------- layout ---------- */
.reserve-wrap{max-width:1180px;margin:auto;padding:40px 24px 80px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:44px;align-items:start}
.panel{min-width:0;background:var(--ink-2);border:2px solid #2e2b25;position:relative;padding:30px}
.panel::before,.panel::after{content:"✠";position:absolute;color:var(--gold);font-size:18px;opacity:.7}
.panel::before{top:8px;left:12px}
.panel::after{bottom:8px;right:12px}
.panel h2{font-family:var(--font-head);font-weight:400;font-size:clamp(38px,5vw,60px);line-height:.95;margin:0 0 6px;color:var(--bone)}
.panel .kicker{color:var(--gold)}

/* ---------- calendar ---------- */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 14px;border-top:1px solid #3a3730;border-bottom:1px solid #3a3730;padding:12px 0}
.cal-head .month{font-family:var(--font-head);font-size:34px;line-height:1;color:var(--gold)}
.cal-head button{background:none;border:2px solid var(--gold);color:var(--gold);width:42px;height:38px;font-family:var(--font-stencil);font-size:18px;cursor:pointer;transition:.2s}
.cal-head button:hover{background:var(--gold);color:var(--ink)}
.cal-head button:disabled{opacity:.3;cursor:default}
.cal-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;font-family:var(--font-type);font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:#8f8977;text-align:center;margin-bottom:6px}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.day{position:relative;min-width:0;overflow:hidden;aspect-ratio:1;background:var(--ink-3);border:1px solid #2e2b25;padding:7px 8px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:border-color .2s,transform .2s;text-align:left;color:inherit;font:inherit}
.day:hover:not(:disabled){border-color:var(--gold);transform:translateY(-2px)}
.day.selected{border-color:var(--chili-2);box-shadow:0 0 0 2px var(--chili-2) inset}
.day .num{font-family:var(--font-head);font-size:22px;line-height:1;color:var(--bone)}
.day .pct{font-family:var(--font-stencil);font-size:13px;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day .bar{height:5px;background:#33302a;margin-top:4px}
.day .bar i{display:block;height:100%}
.day.low .pct{color:var(--lime)}.day.low .bar i{background:var(--lime)}
.day.mid .pct{color:var(--gold)}.day.mid .bar i{background:var(--gold)}
.day.high .pct{color:var(--chili-2)}.day.high .bar i{background:var(--chili-2)}
.day.full{background:repeating-linear-gradient(45deg,#1c1a17 0 6px,#221d1b 6px 12px)}
.day.full .pct{color:var(--chili-2)}
.day.full .bar i{background:var(--chili)}
.day .pct .sm{display:none}
.day.closed,.day.past{cursor:default;opacity:.35}
.day.closed .num,.day.past .num{color:#6b665a}
.day.closed .pct{font-family:var(--font-type);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#8f8977}
.day.today .num{color:var(--gold)}
.day.today::after{content:"heute";position:absolute;top:5px;right:6px;font-family:var(--font-type);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.day.pad{background:none;border-color:transparent;cursor:default}
.day.mex-day::before{content:"🌶";position:absolute;right:6px;bottom:22px;font-size:12px;opacity:.9}
.legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;font-family:var(--font-type);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#8f8977}
.legend span::before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px}
.legend .l-low::before{background:var(--lime)}
.legend .l-mid::before{background:var(--gold)}
.legend .l-high::before{background:var(--chili-2)}
.legend .l-full::before{background:repeating-linear-gradient(45deg,#1c1a17 0 3px,var(--chili) 3px 6px)}
.legend .l-mex::before{content:"🌶";width:auto;height:auto;background:none}

/* ---------- form ---------- */
.form .pick{font-family:var(--font-type);font-size:13px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);border:1px dashed var(--gold);padding:10px 14px;margin:18px 0 22px}
.form .pick{overflow-wrap:anywhere}
.form .pick b{color:var(--bone);font-family:var(--font-stencil);font-size:16px;letter-spacing:.05em;display:block;margin-top:4px}
.form .pick.warn{border-color:var(--chili-2);color:var(--chili-2)}
.form label{display:block;font-family:var(--font-cond);text-transform:uppercase;letter-spacing:.15em;font-size:13px;color:#a39c88;margin:14px 0 6px}
.form input,.form select,.form textarea{width:100%;background:var(--ink);border:2px solid #33302a;color:var(--bone);padding:11px 13px;font-family:var(--font-body);font-size:16px;transition:border-color .2s}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--gold);outline:none}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .btn.hot{background:var(--chili);border-color:var(--chili);width:100%;text-align:center;margin-top:24px;font-size:16px}
.form .btn.hot:hover{background:var(--chili-2);border-color:var(--chili-2)}
.form .note{font-size:13px;color:#8f8977;margin-top:14px;line-height:1.5}
.form .alt{margin-top:22px;padding-top:18px;border-top:1px solid #33302a;font-size:15px;color:#a39c88}
.form .alt a{color:var(--gold);text-decoration:underline}

/* ---------- day load strip ---------- */
.dayload{margin:-8px 0 22px}
.dl-head{display:flex;justify-content:space-between;gap:10px;font-family:var(--font-type);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#8f8977;margin-bottom:8px}
.dl-head span:last-child{color:var(--gold)}
.dl-strip{display:flex;gap:2px;height:34px}
.dl-seg{flex:1;min-width:0;border:0;padding:0;cursor:pointer;background:#33302a;transition:transform .15s,outline-color .15s;outline:2px solid transparent;outline-offset:1px}
.dl-seg:hover{transform:scaleY(1.12)}
.dl-seg.on{outline-color:var(--bone)}
.dl-seg.l1{background:#5f7d2a}
.dl-seg.l2{background:var(--lime)}
.dl-seg.l3{background:var(--gold)}
.dl-seg.l4{background:var(--chili-2)}
.dl-labels{display:flex;justify-content:space-between;font-family:var(--font-type);font-size:10px;color:#8f8977;margin-top:5px}
.dl-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;font-family:var(--font-type);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#8f8977}
.dl-legend span::before{content:"";display:inline-block;width:10px;height:10px;margin-right:5px;vertical-align:-1px}
.dl-legend .l1::before{background:#5f7d2a}
.dl-legend .l2::before{background:var(--lime)}
.dl-legend .l3::before{background:var(--gold)}
.dl-legend .l4::before{background:var(--chili-2)}

/* ---------- hours strip ---------- */
.hours-strip{background:var(--ink-2);border-top:2px solid #2e2b25;border-bottom:2px solid #2e2b25;padding:46px 24px}
.hours-strip .wrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center}
.hours-strip h2{font-family:var(--font-head);font-weight:400;font-size:clamp(34px,4.5vw,52px);margin:0 0 10px;color:var(--bone)}
.hours-strip table{width:100%;border-collapse:collapse;font-size:16px}
.hours-strip td{padding:10px 6px;border-bottom:1px dashed #3a3730;vertical-align:top}
.hours-strip td:first-child{font-family:var(--font-cond);text-transform:uppercase;letter-spacing:.12em;font-weight:600;width:38%}
.hours-strip td+td{font-family:var(--font-cond);font-weight:700;letter-spacing:.08em;font-size:18px;color:var(--gold);text-align:right;white-space:nowrap}
.hours-strip .closed{color:var(--chili-2)}
.hours-strip p{color:#a39c88;font-size:15px;margin:8px 0}

@media (max-width:900px){
  .reserve-wrap,.hours-strip .wrap{grid-template-columns:1fr}
  .mex{padding:34px 16px 34px}
  .panel{padding:24px 18px}
  .day{padding:5px 6px}
  .day .num{font-size:18px}
  .day .pct{font-size:11px}
  .day.today::after{display:none}
  .form .row{grid-template-columns:1fr}
}
@media (max-width:520px){
  .cal,.cal-dow{gap:3px}
  .day .pct .lg{display:none}
  .day .pct .sm{display:inline}
  .day .bar{height:3px}
  .day{padding:4px 4px}
  .day .num{font-size:15px}
  .day .pct{font-size:10px}
  .day.mex-day::before{display:none}
  .day.closed .pct{font-size:8px}
}
