/* ### COMMON ### */
.plan-section .custom-main-title {
  text-align: center;
}

/* ### 수학백서만의 특별한 혜택 ### */
.custom-plan-01 {
  padding: var(--page-top-padding) 0 var(--page-padding);
}
.custom-plan-01 .custom-main-title {
  background: var(--gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
}
.custom-plan-01 .custom-main-content-wrap {
  display: grid;
  /* TODO 250713 BETA 서비스 종료 후, 정식 오픈에 주석 해제
  grid-template-columns: repeat(3, calc(calc(100% - calc(var(--gap) * 2)) / 3));
   */
  align-items: center;
  grid-gap: var(--gap);
}
.custom-plan-01 .custom-main-content {
  height: 100%;
  padding: var(--box-padding);
  position: relative;
}
.custom-plan-01 .custom-main-content:nth-child(1) {
  background: #FFFBF3;
}
.custom-plan-01 .custom-main-content:nth-child(2) {
  background: #EBF5FC;
}
.custom-plan-01 .custom-main-content:nth-child(3) {
  background: #F7F7F7;
}
.custom-plan-01 .custom-main-content > img {
  width: 45px;
  margin: 0 0 40px;
}
.custom-plan-01 .custom-main-content > strong {
  font-size: 22px;
}
.custom-plan-01 .custom-main-content > span {
  margin: 7px 0 0;
  word-break: keep-all;
  line-height: 1.25em;
  font-size: 15px;
}
.custom-plan-01 .custom-main-content .badge {
  height: 23px;
  line-height: 23px;
  margin-top: 10px;
  padding: 0 10px;
  font-size: 13px;
}

/* 가입비 면제 금액 */
.custom-plan-01 .custom-main-content strong.custom-entry-fee {
  position: absolute;
  right: var(--box-padding);
  bottom: var(--box-padding);
  text-align: right;
}
.custom-plan-01 .custom-main-content strong.custom-entry-fee strike {
  margin: 0 0 5px;
  letter-spacing: -1px;
  font-size: 24px;
  color: var(--ct-secondary);
}
.custom-plan-01 .custom-main-content .custom-plan-highlight {
  margin: 0;
  padding: 0;
  line-height: 55px;
  font-size: 55px;
  color: #FFB41E;

}

/* ### 요금제 선택 ### */
.custom-plan-02 {
  padding: 0 0 var(--page-padding);
}
.custom-plan-02 .custom-main-content {
  max-width: 570px;
  margin: 0 auto;
  border: 1px solid var(--ct-border-color);
  border-radius: var(--ct-bdrad2);
}
.custom-plan-02 .custom-main-content:not(:last-child) {
  margin-bottom: 20px;
}
.custom-plan-02 :is(.custom-main-content > strong, .productCd > strong) {
  font-size: 18px;
  color: var(--default-color);
}

/* --- 내 구독 정보(로그인 시) --- */
.custom-myplan {
  padding: 30px;
  background: var(--content-bg);
}
.custom-myplan > strong {
  padding: 0 0 10px;
}
.custom-myplan li {
  margin: 10px 0 0;
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 16px;
  color: var(--ct-secondary);
}
.custom-myplan li strong {
  width: 130px;
  font-weight: 600;
  font-size: inherit;
}
.custom-myplan li > span {
  width: calc(100% - 130px);
}

/* --- 요금제 --- */
.custom-main-content.select {
  border: 3px solid transparent;
  background-image: linear-gradient(#fff, #fff), var(--gradient);
  background-origin: border-box;
  background-clip: content-box, border-box;
}

/* 버튼 */
.productCd {
  width: 100%;
  height: 80px;
  padding: 0 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.productCd > strong, .productCd > span {
  color: var(--ct-text-muted);
}
.select :is(.productCd > strong, .productCd > span) {
  color: var(--default-color);
}
.productCd .productCd-radio {
  display: inline-block;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  margin-right: 7px;
  background: #fff;
  border: 1px solid var(--ct-border-color);
  border-radius: 100%;
  position: relative;
}
.select .productCd .productCd-radio {
  background: var(--gradient);
  border-color: transparent;
}
.select .productCd .productCd-radio:before {
  content: '';
  position: absolute;
  width: 50%;
  height: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 100%;
  background: #fff;
}
.productCd > span {
  font-size: 18px;
}
.productCd > span em {
  font-weight: 700;
}
.select .productCd > span em {
  background: var(--gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
}

/* 주요 기능 */
.productCd-desc {
  width: calc(100% - calc(30px * 2));
  margin: 0 auto;
  padding: 24px 0;
  border-top: 1px solid var(--ct-border-color);
  display: none;
}
.select .productCd + .productCd-desc {
  display: block;
}
.productCd-desc > strong {
  margin: 0 0 20px;
  font-size: 18px;
}
.custom-main-content .custom-productCd-type {
  display: inline-block;
}
.productCd-desc > ul {
  display: grid;
  grid-template-columns: repeat(2, calc(calc(100% - 12px) / 2));
  gap: 24px 12px;
}
.productCd-desc-item {
  display: flex;
  align-items: center;
  gap: 12px;
}
.productCd-desc-item i {
  font-size: 20px;
}
.productCd-desc-item > span {
  font-size: 14px;
  word-break: keep-all;
}
.productCd-desc-item > span strong {
  font-size: inherit;
}
.productCd-desc-item > span strong em {
  color: var(--point);
}
.productCd-desc-item > span span {
  display: inline-block;
  margin: 4px 0 0;
  line-height: 1.2em;
}

/* ### 유의사항 ### */
.custom-plan-03 {
  padding: calc(var(--box-padding) * 2) 0;
  background: var(--hover-color);
}
.custom-plan-03 .custom-main-title {
  margin: 0 0 20px;
  text-align: left;
  font-size: 24px;
}
.custom-plan-03 .custom-main-content {
  list-style-type: disc;
  padding-left: 24px;
  font-size: 16px;
}
.custom-plan-03 .custom-main-content li:not(:last-child) {
  margin: 0 0 7px;
}

/* ### 결제 버튼 ### */
.custom-plan-btn-wrap {
  position: fixed;
  width: 100%;
  left: 0;
  bottom: 0;
  border-top: 1px solid var(--ct-border-color);
  background: #fff;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.05);
  z-index: 100;
}
.custom-plan-btn-inner {
  height: 100px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.custom-plan-btn-item {
  display: inline-block;
  width: 120px;
}
.custom-plan-btn-item small {
  display: block;
  color: var(--ct-text-muted);
}

/* --- left area --- */
.custom-plan-btn-left .custom-plan-btn-item {
  display: inline-block;
  width: auto;
  vertical-align: top;
}
.custom-plan-btn-left .custom-plan-btn-item:not(:last-child) {
  margin-right: 24px;
}
.custom-plan-btn-left .custom-plan-btn-item small {
  margin: 0 0 4px;
  font-weight: 600;
  font-size: 14px;
}
.custom-plan-btn-left .custom-plan-btn-item strong {
  font-size: 18px;
}

/* --- right area --- */
.custom-plan-btn-right .custom-plan-btn-item {
  width: auto;
  vertical-align: middle;
  text-align: right;
  word-break: keep-all;
}
.custom-plan-btn-right .custom-plan-btn-item:not(:last-child) {
  margin-right: 17px;
}
.custom-plan-btn-right .custom-plan-selected-fee {
  line-height: 1em;
  font-size: 22px;
}
.custom-plan-btn-right .custom-plan-btn-item small {
  margin: 4px 0 0;
  font-size: 14px;
}
.custom-plan-btn-right .custom-plan-btn-item .btnMedium {
  font-weight: 700;
  border-radius: 100px !important;
  background: var(--gradient);
}

/* 구독 취소 버튼 */
.custom-plan-btn-right .custom-plan-btn-item .btnMedium + span {
  line-height: 1em;
}
.custom-unsubscribe:hover {
  text-decoration: underline;
}


/* ### footer ### */
/* .custom-plan-btn-wrap 때문에 padding 추가 */
.custom-about-footer-inner {
  padding: 80px 0 calc(80px + 100px);
}

/* ### promotion plan(lightPlan, contractPlan) ### */
.custom-promo-plan-01 .plan-section-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
[class *= 'custom-promo-plan'] .custom-plan-left {
  width: 40%;
}
[class *= 'custom-promo-plan'] .custom-plan-right {
  width: calc(60% - 20px);
}
[class *= 'custom-promo-plan'] .custom-plan-right img {
  display: block;
  width: 100%;
}
.custom-promo-plan-subtitle {
  display: inline-block;
  height: 45px;
  line-height: 45px;
  margin: 0 0 15px;
  padding: 0 12px;
  border-radius: var(--ct-bdrad);
  background: var(--point);
  font-weight: 500;
  font-size: 18px;
  color: #fff;
}
.custom-promo-plan-title {
  display: block;
  font-weight: 800;
  font-size: 42px;
}
.custom-promo-plan-title em {
  color: var(--point);
}
.custom-promo-plan-desc {
  display: block;
  margin: 10px 0 0;
  line-height: 1.4em;
  word-break: keep-all;
  font-size: 16px;
  color: var(--ct-text-muted);
}
.custom-promo-plan-02 .custom-main-title em {
  background: var(--gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ### 메인페이지 내용 ### */
.math100-main {
  padding-bottom: 200px;
}
.math100-main .academyMgt-section {
  padding-top: 100px;
}

/* ############# RESPONSIVE ############### */
@media (max-width: 1024px) {
  .custom-promo-plan-title {
    line-height: 1.3em;
    font-size: 30px;
  }
}
@media (max-width: 768px) {
  .custom-plan-01 .custom-main-content-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    grid-template-columns: unset;
    grid-gap: 0;
    gap: var(--gap);
    max-width: 568px;
    margin-left: auto;
    margin-right: auto;
  }
  .custom-plan-01 .custom-main-content,
  .custom-plan-01 .custom-main-content-beta {   /* TODO BETA 종료 후, 정식오픈하면 해당 라인 삭제 */
    flex: 1;
    width: 100%;
  }
}
@media (max-width: 767.98px) {
  .custom-plan-01 .custom-main-content img {
    width: 35px;
  }
  .custom-plan-01 .custom-main-content strong {
    font-size: 18px;
  }
  .custom-plan-01 .custom-main-content span {
    font-size: var(--nm-fz);
  }
  .custom-plan-01 .custom-main-content strong.custom-entry-fee strike {
    font-size: 20px;
  }
  .custom-plan-01 .custom-main-content .custom-plan-highlight {
    line-height: 50px;
    font-size: 50px;
  }

  /* ### 요금제 ### */
  .custom-plan-02 .custom-main-content:not(:last-child) {
    margin: 0 0 12px;
  }
  .productCd {
    height: 60px;
    padding: 0 20px;
  }
  .productCd .productCd-radio {
    width: 18px;
    height: 18px;
    vertical-align: middle;
  }
  .custom-plan-02 :is(.custom-main-content > strong, .productCd > strong),
  .productCd > span {
    font-size: 16px;
  }
  .productCd-desc > ul {
    display: flex;
    flex-direction: column;
  }
  .productCd-desc-item {
    align-items: flex-start;
  }

  /* ### 유의사항 ### */
  .custom-plan-03 .custom-main-title {
    font-size: 18px;
  }
  .custom-plan-03 .custom-main-content {
    font-size: var(--nm-fz);
    word-break: keep-all;
  }

  /* ### 결제 버튼 ### */
  .custom-plan-btn-wrap {
    padding: var(--mobile-pd) 0;
  }
  .custom-plan-btn-inner {
    height: unset;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
  }
  .custom-plan-btn-left, .custom-plan-btn-right {
    width: 100%;
  }

  /* --- left --- */
  .custom-plan-btn-left .custom-plan-btn-item strong {
    font-size: 16px;
  }
  .custom-plan-btn-left .custom-plan-btn-item small {
    font-weight: 400;
  }

  /* --- right --- */
  .custom-plan-btn-right {
    margin-top: 15px;
    padding-top: 13px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid var(--ct-border-color);
  }
  .custom-plan-btn-right .custom-plan-btn-item,
  .custom-plan-btn-right .custom-plan-btn-item:not(:last-child) {
    margin-right: 0;
    text-align: left;
  }
  .custom-plan-btn-right .custom-plan-btn-item:first-child {
    width: 40%;
  }
  .custom-plan-btn-right .custom-plan-btn-item:last-child {
    width: 60%;
  }
  .custom-plan-btn-right .custom-plan-btn-item .btnMedium {
    font-size: 14px;
  }

  /* ### modal ### */
  .modal-dialog-scrollable .modal-content {
    width: calc(100% - 14px);
  }

  /* ### footer ### */
  .custom-about-footer {
    padding-bottom: calc(150px + 40px);
  }
  
  /* ### promotion plan(lightPlan, contractPlan) ### */
  .custom-promo-plan-01 .plan-section-inner {
    display: block;
    gap: 0;
  }
  [class *= 'custom-promo-plan'] :is(.custom-plan-left, .custom-plan-right) {
    width: 100%;
  }
  [class *= 'custom-promo-plan'] .custom-plan-right {
    margin: 20px 0 0;
  }
  .custom-promo-plan-subtitle {
    height: 37px;
    line-height: 37px;
    font-size: 15px;
  }
  .custom-promo-plan-title {
    font-size: 30px;
  }
  .custom-promo-plan-desc {
    font-size: 14px;
  }

  /* ### 메인페이지 내용 ### */
  .math100-main {
    padding-bottom: 50px;
  }
  .math100-main .academyMgt-section {
    padding-top: 50px;
  }
}

/* TODO : 250713 BETA 종료 후, 정식 오픈 때 삭제 START */
.custom-plan-01 .custom-main-content-beta {
  height: 100%;
  padding: 50px;
  position: relative;
  text-align: center;
  display: inline-block;
}
.custom-main-banner {
  border-radius: 20px;
}
.custom-main-title {
  font-size: 49px !important;
}
.custom-main-sub-title {
  font-size: 41px !important;
}
.custom-plan-01 .custom-main-content-beta:nth-child(1) {
  background: #2b2b2c !important;
}
.custom-plan-01 .custom-main-content-beta > img {
  width: 53px;
  margin: 0 0 7px;
}
.custom-plan-01 .custom-main-content-beta > strong {
  font-size: 29px;
}
.custom-plan-01 .custom-main-content-beta-content > span {
  margin: 7px 0 0;
  word-break: keep-all;
  line-height: 1.25em;
  font-size: 15px;
}
.custom-plan-01 .custom-main-content-beta-content > strong, em, span {
  display: inline-block !important;
}
.custom-main-impact-left {
  background: linear-gradient(to right, #f2b84b, #f4d498);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.custom-main-impact-right {
  background: linear-gradient(to left, #f2b84b, #f4d498);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.custom-plan-01 .custom-main-content-beta .badge {
  height: 23px;
  line-height: 23px;
  margin-top: 10px;
  padding: 0 10px;
  font-size: 13px;
}

/* 가입비 면제 금액 */
.custom-plan-01 .custom-main-content-beta strong.custom-entry-fee {
  position: absolute;
  right: var(--box-padding);
  bottom: var(--box-padding);
  text-align: right;
}
.custom-plan-01 .custom-main-content-beta-content strong.custom-entry-fee strike {
  margin: 0 0 5px;
  letter-spacing: -1px;
  font-size: 24px;
  color: var(--ct-secondary);
}
.custom-plan-01 .custom-main-content-beta .custom-plan-highlight {
  margin: 0;
  padding: 0;
  line-height: 55px;
  font-size: 46px;
  color: #FFB41E;
}
.custom-main-content-beta .custom-productCd-type {
  display: inline-block;
}
@media (max-width: 767.98px) {
  .custom-plan-01 .custom-main-content-beta img {
    width: 35px;
  }

  .custom-plan-01 .custom-main-content-beta strong {
    font-size: 18px;
  }

  .custom-plan-01 .custom-main-content-beta span {
    font-size: var(--nm-fz);
  }

  .custom-plan-01 .custom-main-content-beta strong.custom-entry-fee strike {
    font-size: 20px;
  }

  .custom-plan-01 .custom-main-content-beta .custom-plan-highlight {
    line-height: 50px;
    font-size: 50px;
  }
}
.custom-main-content-beta .custom-productCd-type {
  display: inline-block;
}
.custom-main-content-beta {
  border-radius: var(--ct-bdrad2);
}
.custom-main-content-beta :is(span, video, img) {
  display: block;
}
.custom-main-content-beta :is(video, img) {
  width: 100%;
  margin: 40px auto 0;
}
.custom-main-content-beta [class *= 'slick'] :is(video, img) {
  margin: 0;
}
.custom-main-content-beta strong {
  font-weight: 800;
  font-size: 28px;
}
.custom-main-content-beta video {
  border-radius: var(--ct-bdrad2);
}
.select .productCd > span em {
  background: var(--gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
  font-size: 23px !important;
}
/* TODO : 250713 BETA 종료 후, 정식 오픈 때 삭제 END */