/* VARIABLEN BITTE ANPASSEN */

@font-face {
  font-family : 'Be-Vietnam-Pro';
  src: url('fonts/Be_Vietnam_Pro/BeVietnamPro-Regular.ttf') format('truetype');
}

:root {
  --hintergrund-farbe: #f0f0f0;

  --box-bg-selected-color: rgba(58, 169, 53, 1);
  --box-bg-color: rgba(59, 169, 53, 0);

  --kasten-bg-selected-color: rgb(240, 240, 240);

  --button-bg-color: #f0f0f0;
  --button-border-color: #3aa935;
  --button-text-color: #3aa935;

  --input-bg-color: #3aa935;
  --input-border-color: #3aa935;
  --input-box-shadow-color: rgba(58, 169, 53, 1);

  --kommentarFeld-color: #3aa935;

  --question-color: #3aa935;

  --loader-color: #3aa935;
}

/* VARIABLEN ENDE  */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Be-Vietnam-Pro', sans-serif;
}

/* Formularvalidierung Styles */
.field-error {
  color: #dc3545;
  font-size: 12px;
  margin-top: 5px;
  display: block;
  font-weight: normal;
}

.field-error span {
  color: #dc3545;
  font-weight: bold;
}

.form-control.is-invalid {
  border-color: #dc3545;
}

.form-control.is-valid {
  border-color: #198754;
}

/* Datenschutz-Checkbox Fehlermeldung */
.form-check .field-error {
  margin-top: 5px;
  margin-left: 0;
}

/* LOADER ANFANG */
input.weiterButton {
  display: none;
}

input[type="date"] {
  width: 50%;
}

.custom-loader {
  margin-left: auto;
  margin-right: auto;
  width: 100px;
  height: 100px;
  border-radius:50%;
  background:conic-gradient(#0000 10%,var(--loader-color));
  -webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 16px),#000 0);
  animation:s3 2s infinite linear;
  
}

@keyframes s3 {to{transform: rotate(1turn)}}

/* LOADER ENDE */


  /* HIER BEGINNT BOX */

  .option1 {
    background:  url("icons/option1.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option2 {
    background: url("icons/option2.webp") , var(--box-bg-color);
    background-size: contain;
  }
  .option3 {
    background: url("icons/option3.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option4 {
    background: url("icons/option4.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option5 {
    background: url("icons/option5.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option6 {
    background: url("icons/option6.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option7 {
    background: url("icons/option7.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option8 {
    background: url("icons/option8.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option9 {
    background: url("icons/option9.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option10 {
    background: url("icons/option10.webp"), var(--box-bg-color);
    background-size: contain;
  }

  .option11 {
    background: url("icons/option11.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option12 {
    background: url("icons/option12.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option13 {
    background: url("icons/option13.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option14 {
    background: url("icons/option14.webp"), var(--box-bg-color);
    background-size: contain;
  }
  .option15 {
    background: url("icons/option15.webp"), var(--box-bg-color);
    background-size: contain;
  }
  
  
  
  /* HIER ENDET BOX */

  /* BITTE AB HIER KEINE ÄNDERUNG DURCHFÜHREN */
  .logo {
    width: 20%; /* Adjust the size as needed */
    height: auto;
    z-index: -100;
    margin-top: 50px;
    display: block;
  }

  textarea.kommentarFeld.box {
    width: 450px;
    height: 100px;
    border-radius: 25px;
    color: var(--kommentarFeld-color);
    border-color: var(--kommentarFeld-color);
    padding: 25px;
    resize: none;
  }

  textarea.kommentarFeld.box:focus {
    border-color: var(--kommentarFeld-color);
    box-shadow: 0 0 0 0.25rem var(--kommentarFeld-color);
  }

  textarea.kommentarFeld.box:focus-visible {
    outline: none;
  }

  @media only screen and (max-width: 600px) {
    textarea.kommentarFeld.box {
        width: 300px;
        height: 65px;
        margin-bottom: 5px;
    }
}
  form#user-info h3, form#user-info h1, form#user-info h4, form#user-info h2 {
    /* margin-bottom: 50px;
    margin-top: 50px; */
    text-align: left;
    color: var(--question-color);
    padding: 10px;
  }
  form#user-info h1 {
    font-size: 2em;
  }
  form#user-info h2 {
    font-size: 1.5em;
  } 
  form#user-info h3 {
    font-size: 1.17em;
  }
  form#user-info h4 {
    font-size: 1em;
  }
  
   #step11{
    animation: animate 0.5s;
    padding: 0 20px;
    margin: 0 10px;
    margin-left: auto;
    margin-right: auto;
  } 

  #step,#step0, #step1, #step2, #step3, #step4, #step5,#step6,#step7, #step8, #step9, #step10, #step11, #loader, #step2-error, #step3-error{
    animation: animate 0.5s;
    text-align: left !important;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-start;
    align-content: flex-start;
  }
  .form-check {
    text-align: left;
    color: var(--button-text-color);
  }
  .form-container {
    max-width: 500px;
  } 

  @keyframes animate {
    from {
      transform: scale(1, 0);
      opacity: 0;
    }
    to {
      transform: scale(1, 1);
      opacity: 1;
    }
  }
  
  .checkbox { 
    text-align: left;
    width: initial !important;
    height: initial !important;
    display: block;
  }

  .kasten {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 50%;
    margin-bottom: 5px;
    color: transparent;
  }

  .box {
    transition: top ease 0.5s;
    width: 200px;
    height: 200px;
    color: transparent;
    margin-left: 5px;
  }

@media (max-width: 768px) {
    .box {
        width: 100%;
        max-width: 300px;
        height: auto;
        margin: 0 auto 10px auto;
    }
}

  /* input[type="checkbox"]:checked + .box , input[type="radio"]:checked + .box ,  .box:hover {
    filter: invert(74%) sepia(0%) saturate(7014%) hue-rotate(319deg) brightness(102%) contrast(89%);
  } */
  
  form#user-info input[type="radio"], form#user-info input[type="checkbox"] {
    display: none;
  }

  form#user-info input[type="radio"] + label:hover, form#user-info input[type="button"]:hover, form#user-info input[type="submit"]:hover, .btn:hover {
    top: -10px;
    cursor: pointer;
  }

  form#user-info input[type="button"], form#user-info input[type="submit"], .btn, button.btn, .buttons {
    text-align: center !important;
    color: var(--button-text-color) !important;
    transition: top ease 0.5s !important;
    font-weight: bold !important;
    background-color: var(--button-bg-color) !important;
    border-color: var(--button-border-color) !important;
  }
  form#user-info input[type="button"]:active, form#user-info input[type="submit"]:active, .btn:active, button.btn:active {
    box-shadow: 0 0 0 0.25rem var(--input-box-shadow-color);
  }
  form#user-info input[type="button"]:focus, form#user-info input[type="submit"]:focus, .btn:focus, button.btn:focus {
    box-shadow: 0 0 0 0.25rem var(--input-box-shadow-color);
  }
  input[type="file"]:focus, input[type="date"], input[type="email"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="checkbox"]:focus, .form-select:focus {
    box-shadow: 0 0 0 0.25rem var(--input-box-shadow-color) !important;
    border-color: var(--input-border-color) !important;
  
  }
  .form-check-input:checked {
    background-color: var(--input-bg-color) !important;
    border-color: var(--input-border-color) !important;
  }
  header {
    display: flex;
    justify-content: center;
}
  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }
  @media only screen and (max-width: 600px) {
    .kasten {
      width: 282px!important;
      height: 42px!important;
    }
    form#user-info h1 {
      font-size: 1.5em;
    }
    .box {
      width: 120px;
      height: 120px;
      margin-bottom: 5px;
    }
    
    .boxes {
      flex-wrap: wrap !important;
      flex-direction: column !important;
      
    }
  }
.main-container {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    align-content: center;
    /* keine feste min-height hier */
}

/* Nur mobil erzwingen, dass Container groß genug ist */
/*@media (max-width: 768px) {
    .main-container {
        min-height: calc(100vh - 100px);
    }
}*/ 
  .boxes {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    margin-bottom: 10px;
  }

@media (max-width: 768px) {
    .boxes {
        flex-direction: column;
        align-items: center;
        flex-wrap: wrap;
    }
}

  .option {
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
  }
  .embed-responsive-16by9 {
    margin-left: 0;
    margin-right: 0;
    aspect-ratio: 16 / 9;
  }

  /* Select all divs with id starting with "step" and hide them */
  div[id^="step"] {
    display: none;
  }
  /* div[id^="step"] h1 {
    margin-bottom: 30px;
  } */

  /* Select the first div with id starting with "step" and display it */
  div[id="step"] {
    display: flex;
  }

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

  #loader, #loader2, #start{
    display: none;
  }
  .datenschutz {
    display: block !important;
    color: #3aa935 !important;
  }

  .datenschutz a {
    color: #3aa935 !important;
  }

  .datenschutz a:hover {
    color: #3aa935 !important;
  }

  .datenschutz a:active {
    color: #3aa935 !important;
  }

  /* Datenschutz Checkbox grün umranden */
  .form-check-input.datenschutz {
    border: 2px solid #3aa935 !important;
    border-radius: 4px !important;
  }

  .form-check-input.datenschutz:checked {
    background-color: #3aa935 !important;
    border-color: #3aa935 !important;
  }

  .form-check-input.datenschutz:focus {
    box-shadow: 0 0 0 0.25rem rgba(58, 169, 53, 0.25) !important;
    border-color: #3aa935 !important;
  }

  /* h2 {
    margin-top:10px; margin-bottom:20px;
  } */
  select#bundeslaender {
    align-items: center;
    padding: 0 15px;
}
  body {
    background: var(--hintergrund-farbe) !important;
    background-attachment: fixed;
    /* height: 100vh; */
    /* margin: 0; */
  }

  .container-steps {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
  }
  /* .body:nth-child(1) {
    margin-top: 50px;
} */
  /* HIER ENDEN DIE NICHT ZU BEARBEITENDE FELDER */


footer {
    position: relative;
    width: 100%;
    margin-top: 20px;
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  padding: 10px 0;
}

.benefit-item {
  background-color: #f8f9fa; /* helles Grau */
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  padding: 15px;
  opacity: 0; /* Start unsichtbar für Animation */
  transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

/* Sobald aktiv, sichtbar und "hochgepoppt" */
.benefit-item.show {
  opacity: 1;
  transform: translateY(0);
}

.benefits-header {
  background-color: white;         /* weißer Hintergrund */
  color: #3AA935;               
  padding: 20px 30px;
  border-radius: 12px;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  border: 2px solid #3AA935;    
  margin-bottom: 25px;
  user-select: none;
}

#step5 h2 {
  margin-bottom: 60px;
}

/* Standard: Mobile - Boxen untereinander (1 Spalte) */
.benefits-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}

/* Desktop ab 992px (Bootstrap Medium/large breakpoint) */
@media (min-width: 992px) {
  .benefits-grid {
    grid-template-columns: repeat(3, 1fr); /* 4 Spalten mit gleicher Breite */
    gap: 20px;
  }

  .benefit-item {
    height: 180px; /* Gleiche Höhe für alle Boxen */
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
  }
}

@media (min-width: 992px) {
  .benefit-item h4 {
    font-size: 1.3rem; /* Überschrift größer */
  }
  
  .benefit-item p {
    font-size: 1.0rem; /* Text größer */
  }
}

#step5 h2 .smaller-text {
  font-size: 1.5rem;  /* kleiner als der Rest */
  line-height: 1.3;    /* optional, besser lesbar */
  display: block;      /* damit der Text in einer eigenen Zeile bleibt */
  margin-top: 0.5rem;  /* Abstand nach oben */
}

@media (max-width: 600px) {
  #step5 h2 .smaller-text {
    font-size: 1.2rem;
  }

  form#user-info h2 {
    font-size: 1.4em;
  }
  
  form#user-info h1 {
    font-size: 1.8em;
  }
}

#step h1 .highlight-text {
  font-size: 2.5rem;  
  color: #333333;     
  font-weight: bold;  /* optional */
  line-height: 1.2;
  display: inline-block; /* damit Zeilenumbruch funktioniert */
  letter-spacing: normal;
}

@media (max-width: 600px) {
  #step h1 .highlight-text {
    line-height: 1.0; /* kleinerer Zeilenabstand nur mobil */
  }
}

/* Button "Jetzt starten" vergrößern */
#step .btn {
  font-size: 1.3rem !important;
  padding: 1rem 2rem !important;
  min-width: 280px !important;
  height: auto !important;
  border-radius: 8px !important;
  transition: all 0.3s ease !important;
}

@media only screen and (max-width: 768px) {
  #step .btn {
    font-size: 1.1rem !important;
    padding: 0.8rem 1.5rem !important;
    min-width: 240px !important;
  }
}