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


label {
  font-weight: 400!important;
}

.my-checkbox {
  font-family: "myTxtFont";
  font-size: 17px;
  color: #fff;
  text-transform: none;
}




@media (max-width: 768px) {





}






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

}

.floating-input {
  font-family: 'MyUeFont';
  width: 100%;
  border: 0;
  border-bottom: 1px solid #9b9b9b;
  outline: none;
  font-size: 18px;
  
  color: #ffffff;
  padding: 7px 8px;
  background: transparent;
  transition: border-color 0.25s ease;
}

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

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



/* LABEL STANDARD */
.floating-label {
  font-family: 'myTxtFont';
  position: absolute;
  left: 0px;
  top: 0;
  width: 100%;
  font-size: 15px;
  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: 13px;
  font-weight: 600;
}

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

/* ============================================
   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
   ============================================ */





#participants-extra {
  margin-top: 20px;
}

#participants-extra .floating-group {
  margin-bottom: 15px;
}







.new-form {

  position: relative;
  display: block;
  padding: 0;
  margin: 0;

}

.ortland {
  display: flex;
  justify-content: space-between;
}




.emailtel {
  display: flex;
  justify-content: space-between;
}

.emailtel .email {
  width: calc(50% - 20px);
}



/* ----------------------------------------
   MOBILE: Email + Telefon untereinander
---------------------------------------- */
@media (max-width: 768px) {

	.emailtel {
		flex-direction: column;
	}

	.emailtel > * {
		width: 100%;
	}

  .emailtel .email {width: 100%;}
}



.ortland .ort {
  width: calc(100% - 140px);
}

.ortland .land {
  width: 100px;
}



.captcha {
  display: flex;
  justify-content: space-between;
}

.captcha .frage {
  width: calc(100% - 100px);
}

.captcha .nbtn {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100px;
  padding: 0;

}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.captchaBtn {
  position: relative;
  font-family: 'MyUeFont';
  color: #000;
  background-color: #ffc700;
  border: none;
  border-radius: 3px;
  padding: 0;
  width: 50px;
  height: 50px;

}

.captchaBtn svg {
  transition: transform .15s ease;
}

.captchaBtn:hover svg {
  transform: rotate(45deg);
}


.fbox hr {
  background: #fff;
}