@charset "UTF-8";

/* ------------------------------------------------------
 * 共通
------------------------------------------------------ */
input,
select,
label,
button {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  font-family: 'Noto Sans JP', '游ゴシック', 'YuGothic', "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  vertical-align: baseline;
  background: transparent;
}
input,
select {
  outline: none;
  background-color: #F6F7F9;
  border: #CCD9EB solid 1px;
  border-radius: 5px;
  line-height: 1.4;
  padding: 15px;
  width: 100%;
}
input.textError,
select.textError {
  background-color: #fff1f4;
  border-color: #d5143e;
}
input:focus,
select:focus {
  border-color: #003A66;
}
select {
  cursor: pointer;
}
option {
  background-color: #F8FCFB;
}
input[type="radio"] {
  position: relative;
  width: 20px;
  height: 20px;
  background-color: #fff;
  border: 1px solid #003A66;
  border-radius: 50%;
  vertical-align: -2px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding: 0;
  cursor: pointer;
}
input[type="radio"] + label {
  cursor: pointer;
  padding-left: 10px;
  margin-left: 0;
}
input[type="radio"]:checked:before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #003A66;
  transform: translate(-50%, -50%);
}
label {
  display: inline-block;
}
label + input,
input + label,
label + select,
select + label {
  margin-left: 10px;
}
button {
  cursor: pointer;
}


/* ------------------------------------------------------
 * パーツ
------------------------------------------------------ */
.form_inputOptional input {
  background-color: #fff;
}
.form_input,
.form_select {
  display: flex;
  align-items: center;
}
.form_input input,
.form_select select {
  flex: 1;
  max-width: 150px;
}
.form_selectFull select {
  max-width: 320px;
}

@media only screen and (max-width:767px){
  .form_selectFull select {
    max-width: 100%;
  }
}

.form_radio {
  display: flex;
  align-items: center;
}
.form_radio + .form_radio {
  padding-left: 30px;
}

@media only screen and (max-width:767px){
  .form_radio + .form_radio {
    padding: 0;
    margin-top: 10px;
  }
}


/* ------------------------------------------------------
 * タグ
------------------------------------------------------ */
.form_tag {
  color: #fff;
  font-size: 12px;
  line-height: 1.4;
  padding: 5px 10px;
  border-radius: 5px;
}
.form_tagRequired {
  background-color: #d5143e;
}
.form_tagOptional {
  background-color: #1F9EFE;
}


/* ------------------------------------------------------
 * テーブル
------------------------------------------------------ */
.form_table_th,
.form_table_td {
  font-size: 16px;
  line-height: 1.8;
  text-align: left;
}
.form_table_th.cellError {
  background-color: #fff1f4;
  color: #d5143e;
}
.form_table_th .form_tag {
  position: absolute;
  right: 15px;
  top: 15px;
}

.form_tableInput .form_table_th {
  position: relative;
  padding-right: 70px;
}

.form_tableResult .form_table_th.tableC-3 {
  color: #222;
  font-size: 18px;
}
.form_tableResult .form_table_td {
  text-align: right;
  font-size: 18px;
}
.form_tableResult .form_table_tdResult {
  color: #d5143e;
  font-size: 24px;
  font-weight: 500;
}

@media only screen and (max-width:767px){
  .form_tableInput .tableBox_tr,
  .form_tableInput .form_table_th,
  .form_tableInput .form_table_td {
    display: block;
    width: 100%;
  }
  .form_tableInput .tableBox_tr {
    border-bottom: none;
  }
  .form_tableInput .form_table_th {
    border-right: none;
  }

  .form_tableResult .form_table_th.tableC-3 {
    font-size: 16px;
  }
  .form_tableResult .form_table_th,
  .form_tableResult .form_table_td {
    font-size: 14px;
  }
  .form_tableResult .form_table_td {
    font-size: 16px;
  }
  .form_tableResult .form_table_tdResult {
    font-size: 18px;
  }

  .scrollTable .form_table {
    min-width: 700px;
    width: 700px;
  }
}


/* ------------------------------------------------------
 * テーブルリスト
------------------------------------------------------ */
.form_listDl .bl_listDl_dt {
  min-width: 300px;
}
@media only screen and (max-width:767px){
  .form_listDl .bl_listDl_dt {
    min-width: 100%;
  }
}

/* ------------------------------------------------------
 * アコーディオン
------------------------------------------------------ */
.form_accordion_head {
  position: relative;
  color: #1F9EFE;
  border-bottom: #ccc solid 1px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
  padding: 20px 50px 20px 0;
  cursor: pointer;
}
.form_accordion_head::before,
.form_accordion_head::after {
  content: '';
  position: absolute;
  background: #1F9EFE;
  margin: auto;
  transition: all 0.2s ease-out;
}
.form_accordion_head::before {
  top: 0;
  bottom: 0;
  right: 20px;
  width: 15px;
  height: 2px;
}
.form_accordion_head::after {
  top: 0;
  bottom: 0;
  right: 26px;
  height: 15px;
  width: 2px;
}
.form_accordion_head.active::after {
  opacity: 0;
}
.form_accordion_body {
  display: none;
  line-height: 1.8;
  padding: 20px 0;
}
@media only screen and (max-width: 767px) {
  .form_accordion_head {
    font-size: 16px;
    padding: 18px 45px 18px 20px;
  }
}


/* ------------------------------------------------------
 * ボックス
------------------------------------------------------ */
.form_boxResult {
  font-size: 20px;
}
.form_boxResult_list {
  font-weight: 500;
  margin-top: 30px;
}
.form_boxResult_list li + li {
  margin-top: 30px;
}
.form_boxResult_text {
  display: inline-block;
  font-size: 32px;
  padding: 10px 10px 0 0;
}
.form_boxResult_textUp {
  color: #1F9EFE;
}
.form_boxResult_textDown {
  color: #d5143e;
}
@media only screen and (max-width:767px){
  .form_boxResult {
    font-size: 16px;
  }
  .form_boxResult_list {
    margin-top: 20px;
  }
  .form_boxResult_list li + li {
    margin-top: 20px;
  }
  .form_boxResult_text {
    font-size: 22px;
    padding: 5px 5px 5px 0;
  }
}


/* ------------------------------------------------------
 * ボタン
------------------------------------------------------ */
.form_btn ::after {
  content: none;
}
.form_btn:nth-child(2) {
  width: 380px;
  max-width: 100%;
}
.form_btn_error {
  background-color: #fff1f4;
  border: #d5143e solid 1px;
  color: #d5143e;
  pointer-events: none;
}
.form_btn_error::after {
  content: '';
  position: absolute;
  background: url(/hokuden/common/img/icon_info.svg) center / contain no-repeat;
  width: 14px;
  height: 14px;
  top: 0;
  bottom: 0;
  left: 20px;
  margin: auto 0;
}
.form_btn_reset {
  background-color: #eee;
  border: #ccc solid 1px;
  color: #222;
}
.form_btn_retry {
  width: 460px;
  max-width: 100%;
}
.form_btn_print {
  background-color: #eee;
  border: #ccc solid 1px;
  color: #222;
  font-size: 14px;
  padding: 10px 40px;
  width: 320px;
  max-width: 100%;
}
.form_btn_print::after {
  content: '';
  position: absolute;
  background: url(/hokuden/common/img/icon_print.svg) 16px /cover;
  width: 16px;
  height: 16px;
  top: 0;
  bottom: 0;
  left: 20px;
  right: auto;
  margin: auto 0;
}
@media only screen and (max-width:767px){
  .form_btn:nth-child(2) {
    width: 100%;
  }
}

/* ------------------------------------------------------
 * お問い合わせ
------------------------------------------------------ */
.form_contact .telBox_main {
  margin-bottom: 20px;
}
.form_contact_mobile {
  display: flex;
  align-items: center;
  border-top: #003A66 solid 1px;
  gap: 20px;
  padding: 0 20px;
  margin-bottom: 20px;
}
.form_contact_mobile .telBox_main {
  font-size: 38px;
  background-size: 46px;
  padding-left: 60px;
  margin: 20px 0 10px;
}

@media only screen and (max-width:767px){
  .form_contact_mobile {
    flex-direction: column;
    gap: 0;
    padding: 20px 10px 0;
  }
  .form_contact_mobile span {
    font-size: 14px;
  }
  .form_contact_mobile .telBox_main {
    font-size: 26px;
    background-size: 28px;
    padding-left: 38px;
    margin: 10px 0;
  }
}