@charset "UTF-8";
:root {
  --color-primary: #2A58A8;
  --color-point: #FF509F;
  --color-line: #DEDEDF
}

/* Button */
.btn {
  display: inline-block;
  text-align: center;
  font-weight: 500;
}

.btn-mini {
  height: 26px;
  line-height: 26px;
  font-size: 14px;
}

.btn-sm {
  height: 40px;
  line-height: 40px;
  font-size: 16px;
}

.btn-md {
  height: 45px;
  line-height: 45px;
}

.btn-lg {
  height: 55px;
  line-height: 55px;
  font-size: 18px;
}

.btn-big {
  height: 56px;
  line-height: 56px;
  font-size: 18px;
}

.btn-w100p {
  width: 100%;
}

.btn-textType {
  text-decoration: underline;
  font-size: 14px;
  font-weight: 400;
  color: var(--info_text);
}

.btn_p16 {
  padding: 0 16px;
}

.btn_primary {
  background-color: var(--color-primary);
  color: #fff;
}

.btn_outlined_primary {
  background-color: #fff;
  color: var(--color-primary);
}

.btn_outlined_gray {
  border: 1px solid var(--color-line);
  background-color: #fff;
  color: #212529;
}

.btn_light_primary {
  background-color: #EAEEF6;
  color: var(--color-primary);
}

.btn_black {
  background-color: #212529;
  color: #fff;
}

.btn_area {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
}

.btn_area>* {
  flex: 1;
}

/* #### Modal #### */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  background-color: #00000066;
  z-index: -1;
  opacity: 0;
}

.modal.open {
  z-index: 1000;
  opacity: 1;
}

.modal__inner {
  position: absolute;
  top: 47.5%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% - 40px);
  border-radius: 0px;
  background-color: #fff;
  transition: 0.45s;
  opacity: 0;
}

.modal.open .modal__inner {
  top: 50%;
  opacity: 1;
}

.modal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--color-line);
  width: 100%;
  padding: 0 20px;
  height: 50px;
}

.modal__header h3 {
  font-size: 16px;
  font-weight: 700;
  color: #424649;
}

.modal__header .btn_modal-close {
  display: inline-block;
  width: 24px;
  height: 24px;
  background: url(../_img/icon/icon_modal_close.svg) no-repeat center / contain;
}

.modal__content {
  padding: 24px;
}

.modal__content::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

.modal__content::-webkit-scrollbar-thumb {
  height: 30%;
  background: #dddddd;
  border-radius: 10px;
}

.modal__content::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 20px;
}

/* Color */
.c_primary {
  color: var(--color-primary);
}

.c_point {
  color: var(--color-point);
}

.c_gray {
  color: #9B9D9F;
}

.c_red {
  color: #DC3545;
}

.info_txt {
  font-size: 12px;
}

p.info_txt {
  color: #6F7174;
}

/* Form */
.form-control {
  border: 1px solid var(--color-line);
  background-color: #fff;
  padding: 0 10px;
  font-size: 16px;
  height: 45px;
  width: 100%;
}

.form-control.lg {
  height: 53px;
}

.form-control:focus {
  border: 1px solid #212529;
}

.form-control::placeholder {
  font-size: 16px;
  font-weight: 400;
  color: #999999;
}

/* Checkbox */
.checkbox label {
  display: flex;
  align-items: flex-start;
  color: #212529;
}

.checkbox label span.chk_text {
  font-size: 15px;
  font-weight: 400;
  color: #212529;
  line-height: 24px;
}

.checkbox input[type=checkbox] {
  display: none;
}

.checkbox input[type=checkbox]+em {
  display: inline-block;
  width: 24px;
  height: 24px;
  font-style: normal;
  margin-right: 4px;
  flex-shrink: 0;
  background: url(../_img/icon/icon_checkbox.svg) no-repeat center center / contain;
}

.checkbox input[type=checkbox]:checked+em {
  background: url(../_img/icon/icon_checkbox_on.svg) no-repeat center center / contain;
}

/* Radio */
.radio label {
  display: flex;
  align-items: center;
  color: #212529;
}

.radio label span.radio_text {
  font-size: 16px;
  font-weight: 400;
  color: #212529;
  line-height: 21px;
}

.radio input[type=radio] {
  display: none;
}

.radio input[type=radio]+em {
  display: inline-block;
  width: 24px;
  height: 24px;
  font-style: normal;
  margin-right: 4px;
  flex-shrink: 0;
  background: url(../_img/icon/icon_radio.svg) no-repeat center center / contain;
}

.radio input[type=radio]:checked+em {
  background: url(../_img/icon/icon_radio_on.svg) no-repeat center center / contain;
}

/* select */
select.select::-ms-expand {
  display: none;
}

select.select {
  -o-appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: auto;
  height: 45px;
  background: #fff url(../_img/icon/icon_select_arrow.svg) no-repeat center right 10px / 20px;
  padding: 0px 10px;
  padding-right: 30px;
  border: 1px solid var(--color-line);
  color: #212529;
}

select.select option {
  background: #fff;
  color: #111;
}

.input--typeA .input_label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #212529;
  margin-bottom: 8px;
}

span.asterisk {
  font-size: 14px;
  font-weight: 500;
  color: #DC3545;
}

.input_flex_box {
  display: flex;
  align-items: center;
  gap: 4px;
}

.input_flex_box .btn {
  width: 76px;
  flex-shrink: 0;
}

.input_radio {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.input_select_box {
  display: flex;
  gap: 4px;
}

/* File Upload */
.file_upload {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 8px;
}

.file_upload .form-control {
  flex: 1;
}

.upload-file__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.upload-file__list .file {
  display: inline-flex;
  align-items: center;
  padding: 0px 10px;
  font-size: 14px;
  gap: 6px;
  height: 26px;
  border-radius: 4px;
  border: 1px solid var(--color-line);
}

.upload-file__list .file button {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  cursor: pointer;
  background: url(../_img/icon/icon_delete_file.svg) no-repeat center / contain;
}

@media screen and (max-width:767px) {
  .btn-lg {
    height: 49px;
    line-height: 49px;
    font-size: 16px;
  }
  .modal__header h3 {
    font-size: 15px;
  }
  .modal__content {
    padding: 20px;
  }
  .file_upload .btn {
    font-size: 14px;
  }
}