@charset "UTF-8";


header { width: 100%; position: fixed; left: 0; top: 80px; text-align: center; z-index: 999; color: #000; transition: color 0.5s;}
header .center { display: inline-block; font-size: 16px; }
header .btn_gnb { cursor: pointer; }
header .logo img { filter: invert(0%); }
header img { transition: 0.3s; zoom: 1.25;}

footer { font-size: 18px; }
footer .inner { padding: 20px 0; border-top: 1px solid #000; }
footer .left { padding: 3% 0; }
footer .logo { margin-bottom: 10px; }
footer h5 { font-weight: 700; margin-top: 20px; }
footer p { line-height: 1.7; font-weight: 700; }
footer p span { display: inline-block; margin-right: 10px; }
footer small {font-weight: 700; color: #666; }

.sec02 .img .swiper {
    width: 416px;
    height: 456px;
  }

  .sec02 .img .swiper .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    font-size: 22px;
    font-weight: bold;
    color: #fff;
  }

  .sec04 .img .swiper {
    width: 416px;
    height: 456px;
  }

  .sec04 .img .swiper .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    font-size: 22px;
    font-weight: bold;
    color: #fff;
  }

.fixed { position: fixed; left: 12%; bottom: -18px; transform: rotate(-90deg); transform-origin: 0 0;  z-index: 9; color: #000; }
.fixed span { width: 100px; height: 1px; background-color: #000; display: inline-block; vertical-align: middle; }

.btn_top { width: 40px; height: 40px; position: fixed; right: 12%; bottom: 10%; border: 1px solid #000; border-radius: 100px; z-index: 999; background: url(./img/btn_top.png) no-repeat center; cursor: pointer; }


.gnb_wrap { width: 100%; height: 100vh; position: fixed; z-index: 99; color: #fff; display: none; }
.gnb_wrap .inner { position: absolute; height: 100vh; text-align: center; left: 50%; top: 0; transform: translateX(-50%); }
.gnb_wrap .gnb, 
.gnb_wrap .fnb { width: 100%; position: absolute; left: 50%; transform: translateX(-50%); } 
.gnb_wrap .gnb { top: 45%; }
.gnb_wrap .gnb li { font-size: 60px; width: 33.3333%; font-weight: 100; }
.gnb_wrap .fnb { bottom: 5%; }
.gnb_wrap .fnb h4 { margin-bottom: 20px; font-size: 20px; font-weight: 700; }
.gnb_wrap .fnb p { margin: 0 20px; font-size: 14px; display: inline-block; }
.gnb_wrap .fnb span { margin-right: 10px; }

.circle { width: 250vw; height: 250vw; border-radius: 100%; background-color: #000; position: fixed; right: 0; top: 0; transform-origin: top right; transform: translate(50%,-50%) scale(0); transition: 1.2s; z-index: 99; }
.circle.open { transform: translate(50%,-50%) scale(1); }



header.white { color: #fff; }
header.white img { filter: invert(100%); }
.fixed.white { color: #fff; }
.fixed.white span { background-color: #fff; }
.btn_top.white { filter: invert(100%); }

header.combi { color: #fff; }
header.combi .logo img { filter: invert(100%); }
.fixed.combi { color: #fff; }
.fixed.combi span { background-color: #fff; }






/* 메인 */
.idx section { height: 100vh; padding-top: 200px; position: relative; }
.idx h2 { font-size: 68px; font-weight: bold; line-height: 1.3; }
.idx h3 { font-size: 38px; font-weight: bold; line-height: 1.3; }
.idx h4 { font-size: 28px; }
.idx h5 { font-size: 24px; }
.idx p { font-size: 16px; }
.idx .title { font-size: 16px; margin-bottom: 100px; }
.idx .txt { padding-left: 100px; }
.idx .txt h2 + .effect_up { margin-top: 20px; }
.idx .txt .btn_move { padding: 0 20px; font-weight: 500; margin-top: 75px; }
.idx .color_bg { width: 75%; height: 100vh; background-color: #000; position: fixed; left: 0; top: 0; z-index: -1; transition: background-color 0.5s; }
.idx .color_bg.none { background-color: transparent; }

/* .idx .sec01 */
.idx .sec01 .inner, 
.idx .sec01 .sec01_slide,
.idx .sec01 .slide_wrap, 
.idx .sec01 .slide_box { height: 100%; }
.idx .sec01 .slide_box { position: relative; }
.idx .sec01 .slide_paging { left: 210px; bottom: 50px; text-align: left; }
.idx .sec01 .slide_bullet { width: 24px; height: 2px; background-color: #000; display: inline-block; margin-right: 5px; opacity: 0.4; }
.idx .sec01 .slide_bullet_active { opacity: 1; }
.idx .sec01 .txt { width: 100%; color: #fff; position: absolute; top: 50%; transform: translateY(-50%); left: 0; z-index: 1; }
.idx .sec01 .txt h3 { font-size: 36px; font-weight: 700; }
.idx .sec01 .txt h2 { font-size: 160px; font-weight: 700; line-height: 0.9; text-shadow: 0 0 25px rgba(0,0,0,0.3); }
.idx .sec01 .txt h4 { font-size: 54px; font-weight: 100; color: #696A6F; }
.idx .sec01 .txt .btn_move { width: 125px; margin-top: 50px; }
.idx .sec01 .img { height: 100%; }
.idx .sec01 .img video { height: 100%; }

/* .idx .sec02 */
.idx .sec02 { text-align: center; font-weight: 100; position: relative; } 
.idx .sec02 .parallax { width: 1600px; font-size: 224px; position: absolute; right: -50px; bottom: 30%; }
.idx .sec02 .parallax span { font-weight: 400; }
.idx .sec02 .parallax strong { font-weight: 900; }

/* .idx .sec03 */
.idx .sec03 .img { width: 445px; padding-top: 100%; border-radius: 40px; overflow: hidden; position: relative; }
.idx .sec03 .img video { width: 100%; position: absolute; top: 0; left: 0; }

/* .idx .sec04 */
.idx .sec04 { color: #fff; background-color: #AFAFAF; }
.idx .sec04 .inner { position: relative; z-index: 10; }
.idx .sec04 .img { width: 900px; position: absolute; right: 0; bottom: 0; }
.idx .sec04 .img video { width: 100%; }

/* .idx .sec05 */
.idx .sec05 { height: auto; }
.idx .sec05 .scroll { height: 3390px; }
.idx .sec05 .inner { position: absolute; top: 200px; transform: translate(-50%,0%); left: 50%;  }
.idx .sec05.fix .inner { position: fixed; left: 50%; }
.idx .sec05.fix_end .inner { position: absolute; top: auto; bottom: 215px; }
.idx .sec05 .txt { position: relative; z-index: 10; }
.idx .sec05 .right { width: 50%; position: relative; }
.idx .sec05 .right .img { position: absolute; left: 0; top: 0; font-size: 0; white-space: nowrap; }
.idx .sec05 .right .box { display: inline-block; vertical-align: bottom; margin-right: 150px; transition: 0.9s linear; overflow: hidden; }
.idx .sec05 .right .box0 { width: 900px; }
.idx .sec05 .right .box0 video { width: 100%; }
.idx .sec05 .right .box0 { -webkit-border-radius: 20px;-moz-border-radius: 20px;border-radius: 20px; }
.idx .sec05 .right .box1 { -webkit-border-radius: 35px;-moz-border-radius: 35px;border-radius: 35px; }
.idx .sec05 .right .box2 { -webkit-border-radius: 500px;-moz-border-radius: 500px;border-radius: 500px; }

.idx .sec05 .right .box0.off { width: 600px; opacity: 0.3; transform: translateY(-30%);}
.idx .sec05 .right .box1.off {  opacity: 0.3; transform: scale(0.8) translateY(15%);}
.idx .sec05 .right .box2.on { transform: scale(1.4) translateY(-60%);}

    /*.idx .sec05 .right .box2 { transform: translateY(80%); border-radius: 100%; overflow: hidden; }*/
/*.idx .sec05 .right .box1.off { opacity: 0.2; transform: scale(0.6); border-radius: 60px; }*/
/*.idx .sec05 .right .box2.on { transform: translateY(20%) scale(1.6); }*/



/* .idx .sec06, .idx .sec07 */
.idx .sec06 .txt,
.idx .sec07 .txt { padding-top: 100px; }
.idx .sec06 .img,
.idx .sec07 .img { border-radius: 100%; overflow: hidden; } 







/* about */
.about section { min-height: 100vh; padding-top: 60px; position: relative; }
.about .inner { position: relative; }
.about h1 { font-size: 316px; }
.about h2 { font-size: 194px; font-weight: 900; }
.about h3 { font-size: 70px; font-weight: 700; }
.about h4 { font-size: 44px; font-weight: 700; }
.about h5 { font-size: 34px; font-weight: 700; color: #696A6F; }
.about h6 { font-size: 24px; }
.about p { font-size: 20px; }

.about .parallax { white-space: nowrap; font-weight: 100; color: #E2E2E3; transition: 0.8s; }
.about .parallax strong { font-weight: 900; }

.about .parallax2 { margin-bottom: 200px; }
.about .parallax2 .right { transition: 0.8s; padding-top: 200px; }
.about .parallax2 .roboto { transform-origin: left top; transform: rotate(90deg); position: absolute; left: 195px; top: 0; }
.about .parallax2 .roboto h2.effect_up { line-height: 1; }
.about .parallax2 .txt { margin-top: 80px; }
.about .parallax2 .txt h3 { margin: 10px 0 20px; }
 

/* sec01 */
.about .sec01 { color: #fff; background: url(./img/about_sec01_bg.png) no-repeat center/cover; position: relative; }
.about .sec01 .inner { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); padding-left: 100px; }
.about .sec01 h4 { margin-bottom: 20px; }

/* sec02 */
.about .sec02 h3 { margin-top: 50px; }

/* sec03, sec04 */
.about .sec03 .right, 
.about .sec04 .right { text-align: right; }

/* sec06 */
.about .sec06 .parallax { position: absolute; left: 0; top: 60px; }
.about .sec06 .inner { padding-top: 180px; }
.about .sec06 .right { width: 60%; margin-top: 80px; }
.about .sec06 li { width: 50%; padding: 25px; }
.about .sec06 li img { width: 100%; }
.about .sec06 p { margin-top: 10px; overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}




/* service */
.service section {padding-top: 200px; position: relative; }
.service h3 { font-size: 70px; font-weight: 700; }
.service h4 { font-size: 44px; font-weight: 700; }
.service p { font-size: 20px; color: #696A6F; font-weight: 700; margin-top: 20px; }
.service .txt { padding: 140px 0; }
.service .img { padding-top: 60px; }
.service .sec01 .inner { background: url(./img/service_sec01_bg.png) no-repeat right top; }
.service .sec02 { background: url(./img/service_sec02_bg.png) no-repeat center/cover; }
.service .sec02 .inner { padding: 0 180px; }
.service .sec03 .txt { padding-left: 140px; }
.service .sec03 .txt .effect_down { margin-top: 100px; }



/* contact */
.contact .inner { height: 100vh; position: relative; }
.contact article { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); text-align: center; display: inline-block; }
.contact .img { display: block; text-align: left; animation-duration: 0.8s; animation-name: contactImg; animation-iteration-count: infinite; animation-direction: alternate; animation-timing-function: ease-in; }
.contact h2 { font-size: 42px; font-weight: 100; min-width: 620px; }
.contact ul { margin-top: 60px; font-size: 14px;  }
.contact ul li { margin-bottom: 16px; }
.contact ul span { display: inline-block; width: 60px; font-weight: 400; text-align: left; }
.contact ul strong { display: inline-block; width: 150px; font-weight: 700; text-align: left; }



@keyframes contactImg {
    from {
        transform: translateY(-15px);
    }
    to {
        transform: translateY(0px);
    }
}


.intro { position: fixed; left: 0; top: 0; bottom: 0; right: 0; z-index: 999; background-color: #fff; }
.intro .box { width: 500px; height: 100px; position: absolute; top: 50%; left: 50%; margin-left: -250px; margin-top: -100px; }
.intro .box img { zoom: 0.2; bottom: 0; position: absolute; opacity: 0; }
.intro .box .intro1 { transform: translateX(-900px) scale(1.7); left: 250px; }
.intro .box .intro2 { transform: translateX(-600px) scale(1.4); left: 600px; }
.intro .box .intro3 { transform: translateX(-300px) scale(1.2); left: 1200px; }
.intro .box .intro4 { transform: translateX(-100px) scale(1.1); left: 1550px; }
.intro .box .intro5 { transform: translateX(300px) scale(1.2); left: 1650px; }


.intro .box img {
    animation-duration: 0.6s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-timing-function: ease-out;
    animation-fill-mode: forwards;
    animation-name: intro_img;
}

@keyframes intro_img {
    to {
        transform: translateX(0) scale(1);
        opacity: 1;
    }
}
.intro .box {
    animation-duration: 0.4s;
    animation-delay: 0.8s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards;
    animation-name: intro;
}
@keyframes intro {
    to {
        transform-origin: 50% 50%;
        transform: scale(2);
        opacity: 0;
    }
}




@media screen and (max-width: 1300px){
    .inner { width: 96%; }
    .fixed { left: 4%; }
    .btn_top { right: 4%; }
    .idx .sec04 .img { opacity: 0.7; }
    .service .sec02 .inner { padding: 0 10%; }
    .service .sec03 .txt { padding: 0; }
    .circle { width: 300vw; height: 300vw; }
}
@media screen and (max-width: 1200px){
    .idx .txt { padding-left: 0; }
    .idx .sec01 .right { height: auto; width: 55%; }
    .idx .sec01 .img,
    .idx .sec01 .img video { height:100%; }
    .idx .sec04 .img { width: 50%; bottom: 50%; transform: translateY(50%)}
    .idx .sec04 .img video { width: 100%; }

    .about .parallax2 .right { width: 80%; }
    .about .sec06 p {font-size: 16px; }
    .service .sec02 .inner { padding: 0; }
    .service .sec03 .right { width: 40%; }
    .service .sec03 .img img { width: 100%; }
}
@media screen and (max-width: 768px) {
    header { top: 30px; }
    .circle { height: 300vh; width: 300vh; }
    .idx section { padding-top: 100px; height: auto; min-height: 100vh; }
    .idx h2 { font-size: 36px; }
    .idx h3 { font-size: 24px; }
    .idx h4 { font-size: 20px; }
    .idx h5 { font-size: 18px; }
    .idx p { font-size: 14px; }
    .idx .title { font-size: 14px; margin-bottom: 100px; }
    .idx .sec01 .txt { top: 45%; }
    .idx .sec02 { min-height: 60vh }
    .idx .sec02 .parallax { bottom: 15%; }
    .idx .sec03 .right { width: 50%; }
    .idx .sec03 .img,.idx .sec03 img { width: 100%; }
    .idx .sec05 .inner { position: static; transform: translate(0,0); left: 0; top: 0; }
    .idx .sec05 .scroll { height: auto; }
    .idx .sec05 .left,
    .idx .sec05 .right { float: none; width: 100%; }
    .idx .sec05 .right .img { position: static; white-space: normal; }
    .idx .sec05 .right .img::after { content: ""; display: block; clear: both; }
    .idx .sec05 .right .img .box { display: block; margin-right: 0; margin-top: 80px; }
    .idx .sec05 .right .img .box0 { width: 100%; }
    .idx .sec05 .right .img .box img { width: 100%; }
    .idx .sec05 .right .img .box video { width: 100%; }
    .idx .sec05 .right .box1 { width: 60%; float: left; }
    .idx .sec05 .right .box2 { transform: translateY(0); float: right; }
    .idx .sec06, .idx .sec07 { min-height: 0; padding-bottom: 80px; }
    .idx .sec06 .txt, .idx .sec07 .txt { padding-top: 50px; }
    .idx .sec06 .img, .idx .sec07 .img { zoom: 0.7; }
    .about h1 { font-size: 220px; }
    .about h2 { font-size: 100px; }
    .about h3 { font-size: 48px; }
    .about h4 { font-size: 32px; }
    .about h5 { font-size: 24px; }
    .about h6 { font-size: 18px; }
    .about p { font-size: 16px; }
    .about .parallax2 .roboto { left: 125px; }
    .service h3 { font-size: 48px; }
    .service h4 { font-size: 24px; }
    .service p { font-size: 16px; }
    .service .cb > div { width: 50%; }
    .service img { width: 100%; }
    .contact h2 {font-size: 36px;  }
    footer { font-size: 14px; }
    .sec02 .img .swiper {
      width: 250px;
      height: 270px;
    }
}
@media screen and (max-width: 450px) {
    .intro .box { zoom: 0.5; }

    header img { zoom: 1; }
    header .logo img { width: 90px; }
    header .center { display: none; }
    .fixed { display: none !important; }
    .gnb_wrap .gnb { top: 30%; }
    .gnb_wrap .gnb li { width: 100%; margin-bottom: 30px; font-size: 45px; }
    .idx .sec01 .slide_box { height: 50%; padding: 80px 0; }
    .idx .sec01 .right { float: none; width: 100%; margin-top: 20px; }
    .idx .sec01 .img video { width: 100%; height:auto; }
    .idx .sec01 .txt { position: static;transform:translateY(0); }
    .idx .sec01 .txt h3 { font-size: 24px; }
    .idx .sec01 .txt h2 { font-size: 80px; }
    .idx .sec01 .txt h4 { font-size: 36px; }
    .idx .sec02 { padding-top: 80px; min-height: 75vh;}
    .idx .sec02 .parallax { width: 1250px; font-size: 170px; }
    .idx .sec03 { padding-bottom: 80px; }
    .idx .sec03 .cb >div { float: none; }
    .idx .sec03 .right { width: 100%; margin-top: 20px; }
    .idx .sec04 .img { width: auto; bottom: 0;  transform: translateY(0%)}
    .idx .sec04 .img video { height: 100%; width: auto; }
    .idx .sec05 .right .box2 { zoom: 0.6; }
    .idx .title { margin-bottom: 20px; }
    .idx .sec06 .txt, .idx .sec07 .txt { padding-top: 0; }
    .idx .sec06 .cb > div,  .idx .sec07 .cb > div { float: none; }
    .idx .sec06 .btn_move, .idx .sec07 .btn_move{ margin-top: 30px; }
    .idx .sec06 .img, .idx .sec07 .img { zoom: 1; width: 260px; height: 260px; margin: auto; margin-top: 30px; }
    .idx .sec06 img, .idx .sec07 img { width: 100%; }

    .about .sec01 .inner { padding-left: 0; }
    .about .parallax2 .roboto { left: 65px; }
    .about h3 { font-size: 32px; }
    .about h4 { font-size: 24px; }
    .about h5 { font-size: 20px; }
    .about h6 { font-size: 16px; }
    .about .sec06 .right { width: 100%; }
    .about .sec06 li { padding: 10px; }
    .service .cb > div { width: 100%; float: none; }
    .service .txt { padding: 0; }
    .service section { padding: 80px 0; }
    .service img { width: 80%; }
    .service .img { padding-top: 30px; }
    .service .sec03 .txt .effect_down { margin-top: 40px; }
    .service .sec03 .right { width: 100%; }
    .contact article { width: 100%; }
    .contact h2 { min-width: 0; font-size: 26px; }
    .contact .img { zoom: 0.6; }
    footer .inner { padding: 30px 0; }
    footer .inner .right { float: left; }
}