.funnel main {
  min-height: calc(100vh - 3rem);
}

.form-step-button-image-wrapper .form-step-button-image input[type="checkbox"]:checked+label .checkmark {
  content: url("data:image/svg+xml, %0A%3Csvg width='30' height='30' viewBox='0 0 44 44' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22 38.5C31.1127 38.5 38.5 31.1127 38.5 22C38.5 12.8873 31.1127 5.5 22 5.5C12.8873 5.5 5.5 12.8873 5.5 22C5.5 31.1127 12.8873 38.5 22 38.5Z' fill='rgb(0,0,0)' stroke='rgb(0,0,0)' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16.5 22L20.1667 25.6667L27.5 18.3333' stroke='white' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
}

.form-step-button-image-wrapper .form-step-button-image.selected::after {
  content: url("data:image/svg+xml, %0A%3Csvg width='30' height='30' viewBox='0 0 44 44' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22 38.5C31.1127 38.5 38.5 31.1127 38.5 22C38.5 12.8873 31.1127 5.5 22 5.5C12.8873 5.5 5.5 12.8873 5.5 22C5.5 31.1127 12.8873 38.5 22 38.5Z' fill='rgb(0,0,0)' stroke='rgb(0,0,0)' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16.5 22L20.1667 25.6667L27.5 18.3333' stroke='white' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
}

.form-step-button.selected::after {
  content: url("data:image/svg+xml, %0A%3Csvg width='30' height='30' viewBox='0 0 44 44' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22 38.5C31.1127 38.5 38.5 31.1127 38.5 22C38.5 12.8873 31.1127 5.5 22 5.5C12.8873 5.5 5.5 12.8873 5.5 22C5.5 31.1127 12.8873 38.5 22 38.5Z' fill='rgb(0,0,0)' stroke='rgb(0,0,0)' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16.5 22L20.1667 25.6667L27.5 18.3333' stroke='white' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
} 

.form-step-text-link.form-button-next-step{
  padding: 12px 24px;
  transition: background-color 200ms ease-out;
  background-color: rgb(40, 40, 40);
  color:#fff;
}

.form-step-text-link.form-button-next-step svg  {
  color: #fff!important;
}

.funnel-wrapper,
.funnel-wrapper * {
  box-sizing: border-box;
}

.funnel-wrapper.funnel-w-s {
  padding-top: 10px;
  max-width: 580px;
  margin: 0 auto;
}

.funnel-wrapper.funnel-w-m {
  width: 760px;
}

.funnel-wrapper.funnel-w-l {
  width: 960px;
}

.funnel {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.form-step-heading {
  font-size: 2em;
  line-height: 1.25;
  -webkit-font-smoothing: antialiased;
  display: block;
  text-transform: none;
  font-weight: 500;
  color: rgb(33, 34, 36);
  margin-top: 0;
  margin-bottom: 1rem;
}

.form-step-desc {
  font-size: 1rem;
  line-height: 1.5rem;
  /* margin-top: 3rem; */
  margin-bottom: 32px;
}

/* ProgressBar */
.funnel-header {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-bottom: 32px;
}

.progressbar {
  position: relative;
  width: 100%;
  height: 8px;
  margin: 1rem 30px 0 30px;
  border-radius: 4px;
  background-color: rgb(240, 239, 236);
}

.progressbar .progress {
  position: absolute;
  height: 100%;
  border-radius: 4px;
  background-color: var(--main-color, #b85a00);
  transition: width 0.3s ease-out 0s;
}

/* Progress Info */
.funnel-progress-info {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  padding: 0 30px;
  margin-top: 6px;
  font-size: 0.8rem;
  color: #888;
}

.funnel-progress-time {
  font-weight: 500;
}

/* Form Button */
.form-button-prev,
.form-button-next-step {
  max-width: 50%;
  width: max-content;
  justify-content: start;
  -webkit-appearance: none;
  /* Ohne eigenen Rahmen zeichnet Chrome (Desktop) den Standard-Rahmen „outset“ –
     grau rechts/unten wie ein schiefer Schatten */
  border: none;
  border-radius: 10px;
  transition: background-color 100ms cubic-bezier(0.69, 0, 0.33, 0.99) 0s;
  cursor: pointer;
  padding: 10px 16px;
  display: flex;
  font-weight: 500;
  flex-direction: row;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  justify-content: space-between;
  background-color: rgb(240, 239, 236);
  margin-bottom: 12px;
  margin-top: 2rem;
}

.form-button-prev:hover {
  background-color: rgb(233, 232, 227);
}


.form-step-button.selected::after {
  position: absolute;
  right: 2%;
  top: 29%;
}

/* funnel loading */
.loading-logos {
  animation: slide 20s linear infinite;
  display: flex;
  margin: 5rem 0;
  width: 150%;
}

.loading-logos img, .loading-logos svg {
  height: 3rem;
  width: auto;
  margin: 1rem 1.5rem;
}

@keyframes slide {
  from {
    transform: translateX(0%);
  }

  to {
    transform: translateX(-300%);
  }
}

.success-animation {
  margin: 50px auto;
}

.checkmark_success {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: block;
  stroke-width: 2;
  stroke: #4bb71b;
  stroke-miterlimit: 10;
  box-shadow: inset 0 0 0 #4bb71b;
  animation: fill 0.4s ease-in-out 0.4s forwards, scale 0.3s ease-in-out 0.9s both;
  position: relative;
  top: 5px;
  right: 5px;
  margin: 0 auto;
}

.checkmark__circle {
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  stroke-width: 2;
  stroke-miterlimit: 10;
  stroke: #4bb71b;
  fill: #fff;
  animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}

.checkmark__check {
  transform-origin: 50% 50%;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}

@keyframes stroke {
  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes scale {

  0,
  100% {
    transform: none;
  }

  50% {
    transform: scale3d(1.1, 1.1, 1);
  }
}

@keyframes fill {
  100% {
    box-shadow: inset 0 0 0 30px #4bb71b;
  }
}

/* funnel-button-image */
.form-step-button-image-wrapper.img-card .form-step-arrow {
  display: none;
}

.form-step-button-image-wrapper.img-card .form-step-button-image {
  -webkit-appearance: none;
  border-radius: 10px;
  cursor: pointer;
  width: 100%;
  font-weight: 500;
  flex-direction: row;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  justify-content: space-between;
  background-color: rgb(240, 239, 236);
  margin-bottom: 12px;
  position: relative;
  overflow: hidden;
}

.form-step-button-image-wrapper.img-card .form-step-button-image--asset {
  height: 150px;
}

.form-step-button-image-wrapper.img-card .form-step-button-image--asset img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
  margin: 0;
}

.form-step-button-image-wrapper.img-card .form-step-button-image--content {
  padding: 16px;
  margin: 0 auto;
  display: flex;
  flex-direction: row;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  width: 100%;
  justify-content: center;
}

.form-step-button-image-wrapper.img-card {
  display: grid;
  grid-template-rows: auto;
  gap: 0.5em 1.5em;
  justify-content: center;

}

.funnel-w-s .form-step-button-image-wrapper.img-card {
  grid-template-columns: 1fr 1fr;
}

.funnel-w-m .form-step-button-image-wrapper.img-card {
  grid-template-columns: 1fr 1fr 1fr;
}

.funnel-w-l .form-step-button-image-wrapper.img-card {
  grid-template-columns: 1fr 1fr 1fr 1fr;
}

.funnel--header-logo{
  height: 4rem;
  margin: auto;
  width: 4rem;
  display: flex;
  margin-bottom: 1rem;
}

.form-step-button-image-wrapper.img-default .form-step-button-image {
  -webkit-appearance: none;
  border:none;
  border-radius: 10px;
  cursor: pointer;
  height: 6em;
  width: 100%;
  padding-right: 16px;
  display: flex;
  font-weight: 500;
  flex-direction: row;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  justify-content: space-between;
  background-color: rgb(240, 239, 236);
  margin-bottom: 12px;
  position: relative;
  overflow: hidden;
}

.form-step-button-image-wrapper.img-default .form-step-button-image--content {
  display: flex;
  flex-direction: row;
  -webkit-box-align: center;
  align-items: center;
  text-align: left;
  -webkit-box-pack: justify;
  width: 100%;
  justify-content: space-between;
  padding-left: 16px;
}

.form-step-button-image-wrapper.img-default .form-step-button-image--asset {
  flex: 0 0 100px;
  -webkit-box-flex: 0;

}

.form-step-button-image--asset-jpeg, .form-step-button-image--asset-png, .form-step-button-image--asset-jpg {
    margin-left: -10px;
    height: 100%;
}
.form-step-button-image--asset-jpeg img, .form-step-button-image--asset-png img, .form-step-button-image--asset-jpg img{
  object-fit: unset!important;
}

.form-step-button-image-wrapper.img-default .form-step-button-image--asset img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
  margin: 0;
}

.form-step-button-image-wrapper .form-step-button-image.selected::after {
  position: absolute;
  right: 5%;
  top: 79%;
}

header {
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
}

/* This changes all the animations globally */
.form-step {
  --animate-duration: 400ms;
}


.label-content {
    display: flex;
}



.button-wrapper {
  width: 100%;
  display: flex;
}

.form-button-prev {
  margin-right: auto;
}

.form-button-next-step {
  margin-left: auto;
}

.form-button-prev svg,
.form-button-next-step svg {
  height: 1rem;
  width: 1rem;
  pointer-events: none;
}

.success-animation {
  margin: 50px auto;
}

.checkmark_success {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: block;
  stroke-width: 2;
  stroke: #4bb71b;
  stroke-miterlimit: 10;
  box-shadow: inset 0 0 0 #4bb71b;
  animation: fill 0.4s ease-in-out 0.4s forwards, scale 0.3s ease-in-out 0.9s both;
  position: relative;
  top: 5px;
  right: 5px;
  margin: 0 auto;
}

.checkmark__circle {
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  stroke-width: 2;
  stroke-miterlimit: 10;
  stroke: #4bb71b;
  fill: #fff;
  animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}

.checkmark__check {
  transform-origin: 50% 50%;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards;
}

@keyframes stroke {
  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes scale {

  0,
  100% {
    transform: none;
  }

  50% {
    transform: scale3d(1.1, 1.1, 1);
  }
}

@keyframes fill {
  100% {
    box-shadow: inset 0 0 0 30px #4bb71b;
  }
}

.form-step select {
  border-radius: 10px;
  transition: background-color 100ms cubic-bezier(0.69, 0, 0.33, 0.99) 0s;
  cursor: pointer;
  height: 4.5em;
  width: 8em;
  padding-left: 16px;
  padding-right: 16px;
  display: flex;
  font-weight: 500;
  flex-direction: row;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  justify-content: space-between;
  background-color: rgb(240, 239, 236);
  margin-bottom: 12px;
}

.funnel-header.progress-top {
  position: absolute;
  margin: 0 0 50px;
  width: 100%;
  top: 0;
  left: 0;
}

.progress-top .progressbar {
  margin: 0;
  border-radius: 0;
}

.progress-top .progressbar .progress {
  border-radius: 0 4px 4px 0
}


input[type=range] {
  -webkit-appearance: none;
  width: 100%
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  margin: 1em 0 0;
  background: rgb(240, 239, 236);
  height: 1em;
  cursor: pointer;
  border: none;
  border-radius: 10px;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  border: none;
  height: 1em;
  width: 1em;
  border-radius: 50%;
  background: var(--main-color);
}

.form-step-text-link {
  border-color: rgb(240, 239, 236);
  opacity: 0.9;
  font-size: 1.25em;
  text-decoration-color: rgba(0, 0, 0, 0.33);
  display: flex;
  flex-direction: row;
  -webkit-box-pack: end;
  justify-content: flex-end;
  align-items: center;
  width: max-content;
  cursor: pointer;
  gap: 0.5rem;
}

.form-step-text-link.form-button-next-step {
  flex-direction: row-reverse;
}

.form-step-text-link {
  margin-top: 1rem;
  margin-bottom: 1rem;
  font-size:1rem;
}

/* Birthday */
.birthday-input {
  margin-right: 1em
}

/* Chrome, Safari, Edge, Opera */
.birthday-input::-webkit-outer-spin-button,
.birthday-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Firefox */
.birthday-input[type=number] {
  -moz-appearance: textfield;
}

#send-btn {
  transition: transform 100ms linear, box-shadow 200ms ease;
  min-height: 56px;
  font-size: 1.15rem;
  letter-spacing: 0.02em;
  border-radius: 10px;
}

#send-btn:active {
  transform: scale(0.98);
}

.funnel-wrapper {
  width: 100%;
  padding-top: 30px;
  margin: 0 auto;
  max-width: 100%;
}

.form-step-button.selected~.button-wrapper .form-button-next-step,
.form-step-button-image-wrapper:has(.form-step-button-image.selected)~.button-wrapper .form-button-next-step,
.form-step[data-type="slider"] .form-button-next-step,
.form-step-button-image-wrapper:has(input[type="checkbox"]:checked)~.button-wrapper .form-button-next-step,
.form-step[data-type="text"] .form-button-next-step {
  opacity: 1;
  pointer-events: all;
}

.button-wrapper .form-button-next-step.allow-next-step {
  opacity: 1;
  pointer-events: all;
}


.button-wrapper .form-button-next-step {
  opacity: .3;
  pointer-events: none;
}

.form-step input[type=text],
.form-step input[type=number],
.form-step input[type=email],
.form-step input[type=tel],
.form-step-button {
  position: relative;
  -webkit-appearance: none;
  border-radius: 10px;
  transition: background-color 100ms cubic-bezier(0.69, 0, 0.33, 0.99) 0s;
  cursor: pointer;
  height: 4.5em;
  padding-left: 16px;
  padding-right: 16px;
  display: flex;
  font-weight: 500;
  flex-direction: row;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  justify-content: space-between;
  background-color: rgb(240, 239, 236);
  margin-bottom: 12px;
  border: none;
  border: 1px solid rgb(240, 239, 236)
}

.form-step input.error {
  border: 1px solid #c82d2d!important;
  caret-color: #c82d2d;
}

.form-step input.success {
    border: 1px solid #2dc84f!important;
    caret-color: #2dc84f;
  }
/* PLZ vollständig: grüner Haken rechts im Feld als Live-Feedback (erst nach 5 gültigen Ziffern).
   Eigenes Element statt Hintergrundbild – Safari-Autofill entfernt Hintergrundbilder im Feld. */
.funnel-location--field {
  position: relative;
  display: block;
}
.form-step input.funnel-location--zip {
  padding-right: 3rem;
}
.funnel-location--ok {
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 1.5rem;
  height: 1.5rem;
  margin-top: -0.75rem;
  pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%232dc84f'/%3E%3Cpath d='M6.5 12.5l3.6 3.6 7.4-7.6' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 0;
  transform: scale(0.4);
}
.funnel-location--zip.success + .funnel-location--ok {
  opacity: 1;
  transform: scale(1);
  transition: transform 220ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 120ms ease;
}
@media (prefers-reduced-motion: reduce) {
  .funnel-location--zip.success + .funnel-location--ok { transition: none; }
}


.form-step input:hover,
.form-step input:focus-visible,
.form-step input:focus,
.form-step input:active {
  border-color: rgb(87, 87, 87);
  outline:none;
}


.form-step-button:not(#slider) {
  width: 100%;
}

.form-step-button:hover,
.form-step-button-image:hover {
  background-color: rgb(233, 232, 227) !important;
}

.form-step-arrow {
  width: 1.5em;
  height: 1.5em;
}
.form-step-button-image-asset-svg {
  height: 100%;
  width: 100%;
  padding: 1.75rem;
}
.funnel-header,
.form-step {
  overflow: hidden;
  /* clip statt hidden: schneidet die Slide-Animation ab, ohne Scroll-Container zu sein –
     sonst klebt die Aktionsleiste (position: sticky) nicht am Bildschirmrand */
  overflow: clip;
  padding: 0 0.25rem;
  margin-right: 1em;
  margin-left: 1em;
}

.form-button-next * {
  pointer-events: none;
}

/* ProgressBar */
.funnel-header.progress-default {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 32px;
}

.contact-form-input label {
  font-size: 1.25em;
}

.contact-input-hint {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #666;
}

.contact-form-input input {
  width: calc(100% - 2px);
  margin: 0.5rem auto 0;
  border: none;
}

.contact--checklist {
  font-size: 0.8em;
  margin: auto;
  width: fit-content;
}

.contact--checklist {
  list-style: none;
  margin-bottom: 1em;
  padding-left: 0.25em;
  font-size: 1em;
}

.contact--checklist li {
  margin: 0.5em 0;
  display: flex;
  align-items: center;
}

.contact--checklist li:before {
  content: '';
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 1.25em;
  width: 1.25em;
  background-image: url("/assets/icon/checkmark.svg");
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.5em;
}

.contact--cta-wrapper {
  display: flex;
  justify-content: center;
}

.contact--cta {
  -webkit-appearance: none;
  border-radius: 10px;
  transition: background-color 100ms cubic-bezier(0.69, 0, 0.33, 0.99) 0s;
  cursor: pointer;
  height: 4em;
  padding: 0 1.5em;
  flex-direction: row;
  -webkit-box-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  justify-content: space-between;
  background-color: var(--main-color, #134876);
  color: #fff;
  font-weight: 700;
  margin: 1em 0;
}

.contact--cta svg {
  display: inline;
  height: 1rem;
  padding-left: 0.5rem;
}

@media(min-width: 768px) {
  .contact--cta {
    display: inline-flex;
  }
}

@media(max-width: 768px) {
  .contact--cta {
    display: flex;
  }
}

.contact--privacy-label {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.contact--privacy-text,
.contact--privacy-text a {
  color: #6A7280;
}

.contact--privacy-text {
  font-size: 0.75rem;
  line-height: 1rem;
  margin-left: 0.5rem;
}

.contact--privacy-text a {
  text-decoration: underline;
}

/* slider */
.form-step[data-type="slider"] .range--subdesc {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  line-height: 1rem;
  color: #9CA3AF;
  margin-bottom: 1rem;
}

.form-step[data-type="slider"] .range--value-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.form-step[data-type="slider"] .range--value-field input {
  margin-bottom: 0;
}

/* multiplechoice */
.form-step[data-type="multipleChoice"] .img-default .label-button {
  width: 100%;
  height: 100%;
}

.form-step[data-type="multipleChoice"] .img-default .label-content {
  height: 100%;
}

.form-step[data-type="multipleChoice"] .label-content {
  display: flex;
  cursor: pointer;
}

.form-step[data-type="multipleChoice"] .img-default .label-content {
  flex-direction: row;
}

.form-step[data-type="multipleChoice"] .img-card .label-content {
  flex-direction: column;
}

.form-step[data-type="multipleChoice"] .img-card .label-content .checkmark {
  flex-direction: column;
}

.birthday-error-message,.fromName-error-message,.fromEmail-error-message,.phone-error-message,.lastName-error-message{
  font-size: 14px;
  margin-top:5px;
  color:#c82d2d;
}
.fromName-error-message, .fromEmail-error-message,.phone-error-message,.lastName-error-message{
    margin-bottom:12px;
  }

.funnel-birthday--label span, .funnel-location--label span {
    margin-left: 0.25rem;
    color:#666;
    margin-bottom: 0.25rem;
    display: block;
}
.funnel-birthday--label{
  width: 25%;
  margin-right:.5rem
}
.funnel-birthday--label:last-child{
  width: 50%;
  margin-right:0
}

.funnel-birthday-container{
    display:flex;
}
#day, #month, #year {
    width:100%;
} 
.form-button-prev[data-index="birthday"] {
  display: none;
}

.funnel-location-street{
  display:flex;
}
  /* Chrome, Safari, Edge, Opera */
  input::-webkit-outer-spin-button,
  input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }

  /* Firefox */
  input[type=number] {
    -moz-appearance: textfield;
  }
  /* Volle Breite: auf dem Handy war die PLZ nur ein Viertel breit (Rest des alten Zwei-Spalten-Layouts) */
  .funnel-location--street,
  .funnel-location--zip {
    width:100%;
  }
  /* Mindestens 16 px: darunter zoomt iOS Safari beim Antippen in das Feld */
  .form-step input,
  .form-step select,
  .form-step textarea {
    font-size: max(16px, 1em);
  }

  .contact-btn-nudge{
    position:relative;
    margin-top:15px;
    color: #fff;
    font-size: 14px;
    height: 24px;
    display: flex;
}
.contact-btn-nudge--text{
    background: #4bb71b;
    color: #fff;
    font-weight: 600;
    border-radius:4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    height: 24px;
    padding: 0 1rem;
    margin: auto;
}

.contact-btn-nudge:before {
       content: "";
       display: block;
       position: absolute;
       right: 50%;
       transform: translateX(50%);
       top: -12px;
       border-bottom: 12px solid #7ab51d;
       border-left: 12px solid transparent;
       border-right: 12px solid transparent;
  }

.contact-phone-hint{
    color: #666;
  margin-top:1rem;
  font-size:.8rem;
}
.contact-privacy-hint{
  font-size:.8rem;
    color: #666;
}
.contact-privacy-hint a{
      color: #666;
      text-decoration: underline;
}

.container {
  max-width: 450px;
  width: 100%;
  background: #fff;
  border-radius: 5px;
  padding: 2rem;
  box-shadow: 0 5px 10px rgba(255, 255, 255, 0.5);
}

.container h2 {
  font-size: 2rem;
  text-align: center;
  margin: 1rem 0;
}

form {
  position: relative;
}

.input-field {
  width: 100%;
  padding: 0.8rem 0.5rem;
  margin: 1rem 0;
  font-family: inherit;
  outline: none;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-size: 1.2rem;
}

.btn-icon {
  position: absolute;
  top: 255px;
  transform: translateY(-50%);
  right: 60px;
  outline: none;
  cursor: pointer;
  border: none;
  width: 40px;
  height: 40px;
  background-color: #4b9dec;
  background-image: url("/assets/icon/refresh.svg");
  border-radius: 5px;
  background-repeat: no-repeat;
  margin-right: 0.5em;
  transform: scale(1);
}


.fa-refresh {
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.message {
  text-align: center;
  margin: 1rem 0;
  display: none;
}

.message.active {
  display: block;
}

.btn-submit {
  width: 100%;
  background-color: #4b9dec;
  outline: none;
  border: none;
  color: #fff;
  font-family: inherit;
  padding: 1rem 0;
  border-radius: 5px;
  font-size: 1rem;
  cursor: pointer;
}

.btn-icon:active,
.btn-submit:active {
  transform: scale(0.98);
}

label.label-button {
  width: 100%;
  cursor:pointer;
}

.form-step-button-image.form-btn-multiple input[type="checkbox"]:checked + label .checkmark{
  position: absolute!important;
    left: 90%;
    top: 50%;
    z-index: 1;
    background-color: #000;
    transform: translateY(-50%);
}



.form-step-button-image input[type="checkbox"] {
  position: absolute;
  left: -9999px;
}

@keyframes fadeInRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes fadeOutLeft {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-100%);
    opacity: 0;
  }
}

@keyframes fadeInLeft {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes fadeOutRight {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}


.animate-fade-in-right {
  animation: fadeInRight 0.25s ease-out forwards;
}
.animate-fade-out-left {
  animation: fadeOutLeft 0.25s ease-in forwards;
}

.animate-fade-in-left {
  animation: fadeInLeft 0.25s ease-out forwards;
}
.animate-fade-out-right {
  animation: fadeOutRight 0.25s ease-in forwards;
}

.step-hidden {
  display: none !important;
}

.form-step-button-image.form-btn-multiple input[type="checkbox"] + label .checkmark {
  position: absolute;
  left: 90%;
  top: 50%;
  z-index: 1;
  transform: translateY(-50%);
  background-color: #ddd;
}

.form-step .trust-icon-row {
  margin-top: 2rem;
}

.form-step .trust-icon-row svg, .form-step .trust-icon-row img{
  height: 2.5rem;
}


/* Icon wie gehabt */
.funnel--notice-icon{
  position:relative;margin-left:6px;display:inline-block;width:16px;height:16px;
  background:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 42.23c-2.59 0-4.71 2.11-4.71 4.71v21.6c0 2.6 2.11 4.71 4.71 4.71s4.71-2.11 4.71-4.71v-21.6c0-2.59-2.11-4.71-4.71-4.71Zm0-4.08c3.14 0 5.7-2.56 5.7-5.7s-2.56-5.7-5.7-5.7-5.7 2.56-5.7 5.7 2.56 5.7 5.7 5.7ZM50 100c27.61 0 50-22.39 50-50S77.61 0 50 0 0 22.39 0 50s22.39 50 50 50Zm0-90.32c22.27 0 40.32 18.05 40.32 40.32.01 22.26-18.02 40.31-40.28 40.32H50C27.73 90.32 9.68 72.27 9.68 50S27.73 9.68 50 9.68Z' fill='%23000'/%3E%3C/svg%3E") center/16px 16px no-repeat;
  cursor:pointer;
}
.funnel--notice-icon:focus{outline:2px solid rgba(0,0,0,.3);outline-offset:2px;}

.no-scroll{overflow:hidden;}
.notice-modal[aria-hidden="true"]{display:none;}
.notice-modal{position:fixed;inset:0;z-index:1000;display:block;}
.notice-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);}
.notice-modal__dialog{
  position:relative;max-width:560px;margin:8vh auto 0;background:#fff;border-radius:8px;
  box-shadow:0 10px 30px rgba(0,0,0,.2);padding:20px 20px 16px;
}
.notice-modal__title{margin:0 32px 8px 0;font-size:18px;line-height:1.3;font-weight:600;}
.notice-modal__content{font-size:15px;line-height:1.6;max-height:55vh;overflow:auto;}
.notice-modal__actions{margin-top:16px;text-align:right;}
.notice-modal__btn,.notice-modal__close{border:0;background:transparent;cursor:pointer;font:inherit;}
.notice-modal__btn{padding:10px 16px;border-radius:6px;background:#111;color:#fff;}
.notice-modal__close{
  position:absolute;top:8px;right:10px;width:28px;height:28px;border-radius:50%;
  line-height:26px;text-align:center;font-size:20px;
}
.notice-modal__close:hover{background:rgba(0,0,0,.06);}
.js-answer-notice { position: relative; z-index: 2; pointer-events: auto; }

/* iOS Link-/Tap-Hervorhebung entfernen */
button, a, [role="button"] {
  -webkit-tap-highlight-color: transparent; /* kein blauer Overlay */
  color: inherit; /* übernimmt Textfarbe statt iOS-Blau */
  text-decoration: none; /* entfernt Unterstreichung */
}

/* Sicherstellen, dass Buttons nicht als Links erkannt werden */
button {
  appearance: none;
  -webkit-appearance: none;
}
@media(min-width: 768px) {
.form-step-button-image--title{display:flex;align-items:center;}

}
@media(max-width: 768px) {
.form-step-button-image--title {
    display: block;
    align-items: center;
    max-width: 70%;
    overflow-wrap: break-word;
    /* „Wärmedämmverbund system“ brach ohne Trennstrich um */
    -webkit-hyphens: auto;
    hyphens: auto;
}
}

/* ===== Mobile Optimierung ===== */
@media (max-width: 768px) {
  .funnel-wrapper.funnel-w-s {
    padding: 10px 16px;
  }

  .form-step-heading {
    font-size: 1.5em;
  }

  /* Grössere Touch-Targets für Buttons */
  .form-button-prev,
  .form-button-next-step {
    min-height: 48px;
    padding: 12px 20px;
    font-size: 1rem;
  }

  /* CTA Button volle Breite auf Mobile */
  .hero-form--btn,
  #send-btn {
    width: 100%;
    min-height: 52px;
    font-size: 1.1rem;
  }

  /* Funnel-Buttons grössere Touch-Area */
  .form-step-button,
  .form-step-button-image {
    min-height: 48px;
  }

  /* Kontakt-Inputs grösser */
  .contact-input input {
    font-size: 16px;
    padding: 12px;
    min-height: 48px;
  }

  /* Trust-Icons anpassen */
  .trust-icon-row {
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
  }

  .trust-icon-row svg,
  .trust-icon-row img {
    height: 2rem;
  }

  /* Progress Info kompakter */
  .funnel-progress-info {
    padding: 0 16px;
    font-size: 0.75rem;
  }
}

/* ===== Trust-Elemente Verstärkung ===== */
.trust-badge-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 10px 16px;
  margin: 16px 0;
  background: #f8f9fa;
  border-radius: 8px;
  font-size: 0.85rem;
  color: #374151;
}

.trust-badge-bar svg {
  height: 1.2rem;
  flex-shrink: 0;
}

.trust-badge-item {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.trust-badge-item .trust-check {
  color: #4bb71b;
  font-weight: bold;
}


/* "So geht's weiter" Block im Kontakt-Schritt (sichtbar, wenn leadSlaText gesetzt) */
.next-steps {
  background: #f8f9fa;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 1rem 1.25rem;
  margin: 0.75rem 0 1rem;
}
.next-steps-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-normal-color, #363f4a);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
.next-steps-title svg { width: 16px; height: 16px; color: var(--primary-red, #b85a00); }
.next-steps ol {
  margin: 0;
  padding-left: 0;
  list-style: none;
  counter-reset: nstep;
}
.next-steps li {
  counter-increment: nstep;
  position: relative;
  padding: 4px 0 4px 28px;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--text-normal-color, #363f4a);
}
.next-steps li::before {
  content: counter(nstep);
  position: absolute;
  left: 0;
  top: 4px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--primary-red, #b85a00);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Vertrauensanker im Funnel-Kopf (components/header.twig): zentriert, eine Zeile auf
   dem Handy; bricht er doch um, dann ausgewogen statt mit einem Wort allein */
.funnel-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 16px 0 4px;
  font-size: 0.8125rem;
  letter-spacing: .01em;
  color: #5f6b7a;
  text-align: center;
}
.funnel-trust__text {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2px 14px;
}
.funnel-trust__item {
  white-space: nowrap;
}
.funnel-trust__item::before {
  content: '✓';
  margin-right: 4px;
  color: #0e7a19;
  font-weight: 700;
}
.funnel-trust__logo {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
}
.loading-status {
  margin: 1rem 0 0;
  text-align: center;
  color: #5f6b7a;
}


/* ===== UX-Release 4 (10/2026) ===== */

/* Gewählte Antwort kurz bestätigen und beim Zurückkommen markiert lassen */
/* Abgedunkelt statt roter Rahmen (Pepe, 29.10.2026); der rote Haken steht am Pfeil */
.form-button-next.selected {
  background-color: rgb(224, 222, 215) !important;
}
.form-button-next.selected::after {
  content: none !important;
}

/* Gewählte Kachel: Pfeil wird zum roten Haken (kurzer Pop), dazu Druck-Effekt beim Tippen –
   sichtbare Bestätigung statt nur Rahmen, ohne zusätzliche Wartezeit */
.form-button-next {
  transition: transform 120ms ease, background-color 120ms ease;
}
.form-button-next:active {
  transform: scale(0.985);
}
.form-button-next .form-step-arrow {
  position: relative;
}
.form-button-next.selected .form-step-arrow svg {
  visibility: hidden;
}
.form-button-next.selected .form-step-arrow::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  border-radius: 50%;
  background: var(--main-color, #b85a00) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 16px no-repeat;
  animation: answer-selected-pop 220ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
/* Mehrfachauswahl gleich wie Einzelauswahl: abgedunkelte Kachel, roter Haken mit Pop */
.form-step-button-image.form-btn-multiple:has(input[type="checkbox"]:checked) {
  background-color: rgb(224, 222, 215);
}
.form-step-button-image.form-btn-multiple input[type="checkbox"] + label .checkmark {
  width: 28px;
  height: 28px;
  background-color: transparent;
  box-shadow: inset 0 0 0 2px #c9c6bd;
}
.form-step-button-image.form-btn-multiple input[type="checkbox"]:checked + label .checkmark {
  content: normal !important;
  box-shadow: none;
  background: var(--main-color, #b85a00) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 16px no-repeat;
  animation: answer-selected-pop-centered 220ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
/* .checkmark ist per translateY(-50%) zentriert – die Pop-Animation muss das mitnehmen */
@keyframes answer-selected-pop-centered {
  from { transform: translateY(-50%) scale(0.4); opacity: 0; }
  to { transform: translateY(-50%) scale(1); opacity: 1; }
}
@keyframes answer-selected-pop {
  from { transform: scale(0.4); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .form-button-next.selected .form-step-arrow::before,
  .form-step-button-image.form-btn-multiple input[type="checkbox"]:checked + label .checkmark { animation: none; }
  .form-button-next:active { transform: none; }
}

/* Fortschritt in Worten: „Schritt 3 von 9“ */
.funnel-progress-info {
  justify-content: space-between;
  padding: 0;
}
.funnel-progress-step:empty {
  display: none;
}

/* Info-Symbol rechts in der Kachel statt im Titel: im Titel rutschte es mobil unter
   den Text in die Kachelmitte – ein Tipp auf die Antwort öffnete dann den Hinweis.
   Senkrecht mittig links neben dem Pfeil (oben rechts lag es seit den 60-px-Kacheln
   auf dem Pfeil). 18 px Grafik, ~36 px Tippfläche, Titel macht dafür Platz. */
.form-step-button-image .funnel--notice-icon {
  position: absolute;
  top: 50%;
  right: 44px;
  width: 18px;
  height: 18px;
  margin: -9px 0 0;
  background-size: 18px 18px;
}
.form-step-button-image .form-step-button-image--title:has(.funnel--notice-icon) {
  max-width: calc(100% - 76px);
}
.funnel--notice-icon::before {
  content: '';
  position: absolute;
  inset: -9px;
}

/* Kachel-Texte linksbündig (mehrzeilige Antworten standen zentriert) */
.form-step-button-label {
  text-align: left;
}

/* PLZ-Schritt: Straße eingeklappt */
/* Aufgeklappte Straße: Abstand zum PLZ-Hinweis wie zwischen den Kontaktfeldern
   (vorher klebte das Label direkt an „Damit wir … finden.“) */
#street-wrap {
  margin-top: 1.25rem;
}
.funnel-location--add-street {
  display: inline-block;
  margin: 0.25rem 0 0.5rem;
  padding: 10px 0;
  min-height: 44px;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.95rem;
  color: #444;
  text-decoration: underline;
  cursor: pointer;
}

/* Kontaktschritt */
.contact-required-note {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
  color: #666;
}
.contact-input-hint {
  margin-bottom: 0.75rem;
}
.contact--cta-wrapper {
  margin-top: 1rem;
}
.trust-badge-bar {
  flex-wrap: wrap;
  row-gap: 4px;
}

/* Rechtliche Links unter dem Funnel */
.funnel-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 16px;
  margin: 2rem 1em 1rem;
  font-size: 0.8rem;
}
/* Rechtslinks am unteren Bildschirmrand statt direkt unter kurzen Schritten (Lade-Animation,
   PLZ) – dort hingen sie mitten im Bild. 56 px = Logo-Leiste über dem Funnel. */
.funnel-wrapper.funnel-w-s {
  position: relative;
  min-height: calc(100svh - 56px);
  padding-bottom: calc(5rem + env(safe-area-inset-bottom));
}
.funnel-wrapper.funnel-w-s > .funnel-legal {
  position: absolute;
  left: 0;
  right: 0;
  bottom: env(safe-area-inset-bottom);
  margin-bottom: 0.75rem;
}
.funnel-legal a {
  color: #666;
  text-decoration: underline;
  padding: 8px 0;
}

/* Mehrfachauswahl mobil: Zurück | Weiter als feste Leiste in der Daumenzone, damit
   „Weiter“ nicht je nach Listenlänge wandert oder unter dem Bildschirmrand liegt */
@media (max-width: 768px) {
  .form-step[data-type="multipleChoice"] .button-wrapper {
    position: sticky;
    /* -1px: so meldet der IntersectionObserver in funnel.js, ob die Leiste klebt */
    bottom: -1px;
    z-index: 5;
    gap: 12px;
    margin-top: 8px;
    padding: 10px 0 calc(11px + env(safe-area-inset-bottom));
    background: #fff;
    transition: box-shadow 150ms ease;
  }
  /* Schatten nur, wenn die Leiste über der Liste schwebt – am Listenende lag er sonst
     als grauer Streifen auf der letzten Kachel */
  /* base.css reserviert mobil 100 px für die Sticky-CTA der Landingpages – im Funnel gibt
     es die nicht, man konnte unter dem Footer ins Leere scrollen */
  body:has(.funnel-wrapper) {
    padding-bottom: env(safe-area-inset-bottom);
  }
  .form-step[data-type="multipleChoice"] .button-wrapper.is-stuck {
    box-shadow: 0 -8px 12px -10px rgba(0, 0, 0, 0.25);
  }
  .form-step[data-type="multipleChoice"] .button-wrapper .form-button-prev,
  .form-step[data-type="multipleChoice"] .button-wrapper .form-button-next-step {
    margin-top: 0;
    margin-bottom: 0;
  }
}

/* Weniger Bewegung, wenn im System so eingestellt (Wechsel bleibt, nur ohne Slide) */
@media (prefers-reduced-motion: reduce) {
  .animate-fade-in-right,
  .animate-fade-out-left,
  .animate-fade-in-left,
  .animate-fade-out-right {
    animation-duration: 1ms !important;
  }
  .loading-logos {
    animation: none !important;
  }
  .progressbar .progress {
    transition: none;
  }
}

/* Überschrift bekommt nach dem Schrittwechsel per Skript den Fokus (Screenreader) –
   kein Fokusrahmen um einen Text, der nicht bedienbar ist */
.form-step-heading[tabindex="-1"]:focus {
  outline: none;
}

/* ===== Fortschritt in drei Etappen (Stepper) ===== */
.progressbar.funnel-stepper {
  display: flex;
  align-items: flex-start;
  height: auto;
  margin: 1rem 0 0;
  padding: 0;
  background: none;
  border-radius: 0;
}

.funnel-stepper__step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 auto;
  width: 28px;
}

.funnel-stepper__dot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgb(232, 231, 227);
  color: #6b7280;
  font-size: 0.8rem;
  font-weight: 600;
  transition: background-color 0.2s ease-out, box-shadow 0.2s ease-out;
}

.funnel-stepper__check {
  display: none;
  width: 15px;
  height: 15px;
}

/* aktuelle Etappe: Ring mit Punkt */
.funnel-stepper__step.is-current .funnel-stepper__dot {
  background: #fff;
  box-shadow: inset 0 0 0 2px var(--main-color, #b85a00);
}
.funnel-stepper__step.is-current .funnel-stepper__num {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--main-color, #b85a00);
  font-size: 0;
}

/* erledigte Etappe: gefüllt mit Haken */
.funnel-stepper__step.is-done .funnel-stepper__dot {
  background: var(--main-color, #b85a00);
  color: #fff;
}
.funnel-stepper__step.is-done .funnel-stepper__num { display: none; }
.funnel-stepper__step.is-done .funnel-stepper__check { display: block; }

.funnel-stepper__label {
  margin-top: 6px;
  font-size: 0.75rem;
  line-height: 1.2;
  color: #6b7280;
  white-space: nowrap;
}
.funnel-stepper__step.is-current .funnel-stepper__label,
.funnel-stepper__step.is-done .funnel-stepper__label {
  color: #1f2937;
  font-weight: 600;
}

/* Verbindungslinien auf Höhe der Punktmitte */
.funnel-stepper__line {
  position: relative;
  flex: 1 1 auto;
  height: 4px;
  margin: 12px 6px 0;
  border-radius: 2px;
  background: rgb(232, 231, 227);
  overflow: hidden;
}
.funnel-stepper__line .progress,
.funnel-stepper__line .funnel-stepper__fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  height: 100%;
  border-radius: 2px;
  background: var(--main-color, #b85a00);
  transition: width 0.3s ease-out;
}

/* erste/letzte Beschriftung nicht über den Rand hinausragen lassen */
.funnel-stepper__step:first-child .funnel-stepper__label { align-self: flex-start; }
.funnel-stepper__step:last-child .funnel-stepper__label { align-self: flex-end; }

.funnel-progress-info {
  justify-content: center;
  min-height: 1.1rem;
  margin-top: 10px;
}

@media (prefers-reduced-motion: reduce) {
  .funnel-stepper__line .progress,
  .funnel-stepper__line .funnel-stepper__fill,
  .funnel-stepper__dot { transition: none; }
}

/* Die Slide-Animation der Schritte (translateX 100 %) machte die Seite in Chrome rechnerisch
   ~300 px breiter: seitliches Wackeln beim Wischen, Emulation zoomte heraus. clip statt
   hidden, damit kein Scroll-Container entsteht (sonst klebt die Aktionsleiste nicht). */
.funnel-wrapper,
.funnel-container {
  overflow-x: clip;
}

/* Rechtliche Links: Tippfläche mind. 44 px hoch */
.funnel-legal a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 4px;
}

/* Beim Hereinscrollen (Fokus aufs E-Mail-Feld) etwas Luft unter dem Absende-Button lassen */
#send-btn {
  scroll-margin-bottom: 16px;
}

/* Leere Hinweiszeile unter dem Stepper nimmt keinen Platz weg */
.funnel-progress-info:has(> .funnel-progress-step:empty) {
  display: none;
}

/* Mobil: Kopf kompakter, damit die erste Antwort auch auf kleinen Handys
   ohne Scrollen zu sehen ist */
@media (max-width: 768px) {
  .funnel-header.progress-default {
    margin-bottom: 20px;
  }
}
@media (max-height: 600px) and (max-width: 768px) {
  .funnel-trust {
    font-size: 0.75rem;
  }
  .progressbar.funnel-stepper {
    margin-top: 0.5rem;
  }
}

/* Mobil: Antwort-Kacheln mit Bild/Icon flacher (60 statt ~96 px), damit alle Optionen
   inkl. „Unentschlossen“ ohne Scrollen sichtbar sind – bei der Mehrfachauswahl auch
   über der festen Zurück|Weiter-Leiste. Tippfläche bleibt über 48 px. Trust-Zeile in
   einer Zeile statt zwei (Handy-Feedback 25.10.2026) */
@media (max-width: 768px) {
  .form-step-button-image-wrapper.img-default .form-step-button-image {
    height: 60px;
    margin-bottom: 8px;
  }
  .form-step-button-image-wrapper.img-default .form-step-button-image--asset {
    flex-basis: 80px;
  }
  .funnel-trust {
    margin-top: 10px;
    font-size: 0.72rem;
    letter-spacing: 0;
  }
  .funnel-trust__text {
    gap: 2px 8px;
  }
  .funnel-header {
    margin-bottom: 16px;
  }
  .form-step-desc {
    margin-bottom: 20px;
  }
  .funnel-trust__item::before {
    margin-right: 3px;
  }
}

/* Kontaktschritt: Siegel direkt unter dem Button */
.form-step .contact--cta-wrapper + .trust-icon-row {
  margin: 16px 0 8px;
}

/* Mobil: Icons in den flacheren Kacheln größer (vorher 1.75rem Innenabstand → Icon ~24 px);
   Kontaktfelder kompakter, Vor-/Nachname nebeneinander */
@media (max-width: 768px) {
  .form-step-button-image-wrapper.img-default .form-step-button-image-asset-svg {
    height: 60px;
    padding: 14px 20px;
  }
  .contact-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 12px;
  }
  .contact-field {
    grid-column: 1 / -1;
    min-width: 0;
  }
  .contact-field--fromName,
  .contact-field--lastName {
    grid-column: auto;
  }
  .contact-form-input {
    margin-bottom: 10px;
  }
  .contact-form-input label {
    font-size: 1rem;
  }
  /* PLZ/Straße gleich hoch wie die Kontaktfelder (einheitlicher Look) */
  .form-step .contact-form-input input,
  .form-step input.funnel-location--zip,
  .form-step input.funnel-location--street {
    height: 52px;
    margin-top: 4px;
  }
  .contact-input-hint {
    margin-bottom: 0;
    font-style: italic;
  }
}


/* ===== Fachpartner-Suche (10/2026) ===== */

/* Radar um eine Stecknadel statt Logo-Laufband */
.loading-logos.loading-search {
  animation: none;
  margin: 2.5rem auto 2.25rem;
}
.loading-search {
  position: relative;
  width: 96px;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--main-color, #b85a00);
  background: rgba(182, 33, 52, 0.08);
}
.loading-search::before,
.loading-search::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid currentColor;
  opacity: 0;
  animation: partner-search-pulse 1.6s ease-out infinite;
}
.loading-search::after {
  animation-delay: 0.8s;
}
.loading-search svg {
  animation: partner-search-pin 1.6s ease-in-out infinite;
}
@keyframes partner-search-pulse {
  0% { transform: scale(0.8); opacity: 0.7; }
  100% { transform: scale(1.55); opacity: 0; }
}
@keyframes partner-search-pin {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

/* Prüfpunkte, die nacheinander abgehakt werden */
.loading-checks {
  list-style: none;
  margin: 1.25rem auto 0;
  padding: 0;
  max-width: 22rem;
}
.loading-checks li {
  position: relative;
  padding: 0.4rem 0 0.4rem 2rem;
  color: #9aa3ad;
  transition: color 200ms ease;
}
.loading-checks li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: -0.625rem;
  border-radius: 50%;
  border: 2px solid #d5d9de;
  box-sizing: border-box;
}
.loading-checks li.is-active {
  color: #1f2933;
}
.loading-checks li.is-active::before {
  border-color: #d5d9de;
  border-top-color: var(--main-color, #b85a00);
  animation: partner-search-spin 0.8s linear infinite;
}
.loading-checks li.is-done {
  color: #1f2933;
}
.loading-checks li.is-done::before {
  border: none;
  background: #4bb71b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 0.8rem no-repeat;
}
@keyframes partner-search-spin {
  to { transform: rotate(360deg); }
}
.loading-progress {
  max-width: 22rem;
  height: 4px;
  margin: 1.25rem auto 0;
  border-radius: 2px;
  background: #eceae5;
  overflow: hidden;
}
.loading-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--main-color, #b85a00);
}
.loading-progress span.is-running {
  animation: partner-search-progress 3s linear forwards;
}
@keyframes partner-search-progress {
  to { width: 100%; }
}
.loading-animation .loading-status {
  font-weight: 600;
  color: #1f2933;
}

/* Haken in 0,6 s fertig zeichnen, danach steht er noch kurz (vorher wurde er vor dem Weiterschalten abgeschnitten) */
/* Großer Haken nimmt exakt den Platz des Radars ein – sonst sprang der Block beim Wechsel */
.loading-animation .success-animation {
  width: 96px;
  height: 96px;
  margin: 2.5rem auto 2.25rem;
}
.loading-animation .checkmark_success {
  width: 96px;
  height: 96px;
  top: 0;
  right: 0;
  animation: fill 0.3s ease-in-out 0.3s forwards, scale 0.25s ease-in-out 0.5s both;
}
.loading-animation .checkmark__circle {
  animation-duration: 0.4s;
}
.loading-animation .checkmark__check {
  animation-duration: 0.25s;
  animation-delay: 0.35s;
}

.partner-found {
  display: inline-block;
  margin: 0 0 0.5rem;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: #eaf6e4;
  color: #2f6b12;
  font-weight: 600;
  font-size: 0.9375rem;
}
.partner-found[hidden] {
  display: none;
}

.funnel-location--consent {
  margin: 0.25rem 0 0;
  color: #5f6b7a;
  font-size: 0.8125rem;
  line-height: 1.45;
}
.funnel-location--consent a {
  color: inherit;
  text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
  .loading-search::before,
  .loading-search::after,
  .loading-search svg,
  .loading-checks li.is-active::before {
    animation: none;
  }
}

/* Absende-Button mit Pfeil (.funnel-wrapper: base.css lädt nach funnel.css und setzt button#send-btn) */
.funnel-wrapper button#send-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
}
.send-btn__nowrap {
  white-space: nowrap;
}
.funnel-wrapper button#send-btn .send-btn__icon {
  display: inline-block;
  vertical-align: -0.2em;
  width: 1.1rem;
  height: 1.1rem;
  color: #fff;
  stroke: currentColor;
  transition: transform 150ms ease;
}
.funnel-wrapper button#send-btn:hover .send-btn__icon {
  transform: translateX(3px);
}
/* base.css (button#send-btn) setzt nowrap + feste Höhe – der längere Text lief auf schmalen
   Handys über den Rand */
.funnel-wrapper button#send-btn {
  white-space: normal;
  height: auto;
  line-height: 1.25;
  padding: 14px 1rem;
  text-align: center;
}
@media (max-width: 420px) {
  .funnel-wrapper button#send-btn {
    font-size: 1rem;
    letter-spacing: 0;
  }
}
