#main{position: relative; }
#main::before{content: ''; width: 1px; height: 100%; background: rgba(255,255,255,0.5); position: absolute; top: 0; right: 10rem; z-index: 8;}
#section1{overflow: hidden;}
.msec1{position: relative;}
.msec1 .swiper-slide{overflow:hidden}
.msec1 .swiper-slide .slogan{position:absolute; z-index:10; top:50%; left:50%; transform: translateX(-50%); width:100%; padding:0 2rem; max-width:var(--container); }
.msec1 .swiper-slide .slogan p{color:#fff; font-weight: bold; position: relative; text-shadow: 0 0 0.5rem rgba(0,0,0,0.1);}
.msec1 .swiper-slide .slogan .text1{top:0; opacity:0; font-size:4.8rem; font-weight: bold; transition:0.5s 0.5s}
.msec1 .swiper-slide .slogan .text2{top:10px;opacity:0; filter: blur(10px); font-size:3rem; font-family: var(--font-eng);  transition:0.5s 1s}
.msec1 .swiper-slide .slogan .text3{top:10px;opacity:0; filter: blur(10px); font-size:2rem;  transition:0.5s 1s}


.msec1 .swiper-slide .bg{transform:scale(1.1);transition:10s; height:100vh; position: relative;}
.msec1 .swiper-slide .bg::before{content: ''; width: 100%; height: 100%; background: rgba(0,0,0,0.3); position: absolute; top: 0; left: 0;}
.msec1 .swiper-slide .bg img{width:100%; height: 100%; object-fit: cover;}

.msec1 .swiper-slide-active .bg{transform:scale(1)}
.msec1 .swiper-slide-active .slogan .text1{top:0;opacity:1; letter-spacing:normal;}
.msec1 .swiper-slide-active .slogan .text2{top:0;opacity:1; filter:blur(0)}
.msec1 .swiper-slide-active .slogan .text3{top:0;opacity:1; filter:blur(0)}

/*swiper*/
.msec1 .swiper-button-prev,
.msec1 .swiper-button-next{width: 5rem; height: 5rem; color:#fff; background: none; bottom:10rem; top:auto; font-size: 5rem; }

.msec1 .swiper-button-prev{left:auto; left: calc(80% - 5rem); }
.msec1 .swiper-button-next{left:auto;  left: 80%; right:0}
.msec1 .swiper-pagination{max-width:var(--container); font-weight: bold; padding:0 2rem; color:#fff; text-align: left; position: absolute; left: 50%; transform: translate(-50%);  bottom: 10rem;}

.msec1 .swiper-progress-bar {position:  absolute; left: 50%; transform: translate(-50%);; width:100%; max-width: var(--container); display: block; z-index: 1; height:.5rem; }
.msec1 .swiper-progress-bar .slide_progress-bar {position: absolute; height: .3rem; background:#fff; width:50rem; clear: both; opacity:1; bottom: 15rem; left: 50%; transform: translateX(-50%); right: 0; }
.msec1 .swiper-progress-bar .slide_progress-bar:after {position: absolute; top: 0; left: 0; background:var(--sub_color); height: 100%; width: 0; content: ""; transition: 0.1s width linear;}
.msec1 .swiper-progress-bar.active .slide_progress-bar {opacity: 1;}
.msec1 .swiper-progress-bar.animate .slide_progress-bar:after {transition: width linear;transition-delay: unset; width: 100%; transition-duration: 5s;}


/* pagenation */

/*.msec1 .swiper-pagination-bullet{opacity: 0.5; width: 15px; height: 15px; background: #fff; box-shadow: 0px 0px 3px #fff; }
.msec1 .swiper-pagination-bullet-active{background:#fff; opacity: 1;}
*/


.msec1 .swiper-pagination-bullet {
    background: transparent; width: 4rem; height: 4rem;
  }
  .msec1 .swiper-pagination-bullet-active .path {
    display: inline-block !important;
    stroke-dasharray: 1000;
    stroke-dashoffset: 0;
    -webkit-animation: dash linear 120s;
            animation: dash linear 120s;
    -webkit-animation-iteration-count: unset;
            animation-iteration-count: unset;
  }
  .path {
    display: none;
  }
  @-webkit-keyframes dash {
    from {
      stroke-dashoffset: 1000;
    }
    to {
      stroke-dashoffset: 0;
    }
  }
  @keyframes dash {
    from {
      stroke-dashoffset: 1000;
    }
    to {
      stroke-dashoffset: 0;
    }
  }


.right_btn{ writing-mode: vertical-lr; background: var(--sub_color); color:#fff; font-weight: bold; position: fixed; top: 10rem; right: 0; z-index: 9; width: 10rem; padding:5rem 0}
.right_btn a{display: flex; color:#fff; justify-content: center; align-items: center; width: 100%;}



/* 메인타이틀 */
.main_tit{margin-bottom: 3rem;}
.main_tit h2{font-weight: bold; font-size: 4.8rem; margin-bottom: 1rem;}
.main_tit h2 span{display: block; color:var(--sub_color); font-family: var(--font-eng); font-size:2rem}


/* 사업분야 */

.main_business{padding:10rem 0; overflow: hidden;}
.main_business .inner{overflow: hidden;}
.business_slide .swiper-slide{position: relative;}
.business_slide p{overflow: hidden; position: relative;}
.business_slide p::before{content: ''; width: 100%; height: 100%; background: rgba(0,0,0,0.3); position: absolute; top: 0; left: 0;}
.business_slide p img{transition: .5s;  width: 100%;}
.business_slide p img:hover{transform: scale(1.2);}
.business_slide dl{position: absolute; bottom: 5rem; left:5rem; color:#fff}
.business_slide dl dt{font-weight: bold; font-size: 3rem;}
.business_slide dl dd{font-family: var(--font-eng); font-size:1.4rem; font-weight: bold;}

.business_slide .swiper-scrollbar-drag{background: var(--sub_color);}
.swiper-container-horizontal > .swiper-scrollbar{position: relative; margin-top: 5rem;}

/*  제품 안내 */
.main_product{position: relative; padding:10rem }

.product_slide{position: relative; overflow: hidden;}
.product_slide .inner{overflow: hidden;}
.product_slide .swiper-slide{display: flex; gap:5rem; justify-content: space-between;}

.product_slide dl dt{font-family: var(--font-eng); text-transform: uppercase; font-size: 4.8rem; font-weight: 900;}
.product_slide dl dt p{font-family: var(--font-eng); text-transform: uppercase; font-weight: 900; font-size: 2rem; color:var(--sub_color)}
.product_slide dl dt span{display: block; font-size:2.8rem ; margin-bottom: 2rem;}
.product_slide dl dd{font-weight: bold; font-size: 3rem; font-weight: bold;}
.product_slide dl dd span{display: block; font-weight: bold; font-size: 2.4rem; margin-bottom: 5rem;}
.product_slide dl dd ul{display: flex; gap:3rem; margin-top: 5rem;}

.product_slide .swiper-pagination-bulle{width: 1.5rem; height: 1.5rem;}
.product_slide .swiper-pagination-bullet-active{background: var(--sub_color);}

/* 웨이브 애니메이션 */
.line-wave {
    position: absolute;
    width: 100%;
    height: 100vh;
    left: 0;
    top: 20%;
    overflow: visible;
    pointer-events: none;
    z-index: 1;
    
    --move-period: 30s;
    --scale-period: 25s;
    
    --color-one: hsla(202, 100%, 50%, 0.3);
    --color-two: hsla(207, 100%, 50%, 0.3);
    --color-three: hsla(204, 100%, 69%, 0.3);
  }
  
  .line-wave path {
    transform-origin: center;
    stroke-width: 1;
    fill: transparent;
  }
  
  .line-wave g:nth-child(1) {
    animation: move-across var(--move-period) infinite linear;
  }
  .line-wave g:nth-child(2) {
    animation: move-across calc(var(--move-period) * 1.2) calc(var(--move-period) * -0.33) infinite linear;
  }
  .line-wave g:nth-child(3) {
    animation: move-across calc(var(--move-period) * 1.4) calc(var(--move-period) * -0.66) infinite linear;
  }
  .line-wave g:nth-child(1) path {
    animation: scale-y calc(var(--scale-period)) calc(var(--scale-period) * -0.2) infinite ease;
    stroke: var(--color-one);
  }
  .line-wave g:nth-child(2) path {
    animation: scale-y calc(var(--scale-period) * 1.2) calc(var(--scale-period) * -0.53) infinite ease;
    stroke: var(--color-two);
  }
  .line-wave g:nth-child(3) path {
    animation: scale-y calc(var(--scale-period) * 1.1) calc(var(--scale-period) * -0.86) infinite ease;
    stroke: var(--color-three);
  }
  
  @keyframes scale-y {
    0% {
      transform: scaleY(30%);
    }
  
    50% {
      transform: scaleY(-30%);
    }
  
    100% {
      transform: scaleY(30%);
    }
  }
  
  @keyframes move-across {
    0% {
      transform: translateX(0);
    }
  
    100% {
      transform: translateX(-50%);
    }
  }




/* 메인 하단 */
.main_bottom{position: relative; height: 80rem; display: flex;}
.half{width:50%}
.bottom_company{position: relative;}
.bottom_company img{width: 100%; height: 100%; object-fit: cover;}
.bottom_company dl{position: absolute; top:5rem; left: 5rem; color:#fff;}
.bottom_company dl dt{font-weight: bold; font-size: 3rem;}
.bottom_company dl dd{font-weight: 900; font-size: 7rem; font-family: var(--font-eng);}

.bottom_map{height: 40rem;}
.bottom_box ul{display: flex;  height: 50%;}
.bottom_box ul li{flex:1}
.bottom_box ul li a{display: flex; flex-direction: column; justify-content: center; align-items: center; background: #12223A; color:#fff; width: 100%; height: 100%;}
.bottom_box ul li:last-child a{background:var(--main_color) ;}
.bottom_box ul li  i{display: block; margin-bottom: 2rem;}