.wrapper {
  background-color: whitesmoke;
}

.form-area {
  width: 100vw;
  min-height: calc(100vh - 154px);
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: 'Inter', sans-serif;
  color: #333;
}

.form-title-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 60%;
}

.form-title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 200px;
  width: 100%;
  background-color: whitesmoke;
}

.separator-contact {
  margin: 10px 0;
  width: 100vw;
  height: 1px;
  background-color: #dcdcdc;
}

.form-title h2 {
  text-align: center;
  font-size: 60px;
  font-weight: 450;
  width: 100%;
}

.form-title p {
  margin: 5px 0;
}

.form-section {
  min-height: calc(100vh - 354px);
  width: 100vw;
  background-color: whitesmoke;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.form-disclaimer {
  margin-bottom: 15px;
  background: #333;
  color: #e2c886;
  padding: 10px 20px;
  border-radius: 7px;
  text-align: center;
}

.form-disclaimer p {
  margin: 0;
  font-size: 15px;
  font-weight: 300;
}

.form-container {
  display: flex;
  align-items: center;
  justify-content: center;
  height: fit-content;
  width: 50vw;
  padding: 20px;
}

.form-container form {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  height: 100%;
  width: 100%;
}

.form-container form .form-content {
  height: 80%;
  max-width: 590px;
  width: 100%;
  gap: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  font-family: 'Inter', sans-serif;
}

.form-content div {
  width: 100%;
  font-family: 'Inter', sans-serif;
  gap: 10px;
}

.form-content input, .form-content select, .message textarea {
  border: 2px solid #333;
  font-family: 'Inter', sans-serif;
  transition: border 0.3s ease-out;
  outline: none;
  font-size: 17px;
  border-radius: 7px;
  padding: 0 10px;
}

.message textarea {
  padding: 10px;
}

.form-content input:focus, .form-content select:focus, .message textarea:focus {
  border: 2px solid #e2c886;
}

.name {
  display: flex;
  justify-content: center;
  align-items: center;
}

.name input {
  flex: 1;
}

.address-lines {
  display: flex;
  flex-direction: column;
}

.form-content .zip-state {
  display: flex;
  align-items: center;
}

.contact {
  display: flex;
  justify-content: center;
  align-items: center;
}

.contact input {
  flex: 1;
}

.city input{
  width: 100%;
}

.zip-state select, .zip-state input {
  border: 2px solid #333;
  flex: 1;
}

.form-content div input, .form-content div select {
  height: 50px;
  color: #333;
}

.message {
  max-width: 590px;
  width: 100%;
}

.message textarea {
  width: 100%;
  height: 150px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  resize: vertical;
}

.preferred {
  font-size: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  align-items: center;
  max-width: 590px;
  width: 100%;
  color: #333;
}

.preferred p {
  margin-top: 0;
}

.radio-sel {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  gap: 30px;
}

.preferred .opt {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

.opt input[type="radio"] {
  display: none;
}

.opt .radio-box {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid #333;
  background-color: white;
  vertical-align: middle;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

/* Checked state */
.opt input[type="radio"]:checked + .radio-box {
  background-color: #e2c886; /* your color */
  border-color: #e2c886;
}

/* Optional: hover effect */
.opt:hover .radio-box {
  border-color: #e2c886;
}

#submit-btn {
  width: 30%;
  align-self: center;
  height: 50px;
  background-color: white;
  width: 200px;
  font-family: 'Inter', sans-serif;
  font-size: 20px;
  color: #333;
  font-weight: 500;
  border: 2px solid #333;
  border-radius: 7px;
  transition: background-color 0.3s ease-out, color 0.3s ease-out ;
}

#submit-btn:hover {
  background-color: #333;
  color: #e2c886;
}

/* Remove number input spinners */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

@media (min-width: 768px) and (max-width: 1199px) {

    .form-title {
      height: 250px;
    }

    .form-container {
      width: 60vw;
    }

    .form-title-text p {
      font-size: 19px;
    }

    .form-disclaimer {
      display: flex;
      flex-direction: column;
      max-width: 550px;
      text-align: start;
      gap: 10px;
      margin: 0 20px;
    }

    .form-disclaimer p {
      font-size: 20px;
    }

    .name, .contact, .zip-state {
      flex-direction: column;
    }

    .name input, .contact input, .zip-state input, .zip-state select {
      flex: none;
      width: 100%;
    }
}

@media (max-width: 767px) {

  .form-title {
    height: 250px;
  }

  .form-title-text {
    width: 100%;
  }

  .form-title-text h2 {
    text-align: center;
    font-size: clamp(3rem, 10vw, 60px);
    white-space: nowrap;
  }

  .form-title-text p {
    padding: 0 30px;
    width: 100%;
    text-align: center;
    font-size: 19px;
  }

  .form-container {
    width: 95vw;
  }

  .form-disclaimer {
    display: flex;
    flex-direction: column;
    width: 95vw;
    text-align: start;
    gap: 10px;
    margin: 0 20px;
  }

  .form-disclaimer p {
    font-size: 20px;
  }

  .name, .contact, .zip-state {
    flex-direction: column;
  }

  .name input, .contact input, .zip-state input, .zip-state select {
    flex: none;
    width: 100%;
  }

  .radio-sel {
    flex-direction: column;
    align-items: start;
    width: fit-content;
  }

  .pref-title p {
    white-space: nowrap;
  }

}