<form>
    <label>
      <input class="checkbox" type="checkbox"/>
      個人情報の取り扱いに同意する
    </label>
    <input class="button" type="submit" value="送信する"></b>
</form>
form {
  text-align: center;
  padding-top: 20px;
}

/* 同意にチェックがある場合に送信ボタンを活性化 */
form:has(input:checked) input[type=submit] {
  border: #000 solid 1px;
  color: #333;
  cursor: pointer;
  pointer-events: auto;
  /* 活性時はフォーカス状態を有効にする */
  &:focus {
    visibility: visible;
  }
  /* 活性時のホバー */
  &:hover {
    background: #000;
    color: #fff;
  }
}

label {
  display: inline-flex;
  align-item: center;
  column-gap: 10px;
}

input[type=checkbox] {
  width: 20px;
}

/* 送信ボタン デフォルトで非活性 */
input[type=submit] {
  display: block;
  margin: 20px auto 0;
  background-color: #efefef;
  border: #aaa solid 1px;
  border-radius: 10px;
  color: #aaa;
  padding: 10px 80px;
  pointer-events: none;
  transition: background-color .3s, color .5s;
  /* 非活性時はフォーカス状態を外す */
  &:focus {
    visibility: hidden;
  }
}

Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.