footer {
  padding-top: 0;
}

/* 프로그램 구성 */
.visualization {
  margin-bottom: 40px;
  text-align: center;

  & .img_bx {
    width: 656px;
  }
}
.program_howToUse h4 {
  margin-bottom: 1.25rem;
  color: var(--ai_02-500);
  font-weight: 700;

  &::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-top: 5px;
    margin-right: 12px;
    vertical-align: top;
    background-color: var(--ai_02-500);
    border: 3px solid var(--ai_02-50);
    border-radius: 10px;
    box-sizing: content-box;
  }
}
.program_howToUse dl {
  display: flex;
  gap: 0 0.75rem;
}
.program_howToUse dt {
  flex-shrink: 0;
  width: 5.5rem;
  height: calc(2rem + 1px);
  color: var(--ai_02-500);
  font-weight: 400;
  font-size: calc(1rem + 2px);
  text-align: center;
  line-height: calc(2rem + 1px);
  white-space: pre;
  background-color: var(--ai_02-50);
}
.program_howToUse dd {
  padding: 3px 0;
  font-size: calc(1rem + 2px);
  line-height: 1.5;
}
.program_howToUse dl + dl {
  margin-top: 10px;
}
.program_howToUse li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 0;
  font-size: calc(1rem + 2px);

  &::before {
    content: '';
    position: absolute;
    top: 0;
    left: 2px;
    width: 8px;
    height: 0;
    margin-top: 0.75rem;
    border-top: 1px solid var(--ai_primary-500);
  }

  & + li {
    margin-top: 10px;
  }

  & ol {
    counter-reset: numbering;

    & li {
      margin-top: 0;

      &::before {
        position: static;
        border: 0 none;

        counter-increment: numbering;
        content: counter(numbering, decimal-leading-zero) '. ';
        display: inline-block;
        width: 2.5rem;
        text-indent: 0;
        font-weight: 600;
        color: var(--ai_primary-500);
      }
    }
  }
}

.program_howToUse + .program_howToUse {
  margin-top: 40px;
}

.program_list {
  margin-top: 60px;

  & .tab_bx {
    justify-content: center;

    & button {
      background-color: transparent;
      font-weight: 600;
      border-radius: 0;

      &.active {
        color: var(--ai_primary-500);
        background-color: transparent;
        border-bottom: 1px solid var(--ai_primary-500);
      }
    }
  }
}
#contentE .program_list,
#contentF .program_list {
  /* margin-top: 0; */

  & .tab-content.active {
    margin-top: 0;
  }
}

.program_list .tab-content.active {
  margin-top: 20px;
}
.program_list ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px 20px;
}
.program_list li {
  margin-bottom: 0;
  border: 1px solid #ededed;
  border-radius: 10px;
  width: 100%;
  overflow: hidden;
}
.program_list li dl {
  display: flex;
  gap: 16px 0;
  flex-wrap: wrap;
  position: relative;
  padding: 20px 20px 20px calc(158px + 28px);
  min-height: 189px;
}
.program_list li dt {
  order: -1;
  font-weight: 700;
  font-size: 1.5rem;
}
.program_list li dd.subText {
  width: 100%;

  ul {
    display: flex;
    flex-direction: column;
    gap: 0;

    li {
      border: 0;
      position: relative;
      padding-left: 20px;
      margin-bottom: 0;
      font-size: calc(1rem + 2px);

      &::before {
        content: '';
        position: absolute;
        top: 0;
        left: 2px;
        width: 8px;
        height: 0;
        margin-top: 0.75rem;
        border-top: 1px solid var(--ai_primary-500);
      }
    }
  }
}
.program_list li dd.people {
  order: -1;
  display: flex;
  display: none;
  align-items: center;
  margin-left: 1rem;
  font-size: 0;
  align-items: flex-start;
  margin-top: 4px;

  & em {
    display: inline-block;
    min-width: 60px;
    height: 28px;
    color: #fff;
    font-size: 1rem;
    font-style: normal;
    line-height: 28px;
    text-align: center;
    background: var(--ai_primary-300);
    border-radius: 9999px;

    &::before {
      content: '';
      display: inline-block;
      width: 16px;
      height: 16px;
      margin-top: 6px;
      margin-right: 0.5rem;
      vertical-align: top;
      background: url(/images/ai/icon/icon_peoples.svg) no-repeat 50% 50% / auto
        16px;
    }
  }
}
.program_list li dd.info1 {
  display: flex;
  gap: 0 30px;
  margin-top: auto;

  & span {
    display: flex;
    align-items: center;
  }
  & span::before {
    content: '';
    width: 20px;
    height: 20px;
    margin-right: 8px;
    background: no-repeat 50% 50% / auto 20px;
  }

  & .time {
    flex-shrink: 0;

    &::before {
      background-image: url(/images/ai/icon/icon_clock.svg);
    }
  }
  & .place::before {
    background-image: url(/images/ai/icon/icon_locationPoint.svg);
  }
  & .place em {
    font-style: normal;

    &.rows {
      -webkit-line-clamp: 1;
      line-clamp: 1;
    }
  }
}
.program_list li dd.picture {
  position: absolute;
  top: 20px;
  left: 0;
  width: 158px;
  text-align: center;
  border-right: 1px solid #ededed;
  box-sizing: content-box;
  height: calc(100% - 40px);

  & .img_bx {
    width: 156px;
    aspect-ratio: 1/1;
    img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
  }
}

.program_introduce {
  position: relative;
  width: 100%;
  padding-top: calc(80px + 120px);
  padding-bottom: 80px;
  margin-top: 80px;

  &::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 50%;
    width: 100vw;
    height: 100%;
    background: linear-gradient(95deg, #9d0057 0.26%, #7600a5 99.52%);
    transform: translateX(-50%);
    z-index: -1;
  }
  &::after {
    content: '';
    display: block;
    position: absolute;
    top: -2px;
    left: 50%;
    width: 100vw;
    height: 100%;
    background: url(/images/ai/program/img_sub_program2_003_bg.svg) no-repeat
      50% 0 / contain;
    transform: translateX(-50%);
    z-index: -1;
  }
}
.program_introduce .titleGroup h3 {
  margin-bottom: 40px;
  color: var(--ai_02-200);

  & em {
    color: #fff;
  }
}

.program_introduce .bot {
  width: 100%;
  position: relative;

  & .swiper {
    width: 100%;
  }
}
.program_introduce .bx_etc [class*='swiper-button-']::after {
  width: 100%;
  height: 100%;
  font-size: 0;
  background: url(/images/ai/icon/WH/icon_arrow_right.svg) no-repeat 50% 50% /
    auto 40px;
}
.program_introduce .bx_etc [class*='-button-prev']::after {
  transform: rotate(180deg);
}
.program_introduce .bx_etc .swiper-button-prev {
  left: 0;
  transform: translateX(calc(-100% + -16px));
}
.program_introduce .bx_etc .swiper-button-next {
  right: 0;
  transform: translateX(calc(100% + 16px));
}

.program_introduce li {
  transition: all 0.2s ease;
}
.program_introduce li a {
  display: block;
  width: 100%;
  color: #4a4c4f;
}
.program_introduce li dl {
  display: flex;
  flex-direction: column;
  gap: 20px 0;
  width: 100%;
  height: 100%;
  padding: 20px;
  background-color: #fff;
  border-radius: 10px;
  overflow: hidden;
}
.program_introduce li dt {
  font-weight: 600;
  font-size: 1.5rem;

  & .rows {
    -webkit-line-clamp: 1;
    line-clamp: 1;
  }
}
.program_introduce li dd {
  font-weight: 400;
}
.program_introduce li dd.date {
  margin-top: auto;
  font-weight: 500;
  line-height: 1.5;
}
.program_introduce li dd.process {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 56px;
  font-size: 1.25rem;
  border: 1px solid #65686c;
  border-radius: 9999px;
}
.program_introduce li dd.process.stepStart {
  color: #fff;
  background-color: #b2b2b2;
  border-color: #b2b2b2;
}
.program_introduce li dd.process.stepEnd {
  position: relative;
  overflow: hidden;

  &::before {
    content: '';
    display: inline-block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200%;
    height: 1px;
    background: #65686c;
    transform: translate(-50%, -50%) rotate(165deg);
    z-index: 1;
  }
  & em {
    display: inline-block;
    position: relative;
    padding: 0.25rem;
    font-style: normal;
    background: #fff;
    z-index: 2;
  }
}
.program_introduce li dd.process.step1 {
  color: #fff;
  background-color: var(--ai_primary-500);
  border-color: var(--ai_primary-500);

  &::after {
    content: '';
    display: inline-block;
    width: 24px;
    height: 24px;
    margin-left: 10px;
    background: url(/images/ai/icon/icon_arrow_upRight.svg) no-repeat 50% 50% /
      auto 24px;
  }
}

.program_introduce li dd.thumb {
  order: -1;
  margin: -20px -22px 0;
}
.program_introduce li dd.thumb .img_bx {
  width: 100%;
}

.program_introduce li:nth-child(odd) dl {
  background-color: var(--ai_02-50);
}
.program_introduce li:nth-child(odd) dd.process.step1 {
  background-color: #ac0060;
}

.visualization ~ .tab_bx {
  & button {
    width: calc(100% / 6);
    min-width: 10rem;
    height: 64px;
    line-height: 1.25;
  }
}
.visualization ~ .tab-content {
  margin-top: 80px;
}
@media (max-width: 1419.98px) {
  .program_list li dd.info1 {
    flex-wrap: wrap;
  }
}
@media screen and (max-width: 991.98px) {
  .visualization ~ .tab_bx {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;

    & button {
      width: 100%;
    }
  }

  .program_list ul {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 700px) {
  .visualization .img_bx {
    width: 100%;
  }
  .sub_content .tab_bx {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px 10px;
  }

  .program_introduce {
    padding-top: calc((80px + 120px) * 0.5);
    padding-bottom: calc(80px * 0.5);
    margin-top: calc(80px * 0.5);
  }
}
@media screen and (max-width: 500px) {
  .visualization ~ .tab_bx {
    /*  */

    & button {
      padding: 0 0.5rem;
      word-break: keep-all;
    }
  }

  .sub_content .tab_bx {
    grid-template-columns: repeat(2, 1fr);
  }

  .visualization ~ .tab-content {
    margin-top: calc(80px * 0.5);
  }

  .program_list ul {
    display: flex;
    flex-flow: column nowrap;
  }
  .program_list li dl {
    padding-top: 40px;
    padding-left: 20px;
    flex-flow: column nowrap;
  }
  .program_list li dd.people {
    position: absolute;
    top: 20px;
    margin-left: 0;
  }
  .program_list li dd.info1 {
    flex-flow: column nowrap;
    gap: 4px 0;
  }
  .program_list li dd.picture {
    order: -2;
    position: static;
    width: 100%;
    height: auto;
    border-right: 0 none;
    transform: none;

    & .img_bx {
      width: 200px;
      height: 200px;
    }
  }

  .program_introduce .titleGroup h3 {
    font-size: calc(1.25rem * 0.75);

    & em {
      font-size: calc(2rem * 0.75);
    }
  }
  .program_introduce .bx_etc [class*='swiper-button-'] {
    background-color: rgba(0, 0, 0, 0.3);
    transform: none;
  }
  .program_introduce .bx_etc .swiper-button-prev {
    left: calc(var(--bs-gutter-x) * 0.5 * -1);
  }
  .program_introduce .bx_etc .swiper-button-next {
    right: calc(var(--bs-gutter-x) * 0.5 * -1);
  }
}
