.course_header {
  position: relative;
  display: inline-block;
  width: 100%;
}

.course_img {
  width: 100%;
  height: auto;
  background-color: black;
  display: block;
  clip-path: inset(2.6vw 0 0 0);
  margin-top: -2.6vw;
}

.course_title {
  position: absolute;
  top: 50%;
  left: 13.02vw;
  transform: translateY(-50%);
  color: var(--background_white1);
  font-size: 3.12vw;
  font-weight: bold;
}

.course_page {
  margin-top: 1.56vw;
  margin-left: 5.73vw;
  color: var(--text_color2);
  font-size: 1.15vw;
}

.courses_main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.0vw 15.62vw 10.42vw 15.62vw;
  position: relative;
}

.courses_btn {
  position: absolute;
  top: 0;
  right: 7.81vw;
  width: 10.42vw;
  height: 10.42vw;
}

.courses_container {
  display: flex;
  width: 100%;
  margin-top: 4.17vw;
}

.courses_container img {
  width: 8.85vw;
  height: 8.85vw;
}

.course_texts {
  margin-left: 2.6vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.course_text1 {
  color: var(--text_color1);
  font-size: 3.12vw;
  font-weight: bold;
}

.course_text2 {
    color: var(--text_color1);
    font-size: 1.56vw;
    text-align: left;
}

.course_annotation {
  margin-top: 5.21vw;
  color: var(--text_color2);
  font-size: 1.3vw;
}

.program_bg {
  display: flex;
  flex-direction: column;
}

.program_header {
  background-color: var(--text_color3);
  display: flex;
  align-items: center;
  justify-content: center;
}

.program_header div {
  margin: 5.21vw auto 10.42vw auto;
  color: var(--background_white1);
  font-size: 3.65vw;
}

.programs {
  margin-top: -7.81vw;
  padding-left: 10.42vw;
  padding-right: 10.42vw;
  display: flex;
  gap: 7.81vw;
}

.program_container {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
}

.program_container img {
  width: 16.67vw;
  height: 16.67vw;
}

.program_label {
  margin-top: -2.6vw;
  color: var(--text_color3);
  font-size: 1.82vw;
  font-weight: bold;
  min-height: 5.46vw;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  text-align: center;
}

.program_title {
  color: var(--text_color1);
  font-size: 2.08vw;
  font-weight: bold;
}

.program_text {
  margin-top: 1.56vw;
  color: var(--text_color1);
  font-size: 1.56vw;
}

.program_img {
 margin: 5.21vw;
}

.program_courses {
  background-color: var(--text_color3);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4.17vw;
}

.program_course {
  color: var(--background_white1);
  font-size: 2.08vw;
  font-weight: bold;
}

.program_class {
  margin-top: 1.56vw;
  color: var(--background_white1);
  font-size: 3.12vw;
  font-weight: bold;
}

.program_courses a {
  margin-top: 1.56vw;
  background-color: var(--background_white1);
  border-radius: 2.6vw;
  border: none;
  padding: 1.04vw 13.02vw;
  color: var(--text_color3);
  font-size: 2.08vw;
  font-weight: bold;
  cursor: pointer;
}

.group_bg {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10.42vw 7.81vw 15.62vw 7.81vw;
}

.group_title {
  color: var(--text_color1);
  font-size: 2.08vw;
}

.groups {
  width: 100%;
}

.group_container {
  margin-top: 4.17vw;
  width: 100%;
  display: flex;
}

.group {
  display: flex;
  flex-direction: column;
}

.group_name {
  background-color: var(--background_navy1);
  color: var(--background_white1);
  font-size: 2.08vw;
  font-weight: bold;
  text-align: center;
  width: 15.62vw;
}

.group img {
  margin: 1.56vw auto 0;
  height: 4.17vw;
}

.group_details {
  margin-left: 5.21vw;
  color: var(--text_color1);
  font-size: 1.3vw;
  width: 100%;
}

.group_detail {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group_detail.expanded {
  -webkit-line-clamp: unset;
  display: block;
}

.group_more {
  color: var(--text_color2);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.78vw;
}

.group_more::after {
  content: '>';
  display: inline-block;
  transform: rotate(90deg);
  font-size: 1.56vw;
}

.group_more.open::after {
  transform: rotate(-90deg);
}