.login h2 span, .login .login-link-index span, .login h1, .programModal .modalCloseButton span, .program .viewProgram.simpleInformation .simpleImage .controller button span, .program .email label, .program .address label, .program .phoneCode label, .programCalendar .calendar .calendarHeader .prevButton span, .programCalendar .calendar .calendarHeader .nextButton span, .dataList-program .listWrap.detail table .trFullLink span, .dataList-program .listWrap.detail table caption, .contactForm label, .addressForm label, .program .juminNo label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.formProgramWrap {
  display: block;
  position: relative;
  width: 100%;
}
.formProgramWrap fieldset {
  display: block;
  position: relative;
  width: 100%;
}

.customSelect, .customInputDefault, .customInputDefault[type=text], .customInputDefault[type=password]{
  height: 49px;
  background: #fff;
  border: 1px solid #d5d7dd;
  border-radius: 8px;
  color: #515862;
}
.customSelect *, .customInputDefault *, .customInputDefault[type=text] * {
  display: block;
  height: 49px;
  padding: 0 10px 4px;
  color: #515862;
}
.customSelect::placeholder, .customInputDefault::placeholder, .customInputDefault[type=text]::placeholder {
  color: #515862;
}

.customInputDefault[type=text], .customInputDefault[type=number], .customInputDefault[type=password], .customInputDefault[type=date] {
  padding: 0 10px 4px;
}

.customInputDefault[type=text] {
  width: 100%;
  max-width: 370px;
}
.customInputDefault[type=text].w100per {
  width: 100%;
  max-width: initial;
}
.customInputDefault[type=text].widthFree {
  max-width: initial;
}

.customSelect {
  position: relative;
}
.customSelect.inlineBlock {
  display: inline-block;
}
.customSelect::before {
  display: block;
  position: absolute;
  top: 0;
  right: 14px;
  bottom: 0;
  width: 11px;
  height: 6px;
  margin: auto 0;
  background: url(../images/program/icon-program.png) no-repeat 0 0;
}
.customSelect select {
  width: 100%;
  padding: 0 34px 4px 10px;
  background: none;
  border: none;
}
.customSelect + .customSelect {
  margin: 0 0 0 8px;
}

.customCheckBox {
  display: inline-block;
  min-height: 20px;
  cursor: pointer;
}
.customCheckBox input {
  display: none;
}
.customCheckBox .customStyle {
  display: block;
  position: relative;
  padding: 0 0 0 30px;
}
.customCheckBox .customStyle .checkbox {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  border: 1px solid #c8cad2;
  border-radius: 5px;
}
.customCheckBox .customStyle .checkbox::before {
  display: block;
  position: absolute;
  top: 6px;
  left: 3px;
  right: 0;
  bottom: 0;
  width: 11px;
  height: 7px;
  background: url(../images/program/icon-program.png) no-repeat -269px -34px;
}
.customCheckBox .customStyle span {
  font-size: 16px;
  line-height: 18px;
}
.customCheckBox input:checked + .customStyle .checkbox {
  background: #009991;
  border-color: #009991;
}
.customCheckBox input:checked + .customStyle .checkbox::before {
  background-position: -269px -7px;
}
.customCheckBox input:disabled + .customStyle span {
  color: #808080;
}
.customCheckBox.disabled {
  cursor: auto;
}
.customCheckBox.disabled .customStyle span {
  color: #808080;
}

.customRadioButton {
  display: inline-block;
  min-height: 20px;
  cursor: pointer;
}
.customRadioButton input {
  display: none;
}
.customRadioButton + .customRadioButton {
  margin: 0 0 0 20px;
}
.customRadioButton .customStyle {
  display: block;
  position: relative;
  padding: 0 0 0 30px;
}
.customRadioButton .customStyle .radioButton {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  background: #fff;
  border: 1px solid #c9cbd3;
  border-radius: 10px;
}
.customRadioButton .customStyle .radioButton::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 8px;
  height: 8px;
  margin: auto;
  background: #e3e5e8;
  border-radius: 4px;
}
.customRadioButton input:checked + .customStyle .radioButton {
  background: #009991;
  border-color: #009991;
}
.customRadioButton input:checked + .customStyle .radioButton::before {
  background: #fff;
}

.addressForm {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 400px;
}
.addressForm .inputAddress {
  max-width: initial;
}
.addressForm .inputAddress.simple {
  flex: 0 0 calc(100% - 135px);
}
.addressForm .inputAddress.detail {
  flex: 0 0 100%;
  width: 100%;
  margin: 10px 0 0;
}
.addressForm .searchAddress {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex: 0 0 125px;
  height: auto;
  margin: 0 0 0 10px;
  background: #4a4f66;
  border: none;
  border-radius: 8px;
  color: #fff;
}
.addressForm .searchAddress::after {
  display: block;
  width: 18px;
  height: 18px;
  margin: 13px 0 0 8px;
  background: url(../images/program/icon-program.png) no-repeat -408px 0;
}
.addressForm .searchAddress span {
  display: block;
  margin: 13px 0 0;
}

.contactForm {
  display: flex;
  align-items: center;
}
.contactForm .customInputDefault {
  max-width: 120px;
  text-align: center;
}

.editFormPayWrap {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex: 0 0 100%;
  margin: 15px 0 0;
}
.editFormPayWrap .payButton {
  margin: 0 0 0 25px;
  padding: 8px 15px 10px;
  background: #4a4f66;
  border: none;
  border-radius: 8px;
  color: #fff;
}

.programSearch {
  position: relative;
}
.programSearch .customIconOption {
  margin: 0 0 0 8px;
  padding: 0;
  cursor: pointer;
}
.programSearch .customIconOption input {
  display: none;
}
.programSearch .customIconOption .optionWrap {
  display: flex;
  align-items: center;
  height: 49px;
  padding: 0 20px 0 10px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 25px;
}
.programSearch .customIconOption .optionIcon {
  flex: 0 0 30px;
  display: block;
  position: relative;
  width: 30px;
  height: 30px;
  margin: 0 15px 0 0;
  background: #eef0fc;
  border-radius: 50%;
}
.programSearch .customIconOption .optionIcon::before, .programSearch .customIconOption .optionIcon::after {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-repeat: no-repeat;
  background-size: auto 100%;
}
.programSearch .customIconOption .optionIcon::after {
  display: block;
}
.programSearch .customIconOption .optionIcon::before {
  background-position: 0 0;
}
.programSearch .customIconOption input:checked + .optionWrap {
  border-color: #009991;
}
.programSearch .customIconOption input:checked + .optionWrap .optionIcon::after {
  display: none;
}
.programSearch .customIconOption input:checked + .optionWrap .optionIcon::before {
  display: block;
}
.programSearch .customIconOption em {
  margin: 0 0 4px;
}
.programSearch .formElement {
  display: flex;
}
.programSearch .formElement.w100per {
  flex: 0 0 100%;
}
.programSearch .formElement.marginTop12 {
  margin: 12px 0 0;
}
.programSearch .formElement > label, .programSearch .formElement .formElement-label {
  height: 49px;
  margin: 0 15px 0 20px;
  padding: 14px 0 0;
  text-align: right;
}
.programSearch .formElement.widthWide {
  flex: 0 0 calc(100% - 670px);
}
.programSearch .formElement .customSelect {
  width: 100%;
}
.programSearch .defaultFormWrap {
  display: flex;
  flex: 0 0 70%;
  width: 70%;
  margin: 0 auto;
}
.programSearch .defaultFormWrap .formElement {
  flex: 0 0 35%;
  width: 35%;
}
.programSearch .defaultFormWrap .formElement > label, .programSearch .defaultFormWrap .formElement > .formElement-label {
  flex: 0 0 105px;
  width: 105px;
}
.programSearch .defaultFormWrap .formElement .customInputDefault, .programSearch .defaultFormWrap .formElement .customSelect {
  flex: 0 0 calc(100% - 140px);
  width: calc(100% - 140px);
}
.programSearch .defaultFormWrap .formElement.widthWide {
  flex: 0 0 65%;
  width: 65%;
}
.programSearch .searchFormWrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 100%;
}
.programSearch .searchFormWrap .selectElementGroup {
  display: flex;
  justify-content: flex-start;
  width: 100%;
}
.programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement {
  flex: 0 0 260px;
}
.programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement .customSelect {
  flex: 0 0 calc(100% - 105px);
}
.programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement.elementCount2 {
  flex: 0 0 450px;
}
.programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement.elementCount2 .customSelect {
  flex: 0 0 calc(50% - 58px);
}
.programSearch .searchFormWrap.default {
  z-index: 1;
  padding: 30px 170px 125px;
  background: #fff;
  border: 1px solid #c0c3d0;
  border-radius: 16px;
}
.programSearch .searchFormWrap.default .formElement > label, .programSearch .searchFormWrap.default .formElement .formElement-label {
  flex: 0 0 105px;
}
.programSearch .searchFormWrap.default .facilityOptions .customIconOption .optionIcon::before, .programSearch .searchFormWrap.default .facilityOptions .customIconOption .optionIcon::after {
  background-image: url(../images/program/icon-searchOption1.png);
}
.programSearch .searchFormWrap.default .tourOptions .customIconOption .optionIcon::before, .programSearch .searchFormWrap.default .tourOptions .customIconOption .optionIcon::after {
  background-image: url(../images/program/icon-searchOption3.png);
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.searchSvcTyCd0::after {
  background-position: -40px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.FCTSVC01::after {
  background-position: -80px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.FCTSVC02::after {
  background-position: -200px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.FCTSVC03::after {
  background-position: -120px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.FCTSVC04::after {
  background-position: -160px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.FCTSVC05::after {
  background-position: -320px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.FCTSVC06::after {
  background-position: -360px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.FCTSVC07::after {
  background-position: -240px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.searchSvcTyCd0::after {
  background-position: -40px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.EXPSVC01::after {
  background-position: -80px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.EXPSVC02::after {
  background-position: -120px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.EXPSVC03::after {
  background-position: -160px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.EXPSVC04::after {
  background-position: -200px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.EXPSVC05::after {
  background-position: -240px 0;
}
.programSearch .searchFormWrap.default .customIconOption .optionIcon.EXPSVC06::after {
  background-position: -280px 0;
}
.programSearch .searchFormWrap.detail {
  display: none;
  justify-content: flex-start;
  z-index: 0;
  margin: -30px 0 0;
  padding: 60px 140px 125px;
  background: linear-gradient(145deg, #f4f7fb 0%, #f3f9f4 74%);
  border-radius: 16px;
}
.programSearch .searchFormWrap.detail .formElement > label, .programSearch .searchFormWrap.detail .formElement .formElement-label {
  flex: 0 0 70px;
}
.programSearch .searchFormWrap.detail.srcEdu .formElement > label, .programSearch .searchFormWrap.detail.srcEdu .formElement .formElement-label {
  flex: 0 0 80px;
}
.programSearch .searchFormWrap.detail.srcEdu .customSelect {
  flex: 0 0 150px;
  width: 150px;
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon::before, .programSearch .searchFormWrap.detail .customIconOption .optionIcon::after {
  background-image: url(../images/program/icon-searchOption2.png);
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon.TARGET01::after {
  background-position: -40px 0;
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon.TARGET02::after {
  background-position: -80px 0;
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon.TARGET03::after {
  background-position: -120px 0;
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon.TARGET04::after {
  background-position: -160px 0;
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon.TARGET05::after {
  background-position: -200px 0;
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon.TARGET06::after {
  background-position: -240px 0;
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon.TARGET07::after {
  background-position: -280px 0;
}
.programSearch .searchFormWrap.detail .customIconOption .optionIcon.TARGET08::after {
  background-position: -320px 0;
}
.programSearch .formElement-selectGroup {
  display: flex;
  flex-wrap: wrap;
  width: calc(100% + 8px);
  margin: 0 0 0 -8px;
}
.programSearch .formButton {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: calc(100% - 60px);
  margin: 0 auto;
  padding: 20px 0 30px;
  border-top: 1px solid #d9d9d9;
  z-index: 2;
  text-align: center;
}
.programSearch .formButton .button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 120px;
  height: auto;
  margin: 0 5px;
  padding: 15px 0;
  border-radius: 8px;
  font-size: 17px;
  line-height: 19px;
  vertical-align: top;
}
.programSearch .formButton .button.submit {
  background: #009991;
  border-color: #009991;
  color: #fff;
}
.programSearch .formButton .button.reset {
  border-color: #757b8e;
}
.programSearch .formButton .button.reset::before {
  display: inline-block;
  width: 17px;
  height: 17px;
  margin: 0 5px 0 0;
  background: url(../images/program/icon-program.png) no-repeat -21px 0;
}
.programSearch .detailCloseButton {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  right: 30px;
  bottom: 40px;
  z-index: 3;
  padding: 5px;
  background: none;
  border: none;
  color: #4d4d4d;
  font-size: 17px;
  line-height: 19px;
}
.programSearch .detailCloseButton::after {
  display: inline-block;
  width: 14px;
  height: 8px;
  margin: 3px 0 0 13px;
  background: url(../images/program/icon-program.png) transparent no-repeat -294px 0;
}
.programSearch .detailCloseButton em {
  display: none;
}
.programSearch .detailCloseButton em.openText {
  display: inline;
}
.programSearch.showDetail .searchFormWrap.default {
  padding: 30px 190px;
}
.programSearch.showDetail .searchFormWrap.detail {
  display: flex;
}
.programSearch.showDetail .detailCloseButton::after {
  transform: rotate(180deg);
}
.programSearch.showDetail .detailCloseButton em.openText {
  display: none;
}
.programSearch.showDetail .detailCloseButton em.closeText {
  display: inline;
}

.dataList-program {
  position: relative;
  margin: 40px 0 0;
}
.dataList-program .asideInformation {
  display: flex;
  justify-content: flex-end;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
}
.dataList-program .asideInformation::before {
  display: block;
  position: absolute;
  top: 5px;
  left: 121px;
  width: 1px;
  height: 20px;
  background: #d4d4d4;
}
.dataList-program .asideInformation .viewType {
  position: relative;
  padding: 0 0 3px 27px;
  border: none;
  color: #808080;
  font-size: 17px;
  line-height: 19px;
}
.dataList-program .asideInformation .viewType::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  background: url(../images/program/icon-program.png) no-repeat;
}
.dataList-program .asideInformation .viewType.thumb::before {
  top: 6px;
  background-position: -74px 0;
}
.dataList-program .asideInformation .viewType.detail {
  margin: 0 0 0 30px;
}
.dataList-program .asideInformation .viewType.detail::before {
  top: 7px;
  background-position: -100px 0;
}
.dataList-program .asideInformation .viewType.active {
  color: #1f1f1f;
}
.dataList-program .asideInformation .viewType.active.thumb::before {
  background-position: -74px -26px;
}
.dataList-program .asideInformation .viewType.active.detail::before {
  background-position: -100px -26px;
}
.dataList-program .listWrap {
  display: none;
}
.dataList-program .listWrap.show {
  display: block;
}
.dataList-program .listWrap.eventList {
  display: block;
}
.dataList-program .listWrap .dataCount {
  position: relative;
  height: 20px;
  padding: 0 0 0 26px;
  color: #515862;
  font-size: 17px;
  line-height: 19px;
}
.dataList-program .listWrap .dataCount::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 20px;
  background: url(../images/program/icon-program.png) no-repeat -48px 0;
}
.dataList-program .listWrap .dataCount em {
  color: #009991;
}
.dataList-program .listWrap.thumbnail > ul {
  display: flex;
  flex-wrap: wrap;
  width: calc(100% + 30px);
  margin: 20px 0 0 -30px;
}
.dataList-program .listWrap.thumbnail > ul > li {
  flex: 0 0 calc(25% - 30px);
  margin: 0 0 30px 30px;
}
.dataList-program .listWrap.thumbnail > ul > li.noDataList {
  flex: 0 0 calc(100% - 30px);
}
.dataList-program .listWrap.thumbnail > ul a {
  display: block;
  padding: 0 0 25px;
  border: 1px solid #ccc;
  border-radius: 20px;
}
.dataList-program .listWrap.thumbnail .image {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 239px;
  overflow: hidden;
  margin: 0 0 25px;
  background: #f5f8fa;
  border-bottom: 1px solid #ccc;
  border-radius: 20px 20px 0 0;
}
.dataList-program .listWrap.thumbnail .image img {
  /*max-width: 100%;
  height: auto;
  max-height: 100%;*/
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dataList-program .listWrap.thumbnail .image.noImage img {
  width: 70px;
  height: 70px;
}
.dataList-program .listWrap.thumbnail .option {
  display: flex;
  position: relative;
  margin: 0 30px 20px;
  padding: 0 60px 0 0;
  color: #808080;
  font-size: 14px;
  line-height: 16px;
}
.dataList-program .listWrap.thumbnail .option span {
  display: block;
  height: 26px;
  padding: 3px 8px 0;
  border: 1px solid #ccc;
  border-radius: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dataList-program .listWrap.thumbnail .option .stateType {
  max-width: 82px;
  border: 1px solid #ccc;
  color: #ccc;
}
.dataList-program .listWrap.thumbnail .option .stateType.type1 {
  border-color: #18c3a2;
  color: #18c3a2;
}
.dataList-program .listWrap.thumbnail .option .stateType.type2 {
  border-color: #3f65d9;
  color: #3f65d9;
}
.dataList-program .listWrap.thumbnail .option .stateType.type3 {
  border-color: #808080;
  color: #808080;
}
.dataList-program .listWrap.thumbnail .option .organ {
  max-width: 135px;
  margin: 0 0 0 4px;
  background: #f7f7fc;
  border-color: #f7f7fc;
  color: #808080;
}
.dataList-program .listWrap.thumbnail .option .pay {
  position: absolute;
  right: 0;
  background: #8a90ad;
  border-color: #8a90ad;
  color: #fff;
}
.dataList-program .listWrap.thumbnail .option .pay.free {
  background: #008bfd;
  border-color: #008bfd;
}
.dataList-program .listWrap.thumbnail .title {
  display: block;
  height: 48px;
  overflow: hidden;
  margin: 0 30px 15px;
  color: #1f1f1f;
  font-size: 20px;
  font-weight: 700;
  line-height: 24px;
}
.dataList-program .listWrap.thumbnail .prgInformation {
  height: 117px;
  overflow: hidden;
  margin: 0 30px;
}
.dataList-program .listWrap.thumbnail .prgInformation li {
  display: flex;
  position: relative;
  min-height: 18px;
  margin: 9px 0 0;
  padding: 0 0 0 50px;
  color: #808080;
  font-size: 14px;
  line-height: 18px;
}
.dataList-program .listWrap.thumbnail .prgInformation li::before {
  display: block;
  position: absolute;
  top: 7px;
  left: 0;
  width: 6px;
  height: 6px;
  background: #e1e1e1;
  border-radius: 50%;
}
.dataList-program .listWrap.thumbnail .prgInformation li:first-child {
  margin: 0;
}
.dataList-program .listWrap.thumbnail .prgInformation li span {
  display: block;
  position: absolute;
  left: 14px;
  width: 36px;
  color: #4d4d4d;
}
.dataList-program .listWrap.thumbnail.eventList > ul {
  width: calc(100% + 20px);
  margin: 0 0 0 -20px;
}
.dataList-program .listWrap.thumbnail.eventList > ul > li {
  flex: 0 0 calc(20% - 20px);
  width: calc(20% - 20px);
  margin: 0 0 20px 20px;
}
.dataList-program .listWrap.thumbnail.eventList > ul > li.noDataList {
  flex: 0 0 calc(100% - 20px);
}
.dataList-program .listWrap.thumbnail.eventList > ul a {
  width: 100%;
  padding: 9px;
}
.dataList-program .listWrap.thumbnail.eventList .image {
  position: relative;
  height: 360px;
  background: linear-gradient(to bottom, rgb(245, 248, 250) 80%, rgba(245, 248, 250, 0) 100%);
  border-bottom: none;
  border-radius: 10px 10px 0 0;
}
.dataList-program .listWrap.thumbnail.eventList .image::after {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 110px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 20%, rgb(255, 255, 255) 97%);
}
.dataList-program .listWrap.thumbnail.eventList .image img {
  width: 100%;
  height: auto;
  max-height: initial;
}
.dataList-program .listWrap.thumbnail.eventList .image.noImage img {
  width: 70px;
  height: 70px;
}
.dataList-program .listWrap.thumbnail.eventList .title {
  display: block;
  width: calc(100% - 40px);
  height: 24px;
  margin: 0 20px 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dataList-program .listWrap.thumbnail.eventList .prgInformation {
  margin: 0 20px 10px;
}
.dataList-program .listWrap.detail {
  /*table + .pagination-default{margin:40px 0 0;}*/
}
.dataList-program .listWrap.detail .dataCount + table {
  margin: 20px 0 0;
}
.dataList-program .listWrap.detail table {
  width: 100%;
  font-size: 17px;
  line-height: 19px;
  border-collapse: separate;
  border-spacing: 0;
}
.dataList-program .listWrap.detail table thead tr {
  background: #f5f8fa;
  border-radius: 18px;
  overflow: hidden;
}
.dataList-program .listWrap.detail table thead th {
  padding: 16px 10px 20px 10px;
}
.dataList-program .listWrap.detail table thead th.first {
  border-radius: 18px 0 0 18px;
}
.dataList-program .listWrap.detail table thead th.last {
  border-radius: 0 18px 18px 0;
}
.dataList-program .listWrap.detail table tbody tr {
  position: relative;
}
.dataList-program .listWrap.detail table tbody td {
  padding: 38px 10px 30px;
  vertical-align: middle;
  * vertical-align: middle;
}
.dataList-program .listWrap.detail table tbody td .mobile-th {
  display: none;
}
.dataList-program .listWrap.detail table .trFullLink {
  display: block;
  position: absolute;
  top: 10px;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  border: 1px solid #ccc;
  border-radius: 18px;
}
.dataList-program .listWrap.detail table .trFullLink:hover {
  border-color: #009991;
}
.dataList-program .listWrap.detail table .titleArea {
  display: block;
  position: relative;
}
.dataList-program .listWrap.detail table .titleArea::before {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 1px;
  background: #d4d4d4;
}
.dataList-program .listWrap.detail table .tableProgramTitle {
  display: block;
  color: #1f1f1f;
  font-size: 19px;
  font-weight: 700;
  line-height: 23px;
}
.dataList-program .listWrap.detail table .programDetailInformation {
  display: flex;
  flex-wrap: wrap;
  margin: 15px 0 0;
  color: #808080;
  font-size: 16px;
  line-height: 18px;
}
.dataList-program .listWrap.detail table .programDetailInformation span {
  display: block;
  position: relative;
  margin: 0 0 0 13px;
  padding: 0 0 0 14px;
}
.dataList-program .listWrap.detail table .programDetailInformation span::before {
  display: block;
  position: absolute;
  top: 3px;
  left: 0;
  width: 1px;
  height: 14px;
  background: #d4d4d4;
}
.dataList-program .listWrap.detail table .programDetailInformation span.date {
  margin: 0;
  padding: 0;
}
.dataList-program .listWrap.detail table .programDetailInformation span.date::before {
  display: none;
}
.dataList-program .listWrap.detail .pay {
  display: inline-block;
  padding: 6px 8px 8px;
  background: #008bfd;
  border-radius: 15px;
  color: #fff;
  font-size: 14px;
  line-height: 16px;
}
.dataList-program .listWrap.detail .pay.free {
  background: #8a90ad;
}
.dataList-program .listWrap.detail .stateType {
  display: inline-block;
  max-width: 70px;
  padding: 5px 8px 7px;
  border: 1px solid #ccc;
  border-radius: 15px;
  color: #ccc;
  font-size: 14px;
  line-height: 16px;
}
.dataList-program .listWrap.detail .stateType.type1 {
  border-color: #18c3a2;
  color: #18c3a2;
}
.dataList-program .listWrap.detail .stateType.type2 {
  border-color: #3f65d9;
  color: #3f65d9;
}
.dataList-program .listWrap.detail .stateType.type3 {
  border-color: #808080;
  color: #808080;
}
.dataList-program .listWrap.detail .block {
  display: block;
}
.dataList-program .listWrap .noData {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 50px 0;
  text-align: left;
}
.dataList-program .listWrap .noData::before {
  display: block;
  width: 411px;
  height: 248px;
  background: url(../images/program/no-post.png) no-repeat 0 0;
}
.dataList-program .listWrap .noData .noData-innerWrap {
  display: block;
  margin: 0 0 0 68px;
}
.dataList-program .listWrap .noData .noDataTitle {
  display: block;
  margin: 0 0 20px;
  color: #1f1f1f;
  font-size: 26px;
  font-weight: 700;
  line-height: 28px;
}
.dataList-program .listWrap .noData .noDataTitle::before {
  display: block;
  width: 40px;
  height: 25px;
  margin: 0 0 20px 20px;
  background: url(../images/program/icon-program.png) no-repeat -126px 0;
}
.dataList-program .listWrap .noData p span {
  display: block;
}

/*.pagination-default{display:flex;justify-content:center;align-items:center;margin:10px 0 0;
    a{display:inline-block;width:40px;height:40px;margin:0 5px;padding:9px 0 0;border-radius:50%;color:#4d4d4d;font-size:16px;line-height:18px;text-align:center;
        &:hover{background:#f5f8fa;}
        span{@extend %visually-hidden;}
        &.current{color:#009991;background:#f5f8fa;}
    }
    .movePage{display:inline-block;position:relative;width:48px;height:48px;border:1px solid #d6d8de;border-radius:50%;
        &::before{display:block;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;background-repeat:no-repeat;background-position:0 0;}
        &.first::before,&.last::before{width:11px;height:11px;background-image:url(../images/search/icon-arr-double.png);}
        &.prev::before,&.next::before{width:6px;height:11px;background-image:url(../images/search/icon-arr.png);}
        &.next::before,&.last::before{transform:rotate(180deg);}
    }
}*/
.formButtonGroup {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 40px 0 0;
}
.formButtonGroup .button {
  display: flex;
  justify-content: center;
  align-items: center;
  height: auto;
  padding: 14px 30px 16px;
  border: 1px solid #009991;
  border-radius: 8px;
  color: #009991;
  font-size: 17px;
  line-height: 19px;
}
.formButtonGroup .button.bgFill {
  background: #009991;
  color: #fff;
}
.formButtonGroup .button.previous::before {
  display: block;
  flex: 0 0 8px;
  width: 8px;
  height: 13px;
  margin: 0 15px 0 0;
  background: url(../images/program/icon-program.png) no-repeat -317px 0;
}
.formButtonGroup .button.next::after {
  display: block;
  flex: 0 0 8px;
  width: 8px;
  height: 13px;
  margin: 1px 0 0 15px;
  background: url(../images/program/icon-program.png) no-repeat -317px 0;
  transform: rotate(180deg);
}
.formButtonGroup .button + .button {
  margin: 0 0 0 25px;
}

.programFlow {
  display: flex;
  justify-content: center;
  align-items: center;
}
.programFlow li {
  display: flex;
  align-items: center;
  position: relative;
  margin: 0 0 0 12px;
  padding: 0 0 0 27px;
}
.programFlow li::before {
  display: block;
  position: absolute;
  top: 12px;
  left: 0;
  width: 13px;
  height: 3px;
  background: url(../images/program/icon-ellipsis.png) no-repeat 0 0;
}
.programFlow li:first-child {
  margin: 0;
  padding: 0;
}
.programFlow li:first-child::before {
  display: none;
}
.programFlow i {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 26px;
  position: relative;
  width: 26px;
  height: 26px;
  margin: 0 9px 0 0;
  padding: 2px 0 0;
  background: #4e5166;
  border-radius: 50%;
  color: #fff;
  font-family: SB;
  font-size: 12px;
  font-weight: 600;
  line-height: 14px;
}
.programFlow .selected {
  color: #009991;
}
.programFlow .selected i::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../images/program/icon-program.png) no-repeat -206px 0;
}

.programTitle {
  margin: 50px 0;
  padding: 30px 30px 40px;
  background: linear-gradient(145deg, #f4f7fb 0%, #f3f9f4 74%);
  border-radius: 30px;
  text-align: center;
}
.programTitle .stateType {
  display: inline-block;
  padding: 3px 10px 5px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 13px;
  color: #ccc;
  font-size: 16px;
  line-height: 18px;
}
.programTitle .stateType.type1 {
  border-color: #18c3a2;
  color: #18c3a2;
}
.programTitle .stateType.type2 {
  border-color: #3f65d9;
  color: #3f65d9;
}
.programTitle .stateType.type3 {
  border-color: #808080;
  color: #808080;
}
.programTitle strong {
  display: block;
  width: 100%;
  margin: 20px 0 0;
  color: #1f1f1f;
  font-size: 28px;
  font-weight: 700;
  line-height: 30px;
}

.programCalendar {
  margin: 30px 0 60px;
  border: 1px solid #ccc;
  border-radius: 30px;
}
.programCalendar.timeSelect {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  width: 100%;
}
.programCalendar.timeSelect .calendar {
  flex: 0 0 calc(64% - 70px);
  margin: 0 30px 0 40px;
}
.programCalendar.timeSelect .time {
  flex: 0 0 calc(36% - 70px);
  margin: 0 40px 0 30px;
}
.programCalendar.timeSelect .selectConfirm {
  flex: 0 0 100%;
  background: #f5f8fa;
  border-radius: 0 0 30px 30px;
}
.programCalendar .calendar .calendarHeader {
  position: relative;
  height: 110px;
  padding: 57px 75px 0;
  border-bottom: 2px solid #1f1f1f;
  text-align: center;
}
.programCalendar .calendar .calendarHeader strong {
  color: #000;
  font-family: SB;
  font-size: 22px;
  font-weight: 500;
  line-height: 24px;
}
.programCalendar .calendar .calendarHeader .prevButton, .programCalendar .calendar .calendarHeader .nextButton {
  display: block;
  position: absolute;
  top: 50px;
  width: 30px;
  height: 30px;
  background: #fff;
  border: none;
  border-radius: 8px;
}
.programCalendar .calendar .calendarHeader .prevButton::before, .programCalendar .calendar .calendarHeader .nextButton::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 11px;
  height: 18px;
  margin: auto;
  background: url(../images/program/icon-program.png) no-repeat -243px 0;
}
.programCalendar .calendar .calendarHeader .prevButton {
  left: 0;
}
.programCalendar .calendar .calendarHeader .nextButton {
  right: 0;
}
.programCalendar .calendar .calendarHeader .nextButton::before {
  transform: rotate(180deg);
}
.programCalendar .calendar .calendarBody {
  padding: 26px 0;
  border-bottom: 1px solid #ccc;
}
.programCalendar .calendar .calendarBody .weekly, .programCalendar .calendar .calendarBody .day {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}
.programCalendar .calendar .calendarBody .weekly li, .programCalendar .calendar .calendarBody .day li {
  flex: 0 0 14.2857142857%;
  text-align: center;
}
.programCalendar .calendar .calendarBody .weekly li {
  height: 42px;
  padding: 12px 0 0;
  color: #808080;
  font-family: SB;
  font-size: 18px;
  line-height: 20px;
}
.programCalendar .calendar .calendarBody .day li {
  height: 70px;
}
.programCalendar .calendar .calendarBody .day li.today {
  position: relative;
}
.programCalendar .calendar .calendarBody .day li.today::before {
  display: block;
  position: absolute;
  top: 6px;
  left: 0;
  right: 0;
  z-index: 2;
  width: 5px;
  height: 5px;
  margin: 0 auto;
  background: #009991;
  border: 2px solid #fff;
  border-radius: 50%;
}
.programCalendar .calendar .calendarBody .day li.period {
  position: relative;
}
.programCalendar .calendar .calendarBody .day li.period::after {
  display: block;
  position: absolute;
  top: 10px;
  left: 0;
  right: 0;
  z-index: 0;
  height: 30px;
  background: #f5f8fa;
}
.programCalendar .calendar .calendarBody .day li.period.first::after {
  border-radius: 5px 0 0 5px;
}
.programCalendar .calendar .calendarBody .day li.period.last::after {
  border-radius: 0 5px 5px 0;
}
.programCalendar .calendar .calendarBody .day li.period.start::after {
  left: 50%;
}
.programCalendar .calendar .calendarBody .day li.period.start .day {
  flex: 0 0 30px;
  height: 30px;
  background: #009991;
  border-radius: 50%;
  color: #fff;
}
.programCalendar .calendar .calendarBody .day li.period.end::after {
  right: 50%;
}
.programCalendar .calendar .calendarBody .day li.period.end .day {
  flex: 0 0 30px;
  height: 30px;
  background: #009991;
  border-radius: 50%;
  color: #fff;
}
.programCalendar .calendar .calendarBody .day li.sunday button .day, .programCalendar .calendar .calendarBody .day li.sunday .viewDay .day {
  color: #dd496c;
}
.programCalendar .calendar .calendarBody .day li.sunday button.selected .day, .programCalendar .calendar .calendarBody .day li.sunday .viewDay.selected .day {
  color: #fff;
}
.programCalendar .calendar .calendarBody .day button, .programCalendar .calendar .calendarBody .day .viewDay {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  position: relative;
  z-index: 1;
  width: 70px;
  height: 100%;
  margin: 0 auto;
  padding: 10px 0 0;
  border: 1px solid transparent;
  border-radius: 10px;
  font-family: SB;
  text-align: center;
}
.programCalendar .calendar .calendarBody .day button .day, .programCalendar .calendar .calendarBody .day .viewDay .day {
  flex: 0 0 100%;
  display: block;
  padding: 8px 0 5px;
  font-weight: 500;
}
.programCalendar .calendar .calendarBody .day button .reserveCount, .programCalendar .calendar .calendarBody .day .viewDay .reserveCount {
  flex: 0 0 100%;
  display: block;
  margin: 0 0 10px;
  color: #808080;
  font-size: 12px;
  line-height: 14px;
}
.programCalendar .calendar .calendarBody .day button.disabled, .programCalendar .calendar .calendarBody .day .viewDay.disabled {
  cursor: auto;
}
.programCalendar .calendar .calendarBody .day button.disabled .day, .programCalendar .calendar .calendarBody .day .viewDay.disabled .day {
  color: #ccc;
}
.programCalendar .calendar .calendarBody .day button.selected, .programCalendar .calendar .calendarBody .day .viewDay.selected {
  background: #009991;
  box-shadow: 0 9px 20px rgba(31, 40, 99, 0.02);
  color: #fff;
}
.programCalendar .calendar .calendarBody .day button.selected .reserveCount, .programCalendar .calendar .calendarBody .day .viewDay.selected .reserveCount {
  color: #fff;
}
.programCalendar .calendar .calendarFooter {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 76px;
  font-size: 14px;
  line-height: 16px;
}
.programCalendar .calendar .calendarFooter .selectCount {
  display: flex;
  justify-content: center;
  align-items: center;
}
.programCalendar .calendar .calendarFooter .selectCount .count {
  display: block;
  height: 22px;
  padding: 3px 10px 0;
  background: #f3f3fa;
  border-radius: 12px;
  color: #8f8f90;
  font-size: 12px;
  line-height: 14px;
}
.programCalendar .calendar .calendarFooter .selectCount .text {
  margin: 0 0 2px 7px;
}
.programCalendar .calendar .calendarFooter .calendarLegend {
  display: flex;
  margin: 0 0 0 30px;
}
.programCalendar .calendar .calendarFooter .calendarLegend span {
  position: relative;
  margin: 0 0 2px 20px;
  padding: 0 0 0 20px;
}
.programCalendar .calendar .calendarFooter .calendarLegend span::before {
  display: block;
  position: absolute;
  top: 4px;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
.programCalendar .calendar .calendarFooter .calendarLegend span.today {
  margin: 0 0 2px;
}
.programCalendar .calendar .calendarFooter .calendarLegend span.today::before {
  background: #009991;
}
.programCalendar .calendar .calendarFooter .calendarLegend span.disabled::before {
  background: #6c7582;
}
.programCalendar .calendar.viewPlan {
  padding: 0 25px;
}
.programCalendar .time {
  height: 555px;
}
.programCalendar .time .timeTitle {
  height: 110px;
  padding: 57px 0 0;
  border-bottom: 2px solid #1f1f1f;
  color: #000;
  font-family: SB;
  font-size: 22px;
  font-weight: 500;
  line-height: 24px;
}
.programCalendar .time .timeScrollWrap {
  height: calc(100% - 110px);
  overflow: hidden;
  overflow-y: auto;
}
.programCalendar .time .timeList {
  font-family: SB;
}
.programCalendar .time .timeList li {
  position: relative;
  height: 60px;
  border-bottom: 1px solid #ccc;
}
.programCalendar .time .timeList .customCheckBox {
  display: block;
  position: relative;
  z-index: 1;
  height: 100%;
  padding: 19px 0 0;
  font-weight: 500;
}
.programCalendar .time .timeList .customCheckBox .customStyle {
  padding: 2px 0 0 30px;
}
.programCalendar .time .timeList .customCheckBox.disabled {
  font-weight: 400;
}
.programCalendar .time .timeList .reserveCountText {
  display: block;
  position: absolute;
  top: 20px;
  right: 40px;
}
.programCalendar .time .timeList .disabled + .reserveCountText {
  color: #808080;
}
.programCalendar .selectConfirm {
  padding: 30px;
}
.programCalendar .selectConfirm strong {
  display: block;
  margin: 0 0 20px 10px;
  color: #000;
  font-family: SB;
  font-size: 20px;
  font-weight: 600;
  line-height: 22px;
}
.programCalendar .selectConfirm ul {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  width: calc(100% + 10px);
  margin: 0 0 0 -10px;
}
.programCalendar .selectConfirm li {
  flex: 0 0 calc(25% - 10px);
  margin: 0 0 0 10px;
  padding: 24px 30px;
  background: #fff;
  box-shadow: 0 9px 20px rgba(31, 40, 99, 0.05);
  border-radius: 20px;
}
.programCalendar .selectConfirm .title {
  display: block;
  margin: 0 0 15px;
  color: #009991;
  font-size: 17px;
  line-height: 19px;
}
.programCalendar .selectConfirm p {
  color: #000;
  font-family: SB;
  font-size: 20px;
  font-weight: 600;
  line-height: 22px;
}

.privacyAgreement .agreeAll {
  display: block;
  padding: 17px 20px 19px;
  background: #f5f8fa;
  border-radius: 10px;
}
.privacyAgreement .agreeAll .customRadioButton {
  display: block;
}
.privacyAgreement .agreeBox {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  padding: 30px 0 0;
}
.privacyAgreement .agreeBox .agreeTitle {
  color: #000;
  font-family: SB;
  font-size: 20px;
  font-weight: 500;
  line-height: 24px;
}
.privacyAgreement .agreeBox .agreeTitle span {
  font-weight: 400;
}
.privacyAgreement .agreeBox .formGroup {
  margin: 0 0 0 35px;
}
.privacyAgreement .agreeBox .formGroup .customRadioButton + .customRadioButton {
  margin: 0 0 0 15px;
}
.privacyAgreement .agreeBox .agreeViewButton {
  display: block;
  position: absolute;
  top: 30px;
  right: 0;
  padding: 0 21px 0 0;
  border: none;
  color: #515862;
}
.privacyAgreement .agreeBox .agreeViewButton::before {
  display: block;
  position: absolute;
  top: 12px;
  right: 0;
  width: 13px;
  height: 9px;
  background: url(../images/program/icon-program.png) no-repeat -294px 0;
}
.privacyAgreement .agreeBox .agreeViewButton.active::before {
  transform: rotate(-180deg);
}
.privacyAgreement .agreeExplanation {
  display: none;
  flex: 0 0 100%;
  position: relative;
  width: 100%;
  margin: 15px 0 0;
  padding: 1px;
}
.privacyAgreement .agreeExplanation::before {
  display: block;
  position: absolute;
  top: 2px;
  left: 2px;
  right: 2px;
  bottom: 2px;
  border: 1px solid #ccc;
  border-radius: 10px;
}
.privacyAgreement .agreeExplanation .agreeInnerBox {
  position: relative;
  z-index: 1;
  height: 300px;
  overflow: hidden;
  overflow-y: auto;
  margin: 30px;
}
.privacyAgreement .agreeExplanation ul {
  margin: 10px 0 0;
  padding: 1px 0;
}
.privacyAgreement .agreeExplanation ul li {
  margin: 4px 0;
  padding: 1px 0;
}
.privacyAgreement .agreeExplanation ul ul {
  margin: 10px 15px;
}
.privacyAgreement .active + .agreeExplanation {
  display: block;
}
.privacyAgreement.prgEdu .agreeExplanation {
  display: block;
}
.privacyAgreement.prgEdu .agreeBox .formGroup {
  display: block;
  width: 100%;
  margin: 15px 0 0;
  text-align: right;
}

.tabButtons {
  display: flex;
  align-items: flex-start;
  position: relative;
  width: 100%;
  margin: 60px 0 0;
}
.tabButtons::before {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #009991;
}
.tabButtons li {
  flex: 0 0 12.5%;
  position: relative;
  z-index: 1;
}
.tabButtons a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 56px;
  padding: 0 0 4px;
  background: #fff;
  border: 1px solid #ccc;
  border-bottom-color: #009991;
  border-radius: 8px 8px 0 0;
  color: #515862;
}
.tabButtons a.current {
  border-color: #009991;
  border-bottom-color: #fff;
  color: #009991;
}

.program .phoneCode {
  display: flex;
  align-items: center;
}
.program .phoneCode input {
  flex: 0 0 30%;
  max-width: 100px;
  text-align: center;
}
.program .address {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 450px;
}
.program .address .addressSearch {
  flex: 0 0 calc(100% - 135px);
}
.program .address .addressSearchButton {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 125px;
  position: relative;
  height: 49px;
  margin: 0 0 0 10px;
  background: #4a4f66;
  border: none;
  border-radius: 8px;
  color: #fff;
}
.program .address .addressSearchButton span {
  display: block;
  margin: 0 0 3px;
}
.program .address .addressSearchButton::after {
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 0 0 0 10px;
  background: url(../images/program/icon-program.png) no-repeat -408px 0;
}
.program .address .addressDetail {
  flex: 0 0 100%;
  max-width: initial;
  margin: 10px 0 0;
}
.program .email {
  display: flex;
  align-items: center;
}
.program .email .customInputDefault {
  max-width: 150px;
}
.program .email .customSelect {
  margin: 0 0 0 10px;
}
.program .juminNo{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.program .juminNo .customInputDefault {
  max-width: 150px;
}
.program .juminNo .resIngResultText {
  display: block;
  flex: 0 0 100%;
  margin: 10px 0 0;
}
.program .programInformation {
  padding: 20px 5px;
  background: #f5f8fa;
  border-radius: 10px;
}
.program .programInformation ul {
  display: flex;
  align-items: center;
}
.program .programInformation ul li {
  flex: 0 0 calc(33.3333333333% - 30px);
  margin: 0 15px;
  padding: 24px 30px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 9px 20px rgba(31, 40, 99, 0.05);
}
.program .programInformation .infoTitle {
  display: block;
  color: #009991;
}
.program .programInformation p {
  margin: 12px 0 0;
  color: #1f1f1f;
  font-family: SB;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 24px;
}
.program .programAmount {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 29px 0 0;
  padding: 29px;
  background: #f5f8fa;
  border-radius: 10px;
}
.program .programAmount .innerWrap {
  flex: 0 0 100%;
  width: 100%;
  max-width: 550px;
  padding: 30px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 9px 20px rgba(31, 40, 99, 0.05);
}
.program .programAmount li {
  display: flex;
  margin: 10px 0 0;
}
.program .programAmount li:first-child {
  margin: 0;
}
.program .programAmount li * {
  display: block;
  flex: 0 0 50%;
  color: #515862;
  font-weight: 400;
}
.program .programAmount li span {
  text-align: right;
}
.program .programAmount .sumAmount {
  display: flex;
  justify-content: flex-end;
  margin: 15px 0 0;
  padding: 15px 0 0;
  border-top: 1px solid #d5d7dd;
  font-size: 20px;
  font-weight: 700;
  line-height: 22px;
  text-align: right;
}
.program .programAmount .sumAmount * {
  display: block;
}
.program .programAmount .sumAmount strong {
  color: #000;
}
.program .programAmount .sumAmount span {
  margin: 0 0 0 30px;
  color: #009991;
}
.program .programAmount.payFree .sumAmount {
  justify-content: center;
  margin: 0;
  padding: 0;
  border: none;
}
.program .viewProgram {
  display: flex;
  align-items: flex-start;
}
.program .viewProgram .stateType {
  display: block;
  height: 28px;
  padding: 0 8px;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 13px;
  box-shadow: 0 9px 20px rgba(31, 40, 99, 0.05);
  white-space: nowrap;
  overflow: hidden;
  text-align: center;
  text-overflow: ellipsis;
  color: #ccc;
}
.program .viewProgram .stateType.type1 {
  border-color: #18c3a2;
  color: #18c3a2;
}
.program .viewProgram .stateType.type2 {
  border-color: #3f65d9;
  color: #3f65d9;
}
.program .viewProgram .stateType.type3 {
  border-color: #808080;
  color: #808080;
}
.program .viewProgram .linkGroup {
  display: flex;
}
.program .viewProgram .anchorButton {
  display: inline-block;
  height: 48px;
  padding: 13px 25px 0;
  background: #fff;
  border: 1px solid #d5d7dd;
  border-radius: 8px;
  color: #7f858c;
  font-size: 16px;
  line-height: 18px;
}
.program .viewProgram .anchorButton.wide {
  padding: 13px 50px 0;
}
.program .viewProgram .anchorButton.line-color-green {
  border-color: #009991;
  color: #009991;
}
.program .viewProgram .anchorButton + .anchorButton {
  margin: 0 0 0 10px;
}
.program .viewProgram.simpleInformation {
  position: relative;
  height: 366px;
}
.program .viewProgram.simpleInformation::before {
  display: block;
  position: absolute;
  top: 40px;
  left: 0;
  right: 280px;
  bottom: 0;
  background: linear-gradient(145deg, #f4f7fb 0%, #f3f9f4 74%);
  border-radius: 60px 100px 100px 60px;
}
.program .viewProgram.simpleInformation .simpleTextArea {
  position: relative;
  flex: 0 0 calc(100% - 520px);
  padding: 145px 0 0 190px;
}
.program .viewProgram.simpleInformation .simpleTextArea .title .stateType {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 110px;
  left: 60px;
  width: 100px;
  height: 100px;
  padding: 0;
  border-radius: 50%;
}
.program .viewProgram.simpleInformation .simpleTextArea .title strong {
  color: #1f1f1f;
  font-size: 28px;
  font-weight: 600;
  line-height: 30px;
}
.program .viewProgram.simpleInformation .simpleTextArea .linkGroup {
  margin: 45px 0 0;
}
.program .viewProgram.simpleInformation .simpleImage {
  flex: 0 0 520px;
  width: 520px;
  position: relative;
  height: 370px;
}
.program .viewProgram.simpleInformation .simpleImage .imageSlide {
  width: 100%;
}
.program .viewProgram.simpleInformation .simpleImage .slideList {
  display: flex;
  width: 100%;
  height: 345px;
  overflow: hidden;
  background: #fff;
  border-radius: 20px 20px 120px 20px;
  box-shadow: 0 9px 20px rgba(31, 40, 99, 0.05);
}
.program .viewProgram.simpleInformation .simpleImage .slideList .slideItem {
  flex: 0 0 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.program .viewProgram.simpleInformation .simpleImage .slideList .slideItem img {
  max-height: 100%;
}
.program .viewProgram.simpleInformation .simpleImage .slideList .slideItem.no-image img {
  max-width: 70px;
  max-height: 70px;
}
.program .viewProgram.simpleInformation .simpleImage .controller {
  position: absolute;
  right: 60px;
  bottom: 0;
  padding: 0 85px 6px 0;
}
.program .viewProgram.simpleInformation .simpleImage .controller .count {
  display: block;
  width: 80px;
  height: 40px;
  padding: 10px 0 0;
  background: #4e5166;
  border-radius: 20px;
  color: #fff;
  text-align: center;
}
.program .viewProgram.simpleInformation .simpleImage .controller button {
  display: block;
  position: absolute;
  bottom: 0;
  width: 50px;
  height: 50px;
  background: #fff;
  border: 1px solid #e8eaf7;
  border-radius: 25px;
  box-shadow: 0 9px 20px rgba(31, 40, 99, 0.05);
}
.program .viewProgram.simpleInformation .simpleImage .controller button::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 13px;
  height: 9px;
  margin: auto;
  background: url(../images/program/icon-program.png) no-repeat -294px 0;
}
.program .viewProgram.simpleInformation .simpleImage .controller button.prev {
  right: 42px;
  transform: rotate(90deg);
}
.program .viewProgram.simpleInformation .simpleImage .controller button.next {
  right: 0;
  transform: rotate(270deg);
}
.program .viewProgram.detailInformation {
  display: flex;
  margin: 40px 0 0;
  padding: 50px;
  border: 1px solid #ccc;
  border-radius: 28px;
}
.program .viewProgram.detailInformation .infoTab {
  flex: 0 0 calc(100% - 460px - 100px);
  margin: 0 100px 0 0;
}
.program .viewProgram.detailInformation .infoTab .itemWrap + .linkGroup {
  display: none;
}
.program .viewProgram.detailInformation .infoTab .tabButton {
  display: flex;
  justify-content: flex-start;
  position: relative;
}
.program .viewProgram.detailInformation .infoTab .tabButton::before {
  display: block;
  position: absolute;
  left: 0;
  bottom: 2px;
  width: 100%;
  height: 1px;
  background: #d4d4d4;
}
.program .viewProgram.detailInformation .infoTab .tabButton button, .program .viewProgram.detailInformation .infoTab .tabButton a {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  height: 80px;
  padding: 0 20px;
  background: none;
  border: none;
}
.program .viewProgram.detailInformation .infoTab .tabButton button span, .program .viewProgram.detailInformation .infoTab .tabButton a span {
  display: block;
  color: #808080;
  font-size: 21px;
  font-weight: 600;
  line-height: 23px;
}
.program .viewProgram.detailInformation .infoTab .tabButton button.current span, .program .viewProgram.detailInformation .infoTab .tabButton a.current span {
  color: #009991;
}
.program .viewProgram.detailInformation .infoTab .tabButton button.current::before, .program .viewProgram.detailInformation .infoTab .tabButton a.current::before {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 5px;
  background: #009991;
  border-radius: 3px;
}
.program .viewProgram.detailInformation .infoTab h4 {
  margin: 80px 0 28px;
  padding: 0 0 27px;
  border-bottom: 2px solid #1f1f1f;
}
.program .viewProgram.detailInformation .infoTab h4.noLine {
  margin: 50px 0 0;
  border-bottom: none;
}
.program .viewProgram.detailInformation .infoTab .locationTitle {
  display: block;
  position: relative;
  margin: 0 0 15px;
  padding: 0 0 0 33px;
  color: #000;
  font-size: 20px;
  font-weight: 600;
  line-height: 22px;
}
.program .viewProgram.detailInformation .infoTab .locationTitle::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  background: url(../images/program/icon-program.png) no-repeat -176px 0;
}
.program .viewProgram.detailInformation .infoTab .locationInformation {
  position: relative;
  padding: 0 130px 0 0;
}
.program .viewProgram.detailInformation .infoTab .locationInformation li {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin: 9px 0 0;
}
.program .viewProgram.detailInformation .infoTab .locationInformation li:first-child {
  margin: 0;
}
.program .viewProgram.detailInformation .infoTab .locationInformation .locationInformationTitle {
  flex: 0 0 110px;
  position: relative;
  padding: 0 0 0 20px;
  color: #515862;
  font-weight: 600;
}
.program .viewProgram.detailInformation .infoTab .locationInformation .locationInformationTitle::before {
  display: block;
  position: absolute;
  top: 7px;
  left: 0;
  width: 5px;
  height: 5px;
  background: #4d4d4d;
  border-radius: 50%;
}
.program .viewProgram.detailInformation .infoTab .locationInformation .locationInformationText {
  flex: 0 0 calc(100% - 110px);
  color: #515862;
}
.program .viewProgram.detailInformation .infoTab .locationInformation .mapLink {
  display: flex;
  align-items: center;
  position: absolute;
  top: 0;
  right: 0;
  height: 48px;
  padding: 0 20px;
  background: #fff;
  border: 1px solid #757b8e;
  border-radius: 8px;
  color: #515862;
}
.program .viewProgram.detailInformation .infoTab .locationInformation .mapLink::before {
  display: block;
  width: 16px;
  height: 16px;
  margin: 0 8px 0 0;
  background: url(../images/program/icon-program.png) no-repeat -474px 0;
}
.program .viewProgram.detailInformation .infoTab .locationMap {
  width: 100%;
  height: 500px;
  margin: 30px 0 0;
  border: 1px solid #ccc;
  border-radius: 16px;
}
.program .viewProgram.detailInformation .infoTab .locationMap #map {
  width: 100%;
  height: 100%;
}
.program .viewProgram.detailInformation .infoState {
  flex: 0 0 460px;
}
.program .viewProgram.detailInformation .infoState .programCalendar {
  margin: 0 0 40px;
}
.program .viewProgram.detailInformation .infoState .programCalendar .calendar .calendarHeader {
  height: 65px;
  padding: 30px 75px 0;
  border-bottom: none;
}
.program .viewProgram.detailInformation .infoState .programCalendar .calendar .calendarHeader .prevButton, .program .viewProgram.detailInformation .infoState .programCalendar .calendar .calendarHeader .nextButton {
  top: 25px;
}
.program .viewProgram.detailInformation .infoState .programCalendar .calendar .calendarBody {
  padding: 15px 0;
}
.program .viewProgram.detailInformation .infoState .programCalendar .calendar .calendarBody .day .viewDay {
  width: 58px;
}
.program .viewProgram.detailInformation .infoState .shortLink .stateType {
  display: inline-block;
}
.program .viewProgram.detailInformation .infoState .shortLink strong {
  display: block;
  margin: 20px 0 35px;
  color: #1f1f1f;
  font-size: 24px;
  font-weight: 600;
  line-height: 26px;
}
.program .viewProgram.detailInformation .infoState .shortLink .linkGroup .anchorButton {
  padding: 13px 15px 0;
}
.program .viewProgram.detailInformation .infoState .shortLink .linkGroup .anchorButton.wide {
  padding: 13px 25px 0;
}

.eventSelectMonth {
  display: flex;
  align-items: center;
  position: relative;
  height: 100px;
  margin: 60px 0 0;
  padding: 1px 260px;
  background: linear-gradient(145deg, #f4f7fb 0%, #f3f9f4 74%);
  border-radius: 16px;
}
.eventSelectMonth::before, .eventSelectMonth::after {
  display: block;
  position: absolute;
  top: 50%;
  width: 1px;
  height: 20px;
  background: #d4d4d4;
  transform: translateY(-50%);
}
.eventSelectMonth::before {
  left: 230px;
}
.eventSelectMonth::after {
  right: 230px;
}
.eventSelectMonth a {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex: 0 0 calc((100% - 200px) / 10);
  height: 100%;
  text-align: center;
}
.eventSelectMonth a.current {
  display: block;
  flex: 0 0 200px;
  height: 120px;
  margin: -20px 0 0;
  padding: 30px 0 0;
  background: linear-gradient(120deg, #42c0a7 0%, #009f99 74%);
  border-radius: 100px 100px 0 0;
  color: #fff;
}
.eventSelectMonth a.current em {
  font-size: 16px;
  line-height: 18px;
}
.eventSelectMonth a.current span {
  flex: 0 0 100%;
  display: block;
  margin: 15px 0 0;
  font-size: 32px;
  font-weight: 600;
  line-height: 34px;
}
.eventSelectMonth .moveMonth {
  display: block;
  position: absolute;
  top: 37px;
  width: 90px;
  height: 24px;
  color: #1f1f1f;
  font-size: 20px;
  font-weight: 600;
  line-height: 22px;
}
.eventSelectMonth .moveMonth::before {
  display: block;
  position: absolute;
  top: 3px;
  width: 10px;
  height: 17px;
  background: url(../images/program/icon-program.png) no-repeat -243px 0;
}
.eventSelectMonth .moveMonth.prev {
  left: 100px;
  padding: 0 0 0 30px;
}
.eventSelectMonth .moveMonth.prev::before {
  left: 0;
}
.eventSelectMonth .moveMonth.next {
  right: 100px;
  padding: 0 30px 0 0;
}
.eventSelectMonth .moveMonth.next::before {
  right: 0;
  transform: rotate(180deg);
}

.tab-eventList {
  display: block;
  width: 100%;
  margin: 60px 0 0;
}
.tab-eventList ul {
  display: flex;
  align-items: flex-start;
}
.tab-eventList li {
  flex: 0 0 20%;
}
.tab-eventList button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 56px;
  padding: 0 0 4px;
  border: 1px solid #ccc;
  border-bottom-color: #009991;
  border-radius: 8px 8px 0 0;
  color: #515862;
}
.tab-eventList button.current {
  border-color: #009991;
  border-bottom-color: #fff;
  color: #009991;
}

.modalShow {
  overflow: hidden;
}
.modalShow::after {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
}

.programModal {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 1;
  width: 94%;
  height: auto;
  max-width: 490px;
  background: #fff;
  border-radius: 16px;
  transform: translate(-50%, -50%);
}
.programModal.show {
  display: block;
}
.programModal .modalHeader {
  height: 70px;
  margin: -1px 0 0;
  padding: 27px 51px 0 30px;
  background: #009991;
  border-radius: 16px 16px 0 0;
  color: #fff;
}
.programModal .modalHeader strong {
  display: block;
  color: #fff;
  font-family: SB;
  font-size: 20px;
  font-weight: 400;
  line-height: 24px;
}
.programModal .modalBody {
  padding: 30px;
  background: #f5f8fa;
  text-align: left;
}
.programModal .modalBody.alignCenter {
  text-align: center;
}
.programModal .modalBody .iconModal {
  display: block;
  position: relative;
  width: 120px;
  height: 120px;
  margin: 0 auto 15px;
  background: #fff;
  border-radius: 50%;
}
.programModal .modalBody .iconModal::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  background-repeat: no-repeat;
  background-position: 0 0;
}
.programModal .modalBody .iconModal.confirm::before {
  width: 63px;
  height: 62px;
  background-image: url(../images/program/image-confirm.png);
}
.programModal .modalBody .iconModal.cancel::before {
  width: 63px;
  height: 62px;
  background-image: url(../images/program/image-cancel.png);
}
.programModal .modalBody .confirmText {
  color: #515862;
  font-size: 20px;
  font-weight: 600;
  line-height: 22px;
}
.programModal .modalBody .modalSubTitle {
  color: #515862;
}
.programModal .modalBody p {
  margin: 15px 0 0;
  color: #515862;
  line-height: 21px;
}
.programModal .modalBody2 {
  padding: 30px 30px 0;
  background: #fff;
}
.programModal .modalBody2 .modalSubTitle {
  display: block;
  position: relative;
  padding: 0 0 0 16px;
  color: #1f1f1f;
  font-size: 19px;
  font-weight: 600;
  line-height: 21px;
}
.programModal .modalBody2 .modalSubTitle::before {
  display: block;
  position: absolute;
  top: 9px;
  left: 0;
  width: 6px;
  height: 6px;
  background: #009991;
  border-radius: 3px;
}
.programModal .modalFooter {
  padding: 40px 0;
  text-align: center;
}
.programModal .modalFooter .iconText {
  display: inline-block;
  width: auto;
}
.programModal .modalFooter .formButtonGroup {
  margin: 0;
}
.programModal .modalFooter * + .formButtonGroup {
  margin: 30px 0 0;
}
.programModal .modalBody2 + .modalFooter {
  padding: 20px 0 40px;
}
.programModal .modalCloseButton {
  display: block;
  position: absolute;
  top: 27px;
  right: 27px;
  width: 24px;
  height: 24px;
  background: none;
  border: none;
}
.programModal .modalCloseButton::before, .programModal .modalCloseButton::after {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 16px;
  height: 2px;
  margin: auto;
  background: #fff;
  border-radius: 2px;
}
.programModal .modalCloseButton::before {
  transform: rotate(45deg);
}
.programModal .modalCloseButton::after {
  transform: rotate(135deg);
}
.sitemap_box .sm2depth {
  display: flex;
  flex-wrap: wrap;
  width: calc(100% + 30px);
  margin: 0 0 0 -30px;
}
.sitemap_box .sm2depth > li {
  flex: 0 0 calc(25% - 30px);
  margin: 0 0 0 30px;
}

.login {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #f9fafc;
  font-family: SB;
}
.login .login-link-index {
  display: block;
  position: absolute;
  top: 50px;
  left: 0;
  right: 0;
  height: 180px;
}
.login .loginBg .circle {
  position: fixed;
  width: 1000px;
  height: 1000px;
  border-radius: 50%;
}
.login .loginBg .colorGreen {
  top: -519px;
  left: -175px;
  background: linear-gradient(360deg, #eff7ed 0%, #f9fafc 74%);
}
.login .loginBg .colorBlue {
  top: -548px;
  right: -400px;
  width: 800px;
  height: 800px;
  background: linear-gradient(360deg, #e9ebfc 0%, #f9fafc 74%);
}
.login .loginBg .colorOrange {
  right: 10px;
  bottom: -600px;
  background: linear-gradient(180deg, #f8eeed 0%, #f9fafc 74%);
}
.login.modalShow::after {
  z-index: 1;
}
.login .programModal {
  z-index: 2;
}
.login main {
  position: relative;
  z-index: 1;
  padding: 55px 0;
  text-align: center;
}
.login h2 {
  display: block;
  width: 283px;
  height: 38px;
  margin: 0 auto 25px;
  background: url(../images/program/logo-original.png) no-repeat 0 0;
  background-size: 100% auto;
}
.login .iconText.caution {
  padding: 3px 0 0 20px;
}
.login .loginTitle {
  display: block;
  margin: 0 0 20px;
  color: #1d2845;
  font-size: 43px;
  font-weight: 700;
  line-height: 45px;
}
.login .loginText {
  color: #4d4d4d;
  font-size: 17px;
  line-height: 25px;
}
.login .loginType {
  display: flex;
  width: 870px;
  margin: 75px auto 10px;
}
.login .loginType li {
  flex: 0 0 calc(50% - 15px);
  position: relative;
  margin: 0 0 0 15px;
  padding: 73px 70px 38px;
  background: #fff;
  border-radius: 30px;
  box-shadow: 0 10px 20px rgba(55, 104, 171, 0.08);
}
.login .loginType li::before {
  display: block;
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  width: 80px;
  height: 80px;
  margin: 0 auto;
  background: linear-gradient(120deg, #42c0a7 0%, #009f99 74%);
  border-radius: 50%;
  box-shadow: 0 10px 20px rgba(55, 104, 171, 0.08);
}
.login .loginType li::after {
  display: block;
  position: absolute;
  top: -18px;
  left: 0;
  right: 0;
  width: 37px;
  height: 35px;
  margin: 0 auto;
  background: url(../images/program/image-login2.png) no-repeat 0 0;
  background-size: 100% auto;
}
.login .loginType li:first-child {
  margin: 0 15px 0 0;
}
.login .loginType li:first-child::after {
  top: -20px;
  width: 35px;
  height: 42px;
  background-image: url(../images/program/image-login1.png);
}
.login .loginType li strong {
  display: block;
  margin: 0 0 18px;
  font-size: 24px;
  font-weight: 500;
  line-height: 26px;
}
.login .loginType li p {
  color: #7c7c7c;
  font-size: 16px;
  line-height: 24px;
}
.login .loginType li .loginButton {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 200px;
  height: 60px;
  margin: 23px auto 0;
  background: #4a4f66;
  border: none;
  border-radius: 30px;
  color: #fff;
  font-size: 16px;
  line-height: 18px;
}
.login .loginType li .loginButton::after {
  display: block;
  width: 8px;
  height: 12px;
  margin: 0 0 0 14px;
  background: url(../images/program/icon-program.png) no-repeat -436px 0;
}
.login .snsLogin {
  width: 870px;
  margin: 25px auto 0;
  padding: 35px 60px;
  background: #fff;
  border-radius: 30px;
  box-shadow: 0 10px 20px rgba(55, 104, 171, 0.08);
  text-align: left;
}
.login .snsLogin strong {
  display: block;
  margin: 0 0 15px;
  font-size: 24px;
  font-weight: 500;
  line-height: 26px;
}
.login .snsLogin .text {
  margin: 0 0 20px;
  color: #707070;
  font-size: 16px;
  line-height: 20px;
}
.login .snsLogin .text li {
  position: relative;
  padding: 0 0 0 34px;
}
.login .snsLogin .text li::before {
  display: block;
  position: absolute;
  top: 8px;
  left: 0;
  width: 8px;
  height: 1px;
  background: #707070;
}
.login .snsLogin .link {
  display: flex;
}
.login .snsLogin .link li {
  flex: 0 0 calc(50% - 5px);
  margin: 0 0 0 5px;
}
.login .snsLogin .link li button {
  display: block;
  position: relative;
  width: 100%;
  height: auto;
  padding: 20px 50px 18px 80px;
  background: #00cf5d;
  border: none;
  border-radius: 10px;
  color: #fff;
  font-size: 18px;
  line-height: 20px;
}
.login .snsLogin .link li button::before, .login .snsLogin .link li button::after {
  display: block;
  position: absolute;
}
.login .snsLogin .link li button::before {
  top: 20px;
  left: 25px;
  width: 37px;
  height: 20px;
  background: url(../images/program/icon-sns2.gif) no-repeat 0 0;
}
.login .snsLogin .link li button::after {
  top: 22px;
  right: 30px;
  width: 8px;
  height: 12px;
  margin: 0 0 0 14px;
  background: url(../images/program/icon-program.png) no-repeat -436px 0;
}
.login .snsLogin .link li:first-child {
  margin: 0 5px 0 0;
}
.login .snsLogin .link li:first-child button {
  background: #feeb00;
  color: #000;
}
.login .snsLogin .link li:first-child button::before {
  background-image: url(../images/program/icon-sns1.gif);
}
.login .programModal {
  max-width: 750px;
}
.login .programModal .modalBody {
  padding: 1px 0 0;
  text-align: left;
}
.login .programModal .modalBody .modalLoginText {
  margin: 30px 30px 0;
}
.login .programModal .modalBody .modalAgreeBox {
  display: flex;
  flex-wrap: wrap;
  margin: 30px 0 0;
  padding: 30px 30px 0;
  background: #fff;
}
.login .programModal .modalBody .modalAgreeBox .agreeTitle {
  font-size: 20px;
  font-weight: 500;
  line-height: 22px;
}
.login .programModal .modalBody .modalAgreeBox .formGroup {
  flex: 0 0 calc(100% - 315px);
  margin: 0 0 0 15px;
  text-align: right;
}
.login .programModal .modalBody .modalAgreeBox .customRadioButton .customStyle {
  height: 22px;
  padding: 3px 0 0 30px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation {
  flex: 0 0 100%;
  margin: 26px 0 0;
  padding: 30px 0 30px 30px;
  border: 1px solid #ccc;
  border-radius: 10px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox {
  height: 195px;
  padding: 0 20px 0 0;
  overflow: hidden;
  overflow-y: auto;
  color: #515862;
  font-size: 17px;
  line-height: 23px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox p {
  margin: 0 0 15px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox li {
  position: relative;
  padding: 0 0 0 16px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox li::before {
  display: block;
  position: absolute;
  left: 0;
  width: 4px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox ul ul {
  margin: 5px 0 0;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox ul li {
  margin: 12px 0 0 15px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox ul li:first-child {
  margin: 0 0 0 15px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox ul li:before {
  top: 8px;
  height: 4px;
  background: #4d4d4d;
  border-radius: 2px;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox ul li li {
  margin: 5px 0 0;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox ul li li:first-child {
  margin: 0;
}
.login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox ul li li::before {
  top: 9px;
  height: 2px;
  background: #4d4d4d;
  border-radius: 2px;
}
.login .programModal .modalFooter {
  display: flex;
  justify-content: center;
  align-items: center;
}
.login .programModal .modalFooter .loginModalButton {
  flex: 0 0 250px;
  position: relative;
  width: 250px;
  height: 60px;
  background: #4a4f66;
  border: none;
  border-radius: 30px;
  color: #fff;
}
.login .programModal .modalFooter .loginModalButton::before, .login .programModal .modalFooter .loginModalButton::after {
  display: block;
  position: absolute;
}
.login .programModal .modalFooter .loginModalButton::before {
  top: 16px;
  left: 25px;
  width: 25px;
  height: 30px;
  background: url(../images/program/image-login1.png) no-repeat 0 0;
  background-size: 100% auto;
}
.login .programModal .modalFooter .loginModalButton::after {
  top: 22px;
  right: 30px;
  width: 8px;
  height: 12px;
  margin: 0 0 0 14px;
  background: url(../images/program/icon-program.png) no-repeat -436px 0;
}
.login .programModal .modalFooter .loginModalButton + .loginModalButton {
  margin: 0 0 0 10px;
}
.login .programModal .modalFooter .loginModalButton.ipin::before {
  top: 17px;
  width: 24px;
  height: 23px;
  background-image: url(../images/program/image-login2.png);
}
.login.activeContrast {
  background: #0a0e11;
}
.login.activeContrast .loginBg .colorGreen {
  background: linear-gradient(360deg, #172218 0%, #0b1012 74%);
}
.login.activeContrast .loginBg .colorBlue {
  background: linear-gradient(360deg, #101426 0%, #0b0f15 74%);
}
.login.activeContrast .loginBg .colorOrange {
  background: linear-gradient(180deg, #221d1e 0%, #0c0f12 74%);
}
.login.activeContrast h2 {
  background-image: url(../images/program/logo-white.png);
}
.login.activeContrast .loginTitle {
  color: #fff;
}
.login.activeContrast .loginText {
  color: #bdc5d5;
}
.login.activeContrast .loginType li {
  background: rgba(29, 33, 36, 0.7);
}
.login.activeContrast .loginType li strong {
  color: #fff;
}
.login.activeContrast .loginType li p {
  color: #bdc5d5;
}
.login.activeContrast .iconText {
  color: #bdc5d5;
}
.login.activeContrast .snsLogin {
  background: rgba(29, 33, 36, 0.7);
}
.login.activeContrast .snsLogin strong {
  color: #fff;
}
.login.activeContrast .snsLogin .text {
  color: #bdc5d5;
}
.login.activeContrast .programModal .modalBody .modalAgreeBox {
  background: #000;
}
.login.activeContrast .programModal .modalBody .modalAgreeBox .agreeExplanation {
  border-color: #4a4c58;
}
.login.activeContrast .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox {
  color: #bdc5d5;
}

.activeContrast .programModal .modalBody {
  background: #1d2124;
  color: #fff;
}
.activeContrast .programModal .modalFooter {
  background: #000;
}

.slick-list {
  display: flex;
  flex: 0 0 100%;
  width: 100%;
}

.slick-track {
  display: flex;
  flex: 0 0 100%;
  width: 100% !important;
}

@media all and (min-width: 1001px) {
  .formButtonGroup .button:hover {
    background: #009991;
    color: #fff;
  }
  .formButtonGroup .button:hover.previous::before {
    background-position: -317px -26px;
  }
  .formButtonGroup .button:hover.next::after {
    background-position: -317px -26px;
  }
  .programCalendar .calendar .calendarBody .day button:hover {
    border-color: #009991;
  }
  .program .viewProgram .anchorButton:hover {
    border-color: #7f858c;
  }
  .program .viewProgram .anchorButton.line-color-green:hover {
    background: #009991;
    border-color: #009991;
    color: #fff;
  }
  .program .viewProgram.detailInformation .infoTab .tabButton button:hover span {
    color: #009991;
  }
  .tab-eventList button:hover {
    color: #009991;
    font-weight: 600;
  }
  .tab-eventList button.current:hover {
    font-weight: 500;
  }
}
@media all and (max-width: 1600px) {
  .programSearch .searchFormWrap.default {
    padding: 30px 30px 125px;
  }
  .programSearch .searchFormWrap.default .formElement > label {
    flex: 0 0 auto;
  }
  .programSearch .searchFormWrap.detail {
    padding: 60px 30px 125px;
  }
  .programSearch.showDetail .searchFormWrap.default {
    padding: 30px;
  }
  .programSearch .formElement.widthWide {
    flex: 0 0 auto;
  }
  .programSearch .formElement .customInputDefault[type=text] {
    flex: 0 0 100%;
    width: 100%;
  }
}
@media all and (max-width: 1480px) {
  .dataList-program .listWrap.thumbnail .option {
    flex-wrap: wrap;
    width: calc(100% - 60px);
  }
  .dataList-program .listWrap.thumbnail .option .organ {
    flex: 0 0 calc(100% - 80px);
    width: calc(100% - 80px);
  }
}
@media all and (max-width: 1400px) {
  .program .viewProgram.simpleInformation {
    justify-content: flex-end;
    flex-wrap: wrap;
    height: auto;
  }
  .program .viewProgram.simpleInformation::before {
    bottom: initial;
    height: 320px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea {
    flex: 0 0 100%;
    width: 100%;
    padding: 65px 0 0 30px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea .title .stateType {
    position: static;
    margin: 0 0 15px;
  }
  .program .viewProgram.simpleInformation .simpleImage {
    margin: -100px 0 0;
  }
  .dataList-program .listWrap.thumbnail .option {
    padding: 0;
  }
  .dataList-program .listWrap.thumbnail .option .stateType {
    flex: 0 0 70px;
    width: 70px;
    text-align: center;
  }
  .dataList-program .listWrap.thumbnail .option .organ {
    flex: 0 0 100%;
    width: 100%;
    max-width: initial;
    margin: 5px 0 0;
  }
  .dataList-program .listWrap.thumbnail .option .pay {
    top: 0;
  }
}
@media all and (max-width: 1360px) {
  .programSearch .customIconOption {
    flex: 0 0 calc(12.5% - 8px);
  }
  .programSearch .customIconOption .optionIcon {
    margin: 0 5px 0 0;
  }
  .programSearch .defaultFormWrap .formElement .customSelect {
    flex: 0 0 100%;
    width: 100%;
  }
  .programSearch .defaultFormWrap .formElement .customInputDefault[type=text] {
    max-width: initial;
  }
  .programSearch .defaultFormWrap .formElement.widthWide {
    flex: 0 0 calc(65% - 15px);
    width: calc(65% - 15px);
    margin: 0 0 0 15px;
  }
  .programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement {
    flex: 0 0 27%;
  }
  .programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement .customSelect {
    flex: 0 0 100%;
    width: 100%;
  }
  .programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement.elementCount2 {
    flex: 0 0 calc(46% - 40px);
    margin: 0 20px;
  }
  .programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement.elementCount2 .customSelect {
    flex: 0 0 calc(50% - 4px);
    width: calc(50% - 4px);
  }
  .programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement.elementCount2 .customSelect .customSelect {
    width: 100%;
  }
  .programSearch .searchFormWrap .selectElementGroup.eduGroup {
    flex: 0 0 calc(100% + 20px);
    margin: 0 0 0 -20px;
  }
  .programSearch .searchFormWrap .selectElementGroup.eduGroup .formElement {
    flex: 0 0 calc(20% - 20px);
    margin: 0 0 0 20px;
  }
  .programSearch .searchFormWrap .selectElementGroup.eduGroup .formElement .customSelect {
    flex: 0 0 100%;
    width: 100%;
  }
  .programSearch .searchFormWrap .selectElementGroup.eduGroup .formElement.elementCount2 {
    flex: 0 0 calc(40% - 20px);
  }
  .programSearch .searchFormWrap .selectElementGroup.eduGroup .formElement.elementCount2 .customSelect {
    flex: 0 0 calc(50% - 4px);
    width: calc(50% - 4px);
  }
  .programSearch .searchFormWrap .selectElementGroup.eduGroup .formElement.elementCount2 .customSelect .customSelect {
    width: 100%;
  }
  .programSearch .searchFormWrap .formElement > label, .programSearch .searchFormWrap .formElement > .formElement-label {
    flex: 0 0 100%;
    height: auto;
    margin: 0 0 10px;
    text-align: left;
  }
  .programSearch .searchFormWrap.default .formElement {
    flex-wrap: wrap;
  }
  .programSearch .searchFormWrap.default .formElement > label, .programSearch .searchFormWrap.default .formElement > .formElement-label {
    flex: 0 0 100%;
    height: auto;
    margin: 0 0 5px;
    text-align: left;
  }
  .programSearch .searchFormWrap.detail {
    justify-content: center;
  }
  .programSearch .searchFormWrap.detail .formElement {
    flex-wrap: wrap;
  }
  .programSearch .searchFormWrap.detail .formElement > label, .programSearch .searchFormWrap.detail .formElement > .formElement-label {
    flex: 0 0 100%;
    height: auto;
    margin: 0 0 10px;
    text-align: left;
  }
  .programSearch .searchFormWrap.detail.srcEdu .formElement > label, .programSearch .searchFormWrap.detail.srcEdu .formElement > .formElement-label {
    flex: 0 0 100%;
    height: auto;
    margin: 0 0 5px;
    text-align: left;
  }
}
@media all and (max-width: 1320px) {
  .program .viewProgram.detailInformation {
    padding: 30px;
  }
  .program .viewProgram.detailInformation .infoTab {
    flex: 0 0 calc(100% - 460px - 40px);
    margin: 0 40px 0 0;
  }
}
@media all and (max-width: 1300px) {
  .dataList-program .listWrap.thumbnail.eventList > ul > li {
    flex: 0 0 calc(25% - 20px);
    width: calc(25% - 20px);
  }
}
@media all and (max-width: 1260px) {
  .program .viewProgram.simpleInformation::before {
    height: 250px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea {
    padding: 95px 0 0 30px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea .title {
    display: flex;
    align-items: center;
  }
  .program .viewProgram.simpleInformation .simpleTextArea .title .stateType {
    height: auto;
    margin: 0 10px 0 0;
    padding: 8px 5px 10px 5px;
    border-radius: 10px;
  }
  .program .viewProgram.simpleInformation .simpleImage {
    margin: -60px 0 0;
  }
}
@media all and (max-width: 1200px) {
  .program .viewProgram.simpleInformation::before {
    right: 100px;
    height: 360px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea {
    flex: 0 0 calc(100% - 130px);
    width: calc(100% - 130px);
    margin: 0 130px 0 0;
    padding: 130px 0 0 30px;
  }
  .program .viewProgram.simpleInformation .simpleImage {
    margin: 50px 0 0;
  }
  .programSearch .customIconOption, .programSearch .customIconOption:first-child {
    margin: 0 0 8px 8px;
  }
  .dataList-program .listWrap.thumbnail .image {
    margin: 0 0 10px;
  }
  .dataList-program .listWrap.thumbnail .option {
    width: calc(100% - 30px);
    margin: 0 15px 10px;
  }
  .dataList-program .listWrap.thumbnail .title {
    margin: 0 15px 10px;
  }
  .dataList-program .listWrap.thumbnail .prgInformation {
    margin: 0 15px;
  }
  .dataList-program .listWrap.detail table thead th {
    white-space: nowrap;
  }
  .dataList-program .listWrap.detail table tbody td {
    white-space: nowrap;
  }
  .dataList-program .listWrap.detail table .titleArea {
    padding: 0 20px 0 0;
  }
  .dataList-program .listWrap.detail table .programDetailInformation {
    flex-wrap: nowrap;
  }
  .eventSelectMonth {
    padding: 1px 140px;
  }
  .eventSelectMonth::before {
    left: 130px;
  }
  .eventSelectMonth::after {
    right: 130px;
  }
  .eventSelectMonth .moveMonth.prev {
    left: 15px;
  }
  .eventSelectMonth .moveMonth.next {
    right: 15px;
  }
}
@media all and (max-width: 1100px) {
  .programSearch .formElement-selectGroup {
    flex-wrap: wrap;
  }
  .programSearch .customIconOption {
    flex: 0 0 calc(16.6666666667% - 8px);
  }
}
@media all and (max-width: 1040px) {
  .program .viewProgram.detailInformation {
    flex-wrap: wrap;
  }
  .program .viewProgram.detailInformation .infoTab {
    flex: 0 0 100%;
    margin: 0;
  }
  .program .viewProgram.detailInformation .infoState {
    order: -1;
  }
  .program .viewProgram.detailInformation .infoState .shortLink {
    display: none;
  }
  .program .viewProgram.detailInformation .infoTab .itemWrap + .linkGroup {
    display: flex;
  }
}
@media all and (max-width: 1000px) {
  .customSelect, .customInputDefault, .customInputDefault[type=text] {
    height: 38px;
  }
  .customRadioButton .customStyle {
    padding: 2px 0 0 26px;
  }
  .customSelect *, .customInputDefault *, .customInputDefault[type=text] * {
    height: 38px;
  }
  .customCheckBox .customStyle span {
    font-size: 14px;
    line-height: 16px;
  }
  .addressForm .searchAddress::after {
    margin: 8px 0 0 8px;
  }
  .addressForm .searchAddress span {
    margin: 10px 0 0;
  }
  /*.pagination-default{
      a{padding:10px 0 0;font-size:14px;line-height:16px;}
  }*/
  .editFormPayWrap .payButton {
    padding: 8px 10px 9px;
  }
  .tabButtons {
    margin: 0;
  }
  .programTitle {
    margin: 25px 0;
    padding: 10px 10px 20px;
    border-radius: 15px;
  }
  .programTitle .stateType {
    font-size: 14px;
    line-height: 16px;
  }
  .programTitle strong {
    margin: 10px 0 0;
    font-size: 18px;
    line-height: 20px;
  }
  .privacyAgreement .agreeExplanation .agreeInnerBox {
    margin: 15px;
  }
  .privacyAgreement .agreeBox .agreeTitle {
    font-size: 16px;
    line-height: 18px;
  }
  .formButtonGroup {
    margin: 20px 0 0;
  }
  .formButtonGroup .button {
    padding: 10px 14px 12px;
    font-size: 15px;
    line-height: 17px;
  }
  .program .programInformation {
    padding: 10px;
  }
  .program .programInformation ul {
    flex-wrap: wrap;
  }
  .program .programInformation ul li {
    flex: 0 0 calc(50% - 20px);
    margin: 10px;
    padding: 14px 10px;
    border-radius: 10px;
  }
  .program .programInformation p {
    font-size: 14px;
    line-height: 16px;
  }
  .program .address .addressSearch {
    flex: 0 0 calc(100% - 100px);
  }
  .program .address .addressSearchButton {
    flex: 0 0 90px;
    height: 38px;
  }
  .program .address .addressSearchButton::after {
    margin: 0 0 0 5px;
  }
  .program .programAmount {
    padding: 15px;
  }
  .program .programAmount .innerWrap {
    padding: 15px;
  }
  .program .programAmount .sumAmount {
    font-size: 16px;
    line-height: 18px;
  }
  .program .viewProgram.detailInformation .infoTab .tabButton button {
    height: auto;
    padding: 20px;
  }
  .program .viewProgram.detailInformation .infoTab .tabButton button span {
    font-size: 16px;
    line-height: 18px;
  }
  .program .viewProgram.detailInformation .infoTab .locationTitle {
    padding: 1px 0 0 33px;
    font-size: 15px;
    line-height: 17px;
  }
  .programCalendar .calendar .calendarHeader strong {
    font-size: 16px;
    line-height: 18px;
  }
  .programCalendar .calendar .calendarBody .weekly li {
    font-size: 14px;
    line-height: 16px;
  }
  .programCalendar.timeSelect .calendar {
    flex: 0 0 calc(64% - 20px);
    margin: 0 10px;
  }
  .programCalendar.timeSelect .calendar .calendarHeader {
    height: 70px;
    padding: 25px 75px 0;
  }
  .programCalendar.timeSelect .calendar .calendarHeader .prevButton, .programCalendar.timeSelect .calendar .calendarHeader .nextButton {
    top: 0;
    bottom: 0;
    margin: auto 0;
  }
  .programCalendar.timeSelect .calendar .calendarBody .day button, .programCalendar.timeSelect .calendar .calendarBody .day .viewDay {
    width: 60px;
  }
  .programCalendar.timeSelect .time {
    flex: 0 0 calc(35% - 10px);
    margin: 0 10px 0 0;
  }
  .programCalendar.timeSelect .time .timeTitle {
    display: block;
    height: 70px;
    padding: 25px 0 0;
    text-align: right;
    font-size: 16px;
    line-height: 18px;
  }
  .programCalendar.timeSelect .time .timeList .reserveCountText {
    top: 0;
    right: 10px;
    bottom: 0;
    height: 16px;
    margin: auto 0;
  }
  .programCalendar.timeSelect .time .timeList .customCheckBox .customStyle {
    padding: 4px 0 0 30px;
  }
  .programCalendar .selectConfirm {
    padding: 20px 10px 10px 10px;
  }
  .programCalendar .selectConfirm strong {
    font-size: 16px;
    line-height: 20px;
  }
  .programCalendar .selectConfirm .title {
    font-size: 15px;
    line-height: 17px;
  }
  .programCalendar .selectConfirm li {
    padding: 15px;
  }
  .programCalendar .selectConfirm p {
    font-size: 14px;
    line-height: 16px;
  }
  .programSearch .customIconOption .optionWrap {
    height: 38px;
    padding: 0 10px 0 4px;
  }
  .programSearch .customIconOption em {
    margin: 0;
  }
  .programSearch .defaultFormWrap {
    flex: 0 0 100%;
    width: 100%;
  }
  .programSearch .searchFormWrap.default {
    padding: 15px 15px 95px;
  }
  .programSearch.showDetail .searchFormWrap.default {
    padding: 15px;
  }
  .programSearch.showDetail .searchFormWrap.detail {
    padding: 45px 15px 105px;
  }
  .programSearch .formButton {
    width: calc(100% - 30px);
    padding: 20px 0;
  }
  .programSearch .formButton .button {
    padding: 8px 0 10px;
    font-size: 14px;
    line-height: 16px;
  }
  .programSearch .detailCloseButton {
    right: 15px;
    bottom: 15px;
    font-size: 14px;
    line-height: 16px;
  }
  .programSearch .detailCloseButton::after {
    margin: 3px 0 0 10px;
  }
  .dataList-program .asideInformation {
    top: -4px;
  }
  .dataList-program .asideInformation .viewType {
    padding: 0 0 3px 20px;
    font-size: 15px;
    line-height: 17px;
  }
  .dataList-program .asideInformation .viewType::before {
    width: 12px;
    height: 12px;
    background-size: 360px auto;
  }
  .dataList-program .asideInformation .viewType.thumb::before {
    top: 8px;
    background-position: -54px 0;
  }
  .dataList-program .asideInformation .viewType.thumb.active::before {
    background-position: -54px -19px;
  }
  .dataList-program .asideInformation .viewType.detail::before {
    top: 9px;
    background-position: -73px 0;
  }
  .dataList-program .asideInformation .viewType.detail.active::before {
    background-position: -73px -19px;
  }
  .dataList-program .listWrap .dataCount {
    padding: 0 0 0 20px;
    font-size: 15px;
    line-height: 17px;
  }
  .dataList-program .listWrap .dataCount::before {
    top: 2px;
    width: 12px;
    height: 15px;
    background-size: 360px auto;
    background-position: -35px 0;
  }
  .dataList-program .listWrap .noData .noDataTitle {
    font-size: 16px;
    line-height: 18px;
  }
  .dataList-program .listWrap .noData .noDataTitle::before {
    width: 17px;
    height: 10px;
    margin: 0 0 10px 5px;
    background-size: 200px auto;
    background-position: -51px 0;
  }
  .dataList-program .listWrap.thumbnail > ul {
    width: calc(100% + 10px);
    margin: 20px 0 0 -10px;
  }
  .dataList-program .listWrap.thumbnail > ul > li {
    flex: 0 0 calc(25% - 10px);
    margin: 0 0 10px 10px;
  }
  .dataList-program .listWrap.thumbnail > ul > li.noDataList {
    flex: 0 0 calc(100% - 10px);
  }
  .dataList-program .listWrap.thumbnail .title {
    height: 40px;
    font-size: 16px;
    line-height: 20px;
  }
  .dataList-program .listWrap.thumbnail .prgInformation li {
    margin: 4px 0 0;
  }
  .dataList-program .listWrap.thumbnail.eventList > ul > li {
    flex: 0 0 calc(33.3333333333% - 20px);
    width: calc(33.3333333333% - 20px);
  }
  .dataList-program .listWrap.detail table {
    font-size: 14px;
    line-height: 16px;
  }
  .dataList-program .listWrap.detail table thead {
    display: none;
  }
  .dataList-program .listWrap.detail table thead th {
    font-size: 14px;
    line-height: 16px;
  }
  .dataList-program .listWrap.detail table {
    colgroup{display:none;}
  }
  .dataList-program .listWrap.detail table tbody {
    display: block;
    width: 100%;
  }
  .dataList-program .listWrap.detail table tbody tr {
    display: block;
    width: 100%;
    margin: 10px 0 0;
    padding: 15px 0;
  }
  .dataList-program .listWrap.detail table tbody tr:first-child {
    margin:0;
  }
  .dataList-program .listWrap.detail table tbody td {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 10px 0 0;
    padding: 5px 20px;
    text-align: left;
    white-space: wrap;
  }
  .dataList-program .listWrap.detail table tbody td:first-child {
    margin: 0;
  }
  .dataList-program .listWrap.detail table .trFullLink {
    top: 0;
  }
  .dataList-program .listWrap.detail table .titleArea::before {
    display: none;
  }
  .dataList-program .listWrap.detail table .titleArea {
    display: flex;
    flex-wrap: wrap;
    padding:0;
  }
  .dataList-program .listWrap.detail table .titleArea .mobile-th {
    flex:0 0 120px;
    display:block;
    margin:0 20px 5px 0;
    font-weight:700;
    text-align: right;
  }
  .dataList-program .listWrap.detail table tbody td .mobile-th {
    flex: 0 0 120px;
    display: block;
    margin: 0 20px 5px 0;
    font-weight: 700;
    text-align: right;
  }
  .dataList-program .listWrap.detail table .tableProgramTitle {
    flex:0 0 calc(100% - 140px);
    margin:0;
    padding:0 0 0 0;
    font-size: 15px;
    line-height: 19px;
  }
  .dataList-program .listWrap.detail table .programDetailInformation {
    flex:0 0 100%;
    margin: 0;
    padding: 0 0 0 140px;
    font-size: 14px;
    line-height: 16px;
    align-items: center;
    flex-wrap: wrap;
  }
  .dataList-program .listWrap.detail table .programDetailInformation span {
    white-space: nowrap;
  }
  .eventSelectMonth {
    justify-content: center;
    height: 60px;
    padding: 1px 110px;
  }
  .eventSelectMonth::before {
    left: 95px;
  }
  .eventSelectMonth::after {
    right: 95px;
  }
  .eventSelectMonth .moveMonth {
    top: 20px;
    width: 56px;
    height: 20px;
    padding: 0;
    font-size: 16px;
    line-height: 18px;
    text-align: left;
  }
  .eventSelectMonth .moveMonth::before {
    top: 6px;
    width: 5px;
    height: 9px;
    background-size: 250px auto;
    background-position: -124px 0;
  }
  .eventSelectMonth .moveMonth.prev {
    padding: 0 0 0 10px;
  }
  .eventSelectMonth .moveMonth.next {
    padding: 0 10px 0 0;
  }
  .eventSelectMonth a {
    flex: 0 0 calc((100% - 80px) / 10);
  }
  .eventSelectMonth a.current {
    flex: 0 0 80px;
    height: 70px;
    margin: -10px 0 0;
    padding: 20px 0 0;
  }
  .eventSelectMonth a.current em {
    font-size: 14px;
    line-height: 16px;
  }
  .eventSelectMonth a.current span {
    margin: 5px 0 0;
    font-size: 16px;
    line-height: 18px;
  }
  .login {
    overflow: visible;
  }
  .login h2 {
    width: 200px;
    height: 27px;
    margin: 0 auto 10px;
    background-size: 100% auto;
  }
  .login .loginTitle {
    margin: 0 0 8px;
    font-size: 20px;
    line-height: 22px;
  }
  .login .loginText {
    width: calc(100% - 30px);
    margin: 0 auto;
    font-size: 14px;
    line-height: 20px;
  }
  .login .loginType {
    width: calc(100% - 30px);
    max-width: 870px;
    margin: 55px auto 10px;
  }
  .login .loginType li {
    padding: 50px 30px 38px;
  }
  .login .loginType li::before {
    top: -30px;
    width: 60px;
    height: 60px;
  }
  .login .loginType li::after {
    top: -11px;
    width: 23px;
    height: 22px;
    background-size: 100% auto;
  }
  .login .loginType li:first-child::after {
    top: -15px;
    width: 25px;
    height: 30px;
  }
  .login .loginType li strong {
    font-size: 16px;
    line-height: 18px;
  }
  .login .loginType li p {
    font-size: 14px;
    line-height: 20px;
  }
  .login .loginType li .loginButton {
    width: 130px;
    height: 40px;
    font-size: 14px;
    line-height: 16px;
  }
  .login .loginType li .loginButton span {
    display: block;
    margin: 3px 0 0;
  }
  .login .iconText.caution {
    margin: 10px 15px 0;
  }
  .login .snsLogin {
    width: calc(100% - 30px);
    max-width: 870px;
  }
  .login .snsLogin strong {
    font-size: 20px;
    line-height: 22px;
  }
  .login .snsLogin .text {
    font-size: 14px;
    line-height: 16px;
  }
  .login .snsLogin .text li {
    margin: 0 0 10px;
    padding: 0 0 0 20px;
  }
  .login .snsLogin .text li::before {
    top: 5px;
  }
  .login .snsLogin .link li button {
    padding: 15px 50px 13px 80px;
    font-size: 14px;
    line-height: 16px;
  }
  .login .snsLogin .link li button::before {
    top: 13px;
    height: 17px;
  }
  .login .snsLogin .link li button::after {
    top: 16px;
    right: 20px;
  }
  .login .programModal .modalBody .modalAgreeBox .agreeTitle {
    font-size: 16px;
    line-height: 18px;
  }
  .login .programModal .modalBody .modalAgreeBox .agreeExplanation .agreeInnerBox {
    font-size: 14px;
    line-height: 18px;
  }
}
@media all and (max-width: 900px) {
  .tabButtons {
    padding: 20px;
  }
  .tab-eventList ul {
    padding: 18px 20px 20px 20px;
  }
  .tabButtons, .tab-eventList ul {
    flex-wrap: wrap;
    border: 1px solid #009991;
    border-radius: 8px;
  }
  .tabButtons::before, .tab-eventList ul::before {
    display: none;
  }
  .tabButtons li, .tab-eventList ul li {
    flex: 0 0 auto;
  }
  .tabButtons a, .tabButtons button, .tab-eventList ul a, .tab-eventList ul button {
    height: auto;
    padding: 5px 15px;
    border: none;
    white-space: nowrap;
  }
  .dataList-program .listWrap .noData::before {
    background-position: 50%;
    background-size: 100% auto;
  }
  .dataList-program .listWrap.thumbnail > ul > li {
    flex: 0 0 calc(33.3333333333% - 10px);
  }
  .dataList-program .listWrap.thumbnail.eventList .title {
    margin: 0 0 5px;
  }
  .dataList-program .listWrap.thumbnail.eventList .prgInformation {
    margin: 0 0 10px;
  }
}
@media all and (max-width: 800px) {
  /*.pagination-default{
      a{width:28px;height:28px;padding:4px 0 0;}
      .movePage{width:28px;height:28px;
          &::before{background-size:100% auto;}
          &.first::before,&.last::before{width:7px;height:7px;}
          &.prev::before,&.next::before{width:4px;height:8px;}
      }
  }*/
  .contactForm .customInputDefault {
    max-width: 80px;
  }
  .editFormPayWrap {
    flex-wrap: wrap;
  }
  .editFormPayWrap .payButton {
    margin: 10px 0 0;
  }
  .addressForm .inputAddress.simple {
    flex: 0 0 calc(100% - 100px);
  }
  .addressForm .searchAddress {
    flex: 0 0 90px;
  }
  .program .programInformation ul li {
    flex: 0 0 calc(100% - 20px);
  }
  .program .viewProgram.simpleInformation {
    justify-content: center;
  }
  .program .viewProgram.simpleInformation::before {
    top: 0;
    right: 0;
    bottom: 70px;
    height: auto;
    border-radius: 20px 20px 60px 200px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea {
    flex: 0 0 100%;
    width: 100%;
    margin: 0;
    padding: 40px 20px 0;
  }
  .program .viewProgram.simpleInformation .simpleTextArea .title .stateType {
    width: auto;
    padding: 4px 8px 5px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea .title strong {
    font-size: 16px;
    line-height: 18px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea .linkGroup {
    margin: 25px 0 0;
  }
  .program .viewProgram.simpleInformation .simpleImage {
    height: auto;
    margin: 40px 0 15px;
    padding: 0 0 26px;
  }
  .program .viewProgram .anchorButton {
    height: auto;
    padding: 6px 15px 8px;
    font-size: 14px;
    line-height: 16px;
  }
  .program .viewProgram .anchorButton.wide {
    padding: 6px 15px 8px;
  }
  .dataList-program .listWrap .noData {
    display: block;
    padding: 20px 0;
  }
  .dataList-program .listWrap .noData::before {
    width: 250px;
    height: 150px;
    margin: 0 auto;
  }
  .dataList-program .listWrap .noData .noData-innerWrap {
    width: 245px;
    margin: 5px auto 0;
  }
}
@media all and (max-width: 750px) {
  .programCalendar.timeSelect .calendar {
    flex: 0 0 calc(100% - 20px);
    width: calc(100% - 20px);
    max-width: calc(100% - 20px);
  }
  .programCalendar.timeSelect .time {
    flex: 0 0 calc(100% - 20px);
    height: auto;
    margin: 0 10px;
    padding: 1px 0 70px;
  }
  .programCalendar.timeSelect .time .timeTitle {
    text-align: center;
  }
  .programCalendar.timeSelect .time .timeScrollWrap {
    height: auto;
  }
  .programCalendar .selectConfirm ul {
    flex-wrap: wrap;
    width: 100%;
    margin: 0;
  }
  .programCalendar .selectConfirm li {
    flex: 0 0 100%;
    margin: 10px 0 0;
  }
  .programCalendar .selectConfirm li:first-child {
    margin: 0;
  }
  .privacyAgreement .agreeBox .formGroup {
    margin: 35px 0 0;
  }
  .privacyAgreement .agreeBox .agreeViewButton {
    top: 22px;
  }
}
@media all and (max-width: 700px) {
  .eventSelectMonth {
    flex-wrap: wrap;
    height: auto;
    padding: 15px;
  }
  .eventSelectMonth::before, .eventSelectMonth::after {
    display: none;
  }
  .eventSelectMonth .moveMonth {
    display: none;
  }
  .eventSelectMonth a {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    margin: 0 3px;
  }
  .eventSelectMonth a.current {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    margin: 0 3px;
    padding: 6px 0 0;
    border-radius: 50%;
  }
  .eventSelectMonth a.current em {
    display: none;
  }
  .eventSelectMonth a.current span {
    font-size: 14px;
    line-height: 16px;
  }
}
@media all and (max-width: 680px) {
  .programSearch .customIconOption {
    flex: 0 0 calc(25% - 8px);
  }
  .program .viewProgram.detailInformation .infoTab .itemWrap + .linkGroup .anchorButton.wide, .program .viewProgram.detailInformation .infoTab .itemWrap + .linkGroup .anchorButton {
    margin:10px 5px 0 0;
    padding:6px 5px 8px;
  }
}
@media all and (max-width: 640px) {
  .program .viewProgram.detailInformation {
    padding: 15px;
  }
  .program .viewProgram.detailInformation .infoState {
    width: 100%;
  }
  .program .viewProgram.detailInformation .infoState .programCalendar {
    border-radius: 20px;
  }
  .program .viewProgram.detailInformation .infoState .programCalendar .calendar .calendarHeader {
    padding: 30px 35px 0;
  }
  .program .viewProgram.detailInformation .infoState .programCalendar .calendar .calendarBody {
    padding: 0 0 15px;
  }
  .program .viewProgram.detailInformation .infoState .programCalendar .calendar .calendarBody .day .viewDay {
    width: 100%;
  }
  .program .viewProgram.detailInformation .infoTab .tabButton {
    display: none;
  }
  .program .viewProgram.detailInformation .infoTab .locationInformation {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    padding: 0;
  }
  .program .viewProgram.detailInformation .infoTab .locationInformation ul {
    flex: 0 0 100%;
    margin: 0 0 10px;
  }
  .program .viewProgram.detailInformation .infoTab .locationInformation .mapLink {
    display: inline-flex;
    position: static;
  }
  .program .viewProgram.detailInformation [data-content-key=tab1] h4.noLine {
    margin: 0;
  }
  .programCalendar .calendar.viewPlan {
    padding: 0 10px;
  }
  .programCalendar .calendar .calendarBody .weekly {
    width: 100%;
  }
  .programCalendar .calendar .calendarBody .scrollWrap-day {
    position: relative;
    width: 100%;
    overflow: hidden;
    /*&::before,&::after{display:block;opacity:0;position:absolute;top:0;bottom:0;z-index:1;width:50px;background:radial-gradient(circle at center, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0) 70%, rgba(0, 0, 0, 0) 100%);transition:opacity .3s ease;}
    &::before{left:-30px;}
    &::after{right:-30px;}
    &.is-start{
        &::after{opacity:1;}
    }
    &.is-middle{
        &::before,&::after{opacity:1;}
    }
    &.is-end{
        &::before{opacity:1;}
    }*/
  }
  .programCalendar .calendar .calendarBody .day {
    position: relative;
    transform: translateX(0);
    transition: transform 0.3s ease;
    width: 100%; /*overflow:hidden;overflow-x:auto;*/
  }
  .programCalendar .calendar .calendarBody .day .viewDay {
    width: 100%;
  }
  .dataList-program .listWrap.thumbnail > ul > li {
    flex: 0 0 calc(50% - 10px);
  }
  .dataList-program .listWrap.thumbnail.eventList > ul {
    width: calc(100% + 10px);
    margin: 0 0 0 -10px;
  }
  .dataList-program .listWrap.thumbnail.eventList > ul > li {
    flex: 0 0 calc(50% - 10px);
    margin: 0 0 10px 10px;
  }
  .dataList-program .listWrap.detail table tbody td {
    flex-wrap: wrap;
    align-items: center;
  }
  .dataList-program .listWrap.detail table tbody td .mobile-th,.dataList-program .listWrap.detail table .titleArea .mobile-th {
    flex: 0 0 auto;
    position:relative;
    margin:0 20px 3px 0;
    text-align: left;
  }
  .dataList-program .listWrap.detail table tbody td .mobile-th::before {
    display: block;
    position: absolute;
    top: 2px;
    right: -10px;
    bottom: 0;
    width: 1px;
    height: 14px;
    margin: auto 0;
    background: #333;
  }
  .dataList-program .listWrap.detail table .titleArea {
    display: block;
  }
  .dataList-program .listWrap.detail table tbody td .mobile-th, .dataList-program .listWrap.detail table .titleArea .mobile-th {
    display: inline-block;
  }
  .dataList-program .listWrap.detail table .tableProgramTitle {
    color: #666;
    margin: 5px 0 0;
  }
  .dataList-program .listWrap.detail table tbody td.mobile-date {
    align-items: flex-start;

  }
  .dataList-program .listWrap.detail table tbody td.mobile-date .mobile-th {
    flex:0 0 52px;
  }
  .dataList-program .listWrap.detail table tbody td.mobile-date .mobile-td {
    flex:0 0 calc(100% - 100px);
  }
  .dataList-program .listWrap.detail table .programDetailInformation{margin:3px 0 0;padding:0 0 0 0;}
  .dataList-program .listWrap.detail table .programDetailInformation span{white-space:normal;}
}
@media all and (max-width: 620px) {
  .program .viewProgram .anchorButton {
    margin: 10px 10px 0 0;
    white-space: nowrap;
  }
  .program .viewProgram .anchorButton + .anchorButton {
    margin: 10px 10px 0 0;
  }
  .program .viewProgram.simpleInformation .simpleTextArea .linkGroup {
    flex-wrap: wrap;
    margin: 15px 0 0;
  }
  .program .viewProgram.simpleInformation .simpleImage {
    flex: 0 0 calc(100% - 40px);
    width: calc(100% - 40px);
    margin: 40px 20px 15px;
  }
  .login .programModal .modalBody .modalAgreeBox .formGroup {
    flex: 0 0 100%;
    margin: 10px 0 0;
  }
  .login .programModal .modalFooter .loginModalButton {
    flex: 0 0 calc(50% - 10px);
    margin: 0 5px;
  }
  .login .programModal .modalFooter .loginModalButton + .loginModalButton {
    margin: 0 5px;
  }
  .login .programModal .modalFooter .loginModalButton::before, .login .programModal .modalFooter .loginModalButton::after {
    display: none;
  }
}
@media all and (max-width: 600px) {
  /*.pagination-default{display:block;position:relative;width:50px;margin:20px auto 0;
      a{display:none;margin:5px auto;
          &.current{display:block;position:relative;width:50px;margin:0 auto;padding:5px 0 0 10px;border-radius:5px;text-align:left;
              &::before,&::after{display:block;position:absolute;top:0;bottom:0;width:8px;height:2px;margin:auto 0;background:#009991;border-radius:2px;}
              &::before{right:10px;}
              &::after{right:10px;transform:rotate(90deg);}
              &.active{
                  &::after{transform:none;}
              }
          }
      }
      .movePage{display:block;position:absolute;top:0;margin:0;
          &.first{left:-71px;}
          &.prev{left:-38px;}
          &.next{left:60px;}
          &.last{left:93px;}
      }
      &.active{
          a{display:block;}
      }
  }*/
  .programSearch .searchFormWrap.default {
    padding: 15px 15px 125px;
  }
  .programSearch .searchFormWrap .selectElementGroup {
    flex-wrap: wrap;
  }
  .programSearch .searchFormWrap .selectElementGroup.facilityGroup, .programSearch .searchFormWrap .selectElementGroup.eduGroup {
    flex: 0 0 100%;
    margin: 0;
  }
  .programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement, .programSearch .searchFormWrap .selectElementGroup.eduGroup .formElement {
    flex: 0 0 100%;
    margin: 10px 0 0;
  }
  .programSearch .searchFormWrap .selectElementGroup.facilityGroup .formElement.elementCount2, .programSearch .searchFormWrap .selectElementGroup.eduGroup .formElement.elementCount2 {
    flex: 0 0 100%;
    margin: 10px 0 0;
  }
  .programSearch.showDetail .searchFormWrap.detail {
    padding: 45px 15px 125px;
  }
  .programSearch .formButton {
    padding: 20px 0 50px;
  }
  .login .snsLogin {
    padding: 35px 30px;
  }
}
@media all and (max-width: 580px) {
  .program .viewProgram.detailInformation .infoState {
    flex: 0 0 100%;
  }
  .program .viewProgram.detailInformation .infoTab .locationMap {
    height: 250px;
  }
}
@media all and (max-width: 500px) {
  .programFlow li {
    display: block;
    margin: 0 0 0 5px;
    padding: 0 0 0 15px;
  }
  .programFlow i {
    margin: 0 auto 5px;
  }
  .program .phoneCode input {
    flex: 0 0 calc(33.3333333333% - 6px);
    width: calc(33.3333333333% - 6px);
  }
  .program .email .customSelect {
    width: 120px;
  }
  .program .viewProgram.simpleInformation::before {
    bottom: 0;
    border-radius: 20px;
  }
  .program .viewProgram.simpleInformation .simpleTextArea {
    padding: 40px 20px;
  }
  .program .viewProgram.simpleInformation .simpleImage {
    display: none;
  }
  .programCalendar.timeSelect .calendar .calendarBody .day button, .programCalendar.timeSelect .calendar .calendarBody .day .viewDay {
    width: 100%;
  }
  .programCalendar .calendar .calendarBody .day li {
    height: 50px;
  }
  .programCalendar .calendar .calendarBody .day button, .programCalendar .calendar .calendarBody .day .viewDay {
    width: 100%;
  }
  .programCalendar .calendar .calendarBody .day button .reserveCount, .programCalendar .calendar .calendarBody .day .viewDay .reserveCount {
    display: none;
  }
  .programCalendar .calendar .calendarFooter {
    flex-wrap: wrap;
  }
  .programCalendar .calendar .calendarFooter .selectCount, .programCalendar .calendar .calendarFooter .calendarLegend {
    flex: 0 0 100%;
    justify-content: center;
    margin: 0;
  }
  .programSearch .customIconOption {
    flex: 0 0 calc(33.3333333333% - 8px);
  }
  .dataList-program {
    padding: 50px 0 0;
  }
  .dataList-program .asideInformation {
    top: 0;
  }
  .dataList-program .listWrap.thumbnail > ul {
    width: 100%;
    margin: 20px 0 0;
  }
  .dataList-program .listWrap.thumbnail > ul > li {
    flex: 0 0 100%;
    margin: 0 0 10px;
  }
  .dataList-program .listWrap.thumbnail .title {
    height: auto;
  }
  .login .loginType {
    flex-wrap: wrap;
  }
  .login .loginType li {
    flex: 0 0 100%;
    margin: 45px 0 0;
  }
  .login .loginType li:first-child {
    margin: 0;
  }
  .login .snsLogin .link {
    flex-wrap: wrap;
  }
  .login .snsLogin .link li {
    flex: 0 0 100%;
    margin: 5px 0 0;
  }
  .login .snsLogin .link li:first-child {
    margin: 0;
  }
}
@media all and (max-width: 480px) {
  .program .viewProgram.simpleInformation .simpleTextArea .title {
    flex-wrap: wrap;
  }
  .program .viewProgram.simpleInformation .simpleTextArea .title strong {
    flex: 0 0 100%;
    width: 100%;
    margin: 10px 0 0;
  }
  .dataList-program .listWrap.thumbnail.eventList > ul {
    width: 100%;
    margin: 0;
  }
  .dataList-program .listWrap.thumbnail.eventList > ul > li {
    flex: 0 0 100%;
    width: 100%;
    margin: 10px 0 0;
  }
  .dataList-program .listWrap.thumbnail.eventList > ul > li:first-child {
    margin: 0;
  }
  .dataList-program .listWrap.thumbnail.eventList .image {
    height: auto;
    min-height: 200px;
  }
}
@media all and (max-width: 400px) {
  .programSearch .customIconOption {
    flex: 0 0 calc(50% - 8px);
  }
}

/*# sourceMappingURL=program.css.map */
