@charset "utf-8";

/* header */
header { position: fixed; width: 100%; left: 0; top: 0; z-index: 11; background: #fff; transition: box-shadow 0.3s ease; }
header.is-scrolled { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); }
header .s__row { display: flex; align-items: center; justify-content: space-between; height: 100px;}
header .s__row h1 {display:block; overflow:hidden; position:relative; width:350px;}
header .s__row h1 img {width:100%; height:auto;}


.header_nav > ul { display: flex; align-items: center; height: 100%; }
.header_nav, .header_nav > ul > li { height: 100%; }
.gnb > li > a { color: #212121; font-size: 22px; font-weight: 700; line-height: 65px; padding: 0 30px; height: 100%; position: relative; display: flex; align-items: center; justify-content: center; }
.gnb > li > a:hover, .gnb > li > a.is-active, .gnb > li.is-active > a { color: #2244d8; }
.gnb > li > a::after { content: ""; display: block; position: absolute; width: 80%; height: 3px; background-color: #2244d8; bottom: 0; left: 50%; border-radius: 10px; transform: translateX(-50%) scaleX(0); transform-origin: center; transition: transform 0.3s ease; }
.gnb > li > a:hover::after, .gnb > li > a.is-active::after, .gnb > li.is-active > a::after { transform: translateX(-50%) scaleX(1); }
.pc-header-btsn { padding: 12px 18px; border-radius: 500px; background: rgba(199, 199, 199, 0.28); display: flex; align-items: center; gap: 14px; }
.pc-header-btsn button { color: #4d4d4d; font-size: 18px; font-weight: 500; display: flex; align-items: center; gap: 6px; }
.pc-header-btsn .btn-login:after { content: ""; display: block; width: 1px; height: 13px; margin-left: 8px; background: rgba(86, 86, 86, 0.65); }


.pc-header-nav-wrap { position: absolute; top: 100px; width: 100%; height: 400px; overflow: hidden; pointer-events: none; }
header.is-nav-open .pc-header-nav-wrap { pointer-events: auto; border-top: 1px solid #e0e0e0; }
.pc-header-nav { height: 100%; width: 100%; display: flex; transform: translateY(-100%); transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
header.is-nav-open .pc-header-nav { transform: translateY(0); }
.header-nav-dimmed { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.23); z-index: 9; opacity: 0; visibility: hidden; transition: opacity 0.4s ease, visibility 0.4s ease; pointer-events: none; }
header.is-nav-open + .header-nav-dimmed { opacity: 1; visibility: visible; pointer-events: auto; }
.pc-header-nav-title { background: linear-gradient(90deg, #4ea0f3 19.07%, #3752d5 63.79%); height: 100%; width: calc(max(48px, (100vw - 1562px) / 2) + 460px); padding: 75px 80px 0 max(48px, calc((100vw - 1574px) / 2)); position: relative; }
.pc-header-nav-title::before { content: ""; position: absolute; width: 100%; height: 100%; right: 0; bottom: 0; background: url('../images/common/img_header_nav_pc.png') no-repeat 50% 50%; background-size: cover; }
.pc-header-nav-title h2 { color: #fff; font-size: 39px; font-weight: 700; line-height: 55px; margin-bottom: 22px; width: auto; word-break: keep-all; }
.pc-header-nav-title p { color: #fff; font-size: 21px; font-weight: 600; line-height: 34px; width: auto; word-break: keep-all; }
.pc-header-nav-list-wrap { border-radius: 80px 0 70px 0; background: #fff; flex: 1; min-width: 0; margin-left: -70px; position: relative; z-index: 1; padding: 0px calc((100vw - 1500px) / 2) 0px 80px; }
.pc-header-nav-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 18px; overflow: auto; height: 100%; padding: 28px 24px 28px 0; } /* 행 간격(row-gap) 30→8, 상하 padding 50→28 (카드 두 줄 위아래 간격 축소 요청). 정렬은 기존(상단) 유지 */
.pc-header-nav-item { display: flex; flex-direction: column; gap: 15px; }
.pc-depth01 { height:55px; border-radius: 10px; border: 1px solid #bfc5d9; background: #fff; padding: 15px 22px 15px 28px; display: flex; align-items: center; justify-content: space-between; transition: all 0.3s ease; color: #464646; font-size: 20px; font-weight: 500; line-height: 31px; word-break: keep-all; } /* keep-all: 한국어 라벨을 글자 중간이 아닌 공백에서만 줄바꿈(예: "파일업로드 장애시 처리방법" → "처리방법"부터 다음 줄) */
.pc-depth01 img { filter: brightness(0); opacity: 0.6; }
.pc-depth01:hover { border: 1px solid #2f51bd; box-shadow: 1px 4px 3.1px 2px rgba(125, 125, 125, 0.22); color: #2244d8; font-size: 20px; font-weight: 700; line-height: 31px; }
.pc-depth01:hover img { filter: none; opacity: 1; }
.pc-depth02 { display: flex; flex-direction: column; }
.pc-depth02 a { color: #434343; font-size: 19px; font-weight: 300; line-height: 38px; letter-spacing: var(--letter-spacing--0_5, -0.5px); padding-left: 32px; display: flex; align-items: center; gap: 10px; }
.pc-depth02 a::before { content: ""; display: block; width: 5px; height: 5px; background: #929292; border-radius: 50%; }
.pc-depth02 a:hover { color: #242424; font-weight: 500; }

/* GNB 드롭다운 패널 */
.gnb-panel { position: fixed; top: 100px; left: 0; width: 100%; height: 260px; display: flex; z-index: 10; border-top: 1px solid #e0e0e0; visibility: hidden; clip-path: inset(0 0 100% 0); pointer-events: none; } /* GNB 메가메뉴 패널 높이 450→260 (축소 요청 — 실제 사용 컨테이너). transition 제거: 닫힘은 즉시(메뉴 전환 시 잔상 방지), 열림만 아래 keyframe 로 애니메이션 */
/* 메뉴 전환 시 나가는 패널이 0.35s 전환으로 잔상이 남아 이전 메뉴가 순간 겹쳐 보이던 버그 → 열림만 애니메이션(닫힘 즉시)으로 해결 */
.gnb > li.is-active .gnb-panel { visibility: visible; clip-path: inset(0 0 0% 0); pointer-events: auto; animation: gnbPanelReveal 0.35s ease-out; }
@keyframes gnbPanelReveal { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0% 0); } }


/* footer */
footer { padding: 65px 0 75px; background: url('../images/common/img_footer_bg.png') no-repeat center bottom; background-size: cover; background-color: #1a222d; }
.footer-line01 { display: flex; align-items: center; justify-content: space-between; padding: 0 16px 46px; border-bottom: 1px solid rgba(255, 255, 255, 0.24); }
.footer-select-wrap { display: flex; align-items: center; gap: 22px; }
.footer-select-item { position: relative; }
.footer-select { display: flex; width: 436px; height: 65px; padding: 20px 34px; align-items: center; justify-content: space-between; gap: 10px; border-radius: 15px; background: #364153; color: #fff; font-size: 21px; font-weight: 600; }
.footer-select::after { content: ""; display: block; width: 20px; height: 12px; background: url('../images/common/icon_arrow_down.svg') no-repeat center; transition: transform 0.3s ease; }
.footer-select-item.is-open > .footer-select { border-radius: 0 0 15px 15px; }
.footer-select-item.is-open > .footer-select::after { transform: rotate(180deg); }
.footer-dropdown { display: none; position: absolute; bottom: 100%; left: 0; width: 100%; background: #3b4659; border-radius: 15px 15px 0 0; overflow-y: auto; max-height: 380px; z-index: 200; padding: 20px 28px; box-sizing: border-box; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.2) transparent; }
.footer-select-item.is-open .footer-dropdown { display: block; }
.foot_link_box > p { color: rgba(255, 255, 255, 0.83); font-size: 18px; font-weight: 500; margin: 20px 0 6px; padding-bottom: 6px; border-bottom: 1px solid rgba(255, 255, 255, 0.15); }
.foot_link_box > p:first-child { margin-top: 0; }
.foot_link_box ul { display: flex; flex-wrap: wrap; }
.foot_link_box ul li { width: 50%; }
.foot_link_box ul li a { display: block; color: #fff; font-size: 17px; line-height: 34px; padding: 1px 0; transition: color 0.2s; }
.foot_link_box ul li a:hover { color: #7eb4ef; }
.footer-dropdown-list li a { display: block; color: #fff; font-size: 17px; line-height: 34px; transition: color 0.2s; }
.footer-dropdown-list li a:hover { color: #7eb4ef; }
.footer-sns { display: flex; align-items: center; gap: 8px; }
.footer-sns a { padding: 8px; }
.footer-line02 { display: flex; align-items: flex-start; justify-content: space-between; padding: 50px 16px 0; }
.footer-info { display: flex; flex-direction: column; gap: 2px; }
.footer-info ul { display: flex; align-items: center; gap: 20px; }
.footer-info p { color: #dbdbdb; font-size: 19px; font-weight: 400; line-height: 34px; }
.footer-info p strong { font-weight: 500; color: #fff; }
.footer-copy { color: #e0e0e0; font-size: 18px; font-weight: 300; line-height: 33px; margin-top: 20px; }
.footer-link { display: flex; flex-direction: column; align-items: flex-end; }
.footer-link-list { display: flex; align-items: center; gap: 30px; margin-top: 40px; }
.footer-link-list a { color: #cfcfcf; font-size: 19px; font-weight: 500; display: flex; align-items: center; gap: 30px; }
.footer-link-list .point { color: #00A1E9; }
.footer-link-list a:not(:last-child)::after { content: ""; display: block; width: 5px; height: 5px; border-radius: 10px; background: rgba(252, 252, 252, 0.38); }

/* floating */
.floating-btn { position: fixed; bottom: 30px; right: 30px; display: flex; flex-direction: column; align-items: center; gap: 20px; z-index: 10; opacity: 0; visibility: hidden; transform: translateY(20px); transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease; }
.floating-btn.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.floating-link { padding: 8px 8px 20px; display: flex; width: 90px; flex-direction: column; align-items: center; border-radius: 50px; background: linear-gradient(180deg, #1775bd 0%, #3752d5 100%); overflow: hidden; }
.floating-link-slide a { display: flex; flex-direction: column; gap: 12px; align-items: center; }
.floating-link-slide.swiper { width: 100%; overflow: hidden; }
.floating-link-slide .swiper-slide { display: flex; justify-content: center; width: 100%; min-width: 0; }
.floating-link-slide .swiper-wrapper { align-items: center; }
.floating-link-slide .floating-slide-img { width: 74px; height: 74px; background: rgba(0, 0, 0, 0.29); border-radius: 100%; display: flex; align-items: center; justify-content: center; }
/* .floating-link-slide .floating-slide-img i.bi { font-size: 50px !important; color: #fff !important; line-height: 1 !important; } */
.floating-link-slide .floating-slide-img i.bi::before { font-size: 30px; color: #fff; }
.floating-link-slide a p { color: #fff; text-align: center; font-size: 16px; font-weight: 500; line-height: 24px; }
.floating-move-btn { display: flex; align-items: center; justify-content: center; }
.floating-move-btn button { padding: 12px 6px; }
.floating-top { width: 80px; height: 80px; border-radius: 100%; background: #444348; display: flex; align-items: center; justify-content: center; flex-direction: column; filter: drop-shadow(0 1px 6.6px rgba(168, 168, 168, 0.25)); gap: 6px; }
.floating-top p { color: #fff; text-align: center; font-size: 15px; font-weight: 600; }

/* mobile */
.mobile-menu { display: none; }
.mobile-header-nav-wrap { display: none; }
.mobile-nav-dimmed { display: none; }
.mobile-only { display: none; }

@media all and (max-width: 1600px) {
    .gnb > li > a { font-size: 20px; padding: 0 22px; }
    header .s__row h1 { width: 300px; }
}

@media all and (max-width: 1400px) {
    header .s__row h1 { width: 290px; }
    .gnb > li > a { font-size: 18px; padding: 0 25px; }
    .pc-header-btsn { padding: 10px 14px; gap: 10px; }
    .pc-header-btsn button { font-size: 16px; }
    .pc-header-nav-wrap { display: none; }
    .pc-header-nav-title { padding-left: 48px; padding-right: 50px; width: 500px; }
    .pc-header-nav-title h2 { font-size: 32px; width: auto; word-break: keep-all; }
    .pc-header-nav-title p { font-size: 18px; line-height: 25px; width: auto; word-break: keep-all; }
    .pc-header-nav-list-wrap { padding-left: 50px; padding-right: 30px; border-radius: 50px 0 70px 0; }
    .footer-line01 { flex-direction: column; gap: 44px; }
    .footer-info ul { flex-direction: column; gap: 0px; }
    .footer-line02 { flex-direction: column; align-items: center; }
    .footer-link { align-items: center; margin-top: 38px; }
    .floating-btn { display: none; }
}

@media all and (max-width: 1200px) {
    .gnb > li > a { font-size: 17px; padding: 0 12px; }
    .pc-header-btsn { padding: 8px 12px; gap: 8px; }
    .pc-header-btsn button { font-size: 14px; }
    header .s__row h1 { width: 260px; }
    .pc-header-nav-title { width: 260px; padding-left: 32px; }
    .pc-header-nav-title h2 { font-size: 22px; line-height: 32px; margin-bottom: 12px; }
    .pc-header-nav-title p { font-size: 14px; line-height: 22px; }
    .pc-header-nav-list { gap: 20px 12px; }
    .pc-header-nav-list-wrap { padding-left: 30px; padding-right: 20px; }
}

@media all and (max-width: 1024px) {
  .header_nav, .pc-header-btsn { display: none; }
  .gnb-panel { display: none !important; }
  header .s__row { height: 80px; }
    /* mobile */
  .mobile-menu { display: block; }
  .mobile-header-nav-wrap { display: flex; flex-direction: column; border-radius: 24px; background: linear-gradient(359deg, #1c75cd 1.52%, #2241d8 99.64%); position: fixed; top: 10px; right: 5px; width: calc(100vw - 86px); height: calc(100dvh - 20px); max-height: 725px; transform: translateX(110%); transition: transform 0.38s cubic-bezier(0.4, 0, 0.2, 1); z-index: 2; }
  header.is-mobile-open .mobile-header-nav-wrap { transform: translateX(0); }
  .mobile-nav-dimmed { display: block; position: fixed; inset: 0; background: rgba(0, 0, 0, 0.2); z-index: 1; opacity: 0; visibility: hidden; transition: opacity 0.38s ease, visibility 0.38s ease; pointer-events: none; }
  header.is-mobile-open .mobile-nav-dimmed { opacity: 1; visibility: visible; pointer-events: auto; }
  .mobile-header { padding: 18px 25px; display: flex; align-items: center; justify-content: flex-end; border-bottom: 1px solid rgba(255, 255, 255, 0.36); }
  .mobile-header a { color: #fff; font-size: 17px; font-weight: 500; display: flex; align-items: center; gap: 8px; }
  .mobile-header a img { filter: invert(1) sepia(1) grayscale(1) brightness(200%); }
  .mobile-header a:not(:last-child):after { content: ""; display: block; width: 1px; height: 13px; background: rgba(255, 255, 255, 0.65); margin-left: 12px; margin-right: 20px; }
  .mobile-header-close-btn { width: 45px; height: 45px; border-radius: 10px; background: #fff; box-shadow: 1px 4px 4px 0 rgba(28, 28, 28, 0.13); position: fixed; top: 35px; right: calc(100vw - 100px); z-index: 11; display: flex; align-items: center; justify-content: center; }
  .mobile-header-btns { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 18px 24px; }
  .mobile-header-btns a { flex: 1; height: 43px; display: flex; align-items: center; justify-content: center; border-radius: 800px; font-size: 16px; font-weight: 600; line-height: 30px; gap: 5px; }
  .mobile-header-btns a:nth-child(1) { background: #c2d3f3; color: #383838; }
  .mobile-header-btns a:nth-child(2) { background: #1d2d66; color: #ffffff; }
  .mobile-header-nav { padding: 0 13px 24px 13px; display: flex; height: calc(100% - 130px); }
  .mobile-header-step01 { width: 135px; display: flex; flex-direction: column; gap: 10px; margin-top: 24px; position: relative; z-index: 2; }
  .mobile-header-step01 button { height: 50px; display: flex; align-items: center; justify-content: center; position: relative; color: rgba(255, 255, 255, 0.9); text-align: center; font-size: 18px; font-weight: 600; line-height: 58px; letter-spacing: var(--letter-spacing--0_5, -0.5px); width: 100%; }
  .mobile-header-step01 button.is-active { color: #fff; width: calc(100% + 28px); background: linear-gradient(90deg, #1d3393 0%, #1925a1 100%); box-shadow: 1px 3px 3.8px 0 rgba(33, 33, 33, 0.25); border-radius: 100px; padding-right: 28px; }
  .mobile-header-step01 button.is-active::before { display: none; }
  .mobile-header-step01 button.is-active::after { content: ""; display: block; position: absolute; top: 50%; right: 15px; transform: translateY(-50%); width: 30px; height: 30px; background: url('../images/common/icon_mobile_menu_arrow.svg') no-repeat 50% 50%; background-size: contain; }
  .mobile-header-step02-wrap { display: flex; flex-direction: column; border-radius: 30px; background: #fff; box-shadow: 1px 4px 4px 0 rgba(42, 42, 42, 0.25); flex: 1; padding: 15px 19px 15px 28px; z-index: 1; overflow: auto; }
  .mobile-header-step02 { height: 60px; padding: 0 15px; border-bottom: 1px solid #cfcfcf; width: 100%; color: #3d3d3d; font-size: 17px; font-weight: 500; letter-spacing: var(--letter-spacing--0_5, -0.5px); display: flex; align-items: center; justify-content: space-between; text-align: left; }
  .mobile-header-dropdown { display: flex; flex-direction: column; border-bottom: 1px solid #cfcfcf; }
  .mobile-header-dropdown .mobile-header-step02 { border-bottom: none; }
  .mobile-header-step03 { margin: 10px 3px; border-radius: 10px; background: #f6f7ff; display: none; flex-direction: column; padding: 12px 20px; }
  .mobile-header-dropdown.is-active .mobile-header-step03 { display: flex; }
  .mobile-header-step03 a { color: #434343; font-size: 15px; font-weight: 300; line-height: 34px; letter-spacing: var(--letter-spacing--0_5, -0.5px); position: relative; display: flex; align-items: center; gap: 8px; }
  .mobile-header-step03 a::before { content: ""; display: block; width: 5px; height: 5px; border-radius: 10px; background: #929292; }
  .mobile-header-step03 a.is-active { font-weight: 500; }
  .mobile-header-dropdown.is-active .mobile-header-step02 { color: #3752d5; font-weight: 700; border-bottom: 1px solid #3752d5; }
  .mobile-header-dropdown.is-active .mobile-header-step02 img { filter: none; }
  .mobile-header-step02.link { justify-content: flex-start; gap: 8px; }
  .mobile-header-step02 img { filter: grayscale(1); opacity: 0.8; }

  .footer-select-wrap { width: 100%; }
  .footer-select-item { flex: 1; }
  .footer-select { width: 100%; }
  .footer-copy { color: #e0e0e0; font-size: 18px; font-weight: 300; line-height: 33px; }
  .footer { padding: 60px 0; }
  .schedule-list::after { bottom: 16px; }
  .sec03-nav-item { font-size: 20px; }
  .mobile-only { display: block; }
}


@media all and (max-width: 767px) {
	header .s__row h1 {display:block; overflow:hidden; position:relative; width:240px;}
  .scroll-down {display: none;}
  .footer-select-wrap { flex-direction: column; }
  .footer-select-item { width: 100%; }
  .footer-info p { font-size: 15px; text-align: center; }
  .footer-link-list a { font-size: 14px; gap: 8px; }
  .footer-link-list { gap: 8px; }
  /* 하단 링크가 좁은 폰 폭(360px 이하)을 넘기면 가로 오버플로우 → 상단 fixed 헤더 오른쪽에 빈 공백이 생긴다.
     줄바꿈시켜 원천 차단(폰트 크기는 불변, 14px 유지). 안 넘치는 폭에서는 한 줄 가운데 정렬. (2026-07-01) */
  .footer-link-list { flex-wrap: wrap; justify-content: center; }
  .footer-link-list a:not(:last-child)::after { }
  .footer-line01 { padding: 0 0 46px; }
  .footer-line02 { padding: 50px 0 0; }
  .footer-link img { height: 32px; }
  .mobile-header-nav-wrap { width: calc(100vw - 40px); }
  .mobile-header-close-btn { right: calc(100vw - 56px); }
  .footer-info p { line-height: 25px; }
  .footer-info { gap: 15px; }
  .footer-copy { margin-top: 0px; }
  }