JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<div class="form" style="display: flex; justify-content: center; align-items: center;" >
  <form method="post" action="result.php">
    <section class="sec1">
      <div class="q1">
        <h3>Q1</h3>
        <HR SIZE=4 />
        <input type="radio" name="q1" value="best" id="q1_radio01" required>
        <label for="q1_radio01" class="radio">1</label>

        <input type="radio" name="q1" value="good" id="q1_radio02" />
        <label for="q1_radio02" class="radio">2</label>

        <input type="radio" name="q1" value="soso" id="q1_radio03" />
        <label for="q1_radio03" class="radio">3</label>

        <input type="radio" name="q1" value="bad" id="q1_radio04" />
        <label for="q1_radio04" class="radio">4</label>

        <input type="radio" name="q1" value="worst" id="q1_radio05" />
        <label for="q1_radio05" class="radio">5</label>
      </div>    

      <div class="q21">
        <h3>Q2.選んでください</h3>
        <HR SIZE=4 />
        <div class="cp_ipselect">
          <select name="q2" class="cp_sl06" required id="select">
            <option value="" hidden disabled selected></option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
          </select>
          <span class="cp_sl06_highlight"></span>
          <span class="cp_sl06_selectbar"></span>
          <label class="cp_sl06_selectlabel">答えて下さい</label>
        </div>
      </div>
    </section>
    <div class="submit">
      <button type="submit" name="submit" class="square_btn">診断</button>
      <div>
        </form>
    </div>

CSS

input[type=radio], input[type=checkbox] {
  opacity: 0;
  width: 1px;
}

.radio, .checkbox {
  box-sizing: border-box;
  -webkit-transition: background-color 0.2s linear;
  transition: background-color 0.2s linear;
  position: relative;
  display: inline-block;
  margin: 0 20px 8px 0;
  padding: 12px 12px 12px 42px;
  border-radius: 8px;
  background-color: #f6f7f8;
  vertical-align: middle;
  cursor: pointer;
}
.radio:hover, .checkbox:hover {
  background-color: #e2edd7;
}
.radio:hover:after, .checkbox:hover:after {
  border-color: #53b300;
}
.radio:after, .checkbox:after {
  -webkit-transition: border-color 0.2s linear;
  transition: border-color 0.2s linear;
  position: absolute;
  top: 50%;
  left: 15px;
  display: block;
  margin-top: -10px;
  width: 16px;
  height: 16px;
  border: 2px solid #bbb;
  border-radius: 6px;
  content: '';
}

.radio:before {
  -webkit-transition: opacity 0.2s linear;
  transition: opacity 0.2s linear;
  position: absolute;
  top: 50%;
  left: 20px;
  display: block;
  margin-top: -5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #53b300;
  content: '';
  opacity: 0;
}
input[type=radio]:checked + .radio:before {
  opacity: 1;
}

.cp_ipselect {
  position: relative;
  width: 90%;
  margin: 2em auto;
  text-align: center;
}
.cp_sl06 {
  position: relative;
  font-family: inherit;
  background-color: transparent;
  width: 100%;
  padding: 10px 10px 10px 0;
  font-size: 18px;
  border-radius: 0;
  border: none;
  border-bottom: 1px solid rgba(0,0,0, 0.3);
}
.cp_sl06:focus {
  outline: none;
  border-bottom: 1px solid rgba(0,0,0, 0);
}
.cp_ipselect .cp_sl06 {
  appearance: none;
  -webkit-appearance:none
}
.cp_ipselect select::-ms-expand {
  display: none;
}
.cp_ipselect:after {
  position: absolute;
  top: 18px;
  right: 10px;
  width: 0;
  height: 0;
  padding: 0;
  content: '';
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid rgba(0, 0, 0, 0.3);
 ...