﻿
@import url('http://fonts.googleapis.com/earlyaccess/nanummyeongjo.css');
@font-face { 
    font-family: 'cafe24ohsquare-v2.0'; 
    src: url('fonts/cafe24ohsquare-v2.0.otf') format('opentype'); 
}

@font-face { 
    font-family: 'NotoSerif-Regular'; 
    font-style: normal;
	font-weight:300;
    src: url('fonts/NotoSerifCJKkr-Regular-subset.woff2') format('woff2'),
		url('fonts/NotoSerifCJKkr-Regular-subset.woff') format('woff'),
		url('fonts/NotoSerif-Regular.ttf') format('truetype');
    
}


@font-face { 
    font-family: 'NanumSquare'; 
    font-weight: 800;
    font-style: normal;
    font-display: swap;
    src: url('webfont/NanumSquare/NanumSquareEB.woff2') format('woff2'),
         url('webfont/NanumSquare/NanumSquareEB.woff') format('woff'),
         url('webfont/NanumSquare/NanumSquareEB.ttf') format('truetype');
}

@font-face { 
    font-family: 'NanumSquare'; 
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    src: url('webfont/NanumSquare/NanumSquareB.woff2') format('woff2'),
         url('webfont/NanumSquare/NanumSquareB.woff') format('woff'),
         url('webfont/NanumSquare/NanumSquareB.ttf') format('truetype');
}

@font-face { 
    font-family: 'NanumSquare'; 
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    src: url('webfont/NanumSquare/NanumSquareR.woff2') format('woff2'),
         url('webfont/NanumSquare/NanumSquareR.woff') format('woff'),
         url('webfont/NanumSquare/NanumSquareR.ttf') format('truetype'); 
}
@font-face { 
    font-family: 'NanumSquare'; 
    font-weight: 300;
    font-style: normal;
    font-display: swap;
    src: url('webfont/NanumSquare/NanumSquareL.woff2') format('woff2'),
         url('webfont/NanumSquare/NanumSquareL.woff') format('woff'); 
}




@-webkit-keyframes zoomin { 0% { -webkit-transform: scale(1.2); } 100% { -webkit-transform: scale(1); } }
@keyframes zoomin { 0% { transform: scale(1.2); } 100% { transform: scale(1); } }




/* ========================================================
   2. 전역 설정 및 유틸리티 (Globals & Utilities)
======================================================== */
:root { --top: 100%; }

body * { font-family: 'NanumSquare', sans-serif; 
    -webkit-font-smoothing: antialiased; 
    -moz-osx-font-smoothing: grayscale; 
    text-rendering: optimizeLegibility;   }
a { text-decoration: none !important; color: inherit; }
a:focus{outline: none !important;}

/* Font Utilities */
.f_notoserif_N{font-family: 'NotoSerif-Regular', serif !important; }
.cafe24ohsquare { font-family: 'cafe24ohsquare-v2.0'; }
.pretendardEB { font-family: 'pretendard-extrabold'; }
.pretendardB { font-family: 'pretendard-bold'; }
.pretendardR { font-family: 'pretendard-regular'; }

/* Common Utilities */
.flex { display: flex; }
.point { position: absolute; bottom: -91px; left: 46%; margin-left: -9px; display: none; opacity: 1; }
.white { background-color: rgba(0,0,0,.3) !important; transition: all 0.6s; }
.black { background-color: rgba(0,0,0,0.5); }

#bandMessage { bottom: 50% !important; }
#findForm { padding: 145px 0 !important; }

.slider .slider-dots{position: absolute;

	margin-bottom:30px;
    display: flex;
    gap: 5px;
    align-items: center;
    justify-content: center;}

.slider .slider-dots .each-dot.active {
    width: 26px !important;
    height: 4px !important;
    border-radius: 2px;
	border:none;
    background: #BFFF00 !important;
}
.slider .slider-dots .each-dot {
    width: 12px !important;
    height: 12px !important;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
    cursor: pointer;
    transition: all 0.3s;
}
.slider .move-btn{    
   background:transparent !important;
    position: absolute;
    top: 50%;
    margin-top: -52px;
    cursor: pointer;
    padding: 42px 12px;
    opacity: 0.5;transition:0.2s all;}
	.slider .move-btn:hover{opacity: 1;transition:0.2s all;} 

/* ========================================================
   3. 헤더 및 GNB 네비게이션 (새 디자인 적용)
======================================================== */
#topbar {
    position: absolute; /* fixed에서 absolute로 변경 (상단 고정은 스크립트 클래스로 제어) */
    top: 0; left: 0;
    width: 100%;
    height: 102px;
	padding: 0 3vw;
    background: rgba(3, 3, 3, 0.3);
    z-index: 9999;
    transition: background 0.3s;
}
#topbar.black { background: rgba(3, 3, 3, 0.85); }
#topbar.fixeddown { top: -150px; }
#topbar.fixedup { top: 0px; position: fixed; }

#main_logo { width: 208px; height: 74px; }
.logo-wrap { display: flex; align-items: center; }

#gnb { flex: 1;display: flex;justify-content: flex-end;padding: 0 5%; }
.depth1 { display: flex; gap: 40px; margin: 0; padding: 0; list-style: none; }
.depth1 > li { position: relative; padding: 30px 0; }
.depth1 > li > a {
    font-family: 'NanumSquare', sans-serif;
    font-size: 20px;
    font-weight: 400;
    color: #fff;
    transition: color 0.3s ease;
}
.depth1 > li:hover > a { color: #BFFF00; }

/* 뎁스2 (초록색 팝업) */
.depth2 {
    display: block !important;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 180px;
    padding: 14px 20px;
    background: #5F7E00;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, transform 0.25s ease;
    z-index: 100;
}
.depth1 > li:hover .depth2 { opacity: 1; visibility: visible; }
.depth1 > li.on .depth2 { visibility: visible; opacity: 1; }

.depth2::before {
    content: ''; position: absolute; top: -10px; left: 50%;
    transform: translateX(-50%);
    border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 10px solid #5F7E00;
}
.depth2 > li { padding: 7px 0; text-align: center; width: 100%; }
.depth2 > li > a { font-size: 16px; font-weight: 300; color: #fff; white-space: nowrap; transition: color 0.2s; }
.depth2 > li > a:hover { color: #BFFF00; }

/* 탑 유틸리티 (로그인/회원가입 등) */
.top-util { display: flex; align-items: center; gap: 8px; margin: 0; padding: 0; border-bottom: 0.5px solid #fff; padding-bottom: 4px; }
.top-util li { list-style: none; }
.top-util .nav--highlight { font-size: 14px; font-weight: 400; color: #fff; transition: color 0.3s; }
.top-util .nav--highlight:hover { color: #BFFF00; }
.top-util .nav--separator { color: #fff; font-size: 14px; font-weight: 700; }

.top-btn { position: fixed; bottom: 50px; right: 50px; z-index: 1000; }

/* ========================================================
   4. 전체 메뉴 오버레이 (기존 유지)
======================================================== */
.gnb-all { display: none; position: fixed; z-index: 9999; background: rgba(0, 0, 0, 0.7); top: 0; left: 0; width: 100%; height: 100%; text-align: center; }
.gnb-all a { color: #fff; }
.gnb-all img { margin: 80px 0px 50px; max-width: 185px; }
.gnb-all .all-wrapper .all-close { color: #fff; cursor: pointer; font-weight: 600; font-size: 5em; float: right; }
.gnb-all .all-wrapper .container > ul > li { display: inline-block; vertical-align: top; padding: 0px 25px; }
.gnb-all .all-wrapper .container > ul > li:first-child { display: none; }
.gnb-all .all-wrapper .container > ul > li > a { margin: 0px 0px 18px; font-size: 25px; font-weight: 600; display: block; }
.gnb-all .all-wrapper .container > ul > li > ul > li > a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 20px; padding: 6px 0px; display: block; }
.gnb-all .all-wrapper .container > ul > li > ul > li > a:hover { font-weight: bold; transition: 0.2s all ease; }
.gnb-all .all-wrapper .container > ul > li > ul > li > ul > li > a { display: block; margin-bottom: 9px; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ========================================================
   5. 모바일 헤더 및 Mmenu (기존 플러그인 연동 유지)
======================================================== */
#topbar_m.fixeddown { top: -150px; }
#topbar_m.fixedup { top: 0px; }

.header-mobile-gnb { display: flex; align-items: center; justify-content: flex-end; }
.header-mobile-gnb .toggle { color: #fff !important; padding: 10px; }
.header-mobile-gnb .toggle svg { width: 40px; height: 40px; }

/* my-menu 기존 스타일 유지 */
#my-menu { background-color: rgba(0,0,0,.3); max-width: 240px; z-index: 4; }
#mm-0:before { height: 0 !important; }
.mm-navbar.mm-hasbtns .mm-close .mm-sronly { display: none; }
.mm-navbars-top { background-color: rgba(0,0,0,.75); }
.mm-btn { top: unset !important; }
.mm-menu .mm-listview > li .mm-next:after { border-color: #fff; }
.mm-panels > .mm-panel > .mm-listview { margin: 0px !important; }
.mm-panels > .mm-panel.mm-hasnavbar { padding-top: 0 !important; }
.mm-panels > .mm-panel { padding: 0; }
.mm-panels, .mm-panels > .mm-panel { z-index: 9999; }
.mm-listview { margin: 0; }
.mm-listview > li > a, .mm-listview > li > span { padding: 10px 20px !important; font-size: 17px; margin: 0; }
.mm-listview .mm-vertical .mm-panel, .mm-vertical .mm-listview .mm-panel { padding: 0 0 0 10px; }
.closeMenu { color: #fff !important; cursor: pointer; font-size: 40px; position: absolute; right: 0; top: 5%; }
.mob-login { overflow: hidden; padding: 15px 0; border-bottom: 1px solid #808080; margin-bottom: 10px; }
.mob-login li { float: right; overflow: hidden; }
.mob-login a { display: inline-block !important; border: 0px !important; box-shadow: none !important; color: #aaa !important; padding: 0px 10px !important; }
.mob-login a .fa { font-size: 20px !important; }
.mmenu-depth1 > a { color: #fff !important; }
.mmenu-depth2 > a { color: #E4E3B9 !important; }
.mmenu-depth3 > a { color: #B4EBF1 !important; }
a.mm-next { width: 100% !important; }

/* ========================================================
   6. 서브페이지 디자인 (기존 유지)
======================================================== */
.sub-rel { width: 100%; position: relative; overflow: hidden; }
#subtop { position: relative; height: inherit; width: 100%; top: 0; z-index: 0; background-size: cover !important; background-position: 50% 50% !important; opacity: 1; aspect-ratio: 1920/230; animation: zoomin 9s 1; }
#subtop img { width: 100%; }
.subTitle { position: absolute; top: 45%; text-align: center; width: 100%; border: none; display: block; transform: translateY(-50%); }
.subgnb-home { position: absolute; top: 70%; text-align: center; width: 100%; border: none; display: block; transform: translateY(-50%); font-weight: bold; color: #ffd4d4; }
.subgnb-home a { color: #ffd4d4; }

/* =========================================================
   서브페이지 시스템 헤더(#subgnbD) 중앙 정렬 및 디자인 변경
========================================================= */
#subgnbD { padding: 270px 0 0; }

/* 타이틀 컨테이너 정렬 초기화 */
#subgnbD .subTDM .subTD2 {
    padding: 0 0 40px !important;
    text-align: center !important;
    margin-top: 0 !important;
}

/* 1. 위로 올라가는 큰 글씨 (유아·유치부 / 환영합니다 등) */
.dimode-title-big {
    display: block !important;
    font-family: 'NanumSquare', sans-serif !important;
    font-size: 38px ;
    font-weight: 400 ;
    line-height: 1.105em ;
    color: #1F1F1F ;
    margin-bottom: 16px ; /* 위아래 간격 */
    text-align: center ;
}

/* 2. 아래로 내려가는 작은 글씨 (교회학교 / 교회소개 등) */
.dimode-title-small {
    margin-top: 44px;
    font-family: 'NanumSquare', sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.105em;
    color: #1F1F1F;
    text-align: center;
}

/* 하단 탭 메뉴 중앙 정렬 유지 */
#subgnbD .subTDM .subTD3 ul { 
    display: inline-flex; 
    justify-content: center; 
    width: 100%; 
    gap: 35px; 
    margin-bottom: 4rem; 
    padding: 0; 
}
#subgnbD .subTDM .subTD3 ul a li { position: relative; list-style:none; }
#subgnbD .subTDM .subTD3 ul a li:after { content: ''; position: absolute; height: 2px; width: 0%; background-color: #000; left: 0; bottom: -5px; transition: all ease .3s; }
#subgnbD .subTDM .subTD3 ul a:hover li:after, #subgnbD .subTDM .subTD3 ul a li.active:after { width: 100%; }
#subgnbD .subTDM .subTD3 ul a li h1 { margin: 0; font-size: 24px; font-weight: bold; color: rgba(0, 0, 0, 0.5); transition: all ease .3s; }
#subgnbD .subTDM .subTD3 ul a li:hover h1, #subgnbD .subTDM .subTD3 ul a li.active h1 { color: rgba(0, 0, 0, 1); }
#subgnbD .subTDM .subTD3:not(:has(li)) {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    border: none !important;
}

/* 혹시 모를 내부 ul 태그의 잔여 마진도 싹쓸이 제거 */
#subgnbD .subTDM .subTD3:not(:has(li)) ul {
    display: none !important;
    margin: 0 !important;
}

.Getpadding{padding-top:1vw!important;}
#content { padding: 0px 0px 80px; }
#content .third-menus { margin: 10px 0 42px 0; text-align: center; }
#content .third-menus ul { display: inline-block; padding:0; margin:0; }
#content .third-menus ul li { border: 1px solid #dedede; float: left; margin-left: -1px; list-style:none;}
#content .third-menus ul li a { color: #333; padding: 8px 17px; font-size: 12px; min-width: 160px; display: inline-block; text-align: center; }
#content .third-menus ul li.active a { color: #fff; }

.lnb { padding: 0px 30px; }
.lnb_title { font-size: 30px; border-bottom: 1px solid #000; padding: 40px 0px; font-weight: 600; text-align: center; position: relative; }
.sub-left-triangle { position: absolute; right: 0px; top: 0; width: 0; height: 0; border-left: 30px solid transparent; border-top-width: 30px; border-top-style: solid; border-top-color: #6599CB; }

.sub_depth2 { margin-top: 0px; padding-top: 0px; list-style:none; }
.sub_depth2 li { padding: 20px 25px; border-bottom: 1px solid #ddd; transition: all ease 0.3s; }
.sub_depth2 li.active, .sub_depth2 > li:hover { background: #d9d3f2; }
.sub_depth2 > li > a, .sub_depth2 li a { color: #777; font-weight: 600; font-size: 16px; }


/* subTD2 타이틀 아래 부제목 문구 */
#subgnbD .subTDM .subTD-subtitle {
    text-align: right;
    margin: -28px 0 20px;   /* subTD2 padding-bottom 40px과 조율 */
}

#subgnbD .subTDM .subTD-subtitle p {
    display: inline-block;
    margin: 0;
    font-size: 18px;
    font-weight: 400;
    color: rgba(0, 0, 0, 0.55);
    letter-spacing: -0.3px;
    line-height: 1.6;
    border-right: 3px solid #5F7E00;  
    padding-right: 10px;
}



/* ========================================================
   7. 사이트맵 및 푸터 (새 디자인 적용)
======================================================== */
#footer-map { background-color: #DADADA; }
#footer-map #sitemap-wrap { background-color: #FFF; padding: 80px 0; display: none; }
#footer-map #sitemap { margin: 40px 0 70px; text-align: center; list-style:none; padding:0; }
#footer-map #sitemap > li { display: inline-block; vertical-align: top; padding: 0px 30px; text-align: left; width: 15%; }

#footer .footerM {background: linear-gradient(to top right, #1F1F1F, #3B3B3B);padding: 62px 0;}
.footer-inner {display: flex;justify-content: space-between;align-items: flex-start;}
.footer-inner:after,.footer-inner:before{content:none}
.footer-left { display: flex; flex-direction: column; gap: 10px; color: #aaa; }
.footer-logo { height: 80px; width: auto; margin-bottom: 10px; align-self: flex-start; }
.footer-info { font-family: 'pretendard', sans-serif; font-size: 18px; font-weight: 300; line-height: 1.6; margin: 0; }
.footer-info span { font-weight: 800; }
.footer-privacy { color: #aaa; text-decoration: none; transition: 0.2s; }
.footer-privacy:hover { color: #5F7E00; }
.footer-address { font-family: 'pretendard', sans-serif; font-size: 14px; line-height: 1.6; margin: 5px 0 0; }
.footer-copyright { font-size: 12px; margin-top: 15px; color: #777; }

.footer-right { position: relative;width: 30%;display: flex;flex-direction: column;align-items: flex-end;text-align: right; }
.footer-slogan-img {margin-bottom: -10%;}
.slogan-text {}
.slogan-label { font-size: 16px; color: #ccc; opacity: 0.35; margin-bottom: 12px; }
.slogan-body { font-family: 'Noto Serif KR', serif; font-size: 16px; color: #ccc; line-height: 1.6; margin: 0; }
.slogan-verse { font-size: 14px; color: #ccc; margin-top: 12px; }

/* ========================================================
   8. 기타 컴포넌트
======================================================== */
.latest-special { margin-bottom: 30px; margin-left: 18px; }
.latest-special .p4 { font-size: 30px; padding-left: 15px; position: relative; color: #000; top: 15px; }
.latest-special .white-bar { background: #7c8789; width: 1px; height: 22px; display: inline-block; margin: -20px 13px; }

/* ========================================================
   🔷 모바일 풀스크린 슬라이드 메뉴 (my-menu 대체 CSS)
======================================================== */
.slide-menu {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 99999; /* 기존 헤더(9999) 위로 무조건 올라오게 강제 설정 */
    height: 100vh;  /* 모바일 화면에 꽉 차도록 100vh 적용 */
    background: rgba(31, 31, 31, 0.9);
    transform: translateY(-100%);
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.45s;
    visibility: hidden;
    overflow: hidden;
}

.slide-menu.is-open {
    transform: translateY(0);
    visibility: visible;
}

.slide-menu__inner {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    width: 100%;
    height: 100%;
    padding: 76px 40px 40px;
    gap: 0;
}

/* 닫기 버튼 */
.slide-menu__close {
    position: absolute;
    top: 24px;
    right: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: none;
    background: none;
    color: #fff;
    cursor: pointer;
    transition: color 0.2s ease;
}

.slide-menu__close:hover {
    color: #BFFF00;
}

/* 좌측: 인증 링크 */
.slide-menu__left {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-right: 32px;
}

.slide-menu__auth {
    font-family: 'pretendard', sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    transition: color 0.2s ease;
    display: block;
}

.slide-menu__auth:hover {
    color: #BFFF00;
}

/* 중앙: 커스텀 스크롤바 */
.slide-menu__divider {
    position: relative;
    width: 3px;
    height: 100%;
    background: #6F6D6D;
    border-radius: 2px;
    flex-shrink: 0;
}

.slide-menu__scrollbar {
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    background: #B2B2B2;
    border-radius: 2px;
    transition: height 0.1s, top 0.1s;
}

/* 우측: 메뉴 콘텐츠 (스크롤) */
.slide-menu__right {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding-left: 32px;
    height: 100%;
    overflow-y: auto;
    scrollbar-width: none;
}

.slide-menu__right::-webkit-scrollbar {
    display: none;
}

.slide-menu__section {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 24px;
    border-bottom: 0.5px solid #8A8A8A;
}

.slide-menu__section:last-child {
    border-bottom: none;
}

.slide-menu__category {
    font-family: 'nanumsquare', sans-serif;
    font-size: 23px;
    font-weight: 400;
    color: #8E8E8E;
    margin-bottom: 4px;
    display: block;
}

.slide-menu__section a {
    font-family: 'nanumsquare', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    transition: color 0.2s ease;
    display: block;
}

.slide-menu__section a:hover {
    color: #BFFF00;
}

/* ========================================================
   반응형 (Media Queries 병합)
======================================================== */

@media (min-width: 1180px) {
    .container { width: 1180px; }
    #content .container { width: 1000px; }
}

/* 1. 해상도 1499px 이하 */
@media (max-width: 1499px) {
    .depth1 { gap: 24px; }
    .depth1 > li > a { font-size: 18px; }
    #main_logo { width: 180px; height: auto; }
}

/* 2. 해상도 1199px 이하 */
@media (max-width: 1199px) {
    .depth1 { gap: 16px; }
    .depth1 > li > a { font-size: 16px; }
    .top-util .nav--highlight { font-size: 13px; }
    
    #subgnbD { padding: 220px 0 0; }
    #subgnbD .subTDM .subTD2 a h1 { font-size: 38px; }
    #subgnbD .subTDM .subTD3 ul { gap: 20px; margin-bottom: 3rem; }
    
    .footer-info { font-size: 16px; }
    .footer-slogan-img { height: 110px; }
    .slogan-body { font-size: 14px; }
}

/* 3. 해상도 992px 이하 */
@media (max-width: 992px) {
    .Getpadding{padding-top:15vw!important;}
    
    /* PC 헤더 숨김 및 모바일 헤더 노출 */
    #topbar { display: none !important; }
    
    #topbar_m {
        position: fixed;
        left: 0;
        width: 100%;
        height: 75px; 
        background: rgba(3, 3, 3, 0.85); /* 모바일에서는 스크롤 전에도 검정 배경이 잘 보임 */
        transition: 0.2s all;
        z-index: 9999;
    }
    #topbar_m .container {
        display: flex !important;
        justify-content: space-between;
        align-items: center;
        padding: 0 20px;
        height: 100%;
    }
    #topbar_m .container:before,
    #topbar_m .container:after{content:none;}

    #topbar_m .top-logo { display: flex; align-items: center; width: 45vw; max-width: 180px; }
    #topbar_m .top-logo img { width: 100%; height: auto; }

    #subgnbD { padding: 25vw 0 0; }
    #subgnbD .subTDM .subTD2 a h1 { font-size: 32px; }

    /* 푸터 세로 정렬 */
    .footer-inner { flex-direction: column; align-items: center; text-align: center; gap: 40px; }
    .footer-logo { align-self: center; }
    .footer-right { width: 100%; height: auto; position: static; display: flex; flex-direction: column; align-items: center; }
    .footer-slogan-img { position: static; height: 100px; margin-bottom: 20px; }
    .slogan-text { position: static; align-items: center; text-align: center; }
    .footer-address .addr-sep { display: none; }
    .footer-address span { display: block; margin-bottom: 4px; }
}

/* 4. 해상도 767px 이하 */
@media (max-width: 767px) {
	.container{padding:0 15px!important;}
    #topbar_m { height: 65px; }
    #topbar_m .container { padding: 0 15px; }
    #topbar_m .top-logo { max-width: 140px; }
    .header-mobile-gnb .toggle svg { width: 32px; height: 32px; }

    .Getpadding{padding-top:25vw!important;}
	.dimode-title-big{padding:0 20px;font-size: 26px;}
	.dimode-title-small{padding:0 20px;font-size: 18px; margin-top: 28px;}
    #subgnbD { padding: 35vw 0 0; }
    #subgnbD .subTDM .subTD2 { padding: 0 0 5vw; }
    #subgnbD .subTDM .subTD2 a h1 { font-size: 2rem; text-align: center; }
    #subgnbD .subTDM .subTD3 ul { justify-content: center; flex-wrap: wrap; gap: 15px; margin-bottom: 2rem; }
    #subgnbD .subTDM .subTD3 ul a li h1 { font-size: 1.2rem; }

    /* 전체 메뉴 모바일 최적화 */
    .gnb-all img { margin: 40px 0px 30px; max-width: 140px; }
    .gnb-all .all-wrapper .all-close { font-size: 4em; padding-right: 20px; float: none; position: absolute; top: 10px; right: 20px; }
    .gnb-all .all-wrapper .container > ul { display: flex; flex-wrap: wrap; padding: 0; }
    .gnb-all .all-wrapper .container > ul > li { padding: 0px 10px; width: 50%; text-align: left; margin-bottom: 30px; box-sizing: border-box; }
    .gnb-all .all-wrapper .container > ul > li > a { font-size: 20px; border-bottom: 1px solid rgba(255,255,255,0.3); padding-bottom: 10px; display: block; }
    .gnb-all .all-wrapper .container > ul > li > ul > li > a { font-size: 16px; }
	
	/* 서브타이틀 하단 문구 */
	#subgnbD .subTDM .subTD-subtitle {
        text-align: center;
        margin: -15px 0 15px;
    }

    #subgnbD .subTDM .subTD-subtitle p {
        font-size: 14px;
        border-left: none;
        padding-left: 0;
        border-bottom: 1px solid #5F7E00;
        padding-bottom: 4px;
    }

		
    /* 모바일 푸터 최적화 */
    #footer .footerM { padding: 40px 0; }
    .footer-logo { height: 60px; }
    .footer-info { font-size: 14px; }
    .footer-copyright { font-size: 11px; }
	.footer-left{align-items: flex-start;}
	.footer-copyright{text-align:left;}
	.footer-right{display:none;}
	.footer-address{text-align: left;}
	.footer-inner{padding: 0 32px;align-items: flex-start}

    .slide-menu__inner { padding: 60px 20px 20px; }
    .slide-menu__close { top: 15px; right: 15px; }
    .slide-menu__left { padding-right: 15px; }
    .slide-menu__auth { font-size: 16px; }
    .slide-menu__right { padding-left: 15px; gap: 20px; }
    .slide-menu__category { font-size: 18px; }
    .slide-menu__section a { font-size: 14px; }
}

/* 5. 소형 모바일 */
@media (max-width: 340px) {
    #subgnbD .subTDM .subTD3 ul { gap: 10px; }
    #subgnbD .subTDM .subTD3 ul a li h1 { font-size: 1.1rem; }
    .gnb-all .all-wrapper .container > ul > li { width: 100%; text-align: center; margin-bottom: 20px; }
    .gnb-all .all-wrapper .container > ul > li > a { border-bottom: none; display: inline-block; }
}