/* reset */
*{margin:0;padding:0;font:inherit;color:inherit;}
*, :after, :before {box-sizing:border-box;}
:root {-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%;cursor:default;line-height:1.5;overflow-wrap:break-word;word-break:break-word;tab-size:4}
html, body {height:100%;}
img, picture, video, canvas, svg {display: block;max-width:100%;}
button {background:none;border:0;cursor:pointer;}
a {text-decoration:none}
table {border-collapse:collapse;border-spacing:0}
ul{list-style-type: none;}
:root{
    --mc: #53A93A;
}
/* rem_reset */
html{
    font-size: 56.5%;
}

/* font */
@font-face {
	font-family: 'Pretendard Variable';
	font-weight: 45 920;
	font-style: normal;
	font-display: swap;
	src: url('font/PretendardVariable.woff2') format('woff2-variations');
}
body, input, textarea, select, button, table {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-family: 'Pretendard Variable';
}

/* body */
body{
    background-color: #F9F9F9;
    overflow-x: hidden;
}
.rel_wrap{
    width: 138.8rem;
    margin: auto;
}
.body_bg{
    background-color: #000;
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: -1;
}
.wrap{
    overflow-x: hidden;
}
/* header */
header{
    padding-top: 2rem;
    position: fixed;
    width: 100%;
    z-index: 10;
}
header .rel_wrap{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.logo_wrap a{
    filter: brightness(3);
    display: block;
    width: 4.8rem;
    height: 4.8rem;
    transition: all .3s ease-in-out;
}
.logo_wrap a img{
    width: 100%;
}
header .menu_wrap{
    display: flex;
    gap: 2rem;
}
header .menu_wrap a{
    font-size: 1.8rem;
    font-weight: 700;
    color: #fff;
    transition: all .3s ease-in-out;
    text-decoration: transparent 3px underline;
}
header .menu_wrap a:hover{
    text-decoration: var(--mc) 3px underline;
}
header.on .logo_wrap a{
    filter: brightness(1)
}
header.on .menu_wrap a{
    color: #000;
}
/* visual */
.visual{
    width: 100%;
}
.visual .rel_wrap{
    position: relative;
    height: 100dvh;
    overflow: hidden;
}
.visual_txt{
    color: #fff;
    font-size: 6rem;
    line-height: 1.3;
    font-weight: 700;
}
.visual_left_wrap{
    position: absolute;
    top: 21rem;
    z-index: 2;
}
.visual_txt_left_top_point{
    position: relative;
    margin-left: -3.3rem;
    width: 35rem;
    height: 24rem;
}
.visual_txt_wrap_top{
    align-items: flex-end;
    display: flex;
}
.visual_txt_left_top_point > div{
    font-size: 6rem;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    padding: 1rem 3.2rem;
    background-color: var(--mc);
    display: flex;
    white-space: nowrap;
    border-radius: calc(1px / 0);
    filter: drop-shadow(0px 0.3rem 0.6rem rgba(0,0,0,0.16));
    position: absolute;
}
.visual_txt_left_top_point > div:nth-child(3){
    bottom: calc(1.8rem + 5rem);
    rotate :-18deg;
}
.visual_txt_left_top_point > div:nth-child(2){
    bottom: 5rem;
    right: 0;
}
.visual_txt_left_top_point > div:nth-child(1){
    bottom: calc(8.3rem + 5rem);
    right: 0;
    rotate: 20deg;
}
.visual_line{
    width: 26.4rem;
    height: .8rem;
    display: inline-block;
    background-color: #fff;
    overflow: hidden;
    position: relative;
    opacity: 0;
}
.visual_line::after{
    width: 100%;
    height: 100%;
    content: "";
    background-color: #000;
    display: block;
    position: absolute;
    transform: translateX(0%);
    transition: transform .5s ease-in-out;
}
.visual_line.on{
    opacity: 1;
}
.visual_line.on::after{
    transform: translateX(100%);
}
.visual_txt_wrap_bottom .visual_txt{
    display: flex;
    align-items: center;
    gap: 1rem;
}
.visual_txt_wrap_bottom .visual_txt.visual_dot{
    position: relative;
    display: inline-flex;
}
.visual_dot::after{
    display: block;
    opacity: 0;
    content: "";
    background-color:  var(--mc);
    border-radius: calc(1px / 0);
    width: 1.6rem;
    height: 1.6rem;
    position: absolute;
    top: 1rem;
    right: -2.6rem;
    transition: opacity .3s ease-in-out;
}
.visual_dot.on::after{
    opacity: 1;
}
.visual_phone{
    width: 55.4rem;
    height: 77.2rem;
    position: absolute;
    top: calc(50% - (77.2rem / 2) + 10rem);
    opacity: 0;
    left: calc(50% - (55.4rem / 2));
}
.visual_phone::before{
    content: "";
    opacity: 0;
    display: block;
    width: 25rem;
    height: 13rem;
    background: rgb(83,169,58);
    background: linear-gradient(270deg, rgba(83,169,58,1) 0%, rgba(224,255,7,1) 100%);
    border-radius: calc(1px / 0);
    position: absolute;
    bottom: 8rem;
    left: -13rem;
    z-index: -1;
    transition: all .3s ease-in-out;
    transform: translateX(5rem);
}
.visual_phone::after{
    content: "";
    opacity: 0;
    display: block;
    width: 25rem;
    height: 13rem;
    background: rgb(83,169,58);
    background: linear-gradient(270deg, rgba(83,169,58,1) 0%, rgba(224,255,7,1) 100%);
    border-radius: calc(1px / 0);
    position: absolute;
    bottom: 20rem;
    right: 4rem;
    z-index: -1;
    transition: all .3s ease-in-out;
    transform: translateX(-5rem);
}
.visual_phone.on::before{
    opacity: 1;
    transform: translateX(0rem);
}
.visual_phone.on::after{
    opacity: 1;
    transform: translateX(0rem);
}
.visual_phone img{
    animation: visual_phone 3s ease-in-out infinite;
}
.visual_right_wrap{
    position: absolute;
    top: 45rem;
    right: 0;
    z-index: 2;
}
.visual_right_wrap .visual_mc{
    display: block;
    color: var(--mc);
    text-align: right;
    position: absolute;
    right: 0;
    white-space: nowrap;
}
.visual_right_wrap .visual_mc::before{
    position: absolute;
    height: 0.6rem;
    width: 100%;
    background-color: var(--mc);
    display: block;
    content: "";
    bottom: 0;
}
.visual_right_wrap .visual_mc::after{
    position: absolute;
    height: 0.6rem;
    width: 100%;
    background-color: #000;
    display: block;
    content: "";
    bottom: 0;
    transition: transform .5s ease-in-out;
}
.visual_right_wrap .visual_mc.on::after{
    transform: translateX(100%);
}
.visual_btn_wrap{
    position: absolute;
    bottom: 12rem;
    width: 100%;
    display: flex;
    justify-content: center;
    gap: 3rem;
}
.visual_btn_wrap img{
    width: 100%;
}
.visual_btn_wrap a{
    display: block;
    width: 26rem;
    border-radius: calc(1px / 0);
    overflow: hidden;
}
.visual_btn{
    position: relative;
}
.visual_qr_pop{
    position: absolute;
    top: -15rem;
    left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    transition: opacity .3s ease-in-out;
}
.visual_btn a:hover + .visual_qr_pop{
    opacity: 1;
}
.visual_qr_pop img{
    width: 20rem;
    background-color: #fff;
    border-radius: 12px;
    overflow: hidden;
}
.visual_qr_pop::after{
    content: "";
    left: 50%;
    bottom: -.9rem;
    transform: translateX(-50%) rotate(45deg);
    position: absolute;
    width: 2rem;
    height: 2rem;
    border-radius: 5px;
    background-color: #fff;
    z-index: 3;
}
.visual_arrow_wrap{
    position: absolute;
    bottom: 6rem;
    width: 100%;
    display: flex;
    justify-content: center;
}
.visual_arrow_wrap img{
    width: 2rem;
    animation: visual_arrow 1s ease-in-out infinite;
}
@keyframes visual_arrow{
    0%{
        transform: translateY(0);
    }
    50%{
        transform: translateY(.2rem);
    }
    100%{
        transform: translateY(0);
    }
}
@keyframes visual_phone{
    0%{
        transform: translateY(0);
    }
    50%{
        transform: translateY(-2rem);
    }
    100%{
        transform: translateY(0);
    }
}
/* visual 애니메이션 대응 */
#visual_txt_01{
    width: 3em;
    height: 2.5em;   
}
.visual_txt_left_top_point > div{
    opacity: 0;
}
#visual_txt_05{
    text-align: left;
    display: block;
    width: 7.5em;
}
#visual_txt_06{
    opacity: 0;
}
.visual_btn_wrap,.visual_arrow_wrap{
    opacity: 0;
}
/* section */
.section{
    width: 300%;
    height: 100dvh;
    display: flex;
}
.section .rel_wrap{
    height: 100%;
}
.section > div{
    height: 100%;
    width: 100%;
}
.sec_txt_wrap{
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
}
.sec_sub_txt{
    font-size: 3rem;
    font-weight: 700;
    color: var(--mc);
}
.sec_main_txt{
    font-size: 5rem;
    font-weight: 700;
    color: #000;
    line-height: 1.5;
    white-space: nowrap
}
.sec_rt_box{
    padding: 1rem 2.5rem;
    background-color: #eee;
    border-radius: calc(1px / 0);
    filter: drop-shadow(0px 0.3rem 0.6rem rgba(0,0,0,0.16));
    display: inline-block;
    margin-right: 10px;
}
.mb20{
    margin-bottom: 20px;
}
.bg_nam{
    background-color: #3A8EA9;
    color: #fff;
}
.bg_orange{
    background-color: #F9B237;
    color: #fff;
}
.dot_txt{
    color: var(--mc);
    position: relative;
}
.dot_txt::before{
    position: absolute;
    width: 100%;
    height: 0.6rem;
    content: "";
    background-color: var(--mc);
    bottom: 0;
}
.dot_txt::after{
    position: absolute;
    width: 1.6rem;
    height: 1.6rem;
    content: "";
    background-color: var(--mc);
    border-radius: calc(1px / 0);
    right: -2rem;
    top: 0;
}
.dot_txt.sec02::after{
    right: -2.4em;
}
.section01 .sec_txt_wrap{
    margin-left: 10rem;
}
/* section01 애니메이션 */
.sec_rt_box{
    opacity: 0;
}
#pop01{
    transform: scale(.8);
}
#pop02{
    transform: scale(.8);
}
#pop03{
    opacity: 1;
}
#pop04{
    opacity: 1;
}

/* section01 */
.section01{
    overflow: hidden;
}
.section01 .rel_wrap{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.sec_slide_wrap {
    height: 100%;
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
    opacity: 0;
    margin-left: 10rem;
    position: relative;
}
.sec_slide_wrap::before{
    position: absolute;
    top: 0;
    width: 110%;
    content: "";
    display: block;
    background: rgb(249,249,249);
    background: linear-gradient(180deg, rgba(249,249,249,1) 10%, rgba(249,249,249,0) 100%);
    height: 15rem;
    z-index: 2;
}
.sec_slide_wrap::after{
    position: absolute;
    bottom: 0;
    width: 110%;
    content: "";
    display: block;
    background: rgb(249,249,249);
    background: linear-gradient(0, rgba(249,249,249,1) 10%, rgba(249,249,249,0) 100%);
    height: 15rem;
    z-index: 2;
}
.sec_slide_wrap > .slide-wrapper{
    transition-timing-function : linear;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.sec_slide_wrap .slide-slide{
    width: 27rem;
    height: auto;
    padding: 2.5rem 0;
    font-size: 5rem;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-weight: 700;
    background-color: #fff;
    border-radius: 6.5rem;
    filter: drop-shadow(0px 0.3rem 0.6rem rgba(0,0,0,0.16));
}
.sec_slide_wrap .slide-slide.sec_slide_img{
    height: 27rem;
}
.sec_slide_wrap .slide-slide.sec_slide_img img{
    width: 50%;
}
.sec_slide_wrap .slide-slide.sec_slide_img.bc{
    background-color: #DF2534;
}
.sec_slide_wrap .slide-slide.sec_slide_img.hn{
    background-color: #2E8378;
}
.sec_slide_wrap .slide-slide.sec_slide_img.kb{
    background-color: #F8B500;
}
.sec_slide_wrap .slide-slide.sec_slide_img.nh{
    background-color: #FFBA00;
}
.sec_slide_wrap .slide-slide.sec_slide_img.sh{
    background-color: #0046FF;
}

/* section02 */
.sec02_txt_bg_wrap{
    transform: translateX(100%);
    display: flex;
    gap: 8rem;
    text-shadow: -0.1rem 0 #000, 0 0.1rem #000, 0.1rem 0 #000, 0 -0.1rem #000;
    color: #F9F9F9;
    position: absolute;
    bottom: 16rem;
    font-size: 12rem;
    opacity: 0.3;
    white-space: nowrap;
    z-index: -1;
}
.sec02_txt_bg_wrap span{
    position: relative;
}
.sec02_txt_bg_wrap span:not(:last-child)::after{
    border: 0.1rem solid #000;
    content: "";
    border-radius: calc(1px / 0);
    width: 2rem;
    height: 2rem;
    position: absolute;
    right: -4rem;
    top: 50%;
    transform: translateY(-50%);
}
.section02 .rel_wrap.sec02{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.sec02_img_wrap{
    transform: translateX(-9rem);
    height: 100%;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.sec02_img_wrap img{
    width: 39rem;
    height: 50rem;
    position: absolute;
    display: block;
    filter: drop-shadow(0px 0.3rem 0.6rem rgba(0,0,0,0.16));
    opacity: 0;
    z-index: 2;
}
.sec02_img_wrap img:nth-child(1){
    top: calc((50% - 25rem) + 15rem);
    transform: translateX(-10rem);
}
.sec02_img_wrap img:nth-child(2){
    top: calc((50% - 25rem) - 2rem);
    transform: translateX(10rem);
}
/* section03 */
.section03 .rel_wrap{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.brand_ul{
    display: flex;
    flex-direction: column;
}
.brand_list{
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 1rem 2.5rem;
    background-color: #fff;
    border-radius: calc(1px / 0);
    width: 50rem;
    font-size: 2.4rem;
    filter: drop-shadow(0px 0.3rem 0.6rem rgba(0,0,0,0.16));
}
.brand_list img{
    width: 10rem;
    height: 10rem;
}
.brand_ul .brand_list:nth-child(6){
    opacity: 0;
    transform: translateY(-6rem);
}
.brand_ul .brand_list:nth-child(5){
    opacity: 0;
    transform: scale(.75) translateY(-4rem);
}
.brand_ul .brand_list:nth-child(4){
    opacity: 0;
    transform: scale(.7);
}
.brand_ul .brand_list:nth-child(3){
    opacity: 0;
    transform: scale(.65) translateY(7rem);
}
.brand_ul .brand_list:nth-child(2){
    opacity: 0;
    transform: scale(.6) translateY(14rem);
}
.brand_ul .brand_list:nth-child(1){
    opacity: 0;
    transform: scale(.6) translateY(22rem);
}
.brand_pop div{
    display: block;
    width: fit-content;
    border-radius: calc(1px / 0);
    background-color: #fff;
    padding: 2.5rem;
    filter: drop-shadow(0px 0.3rem 0.6rem rgba(0,0,0,0.16));
    position: absolute;
    scale: .8;
    opacity: 0;
}
.brand_pop img{
    width: 11rem
}
.brand_pop div:nth-child(1){
    top: calc(50% - 24rem);
    transform: translateX(-10rem);
}
.brand_pop div:nth-child(2){
    top: calc(50% - 16rem);
    transform: translateX(40rem);
}
.brand_pop div:nth-child(3){
    top: calc(50% + 10rem);
    transform: translateX(-14rem);
}
.sec_arrow{
    display: block;
    filter: drop-shadow(0px 0.3rem 0.6rem rgba(0,0,0,0.16));
    position: absolute;
    top: calc(50% + 20rem);
    transform: translateX(+40rem);
    opacity: 0;
}
.sec_arrow img{
    width: 18rem;
}
.contect{
    min-height: calc(100dvh - 7rem);
}
.contect .rel_wrap{
    display: flex;
    justify-content: center;
    flex-direction: column;
    height: calc(100dvh - 5rem);
}
.contect h2{
    font-size: 5rem;
    font-weight: 700;
    margin-bottom: 2rem;
}
.svg {
    width: 100rem;
    height: 70rem;
    background: #eee;
}
.path {
    fill: transparent;
    stroke: crimson;
    stroke-width: 5;
}
tspan {
    font-weight: normal;
    fill: crimson;
    font-size: 5rem;
}
.map{
    overflow: hidden;
    border-radius: 6rem;
    height: 30rem;
    filter: drop-shadow(0px 0.3rem 0.6rem rgba(0,0,0,0.16));
}
.contect_circle_txt{
    width: 50rem;
    height: 50rem;
    font-size: 1.2rem;
    animation: contect_circle_txt 20s linear infinite;
}
@keyframes contect_circle_txt{
    0%{
        transform: rotate(0deg);
    }
    50%{
        transform: rotate(180deg);
    }
    100%{
        transform: rotate(360deg);
    }
}
.map_wrap{
    position: relative;
    width: 100%;
}
.map_wrap .contect_circle_txt{
    position: absolute;
    bottom: -24rem;
    right: -23rem;
    z-index: -1;
}
.contect_txt_wrap{
    padding-left: 5.5rem;
}
.contect_txt{
    font-size: 4rem;
    font-weight: 700;
    padding-top: 2rem;
}
.contect_sub{
    font-size: 3rem;
    font-weight: 400;
    color: #888;
}
.contect_link_wrap{
    display: flex;
    gap: 1rem;
}
.contect_link_wrap img{
    width: 26rem;
}
.contect_txt_wrap > div{
    position: relative;
}
.contect_txt_wrap > div::after{
    content: "";
    position: absolute;
    width: 5rem;
    height: 5rem;
    background-size: cover;
    background-repeat: no-repeat;
    top: 2.5rem;
    left: -5rem;
}
.contect_txt_depth1::after{
    background-image: url('../img/s04_icon_01.png');
}
.contect_txt_depth2::after{
    background-image: url('../img/s04_icon_02.png');
}
.contect_txt_depth3::after{
    background-image: url('../img/s04_icon_03.png');
}

/* 반응형 */
@media (max-width: 1388px){
    html{
        font-size: 46.5%;
    }
    .rel_wrap{
        width: calc(100% - 12rem);
    }
    .visual_txt_left_top_point{
        margin-left: -7.3rem;
    }
    .visual_txt_left_top_point > div:nth-child(2){
        bottom: 6rem;
    }
    .visual_txt_left_top_point > div{
        font-size: 5rem;
    }
}
@media (max-width: 1024px){
    .visual_left_wrap{
        top: 5rem;
    }
    .visual_line{
        width: 16rem;
    }
    .visual_phone {
        width: 45.4rem;
        height: 63.2rem;
        top: calc(50% - (63.2rem / 2) + 10rem);
        left: calc(50% - (45.4rem / 2));
    }
    .visual_right_wrap {
        top: unset;
        bottom: 35rem;
    }
    .section01 .rel_wrap {
        align-items: flex-start;
        flex-direction: column;
    }
    .sec_slide_wrap > .slide-wrapper{
        flex-direction: row;
    }
    .section01 .sec_txt_wrap{
        margin-left: 13rem;
    }
    .sec_slide_wrap::before{
        position: absolute;
        top: 0;
        left: -16rem;
        width: 15rem;
        height: 100%;
        background: linear-gradient(90deg, rgba(249,249,249,1) 10%, rgba(249,249,249,0) 100%);
    }
    .sec_slide_wrap::after{
        position: absolute;
        left: calc(100vw - 29rem);
        width: 15rem;
        height: 100%;
        background: linear-gradient(270deg, rgba(249,249,249,1) 10%, rgba(249,249,249,0) 100%);
    }
    .section02 .rel_wrap.sec02{
        flex-direction: column;
        align-items: flex-start;
    }
    .sec02_img_wrap{
        justify-content: flex-end;
    }
    .section03 .rel_wrap{
        align-items: flex-start;
        flex-direction: column;
    }
    .sec03_img_wrap{
        position: relative;
        align-self: flex-end;
        transform: translateY(-30rem);
    }
    .sec02_txt_bg_wrap{
        font-size: 9rem;
    }
}
@media (max-width: 768px){
    html{
        font-size: 43.5%;
    }
    .rel_wrap {
        width: calc(100% - 8rem);
    }
    .visual_txt{
        font-size: 5rem;
    }
    .visual_left_wrap{
        top: 0rem;
    }
    .visual_phone{
        width: 37.4rem;
        height: 54.2rem;
        top: calc(50% -(37.4rem / 2) + 14rem);
        left: calc(50% - (34.2rem / 2));
        filter: brightness(0.7);
    }
    .visual_right_wrap {
        top: unset;
        bottom: 35rem;
    }
    .visual_phone::before{
        width: 20rem;
        height: 8rem;
        left: -3rem;
    }
    .visual_phone::after{
        width: 20rem;
        height: 8rem;
    }
    .visual_phone{
        top: calc(50% - (63.2rem / 2) + 18rem);
    }
    .visual_btn_wrap{
        gap: 1rem;
    }
    .visual_btn_wrap a{
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        max-width: 200px;
    }
    .map img{
        max-width: 150vw;
        margin: 0 auto;
    }
    .sec_main_txt{
        font-size: 4rem;
    }
    .sec_sub_txt{
        font-size: 2.5rem;
    }
    .sec_slide_wrap .slide-slide.sec_slide_img{
        width: 20rem;
    }
    .sec_slide_wrap .slide-slide{
        width: 20rem;
        height: 20rem;
    }
    .sec_slide_wrap .slide-slide.sec_slide_img{
        height: 20rem;
    }
    .sec02_img_wrap img{
        width: 27.3rem;
        height: 35rem;
    }
    .dot_txt::before{
        bottom: -.5rem;
    }
    .sec02_img_wrap img:nth-child(2){
        top: calc((50% - 25rem) + 10rem);
    }
    .sec03_img_wrap{
        transform: translateY(-10rem);
    }
    .brand_list{
        width: 45rem;
    }
    .brand_pop div:nth-child(1){
        left: calc(50% - 19rem);
    }
    .brand_pop div:nth-child(3){
        left: calc(50% - 15rem);
    }
    .sec_arrow{
        top: calc(50% + 19rem);
        left: -8rem;
    }
    .contect_txt{
        font-size: 3rem;
    }
    .contect_sub{
        font-size: 2rem;
    }
    .contect_txt_wrap > div::after{
        width: 4rem;
        height: 4rem;
    }
    .contect_txt_wrap{
        padding-left: 4.5rem;
    }
    .visual_qr_pop{
        display: none;
    }
}