/* Noto Sans KR (korean) http://www.google.com/fonts/earlyaccess*/
@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 100;
    src: local('Pretendard Thin'), local('Pretendard Thin'),
    url(/font/web/Pretendard-Thin.woff2) format('woff2'),
    url(/font/web/Pretendard-Thin.ttf) format('ttf'),
    url(/font/web/Pretendard-Thin.otf) format('opentype');
}

@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 200;
    src: local('Pretendard ExtraLight'), local('Pretendard ExtraLight'),
    url(/font/web/Pretendard-ExtraLight.woff2) format('woff2'),
    url(/font/web/Pretendard-ExtraLight.ttf) format('ttf'),
    url(/font/web/Pretendard-ExtraLight.otf) format('opentype');
}

@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 300;
    src: local('Pretendard Light'), local('Pretendard Light'),
    url(/font/web/Pretendard-Light.woff2) format('woff2'),
    url(/font/web/Pretendard-Light.ttf) format('ttf'),
    url(/font/web/Pretendard-Light.otf) format('opentype');
}

@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 400;
    src: local('Pretendard Regular'), local('Pretendard Regular'),
    url(/font/web/Pretendard-Regular.woff2) format('woff2'),
    url(/font/web/Pretendard-Regular.ttf) format('ttf'),
    url(/font/web/Pretendard-Regular.otf) format('opentype');
}

@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 500;
    src: local('Pretendard Medium'), local('Pretendard Medium'),
    url(/font/web/Pretendard-Medium.woff2) format('woff2'),
    url(/font/web/Pretendard-Medium.ttf) format('ttf'),
    url(/font/web/Pretendard-Medium.otf) format('opentype');
}

@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 600;
    src: local('Pretendard SemiBold'), local('Pretendard SemiBold'),
    url(/font/web/Pretendard-SemiBold.woff2) format('woff2'),
    url(/font/web/Pretendard-SemiBold.ttf) format('ttf'),
    url(/font/web/Pretendard-SemiBold.otf) format('opentype');
}

@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 700;
    src: local('Pretendard Bold'), local('Pretendard Bold'),
    url(/font/web/Pretendard-Bold.woff2) format('woff2'),
    url(/font/web/Pretendard-Bold.ttf) format('ttf'),
    url(/font/web/Pretendard-Bold.otf) format('opentype');
}

@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 800;
    src: local('Pretendard ExtraBold'), local('Pretendard ExtraBold'),
    url(/font/web/Pretendard-ExtraBold.woff2) format('woff2'),
    url(/font/web/Pretendard-ExtraBold.ttf) format('ttf'),
    url(/font/web/Pretendard-ExtraBold.otf) format('opentype');
}

@font-face {
    font-family: 'Pretendard';
    font-style: normal;
    font-weight: 900;
    src: local('Pretendard Black'), local('Pretendard Black'),
    url(/font/web/Pretendard-Black.woff2) format('woff2'),
    url(/font/web/Pretendard-Black.ttf) format('ttf'),
    url(/font/web/Pretendard-Black.otf) format('opentype');
}


* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    text-shadow: none;
    letter-spacing: 0;
}


html,body {width:100%; height:100%; font-family:'Pretendard'; padding:0; margin:0; font-size:14px; word-break:keep-all; color:#272727;}
a {color:inherit; text-decoration:none; -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing:border-box;}
a:focus, a:hover {text-decoration:none;}
ol, ul {list-style-type:none; margin:0; padding:0;}


/*네비 메뉴*/
.ntNav {position:fixed; left:0; right:0; top:0; z-index:9998; width:100%; height:80px; max-width:1920px; margin:0 auto; background:#32CD8B;}
.ntNav:hover {background:#32CD8B;}
.ntNav:hover .logo svg {fill:#fff;}
.ntNav:hover .ntNavMenu li .mainMenu {color:#fff;}

.ntNavWrap { height:80px; text-align:center; width:1024px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; }
.ntNavWrap .logo { text-decoration:none; }
.ntNavWrap .mbMenu { display:none; position:fixed; }
.ntNavWrap .ntNavMenu { list-style:none; padding:0; display:flex;  align-items:center;}
.ntNavWrap .ntNavMenu li {position:relative; padding:0 10px; cursor:pointer; }
.ntNavWrap .ntNavMenu li:last-child { padding-right:0; }
.ntNavWrap .ntNavMenu li a.mainMenu, .ntNavWrap .ntNavMenu li a.mainMenu:visited, .ntNavWrap .ntNavMenu li a.mainMenu:hover, .ntNavWrap .ntNavMenu li a.mainMenu:active {-webkit-backface-visibility:hidden; backface-visibility:hidden; position:relative; transition:0.5s color ease; text-decoration:none; color:#fff; font-size:1.3rem;}
.ntNavWrap .ntNavMenu li a.mainMenu:hover{color:#fff; width:100%;}
.ntNavWrap .ntNavMenu li a.mainMenu::after{content:""; transition:0.5s all ease; -webkit-backface-visibility:hidden; backface-visibility:hidden;	position:absolute;}
.ntNavWrap .ntNavMenu li a.mainMenu::after {bottom:0;}
.ntNavWrap .ntNavMenu li a.mainMenu::after {height:2px;	width:0; background:#fff;}
.ntNavWrap .ntNavMenu li:hover a.mainMenu::after {width:100%;}
.ntNavWrap .ntNavMenu li a.mainMenu::after {left:50%; -webkit-transform:translateX(-50%); transform:translateX(-50%);}
.ntNavWrap .ntNavMenu li.lineLi5 { padding-right: 4px; }
.ntNavWrap .ntNavMenu li.lineLi6 { padding-left: 4px; }
.ntNavWrap .ntNavMenu li.lineLi5 a.mainMenu {color:#ffffff; background:#009d5b; padding:10px; border-radius:10px;}
.ntNavWrap .ntNavMenu li.lineLi5 a.mainMenu::after {display:none;}
.ntNavWrap .ntNavMenu li.lineLi1:hover .subMenu1 {display:block;}
.ntNavWrap .ntNavMenu li.lineLi2:hover .subMenu2 {display:block;}
.ntNavWrap .ntNavMenu li.lineLi3:hover .subMenu3 {display:block;}
.ntNavWrap .ntNavMenu li.lineLi4:hover .subMenu4 {display:block;}
.ntNavWrap .ntNavMenu li.lineLi5:hover .subMenu5 {display:block;}
.ntNavmobileWrap {display:none;}
/* 세븐브릭스 스쿨 버튼 (컴팩트 버전) */
.ntNavWrap .ntNavMenu li.lineLiSchool { padding:0 8px; }
.ntNavWrap .ntNavMenu li.lineLiSchool a.mainMenu,
.ntNavWrap .ntNavMenu li.lineLiSchool a.mainMenu:visited,
.ntNavWrap .ntNavMenu li.lineLiSchool a.mainMenu:hover,
.ntNavWrap .ntNavMenu li.lineLiSchool a.mainMenu:active {
    position:relative;
    display:inline-block;
    background:#fff;
    color:#009d5b;
    border:2px solid #009d5b;
    padding:6px 14px;
    border-radius:18px;
    font-size:1.15rem;
    font-weight:700;
    line-height:1.2;
    box-shadow:0 3px 10px rgba(0,0,0,0.15);
    animation:pulseSchool 2s infinite;
    transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.ntNavWrap .ntNavMenu li.lineLiSchool a.mainMenu::after { display:none; }
.ntNavWrap .ntNavMenu li.lineLiSchool a.mainMenu:hover {
    transform:translateY(-2px);
    box-shadow:0 5px 14px rgba(0,0,0,0.25);
}
.ntNavWrap .ntNavMenu li.lineLiSchool .newBadge {
    position:absolute;
    top:-6px;
    right:-2px;
    background:#FFD700;
    color:#D32F2F;
    font-size:0.6rem;
    font-weight:900;
    padding:1px 5px;
    border-radius:7px;
    box-shadow:0 2px 4px rgba(0,0,0,0.2);
    letter-spacing:0.3px;
    line-height:1.4;
}
@keyframes pulseSchool {
    0%,100% { box-shadow:0 3px 10px rgba(0,0,0,0.15); }
    50%     { box-shadow:0 3px 16px rgba(0,0,0,0.25), 0 0 0 5px rgba(255,255,255,0.3); }
}

/*하단*/
.footer {background:#E6E6E6; text-align:center; padding:44px 0 68px; max-width:1920px; position:relative; overflow:hidden;}
.footer .box {  width:1024px; margin:0 auto; position:relative;}
.footer .box .company {margin-bottom:24px;}
.footer .box .company p { margin:0; margin-right:5px; padding-right:5px; position:relative; color:#686868; text-align:center; font-size:20px; font-weight:500; display:inline-block; }
.footer .box .company p::after {content:''; width:2px; height:50%; position:absolute; top:25%; right:-3px; background:#686868;}
.footer .box .company p:last-child::after {content:none;}
.footer .box .copyright {margin:0; color:#686868; font-size:20px; font-weight:500;}

/* === 푸터 약관 링크 === */
.footer .box .policy {
    margin:0 0 24px; padding:0 0 24px;
    border-bottom:1px solid #C8C8C8;
    text-align:center;
}
.footer .box .policy .policyLink {
    display:inline-block; margin:0 14px;
    color:#424242; font-size:18px; font-weight:500;
    transition:color 0.2s ease;
}
.footer .box .policy .policyLink:hover { color:#009d5b; text-decoration:underline; }
.footer .box .policy .policyLink strong { font-weight:700; color:#222; }
.footer .box .policy .policyLink:hover strong { color:#009d5b; }



@media only screen and (max-width:1024px){
    .ntNav { position:fixed; }
    .ntNav:hover { background:#32CD8B; }

    .ntNavWrap { width:100%; padding:0 5%; justify-content:flex-end; position:relative; }

    /* 로고 - 왼쪽 고정, 세로 중앙 */
    .ntNavWrap .logo {
        position:absolute;
        left:5%;
        top:50%;
        transform:translateY(-50%);
        z-index:3;
    }

    /* 햄버거 버튼 - 오른쪽 고정, 메뉴보다 위 */
    .ntNavWrap .mbMenu {
        display:block;
        position:absolute;
        right:5%;
        top:50%;
        transform:translateY(-50%);
        width:40px;
        height:40px;
        padding:0;
        border:0;
        background:none;
        cursor:pointer;
        z-index:3;
    }
    .ntNavWrap .mbMenu svg { width:100%; height:100%; }

    /* 슬라이드 메뉴 */
    .ntNavWrap .ntNavMenu {
        display:block;
        width:60%;
        max-width:320px;
        height:100vh;
        padding:100px 24px 30px;
        position:fixed;
        top:0;
        right:-100%;
        left:auto;
        background:#32cd8b;
        transition:right 0.3s ease;
        z-index:2;
        overflow-y:auto;
    }
    .ntNavWrap .ntNavMenu.open {
        right:0;
        left:auto;
    }

    .ntNavWrap .ntNavMenu li {
        display:block;
        float:none;
        width:100%;
        padding:0;
        margin:0 0 6px;
        text-align:left;
    }
    .ntNavWrap .ntNavMenu li a.mainMenu {
        display:block;
        width:100%;
        padding:12px 6px;
        font-size:1.15rem;
    }
    .ntNavWrap .ntNavMenu li a.mainMenu::after { display:none; }

    /* 학생/선생님 버튼 */
    .ntNavWrap .ntNavMenu li.lineLi5 { margin-top:24px; padding:0; }
    .ntNavWrap .ntNavMenu li.lineLi6 { margin-top:8px; padding:0; }
    .ntNavWrap .ntNavMenu li.lineLi5 a.mainMenu,
    .ntNavWrap .ntNavMenu li.lineLi6 a.mainMenu {
        display:inline-block;
        width:auto;
        line-height:normal;
    }

    /* 스쿨 버튼 */
    .ntNavWrap .ntNavMenu li.lineLiSchool { margin-top:24px; padding:0; }
    .ntNavWrap .ntNavMenu li.lineLiSchool a.mainMenu {
        display:inline-block;
        width:auto;
        padding:10px 18px;
        animation:none;
        box-shadow:0 2px 8px rgba(0,0,0,0.2);
    }
    .ntNavWrap .ntNavMenu li.lineLiSchool .newBadge { top:-6px; right:-6px; }

    /* 어두운 배경 오버레이 */
    body.open::after {
        content:'';
        display:block;
        width:100%;
        height:100vh;
        background:rgba(0,0,0,0.6);
        position:fixed;
        top:0;
        left:0;
        z-index:1;
    }

    /* 푸터 */
    .footer .box { width:90%; }
    .footer .box .company p { font-size:18px; }
    .footer .box .copyright { font-size:18px; }
    .footer .box .policy .policyLink { font-size:16px; margin:0 10px; }
}

@media only screen and (max-width:768px){
    .ntNav { height:64px; }
    .ntNavWrap { height:64px; }
    .ntNavWrap .logo img { width:120px; }
    .ntNavWrap .mbMenu { width:32px; height:32px; }
    .ntNavWrap .ntNavMenu { width:75%; padding-top:80px; }
    .ntNavWrap .ntNavMenu li a.mainMenu { font-size:1rem; padding:10px 6px; }
    .ntNavWrap .ntNavMenu li.lineLiSchool a.mainMenu { font-size:15px; padding:9px 16px; }

    .footer { padding:30px 0 40px; }
    .footer .box p { word-break:keep-all; }
    .footer .box .company p { font-size:14px; }
    .footer .box .copyright { font-size:14px; }
    .footer .box .policy { margin-bottom:18px; padding-bottom:18px; }
    .footer .box .policy .policyLink { font-size:14px; margin:0 8px; }
}

/********** ISO 인증 섹션 (공통) **********/
.certSection{background:#fff;padding:100px 20px;text-align:center;}
.certSection .certInner{max-width:1024px;margin:0 auto;}
.certSection .certTitle{color:#04444D;text-align:center;font-size:44px;font-weight:700;line-height:1.3;margin:0 0 20px;}
.certSection .certTitle .accent{color:#009d5b;}
.certSection .certScope{display:inline-block;background:#eafaf3;color:#04444D;font-size:17px;font-weight:700;line-height:1.5;padding:12px 26px;border-radius:999px;margin:0 0 48px;word-break:keep-all;}
.certSection .certScope b{color:#009d5b;font-weight:700;}
.certSection .certGrid{display:flex;gap:32px;justify-content:center;align-items:flex-start;flex-wrap:wrap;}
.certSection .certDoc{display:block;width:100%;max-width:300px;border:1px solid #e3eee9;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(4,68,77,0.12);transition:transform .25s ease,box-shadow .25s ease;}
.certSection .certDoc:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(4,68,77,0.18);}
.certSection .certDoc img{display:block;width:100%;height:auto;}

@media only screen and (max-width:1280px){
  .certSection .certTitle{font-size:40px;}
}
@media only screen and (max-width:768px){
  .certSection{padding:60px 18px;}
  .certSection .certTitle{font-size:30px;}
  .certSection .certScope{font-size:14px;padding:11px 20px;margin-bottom:36px;}
  .certSection .certGrid{gap:20px;}
  .certSection .certDoc{max-width:280px;}
}
@media only screen and (max-width:380px){
  .certSection .certDoc{max-width:240px;}
}