.cursor-defaut {
  cursor: default !important;
}

.border-grey {
  border-color: #ced4da !important;
}

.gap-2 {
  gap: 25px;
}

/*************** STEPS **********************/
.steps {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 28px;
  position: relative;
  max-width: 900px;
  margin: 0 auto;
}
.steps::before {
  content: "";
  height: 2px;
  left: 60px;
  top: 10px;
  position: absolute;
  display: block;
  width: 87%;
  background: #7eb418;
}

.step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  min-width: 140px;
  text-align: center;
}

.step .box {
  width: 22px;
  height: 22px;
  border: 2px solid #7eb418;
  display: grid;
  place-items: center;
  background: #fff;
  outline: 10px solid #fff;
  z-index: 1;
}

.step.is-done .box::after {
  content: "";
  width: 10px;
  height: 6px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
  background: transparent;
}
.step.is-done .box {
  background: #7eb418;
  border-color: #fff;
}

.step.is-active .label {
  color: #7eb418;
  font-weight: 600;
}

.label {
  font-size: 18px;
  line-height: 1.2;
  color: #212529;
}

@media (max-width: 720px) {
  .steps {
    gap: 16px;
  }
  .step {
    min-width: 110px;
  }
  .label {
    font-size: 14px;
  }
  .steps::before {
    width: calc(100% - 75px);
  }
}
@media (max-width: 520px) {
  .step {
    min-width: 70px;
  }
  .label {
    font-size: 12px;
  }
}

/*************** Accueil - liste forfait entretien ****************/
.forfait_content {
  background-color: #d9ede1;
  padding-block: 3rem;
}

@media (max-width: 767px) {
  .forfait_content {
    padding-block: 1.5rem;
  }
}

.forfait_content::before {
  background-color: #d9ede1;
}

#colonne_choix form {
  font-size: 18px;
  font-weight: 500;
}

#colonne_choix .famille {
  min-height: 42px;
}
#colonne_choix .famille img {
  height: 30px;
}
#colonne_choix .famille,
#colonne_choix .sous-famille a {
  font-size: 18px;
  font-weight: 500;
  color: #212529;
  transition: color 0.2s ease;
}
#colonne_choix .famille a span {
  vertical-align: middle;
}

#colonne_choix .famille a:hover,
#colonne_choix .sous-famille a:hover {
  color: #3d8e4c;
}
#colonne_choix .famille button svg:last-of-type {
  transform: rotate(0);
  transition: transform 0.2s ease;
  margin-left: auto;
}
#colonne_choix .famille button.open svg {
  transform: rotate(45deg);
}
#colonne_choix .famille:has(button.open) a,
#colonne_choix .famille:has(button.open) span {
  color: #3d8e4c;
}
@media (max-width: 767px) {
  #colonne_choix .famille-container {
    display: flex;
    gap: 15px;
    overflow-x: scroll;
  }
  #colonne_choix .famille {
    min-width: 160px;
  }
  #colonne_choix .famille:has(button.open) span {
    color: #3d8e4c;
  }
  #colonne_choix .famille:has(button.open){
    border: 3px solid #3d8e4c;
  }
  #colonne_choix .famille button svg,
  #colonne_choix .famille a svg {
    position: absolute;
    top: 10px;
    right: 10px;
    color: #3d8e4c;
  }
  #colonne_choix .famille img {
    width: 60px;
  }
  #colonne_choix .famille span {
    line-height: 1.2;
  }
  #colonne_forfait {
    overflow-x: scroll;
  }
  #colonne_forfait .card {
    height: fit-content;
    background-color: #d9ede1;
  }
  #colonne_forfait .card ul {
    font-size: 14px;
  }

  @media (max-width: 992px) {
    #colonne_forfait li {
      max-width: 250px;
    }
  }

  .sous-famille a.selected {
    outline: 3px solid #3d8e4c;
  }
}

/*************** Formulaire ****************/
.form-block-title {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 10px;
  color: #3d8e4c;
}

#div_votre_besoin .labelsav .card {
  display: inline-block;
  border: 1px solid #ced4da;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

#div_votre_besoin .labelsav:has(input[type="radio"]:checked) .card {
  border-color: #80b319;
  background-color: #80b319;
  color: #ffffff;
}

.form-group:has(.label-inside) {
  position: relative;
}
.label-inside + .form-control {
  padding-top: 12px;
  height: auto;
}
.label-inside + .form-control::placeholder {
  font-size: 15px;
}
.label-inside {
  position: absolute;
  top: -7px;
  left: 27px;
  color: #6c757d;
  pointer-events: none;
  transition: all 0.2s ease;
  color: #008a2f;
  background-color: #fff;
  line-height: 1;
  margin-bottom: 0;
  outline: 5px solid #fff;
}
