/* ============================================
   BASIS-STYLES
   ============================================ */

body {
  font-family: "Poppins", sans-serif;
  background: #222;
  color: #fff;
  margin: 30px;
  font-size: 16px;
}

.wrapper { max-width: 900px; margin: 0 auto; }
form     { max-width: 700px; }

/* ============================================
   FLOATING LABEL INPUTS
   ============================================ */

.floating-group {
  position: relative;
  padding-top: 16px;
  margin-bottom: 28px;
}

.floating-input {
  width: 100%;
  border: 0;
  border-bottom: 2px solid #9b9b9b;
  outline: none;
  font-size: 1.3rem;
  color: #ffffff;
  padding: 7px 0;
  background: transparent;
  transition: border-color 0.25s ease;
}

.floating-input::placeholder { color: transparent; }

.floating-input:placeholder-shown ~ .floating-label {
  top: 22px;
  font-size: 1.3rem;
  cursor: text;
}

/* LABEL STANDARD */
.floating-label {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  font-size: 1rem;
  color: #9b9b9b;
  pointer-events: none;
  transition: 0.25s ease;
}

/* LABEL BEWEGT SICH HOCH */
.floating-input:focus ~ .floating-label,
.floating-input:not(:placeholder-shown) ~ .floating-label {
  top: 0;
  font-size: 1rem;
  font-weight: 600;
}

/* FOCUS EFFEKT */
.floating-input:focus {
  padding-bottom: 6px;
  border-bottom-width: 3px;
  border-bottom-color: #11998e;
}

/* ============================================
   ERFOLG & FEHLER – NEUES LABEL-SYSTEM
   ============================================ */

.input-success {
    border-bottom-color: #38ef7d !important;
}

.input-error {
    border-bottom-color: #ff6b6b !important;
}

/* LABEL bei Erfolg */
.floating-label.success {
    color: #38ef7d !important;
}

/* LABEL bei Fehler */
.floating-label.error {
    color: #ff6b6b !important;
}

/* Fehlertext direkt im Label */
.floating-label .error-text {
    opacity: 0;
    margin-left: 6px;
    font-size: 0.85em;
    color: #ff6b6b;
    transition: opacity 0.25s ease;
}

/* Fehlertext sichtbar */
.floating-label.error .error-text {
    opacity: 1;
}

/* ============================================
   Error-message Platzhalter (leer bleiben!)
   ============================================ */

.error-message {
  min-height: 16px; /* verhindert Springen */
  font-size: 0.85rem;
  color: transparent; /* NICHT anzeigen */
}

/* ============================================
   RADIO
   ============================================ */

.radio {
  display: block;
  cursor: pointer;
  user-select: none;
  text-align: left;
}
.radio + .radio { margin-top: 12px; }
.radio input { display: none; }

.radio input + span {
  display: inline-block;
  position: relative;
  padding-left: 30px;
}

.radio input + span:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #ccc;
}

.radio input + span:after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #222;
  opacity: 0;
  transform: scale(0);
  transition: 0.2s;
}

.radio input:checked + span:after {
  opacity: 1;
  transform: scale(1);
}

/* ============================================
   BOOKING BLOCK
   ============================================ */

#booking-block {
  display: none;
  margin-top: 20px;
  padding: 15px 10px;
  border-left: 3px solid #38ef7d;
  background: #333;
  border-radius: 6px;
}

/* ============================================
   BUTTONS
   ============================================ */

.submit-btn {
  margin-top: 8px;
  padding: 10px 18px;
  font-size: 1rem;
  border-radius: 6px;
  border: none;
  cursor: pointer;
  background: linear-gradient(to right, #11998e, #38ef7d);
  color: #222;
  font-weight: 600;
}








/* -------------------------------------------------- */
/* EVENT MODAL – OVERLAY */
/* -------------------------------------------------- */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(5px);
    z-index: 999;
    cursor: pointer;
}

/* -------------------------------------------------- */
/* EVENT MODAL – BOX */
/* -------------------------------------------------- */
.modal-box {
    position: fixed;          /* <<< Wichtig! Nicht absolute */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #ffffff;
    color: #000;
    padding: 25px 30px;
    width: min(90%, 420px);
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
    z-index: 1000;
    text-align: center;
    animation: modalIn .35s ease;
}
/* -------------------------------------------------- */
/* EVENT MODAL – CLOSE BUTTON (X) */
/* -------------------------------------------------- */
.modal-close {
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 22px;
    cursor: pointer;
    color: #555;
    transition: color .15s ease;
}
.modal-close:hover {
    color: #000;
}

/* -------------------------------------------------- */
/* EVENT MODAL – BUTTONS */
/* -------------------------------------------------- */
.modal-btn {
    margin-top: 15px;
    padding: 10px 18px;
    background: var(--primary-color, #007bff);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 1rem;
    transition: opacity .2s ease;
}

.modal-btn:hover {
    opacity: 0.85;
}

/* Optional: der zweite Button (Modal schließen) */
.modal-btn.secondary {
    background: #444;
}

/* -------------------------------------------------- */
/* EVENT MODAL – ANIMATION */
/* -------------------------------------------------- */
@keyframes modalIn {
    from { opacity: 0; transform: translate(-50%, -45%); }
    to   { opacity: 1; transform: translate(-50%, -50%); }
}

