@charset "UTF-8";
/* 서브페이지(#sc_sub)일 때 body, footer 배경색 흰색 */
body:has(#sc_sub) {
  background-color: #fff;
}
body:has(#sc_sub) footer {
  background-color: #fff;
}

/* 서브 비주얼 */
.sub_vis {
  width: 100%;
  height: 40vh;
  /* 화면 높이가 낮을 때(1280x720 노트북 등) 고정헤더와 텍스트가 겹치지 않도록 최소치 확보 */
  min-height: 340px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  display: flex;
  flex-direction: column;
  justify-content: end;
  /* 하단 탭 메뉴(.sub_nav)가 없는 페이지(로그인·사이트맵 등)는 바닥 여백 필요 */
  padding: 0 0 3rem;
  position: relative;
}
.sub_vis::before{
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: #00000086;
}
/* 탭 메뉴가 있는 페이지는 메뉴가 하단 여백을 대신하므로 패딩 제거 */
.sub_vis:has(.sub_nav) {
  padding-bottom: 0;
}
.sub_txt_wrap {
  width: 100%;
  display: flex;
  align-items: end;
  justify-content: space-between;
}
.sub_tit {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
}
.sub_tit .sub_tag {
  font-size: .8rem;
  color: #fff;
}
.sub_tit .tit {
  color: white;
  font-weight: bold;
  font-size: 2.4rem;
  line-height: 1.2;
  margin-top: .4rem;
}
.sub_tit .txt {
  color: #ffffffb8;
  font-size: 1rem;
  margin-top: 1rem;
}

/* 서브비주얼 로드 애니메이션 (타이틀 스르륵 등장) */
@keyframes subFadeUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sub_tit .sub_tag,
.sub_tit .tit,
.sub_tit .txt,
.sub_vis .nav_wrap,
.sub_vis .sub_nav {
  opacity: 0;
  animation: subFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.sub_tit .sub_tag {
  animation-delay: 0.15s;
}
.sub_tit .tit {
  animation-delay: 0.3s;
}
.sub_tit .txt {
  animation-delay: 0.45s;
}
.sub_vis .nav_wrap {
  animation-delay: 0.45s;
}
.sub_vis .sub_nav {
  animation-delay: 0.6s;
}
@media (prefers-reduced-motion: reduce) {
  .sub_tit .sub_tag,
  .sub_tit .tit,
  .sub_tit .txt,
  .sub_vis .nav_wrap,
  .sub_vis .sub_nav {
    opacity: 1;
    animation: none;
  }
}

.nav_wrap {
  display: flex;
  align-items: center;
  flex: 1;
  justify-content: end;
  gap: 0.4rem;
}
.nav_wrap li {
  line-height: 1;
  color: #ffffff87;
}
.nav_wrap .nav_home {
  color: #ffffffdb;
}
.nav_wrap .nav_depth1,
.nav_wrap .nav_depth2 {
  color: #ffffffdb;
}
.nav_wrap li .material-symbols-outlined{
  line-height: 1;
}
.nav_wrap li a{
  line-height: 1;
  color: #ffffff87 !important;
}
.sub_nav {
  margin-top: 2rem !important;
  display: flex;
  align-items: flex-start;
  border-top: 1px solid #ffffff78;
}
.sub_nav li {
  padding: 1rem 2rem;
  position: relative;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sub_nav li::before {
  content: "";
  width: 100%;
  height: 3px;
  background: white;
  position: absolute;
  top: -2px;
  left: 0;
  opacity: 0;
}
.sub_nav li.on::before {
  opacity: 1;
}
.sub_nav li a {
  font-size: 1rem;
  color: #ffffffa6;
  transition: 0.2s all;
}
.sub_nav li:hover a {
  color: white;
}
.sub_nav li.on a {
  color: #fff;
  font-weight: 600;
}

@media screen and (max-width: 1440px) {
  .sub_tit .tit {
    font-size: 2.1rem;
  }
  .sub_tit .txt {
    font-size: 0.95rem;
    margin-top: 0.8rem;
  }
  .nav_wrap li {
    font-size: 0.9rem;
  }
  .sub_nav li {
    padding: 1rem 1.4rem;
  }
  .sub_nav li a {
    font-size: 0.95rem;
  }
}
@media screen and (max-width: 1200px) {
  /* 타이틀과 네비가 세로로 쌓이면서 내용이 길어지므로 높이를 조금 늘려 보정 */
  .sub_vis {
    height: 44vh;
    min-height: 360px;
  }
  .sub_txt_wrap {
    flex-direction: column;
    align-items: flex-start;
  }
  .nav_wrap {
    justify-content: flex-start;
    margin-top: 1.2rem;
  }
  .sub_nav {
    margin-top: 1.5rem !important;
  }
}
@media screen and (max-width: 900px) {
  .sub_vis {
    height: 46vh;
    min-height: 340px;
    gap: 1rem;
    padding: 0 0 2.5rem;
    justify-content: end;
    background-position: 65% center;
  }
  .sub_vis:has(.sub_nav) {
    padding-bottom: 0;
  }
  .sub_tit .sub_tag {
    font-size: 0.85rem;
  }
  .sub_tit .tit {
    font-size: 1.8rem;
    margin-top: 0.4rem;
  }
  .sub_tit .txt {
    margin-top: 0.7rem;
    font-size: 0.9rem;
  }
  .nav_wrap {
    margin-top: 1rem;
  }
  /* 탭 메뉴: 세로로 쌓지 않고 가로 스크롤로 한 줄 유지 */
  .sub_nav.wFix {
    margin-top: 1.2rem !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
    user-select: none;
  }
  .sub_nav.wFix::-webkit-scrollbar {
    display: none;
  }
  .sub_nav.wFix.is_dragging {
    cursor: grabbing;
  }
  .sub_nav li {
    flex-shrink: 0;
    padding: 1rem 1.2rem;
    white-space: nowrap;
  }
  .sub_nav li a {
    font-size: 0.95rem;
  }
}
@media screen and (max-width: 500px) {
  .sub_vis {
    height: 42vh;
    min-height: 300px;
    padding: 0 0 2rem;
  }
  .sub_tit .sub_tag {
    font-size: 0.8rem;
  }
  .sub_tit .tit {
    font-size: 1.6rem;
  }
  .sub_tit .txt {
    font-size: 0.85rem;
    margin-top: 0.6rem;
  }
  .sub_nav.wFix {
    margin-top: 1rem !important;
  }
  .sub_nav li {
    padding: 0.8rem 1rem;
  }
  .sub_nav li a {
    font-size: 0.9rem;
  }
}
/* 서브 비주얼 */

.sub_content .top {
  margin-bottom: 2.2rem !important;
}

/* search_wrap */
.search_wrap {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin-top: 1.5rem;
  background: var(--bg-sub-light);
  padding: 1.5rem;
  border-radius: 12px;
  flex-direction: column;
}
.search_wrap .total {
  font-size: 1.1rem;
  color: #666;
}
.search_wrap .total strong {
  color: var(--main-color);
  font-weight: 600;
}
.search_wrap .search_form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  border-bottom: none;
  padding-bottom: 0;
  width: 100%;
}
.search_wrap .search_form .select_box {
  flex: 0 0 auto; /* 셀렉트는 내용 너비만큼 (개수 상관없이) */
}
.search_wrap .search_form .select_box select {
  height: 3rem;
  padding: 0 2.4rem 0 1rem;
  border: 1px solid var(--line-color);
  border-radius: 6px;
  font-size: 1rem;
  color: var(--sub-tit-color);
  background: #fff
    url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")
    no-repeat right 1rem center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  min-width: 18rem;
}
.search_wrap .search_form .input_box {
  flex: 1 1 16rem; /* 남는 공간 자동 채움, 최소 16rem */
}
.search_wrap .search_form .input_box {
  display: flex;
  align-items: center;
  border: 1px solid var(--line-color);
  border-radius: 6px;
  overflow: hidden;
}
.search_wrap .search_form .input_box input {
  width: calc(100% - 3rem);
  height: 3rem;
  padding: 0 1rem;
  border: 0;
  font-size: 1rem;
  color: var(--sub-tit-color);
}
.search_wrap .search_form .input_box input::placeholder {
  color: #aaa;
}
.search_wrap .search_form .btn_search {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  background: var(--main-color);
  color: #fff;
  cursor: pointer;
  transition: opacity 0.2s;
}
.search_wrap .search_form .btn_search:hover {
  opacity: 0.88;
}
@media screen and (max-width: 1200px) {
  .search_wrap .search_form .select_box select {
    min-width: 12rem;
  }
}
@media screen and (max-width: 900px) {
  /* 셀렉트는 한 줄에서 균등 분할(1개면 꽉 참), 검색창은 아래에서 혼자 꽉 차게 */
  .search_wrap .search_form .select_box {
    flex: 1 1 100%;
    min-width: 0;
  }
  .search_wrap .search_form .input_box {
    flex: 1 1 100%;
  }
  .search_wrap .search_form .input_box input {
    width: 100%;
  }
}
@media screen and (max-width: 500px) {
  /* 전부 세로로 한 줄씩 */
  .search_wrap .search_form .select_box {
    flex: 1 1 100%;
  }
  .nav_wrap{
    gap: .2rem;
  }
  .nav_wrap li{
    font-size: .7rem;
    white-space: nowrap;
  }
  .nav_wrap li span{
    font-size: .9rem;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}
/* search_wrap */

/* =========================================================
   [KTDI] 정보마당 - 섬유용어 (term)
   ========================================================= */
/* 초성(자음) 색인 */
.term_index {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 1.5rem;
}
.term_index a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.6rem;
  height: 2.6rem;
  padding: 0 0.6rem;
  border: 1px solid var(--line-color);
  border-radius: 6px;
  font-size: 1rem;
  color: var(--sub-tit-color);
  transition: all 0.2s;
}
.term_index a:hover {
  border-color: var(--main-color);
  color: var(--main-color);
}
.term_index a.on {
  background: var(--main-color);
  border-color: var(--main-color);
  color: #fff;
  font-weight: 600;
}

/* 용어 목록 (용어명 + 설명) */
.term_list {
  margin-top: 1.5rem;
  border-top: 2px solid var(--sub-tit-color);
  list-style: none;
  padding: 0;
}
.term_list .term_item {
  padding: 1.6rem 0.4rem;
  border-bottom: 1px solid var(--line-color);
}
.term_list .term_name {
  display: block;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--sub-tit-color);
}
.term_list .term_name .term_sub {
  margin-left: 0.5rem;
  font-size: 0.95rem;
  font-weight: 400;
  color: #999;
}
.term_list .term_desc {
  margin-top: 0.7rem;
  font-size: 1.05rem;
  line-height: 1.7;
  color: #555;
}
@media screen and (max-width: 500px) {
  .term_index a {
    min-width: 2.2rem;
    height: 2.2rem;
    font-size: 0.95rem;
  }
  .term_list .term_name {
    font-size: 1.1rem;
  }
  .term_list .term_name .term_sub {
    display: block;
    margin-left: 0;
    margin-top: 0.2rem;
  }
}
/* term */

/* =========================================================
   [KTDI] 1. 연구개발 (research)
   ========================================================= */
/* overview */
.overview_wrap {
  display: grid;
  grid-template-columns: 3fr 7fr;
  gap: 3rem;
}
.overview_wrap .img_box {
  border-radius: 12px;
  overflow: hidden;
}

/* 메타패브릭 오버뷰 */
.overview_wrap .mf_overview {
  grid-column: 1 / -1;
  min-width: 0;
  width: 100%;
  height: fit-content;
  overflow: hidden;
}
.overview_wrap .mf_overview .tit_s {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #00000080;
  padding: 0.6rem 1rem;
  color: white;
  text-align: center;
  border-radius: 12px 12px 0 0;
}
.overview_wrap .mf_overview .swiper-slide {
  height: fit-content;
}
.overview_wrap .mf_overview .img_box {
  height: 32rem;
}
.overview_wrap .mf_overview .img_box img {
  display: block; /* w/h/object-fit는 전역 img 규칙(main.css)에서 처리 */
}
/* 메타패브릭 오버뷰 */

.overview_txt {
  margin-top: 3rem;
  display: flex;
  align-items: stretch;
  gap: 3rem;
}
/* 화살표 있는 페이지만 박스 사이 간격 축소 */
.overview_txt:has(.arrow) {
  gap: 1rem;
}
.overview_txt .basic {
  flex: 3;
}
.overview_txt .basic_p {
  flex: 7;
}
.overview_txt .arrow{
  flex: 0 0 auto;
  align-self: center;
  width: fit-content;
  height: 40px;
  padding: 0;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 0;
}
.overview_txt .arrow img{
  object-fit: contain;
}

/* 마이크로팩토리 - basic_p 하나만. 위 .overview_wrap과 같은 grid로 맞춰
   오른쪽 이미지 칸(7fr)에 정확히 정렬 */
.overview_txt.mf_txt {
  display: grid;
  grid-template-columns: 3fr 7fr;
}
.overview_txt.mf_txt .basic_p {
  grid-column: 2;
}
/* 마이크로팩토리 */

.overview_txt > div {
  padding: 1.8rem;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: start;
  position: relative;
}
.overview_txt .basic {
  background: #f0f1f4;
  border: 1px solid #e2e2e2;
}
.overview_txt .tit_m {
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--line-color);
  width: 100%;
  font-weight: 600;
}
.overview_txt .txt {
  font-size: 1.2rem;
  color: #666;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.overview_txt .txt p {
  color: var(--sub-tit-color);
  font-weight: 500;
}
.overview_txt .basic_p {
  background: white;
  border: 1px solid var(--main-color);
  box-shadow: 0 4px 6px #00000015;
}
.overview_txt .basic_p .tit_m {
  color: var(--main-color);
}

.overview.swiper {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  position: relative;
}
.overview .swiper-wrapper {
  min-width: 0;
}
.overview .swiper-slide {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}
.overview .swiper-slide .tit_m {
  width: 100%;
  color: white;
}
.overview .swiper-slide .tit_st2 {
  position: absolute;
  width: 100%;
  height: 100%;
  justify-content: end;
  left: 0;
  z-index: 1;
  top: 0;
  padding: 1.8rem;
}
.overview .swiper-slide .tit_st2 strong {
  color: white;
}
.overview .swiper-slide .tit_st2 p {
  color: #d3d3d3;
  padding-left: 1rem;
  position: relative;
}
.overview .swiper-slide .tit_st2 p::before{
  content:"";
  position: absolute;
  width: 4px;
  height: 4px;
  background: #d3d3d3;
  border-radius:100%;
  left: 2px;
  top: 12px;
}

.overview .swiper-slide::before {
  content: "";
  width: 100%;
  height: 100%;
  background: linear-gradient(0deg, #00000059, transparent);
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
}
.overview .swiper-slide .img_box {
  height: fit-content;
}
.overview .swiper-slide .img_box img {
  display: block;
}

@media screen and (max-width: 1440px) {
  .content_wrap .top {
    margin-bottom: 1.2rem !important;
  }
  .overview_wrap {
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
  }
  .overview_txt {
    gap: 1.5rem;
    margin-top: 1.5rem;
  }
  .overview_txt .basic {
    flex: 4;
  }
  .overview_txt .basic_p {
    flex: 6;
  }
  /* 위 .overview_wrap이 한 칸으로 풀리므로 mf_txt도 전체폭 정렬 */
  .overview_txt.mf_txt {
    grid-template-columns: 1fr;
  }
  .overview_txt.mf_txt .basic_p {
    grid-column: auto;
  }
  .overview_txt > div {
    padding: 1.2rem;
  }
  .overview_txt .txt {
    font-size: 1rem;
  }
  .overview_txt .arrow{
    height: 40px;
  }
}
@media screen and (max-width: 1080px) {
  .overview_txt {
    gap: 1rem;
    margin-top: 1rem;
  }
  .overview_txt .tit_m {
    padding-bottom: 0.6rem;
    margin-bottom: 0.6rem;
  }
}
@media screen and (max-width: 900px) {
  .overview_txt {
    flex-direction: column;
  }
  .overview_txt .basic,
  .overview_txt .basic_p {
    flex: none;
    width: 100%;
  }
  .overview_wrap .mf_overview .tit_s {
    padding: 0.4rem 0.6rem;
  }
  .overview_txt .txt {
    gap: 0.4rem;
  }
  .overview_wrap .mf_overview .img_box {
    height: 20rem;
  }
  .overview_txt .arrow img {
    transform: rotate(90deg);
  }
}
/* overview */

/* core_tech */
.core_tech_wrap {
  position: relative;
}
.core_tech_wrap .swiper {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.core_tech_wrap .img_box {
  border-radius: 12px;
  overflow: hidden;
  height: 43rem;
}
/* 단독 인포그래픽 이미지(스와이퍼 밖, content_wrap 직속): 고정높이 cover 크롭 대신
   원본 비율 전체 표시 → 모바일에서 양옆 잘림 방지 */
.core_tech_wrap .content_wrap > .img_box {
  height: auto;
}
.core_tech_wrap .content_wrap > .img_box img {
  height: auto;
  object-fit: contain;
}

.core_tech_wrap:has(.swiper.use_case.core) {
  overflow: hidden;
}
.core_tech_wrap .swiper.use_case.core {
  overflow: visible;
}
.core_tech .swiper-slide {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-radius: 12px;
  overflow: hidden;
  background: #f0f1f4;
  border: 1px solid #e2e2e2;
}
.core_tech .swiper-slide .img_box {
  height: 550px;
}
.core_tech .swiper-slide .img_box img {
  display: block;
}
.core_tech .swiper-slide .txt_box {
  padding: 1.8rem;
  display: grid;
  grid-template-rows: 1fr 1fr;
}
.core_tech .swiper-slide .txt_list {
  border-top: 1px solid #e2e2e2;
  padding-top: 1.2rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.core_tech .swiper-slide .txt_list .list {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin-top: 0.4rem;
  max-width: 80%;
}
.core_tech .swiper-slide .txt_list .list p{
  position: relative;
  padding-left: 1rem;
}
.core_tech .swiper-slide .txt_list .list p::before{
  content: "";
  position: absolute;
  background: #d3d3d3;
  width: 4px;
  height: 4px;
  border-radius: 100%;
  left: 4px;
  top: 10px;
}
.core_tech .btn_wrapper {
  position: absolute;
  right: 1.8rem;
  bottom: 1.8rem;
  margin-top: 0;
  z-index: 1;
}
@media screen and (max-width: 1660px) {
  .core_tech .btn_wrapper {
    top: 58%;
    margin-top: 0 !important;
    bottom: unset;
    transform: translateY(-50%);
  }
  .core_tech .swiper-slide .img_box{
    height: 400px;
  }
}
@media screen and (max-width: 900px) {
  .core_tech .swiper-slide {
    grid-template-columns: repeat(1, 1fr);
  }
  .core_tech .swiper-slide .img_box {
    max-height: 300px;
  }
  .core_tech .swiper-slide .txt_box {
    padding: 1.2rem;
    height: 250px;
  }
  .core_tech.swiper .btn_wrapper {
    position: static;
    transform: none;
    margin-top: 1rem !important;
  }
  .core_tech .swiper-slide .txt_list .list {
    max-width: 100%;
  }
}
/* core_tech */

/* use_case */
.use_case_wrap {
  overflow: hidden;
}
.use_case_wrap .swiper {
  width: 100%;
  min-width: 0;
  overflow: visible;
}
.use_case .swiper-slide {
  position: relative;
  height: 34rem;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 1.8rem;
}
.use_case .swiper-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, #00000080, transparent);
}
.use_case .swiper-slide .tit_st2 {
  position: relative;
  z-index: 1;
}
.use_case .swiper-slide .tit_m {
  color: white;
}
.use_case .swiper-slide .txt {
  color: #d3d3d3;
}

@media screen and (max-width: 1200px) {
  .use_case .swiper-slide {
    height: 26rem;
  }
}
@media screen and (max-width: 900px) {
  .use_case .swiper-slide {
    height: 20rem;
  }
}
/* use_case */

/* infra */
.infra_list li {
  display: grid;
  grid-template-columns: 2fr 5fr 3fr;
  gap: 2rem;
  padding: 2rem 0;
  border-top: 1px solid #e2e2e2;
}
.infra_list li:first-child {
  padding-top: 0;
  border-top: 0;
}
.infra_list li .list {
  display: flex;
  flex-direction: column;
  font-size: 1.2rem;
}
.infra_list li .list > div {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
}
.infra_list li .list .list_txt {
  display: flex;
  flex-direction: column;
}

.infra_list li .list p {
  color: var(--sub-tit-color);
  font-weight: 600;
  width: fit-content;
  position: relative;
  white-space: nowrap;
  padding-right: 1rem;
}
.infra_list li .list p::before {
  content: "";
  background-color: #d2d2d2;
  width: 1px;
  height: 12px;
  position: absolute;
  top: 50%;
  right: -0.2rem;
  transform: translateY(-50%);
}
.infra_list li .list p.w100::before {
  display: none;
}

.infra_list li .img_box {
  border-radius: 12px;
  overflow: hidden;
}

@media screen and (max-width: 1660px) {
  .infra_list li .list p::before {
    display: none;
  }
}
@media screen and (max-width: 1200px) {
  .infra_list li .list {
    gap: 0.6rem;
  }
  .infra_list li .list p {
    width: fit-content;
  }
  .infra_list li .list > div {
    flex-direction: column;
    gap: 0.2rem;
  }
  .infra_list li {
    grid-template-columns: 5fr 5fr;
    grid-template-rows: auto 1fr;
    grid-template-areas:
      "tit img"
      "list img";
    align-items: start;
    gap: 1rem;
  }
  .infra_list li .tit_m {
    grid-area: tit;
  }
  .infra_list li .list {
    grid-area: list;
  }
  .infra_list li .img_box {
    grid-area: img;
    height: 100%;
  }

  .infra_list li .list {
    grid-template-columns: repeat(1, 1fr);
    gap: 1rem;
  }
  .infra_list li .list > div {
    border-bottom: 1px dashed #e2e2e2;
    padding-bottom: 0.6rem;
  }
  .infra_list li .list > div:last-child {
    border-bottom: none;
  }
}
@media screen and (max-width: 900px) {
  .infra_list li {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas:
      "tit"
      "list"
      "img";
    padding: 1.2rem 0;
    gap: 0.6rem;
  }
  .infra_list li .list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    padding: 0 0.6rem;
    gap: 1rem;
  }
  .infra_list li .tit_m {
    padding: 1rem 1.2rem;
    background: #f0f1f4;
    border-radius: 12px;
  }
  .infra_list li .img_box {
    height: 250px;
    margin-top: 0.6rem;
  }
  .infra_list li .list > div {
    font-size: 0.9rem;
    border-bottom: none;
  }
}
@media screen and (max-width: 500px) {
  .infra_list li .list {
    grid-template-columns: repeat(1, 1fr);
    gap: 0.6rem;
  }
  .infra_list li .list > div {
    border-bottom: 1px dashed #e2e2e2;
    padding-bottom: 0.6rem;
  }
  .infra_list li .list > div:last-child {
    border-bottom: none;
  }
}
/* infra */

/* infra 카드형 (제목+사진 장비/설비 갤러리) */
.infra_list.infra_card {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem;
}
.infra_list.infra_card li {
  display: flex;
  flex-direction: column;
  grid-template-columns: none;
  padding: 0;
  border-top: 0;
  background-color: #fff;
  border: 1px solid var(--line-color);
  border-radius: 12px;
  overflow: hidden;
  transition: 0.2s all;
  gap: 0rem;
}
.infra_list.infra_card li:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transform: translateY(-4px);
}
.infra_list.infra_card .img_box {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 0;
  overflow: hidden;
  margin-top: auto;
}
.infra_list.infra_card .img_box img {
  display: block;
  transition: 0.3s all;
  height: 100%;
}
.infra_list.infra_card li:hover .img_box img {
  transform: scale(1.05);
}
.infra_list.infra_card .tit_m {
  padding: 1.8rem 1.8rem 0.4rem;
}
.infra_list.infra_card .txt {
  padding: 0 1.8rem 3rem;
  color: var(--sub-txt-color);
  font-size: 1.1rem;
  line-height: 1.5;
}
@media screen and (max-width: 1200px) {
  .infra_list.infra_card {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
  }
  .infra_list.infra_card li {
    grid-template-columns: none;
  }
  .infra_list.infra_card .txt {
    font-size: 1rem;
  }
}
@media screen and (max-width: 900px) {
  .infra_list.infra_card {
    grid-template-columns: 1fr;
  }
  .infra_list.infra_card li {
    grid-template-columns: none;
    padding: 0;
  }
  .infra_list.infra_card .tit_m {
    padding: 1.2rem 1.4rem 0.4rem;
    background: none;
    border-radius: 0;
  }
  .infra_list.infra_card .img_box {
    height: auto;
    margin-top: 0;
  }
  .infra_list.infra_card .txt {
    padding: 0 1.4rem 1.4rem;
    font-size: 0.9rem;
  }
}
/* infra 카드형 */

/* =========================================================
   [KTDI] 2. 기업지원 (support)
   ========================================================= */
/* 시험분석센터 */
.tab_st3.wide {
  max-width: 1660px;
}
.tab_st3 {
  max-width: 640px;
  padding: 0.6rem;
  margin: 6rem auto 0;
  background: var(--bg-sub-light);
  border-radius: 12px;
  height: 100px;
}
.tab_st3 .btn_tab {
  padding: 0.6rem 0;
  flex: unset;
  font-size: 1.2rem;
  transition: all 0.2s;
  font-weight: 400;
  position: relative;
  flex: 1;
  height: 100%;
}
.tab_st3 .btn_tab.on {
  background-color: var(--main-color);
  color: white;
  font-weight: 500;
  box-shadow: none;
  border-radius: 12px;
  box-shadow: 0 4px 6px #00000020;
}
@media screen and (max-width: 1750px) {
  .tab_st3.wide {
    max-width: calc(100% - 6rem);
  }
}
@media screen and (max-width: 1400px) {
  .tab_st3{
    height: 80px;
  }
  .tab_st3.wide {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    height: fit-content;
  }
  .tab_st3 .btn_tab {
    height: 60px;
  }
}

/* 2열 그리드 구간(901~1400px)만: 버튼 사이 잔잔한 점선 (stats_service 5개 탭 기준)
   ※ 900px 이하는 1열로 따로 처리하므로 이 구간에서만 적용해 서로 안 겹치게 함 */
@media screen and (min-width: 901px) and (max-width: 1400px) {
  .tab_st3.wide .btn_tab {
    border-right: 1px dashed var(--line-color-dark);
    border-bottom: 1px dashed var(--line-color-dark);
  }
  .tab_st3.wide .btn_tab:nth-child(2n) {
    border-right: 0;
  } /* 오른쪽 열: 세로선 제거 */
  .tab_st3.wide .btn_tab:last-child {
    border-right: 0;
    border-bottom: 0;
  } /* 마지막(홀로) 칸 */
  .tab_st3.wide .btn_tab.on {
    border-color: transparent;
  } /* 활성 알약 주변은 비움 */
}
@media screen and (max-width: 1200px) {
  .tab_st3.wide {
    max-width: calc(100% - 4rem);
  }
}

/* 이미지 탭 (버튼 클릭으로 이미지 전환) */
.img_tab .btn_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.img_tab .btn_imgtab {
  padding: 1rem 1.4rem;
  border: 1px solid var(--line-color);
  border-radius: 12px;
  background: #fff;
  color: var(--sub-txt-color);
  font-size: 1.2rem;
  cursor: pointer;
  transition: all 0.2s;
}
.img_tab .btn_imgtab:hover {
  border-color: var(--main-color);
  color: var(--main-color);
}
.img_tab .btn_imgtab.on {
  background: var(--main-color);
  border-color: var(--main-color);
  color: #fff;
  font-weight: 600;
}
.img_tab .img_box {
  display: none;
  max-width: 1660px;
  border-radius: 12px;
  overflow: hidden;
  margin: 0 auto;
}
.img_tab .img_box.on {
  display: block;
}
.img_tab .img_box img {
  width: 100%;
  height: auto;
  display: block;
}
/* 단독 차트 이미지 박스 (img_tab 없이 쓰는 이미지에 동일한 룩 적용) */
.img_box_card {
  max-width: 1660px;
  margin: 0 auto;
  border-radius: 12px;
  overflow: hidden;
}
.img_box_card img {
  width: 100%;
  height: auto;
  display: block;
}
/* =========================================================
   결점분석사례 뷰 본문 (간격을 유틸 클래스 대신 스타일로 지정)
   ========================================================= */
/* 대제목 (1·2·3 섹션) */
.defect_view .view_body .tit_m {
  display: block;
  margin-top: 3rem;
}
.defect_view .view_body > .tit_m:first-child {
  margin-top: 0;
}
/* 소제목 (◦ 물성 확인 등) */
.defect_view .view_body .tit_s {
  margin-top: 2rem;
}
/* 본문 문단 (view_body 직계만 - 표 셀 안 문단은 제외) */
.defect_view .view_body > p {
  margin-top: 1rem;
  line-height: 1.7;
}
/* 표 */
.defect_view .view_body .table_wrap {
  margin-top: 1.5rem;
}
/* 표 안 이미지 (결점발생 형태) */
.defect_view .view_body .img_box_card {
  max-width: 520px;
  margin: 1rem 0 0;
}
/* 결과 및 소견 - ◦ 리스트 */
.defect_view .view_body .dot_list {
  margin-top: 1.5rem;
}
.defect_view .view_body .dot_list li {
  position: relative;
  padding-left: 1.3rem;
  font-size: 1.1rem;
  line-height: 1.7;
  color: #555;
}
.defect_view .view_body .dot_list li::before {
  content: "◦";
  position: absolute;
  left: 0;
  color: var(--main-color);
}
.defect_view .view_body .dot_list li + li {
  margin-top: 0.6rem;
}
/* 별첨 사진 (제목 포함) */
.defect_view .defect_figs {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.5rem;
}
.defect_view .defect_figs .defect_fig .img_box_card {
  max-width: 100%;
  margin-top: 0;
}
.defect_view .defect_figs .fig_tit {
  margin-top: 0.7rem;
  text-align: center;
  font-size: 0.95rem;
  color: #666;
}
@media (max-width: 640px) {
  .defect_view .defect_figs {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .img_tab .btn_imgtab {
    padding: 0.7rem 1.6rem;
    font-size: 1rem;
  }
}

/* 내부 탭 (패널 안 하위 탭) */
.subtab_wrap .btn_wrap {
  gap: 2.4rem;
  margin-bottom: 3rem;
  border-bottom: 1px solid var(--line-color);
  padding-bottom: 1.2rem;
  justify-content: center;
}

.col_wrap {
  display: grid;
  grid-template-columns: 2.5fr 7.5fr;
  gap: 2rem;
}
.col_wrap .right {
  padding: 2rem 0;
  padding-top: 0;
  border-top: none;
  /* 그리드 아이템 기본 min-width:auto 해제 → 안쪽 table_wrap이 overflow-x 스크롤 담당 */
  min-width: 0;
}
.col_wrap + .col_wrap .right {
  border-top: 1px solid #e2e2e2;
  padding-top: 1.8rem;
}
.col_wrap + .col_wrap .left {
  padding-top: 1.8rem;
}
.col_wrap .txt_wrap .txt {
  margin-top: 0.4rem;
}
.col_wrap .img_box {
  background: var(--bg-sub-dark);
  border-radius: 12px;
  padding: 3rem;
  height: 650px;
  max-height: 650px;
}
.col_wrap .img_box img {
  object-fit: contain;
  height: 100%;
}

.down_list {
  margin-top: 2rem;
}
.down_list .down_item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.6rem;
  margin-top: 0.8rem;
}
.down_list .down_item a {
  background: var(--bg-sub-light);
  padding: 1rem 1.4rem;
  width: 100%;
  border-radius: 12px;
  justify-content: space-between;
  color: #333;
  transition: 0.2s all;
}
.down_list .down_item a:hover {
  background: var(--bg-sub-color);
}
.media_wrap .img_box {
  max-height: 500px;
  overflow: hidden;
  height: 500px;
}
.process_list {
  display: grid;
  grid-template-columns: 1fr;
}
.process_list li {
  display: flex;
  flex-direction: column;
  padding: 1.4rem 0;
  background: none;
  border-top: 1px dashed var(--line-color-dark);
}
.process_list li:first-child {
  grid-column: 1 / -1;
  /* 위에 아무것도 없을 땐 첫 줄 상단선/여백 제거 */
  border-top: none;
  padding-top: 0;
}
/* 바로 위에 img_box가 형제로 있을 때만 간격 + 첫 줄 상단 구분선 복원 */
.img_box + .process_list {
  margin-top: 2rem;
}
.img_box + .process_list li:first-child {
  border-top: 1px dashed var(--line-color-dark);
  padding-top: 1.4rem;
}
.process_list .txt_wrap {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin-top: 1rem;
}
.process_list .txt_wrap .txt {
  margin-top: 0;
  color: var(--txt-color);
  position: relative;
  padding-left: 1rem;
}
.process_list .txt_wrap .txt::before {
  content: "";
  width: 4px;
  height: 4px;
  background: var(--main-color);
  position: absolute;
  left: 5px;
  top: 10px;
  border-radius: 100%;
}
.pill_list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.6rem;
  margin-top: 0.8rem;
}
.pill_list li {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: var(--bg-sub-light);
  padding: 1rem 1.4rem;
  width: 100%;
  border-radius: 12px;
  color: #333;
}
.pill_list li .material-symbols-outlined {
  flex-shrink: 0;
  font-size: 1.4rem;
  color: var(--main-color);
}

.contact_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.contact_list .contact_card {
  background: var(--bg-sub-light);
  border-radius: 12px;
  padding: 1.2rem 1.4rem;
}
.contact_list .contact_card .tit_s {
  margin-bottom: 1rem;
}
.contact_list .contact_card .info {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.contact_list .contact_card .info p {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  color: #333;
}
.center .map_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.bank {
  background-color: white;
  padding: 1.2rem 1.4rem;
  border-radius: 12px;
  margin-top: 1rem;
  gap: 0.4rem;
  display: grid;
  grid-template-columns: 1fr;
  border: 1px solid #e2e2e2;
}
.bank li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.img_wrap {
  display: grid;
  gap: 0.6rem;
  margin-top: 2rem;
  grid-template-columns: repeat(3, 1fr);
}
.img_wrap .img_box {
  padding: 0;
  background: white;
  height: fit-content;
  height: 200px;
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: end;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.img_wrap .img_box .cont {
  color: #eaeaea;
  z-index: 2;
  padding: 1.2rem;
  position: relative;
}
.img_wrap .img_box .cont .tit_s {
  color: white;
}
.img_wrap .img_box::before {
  content: "";
  width: 100%;
  height: 100%;
  background: linear-gradient(360deg, #00000059, transparent);
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}

@media screen and (max-width: 1200px) {
  .tab_st3 {
    max-width: 600px;
  }
  .tab_st3 .btn_tab {
    padding: 1.5rem;
    font-size: 1.2rem;
  }
  .tab_st3.tab_wide .btn_tab {
    padding: 0.9rem 1.2rem;
    font-size: 1.05rem;
  }

  .col_wrap {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .col_wrap + .col_wrap .left {
    padding: 1rem 0 0;
  }
  .col_wrap + .col_wrap .right {
    padding: 1rem 0;
  }
  .center .map_list {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 900px) {
  .tab_st3 {
    width: calc(100% - 4rem) !important;
    max-width: none;
    margin-top: 4rem;
  }
  .tab_st3 .btn_tab {
    padding: 1.2rem;
    font-size: 1rem;
  }

  /* 모바일: wide 탭(stats_service)을 1열 세로로 + 버튼 사이 가로 점선 */
  .tab_st3.wide {
    display: block;
  }
  .tab_st3.wide .btn_tab {
    display: block;
    width: 100%;
    height: auto;
    border-top: 1px dashed var(--line-color-dark);
  }
  .tab_st3.wide .btn_tab:first-child {
    border-top: 0;
  }
  .tab_st3.wide .btn_tab.on {
    border-top-color: transparent;
  }
  /* 탭 많은 경우 모바일: 알약이 내용 너비대로 가운데 줄바꿈 */
  .tab_st3.tab_wide {
    width: fit-content !important;
    max-width: calc(100% - 3rem);
  }
  .tab_st3.tab_wide .btn_tab {
    flex: 0 0 auto;
    padding: 0.8rem 1.1rem;
    font-size: 1rem;
  }

  .col_wrap .img_box {
    padding: 1.5rem;
    height: fit-content;
  }
  .img_wrap {
    flex-direction: column;
    grid-template-columns: 1fr !important;
  }
  .img_wrap .img_box {
    padding: 0;
    height: 200px;
  }
  .col_wrap .txt_wrap .txt br {
    display: none;
  }
  .btn_df {
    width: 100%;
    height: 50px;
    min-width: 200px;
  }
  .contact_list {
    grid-template-columns: 1fr;
  }
  .process_list {
    grid-template-columns: 1fr;
  }
  .map_wrap iframe{
    height: 400px;
  }
}
/* 시험분석센터 */

/* 친환경소재개발센터 */
.media_wrap .right {
  min-width: 0;
}
.equip_wrap {
  min-width: 0;
}
.eco_equip {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.eco_equip .swiper-slide {
  position: relative;
  height: 16rem;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 1.2rem;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.eco_equip .swiper-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, #00000099, transparent);
}
.eco_equip .swiper-slide .tit_s {
  position: relative;
  z-index: 1;
  color: #fff;
}

.step_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--bg-sub-light);
  border-radius: 12px;
  padding: 2.4rem !important;
  gap: 1.2rem;
  margin-bottom: 3rem;
}
.step_list.list8 {
  grid-template-columns: repeat(4, 1fr);
}
.step_list .step_card {
  background: white;
  border: 1px solid var(--main-color);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-radius: 12px;
  padding: 1.4rem 1rem;
  gap: 0.4rem;
  box-shadow: 0 4px 6px #00000020;
}
.step_list .step_card .tit_s {
  color: var(--main-color);
}

@media screen and (max-width: 900px) {
  .eco_equip .swiper-slide {
    height: 13rem;
  }
  .step_list {
    grid-template-columns: 1fr;
  }
  .step_list.list8 {
    grid-template-columns: 1fr;
  }
  br {
    display: none;
  }
  .step_list .step_card {
    padding: 1rem;
  }
}

/* 친환경소재개발센터 */

/* 설비 뷰페이지 */
.equip_view .equip_img {
  max-width: 640px;
  overflow: hidden;
  margin: 2rem auto;
}
.table_wrap {
  overflow: hidden;
  overflow-x: scroll;
}
.table_st1 {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  min-width: 1200px;
}

@media screen and (max-width: 900px){
  .table_st1{min-width: 600px;}
}
/* 설비 뷰페이지 */

/* 기술이전 (company_list) */
.company_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.company_list li {
  background: var(--bg-sub-light);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.2rem;
}

/* =========================================================
   [KTDI] 3. 알림마당 (board)
   ========================================================= */
/* board_list */
.board_list {
  border-top: 2px solid var(--sub-tit-color);
  margin-top: 2rem;
}
.board_list > li {
  border-bottom: 1px solid var(--line-color);
}
.board_list li a {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 1.6rem 2rem;
  transition: background 0.2s;
}
.board_list li:hover {
  background: #f0f1f4;
}
.board_list li a:hover .cat {
  background: white;
}
.board_list li a:hover .tit {
  color: var(--main-color);
}
.board_list li a:hover .cat.ing{
  background: var(--main-color);
}

.board_list .num {
  flex-shrink: 0;
  width: 2rem;
  text-align: center;
  font-size: 1.2rem;
  color: #999;
}
.board_list .num .material-symbols-outlined {
  color: var(--main-color);
  font-size: 1.6rem;
  background: #eef1f8;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100%;
  line-height: 1;
}
.board_list .cont {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 1rem;
}
.board_list .cont.cont2{
  align-items: flex-start;
}
.board_list .cont .tit_box{
  display: flex;
  align-items:start;
  gap: .6rem;
  flex-direction: column;
}
.board_list .cont .board_info{
  display: flex;
  align-items: center;
  gap: 1rem;
}
.board_list .cont .board_info li{
  display: flex;
  gap: .4rem;
  position: relative;
}
.board_list .cont .board_info li::before{
  content: "";
  width: 2px;
  height: 13px;
  background-color: var(--line-color-dark);
  position: absolute;
  right: -9px;
  top: 6px;
}
.board_list .cont .board_info li:last-child::before{
  display: none;
}
.board_list .cat {
  flex-shrink: 0;
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--main-color);
  background: #eef1f8;
  border-radius: 4px;
  padding: 0.4rem 0.6rem;
  line-height: 1;
}
.board_list li.notice .cat {
  color: #fff;
  background: var(--main-color);
}
.board_list li.notice:hover .cat {
  background: var(--main-color);
}
/* 입찰·채용 게시판: 진행 상태 뱃지 */
.board_list .cat.ing {
  color: #fff;
  background: var(--main-color);
}
.board_list .cat.done {
  color: var(--sub-txt-color);
  background: #e6e8ee;
}
.board_list .cont .tit {
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--sub-tit-color);
  transition: color 0.2s;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1;
}
.board_list .cont .txt {
  font-size: 1rem;
  color: #888;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.board_list .date {
  flex-shrink: 0;
  font-size: 1rem;
  color: #999;
}
.board_list li.notice {
  background: #fafafa;
}

@media screen and (max-width: 900px) {
  .board_list li a {
    gap: 0.4rem;
    padding: 1.2rem 0rem;
    align-items: flex-start;
    flex-direction: column;
  }
  .board_list .num {
    display: none;
  }
  .board_list .cont {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    width: 100%;
  }
  .board_list .cat {
    font-size: 0.8rem;
    padding: 0.25rem 0.6rem;
  }
  .board_list .cont .tit {
    font-size: 1.1rem;
    white-space: normal;
  }
  .board_list .cont .txt {
    font-size: 0.9rem;
  }
  .board_list .date {
    font-size: 0.85rem;
  }
}

/* board_list - 썸네일형(보도자료 등) : 기존 board_list 위에 썸네일만 추가 */
.board_list.type_thumb .cont {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.5rem;
}
.board_list.type_thumb .thumb {
  flex-shrink: 0;
  width: 180px;
  height: 110px;
  border-radius: 8px;
  overflow: hidden;
  background: #f0f1f4;
}
.board_list.type_thumb .thumb img {
  transition: transform 0.3s;
}
.board_list.type_thumb li a:hover .thumb img {
  transform: scale(1.05);
}

@media screen and (max-width: 900px) {
  .board_list.type_thumb li a {
    flex-direction: row;
    align-items: center;
    gap: 1rem;
  }
  .board_list.type_thumb .thumb {
    width: 96px;
    height: 68px;
  }
  .board_list.type_thumb .cont {
    width: auto;
    flex: 1;
  }
  .board_list.type_thumb .date {
    display: none;
  }
}
/* board_list */

/* board_foot (pagination + admin) */
.board_foot {
  position: relative;
  margin-top: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pagination {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.pagination .page_num,
.pagination .page_arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 6px;
  font-size: 1.05rem;
  color: #888;
  transition: 0.2s all;
}
.pagination .page_num:hover,
.pagination .page_arrow:hover {
  background: #f0f1f4;
  color: var(--sub-tit-color);
}
.pagination .page_num.on {
  background: var(--main-color);
  color: #fff;
  font-weight: 600;
}
.pagination .page_arrow .material-symbols-outlined {
  font-size: 1.4rem;
}
.board_foot .btn_wrap {
  position: absolute;
  right: 0;
}
.btn_board {
  display: inline-flex;
  align-items: center;
  padding: 1rem 1.6rem;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: 0.2s all;
  min-width: 120px;
}
.btn_board .material-symbols-outlined {
  font-size: 1.2rem;
}
.btn_del {
  background: #fff;
  border: 1px solid var(--line-color);
  color: #666;
}
.btn_del:hover {
  border-color: #d23c3c;
  color: #d23c3c;
}
.btn_write,
.btn_edit {
  background: var(--main-color);
  border: 1px solid var(--main-color);
  color: #fff;
}
.btn_write:hover,
.btn_edit:hover {
  opacity: 0.88;
}
.btn_list {
  gap: 0.3rem;
  background: var(--bg-sub-light);
  border: 1px solid var(--bg-sub-light);
  color: var(--sub-txt-color);
}
.btn_list:hover {
  opacity: 0.88;
}
/* 교육·세미나 신청 버튼 */
.btn_apply {
  gap: 0.3rem;
  background: var(--main-color);
  border: 1px solid var(--main-color);
  color: #fff;
}
.btn_apply:hover {
  opacity: 0.88;
}
.btn_check {
  gap: 0.3rem;
  background: #fff;
  border: 1px solid var(--main-color);
  color: var(--main-color);
}
.btn_check:hover {
  background: var(--bg-sub-light);
}
/* 신청기간이 아닐 때(마감·준비중) — 버튼에 disabled 속성 추가 */
.btn_board:disabled {
  background: #f0f1f4;
  border-color: #e2e5ec;
  color: #aeb4c0;
  cursor: not-allowed;
}
.btn_board:disabled:hover {
  opacity: 1;
  background: #f0f1f4;
}

@media screen and (max-width: 900px) {
  .board_foot {
    flex-direction: column;
    gap: 1rem;
    margin-top: 2rem;
  }
  .board_foot .btn_wrap {
    position: static;
    flex-direction: column;
    width: 100%;
  }
  .board_admin {
    position: static;
    transform: none;
    width: 100%;
    justify-content: flex-end;
  }
  .pagination .page_num,
  .pagination .page_arrow {
    width: 2.2rem;
    height: 2.2rem;
    font-size: 1rem;
  }
}
@media screen and (max-width: 500px) {
  .pagination {
    gap: 0.2rem;
  }
  .pagination .page_num,
  .pagination .page_arrow {
    width: 1.8rem;
    height: 1.8rem;
    font-size: 0.8rem;
  }
}
/* board_foot */

/* board_view */
.board_view {
  border-top: 2px solid var(--sub-tit-color);
  margin-top: 2rem;
}
.board_view .view_head {
  padding: 1.4rem 1rem;
  border-bottom: 1px solid var(--line-color);
}
/* 뱃지는 목록(.board_list .cat)과 동일한 값 사용 */
.board_view .view_head .cat {
  display: inline-block;
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--main-color);
  background: #eef1f8;
  border-radius: 4px;
  padding: 0.4rem 0.6rem;
  line-height: 1;
  margin-bottom: 1rem;
}
/* 교육·세미나 등 진행 상태 뱃지 */
.board_view .view_head .cat.ing {
  color: #fff;
  background: var(--main-color);
}
.board_view .view_head .cat.done {
  color: var(--sub-txt-color);
  background: #e6e8ee;
}
.board_view .view_tit {
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--sub-tit-color);
  line-height: 1.4;
}
.board_view .view_info {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1rem;
}
.board_view .view_info > span {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 1rem;
  color: #999;
  line-height: 1;
}
.board_view .view_info .material-symbols-outlined {
  font-size: 1.4rem;
  line-height: 1;
}

.board_view .view_file {
  padding: 1.4rem 1rem;
  background: #fafafa;
  border-bottom: 1px solid var(--line-color);
}
.board_view .view_file .file_tit {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--sub-tit-color);
  margin-bottom: 0.8rem;
}
.board_view .view_file ul {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.board_view .view_file a {
  font-size: 1rem;
  color: #666;
  transition: color 0.2s;
}
.board_view .view_file a:hover {
  color: var(--main-color);
  text-decoration: underline;
}
.board_view .view_file em {
  color: #aaa;
  font-style: normal;
  font-size: 0.9rem;
}

.board_view .view_body {
  padding: 2.5rem 2rem;
  min-height: 18rem;
  font-size: 1.1rem;
  line-height: 1.3;
  color: #555;
}
.board_view .view_body .img_box {
  max-width: 900px;
  margin: 1rem auto;
}

/* 교육·세미나 신청정보 테이블 (신청기간·정원·참가비 등) */
/* .table_st1 기본값은 넓은 통계표 기준(min-width:1200px)이라 신청정보용으로 해제 */
.seminar_head{
  display: flex;
  justify-content: space-between;
  align-items: end;
}
.board_view .view_tbl {
  min-width: 0;
}
.board_view .view_tbl th {
  font-size: 1rem;
}
.board_view .view_tbl td {
  line-height: 1.5;
  color: var(--sub-txt-color);
  font-weight: 400;
}
/* 신청기간 등 강조가 필요한 값 */
.board_view .view_tbl td .point {
  color: var(--main-color);
  font-weight: 600;
}
.board_view .view_tbl td .sub {
  font-size: 0.9rem;
  color: #aaa;
}

/* 뷰어보기 / 다운로드 버튼 영역 (통계 상세 등) */
.board_view .view_btns {
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  margin-top: 2.5rem;
}
@media screen and (max-width: 900px) {
  .seminar_head{
    flex-direction: column;
    align-items: start;
  }
  .seminar_head > div{
    width: 100%;
  }
  .seminar_head .btn_wrap {
    flex-direction: column;
    margin-top: 1rem;
  }
  .seminar_head .btn_wrap .btn{
    width: 100%;
  }
}

/* 이전/다음글 */
.view_nav {
  margin-top: 2.5rem;
  border-top: 1px solid var(--line-color);
  border-bottom: 1px solid var(--line-color);
}
.view_nav a {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1.4rem 1rem;
  transition: background 0.2s;
}
.view_nav a:hover {
  background: #f0f1f4;
}
.view_nav a:hover .tit {
  color: var(--main-color);
}
.view_nav .prev {
  border-bottom: 1px solid var(--line-color);
}
.view_nav .dir {
  flex-shrink: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--sub-tit-color);
  position: relative;
}
.view_nav .tit {
  font-size: 1rem;
  color: #666;
  transition: color 0.2s;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media screen and (max-width: 1200px) {
  .board_view {
    margin-top: 1rem;
  }
  .board_view .view_head {
    padding: 1.2rem;
  }
  .board_view .view_head .cat {
    margin-bottom: 0.6rem;
  }
  .board_view .view_tit {
    font-size: 1.4rem;
  }
  .board_view .view_info {
    margin-top: 0.6rem;
  }
  .board_view .view_file {
    padding: 1.2rem;
  }
  .board_view .view_body {
    padding: 1.2rem;
  }
}
@media screen and (max-width: 900px) {
  .board_view {
    margin-top: 1rem;
  }
  .board_view .view_head {
    padding: 1rem 0;
  }
  /* 목록(.board_list .cat)의 900px 이하 값과 동일하게 축소 */
  .board_view .view_head .cat {
    font-size: 0.8rem;
    padding: 0.25rem 0.6rem;
  }
  .board_view .view_tit {
    font-size: 1.4rem;
  }
  .board_view .view_info {
    gap: 1rem;
    margin-top: 1rem;
  }
  .board_view .view_info span {
    font-size: 0.9rem;
  }
  .board_view .view_file {
    padding: 1rem;
  }
  .board_view .view_tbl,
  .board_view .view_tbl tbody,
  .board_view .view_tbl tr,
  .board_view .view_tbl th,
  .board_view .view_tbl td {
    display: block;
    width: 100%;
  }
  .board_view .view_tbl th,
  .board_view .view_tbl td {
    border-width: 0 0 1px;
    padding: 0.7rem 0.8rem;
    font-size: 0.95rem;
  }
  .board_view .view_tbl tbody tr:first-child th {
    border-top-width: 0;
  }
  .board_view .view_body {
    padding: 1rem 0;
    font-size: 0.9rem;
  }
  .view_nav a {
    gap: 1rem;
    padding: 1rem;
  }
  .view_nav .dir {
    width: 4rem;
    font-size: 0.9rem;
  }
  .view_nav .tit {
    font-size: 0.95rem;
  }

  .btn_board {
    padding: 0.8rem 1.4rem;
    width: 100%;
  }
}

@media screen and (max-width: 500px) {
  .board_view .view_tit {
    font-size: 1.2rem;
  }
}
/* board_view */

/* media_list (영상 카드리스트) */
.media_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
}
.media_list li {
  border: 1px solid #e2e2e2;
  border-radius: 12px;
}
.media_list li a {
  display: block;
}
.media_list .thumb {
  position: relative;
  border-radius: 12px 12px 0 0;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #eee;
}
.media_list .thumb img {
  transition: transform 0.3s;
}
.media_list li a:hover .thumb img {
  transform: scale(1.05);
}
.media_list .thumb::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #00000020;
  opacity: 0;
  transition: opacity 0.3s;
}
.media_list li a:hover .thumb::before {
  opacity: 1;
}
.media_list .play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  background: #ffffffe6;
  color: var(--main-color);
  transition: 0.3s all;
}
.media_list li a:hover .play {
  background: var(--main-color);
  color: #fff;
}
.media_list .play .material-symbols-outlined {
  font-size: 2rem;
}
.media_list .cont {
  padding: 1.4rem;
  gap: 0.4rem;
  display: flex;
  flex-direction: column;
}
.media_list .cont .tit {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--sub-tit-color);
  transition: color 0.2s;
}
.media_list li a:hover .cont .tit {
  color: var(--main-color);
}
.media_list .cont .date {
  display: block;
  margin-top: 0.2rem;
  font-size: 1rem;
  color: #999;
}

@media screen and (max-width: 1080px) {
  .media_list {
    grid-template-columns: repeat(2, 1fr);
  }
  .media_list .cont .tit {
    font-size: 1rem;
  }
}
@media screen and (max-width: 560px) {
  .media_list {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .media_list .cont .tit {
    font-size: 1.1rem;
  }
}
/* media_list */

/* =========================================================
   [KTDI] 4. 정보마당 (info) — 전용 스타일 없음(공용 재사용)
   ========================================================= */

/* =========================================================
   [KTDI] 5. 기관소개 (about)
   ========================================================= */
/* 인사말 */
.greeting .tit_st1 {
  gap: 1rem;
}
.tit_st1 h2 {
  font-size: 5rem;
  font-weight: bold;
  line-height: 1.1;
  color: var(--tit-color);
  letter-spacing: -2px;
}
.greeting_img {
  margin: 3rem 0;
  border-radius: 12px;
  overflow: hidden;
  height: fit-content;
}
.greeting_img img {
  display: block;
  width: 100%;
}
.greeting_txt_wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
  align-items: start;
}
/* 좌측 리드 문구 (원래대로) */
.greeting_txt_wrap > .tit_m {
  line-height: 1.5;
}
/* 우측 본문 */
.greeting_txt_wrap .greeting_body p {
  font-size: 1.1rem;
  line-height: 1.9;
  color: #666;
}
.greeting_txt_wrap .greeting_body p + p {
  margin-top: 1.2rem;
}
.greeting_txt_wrap .greeting_body .point {
  margin-top: 1.8rem;
  font-weight: 600;
  color: var(--sub-tit-color);
}
/* 원장 서명 */
.greeting_txt_wrap .greeting_sign {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line-color);
  text-align: right;
}
.greeting_txt_wrap .greeting_sign .sign_label {
  display: block;
  font-size: 1rem;
  color: #888;
  margin-bottom: 0.6rem;
}
.greeting_txt_wrap .greeting_sign .sign_name {
  font-size: 1.9rem;
  font-weight: 700;
  color: var(--sub-tit-color);
  letter-spacing: 0.3em;
}

/* 상단 큰 영문 타이틀 - 화면 폭별 단계 축소 (반응형 깨짐 방지) */
@media screen and (max-width: 1440px) {
  .greeting h2 {
    font-size: 3.6rem;
    letter-spacing: -1px;
  }
  .greeting_img {
    margin: 2rem 0;
  }
  .greeting_txt_wrap {
    gap: 2.5rem;
  }
}
@media screen and (max-width: 1024px) {
  .greeting h2 {
    font-size: 3rem;
  }
}
@media screen and (max-width: 900px) {
  .greeting h2 {
    font-size: 2.6rem;
    letter-spacing: -0.5px;
  }
  .greeting_img {
    margin: 1.5rem 0;
    height: 200px;
  }
  /* 좌우 2단 → 세로 1단 */
  .greeting_txt_wrap {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .greeting_txt_wrap .greeting_body p {
    font-size: 1rem;
    line-height: 1.8;
  }
  .greeting_txt_wrap .greeting_sign .sign_name {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 600px) {
  .greeting h2 {
    font-size: 2rem !important;
    letter-spacing: -0.3px;
    line-height: 1.2;
  }
}
@media screen and (max-width: 400px) {
  .greeting h2 {
    font-size: 1.6rem;
  }
}
/* 인사말 */

/* =========================================================
   개인정보처리방침 (privacy)
   ========================================================= */
.policy_page .policy_intro {
  padding-bottom: 2rem;
  margin-bottom: 1rem;
  border-bottom: 2px solid var(--sub-tit-color);
  font-size: 1.1rem;
  line-height: 1.8;
  color: #555;
  margin-top: 0.4rem;
}
.policy_page .policy_sec {
  margin-top: 2.5rem;
}
.policy_page .policy_tit {
  margin-bottom: 1rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--sub-tit-color);
}
.policy_page .policy_sec p {
  font-size: 1.05rem;
  line-height: 1.8;
  color: #666;
}
.policy_page .policy_sec p + p {
  margin-top: 0.5rem;
}
.policy_page .policy_sec p.policy_path {
  margin-top: 0.9rem;
  padding: 0.9rem 1.2rem;
  background: var(--bg-sub-light);
  border-radius: 8px;
  font-size: 1rem;
  color: var(--sub-tit-color);
}
/* 항목 리스트 */
.policy_page .policy_list {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.policy_page .policy_list li {
  position: relative;
  padding-left: 1.1rem;
  font-size: 1.05rem;
  line-height: 1.7;
  color: #666;
}
.policy_page .policy_list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--main-color);
}
.policy_page .policy_list li strong {
  color: var(--sub-tit-color);
  font-weight: 600;
}
/* 정보 박스 (보호책임자·구제기관) */
.policy_page .policy_box {
  margin-top: 1rem;
  padding: 1.4rem 1.6rem;
  background: var(--bg-sub-light);
  border-radius: 10px;
}
.policy_page .policy_box + .policy_box {
  margin-top: 1rem;
}
.policy_page .policy_box .policy_box_tit {
  margin-bottom: 0.8rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--sub-tit-color);
}
.policy_page .policy_dl {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.policy_page .policy_dl li {
  display: flex;
  gap: 0.8rem;
  font-size: 1rem;
  line-height: 1.6;
  color: #666;
}
.policy_page .policy_dl li span {
  flex: 0 0 8rem;
  font-weight: 500;
  color: var(--sub-tit-color);
}
@media screen and (max-width: 900px) {
  .policy_page .policy_tit {
    font-size: 1.15rem;
  }
  .policy_page .policy_sec p,
  .policy_page .policy_list li {
    font-size: 1rem;
  }
  .policy_page .policy_dl li {
    flex-direction: column;
    gap: 0.1rem;
  }
  .policy_page .policy_dl li span {
    flex: none;
  }
}
/* 정책 하위 항목 (가./나. 들여쓰기) */
.policy_page .policy_sec p.policy_sub {
  padding-left: 1.2rem;
  color: #888;
}
/* privacy */

/* =========================================================
   클린신고센터 (clean) - 목록 헤더 + 신고 글쓰기 폼
   ========================================================= */
.clean .board_head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}
.clean .board_head .total {
  font-size: 1.1rem;
  color: #666;
}
.clean .board_head .total strong {
  color: var(--main-color);
  font-weight: 600;
}
/* 글쓰기 폼 */
.board_write {
  margin-top: 2rem;
  border-top: 2px solid var(--sub-tit-color);
}
.board_write .write_row {
  display: flex;
  border-bottom: 1px solid var(--line-color);
}
.board_write .write_label {
  flex: 0 0 160px;
  display: flex;
  align-items: center;
  padding: 1.2rem 1.5rem;
  background: var(--bg-sub-light);
  font-weight: 500;
  color: var(--sub-tit-color);
}
.board_write .write_label .req {
  color: var(--main-color);
  margin-left: 0.2rem;
}
.board_write .write_field {
  flex: 1;
  min-width: 0;
  padding: 0.9rem 1.2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
}
.board_write .write_field input[type="text"] {
  width: 100%;
  height: 2.8rem;
  padding: 0 1rem;
  border: 1px solid var(--line-color);
  border-radius: 6px;
  font-size: 1rem;
  color: var(--sub-tit-color);
}
.board_write .write_field.readonly input {
  background: #f5f5f5;
  color: #999;
}
.board_write .write_field textarea {
  width: 100%;
  min-height: 280px;
  padding: 1rem;
  border: 1px solid var(--line-color);
  border-radius: 6px;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--sub-tit-color);
  resize: vertical;
}
.board_write .write_field input::placeholder,
.board_write .write_field textarea::placeholder {
  color: #aaa;
}
.board_write .write_field .write_help {
  width: 100%;
  font-size: 0.9rem;
  color: #999;
}
/* 파일 업로드 (파일명 input + 파일업로드 버튼) */
.board_write .file_upload {
  display: flex;
  gap: 0.6rem;
  width: 100%;
  max-width: 520px;
}
.board_write .file_upload .file_name {
  flex: 1;
  min-width: 0;
  max-width: none;
  height: 2.8rem;
  padding: 0 1rem;
  border: 1px solid var(--line-color);
  border-radius: 6px;
  font-size: 1rem;
  color: var(--sub-tit-color);
  background: #fff;
}
.board_write .file_upload .file_input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.board_write .file_upload .btn_file {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  height: 2.8rem;
  padding: 0 1.3rem;
  background: var(--sub-tit-color);
  color: #fff;
  border-radius: 6px;
  font-size: 1rem;
  white-space: nowrap;
  cursor: pointer;
  transition: opacity 0.2s;
}
.board_write .file_upload .btn_file:hover {
  opacity: 0.88;
}
.write_btns {
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  margin-top: 2rem;
}
@media screen and (max-width: 768px) {
  .clean .board_head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.8rem;
  }
  .board_write .write_row {
    flex-direction: column;
  }
  .board_write .write_label {
    flex: none;
    padding: 0.9rem 1rem;
  }
  .board_write .write_field input[type="text"] {
    max-width: 100%;
  }
}
/* clean */

/* =========================================================
   교육·세미나 신청서 (seminar_apply)
   ========================================================= */
.apply_form {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin-top: 2rem;
}
.apply_sec {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.apply_sec_head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.apply_form .write_btns,
.apply_sec .board_view,
.apply_sec .table_st1 {
  margin-top: 0;
}

.apply_tbl th,
.apply_tbl td {
  padding: 0.6rem 0.7rem;
}
/* 항목/내용 2열 형태는 넓은 통계표용 min-width 해제 */
.apply_tbl.apply_tbl_row {
  min-width: 0;
}
.apply_tbl input[type="text"],
.apply_tbl input[type="tel"],
.apply_tbl input[type="email"],
.apply_tbl select {
  box-sizing: border-box;
  width: 100%;
  height: 2.8rem;
  padding: 0 0.8rem;
  border: 1px solid var(--line-color);
  border-radius: 6px;
  font-size: 1rem;
  color: var(--sub-tit-color);
  background: #fff;
}
.apply_tbl input::placeholder {
  color: #aaa;
}

.apply_tbl select {
  padding-right: 2.2rem;
  background: #fff
    url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")
    no-repeat right 0.8rem center;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.apply_tbl td .checkbox {
  display: flex;
  justify-content: center;
}
.apply_tbl td .checkbox label {
  width: auto;
  margin-right: 0;
}
.apply_tbl td .checkbox label:before {
  margin-right: 0 !important;
}
.apply_form .checkbox input[type="checkbox"]:checked + label:before {
  background-color: var(--main-color);
}
.apply_tbl .p_no {
  color: var(--sub-txt-color);
}
.apply_sec .req {
  color: var(--main-color);
  margin-left: 0.2rem;
}

@media screen and (max-width: 900px) {
  .apply_form {
    gap: 2rem;
  }
  .apply_sec {
    gap: 0.8rem;
  }
}
/* seminar_apply */

/* =========================================================
   교육·세미나 신청확인 (seminar_check)
   - 조회영역은 목록 검색바(.search_wrap)를 재사용
   ========================================================= */
.apply_sec .search_wrap {
  margin-top: 0;
}
.check_search .search_form .input_box input {
  width: 100%;
}
@media screen and (min-width: 901px) {
  .check_search .search_form .input_box {
    flex: 1 1 12rem;
  }
}
.check_search .search_form .btn {
  flex: 0 0 auto;
  gap: 0.2rem;
  height: 3rem;
  padding: 0 1.6rem;
  border-radius: 6px;
  font-size: 1rem;
}
@media screen and (max-width: 900px) {
  .check_search .search_form .btn {
    flex: 1 1 100%;
  }
}
/* seminar_check */

/* =========================================================
   교육·세미나 신청완료 (seminar_complete)
   ========================================================= */
.apply_done {
  max-width: 500px;
  margin: 0 auto;
  width: 100%;
}
.apply_done .done_msg {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 4rem 2rem 2rem;
  text-align: center;
  background: var(--bg-sub-light);
  border-radius: 12px;
}
.apply_done .done_msg .material-symbols-outlined {
  font-size: 4rem;
  line-height: 1;
  color: var(--main-color);
  margin-bottom: .4rem;
}
.apply_done .done_msg .txt {
  color: var(--sub-txt-color);
}
.apply_done .apply_sec {
  width: 100%;
  max-width: 640px;
  margin-inline: auto;
  margin-top: 2rem;
}
.apply_done .info_box {
  border-color: var(--line-color);
  box-shadow: none;
  padding: 0 1.2rem;
}
.apply_done .info_box dl {
  display: flex;
  flex-direction: column;
}
.apply_done .info_box .info_row{
  padding: 1.2rem 0;
  border-bottom: 1px dashed var(--line-color);
}
.apply_done .info_box .info_row:last-child{
  border-bottom: none;
}
.apply_done .info_box .info_row + .info_row {
  margin-top: 0;
}
.apply_done .info_box .info_row dt{text-align: left;}
@media screen and (max-width: 900px) {
  .apply_done .done_msg {
    padding: 2.5rem 1rem;
  }
  .apply_done .done_msg .material-symbols-outlined {
    font-size: 3.2rem;
  }
}
/* seminar_complete */

/* =========================================================
   채용공고 상단 안내 (recruit) - 기업지원 페이지 컴포넌트 재사용
   ========================================================= */
.step_list.list5 {
  grid-template-columns: repeat(5, 1fr);
}
.recruit_guide {
  margin-bottom: 2.5rem;
}
.recruit_guide .guide_list li {
  position: relative;
  padding-left: 1.1rem;
  font-size: 1.05rem;
  line-height: 1.7;
  color: #666;
}
.recruit_guide .guide_list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--main-color);
}
.recruit_guide .guide_list li + li {
  margin-top: 0.5rem;
}
@media screen and (max-width: 900px) {
  .step_list.list5 {
    grid-template-columns: 1fr;
  }
}
/* recruit */

/* =========================================================
   품목별수출통계서비스 (stats_export)
   ========================================================= */
.stats_export .stats_sec {
  margin-top: 3.5rem;
}
.stats_export .stats_sec > .tit_m {
  display: block;
  margin-bottom: 1rem;
}
.stats_export .stats_desc {
  font-size: 1.05rem;
  color: #666;
  margin-bottom: 1.2rem;
}
.stats_export .stats_unit {
  text-align: right;
  font-size: 0.9rem;
  color: #888;
  margin-bottom: 0.6rem;
}
/* 품목조회 iframe */
.stats_export .stats_iframe {
  border: 1px solid var(--line-color);
  border-radius: 8px;
  overflow: hidden;
}
.stats_export .stats_iframe iframe {
  display: block;
  width: 100%;
  height: 620px;
  border: 0;
}
/* 와이드 표 가로 스크롤 */
.stats_export .scroll_table {
  overflow-x: auto;
}
/* 차트 박스 */
.stats_export .chart_box {
  position: relative;
  height: 400px;
  margin-top: 1.5rem;
  padding: 1.5rem;
  background: #fff;
  border: 1px solid var(--line-color);
  border-radius: 12px;
}
.stats_export .chart_box_bar {
  height: 360px;
}
/* 국가 선택 탭 */
.stats_export .country_tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 2rem;
}
/* 버튼 모양은 공통 .img_tab .btn_imgtab 규칙을 그대로 사용 */
/* 선택 국가 상세 */
.stats_export .country_detail {
  margin-top: 1.5rem;
}
.stats_export .country_detail .country_name {
  margin-bottom: 0.8rem;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--sub-tit-color);
}
@media screen and (max-width: 900px) {
  .stats_export .stats_sec {
    margin-top: 2.5rem;
  }
  .stats_export .stats_iframe iframe {
    height: 460px;
  }
  .stats_export .chart_box {
    height: 320px;
    padding: 1rem;
  }
}
/* stats_export */

/* 비전 */
.vision .tit_st1 h2 {
  margin-top: 4rem;
}
.vision .tit_st1 .tit_m {
  margin-top: 1.6rem;
  position: relative;
}
.vision .tit_st1 .tit_m:first-of-type::before {
  content: "";
  width: 30px;
  height: 2px;
  background: var(--line-color);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -1rem;
}

.core_value {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.core_value li {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding: 1.8rem;
  border-radius: 12px;
  height: 10rem;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
}
.core_value li .tit_m {
  color: white;
}
.core_value li .txt {
  color: #d3d3d3;
}
@media screen and (max-width: 1200px) {
  .core_value {
    grid-template-columns: 1fr;
  }
  .core_value li {
    background-position: right center;
  }
  .tit_st1 h2 {
    font-size: 3rem;
  }
}

.strategic .content_wrap {
  position: relative;
}

.strategic .top {
  position: sticky;
  top: 8rem;
  background-color: var(--bg-color);
  padding: 1rem 0;
  z-index: -1;
}
.strategic_body {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.strategic_item {
  position: sticky;
  display: grid;
  align-items: flex-start;
  gap: 2rem;
  padding: 1rem 0;
  grid-template-columns: 3fr 7fr;
  margin-bottom: 1.2rem;
  background-color: var(--bg-color);
}
.strategic_item:nth-child(2) {
  top: 13rem;
}
.strategic_item:nth-child(3) {
  top: 14.2rem;
}
.strategic_item:nth-child(4) {
  top: 15.4rem;
}
.strategic_item:nth-child(5) {
  top: 16.6rem;
}

.strategic_item:last-child {
  margin-bottom: 0;
}

.strategic_item .st_cont {
  flex: 1;
  min-width: 0;
}
.strategic_item .st_cont .img_box {
  border-radius: 12px;
  overflow: hidden;
  height: 30rem;
  margin-top: 1rem;
}
.strategic_item .st_task {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.strategic_item .st_task li {
  color: var(--sub-txt-color);
  font-size: 1.2rem;
}

@media screen and (max-width: 1200px) {
  .strategic_item {
    grid-template-columns: 4fr 8fr;
    gap: 1.5rem;
  }
  .strategic_item .st_cont .img_box {
    height: 24rem;
  }
}

@media screen and (max-width: 900px) {
  .strategic .top {
    position: static;
    z-index: auto;
    padding: 0 0 1rem;
  }
  .strategic_body {
    gap: 0;
  }
  .strategic_item {
    position: static;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 0;
    border-bottom: 1px dashed var(--line-color);
    padding: 2rem 0;
  }
  .strategic_item:nth-child(2) {
    padding-top: 0;
  }
  .strategic_item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }
  .strategic_item .st_cont .img_box {
    height: 20rem;
  }
  .strategic_item .st_task li {
    font-size: 1.05rem;
  }
}
@media screen and (max-width: 500px) {
  .strategic_item {
    gap: 0.8rem;
  }
  .strategic_item .st_cont .img_box {
    height: 13rem;
    margin-top: 0.8rem;
  }
  .strategic_item .st_task {
    gap: 0.4rem;
  }
  .strategic_item .st_task li {
    font-size: 0.95rem;
  }
}
/* 비전 */

/* ci */
.logo_wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.logo_wrap .img_box {
  max-height: 30rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.logo_wrap .img_box img {
  max-width: 200px;
}

@media screen and (max-width: 900px) {
  .logo_wrap .img_box {
    height: 15rem;
  }
}
/* ci */
/* history (연혁) */
.history_list {
  margin-top: 1rem;
}
/* 20년 단위 era 블록 : 왼쪽 년도(고정) 3 / 오른쪽 연혁 내용 7 */
.history_era {
  display: grid;
  grid-template-columns: 3fr 7fr;
  gap: 3rem;
  padding: 4rem 0;
  border-top: 1px solid var(--line-color);
}
.history_era:first-child {
  padding-top: 1rem;
  border-top: 0;
}

/* 왼쪽 : 년도(스크롤 시 고정) */
.history_era .era_year {
  position: sticky;
  top: 8rem;
  align-self: start;
}
.history_era .era_year .y_range {
  display: block;
  font-size: 6.4rem;
  font-weight: bold;
  line-height: 1.2;
  color: var(--main-color);
  letter-spacing: -1px;
}
.history_era .era_year .y_range span {
  color: var(--sub-tit-color);
  opacity: 0.35;
}
.history_era .era_year .y_label {
  margin-top: 0.8rem;
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--sub-tit-color);
}

/* 오른쪽 : 연혁 내용 */
.history_era .era_body {
  min-width: 0;
}

/* 연혁 리스트(년도 + 내용 + 썸네일) - 좌측 세로 타임라인 라인 */
.history_item_list {
  position: relative;
  padding-left: 2rem;
}
.history_item_list::before {
  content: "";
  position: absolute;
  top: 0.8rem;
  bottom: 0.8rem;
  left: 0;
  width: 1px;
  background: var(--line-color);
}
.history_item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  padding: 1.4rem 0;
  border-bottom: 1px dashed var(--line-color);
}
.history_item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
/* 타임라인 점 */
.history_item::before {
  content: "";
  position: absolute;
  left: calc(-2rem - 6px);
  top: 2rem;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--main-color);
  box-shadow: 0 0 0 4px #fff;
}
.history_item .year {
  flex-shrink: 0;
  width: 5rem;
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--sub-tit-color);
  line-height: 1.3;
}
.history_item .desc {
  flex: 1;
  min-width: 0;
  padding-top: 0.1rem;
}
.history_item .desc ul {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.history_item .desc li {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.15rem;
  line-height: 1.5;
  color: var(--sub-txt-color);
}
/* 월(月) 배지 */
.history_item .desc li span {
  flex-shrink: 0;
  min-width: 2.8rem;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: var(--main-color);
}
/* 줄별 작은 썸네일 */
.history_item .thumb {
  flex-shrink: 0;
  width: 15rem;
  aspect-ratio: 4 / 2;
  border-radius: 8px;
  overflow: hidden;
  background: #f0f1f4;
  border: 1px solid var(--line-color);
}
.history_item .thumb img {
  display: block;
}

@media screen and (max-width: 1440px) {
  .history_era {
    gap: 2rem;
    padding: 3rem 0;
  }
  .history_era .era_year .y_range {
    font-size: 3.4rem;
  }
  .history_era .era_year .y_label {
    font-size: 1.1rem;
  }
  .history_item .year {
    font-size: 1.5rem;
    width: 4.5rem;
  }
  .history_item .desc li {
    font-size: 1rem;
  }
  .history_item .thumb {
    width: 8rem;
  }
}
@media screen and (max-width: 900px) {
  /* 모바일 : 세로 배치, 년도 고정 해제 */
  .history_era {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    padding: 2rem 0;
  }
  .history_era:first-child {
    padding-top: 0;
  }
  .history_era .era_year {
    position: static;
    top: auto;
  }
  .history_era .era_year {
    display: flex;
    align-items: baseline;
    gap: 0.8rem;
    padding-bottom: 1.2rem;
    border-bottom: 2px solid var(--main-color);
  }
  .history_era .era_year .y_range {
    font-size: 2.4rem;
  }
  .history_era .era_year .y_range br {
    display: none;
  }
  .history_era .era_year .y_label {
    margin-top: 0;
    font-size: 1rem;
  }
  .history_item_list {
    padding-left: 1.4rem;
  }
  .history_item {
    gap: 1rem;
    padding: 1rem 0;
  }
  .history_item::before {
    left: calc(-1.4rem - 4px);
    top: 1.5rem;
  }
  .history_item .year {
    font-size: 1.3rem;
    width: 3.5rem;
  }
  .history_item .desc li {
    font-size: 0.95rem;
  }
  .history_item .thumb {
    width: 6.5rem;
  }
}
@media screen and (max-width: 500px) {
  .history_item {
    flex-wrap: wrap;
    gap: 0.4rem 1rem;
  }
  .history_item::before {
    top: 0.55rem;
  }
  .history_item .year {
    width: auto;
  }
  .history_item .desc {
    flex-basis: 100%;
    order: 3;
  }
  .history_item .thumb {
    width: 5.5rem;
    margin-left: auto;
  }
}
/* history (연혁) */

/* =========================================================
   조직도 (organization)
   ========================================================= */
.organization_wrap .org_chart {
  --org-main: var(--main-color, #123c74);
  --org-line: var(--line-color, #d7dde6);
}

/* 공통 노드 박스 */
.organization_wrap .node {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.35;
  border-radius: 10px;
  font-weight: 600;
  letter-spacing: -0.4px;
  white-space: nowrap;
}

/* 상단 스파인 (이사장 → 원장) */
.organization_wrap .org_spine {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.organization_wrap .node_lead {
  background: var(--org-main);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 600;
  padding: 1.5rem;
  min-width: 220px;
  box-shadow: 0 6px 16px rgba(18, 60, 116, 0.18);
  cursor: pointer;
}
.organization_wrap .node_dir {
  background: var(--main-color);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 600;
  padding: 1.5rem;
  min-width: 220px;
  box-shadow: 0 6px 16px rgba(18, 60, 116, 0.16);
  cursor: pointer;
}

/* 세로 연결선 */
.organization_wrap .ln_v {
  position: relative;
  width: 2px;
  height: 9rem;
  background: var(--org-line);
  margin: 0 auto;
}

/* 스파인에서 갈라지는 곁가지(감사 / 직속실) */
.organization_wrap .branch {
  position: absolute;
  top: 50%;
  display: flex;
  align-items: center;
  z-index: 2;
}
.organization_wrap .branch_r {
  left: 50%;
  transform: translateY(-50%);
}
.organization_wrap .branch_l {
  right: 50%;
  transform: translateY(-50%);
}
.organization_wrap .branch_ln,
.organization_wrap .branch_seg {
  display: block;
  height: 2px;
  background: var(--org-line);
  flex: none;
}
.organization_wrap .branch_ln {
  width: 70px;
}
.organization_wrap .branch_seg {
  width: 40px;
}

.organization_wrap .node_side {
  background: #fff;
  color: var(--org-main);
  border: 1px solid var(--org-main);
  font-size: 1.2rem;
  font-weight: 400;
  padding: 1.5rem;
  min-width: 220px;
}

/* 본부 영역 */
.organization_wrap .org_hq {
  display: flex;
  justify-content: center;
  margin-top: 0;
}
.organization_wrap .hq_col {
  position: relative;
  flex: 1 1 0;
  padding: 40px 8px 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
/* 가로 버스(본부들을 잇는 선) - 인접 컬럼의 절반선이 이어져 하나의 선이 됨 */
.organization_wrap .hq_col::before,
.organization_wrap .hq_col::after {
  content: "";
  position: absolute;
  top: 0;
  width: 50%;
  height: 20px;
  border-top: 2px solid var(--org-line);
}
.organization_wrap .hq_col::before {
  right: 50%;
}
.organization_wrap .hq_col::after {
  left: 50%;
}
.organization_wrap .hq_col:first-child::before {
  border: 0;
}
.organization_wrap .hq_col:last-child::after {
  border: 0;
}
.organization_wrap .hq_col:first-child:before {
  display: none;
}
/* 버스 → 본부 박스로 내려오는 세로선 */
.organization_wrap .hq_drop {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 40px;
  background: var(--org-line);
}
.organization_wrap .node_hq {
  background: var(--bg-sub-dark);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 600;
  padding: 1.5rem;
  min-height: 64px;
  box-shadow: 0 4px 12px rgba(18, 60, 116, 0.14);
  white-space: normal;
  word-break: keep-all;
}

/* 팀 리스트 */
.organization_wrap .teams {
  position: relative;
  margin-top: 0;
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.organization_wrap .teams::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 16px;
  background: var(--org-line);
}
.organization_wrap .teams li {
  background: #fff;
  border: 1px solid var(--org-line);
  border-radius: 12px;
  color: var(--sub-tit-color);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.3;
  padding: 1.2rem;
  text-align: center;
  word-break: keep-all;
  transition:
    border-color 0.2s,
    box-shadow 0.2s;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  align-items: center;
  justify-content: center;
}
.organization_wrap .teams li:hover {
  border-color: var(--org-main);
  box-shadow: 0 4px 12px rgba(18, 60, 116, 0.1);
}
.organization_wrap .team_tag {
  display: inline-block;
  background: var(--org-main);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1;
  padding: 0.4rem;
  border-radius: 4px;
  vertical-align: middle;
  white-space: nowrap;
  width: fit-content;
}

/* 261105 조직도 PC — 한 화면에 들어오게 간격 축소 (1920 기준 843px → 591px, 1024 이하 세로 배치는 그대로) */
@media screen and (min-width: 1025px) {
  .organization_wrap .node_lead,
  .organization_wrap .node_dir {
    padding: 0.9rem 1.5rem;
  }
  .organization_wrap .node_side {
    padding: 0.8rem 1.5rem;
  }
  .organization_wrap .ln_v {
    height: 5rem; /* 9rem → 5rem */
  }
  .organization_wrap .hq_col {
    padding-top: 28px; /* 40px → 28px */
  }
  .organization_wrap .hq_drop {
    height: 28px; /* hq_col padding-top 과 같게 */
  }
  .organization_wrap .node_hq {
    padding: 1rem;
    min-height: 0;
  }
  .organization_wrap .teams {
    padding-top: 12px;
    gap: 0.6rem;
  }
  .organization_wrap .teams::before {
    height: 12px; /* teams padding-top 과 같게 */
  }
  .organization_wrap .teams li {
    padding: 0.8rem 1rem;
    gap: 0.4rem;
  }
}

/* ---------- 반응형 ---------- */
@media screen and (max-width: 1200px) {
  .organization_wrap .node_lead {
    font-size: 1.2rem; /* padding: 1rem 2.4rem; */
    width: 100%;
  }
  .organization_wrap .node_dir {
    font-size: 1.2rem; /* padding: .85rem 2rem; */
    width: 100%;
  }
  .organization_wrap .node_hq {
    font-size: 1.2rem;
    min-height: 70px;
  }
  .organization_wrap .teams li {
    /* font-size: .88rem; */ /* padding: .7rem .5rem; */
  }
  .organization_wrap .branch_ln {
    width: 48px;
  }
  .organization_wrap .branch_seg {
    width: 28px;
  }
  .organization_wrap .node_side {
    /* font-size: .9rem; */
    padding: 1rem;
  }
}

/* 태블릿/모바일 : 곁가지·트리 연결선을 접고 세로 스택으로 전환 */
@media screen and (max-width: 1024px) {
  .organization_wrap .org_chart {
    padding: 0;
  }

  /* 곁가지를 흐름 안으로 되돌려 스파인 아래 정렬 */
  .organization_wrap .ln_v {
    height: 32px;
  }
  .organization_wrap .ln_v.has_branch {
    height: auto;
    width: 100%;
    background: none;
    margin-bottom: 26px;
  }
  .organization_wrap .ln_v.has_branch::before {
    content: "";
    display: block;
    width: 2px;
    height: 26px;
    margin: 0 auto;
    background: var(--org-line);
  }
  .organization_wrap .branch {
    position: static;
    transform: none;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 0;
  }
  .organization_wrap .branch_ln,
  .organization_wrap .branch_seg {
    display: none;
  }
  .organization_wrap .node_side {
    min-width: auto;
    width: 100%;
  }

  /* 본부 : 가로 트리 연결선 해제 후 세로 스택 */
  .organization_wrap .org_hq {
    flex-direction: column;
    gap: 28px;
    margin-top: 28px;
  }
  .organization_wrap .hq_col {
    padding: 0;
  }
  .organization_wrap .hq_col::before,
  .organization_wrap .hq_col::after,
  .organization_wrap .hq_drop {
    display: none;
  }
  .organization_wrap .hq_col + .hq_col::before {
    content: "";
    display: block;
    position: static;
    width: 2px;
    height: 28px;
    margin: -28px auto 0;
    border: 0;
    background: var(--org-line);
  }
  .organization_wrap .teams {
    /* margin-top: 16px; */
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
  }
  .organization_wrap .teams::before {
    display: none;
  }
  .organization_wrap .teams li {
    flex: 1 1 30%;
    min-width: 140px;
    font-size: 1.2rem;
  }
}

@media screen and (max-width: 560px) {
  .organization_wrap .node_side {
    min-width: 100%;
  }
  .organization_wrap .teams li {
    flex: 1 1 100%;
  }
}
/* 조직도 (organization) */

/* =========================================================
   조직도 - 구성원 검색 (staff)
   ========================================================= */
.staff_search {
  margin-top: 5rem;
}
.staff_search .staff_tit {
  margin-bottom: 1.5rem;
}
/* 검색바(.search_wrap)는 기존 컴포넌트 재사용 */
.staff_search .search_wrap .total strong {
  font-size: 1.2rem;
}
/* 셀렉트가 2개(큰부서/세부부서)라 기본 18rem 은 너무 넓어 폭 조정 */
.staff_search .search_wrap .search_form .select_box select {
  min-width: 13rem;
}
@media screen and (max-width: 1200px) {
  .staff_search .search_wrap .search_form .select_box select {
    min-width: 10rem;
  }
}

/* 결과 테이블 */
.staff_table_wrap {
  margin-top: 1.5rem;
  width: 100%;
  overflow-x: auto;
}
.staff_table {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid var(--sub-tit-color);
  table-layout: fixed;
}
.staff_table th,
.staff_table td {
  padding: 1.1rem 1rem;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid var(--line-color);
  font-size: 1.05rem;
  line-height: 1.4;
  word-break: keep-all;
}
.staff_table thead th {
  background: var(--bg-sub-light);
  color: var(--sub-tit-color);
  font-weight: 600;
  font-size: 1rem;
  white-space: nowrap;
}
.staff_table tbody td {
  color: #666;
  font-weight: 400;
}
/* 부서: 본부(작게)+팀(강조) 2줄 */
.staff_table .s_dept_hq {
  display: block;
  font-size: 0.85rem;
  color: #999;
  margin-bottom: 0.1rem;
}
.staff_table .s_dept_team {
  display: block;
  color: var(--sub-tit-color);
  font-weight: 500;
}
.staff_table .s_name {
  color: var(--sub-tit-color);
  font-weight: 600;
}
.staff_table tbody tr:hover {
  background: #fafbfc;
}

/* 상세보기 버튼 */
.staff_table .btn_detail {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.4rem;
  padding: 0 1rem;
  border: 1px solid var(--main-color);
  border-radius: 6px;
  background: #fff;
  color: var(--main-color);
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition:
    background 0.2s,
    color 0.2s;
}
.staff_table .btn_detail:hover {
  background: var(--main-color);
  color: #fff;
}

/* 결과 없음 */
.staff_empty {
  padding: 4rem 1rem;
  text-align: center;
  color: #999;
  font-size: 1.1rem;
  border-bottom: 1px solid var(--line-color);
}
/* 이사장/원장 모달 */
.exec_photo {
  width: 100%;
  height: 200px;
  border: 1px solid var(--line-color);
  border-radius: 12px;
  margin: 1.6rem 0 1rem;
  padding: 1rem;
  background: var(--bg-sub-light);
}
.exec_photo img {
  object-fit: contain;
}
/* ---------- 상세 모달 ---------- */
.staff_modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.staff_modal[hidden] {
  display: none;
}
.staff_modal_dim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}
.staff_modal_box {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 560px;
  max-height: 86vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
  animation: staffModalIn 0.22s ease;
}
@keyframes staffModalIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .staff_modal_box {
    animation: none;
  }
}
.staff_modal_head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.4rem 1rem;
  background: var(--bg-sub-dark);
  color: white;
}
.staff_modal_head div {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.staff_modal_head .m_name {
  font-size: 1.4rem;
  font-weight: 700;
}
.staff_modal_head .m_rank {
  font-size: 1rem;
  font-weight: 400;
  color: #ffffff8a;
}
.staff_modal_close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  flex: none;
  transition: background 0.2s;
}
.staff_modal_close:hover {
  background: rgba(255, 255, 255, 0.3);
}
.staff_modal_body {
  padding: 1.2rem 1.4rem;
  overflow-y: auto;
  border-top: 1px solid #e2e2e2;
  padding-top: 0;
}
.staff_modal_body dl {
  display: flex;
  flex-direction: column;
}
.staff_modal_body dl > div {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px dashed var(--line-color);
}
.staff_modal_body dl > div:last-child {
  border-bottom: 0;
}
.staff_modal_body dt {
  color: var(--sub-tit-color);
  font-weight: 500;
  font-size: 1rem;
}
.staff_modal_body dd {
  color: var(--sub-txt-color);
  font-size: 1rem;
  line-height: 1.5;
}
.staff_modal_body dd ul {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.staff_modal_body dd li {
  position: relative;
  padding-left: 0.6rem;
}
.staff_modal_body dd li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--sub-txt-color);
}

/* ---------- 반응형 : 테이블 → 카드 ---------- */
@media screen and (max-width: 900px) {
  .staff_search {
    margin-top: 3.5rem;
  }
  .staff_table,
  .staff_table thead,
  .staff_table tbody,
  .staff_table tr,
  .staff_table td {
    display: block;
    width: 100%;
  }
  .staff_table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  .staff_table {
    border-top: 0;
  }
  .staff_table tbody tr {
    border: 1px solid var(--line-color);
    border-radius: 10px;
    padding: 0.4rem 1.1rem;
    margin-bottom: 1rem;
  }
  .staff_table tbody tr:hover {
    background: #fff;
  }
  .staff_table td {
    display: flex;
    justify-content: space-between;
    gap: 0.4rem;
    padding: 0.7rem 0;
    border-bottom: 1px dashed var(--line-color);
    text-align: right;
    font-size: 1rem;
    align-items: center;
  }
  .staff_table td:last-child {
    border-bottom: 0;
  }
  .staff_table td::before {
    content: attr(data-th);
    flex: none;
    color: #666;
    font-weight: 400;
    text-align: left;
  }
  /* 부서 셀: 라벨 옆 오른쪽 정렬 */
  .staff_table .s_dept_hq,
  .staff_table .s_dept_team {
    display: inline;
  }
  .staff_table .s_dept_hq {
    margin-left: auto;
    margin-bottom: 0;
  }
  .staff_table td[data-th="상세"] {
    justify-content: flex-end;
  }
  .staff_table td[data-th="상세"]::before {
    display: none;
  }
  .staff_table .btn_detail {
    width: 100%;
    height: 2.8rem;
  }

  .staff_modal_body dl > div {
    grid-template-columns: 6.5rem 1fr;
    gap: 0.8rem;
  }
}
@media screen and (max-width: 500px) {
  .staff_modal {
    padding: 0;
    align-items: flex-end;
  }
  .staff_modal_box {
    max-width: 100%;
    max-height: 85vh;
    border-radius: 14px 14px 0 0;
  }
  .staff_modal_body dl > div {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}
/* 조직도 - 구성원 검색 (staff) */

/* brochure (브로슈어) */
.brochure_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 1rem;
}
.brochure_card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line-color);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  transition: 0.2s all;
}
.brochure_card:hover {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  transform: translateY(-4px);
}
/* 표지 썸네일 (A4 세로 비율) */
.brochure_card .bro_thumb {
  aspect-ratio: 3 / 4;
  background: #f0f1f4;
  border-bottom: 1px solid var(--line-color);
  overflow: hidden;
}
.brochure_card .bro_thumb img {
  display: block;
  transition: 0.3s all;
}
.brochure_card:hover .bro_thumb img {
  transform: scale(1.04);
}
.brochure_card .bro_cont {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.6rem 1.8rem 1.8rem;
}
.brochure_card .bro_tit {
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--sub-tit-color);
}
.brochure_card .bro_txt {
  margin-top: 0.6rem;
  font-size: 1.05rem;
  line-height: 1.5;
  color: var(--sub-txt-color);
}
/* 다운로드 버튼 영역 (버튼 1개=꽉참 / 2개=50:50, 항상 카드 하단 정렬) */
.brochure_card .bro_btns {
  display: flex;
  gap: 0.6rem;
  margin-top: auto; /* 설명 길이 달라도 버튼은 카드 하단에 맞춤 */
  padding-top: 1.6rem;
}
.brochure_card .btn_download {
  flex: 1; /* 개수만큼 균등 분할 (1개면 100%, 2개면 50:50) */
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.9rem 1rem;
  border-radius: 8px;
  background: var(--main-color);
  color: #fff;
  font-size: 1.05rem;
  font-weight: 500;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.brochure_card .btn_download:hover {
  opacity: 0.88;
}
.brochure_card .btn_download .material-symbols-outlined {
  font-size: 1.3rem;
}
.brochure_list.info_tex img {
  object-position: top;
}

@media screen and (max-width: 1200px) {
  .brochure_list {
    gap: 1.5rem;
  }
  .brochure_card .bro_cont {
    padding: 1.2rem 1.4rem 1.4rem;
  }
  .brochure_card .bro_tit {
    font-size: 1.25rem;
  }
  .brochure_card .bro_txt {
    font-size: 1rem;
  }
  .brochure_card .btn_download {
    font-size: 1rem;
  }
}
@media screen and (max-width: 900px) {
  /* 3열 → 2열 */
  .brochure_list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.2rem;
  }
  .brochure_card .bro_btns {
    padding-top: 1.2rem;
  }
  .brochure_card .btn_download {
    font-size: 0.95rem;
    padding: 0.8rem 0.6rem;
  }
}
@media screen and (max-width: 560px) {
  /* 2열 → 1열 */
  .brochure_list {
    grid-template-columns: 1fr;
  }
}
/* brochure (브로슈어) */

/* map (오시는 길) */
.sub_content.map .map_wrap + .map_wrap {
  margin-top: 3.5rem;
  padding-top: 3.5rem;
  border-top: 1px solid var(--line-color);
}
.sub_content.map .map_wrap iframe {
  display: block;
}

/* 주소 / 연락처 리스트 */
.map_list {
  display: flex;
  gap: 1rem;
  margin-top: 1.5rem;
}
.map_list li {
  flex: 1;
} /* 개수 상관없이 한 줄 균등 분할 */
.map_list li {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.2rem 1.4rem;
  background: var(--bg-sub-light);
  border-radius: 12px;
}
.map_list li strong {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--main-color);
}
.map_list li p {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--sub-tit-color);
}

/* 교통편 (way_list) */
.way_list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.5rem;
}
.way_item {
  display: grid;
  grid-template-columns: 12rem 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1.4rem 1.8rem;
  border: 1px solid var(--line-color);
  border-radius: 12px;
  align-items: center;
}
.way_from {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--sub-tit-color);
  line-height: 1;
}
.way_from .material-symbols-outlined {
  color: var(--main-color);
  font-size: 1.6rem;
}
.way_methods {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.way_methods > li {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  padding: 1rem 0;
  border-top: 1px dashed var(--line-color);
}
.way_methods > li:first-child {
  padding-top: 0;
  border-top: 0;
}
.way_methods > li:last-child {
  padding-bottom: 0;
}
/* 지하철 / 버스 뱃지 */
.way_methods .tag {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  min-width: 5.2rem;
  padding: 0.4rem 0.6rem;
  border-radius: 6px;
  background: #eef1f8;
  color: var(--main-color);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
}
.way_methods .tag .material-symbols-outlined {
  font-size: 1.2rem;
}
.way_step {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding-top: 0.1rem;
}
.way_step p {
  font-size: 1.1rem;
  line-height: 1.5;
  color: var(--sub-txt-color);
}

@media screen and (max-width: 1200px) {
  .map_list {
    flex-direction: column;
  }
}
@media screen and (max-width: 900px) {
  .sub_content.map .map_wrap + .map_wrap {
    margin-top: 2.5rem;
    padding-top: 2.5rem;
  }
  .way_item {
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1.2rem 1.4rem;
  }
  .way_from {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line-color);
  }
  .way_methods > li {
    flex-direction: column;
    gap: 0.5rem;
  }
  .way_step p {
    font-size: 1rem;
  }
}
/* map (오시는 길) */

/* 역사관 */
.museum {
  overflow: hidden;
  width: 100%;
  min-width: 0;
}
.museum .swiper {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.museum .swiper-slide {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 7fr);
  gap: 8rem;
  flex: 0 0 100%;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}
.museum .left {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
}
.museum_list {
  min-width: 0;
}
.museum .img_box {
  border-radius: 12px;
  overflow: hidden;
  max-width: 480px;
  margin-top: 5rem;
}
.museum li:first-child {
  padding-top: 0;
}
.museum li {
  padding: 2.5rem 0;
  border-bottom: 1px solid #e2e2e2;
}
.museum .tit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
}
.museum .tit .material-symbols-outlined {
  font-size: 1.8rem;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}
/* 아코디언: 기본은 접힘 */
.museum .txt {
  max-height: 0;
  overflow: hidden;
  margin-top: 0;
  transition:
    max-height 0.4s ease,
    margin-top 0.4s ease;
  line-height: 1.6;
}
/* 펼침 상태 */
.museum li.on .tit .material-symbols-outlined {
  transform: rotate(-45deg);
}
.museum li.on .txt {
  margin-top: 1rem;
}
@media screen and (max-width: 1200px) {
  .museum .swiper-slide {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .museum .swiper-slide .left {
    flex-direction: row;
    gap: 2rem;
  }
  .museum .swiper-slide .left strong {
    width: 50%;
  }
  .museum .swiper-slide .img_box {
    margin-top: 0;
    max-width: 300px;
  }
  .museum li:first-child {
    padding: 1.5rem 0;
    border-top: 1px solid #e2e2e2;
  }
  .museum li {
    padding: 1.5rem 0;
  }
}
@media screen and (max-width: 900px) {
  .museum .swiper-slide .left {
    flex-direction: column;
    gap: 1rem;
  }
  .museum .swiper-slide .left strong {
    width: 100%;
  }
  .museum .swiper-slide .img_box {
    max-width: none;
  }
  .museum li:first-child {
    padding: 0.8rem 0;
  }
  .museum li {
    padding: 0.8rem 0;
  }
}
/* 역사관 */

/* login */
.sub_content.login {
  padding: clamp(3rem, 8vh, 6rem) 0;
}
.sub_content.login .wFix {
  display: flex;
  justify-content: center;
}
.login_box {
  width: 100%;
  max-width: 500px;
  background: #fff;
  border: 1px solid var(--line-color);
  border-radius: 12px;
  padding: 3.5rem 2rem;
  box-shadow: 0 4px 6px #00000020;
  text-align: center;
}
.login_head {
  text-align: center;
}
.login_head .login_logo img {
  height: 5rem;
  width: auto;
}
.login_head .login_slogan {
  margin-top: 2rem;
  font-size: 1rem;
  font-weight: 400;
  color: var(--sub-txt-color);
  line-height: 1;
  position: relative;
  letter-spacing: -1px;
}
.login_head .login_slogan::before {
  content: "";
  position: absolute;
  width: 20px;
  height: 2px;
  background: var(--bg-sub-color);
  top: -1.5rem;
  left: 50%;
  transform: translateX(-50%);
}
.login_head .login_welcome {
  margin-top: 0.4rem;
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--sub-tit-color);
  letter-spacing: -1px;
}
.login_social {
  margin-top: 4rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.btn_social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  height: 3.5rem;
  border-radius: 8px;
  font-size: 1.1rem;
  font-weight: 600;
  transition:
    opacity 0.2s,
    background 0.2s;
}
.btn_social .ico {
  display: inline-flex;
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
}
.btn_social .ico svg {
  width: 100%;
  height: 100%;
}
.btn_social.btn_naver {
  background: #03c75a;
  color: #fff;
}
.btn_social.btn_naver:hover {
  opacity: 0.9;
}
.btn_social.btn_google {
  background: #fff;
  color: #333;
  border: 1px solid var(--line-color);
}
.btn_social.btn_google:hover {
  background: #f7f8fa;
}
.login_notice {
  text-align: left;
  margin-top: 1.5rem;
  padding-top: 0;
  border-top: 1px dashed var(--line-color);
  padding-top: 1.5rem;
}
.login_notice p {
  font-size: 0.9rem;
  color: var(--sub-txt-color);
  line-height: 1.5;
}
@media screen and (max-width: 500px) {
  .login_box {
    padding: 2.5rem 1.5rem;
  }
  .login_head .login_slogan {
    font-size: 1rem;
  }
  .login_head .login_welcome {
    font-size: 1.15rem;
  }
  .btn_social {
    height: 3.2rem;
    font-size: 1rem;
  }
  .login_notice p {
    font-size: 0.85rem;
  }
}
/* login */

/* =========================================================
   [KTDI] 사이트맵 (sitemap)
   ========================================================= */
.sub_content.sitemap .sitemap_grid {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2rem;
  align-items: start;
}
.sitemap_col {
  border-top: 2px solid var(--sub-tit-color);
  padding-top: 1.5rem;
}
.sitemap_dep1 {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--sub-tit-color);
  margin-bottom: 1rem;
}
.sitemap_group + .sitemap_group,
.sitemap_dep2_list + .sitemap_group,
.sitemap_group + .sitemap_dep2_list {
  margin-top: 1.4rem;
}
.sitemap_dep2 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--main-color);
  margin-bottom: 0.6rem;
}
.sitemap_dep3 li + li,
.sitemap_dep2_list li + li {
  margin-top: 0.4rem;
}
.sitemap_dep3 a,
.sitemap_dep2_list a {
  display: block;
  position: relative;
  padding: 0;
  font-size: 1rem;
  color: var(--sub-txt-color);
  line-height: 1.5;
  transition: color 0.2s;
}
/* 대분류 직속(중분류 없는) 메뉴는 조금 더 굵게 */
.sitemap_col > .sitemap_dep2_list > li > a {
  font-weight: 500;
  color: var(--sub-tit-color);
}
.sitemap_dep3 a:hover,
.sitemap_dep2_list a:hover {
  color: var(--main-color);
}
.sitemap_dep3 a:hover::before,
.sitemap_dep2_list a:hover::before {
  background-color: var(--main-color);
}

@media screen and (max-width: 1200px) {
  .sub_content.sitemap .sitemap_grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem 2rem;
  }
}
@media screen and (max-width: 900px) {
  .sub_content.sitemap .sitemap_grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .sitemap_dep1 {
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 500px) {
  .sub_content.sitemap .sitemap_grid {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .sitemap_col {
    padding-top: 1.2rem;
  }
}
/* sitemap */

/* ===== 섬유개론 : 상단 공정탭 + 좌측 트리 + 우측 본문 ===== */
.sub_content.intro .content_wrap {
  display: block;
  height: auto;
}

/* 공정 탭 (섬유원료/사가공/…) */
.intro_process {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.8rem;
  margin: 1.5rem 0 2.5rem;
  border-bottom: 1px solid var(--line-color);
}
.intro_process li a {
  display: block;
  padding: 0.9rem 0.2rem;
  margin-bottom: -1px; /* 컨테이너 밑줄 위로 활성 밑줄이 겹치게 */
  font-size: 1.1rem;
  color: var(--sub-txt-color);
  border-bottom: 2px solid transparent;
  transition:
    color 0.2s,
    border-color 0.2s;
}
.intro_process li a:hover {
  color: var(--main-color);
}
.intro_process li.on a {
  color: var(--main-color);
  font-weight: 600;
  border-bottom-color: var(--main-color);
}

/* 2단: 좌 트리 + 우 본문 */
.intro_wrap {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 2.5rem;
  align-items: start;
}

/* 좌측 트리(LNB) */
.intro_lnb {
  border: 1px solid var(--line-color);
  border-radius: 12px;
  overflow: hidden;
  position: sticky;
  top: 90px;
}
.intro_lnb_head {
  padding: 1.1rem 1.4rem;
  background: var(--main-color);
  color: #fff;
  font-size: 1.2rem;
  font-weight: 600;
}
.intro_lnb_toggle {
  display: none;
}
.lnb_tree > li {
  border-top: 1px solid var(--line-color);
}
.lnb_tree > li:first-child {
  border-top: 0;
}
.lnb_tree > li > a,
.lnb_tree .lnb_parent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  padding: 0.9rem 1.4rem;
  font-size: 1.05rem;
  color: var(--sub-tit-color);
  text-align: left;
  background: #fff;
  transition: color 0.2s;
}
.lnb_tree > li > a:hover,
.lnb_tree .lnb_parent:hover {
  color: var(--main-color);
}
.lnb_tree > li.on > a {
  color: var(--main-color);
  font-weight: 600;
}
.lnb_parent .ic {
  flex: none;
  font-size: 1.2rem;
  color: var(--sub-txt-color);
  transition: transform 0.2s;
}
.lnb_tree > li.open .lnb_parent {
  color: var(--main-color);
  font-weight: 600;
}
.lnb_tree > li.open .lnb_parent .ic {
  transform: rotate(45deg);
}
.lnb_sub {
  display: none;
  background: var(--bg-sub-light);
  padding: 0.3rem 0;
}
.lnb_tree > li.open > .lnb_sub {
  display: block;
}
.lnb_sub li a {
  display: block;
  padding: 0.55rem 1.4rem 0.55rem 2rem;
  font-size: 0.98rem;
  color: var(--sub-txt-color);
  transition: color 0.2s;
}
.lnb_sub li a:hover {
  color: var(--main-color);
}
.lnb_sub li.on a {
  color: var(--main-color);
  font-weight: 600;
}

/* 우측 본문 (레거시 editor 콘텐츠 재사용) */
.intro_body {
  min-width: 0;
}
/* 전역 img(width/height:100%; cover) 무력화 → 본문 이미지는 원본 비율 유지 */
.intro_body img {
  width: auto;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}
.intro_body.editor .tit_m {
  margin-top: 3rem;
  padding: 1.2rem 0;
  width: 100%;
  display: block;
  border-bottom: 1px solid var(--line-color-dark);
}
.intro_body.editor .tit_s {
  margin-top: 2rem;
}
.intro_body.editor .cap_tit {
  display: block;
  margin-top: 2rem;
  font-weight: 500;
  color: #111;
}
.intro_body.editor .img_box {
  margin: 2rem 0;
  text-align: center;
  border: 1px solid var(--line-color);
  border-radius: 12px;
}
.intro_body.editor p {
  margin-top: 1rem;
  line-height: 1.7;
}
.intro_body.editor > :first-child {
  margin-top: 0;
}
.intro_body .table_wrap {
  margin: 1rem 0 1.5rem;
}

/* 반응형 */
@media screen and (max-width: 1100px) {
  .intro_wrap {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .intro_lnb {
    position: static;
    top: auto;
  }
  /* 모바일: 트리를 토글로 접기 */
  .intro_lnb_toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 1.1rem 1.4rem;
    background: var(--main-color);
    color: #fff;
    font-size: 1.15rem;
    font-weight: 600;
  }
  .intro_lnb_toggle .ic {
    transition: transform 0.2s;
  }
  .intro_lnb.open .intro_lnb_toggle .ic {
    transform: rotate(180deg);
  }
  .intro_lnb_head {
    display: none;
  }
  .intro_lnb .lnb_tree {
    display: none;
  }
  .intro_lnb.open .lnb_tree {
    display: block;
  }
}
@media screen and (max-width: 900px) {
  /* 모바일: 공정 탭은 줄바꿈 대신 가로 스크롤(스크롤바 숨김 + 마우스 드래그) */
  .intro_process {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; /* Firefox */
    cursor: grab;
    user-select: none;
    gap: 0 1.4rem;
  }
  .intro_process::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
  }
  .intro_process.is_dragging {
    cursor: grabbing;
  }
  .intro_process li {
    flex-shrink: 0;
  }
  .intro_process li a {
    white-space: nowrap;
  }
}
@media screen and (max-width: 640px) {
  .intro_process li a {
    font-size: 1rem;
  }
}
/* ===== //섬유개론 ===== */

/* ===== stats_service 하위탭(subtab)만 공통 언더라인 스타일 (img_tab은 알약 칩 유지) ===== */
.subtab_wrap .btn_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.8rem;
  justify-content: flex-start; /* 왼쪽 정렬 */
  border-bottom: 1px solid var(--line-color);
  padding-bottom: 0;
  margin-bottom: 2.5rem;
}
.subtab_wrap .btn_subtab {
  padding: 0.9rem 0.2rem;
  margin-bottom: -1px; /* 컨테이너 밑줄 위로 활성 밑줄이 겹치게 */
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  font-size: 1.1rem;
  color: var(--sub-txt-color);
  transition:
    color 0.2s,
    border-color 0.2s;
}
.subtab_wrap .btn_subtab:hover {
  color: var(--main-color);
}
.subtab_wrap .btn_subtab.on {
  color: var(--main-color);
  font-weight: 600;
  border-bottom-color: var(--main-color);
}
@media screen and (max-width: 900px) {
  .subtab_wrap .btn_wrap {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    gap: 0 1.4rem;
  }
  .subtab_wrap .btn_subtab {
    white-space: nowrap;
  }
}
/* ===== //stats_service 하위탭 ===== */

/* 표 아래 주석·출처 노트 (txt_wrap에 note_st 추가해서 사용) */
.note_st {
  border: 1px dashed var(--line-color);
  border-radius: 12px;
  padding: 1.2rem;
}
.note_st .txt {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--sub-txt-color);
  position: relative;
  padding-left: 1rem;
}
.note_st .txt::before{
  content:"";
  position: absolute;
  width: 4px;
  height: 4px;
  background: #d3d3d3;
  left: 4px;
  top: 10px;
}
.note_st .txt.font_mainColor {
  color: var(--main-color);
  font-weight: 500;
}
/* ===== //표 주석 노트 ===== */
.ci_list{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
.ci_list .img_box{
  border-radius: 12px;
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ci_list .img_box img{
  object-fit: contain;
  width: 150px;
}

.ci_download{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
.ci_download li{
  border: 1px solid #e2e2e2;
  border-radius: 12px;
  overflow: hidden;
  height: 350px;
  position: relative;
}
.ci_download li span{
  position: absolute;
  left: 1.8rem;
  top: 1.6rem;
}
.ci_download li .img_box{
  height: 100%;
  padding: 4.5rem;
  background: var(--bg-sub-light);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ci_download li .img_box img{
  object-fit: contain;
  width: 300px;
}
@media screen and (max-width: 1080px) {
  .ci_down .top{flex-direction: column; align-items: start;}
  .ci_down .top .btn_wrap{width: 100%;}
  .ci_list, .ci_download{grid-template-columns: 1fr;}
  .ci_list .img_box{height: 250px;}
  .ci_download li{height: 250px;}
}
.empty_box{
  width: 100%;
  background: var(--bg-sub-light);
  border-radius: 12px;
  padding: 3rem;
  color: var(--bg-sub-dark);
  font-size: 1.4rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .6rem;
}
.empty_box .material-symbols-outlined{
  font-size: 2rem;
}

.stats_sec{
	margin-bottom: 3rem;
}
.stats_sec .tit_m{
  margin-bottom: .4rem;
  display: block;
}
.stats_sec .stats_desc{
  margin-bottom: 1rem;
}

/* 260914_이미지 fit 수정 — 디자이너 전달본(260914_섬개연수정/sub.css) 원본 3줄.
   연구개발 상세의 이미지가 상하 crop 되던 증상 수정. 본문에 .contain 클래스가 붙은 요소에만 적용된다.
   🔴 전달본을 통째로 교체하지 않았다 — 전달본이 구버전 기준이라(테마 114,718B > 전달본 114,429B)
      덮으면 .nav_wrap 보정·.greeting_txt_wrap 등 우리 수정 18곳이 사라진다. 실제 변경분인 이 3줄만 반영. */
.img_box.contain{padding: 1rem;}
.img_box.contain img{object-fit: contain;}
.swiper-slide.contain{background-size: contain;}


/* 260928_ci 페이지 상단 버튼 부분 수정 */
.ci_1{
  display: grid !important;
  grid-template-columns: 6fr 4fr;
}
.ci_1 .btn_wrap{
  justify-content: end;
}
@media screen and (max-width: 640px){
  .ci_1{
    grid-template-columns: 1fr;
  }
  .ci_2 .btn_wrap{
    width: 100%; 
  }
}