* {
    margin: 0;
    padding: 0
}

html {
    height: 100%
}

p {
    color: grey
}

#heading {
    text-transform: uppercase;
    color: black;
    font-weight: normal;
    font-size: 18px;
    font-weight: 700;
}

#msform {
    text-align: center;
    position: relative;
    margin-top: 20px
}

#msform fieldset {
    background: white;
    border: 0 none;
    border-radius: 0.5rem;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding-bottom: 20px;
    position: relative
}

.form-card {
    text-align: left
}

#msform fieldset:not(:first-of-type) {
    display: none
}

#msform input,
#msform textarea,
#msform select {
    padding: 8px 15px 8px 15px;
    border: 1px solid #ccc;
    border-radius: 0px;
    margin-bottom: 25px;
    margin-top: 2px;
    width: 100%;
    box-sizing: border-box;
    font-family: montserrat;
    color: #2C3E50;
    background-color: white;
    font-size: 16px;
    letter-spacing: 1px
}

#msform input:focus,
#msform textarea:focus,
#msform select:focus {
    -moz-box-shadow: none !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    border: 1px solid #3c5e9b;
    outline-width: 0
}

#msform .action-button {
    width: 100px;
    background: #3c5e9b;
    font-weight: bold;
    color: white;
    border: 0 none;
    border-radius: 0px;
    cursor: pointer;
    padding: 10px 5px;
    margin: 10px 0px 10px 5px;
    float: right
}

#msform .action-button:hover,
#msform .action-button:focus {
    background-color: #311B92
}

#msform .action-button-previous {
    width: 100px;
    background: #616161;
    font-weight: bold;
    color: white;
    border: 0 none;
    border-radius: 0px;
    cursor: pointer;
    padding: 10px 5px;
    margin: 10px 5px 10px 0px;
    float: right
}

#msform .action-button-previous:hover,
#msform .action-button-previous:focus {
    background-color: #000000
}

.card {
    z-index: 0;
    border: none;
    position: relative
}

.fs-title {
    font-size: 18px;
    color: black;
    margin-bottom: 15px;
    font-weight: normal;
    text-align: left
}

.purple-text {
    color: #3c5e9b;
    font-weight: normal
}

.steps {
    font-size: 16px;
    color: gray;
    margin-bottom: 10px;
    font-weight: bold;
    text-align: right
}

.fieldlabels {
    color: black;
    text-align: left;
    font-weight: 700;
    
}

#progressbar {
    margin-bottom: 30px;
    overflow: hidden;
    color: lightgrey
}

#progressbar .active {
    color: #3c5e9b
}

#progressbar li {
    list-style-type: none;
    font-size: 15px;
    width: 25%;
    float: left;
    position: relative;
    font-weight: 400
}

#progressbar #account:before {
    font-family: FontAwesome;
    content: "\f095"
}

#progressbar #personal:before {
    font-family: FontAwesome;
    content: "\f007"
}

#progressbar #payment:before {
    font-family: FontAwesome;
    content: "\f15b"
}

#progressbar #confirm:before {
    font-family: FontAwesome;
    content: "\f07a"
}

#progressbar li:before {
    width: 50px;
    height: 50px;
    line-height: 45px;
    display: block;
    font-size: 20px;
    color: #ffffff;
    background: lightgray;
    border-radius: 50%;
    margin: 0 auto 10px auto;
    padding: 2px
}

#progressbar li:after {
    content: '';
    width: 100%;
    height: 2px;
    background: lightgray;
    position: absolute;
    left: 0;
    top: 25px;
    z-index: -1
}

#progressbar li.active:before,
#progressbar li.active:after {
    background: #3c5e9b
}

.progress {
    height: 20px
}

.progress-bar {
    background-color: #3c5e9b
}

.fit-image {
    width: 100%;
    object-fit: cover
}


/* CLASSE DO PLANO */
:root {
    --primary: #3c5e9b;
    --secondary: #58ba71;
    --accent: #53c3cb;
  }

  .carousel-container {
    width: 100%;
    max-width: 1400px;
    overflow-x: hidden;
  }

  .carousel-wrapper {
    display: flex;
    gap: 2rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 1rem;
  }

  .plan-card {
    flex: 0 0 100%;
    max-width: 270px;
    margin: auto;
    background: white;
    border-radius: 20px;
    border: 1px solid #DDDDDD;
    scroll-snap-align: center;
    padding: 2rem;
    transition: transform 0.3s ease;
    padding: 1rem;
    box-sizing: border-box;
  }

  .plan-card.active {
    border: 2px solid #58ba71;
  }

  .plan-card h2 {
    color: var(--primary);
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
  }

  .plan-card .price {
    font-size: 1.6rem;
    color: var(--secondary);
    font-weight: bold;
    margin-bottom: 1rem;
  }
.plan-card button {
    width: 100%;
}
  .features {
    list-style: none;
    margin-bottom: 1.5rem;
  }

  .features li {
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    color: #333;
  }

  .features li i {
    color: var(--accent);
    margin-right: 0.5rem;
  }

  .plan-card button {
    background: var(--primary);
    color: white;
    border: none;
    padding: 0.8rem 1.5rem;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.3s;
  }

  .plan-card button:hover {
    background: var(--accent);
  }

  .dot {
  height: 18px;
  width: 18px;
  margin: 0 6px;
  background-color: #ccc;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.3s ease;
  cursor: pointer;
}

.dot.active {
  background-color: #58ba71;
}
  /* RESPONSIVO */
  @media (min-width: 768px) {
    .carousel-wrapper {
      justify-content: center;
      overflow-x: hidden;
    }

    .plan-card {
      flex: 0 0 250px;
    }
  }

  @media (min-width: 1200px) {
    .carousel-wrapper {
        justify-content: flex-start;
        overflow-x: hidden;
      }
  
  }
  .btn-primary {
    width: 100px;
    background: #3c5e9b;
    font-weight: bold;
    color: white;
    border: 0 none;
    border-radius: 5px;
    cursor: pointer;
    padding: 10px 5px;
    margin: 10px 0px 10px 5px;
  }

  .carousel-track {
    display: flex;
    transition: transform 0.5s ease;
    width: 400%; /* se tiver 4 planos */
  }