/* ============================================================
   LUX – Reservierungsseite (reservieren.php)
   Baut auf style.css auf: gleiche Farben, Schriften und Buttons.
   ============================================================ */

.rv-reihen { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
@media (max-width: 950px) { .rv-reihen { grid-template-columns: 1fr; } }
.rv-reihe {
  background: var(--bg-2); border: 1px solid var(--line); cursor: pointer;
  display: flex; flex-direction: column; text-align: left; color: var(--text);
  transition: border-color .2s, transform .2s; padding: 0; font: inherit;
}
.rv-reihe:hover { border-color: var(--gold); transform: translateY(-3px); }
.rv-reihe.aktiv { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold) inset; }
.rv-reihe img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-bottom: 1px solid var(--line); }
.rv-reihe .rv-in { padding: 1.3rem 1.4rem 1.5rem; display: flex; flex-direction: column; gap: .45rem; flex: 1; }
.rv-reihe .rv-kick { font-family: var(--font-head); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.rv-reihe h3 { margin: 0; font-size: 1.25rem; }
.rv-reihe .rv-claim { font-family: var(--font-serif); font-style: italic; font-size: 1.15rem; color: var(--gold-soft); }
.rv-reihe .rv-txt { color: var(--muted); font-size: .9rem; flex: 1; }
.rv-reihe .rv-preis { font-family: var(--font-head); letter-spacing: .08em; color: var(--gold); margin-top: .3rem; }

.rv-panel { margin-top: 2.2rem; background: var(--bg-2); border: 1px solid var(--line); scroll-margin-top: 90px; }
.rv-panel[hidden] { display: none; }
.rv-grid { display: grid; grid-template-columns: 1fr 1.1fr; }
@media (max-width: 900px) { .rv-grid { grid-template-columns: 1fr; } }
.rv-info { padding: clamp(1.4rem, 3vw, 2.4rem); border-right: 1px solid var(--line); }
@media (max-width: 900px) { .rv-info { border-right: 0; border-bottom: 1px solid var(--line); } }
.rv-form { padding: clamp(1.4rem, 3vw, 2.4rem); }
.rv-info .rv-ablauf { list-style: none; margin: 1rem 0 1.4rem; }
.rv-info .rv-ablauf li { padding: .5rem 0; border-bottom: 1px dotted #4a3c2c; color: #ded4c4; font-size: .93rem; }
.rv-info .rv-menue { white-space: pre-line; color: var(--muted); font-size: .92rem; }

.rv-schritt { font-family: var(--font-head); font-size: .74rem; letter-spacing: .18em; text-transform: uppercase;
              color: var(--gold); margin: 1.4rem 0 .6rem; }
.rv-schritt:first-child { margin-top: 0; }
.rv-hinweis { border-left: 2px solid var(--gold); background: rgba(217,160,91,.06); padding: .7rem 1rem;
              color: var(--muted); font-size: .88rem; margin: .8rem 0; }

/* Kalender */
.rv-kal { border: 1px solid var(--line); background: var(--bg); padding: .8rem; user-select: none; }
.rv-kal-kopf { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.rv-kal-kopf b { font-family: var(--font-head); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; font-size: .9rem; }
.rv-kal-kopf button { background: none; border: 1px solid var(--line); color: var(--gold); width: 2.2rem; height: 2.2rem; cursor: pointer; font-size: 1rem; }
.rv-kal-kopf button:disabled { opacity: .25; cursor: default; }
.rv-kal-gitter { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.rv-kal-gitter .wt { text-align: center; font-family: var(--font-head); font-size: .68rem; letter-spacing: .1em; color: var(--muted); padding: .2rem 0; }
.rv-tag { aspect-ratio: 1 / 1; border: 1px solid transparent; background: none; color: #5b5146; font: inherit; font-size: .9rem;
          display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 0; }
.rv-tag i { width: 5px; height: 5px; border-radius: 50%; background: transparent; }
.rv-tag.frei, .rv-tag.knapp { color: var(--text); background: var(--bg-3); border-color: var(--line); cursor: pointer; }
.rv-tag.frei i { background: #8fbf7a; }
.rv-tag.knapp i { background: var(--gold); }
.rv-tag.voll { color: #7a6e60; text-decoration: line-through; }
.rv-tag.voll i { background: #b4552d; }
.rv-tag.frei:hover, .rv-tag.knapp:hover { border-color: var(--gold); }
.rv-tag.gewaehlt { background: var(--gold) !important; color: #17110a !important; border-color: var(--gold) !important; }
.rv-tag.gewaehlt i { background: #17110a !important; }
.rv-legende { display: flex; flex-wrap: wrap; gap: 1rem; font-size: .78rem; color: var(--muted); margin-top: .6rem; }
.rv-legende span::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: .4rem; vertical-align: middle; }
.rv-legende .l-frei::before { background: #8fbf7a; } .rv-legende .l-knapp::before { background: var(--gold); } .rv-legende .l-voll::before { background: #b4552d; }

/* Terminliste (Feuer & Form, Gabel & Glas) */
.rv-termine { display: flex; flex-direction: column; gap: .4rem; max-height: 22rem; overflow-y: auto; padding-right: .3rem; }
.rv-termin { display: grid; grid-template-columns: 1fr auto; gap: .2rem 1rem; align-items: center; text-align: left;
             background: var(--bg); border: 1px solid var(--line); color: var(--text); padding: .7rem .9rem; cursor: pointer; font: inherit; }
.rv-termin:hover { border-color: var(--gold); }
.rv-termin.gewaehlt { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold) inset; }
.rv-termin:disabled { opacity: .45; cursor: default; }
.rv-termin b { font-family: var(--font-head); font-weight: 500; letter-spacing: .06em; font-size: .92rem; }
.rv-termin small { color: var(--muted); font-size: .8rem; grid-column: 1; }
.rv-termin .rv-frei { font-size: .78rem; color: var(--muted); grid-row: 1 / span 2; grid-column: 2; text-align: right; }
.rv-balken { height: 4px; background: #2a231a; margin-top: .3rem; grid-column: 1 / -1; }
.rv-balken i { display: block; height: 100%; background: var(--gold); }

/* Uhrzeit, Personen, Auswahl */
.rv-slots { display: flex; flex-wrap: wrap; gap: .5rem; }
.rv-slots button { background: var(--bg); border: 1px solid var(--line); color: var(--text); padding: .55rem 1rem;
                   font-family: var(--font-head); letter-spacing: .1em; cursor: pointer; }
.rv-slots button.an { border-color: var(--gold); color: #17110a; background: var(--gold); }
.rv-zaehler { display: inline-flex; align-items: center; border: 1px solid var(--line); background: var(--bg); }
.rv-zaehler button { width: 2.4rem; height: 2.4rem; background: none; border: 0; color: var(--gold); font-size: 1.2rem; cursor: pointer; }
.rv-zaehler button:disabled { opacity: .25; cursor: default; }
.rv-zaehler output { min-width: 2.4rem; text-align: center; font-family: var(--font-head); font-size: 1.05rem; }
.rv-wahl { border: 1px solid var(--line); background: var(--bg); padding: .3rem .9rem; margin-bottom: .6rem; }
.rv-wahl-kopf { font-family: var(--font-head); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); padding: .5rem 0 .2rem; }
.rv-wahl-zeile { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .35rem 0; border-top: 1px dotted #3a3026; }
.rv-wahl-zeile:first-of-type { border-top: 0; }
.rv-wahl-zeile span small { color: var(--gold); margin-left: .4rem; font-size: .82rem; }
.rv-wahl-zeile .rv-fest { font-family: var(--font-head); min-width: 2.4rem; text-align: center; color: var(--muted); }

/* Formular */
.rv-felder { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
@media (max-width: 560px) { .rv-felder { grid-template-columns: 1fr; } }
.rv-feld label { display: block; font-family: var(--font-head); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: .3rem; }
.rv-feld input, .rv-feld textarea, .rv-feld select { width: 100%; background: var(--bg); border: 1px solid var(--line); color: var(--text);
            padding: .65rem .8rem; font-family: var(--font-body); font-size: .95rem; }
.rv-feld input:focus, .rv-feld textarea:focus, .rv-feld select:focus { outline: none; border-color: var(--gold); }
.rv-feld textarea { min-height: 4.5rem; resize: vertical; }
.rv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rv-summe { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--line);
            border-bottom: 1px solid var(--line); padding: .9rem 0; margin: 1.3rem 0 1rem; }
.rv-summe span { color: var(--muted); font-size: .88rem; }
.rv-summe b { font-family: var(--font-head); font-weight: 500; font-size: 1.5rem; color: var(--gold); letter-spacing: .04em; }
.rv-msg { margin-top: 1rem; padding: .9rem 1.1rem; font-size: .93rem; display: none; }
.rv-msg.err { display: block; background: #2a1814; border-left: 2px solid #b4552d; color: #f0cfc4; }
.rv-ok { text-align: center; padding: 1rem 0; }
.rv-ok h3 { font-size: 1.4rem; color: var(--gold); }
.rv-ok .rv-code { font-family: 'Courier New', monospace; font-size: 1.3rem; letter-spacing: .15em; color: var(--gold-soft); margin: .6rem 0; }
.rv-ok p { color: #ded4c4; }
.rv-klein { color: var(--muted); font-size: .8rem; margin-top: .8rem; }

/* Gutscheine */
.rv-tabs { display: flex; gap: .6rem; margin-bottom: 1.2rem; flex-wrap: wrap; }
.rv-tabs button { background: none; border: 1px solid var(--line); color: var(--muted); padding: .55rem 1.1rem;
                  font-family: var(--font-head); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.rv-tabs button.an { border-color: var(--gold); color: var(--gold); }
@media (max-width: 560px) {
  .rv-termin { grid-template-columns: 1fr; }
  .rv-termin .rv-frei { grid-row: auto; grid-column: 1; text-align: left; color: var(--gold); }
}

/* Mindestteilnehmerzahl deutlich zeigen (Feuer & Form) */
.rv-mindest{display:inline-block;margin-top:.6rem;padding:.25rem .6rem;border:1px solid var(--gold);color:var(--gold);
  font-family:var(--font-head);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}
.rv-quorum{margin:1rem 0 1.2rem;padding:1rem 1.1rem;border:1px solid var(--gold);border-left-width:4px;
  background:rgba(217,160,91,.08);font-size:.95rem;line-height:1.6;color:var(--text)}
.rv-quorum b{display:block;color:var(--gold);margin-bottom:.3rem}
.rv-feld input.rv-fehlt{border-color:#d9644f!important;box-shadow:0 0 0 1px #d9644f}
