@charset "UTF-8";

/*=================================================================================
* common
=================================================================================*/
.wrap { width: 100%; min-height: 100%; scroll-behavior: smooth; }
header, section, footer { width: 100%; }
.inner { width: 1280px; margin: 0 auto; position: relative; }
header, .header { border-bottom: solid 1px var(--color-gray-300); }
.login-wrap { padding: 20px 0 10px; margin-right: 142px; }
.login-wrap a { font-size: var(--font-size-s); color: var(--color-gray-600); }
.login-wrap em { display: inline-block; margin: 0 10px; font-weight: 100; color: var(--color-gray-300); }
.header h1 { position: absolute; height: 74px; font-size: 0; left: 140px; top: 12px; }
.header ul li { margin: 0 0 0 40px; position: relative; }
.header ul li::after { content: ""; position: absolute; top: 5px; right: -20px; width: 1px; height: 18px; background-color: var(--color-gray-300); }
.header ul li:last-child::after { display: none; }
.header ul li a { font-size: var(--font-size-l); color: var(--color-gray-800); font-weight: 800; }
.header ul li a:hover { color: var(--color-blue-600); }
.header .my a { font-size: var(--font-size-l); color: var(--color-blue-600); font-weight: 800; }
section { padding: 100px 0; }
.section-01 { background-color: var(--color-blue-100); padding-bottom: 0; }
.section-02 { }
.section-03 { background-color: var(--color-gray-200); }
.section-04 { }
.section-05 { }
footer { border-top: solid 1px var(--color-gray-200); }
footer .inner { position: relative; }
footer em { color: var(--color-gray-300); margin: 0 10px; }
footer .logo { position: absolute; right: 0; top: 50px; }
.block { display: block; }
#GoTop { display: none; position: fixed; bottom: 200px; right: 30px; }
#GoTop .quick-wrap a { text-align: center; width: 120px; padding: 10px; font-weight: 700; }
#GoTop .quick-wrap a span:first-child { margin-bottom: 5px; }
#GoTop .quick-wrap span { display: block; margin: 0 auto; }
#GoTop .quick-wrap a:first-child span:nth-child(2) { line-height: 16px; }

.header .gnb_links { height: 100%; margin: 0 140px 20px 0; }
.header .gnb_links .link > a.on { color: var(--color-blue-600); }
.header .gnb_links .link .sub_gnb { display: none; position: absolute; width: 140px; padding: 10px 20px; z-index: 100; }
.header .gnb_links .link .sub_gnb.on { display: block; background: var(--color-blue-600); }
.header .gnb_links .link .sub_gnb > a { height: 46px; line-height: 46px; display: block; width: 100%; border-bottom: solid 1px var(--color-blue-400); font-size: var(--font-size-m); color:  var(--color-gray-200); font-weight: 500; }
.header .gnb_links .link .sub_gnb > a:last-child { border-bottom: 0; }
.my .gnb_links .link .sub_gnb { left: 0; }
.customer-center strong { font-weight: 700; font-size: var(--font-size-b); }
.customer-center span { font-size: var(--font-size-l); }
.customer-center p { margin-top: 10px; font-weight: 900; font-size: var(--font-size-title2); }

/*=================================================================================
* Mobile Header  
=================================================================================*/
.button-container { display: none; position: absolute; top: 50%; right: 6rem; width: 30px; height: 24px; margin-top: -12px; cursor: pointer; z-index: 120; transition: opacity 0.25s ease; }
.button-container.active .top { -webkit-transform: translateY(7px) translateX(0) rotate(45deg); transform: translateY(7px) translateX(0) rotate(45deg); background: var(--color-gray-700); }
.button-container.active .middle { opacity: 0; background: var(--color-gray-700); }
.button-container.active .bottom { -webkit-transform: translateY(-13px) translateX(0) rotate(-45deg); transform: translateY(-13px) translateX(0) rotate(-45deg); background: var(--color-gray-700); }
.button-container span { background: var(--color-gray-700); border: none; height: 4px; width: 100%; position: absolute; left: 0; transition: all 0.35s ease; cursor: pointer; border-radius: 4px; }
.button-container span:nth-of-type(2) { top: 50%; margin-top: -2px; }
.button-container span:nth-of-type(3) { bottom: 0; }
.overlay { position: fixed; background: var(--color-white); top: 0; right: 0; width: 100%; max-width: 768px; height: 100vh; opacity: 0; visibility: hidden; transition: opacity 0.35s, visibility 0.35s, height 0.35s; overflow-y: auto; z-index: 100; box-shadow: -20px 0 40px rgba(0, 0, 0, 0.16); }
.overlay .side-menu-wrap { position: relative; width: 100%; height: 100%; background: #fff; }
.overlay.open { opacity: 1; visibility: visible; }
.overlay .side-header { width: 100%; height: 57px; padding: 0 0 0 20px; border-bottom: 1px solid #f1f1f1; display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; align-items: center; box-sizing: border-box; }
.overlay .side-header .util ul { display: flex; align-items: center; }
.overlay .side-header .util ul li { margin: 0 20px 0 0; }
.overlay .side-header .util ul li.link::after { top: 5px!important; right: -10px!important; }
.overlay-menu .main-cate { padding: 19px 0; }
.overlay .login-area { width: 100%; display: flex; align-items: center; }
.overlay .login-area li a { font-size: 12px; }
.overlay .gnb_1depth { position: relative; width: 100%; height: 100%; margin: 0 auto; text-align: left; display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: flex-start; border-top: 1px solid #f5f5f5; }
.overlay .gnb_1depth .item_1depth { width: 100%; position: relative; display: block; text-align: left; line-height: 1.2;  cursor: pointer; margin: 0; }
.overlay .gnb_1depth .item_1depth:before, .overlay .gnb_1depth .item_1depth:after { position: absolute; right: 1.6rem; display: block; clear: both; content: ''; width: 10px; height: 2px; background: #131313; transition: all ease 0.1s; }
.overlay .gnb_1depth .item_1depth:before { transform: rotate(45deg); top: 24px; }
.overlay .gnb_1depth .item_1depth:after { transform: rotate(-45deg); top: 30px; }
.overlay .gnb_1depth .item_1depth > a { display: block; position: relative; text-decoration: none; overflow: hidden; line-height: 1.2; border-bottom: 1px solid #e1e1e1; font-weight: 600; text-align: left; padding: 1.6rem; font-weight: 900; }
.overlay .gnb_1depth .item_1depth .gnb_2depth { display: none; }
.overlay .gnb_1depth .item_1depth .gnb_2depth a { padding: 1.6rem; display: block; background: #f1f1f1; border-bottom: solid 1px #e1e1e1; }
.gnb_2depth .cf li { margin: 0; }

/*=================================================================================
* flex
=================================================================================*/
.flex { display: flex; }
.flex.flex-row { flex-direction: row; }
.flex.flex-column { flex-direction: column; }
.flex.flex-row-reverse { flex-direction: row-reverse; }
.flex.flex-column-reverse { flex-direction: column-reverse; }
.flex.flex-nowrap { flex-wrap: nowrap; }
.flex.flex-wrap { flex-wrap: wrap; }
.flex.align-center { align-content: center; }
.flex.align-flex-start { align-content: flex-start; }
.flex.align-flex-end { align-content: flex-end; }
.flex.align-space-around { align-content: space-around; }
.flex.align-space-between { align-content: space-between; }
.flex.align-stretch { align-content: stretch; }
.flex.justify-center { justify-content: center; }
.flex.justify-flex-start { justify-content: flex-start; }
.flex.justify-flex-end { justify-content: flex-end; }
.flex.justify-space-between { justify-content: space-between; }
.flex.justify-space-around { justify-content: space-around; }
.flex.justify-space-evenly { justify-content: space-evenly; }
.flex.items-center { align-items: center; }
.flex.items-flex-start { align-items: flex-start; }
.flex.items-flex-end { align-items: flex-end; }
.flex.items-stretch { align-items: stretch; }
.flex.items-baseline { align-items: baseline; }


/*=================================================================================
* layer-select
=================================================================================*/
.custom-select { width: 120px; position: relative; user-select: none; padding-top: 15px; margin-left: 20px; }
.select-selected { cursor: pointer; font-size: var(--font-size-l); font-weight: 700; border-bottom: solid 1px var(--color-gray-300); }
.select-selected:after { content: ""; position: absolute; top: 25px; background: url("../img/icon.svg") no-repeat; background-position: -24px 0; width: 14px; height: 10px; right: 0; }
.select-selected.select-arrow-active:after { transform: rotate(180deg); }
.select-items { position: absolute; background-color: #f1f1f1; width: 100%; box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1); z-index: 99; border-radius: 0 0 4px 4px; border: 1px solid #ddd; margin-top: -1px; }
.select-items div { padding: 5px 10px; cursor: pointer; }
.select-items div a { color: #001541!important; display: block; width: 100%; height: 100%; font-size: var(--font-size-m); }
.select-items div:hover { background-color: #ddd; }
.select-hide { display: none; }


/*=================================================================================
* main
=================================================================================*/
.main-visual { height: 640px; background: #D6E3EC url("../img/visual-bg.jpg") no-repeat; background-size: cover; }
.main-visual div { top: 50%; transform: translateY(-50%); }
.main-visual div h2 { color: var(--color-gray-900); font-size: var(--font-size-event2); font-family: var(--font-ria); position: absolute; left: 50%; top: 50%; transform: translateY(-50%); }
.main-visual div h2 p { line-height: 74px; }
.main-visual div h2 p .text-01 { color: var(--color-cyan); }
.main-visual div h2 p .text-02 {  color: var(--color-blue); }
.main-title { position: relative; width: 100%; margin-bottom: 50px; }
.main-title h3 { font-size: var(--font-size-event1); font-weight: 900; line-height: 46px; height: 46px; }
.main-title .more { position: absolute; right: 0; bottom: 10px; }
.class li { border: solid 1px var(--color-gray-300); border-radius: 5px; }
.class .thumb-01 { width: 100%; }
.class .thumb-01 img { border-radius: 5px 5px 0 0; border-bottom: solid 1px var(--color-gray-300); }
.class strong { width: 100%; display: block; text-align: left; font-size: var(--font-size-b); line-height: 32px; font-weight: 700; }
.more { border: solid 1px var(--color-gray-300); padding: 3px 15px; border-radius: 30px; display: flex; align-items: center; }
.more span { font-size: var(--font-size-m); color: var(--color-gray-600); margin-right: 5px; display: block; }
.more i { display: block; width: 10px; height: 10px; background: url("../img/icon.svg") no-repeat; background-position: -38px 0; margin-bottom: 1px; }
.online { position: absolute; right: 20px; top: 20px; font-size: var(--font-size-s); border: solid 1px var(--color-blue-400); padding: 0 10px; border-radius: 3px; color: var(--color-blue-400); }
.offline { position: absolute; right: 20px; top: 20px; font-size: var(--font-size-s); border: solid 1px var(--color-gray-600); padding: 0 10px; border-radius: 3px; color: var(--color-gray-600); }
.full-banner { background: #02B376 url("../img/main-banner-bg.jpg") center top no-repeat; display: flex; justify-content: center; align-items: center; }
.teacher li { margin-right: 20px; }
.teacher li:last-child { margin-right: 0; }
.mov li { background-color: transparent!important; }
.mov li div { width: 100%; }
.board > div { width: 48%; }
.board ul li { font-size: var(--font-size-l); margin-bottom: 10px; }
.board ul li:last-child { margin-bottom: 0; }
.foot-banner { width: 480px; }
.swiper-button-prev, .swiper-button-next { width: 34px!important; height: 34px!important; text-indent: -500em; overflow: hidden; display: block; }
.swiper-button-prev { margin-left: -50px; }
.swiper-button-next { margin-right: -50px; }
.swiper-button-prev::after { content: ""; display: block; width: 34px!important; height: 34px!important; background: url("../img/icon.svg") no-repeat; background-position: -48px 0; }
.swiper-button-next::after { content: ""; display: block; width: 34px!important; height: 34px!important; background: url("../img/icon.svg") no-repeat; background-position: -82px 0; }
.swiper-button-next, .swiper-button-prev { top: var(--swiper-navigation-top-offset, 60%); }
.section-01 .text-01 { font-size: var(--font-size-event1); font-weight: 700; margin-bottom: 20px; }
.section-01 .text-02 { font-size: var(--font-size-title2); line-height: 34px; font-weight: 500; }
.section-01 .text-02 em { color: var(--color-blue); }

.section-02 h3 { font-size: var(--font-size-event2); text-align: center; font-family: var(--font-ria); color: var(--color-blue); margin-bottom: 70px; }
.section-02 h3 span { font-size: var(--font-size-event1); display: block; color: var(--color-gray-900); }
.section-02 ul li { width: 30%; border: solid 1px var(--color-gray-300); text-align: center; border-radius: 30px; padding: 50px 0; }

.section-03 { margin-bottom: 100px; }
.section-03 .inner { position: relative; }
.section-03 h3 { font-family: var(--font-lotte); font-size: var(--font-size-event2); line-height: 74px; margin-bottom: 30px; color: var(--color-cyan); }
.section-03 p { font-size: var(--font-size-title3); line-height: 42px; }
.section-03 .thumb { position: absolute; right: -100px; top: -100px; width: 40%; }

/*=================================================================================
* sub
=================================================================================*/
.sub-visual { height: 240px; background: url("../img/main-visual.jpg") no-repeat; background-size: cover; }
.sub-visual div { top: 50%; transform: translateY(-50%); }
.sub-visual div h2 { color: var(--color-gray-100); font-family: var(--font-goyang); }
.sub-visual div h2 strong { font-size: var(--font-size-event1); font-weight: 800; text-align: center; }

.sub-class li { border: solid 1px var(--color-gray-300); border-radius: 5px; text-align: center; width: 358.5px; margin: 15px 15px 0 0; font-size: var(--font-size-l); position: relative; }
.sub-class li:nth-child(1), .sub-class li:nth-child(2), .sub-class li:nth-child(3), .sub-class li:nth-child(4) { margin-top: 0; }
.sub-class li:nth-of-type(4n) { margin-right: 0; }
.sub-class .thumb-01 { width: 100%; }
.sub-class .thumb-01 img { border-radius: 3px 3px 0 0; border-bottom: solid 1px var(--color-gray-300); }
.sub-class strong { width: 100%; display: block; text-align: left; font-size: var(--font-size-b); line-height: 32px; font-weight: 700; }

.sub-menu-01 { background-color: var(--color-blue-600); }
.sub-menu-02 { background-color: var(--color-gray-200); }
.sub-menu-01 a { font-size: var(--font-size-l); background-color: var(--color-gray-100); }
.sub-menu-01 li a { padding: 10px 30px; border-radius: 20px; font-weight: 700; }
.sub-menu-02 li a { padding: 7px 15px; border-radius: 20px; }
.sub-menu-01 li, .sub-menu-02 li { margin-right: 10px; }
.sub-menu-01 a:hover, .sub-menu-01 a.active { background-color: var(--color-orange-200); }
.sub-menu-02 a { font-size: var(--font-size-l); background-color: var(--color-blue-600); color: var(--color-gray-100); }
.sub-menu-02 a:hover, .sub-menu-02 a.active { background-color: var(--color-blue-200); color: var(--color-blue-600); }

.list-tab-menu dl { position: relative; }
.list-tab-menu dl::before { content: ""; position: absolute; width: 100%; height: 1px; background-color: var(--color-gray-300); left: 0; bottom: 0; }
.list-tab-menu dl dd { width: 25%; text-align: center; background-color: var(--color-gray-200); font-size: var(--font-size-b); font-weight: 700; border: solid 1px var(--color-gray-300); margin: 0 1px; padding: 10px 0; border-radius: 5px 5px 0 0; }
.list-tab-menu dl dd a { display: block; width: 100%; height: 100%; }
.list-tab-menu dl dd:hover, .list-tab-menu dl dd.active { background-color: var(--color-blue-600); border: solid 1px var(--color-blue-600); }
.list-tab-menu dl dd:hover a, .list-tab-menu dl dd.active a { color: var(--color-gray-100); }

/*=================================================================================
* tab
=================================================================================*/
.tab-menu { width: 100%; max-width: 600px; margin: auto; }
.tabs { display: flex; border-bottom: 2px solid #ddd; }
.tab-button { flex: 1; padding: 10px; text-align: center; border: none; background: #f1f1f1; cursor: pointer; transition: background 0.3s; }
.tab-button.active { background: #fff; border-bottom: 2px solid #007bff; font-weight: bold; }
.tab-content { margin-top: 10px; }
.tab-panel { display: none; padding: 15px; border: 1px solid #ddd; background: #fff; }
.tab-panel.active { display: block; }

