/* =========================
   program page (mobile base)
========================= */
.program {
  background: #fff;
}

/* =========================================
   hero section
========================================= */
.program_hero {
  position: relative;
  overflow: hidden;
}

.program_hero_slide {
  position: relative;
  overflow: hidden;
}

.program_hero_slide_image {
  width: 100%;
  height: auto;
  /* animation: hero_image_light 10s ease-in-out infinite;  밝기 변화 빠르기 방식 루프
  filter: blur(20px); */
  position: relative;
  z-index: 1;
}

/* 활성 슬라이드만 선명 
.swiper-slide-active .program_hero_slide_image {
  filter: blur(0);
}

.program_hero_overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;

  background: rgba(0, 0, 0, 0.28);
  animation: hero_overlay_light 8s ease-in-out infinite;
}

@keyframes hero_overlay_light {
  0%, 100% {
    background: rgba(0, 0, 0, 0.32);
  }

  50% {
    background: rgba(0, 0, 0, 0.06);
  }
}


@keyframes hero_light_sweep {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  100% {
    transform: translateX(100%);
    opacity: 0;
  }
}

@keyframes hero_image_light {
  0% {
    filter: brightness(0.8);
  }
  25% {
    filter: brightness(1.15);
  }
  50% {
    filter: brightness(0.9);
  }
  75% {
    filter: brightness(1.2);
  }
  100% {
    filter: brightness(0.8);
  }
}

@keyframes hero_light_move {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}*/

/* hereo text */
.program_hero_content {
  position: absolute;
  z-index: 3;
  left: 0px;
  right: 0px;
  bottom: 100px;
  z-index: 2;
  color: #fff;
  text-align: center;
  margin: 0 auto;
}

.program_hero_heading {
  margin: 0;
  line-height: 1.25;
}

.program_hero_eyebrow {
  display: block;
  margin-bottom: 4px;  
  font-size: var(--font-h1);
  font-weight: var(--font-weight-xb);
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

.program_hero_title {
  display: block;
  font-size: var(--font-h1);
  font-weight: var(--font-weight-m);
  word-break: keep-all;
  text-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

.program_hero_description {
  margin: 20px 0 0;
  font-size: var(--font-h5);
  font-weight: var(--font-weight-r);
  line-height: 1.4;
  word-break: keep-all;
  text-shadow: 0 2px 4px rgba(0,0,0,0.4);
}

/* 활성 슬라이드에서만 실행 */
.swiper-slide .program_hero_eyebrow {
  animation: hero_text_up 0.4s ease-out 0.7s both; /* 시간 감속 딜레이 유지 */
}

.swiper-slide .program_hero_title {
  animation: hero_text_up 0.5s ease-out 0.8s both;
}

.swiper-slide .program_hero_description {
  animation: hero_text_up 0.8s ease-out 1.2s both;
}

/* 활성 슬라이드에서만 실행 */
.swiper-slide.is-animated .program_hero_eyebrow {
  animation: hero_text_up 0.4s ease-out 0.7s both; /* 시간 감속 딜레이 유지 */
}

.swiper-slide.is-animated .program_hero_title {
  animation: hero_text_up 0.5s ease-out 0.8s both;
}

.swiper-slide.is-animated .program_hero_description {
  animation: hero_text_up 0.8s ease-out 1.2s both;
}

/* hero_text_up 등장 */
@keyframes hero_text_up {
  0% {
    opacity: 0;
    transform: translateY(18px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.program_hero_slider_pagination {
  position: absolute;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  z-index: 3;
}

.program_hero_slider_pagination .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  margin: 0 4px !important;
  background: rgba(255, 255, 255, 0.45);
  opacity: 1;
}

.program_hero_slider_pagination .swiper-pagination-bullet-active {
  background: #fff;
}


/* =========================
   문제 제기 카드
========================= */
.program_problem {
  padding: 44px 0 52px;
  background: var(--color-orange-light);
}

.program_problem .section_title {
  margin: 0 0 30px;
  color: #111;
  font-size: 24px;
  font-weight: var(--font-weight-b);
  line-height: 1.35;
  letter-spacing: -0.03em;
  text-align: center;
  word-break: keep-all;
}

.program_problem__content {
  flex: 1;
  min-width: 0;
}

.program_problem__card_title {
  margin: 0 0 6px;
  color: #111;
  font-size: var(--font-h5);
  font-weight: var(--font-weight-m);
  letter-spacing: -0.02em;
  word-break: keep-all;
  overflow-wrap: break-word;
  align-items: center;
  justify-content: center;
  word-break: keep-all;

}

.program_problem__card_text {
  margin: 0;
  color: #4a4a4a;
  font-size: var(--font-lg);
  font-weight: var(--font-weight-r);
  line-height: 1.3;
  letter-spacing: -0.01em;
  word-break: keep-all;
}

.program_problem__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.program_problem__card {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 18px;
  border-radius: 22px;
  background: var(--color-white);
  box-sizing: border-box;
}

.program_problem__icon {
  flex: 0 0 84px;
  width: 84px;
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.program_problem__icon img {
  display: block;
  width: 84px;
  height: 84px;
  object-fit: contain;
}



/* =========================
   intro section
========================= */
.program_intro {
  position: relative;
  padding: 50px 20px 40px;
  background: var(--color-black);
  color: var(--color-white);
  text-align: center;
  overflow: hidden;
}

/* 배경 이미지 (지구 + 비행기) */
.program_intro::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 190px;
  background: url("/assets/images/program_intro_earth.png") no-repeat center bottom;
  background-size: cover;
  opacity: 1;
}


/* 내부 */
.program_intro_inner {
  position: relative;
  z-index: 1;
}

/* 타이틀 */
.program_intro_title {
  margin: 0 0 10px;
  font-size: var(--font-h3);
  font-weight: var(--font-weight-b);
  line-height: 1.4;
}

.program_intro_title_em {
  color: var(--color-orange);
}

/* 설명 */
.program_intro_desc {
  margin: 0 0 22px;
  font-size: var(--font-h5);
  font-weight: var(--font-weight-r);
}

/* POINT 영역 */
.program_intro_point {
  position: relative;
  padding-top: 20px;
}

/* POINT 배지 */
.program_intro_point_badge {
  display: inline-block;
  padding: 3px 14px;
  margin-bottom: 16px;
  font-size: var(--font-sm);
  font-weight: var(--font-weight-m);
  color: var(--color-orange-light);
  border:solid 2px var(--color-orange-light);
  background: #fff;
  border-radius: var(--radius-round);
}

/* 텍스트 */
.program_intro_point_text {
  margin: 0;
  font-size: var(--font-lg);
  font-weight: var(--font-weight-r);
  color: var(--color-panel);
}


/* =========================
   FAQ section : component_m.css로 이동
========================= */



/* =========================
   value section
========================= */

.program_value {
  position: relative;
  overflow: hidden;
  padding: 50px 0 50px;
}

.program_value .l_inner {
  position: relative;
}

.program_value_visual {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.program_value_bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center; /* 배경 위치 조정용 */
  display: block;
}

.program_value_overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--color-dim-70);
}

.program_value_content {
  position: relative;
  z-index: 2;
  text-align: center;
}

.program_value_heading {
  margin-bottom: 32px;
}

.program_value_title {
  margin: 0;
  color: var(--color-white);
  font-size: var(--font-h2);
  font-weight: var(--font-weight-b);
  line-height: 1.35;
  word-break: keep-all;
}

.program_value_subtitle {
  margin: 4px 0 0;
  color: var(--color-white);
  font-size: var(--font-h4);
  font-weight: var(--font-weight-m);
  word-break: keep-all;
}

.program_value_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 0 auto;
}

.program_value_item {
  min-height: 156px;
  padding: 18px 10px 16px;
  border-radius: 20px;
  background: var(--color-white);
  box-sizing: border-box;
}

.program_value_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
  margin-bottom: 12px;
}

.program_value_icon img {
  width: auto;
  max-height: 100%;
  display: block;
}

.program_value_text {
  margin: 0;
  color: var(--color-black2);
  font-size: var(--font-lg);
  font-weight: var(--font-weight-r);
  line-height: 1.3;
  word-break: keep-all;
}

.program_value_bottom {
  margin-top: 20px;
  text-align: center;
}

.program_value_arrow {
  width: 26px;
  margin: 0 auto 18px;
  animation: value_arrow_float 1.6s ease-in-out infinite;
}

@keyframes value_arrow_float {
  0% {
    transform: translateY(0);
    opacity: 0.85;
  }
  50% {
    transform: translateY(8px);
    opacity: 1;
  }
  100% {
    transform: translateY(0);
    opacity: 0.85;
  }
}

.program_value_arrow img {
  width: 100%;
  display: block;
}

.program_value_notice {
  margin: 0;
  color: var(--color-white);
  font-size: var(--font-h4);
  font-weight: var(--font-weight-b);
  line-height: 1.45;
  word-break: keep-all;
}



/* =========================
   STEP section
========================= */

.program_step {
  position: relative;
  padding: 60px 0;
  background: var(--color-beige);
  overflow: hidden;
}

.program_step .l_inner {
  width: 100%;
  padding-left: 16px;
}


/* 헤더 */
.program_step_head {
  text-align: center;
  margin-bottom: 32px;
}

.program_step_title {
  margin: 0 0 8px;
  font-size: var(--font-h2);
  font-weight: var(--font-weight-b);
}

.program_step_sub {
  margin: 0;
  font-size: var(--font-h5);
  font-weight: var(--font-weight-m);
  color: var(--color-black2);
}

/* 리스트 (가로 스크롤) */
.program_step_list {
  display: flex;
  padding-left: 16px;
  gap: 16px;
  overflow-x: auto;
  -ms-overflow-style: none;  /* IE, Edge */
  scrollbar-width: none;     /* Firefox */
}

.program_step_list::-webkit-scrollbar {
  display: none;             /* Chrome, Safari */
}

.program_step_list::after {
  content: '';
  flex: 0 0 16px;
}

/* 카드 */
.program_step_item {
  flex: 0 0 260px;
  background: var(--color-white);
  border-radius: 16px;
  padding: 20px 16px;
  text-align: center;
}


/* STEP 배지 */
.program_step_badge {
  display: inline-block;
  margin-bottom: 10px;
  padding: 1px 12px;
  border-radius: 20px;
  font-size: var(--font-h3);
  font-weight: var(--font-weight-b);
  color: #fff;
}

.program_step_badge.step_1 { background: var(--color-green); }
.program_step_badge.step_2 { background: var(--color-orange); }
.program_step_badge.step_3 { background: var(--color-blue); }

/* 타이틀 */
.program_step_item_title {
  font-size: var(--font-h3);
  font-weight: var(--font-weight-b);
}

.program_step_item_sub {
  margin: 0 0 12px;
  font-size: var(--font-small);
  color: var(--color-black6);
}

/* 이미지 */
.program_step_image {
  margin-bottom: 12px;
}

.program_step_image img {
  width: 90%;
  display: block;
  margin:0 auto;
}

/* 화살표 */
.program_step_arrow {
  width: 30px;
  height: 30px;
  margin: 2px auto 10px;
  background: url('/assets/images/icon_step_arrow.png') no-repeat center;
  background-size: contain;
  animation: step_arrow_float 1.4s ease-in-out infinite;
}

@keyframes step_arrow_float {
  0% { transform: translateY(0); }
  50% { transform: translateY(6px); }
  100% { transform: translateY(0); }
}

/* 결과 박스 */
.program_step_result {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 10px;
  font-size: var(--font-h5);
  color: var(--color-black);
  background: #D4CACA;
}



/* =========================
   CORE section
========================= */

:root {
  --program-core-bg: #f56a00;
  --program-core-circle: rgba(255, 255, 255, 0.18);
  --program-core-card-bg: #2a2a2a;
  --program-core-accent-bg: #f3b318;
  --program-core-dash: rgba(255, 255, 255, 0.45);
  --program-core-text-white: #ffffff;
  --program-core-text-yellow: #f3c44a;

  --program-core-title-size: 30px;
  --program-core-title-weight: 700;

  --program-core-item-size: 18px;
  --program-core-item-weight: 700;

  --program-core-plus-size: 42px;
  --program-core-plus-weight: 700;

  --program-core-box-title-size: 24px;
  --program-core-box-title-weight: 700;

  --program-core-plus-text-size: 18px;
  --program-core-plus-text-weight: 700;
}

.program_core {
  position: relative;
  overflow: hidden;
  padding: 40px 0;
  background:
    radial-gradient(circle at center, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.18) 20%, transparent 20%),
    radial-gradient(circle at center, rgba(255,255,255,0.12) 0%, rgba(255,255,255,0.12) 40%, transparent 40%),
    radial-gradient(circle at center, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.08) 60%, transparent 60%),
    var(--color-orange);
}

.program_core::before,
.program_core::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 52%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
}

.program_core::before {
  width: 420px;
  height: 420px;
}

.program_core::after {
  width: 620px;
  height: 620px;
}

.program_core_wrap {
  position: relative;
  z-index: 1;
}

.program_core_title {
  margin: 0;
  color: var(--color-white);
  font-size: var(--font-h2);
  font-weight: var(--font-weight-b);
  text-align: center;
  word-break: keep-all;
}

.program_core_content {
  margin-top: 20px;
}

.program_core_list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.program_core_item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  border-radius: var(--radius-round);
  color: var(--color-white);
  font-size: var(--font-h5);
  font-weight: var(--font-weight-r);
  text-align: center;
  white-space: nowrap;
  word-break: keep-all;
  background: var(--color-black2);
}

.program_core_plus {
  margin: 0 0 6px 0;
  color: var(--color-black);
  font-size: 40px;
  font-weight: var(--font-weight-m);
  line-height: 1;
  text-align: center;
}

.program_core_box {
  padding: 20px 16px 16px;
  border-radius: var(--radius-m);
  background: var(--color-black2);
}

.program_core_box_title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 46px;
  margin: 0 0 18px;
  padding: 10px 18px;
  border-radius: var(--radius-round);
  color: var(--color-black);
  font-size: var(--font-h4);
  font-weight: var(--font-weight-b);
  line-height: 1.3;
  text-align: center;
  word-break: keep-all;
  background: var(--color-yellow);
}

.program_core_plus_list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.program_core_plus_item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 8px 14px;
  border: 1px dashed var(--color-panel);
  border-radius: 14px;
}

.program_core_plus_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}

.program_core_plus_icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.program_core_plus_text {
  margin: 0;
  color: var(--color-yellow);
  font-size: var(--font-h5);
  font-weight: var(--font-weight-m);
  line-height: 1.45;
  letter-spacing: -0.02em;
  white-space: nowrap;
  align-items: center;
  justify-content: center;
  word-break: keep-all;

}


/* =========================
   PROCESS section
========================= */

.program_process {
  padding: 60px 0 92px;
  background: var(--color-mustard);
  text-align: center;
  overflow: hidden;
}

.program_process .l_inner {
  overflow: visible;
}

/* 상단 */
.program_process_head {
  margin-bottom: 80px;
}

.program_process_title {
  margin: 0 0 8px;
  color: var(--color-black);
  font-size: var(--font-h3);
  font-weight: var(--font-weight-b);
  line-height: 1.3;
  word-break: keep-all;
}

.program_process_desc {
  margin: 0;
  color: var(--color-black);
  font-size: var(--font-lg);
  font-weight: var(--font-weight-r);
  line-height: 1.4;
  word-break: keep-all;
}

/* 플로우 */
.program_process_flow {
  display: flex;
  justify-content: center;
}

.program_process_list {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  align-items: stretch;
}

/* 공통 step */
.program_process_step,
.program_process_group {
  position: relative;
  min-width: 0;
  box-sizing: border-box;
}

.program_process_step {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 10px;
  color: var(--color-black);
  font-size: var(--font-md);
  font-weight: var(--font-weight-b);
  line-height: 1.2;
  text-align: center;
  word-break: keep-all;

  -webkit-clip-path: polygon(
    0 0,
    calc(100% - 16px) 0,
    100% 50%,
    calc(100% - 16px) 100%,
    0 100%,
    16px 50%
  );
  clip-path: polygon(
    0 0,
    calc(100% - 16px) 0,
    100% 50%,
    calc(100% - 16px) 100%,
    0 100%,
    16px 50%
  );
}

.program_process_step + .program_process_group,
.program_process_group + .program_process_step,
.program_process_step + .program_process_step {
  margin-left: -16px;
}

/* 강조 묶음 */
.program_process_group {
  flex: 2;
  z-index: 2;
}

.program_process_group_box {
  position: relative;
  display: flex;
  width: 100%;
  padding: 3px;
  background: var(--color-orange);
  box-sizing: border-box;

  -webkit-clip-path: polygon(
    0 0,
    calc(100% - 16px) 0,
    100% 50%,
    calc(100% - 16px) 100%,
    0 100%,
    16px 50%
  );
  clip-path: polygon(
    0 0,
    calc(100% - 16px) 0,
    100% 50%,
    calc(100% - 16px) 100%,
    0 100%,
    16px 50%
  );
}

.program_process_group_box .program_process_step {
  flex: 1;
  margin-left: 0;
}



/* 1단계 */
.program_process_list > .program_process_step:first-child {
  background: linear-gradient(90deg, #ffffff 0%, #f9e2d6 100%);
  flex: 0.9;

  -webkit-clip-path: polygon(
    0 0,
    calc(100% - 16px) 0,
    100% 50%,
    calc(100% - 16px) 100%,
    0 100%
  );
  clip-path: polygon(
    0 0,
    calc(100% - 16px) 0,
    100% 50%,
    calc(100% - 16px) 100%,
    0 100%
  );
}

.program_process_group_box .program_process_step:nth-child(1) {
  background: linear-gradient(90deg, #f9e2d6 0%, #f2c3ab 100%);
  padding: 18px 10px 18px 14px;
  flex: 1.7;
}

.program_process_group_box .program_process_step:nth-child(2) {
  background: linear-gradient(90deg, #f2c3ab 0%, #ec9d78 100%); 
  padding: 18px 8px 18px 12px;
  flex: 1.5;
}

.program_process_group_box .program_process_step + .program_process_step {
  margin-left: -16px;
}

/* 뒤 단계 */
.program_process_list > .program_process_step:nth-child(3) {
  background: linear-gradient(90deg, #ec9d78 0%, #e7743f 100%);
  padding: 18px 10px;
  flex: 0.8;
}

.program_process_list > .program_process_step:nth-child(4) {
  background: linear-gradient(90deg, #e7743f 0%, #E04300 100%);
  padding: 18px 4px 18px 10px;
  flex: 0.9;
}

.program_process_list > .program_process_step:nth-child(5) {
  background: linear-gradient(90deg, #E04300 0%, #E04300 100%);
  color: var(--color-white);
  padding: 18px 4px 18px 10px;
  flex: 0.8;
}

/* 상단 배지 */
.program_process_group_badge {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 14px);
  transform: translateX(-50%);
  z-index: 4;
  white-space: nowrap;
  animation: program_process_badge_float 1.8s ease-in-out infinite;
}

@keyframes program_process_badge_float {
  0% {
    transform: translateX(-50%) translateY(0);
  }
  50% {
    transform: translateX(-50%) translateY(6px);
  }
  100% {
    transform: translateX(-50%) translateY(0);
  }
}

.program_process_group_badge_text {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 18px;
  border-radius: var(--radius-round);
  color: var(--color-white);
  font-size: var(--font-h5);
  font-weight: var(--font-weight-b);
  line-height: 1;
  background: var(--color-orange);
}

.program_process_group_badge_text::after {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(100% - 1px);
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-top: 10px solid var(--color-orange);
}

/* ALL FREE */
.program_process_group_free {
  position: absolute;
  left: 45%;
  top: calc(100% + 10px);
  transform: translateX(-50%);
  z-index: 4;
  width: 132px;
  text-align: center;
}

.program_process_group_free_bracket {
  position: relative;
  display: block;
  width: 100%;
  height: 22px;
  margin: 0 auto 8px;
  background: url("/assets/images/program_process_bracket.png") no-repeat center;
  background-size: 80% 80%;
}

.program_process_group_free_bracket::before,
.program_process_group_free_bracket::after {
  content: "";
  position: absolute;
  bottom: -2px;
  width: 16px;
  height: 10px;
  background: var(--color-mustard);
}

.program_process_group_free_bracket::before {
  left: -2px;
  border-top-right-radius: 10px;
}

.program_process_group_free_bracket::after {
  right: -2px;
  border-top-left-radius: 10px;
}

.program_process_group_free_text {
  display: inline-block;
  position: relative;
  margin: 0;
  color: var(--color-black);
  font-size: var(--font-h4);
  font-weight: var(--font-weight-b);
  line-height: 1;
}

.program_process_group_free_text::after {
  content: "";
  position: absolute;
  left: -4px;
  right: -4px;
  bottom: 0;
  height: 10px;
  z-index: -1;
  background: var(--color-yellow);
}

/* 빛 지나감 
.program_hero_overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;

  background: linear-gradient(
    120deg,
    rgba(255,255,255,0) 30%,
    rgba(255,255,255,0.25) 50%,
    rgba(255,255,255,0) 70%
  );

  transform: translateX(-100%);
}

/* active 슬라이드에서만 실행 
.swiper-slide-active .program_hero_overlay {
  animation: hero_light_sweep 1.6s ease-out;
  animation-delay: 2.6s;
} */


/* =========================
   CTA section
========================= */

.program_cta {
  position: relative;
  padding: 60px 0;
  background-image: url('/assets/images/program_cta_m.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  text-align: center;
}

.program_cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--color-overlay-dark);
}

.program_cta .l_inner {
  position: relative;
  z-index: 1;
}

.program_cta_content {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.program_cta_title {
  margin: 0 0 16px;
  font-size: var(--font-h2);
  font-weight: var(--font-weight-b);
  line-height: 1.4;
  color: var(--color-white);
  word-break: keep-all;
}

.program_cta_desc {
  margin: 0 0 28px;
  font-size: var(--font-h5);
  font-weight: var(--font-weight-r);
  line-height: 1.6;
  color: var(--color-white);
  opacity: 0.9;
  word-break: keep-all;
}

.program_cta_button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 22px;
  font-size: var(--font-h4);
  font-weight: var(--font-weight-b);
  color: var(--color-black);
  background: var(--color-orange-light);
  border-radius: var(--radius-s);
  text-decoration: none;
}

.program_cta_button_icon {
  width: 18px;
  height: 18px;
  background-image: url('/assets/images/icon_search.png');
  background-size: contain;
  background-repeat: no-repeat;
}



/* =========================
   NOTICE section
========================= */

.program_notice {
  padding: 14px 0;
  background: var( --color-graye);
}

.program_notice .l_inner {
  overflow: hidden;
}

.program_notice_roll {
  position: relative;
  height: 36px;
  overflow: hidden;
}

.program_notice_list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.program_notice_item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 36px;
  opacity: 1;
}

.program_notice_date {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  white-space: nowrap;
  min-width: 96px;
  height: 36px;
  padding: 0 14px;
  font-size: var(--font-lg);
  font-weight: var(--font-weight-m);
  color: var(--color-white);
  border-radius: var(--radius-s);
  background-color: var(--color-black6);
}

.program_notice_link {
  max-width: 100%;
  flex: 1;
  min-width: 0;
  font-size: var(--font-h5);
  font-weight: var(--font-weight-m);
  color: var(--color-black2);
  white-space: nowrap;     /* 줄바꿈 금지 */
  overflow: hidden;        /* 넘치는 부분 숨김 */
  text-overflow: ellipsis; /* ... 처리 */
}

@media (hover: hover) and (pointer: fine) {
  .program_notice_link:hover {
    text-decoration: underline;
  }
}