.sub-visual{
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.30) 0%, rgba(0, 0, 0, 0.30) 100%), url(../img/sub/company/visual.jpg) lightgray 50% / cover no-repeat;
}

.company1{
    position: relative;
}

.flow-txt{
    position: sticky;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: 100%;
    overflow: hidden;
    pointer-events: none;
    z-index: 0;
}

.flow-inner{
    display: flex;
    width: max-content;
    animation: flow 40s linear infinite;
}

.flow-inner span{
    color: rgba(20, 103, 167, 0.10);
    text-align: center;
    font-family: var(--font-mont);
    font-size: 136px;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
}

@keyframes flow {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

.text-section{
    position: relative;
    height: 300vh;
}

.target-text {
    position: sticky;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    color: #111;
    text-align: center;
    font-size: 80px;
    font-weight: 700;
    line-height: normal;
}

.company2 .content{
    display: flex;
    gap: 20px;
}

.company2 .content .box{
    width: 50%;
    height: 400px;
    border-radius: 20px;
    padding: 50px;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
}

.company2 .content .box:first-of-type{
    background-image: url(../img//sub/company/mission_img.jpg);
}

.company2 .content .box:last-of-type{
    background-image: url(../img//sub/company/vision_img.jpg);
}

.company2 .content .box .txt{

}

.company2 .content .box .txt h4{
    color: #FFF;
    font-family: var(--font-suit);
    font-size: 30px;
    font-weight: 800;
    margin-bottom: 20px;
}

.company2 .content .box .txt p{
    color: #FFF;
    font-size: 22px;
    font-weight: 400;
}

.value-swiper{
    width: 100%;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
    overflow: hidden;
}

.value-slide{
    width: 500px;
    height: 620px;
    border-radius: 20px;
    padding: 50px;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.value-slide1{
    background-image: url(../img/sub/company/slide1.png);
}
.value-slide2{
    background-image: url(../img/sub/company/slide2.png);
}
.value-slide3{
    background-image: url(../img/sub/company/slide3.png);
}

.value-slide p{
    color: #FFF;
    font-size: 30px;
    font-weight: 700;
    line-height: normal;
}
.slide-hide{
    display:flex;
}
.company3{
    background-image: url(../img/sub/company/slide_bg.jpg);
    background-size: cover;
}

.company3 .content{
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding-left: var(--pad2);
    gap: 94px;
    overflow: hidden;
}

.company3 .content .txt{
    white-space: nowrap;
}

.company3 .content .txt h4{
    color: #FFF;
    font-family: var(--font-suit);
    font-size: 40px;
    font-weight: 900;
    line-height: 130%; 
    margin-bottom: 20px;
}

.company3 .content .txt p{
    color: #FFF;
    font-size: 24px;
    font-weight: 400;
    line-height: 140%; 
}

.company4 .sub-title{
    text-align: center;
}

.company4 .list{
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.company4 .list .box{
    width: 100%;
    display: flex;
    border-radius: 20px;
    overflow: hidden;

}

.company4 .list .box .img{
    max-width: 460px;
    width: 100%;
}

.company4 .list .box .img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.company4 .list .box .txt{
    width: 100%;
    padding: 60px 56px;
    border: 1px solid #ddd;
    border-left: 0;
    border-top-right-radius: 20px;
    border-bottom-right-radius: 20px;
}

.company4 .list .box .txt .name{
    display: flex;
    align-items: flex-end;
    margin-bottom: 40px;
}

.company4 .list .box .txt .name p{
    color: #111;
    font-size: 30px;
    font-weight: 700;
    line-height: normal;
    margin-right: 15px;
}

.company4 .list .box .txt .name span{
    color: #111;
    font-family: var(--font-suit);
    font-size: 20px;
    font-weight: 700;
    line-height: normal;
}

.company4 .list .box .txt .history{
    margin-bottom: 30px;
}

.company4 .list .box .txt .history:last-of-type{
    margin-bottom: 0;
}

.company4 .list .box .txt .history p{
    color: var(--main-color);
    font-size: 20px;
    font-weight: 700;
    line-height: 150%; 
}
.company4 .list .box .txt .history ul{
    padding-left: 15px;
}
.company4 .list .box .txt .history ul li{
    list-style: disc;
    margin-left: 15px;
    color: #111;
    font-size: 18px;
    font-weight: 400;
    line-height: 150%; 
}

.company4 .list .box .txt .history ul li.depth2{
    list-style: none;
}

.company5{
    background-color: #FAFAFA;;
}

.company5 .content{
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: stretch;
}

.company5 .content .box{
    width: 50%;
    border-radius: 20px;
    overflow: hidden;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.company5 .content .box .img{
    width: 100%;
    height: 400px;
    background-size: contain;
    background-position: center bottom;
    background-repeat: no-repeat;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    background-color: #eee;
}

.company5 .content .box .img img{
    max-width: 70%;
}

.company5 .content .box .txt{
    flex:1;
    padding: 60px 56px;
    border: 1px solid #ddd;
    border-top: 0;
    border-bottom-right-radius: 20px;
    border-bottom-left-radius: 20px;
    background-color: #ffffff;
}

.company5 .content .box .txt .name{
    display: flex;
    align-items: flex-end;
    margin-bottom: 40px;
}

.company5 .content .box .txt .name.eng{
align-items: flex-start;
    flex-direction: column;
}

.company5 .content .box .txt .name p{
    color: #111;
    font-size: 30px;
    font-weight: 700;
    line-height: normal;
    margin-right: 15px;
}

.company5 .content .box .txt .name span{
    color: #111;
    font-family: var(--font-suit);
    font-size: 20px;
    font-weight: 700;
    line-height: normal;
}

.company5 .content .box .txt .history{
    margin-bottom: 10px;
    display: flex;
}

.company5 .content .box .txt .history:last-of-type{
    margin-bottom: 0;
}

.company5 .content .box .txt .history p{
    color: var(--main-color);
    font-size: 20px;
    font-weight: 700;
    line-height: 150%;   
    margin-right: 10px;
}
.company5 .content .box .txt .history ul{
    padding-left: 15px;
}
.company5 .content .box .txt .history ul li{
    list-style: disc;
    margin-left: 15px;
    color: #111;
    font-size: 18px;
    font-weight: 400;
    line-height: 150%; 
}


.history-wrap .content{
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

.history-wrap .content .left{
    position: relative;
    width: 50%;
}

.history-wrap .content .left .left-content{
    position: sticky;
    top:40px;
}

.history-wrap .title{
    display: flex;
    flex-direction: column;
    margin-bottom: 40px;
}

.history-wrap .title p{
    color: var(--main-color);
    font-size: 20px;
    font-weight: 600;
    line-height: 140%; 
    margin-bottom: 20px;
}

.history-wrap .title span{
    color: #111;
    font-size: 40px;
    font-weight: 700;
    line-height: 140%; 
}


.history-wrap .content .img{
    width: 100%;
}

.history-wrap .content .img img{    
    max-width: 610px;
    width: 100%;
    border-radius: 20px;
    overflow: hidden;
}

.history-wrap .content .history{
    position: relative;
    width: 50%;
    display: flex;
    flex-direction: column;
    gap: 40px;
    margin-top: 140px;
}

.history-wrap .content .history::before{
    position: absolute;
    left: 4.5px;
    top:0;
    width: 1px;
    height: var(--line-height);
    content: "";
    display: block;
    border: 1px dashed var(--main-color);

}

.history-wrap .content .history .list{
    position: relative;
    padding-left: 60px;
}

.history-wrap .content .history .list::before{
    position: absolute;
    top:0;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: var(--main-color);
    content: '';
}

.history-wrap .content .history .list .year{
    display: block;
    color: #111;
    font-size: 30px;
    font-weight: 700;
    line-height: normal;
    margin-bottom: 24px;
}

.history-wrap .content .history .list .year.show{
    color: var(--main-color);
}

.history-wrap .content .history .list ul{
    padding-left: 15px;
}

.history-wrap .content .history .list ul li{
    list-style: disc;
    margin-left: 15px;
    color: #585858;
    font-size: 18px;
    font-weight: 400;
    line-height: 150%;
}

.company7 .sub-title{
    text-align: center;
}

.map-wrap{
    display: flex;
    flex-direction: column;
    gap:30px;
}

.map-wrap .box{
    border: 1px solid #ddd;
    border-radius: 20px;
    padding: 50px;
    display: flex;
    justify-content: space-between;
}

.map-wrap .box .name{
    width: 24%;
    color: #111;
    font-size: 30px;
    font-weight: 700;
    line-height: normal;
}

.map-wrap .box .content{
    width: 100%;
}

.map-wrap .box .content .top{
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.add-box{
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.add-box > .add{
    color: #111;
    font-size: 24px;
    font-weight: 600;
    line-height: normal;
}

.add-box .call{
    display: flex;
    align-items: center;
    gap: 10px ;
}

.add-box .call p{
    color: #585858;
    font-size: 18px;
    font-weight: 400;
    line-height: normal;
}

.trigger{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap:5px; 
    cursor: pointer;
}

.trigger img{
    width: 45px;
}

.trigger p{
    color: #585858;
    font-size: 18px;
    font-weight: 500;
    line-height: normal;
}

.trigger.active p{
    color: var(--main-color);
}

.trigger:hover img {
    content: url("../img//sub/company/map_on.png");
}

.trigger:hover p {
    color: var(--main-color);
    font-weight: 700;
}

.map-box{
    width: 100%;
    height: 0;
    border-radius: 20px;
    overflow: hidden;
    margin-top: 40px;
    opacity: 0;
    transition: all .4s;
}

.map-box iframe{
    height: 450px;
}

.custom-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 120px;
  height: 120px;
  background: var(--main-color);
  color: #ffffff;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  border-radius: 50%;
  pointer-events: none;
  transform: translate(-100%, -100%);
  user-select: none;
  z-index: 4444;
  gap: 20px;
  display: flex;
}

.prev-arrow{
  width: 10px;
  height: 20px;
  background: url(../img/arrow_prev.png);
  background-size: cover;
  background-position: center;
}

.next-arrow{
  width: 10px;
  height: 20px;
  background: url(../img/arrow_next.png);
  background-size: cover;
  background-position: center;
}


@media screen and (max-width:1280px) {
    .target-text{
        font-size: 70px;
    }
    .flow-inner span{
        font-size: 106px;
    }
    .company2 .content .box{
        height: 360px;
        padding: 40px;
    }
    .company2 .content .box .txt h4{
        font-size: 24px;
    }
    .company2 .content .box .txt p{
        font-size: 20px;
    }
    .company3 .content .txt h4{
        font-size: 30px;
    }
    .company3 .content .txt p{
        font-size: 20px;
    }
    .value-slide{
        padding: 40px;
        height: 500px;
    }
    .value-slide p{
        font-size: 24px;
    }
    .company4 .list .box .img{
        max-width: 32%;
    }
    .company4 .list .box .txt{
        padding: 50px 46px;
    }
    .company4 .list .box .txt .name{
        margin-bottom: 30px;
    }
    .company4 .list .box .txt .history{
        margin-bottom: 20px;
    }
    .company4 .list .box .txt .name p{
        font-size: 24px;
    }
    .company4 .list .box .txt .name span{
        font-size: 18px;
    }
    .company4 .list .box .txt .history p{
        font-size: 18px;
    }
    .company4 .list .box .txt .history ul li{
        font-size: 16px;
    }
    .company5 .content .box .img{
        height: 350px;
    }
    .company5 .content .box .txt{
        padding: 50px 46px;
    }
    .company5 .content .box .txt .name p{
        font-size: 24px;
    }
    .company5 .content .box .txt .name span{
        font-size: 18px;
    }
    .company5 .content .box .txt .history p{
        font-size: 18px;
    }
    .company5 .content .box .txt .history ul li{
        font-size: 16px;
    }
    .history-wrap .content .history{
        margin-top: 115px;
    }
    .history-wrap .title{
        margin-bottom: 30px;
    }
    .history-wrap .title p{
        font-size: 18px;
        margin-bottom: 18px;
    }
    .history-wrap .title span{
        font-size: 30px;
    }
    .history-wrap .content .history .list{
        padding-left: 40px;
    }
    .history-wrap .content .history .list .year{
        font-size: 24px;
    }
    .history-wrap .content .history .list ul li{
        font-size: 16px;
    }
    .map-wrap .box{
        padding: 40px;
    }
    .map-wrap .box .name{
        font-size: 24px;
        width: 20%;
        margin-right: 20px;
    }
    .add-box > .add{
        font-size: 20px;
    }
    .add-box .call p{
        font-size: 16px;
    }
    .trigger img{
        width: 40px;
    }
    .trigger p{
        font-size: 16px;
    }
    .map-box iframe{
        height: 400px;
    }
}

@media screen and (max-width:1200px) {
    .value-slide{
        height: 450px;
    }
}

@media screen and (max-width:1024px) {
    .value-slide{
        height: 400px;
    }
}

@media screen and (max-width:991px){
    .company2 .content{
        flex-direction: column;
    }
    .company2 .content .box{
        width: 100%;
        height: 300px;
    }
    .company3 .content{
        flex-direction: column;
        gap: 40px;
        padding: 0 var(--pad2);
    }
    .swiper-wrapper{
        flex-direction: column;
        gap:20px;
    }

    .value-slide{
        width: 100%;
        height: 300px;
    }
    .slide-hide{
        display:none;
    }
    .company4 .list{
        align-items: center;
    }
    .company4 .list .box .txt {
        padding: 40px 36px;
    }
    .company5 .content .box .txt{
        padding: 40px 36px;
    }
    .company5 .content .box .txt .name{
        flex-direction: column;
        align-items: flex-start;
    }
    .company5 .content .box .txt .name p{
        margin-right: 0;
        margin-bottom: 10px;
    }
    .map-box iframe{
        height: 350px;
    }
}

@media screen and (max-width:768px) {
    .target-text{
        font-size: 60px;
    }
    .flow-inner span{
        font-size: 76px;
    }
    .company2 .content .box{
        height: 260px;
        padding: 30px;
    }
    .company2 .content .box .txt h4{
        font-size: 20px;
    }
    .company2 .content .box .txt p{
        font-size: 18px;
    }
    .value-slide{
        height: 260px;
        padding: 30px;
    }
    .company3 .content .txt h4{
        font-size: 20px;
    }
    .company3 .content .txt p{
        font-size: 18px;
    }
    .value-slide p{
        font-size: 20px;
    }
    .company4 .list .box .txt{
        padding: 30px 26px;
    }
    .company4 .list .box .txt .name p{
        font-size: 22px;
    }
    .company4 .list .box .txt .name span{
        font-size: 16px;
    }
    .company4 .list .box .txt .history p{
        font-size: 16px;
    }
    .company4 .list .box .txt .history ul li{
        font-size: 14px;
    }
    .company5 .content .box .txt{
        padding: 30px 26px;
    }
    .company5 .content .box .txt .name p{
        font-size: 20px;
    }
    .company5 .content .box .txt .name span{
        font-size: 16px;
    }
    .company5 .content .box .txt .history p{
        font-size: 16px;
    }
    .company5 .content .box .txt .history ul li{
        font-size: 14px;
    }
    .history-wrap .content .left{
        width: 100%;
    }
    
    .history-wrap .title{
        margin-bottom: 20px;
    }
    .history-wrap .title p{
        font-size: 16px;
        margin-bottom: 16px;
    }
    .history-wrap .title span{
        font-size: 24px;
    }
    .history-wrap .content .history{
        margin-top: 0;
    }
    .history-wrap .content .history .list{
        padding-left: 30px;
    }
    .history-wrap .content .history .list .year{
        font-size: 20px;
    }
    .history-wrap .content .history .list ul{
        padding-left: 10px;
    }
    .history-wrap .content .history .list ul li{
        font-size: 14px;
    }
    .history-wrap .content{
        flex-direction: column;
    }
    .history-wrap .content .img{
        width: 100%;
    }
    .history-wrap .content .history{
        width: 100%;
    }
    .map-wrap .box{
        padding: 30px;
        flex-direction: column;
    }
    .map-wrap .box .name{
        font-size: 20px;
        margin-right: 0;
        margin-bottom: 10px;
        width: 100%;
    }
    .add-box > .add{
        font-size: 18px;
    }
    .add-box .call p{
        font-size: 14px;
    }
    .trigger img{
        width: 30px;
    }
    .trigger p{
        font-size: 14px;
    }
    .map-box iframe{
        height: 300px;
    }
    
}

@media screen and (max-width:700px) {
    .company4 .list .box{
        flex-direction: column;
        width: 80%;
    }
    .company4 .list .box .img{
        max-width: 100%;
    }
    .company4 .list .box .txt{
        border-left: 1px solid #ddd;
        border-top-right-radius:0;
        border-bottom-left-radius:20px;
    }
    .company5 .content{
        flex-direction: column;
        align-items: center;
    }
    .company5 .content .box{
        width: 80%;
    }
}

@media screen and (max-width:600px) {
    .target-text{
        font-size: 50px;
    }
    .company4 .list .box .txt .name{
        flex-direction: column;
        align-items: flex-start;
    }
    .company4 .list .box .txt .name p{
        margin-right: 0;
        margin-bottom: 10px;
    }
}

@media screen and (max-width:500px) {
    .target-text{
        font-size: 40px;
    }
    .company4 .list .box{
        width: 100%;
    }
    .company5 .content .box{
        width: 100%;
    }
    .map-wrap .box{
        padding: 20px;
    }
    .add-box > .add{
        font-size: 16px;
    }
}