:root {
    --color1: #ed0091;
    --color2: #FF5722;
    --color3: #1c4278;
    --color4: #ed0091;
    --color5: #395ADD;
    --color6: #7C6EE6;
    --color7: #6A5BD8;
}




@font-face {
  font-family: 'S-CoreDream';
  font-weight: 300;
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-3Light.woff') format('woff');
}
@font-face {
  font-family: 'S-CoreDream';
  font-weight: 500;
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-5Medium.woff') format('woff');
}
@font-face {
  font-family: 'S-CoreDream';
  font-weight: 700;
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-7ExtraBold.woff') format('woff');
}


.greeting{width:100%;overflow:hidden; word-break: keep-all;
overflow-wrap: break-word;}
.greeting_left{width: 40%; position:relative; float:left; text-align:center; }
.greeting_right{padding:0px 35px; width:60%; x;  font-weight:400; position:relative; float:left;
 font-size:18.5px; line-height:30px; color:#000; border:0px solid red; }
.greeting_right p{font-size:25px; font-weight:500; line-height:40px; color:var(--color2);}
.greeting_right p span{font-size:32px; font-weight:600;}
.greeting_right .sign{position: absolute; right: 0px; bottom: 0px;}



@media screen and (max-width:1024px){

.greeting_left{width:100%; position:relative; float:left; }
.greeting_left img{width:100%;}
.greeting_right{padding-left:0px; padding-right:0px; padding-top:55px; width:100%; position:relative; float:left;
 font-size:17px; line-height:28px; color:#000;}
.greeting_right p{font-size:21px; font-weight:500; line-height:35px; color:#000;}
.greeting_right p span{font-size:28px; font-weight:600;}

}


.business {
    width: 100%;
    overflow: hidden;
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  .business_left {
    width: 35%;
    position: relative;
    float: left;
    text-align: center;
  }

  .business_right {
    padding: 0px 35px;
    width: 60%;
    font-weight: 400;
    position: relative;
    float: left;
    font-size: 18.5px;
    line-height: 30px;
    color: #000;
    border: 0px solid red;
  }

  .business_right p {
    font-size: 25px;
    font-weight: 500;
    /* line-height: 40px; */
    color: var(--color2);
  }

  .business_right p span {
    font-size: 32px;
    font-weight: 600;
  }

  .business_right .sign {
    position: absolute;
    right: 0px;
    bottom: 0px;
  }

  .business-guide-wrap {
    max-width: 1000px;
    /* margin: 0 auto; */
    padding: 20px;
    font-family: 'Noto Sans KR', sans-serif;
    color: #333;
    line-height: 1.6;
  }

  .business-guide-wrap .main-title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 15px;
    color: #111;
  }

  .business-guide-wrap .intro-desc {
    font-size: 16px;
    margin-bottom: 40px;
    word-break: keep-all;
  }

  .business-section {
    margin-bottom: 30px;
  }

  .business-section .section-title {
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid #222;
  }

  .sub-section {
    margin-bottom: 25px;
  }

  .sub-section .sub-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
    color: #000;
  }

  .sub-section .desc-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
  }

  .sub-section .desc-list li {
    position: relative;
    padding-left: 12px;
    margin-bottom: 8px;
    font-size: 15.5px;
    color: #444;
  }

  /* 리스트 앞의 점(bullet) 커스텀 디자인 */
  .sub-section .desc-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    /* 줄 높이에 맞춰 점 위치 조정 */
    width: 4px;
    height: 4px;
    background-color: #666;
    border-radius: 50%;
  }

  .sub-section .desc-list li strong {
    font-weight: 600;
    color: #222;
  }

  @media screen and (max-width:1024px) {

    .business_left {
      width: 100%;
      position: relative;
      float: left;
    }

    .business_left img {
      width: 100%;
    }

    .business_right {
      padding-left: 0px;
      padding-right: 0px;
      padding-top: 55px;
      width: 100%;
      position: relative;
      float: left;
      font-size: 17px;
      line-height: 28px;
      color: #000;
    }

    .business_right p {
      font-size: 21px;
      font-weight: 500;
      line-height: 35px;
      color: #000;
    }

    .business_right p span {
      font-size: 28px;
      font-weight: 600;
    }

  }

  /* 모바일 대응 (690px 이하) */
  @media screen and (max-width: 690px) {
    .business-guide-wrap .main-title {
      font-size: 24px;
    }

    .business-section .section-title {
      font-size: 20px;
    }

    .sub-section .sub-title {
      font-size: 16px;
    }

    .sub-section .desc-list li {
      font-size: 14.5px;
    }
    .business_left {
      display: none;
    }
  }
 
/* 조직도 전체 래퍼 */
.organization {
    position: relative;
    width: 100%;
    margin: 20px 0;
    z-index: 1;
}

/* 협회장 */
.organization .head_org {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: var(--color1); /* 기존 변수 사용 */
    margin: 0 auto;
    position: relative;
    z-index: 2; /* 선 위로 덮도록 배치 */
}
.organization .head_org span {
    text-align: center;
    font-size: 28px;
    font-weight: bold;
    color: #fff;
}

/* 공통 리스트 스타일 */
.organization .org_list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.organization .org_list li {
    background: #fff; /* 뒤에 지나가는 선을 가리기 위한 흰색 배경 */
    z-index: 2;
}
.organization .org_list li .org_depth1 {
    text-align: center;
    background: var(--color3);
    color: #fff;
    border: 0;
    font-size: 20px;
    height: 70px;
    line-height: 70px;
    /* margin-bottom: 20px; */
}
.organization .org_list li p {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #ddd;
    margin-top: -1px;
    padding: 0 20px;
    font-size: 18px;
    height: 65px;
    font-weight: 500;
    text-align: center;
    box-sizing: border-box;
}

/* =======================================
   세로 그룹 (수석부회장 ~ 사무국장) 
======================================= */
.org_vertical {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 30px; /* 세로 항목 간격 */
    margin-top: 40px; 
    position: relative;
}
/* 협회장부터 사무국장 아래까지 이어지는 중앙 수직선 */
.org_vertical::before {
    content: '';
    position: absolute;
    top: -40px;
    /* 사무국장(마지막 요소) 박스 밑에서 30px 더 내려와서 가로선과 만나도록 수정 */
    bottom: -30px; 
    left: 50%;
    width: 1px;
    background: #ddd;
    z-index: -1;
}
.org_vertical li {
    width: 250px; /* 세로 리스트 박스 너비 */
}

/* =======================================
   가로 그룹 (총무국장 ~ 이사) 
======================================= */
.org_horizontal {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2%; 
    margin-top: 60px; /* 세로 그룹과의 간격 (위쪽 30px 지점에서 세로선과 가로선이 만남) */
    position: relative;
}
/* 양옆으로 뻗어나가는 가로선 */
.org_horizontal::before {
    content: '';
    position: absolute;
    top: -30px;
    /* 6개 항목 기준 첫 항목과 마지막 항목의 정중앙에 맞게 비율 조정 */
    left: 8.33%;  
    right: 8.33%; 
    height: 1px;
    background: #ddd;
    z-index: -1;
}
.org_horizontal li {
    flex: 1; /* 남은 공간을 동일하게 나눔 */
    position: relative;
}
/* 가로선에서 각 박스로 내려오는 짧은 수직선 */
.org_horizontal li::before {
    content: '';
    position: absolute;
    top: -30px;
    left: 50%;
    width: 1px;
    height: 30px;
    background: #ddd;
    z-index: -1;
}

/* =======================================
   모바일 반응형 (690px 이하) 
======================================= */
@media screen and (max-width: 690px) {
    .organization .head_org {
        width: 130px;
        height: 130px;
    }
    .organization .head_org span {
        font-size: 23px;
    }
    
    /* 모바일에서는 가로 그룹도 세로로 1열 배치 */
    .org_horizontal {
        flex-direction: column;
        align-items: center;
        margin-top: 30px;
        gap: 30px;
    }
    .org_vertical li, .org_horizontal li {
        width: 100%;
        max-width: 320px; /* 모바일에서 너무 꽉 차지 않도록 너비 제한 */
    }
    
    /* 데스크탑용 연결 선(가로선 등) 숨김 */
    .org_horizontal::before,
    .org_horizontal li::before {
        display: none;
    }
    
    /* 모바일용 중앙 수직선 하나로 통합 (사무국장 밑에서 끝까지 이어짐) */
    .org_horizontal::after {
        content: '';
        position: absolute;
        top: -30px;
        bottom: 0;
        left: 50%;
        width: 1px;
        background: #ddd;
        z-index: -1;
    }
}








/* 연혁 */
.history_wrap{display:flex;margin-top:0px;width:100%;padding:0 40px}
.history_title{width:37%;margin-right:13%}
.history_title .year{font-weight:700;color:#000;font-size:60px;font-family:sans-serif; font-family: 'S-CoreDream';}
.history_title .year2{margin:-40px 0 0 0; text-align:right}
.history_title .goal_tit{font-size:20px;padding-top:10px;  font-weight:500; }
.his_year_list{width:100%;padding-top:50px;overflow:hidden}
.his_year_list li{width:100%;float:left;padding:0 0 10px 0}

.his_year_list li:first-child{border-top:0;}
.his_year_list li:after {content:"";display:block;clear:both}
.his_year_list h4{float:left;font-family:sans-serif;width:14%;font-size:30px;display:inline-block;margin:0;text-align:left;vertical-align:top;
    font-weight:600;color:var(--color1);line-height:normal !important; font-family: 'S-CoreDream';}
.his_year_list li.tabmenu_ul{position:relative;float:left;width:88%;padding:10px 0 15px 0;margin-top:-3px}

.his_year_list .year_wrap{float:left;width:85%;position:relative;margin-bottom:55px}
.his_year_list .year_wrap:before{content:'';position:absolute;top:0;left:-20px;width:7px;height:100%;background:#efefef}

.his_year_list .year_wrap dl dt.month{font-family: 'S-CoreDream'; color:var(--color2);display:inline-block;vertical-align:top;width:12%;font-weight:bold;float:left;font-size:20px;line-height:34px}
.his_year_list .year_wrap dl dd.text{display:inline-block;width:88%;vertical-align:top;float:left;font-size:18px;
	line-height:34px;text-align:left; font-weight:400;}



@media screen and (max-width:690px){

    .history_top{height:220px}
    .history_title{width:100%}
    .history_title .year{font-size:37px;line-height:43px}
    .history_title .year2{margin:0;text-align:left}
    .history_wrap{flex-wrap:wrap;padding:0 20px}
    .his_year_list h4{width:100%;font-size:24px;padding-bottom:8px}
    .his_year_list .year_wrap{width:100%}
    .his_year_list .year_wrap dl dt.month{width:100%}
    .his_year_list .year_wrap dl dd.text{width:100%}   

}




.joinguide_tt{width:100%; border:15px solid #f5f5f5; padding:40px; text-align: center; font-size: 20px; margin-bottom:55px;}
.joinguide_tt span{font-weight:600; color:var(--color2); font-size:28px;}

.joinguide{width:100%; float:left; }
.joinguide ul{width:100%; margin-top:0px;}
.joinguide ul li{display: inline-block; float:left;}
.joinguide ul li:first-child{width:35%; float:left;}
.joinguide ul li:last-child{width:65%; float:left; font-size:19px; line-height:27px;}
.joinguide ul li span{font-weight:600; display:block; color:var(--color2);  font-size:22px; }
.joinguide ul li p{background:url('/theme/association/img/sub/dot01.png')no-repeat left; 
font-weight:500;
    padding-left:35px; line-height:40px; border:0px solid red;}

.joinguide ul li div{display: inline-block; float:left; width:50%;}
    /* =========================
   TABLET (1024px 이하)
========================= */
@media (max-width: 1024px) {

  .joinguide_tt {
    padding: 30px;
    font-size: 18px;
  }

  .joinguide_tt span {
    font-size: 24px;
  }

  .joinguide ul {
    margin-top: 40px;
  }

  .joinguide ul li:first-child {
    width: 40%;
  }

  .joinguide ul li:last-child {
    width: 60%;
    font-size: 18px;
    line-height: 26px;
  }

  .joinguide ul li span {
    font-size: 20px;
  }
}


/* =========================
   MOBILE (768px 이하)
========================= */
@media (max-width: 768px) {

  .joinguide_tt {
    border: 10px solid #f5f5f5;
    padding: 25px 20px;
    font-size: 17px;
    line-height: 1.5;
  }

  .joinguide_tt span {
    display: block;
    font-size: 22px;
    margin-bottom: 10px;
  }

  .joinguide ul {
    margin-top: 35px;
  }

  .joinguide ul li {
    width: 100% !important;
    float: none;
    display: block;
  }

  .joinguide ul li:first-child {
    margin-bottom: 20px;
  }

  .joinguide ul li:last-child {
    font-size: 16px;
    line-height: 24px;
  }

  .joinguide ul li span {
    font-size: 18px;
    margin-bottom: 10px;
  }

  .joinguide ul li p {
    padding-left: 28px;
    line-height: 32px;
    background-size: 25px;
  }
  .joinguide ul li div{display: inline-block; float:left; width:100%;}
}


/* =========================
   SMALL MOBILE (480px 이하)
========================= */
@media (max-width: 480px) {

  .joinguide_tt {
    font-size: 18px;
    padding: 20px 15px;
  }

  .joinguide_tt span {
    font-size: 20px;
  }

  .joinguide ul li:last-child {
    font-size: 17px;
    line-height: 26px;
  }

  .joinguide ul li p {
    padding-left: 25px;
    line-height: 30px;
  }
}





.biz-section {
  width: 100%;
  padding: 0px 0;
}

.biz-wrap {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 70px 80px;
}

.biz-item {
  width: calc(50% - 40px); /* ⭐ 2열 */
  display: flex;
  align-items: center;
  gap: 35px;
}

.biz-img {
 
 
  overflow: hidden;
  flex-shrink: 0;
}

.biz-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.biz-text h3 {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 14px;
}

.biz-text p {
  font-size: 17px;
  line-height: 1.6;
  color: #333;
}


@media (max-width: 1024px) {
  .biz-item {
    width: 100%; /* 태블릿부터 1열 */
  }
}

@media (max-width: 640px) {
  .biz-item {
    flex-direction: column;
    text-align: center;
  }

  .biz-img {
    width: 100%;
    height: 210px;
  }
}






/* 전체 영역 */
.portal-wrap {
  width: 100%;
  margin-top: 60px;
}

.portal-list {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.portal-list li { text-align: center;
  width: calc(25% - 15px);
}

/* 카드 */
.portal-box {
  border: 1px solid #ddd;
  background: #fff;
  text-align: center;
}

/* 상단 로고 영역 */
.portal-top {
    width:100%;
  padding:20px;
  display: inline-block !important;
  justify-items: center;
  text-align:center !important;
}

.portal-top img {
  max-width: 220px;
  width: 100%; 
  text-align:center !important;
}

/* 하단 회색 영역 */
.portal-bottom {
  background: #f5f5f5;
  padding: 18px 10px;
  font-size: 18px;
  font-weight: 600;
  color: #000;
}



/* 태블릿 (1024px 이하) */
@media (max-width: 1024px) {
  .portal-list li {
    width: calc(50% - 10px);
  }
}

/* 모바일 (768px 이하) */
@media (max-width: 768px) {
  .portal-list li {
    width: 100%;
  }

  .portal-top {
    padding: 30px 15px;
  }

  .portal-bottom {
    font-size: 16px;
  }
}
