@charset "utf-8";

.btnBoxLine {border:1px solid #D9DADE;}

/********** header **********/
/* 오버레이와 패널의 확실한 쌓임 순서 보장 */
#sideDim{position: fixed; inset: 0; z-index: 900;}
#gnbPanel{position: fixed; inset: 0 0 0 auto; max-width: 360px; width: 100%; z-index: 1000;}
#menuClose.panel-close{position: absolute; top: 12px; right: 16px; z-index: 1002; pointer-events: auto;}
.gnb-mobile{position: relative; z-index: 1001;}
.gnb-mobile .m-gnb,
.gnb-mobile .m-sub{position: relative;z-index: 1001;}

/* 데스크톱/모바일 화살표 제거(유지) */
.gnb-desktop .has-sub > .sub-toggle::after,
.gnb-mobile  .has-sub > .sub-toggle::after{content: none !important; display: none !important; background: none !important;}

/* 스크롤 오프셋(유지) */
html { scroll-padding-top: var(--header-h); }
section[id] { scroll-margin-top: var(--header-h); }

/* ▼▼▼ 여기부터 데스크톱 드롭다운 표시 로직 보정 ▼▼▼ */
/* 데스크톱: 하위메뉴 기본 감춤(모든 li 중 직계 자식 .sub 대상) */
header .gnb-desktop li > .sub {
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  /* 기존 오타 수정: rgba(0,0,8px,.25) → rgba(0,0,0,.25) */
  box-shadow: 0 8px 20px rgba(0,0,0,.25);
  /* 초기 숨김 상태 명시 */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

/* 데스크톱: hover/focus-within 시 표시 (모든 li 적용) */
@media (hover: hover) and (pointer: fine) {
  header .gnb-desktop li:hover > .sub,
  header .gnb-desktop li:focus-within > .sub {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
}

/* 서브 링크 스타일(유지) */
header .gnb-desktop li > .sub a {display: block;white-space: nowrap;}
header .gnb-desktop li > .sub a:hover,
header .gnb-desktop li > .sub a:focus {background: #E9E3DE; color:#796753; outline: none;}
/* ▲▲▲ 데스크톱 드롭다운 표시 로직 보정 끝 ▲▲▲ */

/* 사이드 패널/딤 (유지) */
.side-dim {inset: 0; background: rgba(0,0,0,.35);opacity: 0; visibility: hidden; transition: .2s ease;}
.side-panel {top: 0; right: 0; width: min(360px, 86vw); background: #fff; box-shadow: -4px 0 4px rgba(0,0,0,.25);transform: translateX(100%); transition: transform .25s ease;}
.panel-close {align-self: flex-end; background: transparent; border: none; font-size: 24px; line-height: 1; width: 24px; height: 24px; cursor: pointer;}
.menu-open .side-panel { transform: translateX(0); }
.menu-open .side-dim   { opacity: 1; visibility: visible; }
.no-scroll { overflow: hidden; touch-action: none; }

/* 모바일 GNB (유지) */
.m-gnb { list-style: none; margin: 8px 0 0; padding: 0; }
.m-gnb > li { border-bottom: 1px solid #eee; }
.m-gnb a, .m-gnb .sub-toggle {display: block; width: 100%; text-align: right;color: #222; background: none; border: none;}
.m-gnb .has-sub .sub-toggle { position: relative; }
.m-gnb .has-sub .sub-toggle::after {content: "▾";position: absolute; right: 8px; top: 50%; transform: translateY(-50%);}
.m-gnb .has-sub[aria-expanded="true"] .sub-toggle::after { content: "▴"; }

/* 햄버거 (유지) */
.hamburger {border: 0; background: transparent; cursor: pointer; }
.hamburger span, .hamburger span::before, .hamburger span::after {content: ""; position: absolute; left: 50%; transform: translateX(-50%);width: 24px; height: 2px; background: #222; transition: .2s ease;}
.hamburger span { top: 50%; }
.hamburger span::before { top: -8px; }
.hamburger span::after  { top:  8px; }

/* 공통 .sub(기존 margin-top이 hover 갭을 만들어 닫힘 유발 → 0으로 보정) */
.sub {box-shadow:0 0 8px rgba(0,0,0,.25); margin-top:0;}


/********** mainBanner **********/
.mainBanner {background:url('/img/mainBanner.jpg'); background-position:center center; background-size:cover;}
.txtShadow {text-shadow:0 0 8px rgba(0,0,0,.25);}
/********** business **********/
.businessCnt1 {background:url('/img/mainProgram-001.jpg'); background-position:center center; background-size:cover;}
.businessCnt2 {background:url('/img/mainProgram-002.jpg'); background-position:center center; background-size:cover;}
.businessCnt3 {background:url('/img/mainProgram-003.jpg'); background-position:center center; background-size:cover;}
.businessCnt4 {background:url('/img/mainProgram-004.jpg'); background-position:center center; background-size:cover;}
.businessCntLine {border:1px solid #F7F8F8;}



/********* notice *********/
.noticeBoxLine {border:1px solid #91949F;}
.noticeCntLine {border-top:2px solid #91949F; border-bottom:2px solid #91949F;}
.noticeCntLine {display: grid;grid-template-columns: 1fr;}
.noticeCntLine .noticeCntLines {display: block; box-sizing: border-box; position: relative; }
.noticeCntLine .noticeCntLines[data-aos] {will-change: transform, opacity;}
.noticeCntLine a {border-bottom:1px solid #91949F;}
.noticeCntLine .noticeItem.is-last {border-bottom: none;}
  

/********* contact *********/
.contact {background:url('/img/contactBg.jpg'); background-position:center center; background-size:cover;}
.contactBoxLine {border:1px solid #F7F8F8;}

/********* archive *********/
.archive {background:url('/img/archiveBg.jpg'); background-position:center center; background-size:cover;}
.archiveBtn {box-shadow:0 0 4px rgba(0,0,0,.25);}

/******* company *********/
.companyMainBanner {background:url('/img/subBanner-001.jpg'); background-position:center center; background-size:cover;}
.introTableLinert {border:1px solid #D9DADE;}
.introTableLineth {border-right:1px solid #D9DADE;}

.sales {background:url('/img/companyBg.jpg'); background-position:center center; background-size:cover;}

.planLien {border-top:1px solid #D9DADE; border-bottom:1px solid #D9DADE;}
.planLienTop {border-top:2px solid #445D59;}

.organizationBoxline {border:2px solid #445D59; box-shadow:0 0 8px #BFD0CC;}
.leftLine {border-left:2px solid #71908A;}
.bottomLine {border-bottom:2px solid #71908A;;}

.wrap_controllers {display:none;}
.cont {display:none;}
.map {width:100% !important; height:100% !important;}
.wrap_map {width:100% !important; height:100% !important;}
.root_daum_roughmap {width:100%  !important; height:560px !important;}
.locationBoxline {border:1px solid #D9DADE;}


/********** bisiness ***********/
.bisinessBanner {background:url('/img/subBanner-002.jpg'); background-position:center center; background-size:cover;}
.bisinessCntLine {border-bottom:2px solid #EEEEF0;}

.bisinessService {background:url('/img/coreValueBg.jpg'); background-position:center center; background-size:cover;}

.bisinessadvantage {background: linear-gradient(to bottom, #303F3D, #394C4A);}

.bisinessProcessBoxLine {box-shadow: 0px 0px 4px rgba(0,0,0,.25);}

.processArrow { transform: rotate(-90deg);}

.bisinessProcessTxt {right:0; bottom:0;}
.bisinessServiceCntLine {box-shadow:0 0 4px rgba(0,0,0,.25);}
:root { --hdr: 96px; --anchor-extra: 48px; }
@media (max-width: 1200px) {
  :root { --hdr: 72px; --anchor-extra: 32px; }
}
[id^="area"] { scroll-margin-top: calc(var(--hdr) + var(--anchor-extra)); }
html { scroll-behavior: smooth; }
  

/************* guide ***************/
.guideTable th,
.guideTable td {border: 1px solid #D3C5BC;}

/************* tidingsList ***************/
.tidingsTable { border-top:2px solid #26272B; border-bottom:2px solid #26272B; }
.tidingsTable td { border-top:1px solid #D9DADE; }
.tidingsList .card a { display:block; text-decoration:none; color:inherit; }
.tidingsList .title { word-break: keep-all; }
.tidingsList .tidingsGrid {display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 24px;row-gap: 56px; }
@media (min-width: 768px) and (max-width: 1199.98px) {.tidingsList .tidingsGrid {grid-template-columns: repeat(3, 1fr); column-gap: 24px; row-gap: 24px;}}
@media (max-width: 767.98px) {.tidingsList .tidingsGrid {grid-template-columns: repeat(2, 1fr); column-gap: 16px; row-gap: 16px; } }
.tidingsList .thumbWrap {position: relative; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #f5f5f5;}
.tidingsList .thumbWrap img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease;}
.tidingsList .thumbWrap:hover img {transform: scale(1.05);}


/***********************
** tidingstView
***********************/
.tidingsMainTxt img{ width:100%; }
.tidingsMainTxt > *:not(:first-child) img{ margin-top:48px; }
.tidingsBtnLine {border:1px solid #D9DADE;}
.tidingsTop {border-bottom:2px solid #26272B;}
.tidingsNav {border-top: 1px solid #D9DADE; border-bottom: 1px solid #D9DADE;}
.tidingsNav > .tidingsLine {border: 0;}
.tidingsNav > .tidingsLine + .tidingsLine {border-top: 1px solid #D9DADE;}
/* 첨부파일 영역 */
.tidingsAttach .attachList { list-style: none; margin: 0; padding: 0; }
.tidingsAttach .attachItem { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #E6E7EB; border-radius: 8px; }
.tidingsAttach .attachItem + .attachItem { margin-top: 8px; }
.tidingsAttach .attachIcon { width: 22px; height: 22px; flex: 0 0 22px; }
.tidingsAttach .attachLink { font-weight: 600; text-decoration: none; color: #2B2D36; }
.tidingsAttach .attachLink:hover { text-decoration: underline; }
.tidingsAttach .attachSize { margin-left: auto; color: #7A7F87; font-size: 0.92em; }

/* pagination */
.pager, .pager .pg-list { display: flex; align-items: center; justify-content: center; }

.pager .pg-btn,
.pager .pg-num,
.pager .pg-list a,
.pager .pg-list span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px; height: 36px;
  padding: 0 10px;
  border-radius: 4px;
  color: #111; background: transparent; border: 1px solid transparent;
  transition: background .15s ease, color .15s ease, border-color .15s ease, transform .05s ease;
  text-decoration: none;
}

.pager .pg-num.current {background: #f0f1f4; border-color: #f0f1f4;}

.pager .pg-btn:hover,
.pager .pg-num:hover {
  background: #f6f7f9;
}

.pager .pg-btn.disabled,
.pager .pg-btn.disabled:hover {
  color: #b8bcc4; background: transparent; border-color: transparent;
  cursor: default; pointer-events: none;
}

.pager .pg-list {margin: 0 6px; }

/* 모바일 간격 축소 */
@media (max-width: 640px) {
  .pager .pg-list { gap: 8px; }
  .pager .pg-btn, .pager .pg-num { min-width: 32px; height: 32px; border-radius: 7px; font-size: 13px; }
}
/* 현재 스타일 유지용 - 이미 있으시면 건너뜀 */
.pager .pg-num.current {
  background: #f0f1f4;
  color: #111;
  font-weight: 600;
  border-color: #f0f1f4;
}

/* 모바일(≤640px)에서는 현재/양옆 1개만 보이도록 */
@media (max-width: 640px) {
  .pager .pg-list .pg-num.edge-left,
  .pager .pg-list .pg-num.edge-right {
    display: none !important;
  }

  /* 모바일 간격도 살짝 줄임(선택) */
  .pager .pg-list { gap: 8px; }
  .pager .pg-btn, .pager .pg-num { min-width: 32px; height: 32px; border-radius: 7px; font-size: 13px; }
}


/************* classList ***************/
.classTable {border-top:2px solid #26272B; border-bottom:2px solid #26272B;}
.classTable td {border-top:1px solid #D9DADE;}
.classBtnLine {border:1px solid #D9DADE;}
.classTop {border-bottom:2px solid #26272B;}
.classNav {border-top: 1px solid #D9DADE; border-bottom: 1px solid #D9DADE;}
.classNav > .classLine {border: 0;}
.classNav > .classLine + .classLine {border-top: 1px solid #D9DADE;}

/************* lectureList ***************/
.lectureTable {border-top:2px solid #26272B; border-bottom:2px solid #26272B;}
.lectureTable td {border-top:1px solid #D9DADE;}
.lectureBtnLine {border:1px solid #D9DADE;}
.lectureTop {border-bottom:2px solid #26272B;}
.lectureNav {border-top: 1px solid #D9DADE; border-bottom: 1px solid #D9DADE;}
.lectureNav > .lectureLine {border: 0;}
.lectureNav > .lectureLine + .lectureLine {border-top: 1px solid #D9DADE;}

/************* endowment ***************/
.endowmentTable {border-top:2px solid #26272B; border-bottom:2px solid #26272B;}
.endowmentTable td {border-top:1px solid #D9DADE;}
.endowmentBtnLine {border:1px solid #D9DADE;}
.endowmentTop {border-bottom:2px solid #26272B;}
.endowmentNav {border-top: 1px solid #D9DADE; border-bottom: 1px solid #D9DADE;}
.endowmentNav > .endowmentLine {border: 0;}
.endowmentNav > .endowmentLine + .endowmentLine {border-top: 1px solid #D9DADE;}
.inputCell input{border:1px solid #D9DADE;}
.btn {border: 1px solid #D9DADE;}

/************* possession ***************/
.possessionTable {border-top:2px solid #26272B; border-bottom:2px solid #26272B;}
.possessionTable td {border-top:1px solid #D9DADE;}
.possessionBtnLine {border:1px solid #D9DADE;}
.possessionTop {border-bottom:2px solid #26272B;}
.possessionNav {border-top: 1px solid #D9DADE; border-bottom: 1px solid #D9DADE;}
.possessionNav > .possessionLine {border: 0;}
.possessionNav > .possessionLine + .possessionLine {border-top: 1px solid #D9DADE;}
.inputCell input{border:1px solid #D9DADE;}
.btn {border: 1px solid #D9DADE;}

/************* contribution ***************/
.contributionTable {border-top:2px solid #26272B; border-bottom:2px solid #26272B;}
.contributionTable td {border-top:1px solid #D9DADE;}
.contributionBtnLine {border:1px solid #D9DADE;}
.contributionTop {border-bottom:2px solid #26272B;}
.contributionNav {border-top: 1px solid #D9DADE; border-bottom: 1px solid #D9DADE;}
.contributionNav > .contributionLine {border: 0;}
.contributionNav > .contributionLine + .contributionLine {border-top: 1px solid #D9DADE;}
.inputCell input{border:1px solid #D9DADE;}
.btn {border: 1px solid #D9DADE;}
.memberTableWrapper {
  width: 100%;
}

@media (max-width: 1200px) {
  .memberTableWrapper {
    overflow-x: auto;
  }

  .memberTableWrapper .contributionTable {
    min-width: 960px;
  }
}

/************* pressList ***************/
.pressTable { border-top:2px solid #26272B; border-bottom:2px solid #26272B; }
.pressTable td { border-top:1px solid #D9DADE; }
.pressList .card a { display:block; text-decoration:none; color:inherit; }
.pressList .title { word-break: keep-all; }
.pressList .pressGrid {display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 24px;row-gap: 56px; }
@media (min-width: 768px) and (max-width: 1199.98px) {.pressList .pressGrid {grid-template-columns: repeat(3, 1fr); column-gap: 24px; row-gap: 24px;}}
@media (max-width: 767.98px) {.pressList .pressGrid {grid-template-columns: repeat(2, 1fr); column-gap: 16px; row-gap: 16px; } }
.pressList .thumbWrap {position: relative; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #f5f5f5;}
.pressList .thumbWrap img {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease;}
.pressList .thumbWrap:hover img {transform: scale(1.05);}

/*********** login ***********/
.loginBg {background:url('/img/mainBanner.jpg'); background-position:center center; background-size:cover;}
.loginBoxLine {border:1px solid #D9DADE;}
.loginBoxLine2 {box-shadow:0 0 4px rgba(0,0,0,.25);}

/*********** signin ***********/
.signinBoxLine {box-shadow:0 0 4px rgba(0,0,0,.25);}

/*********** signing ***********/
.signingBoxLine {box-shadow:0 0 4px rgba(0,0,0,.25);}
.siningBoxLine {border:1px solid #D9DADE;}
.termsCheckbox {
  width: 24px;
  height: 24px;
  margin: 0;
  border: none;
  background: url('/img/chkOff.svg') center center / cover no-repeat;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.2s ease-in-out;
}
.termsCheckbox:checked {
  background-image: url('/img/chkOn.svg');
}
.termsCheckbox:focus-visible {
  outline: 2px solid #26272B;
  outline-offset: 2px;
}
.siningpolicyLine {border:1px solid #EEEEF0;}

/*********** sucsess ********/
.sucsessBoxLine {box-shadow:0 0 4px rgba(0,0,0,.25);}

/*********** find ********/
.findIdBoxLine {box-shadow:0 0 4px rgba(0,0,0,.25);}
.findBoxLine {border:1px solid #D9DADE;}

/*********** case ********/
.inputLine {border:1px solid #D9DADE;}
.btnLine {border:1px solid #B8BAC1;}
.caseListBtn {border:1px solid #D9DADE; background:none;}
.caseBottomLine {border-bottom:2px solid #D9DADE;}
.caseBtnLine {border:1px solid #D9DADE;}
.casenextprevBtn {border-top:1px solid #D9DADE; border-bottom:1px solid #D9DADE;}
.casenextBtn {border-bottom:1px solid #D9DADE;}
.casemainTxt div p img{width:100%;}

/********* notice ************/
.noticeBanner {background:url('/img/subBanner-004.jpg'); background-position:center center; background-size:cover;}
.noticeadminTable {border-top:2px solid #222; border-bottom:2px solid #222;}
.noticeadminTable tbody tr td {border-top:1px solid #D9DADE;}
.noticemainTxt div p img {width:100%;}
/* 첨부파일 리스트 */
.noticeFilesList { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.noticeFilesList li { margin: 0; }
.noticeFilesList li:first-child .fileItem { border-top: none; }


/* 긴 파일명 말줄임 */
.fileName { color: #111; }
.ellip-1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 확장자별 컬러(선택) */
.fileBadge:where(:not(:empty)) { text-transform: uppercase; }
.fileBadge:where(:not(:empty)):is(.pdf, [data-ext="pdf"]) { background:#FEE2E2; color:#991B1B; }


/********** contact *************/
.contactBanner {background:url('/img/subBanner-005.jpg'); background-position:center center; background-size:cover;}
.contactBox {box-shadow: 0px 0px 8px #D9DADE;}
.contactBoxLine {border:1px solid #D9DADE;}
.contactBox input[type="checkbox"]{left:-9999px;}
.contactBox input[type="checkbox"] + label{cursor: pointer; }
.contactBox input[type="checkbox"] + label:before{width:20px; height:20px;  content:''; transition: ease-in-out 0.3s;
  margin-right:8px;background:url('/img/chkOff.svg')center center no-repeat; background-size:cover;display:block}
.contactBox input[type="checkbox"]:checked + label:before{background:url('/img/chkOn.svg')center center no-repeat;}
.underLine {text-decoration: underline;text-decoration-thickness: 1px;text-decoration-color: currentColor;text-decoration-skip-ink: auto;}
.contactStyleNo {border:none !important;}
.contactBgIcon {bottom:0;}
.onlineLists {border-top:1px solid #D9DADE; border-bottom:1px solid #D9DADE;}
.onlineLists tbody tr td{border-top:1px solid #D9DADE;}
.onlineLists tbody tr td + td{ border-left:1px solid #D9DADE; }
.onlineLists thead tr th + th{ border-left:1px solid #D9DADE; }

.onlineViews {border-top:1px solid #D9DADE; border-bottom:1px solid #D9DADE;}
.onlineViews tr th{border-top:1px solid #D9DADE;border-bottom:1px solid #D9DADE;}
.onlineViews tr td{border-top:1px solid #EEEEF0;border-bottom:1px solid #EEEEF0;}
.onlineViews tr td + td{ border-left:1px solid #EEEEF0; }
.onlineViews tr th + th{ border-left:1px solid #EEEEF0; }
.styleN {border:none; background:none;}
.onlineListBtn {border:1px solid #D9DADE;}


/*********** footer ********/
footer {border-top:1px solid #B8BAC1;}
#familySite {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
  
    /* 셀렉트 박스 내부에 화살표 이미지를 배경으로 배치 */
    background-image: url("/img/arrow.svg");
    background-repeat: no-repeat;
    background-position: right 12px center; /* 박스 안쪽 우측 정렬 */
    background-size: 16px 16px;
  
    /* 텍스트가 화살표와 겹치지 않도록 우측 패딩 확보 */
    padding-right: 40px !important;
    line-height: 1.4;
  }
  
  /* 구형 IE/Edge 네이티브 화살표 숨김 */
  #familySite::-ms-expand { display: none; }
  
  /* 반응형 크기/간격 보정 */
  @media (max-width: 1199.98px) {
    #familySite {
      background-position: right 10px center;
      background-size: 14px 14px;
      padding-right: 34px !important;
    }
  }
  @media (max-width: 767.98px) {
    #familySite {
      background-position: right 8px center;
      background-size: 12px 12px;
      padding-right: 30px !important;
    }
  }
  
  /* 고대비 모드(일부 윈도우 환경)에서 배경이미지 숨김 → 텍스트 접근성 우선 */
  @media (forced-colors: active) {
    #familySite { background-image: none; }
  }
  

  /********* policy ************/
  .policyTp {border-bottom:1px solid #222;}
