@charset "utf-8";

* {
    box-sizing: border-box;
}

*::-webkit-scrollbar {
    width: 0px;
    height: 0px;
}

*::-webkit-scrollbar-thumb {
    height: 25%;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 10px;
}

*::-webkit-scrollbar-track {
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.1);
}

html,
body {
    font-family: "Pretendard";
    width: 100%;
    height: 100%;
}

a {
    text-decoration: none;
}

.wrap {
    position: relative;
    width: 100%;
    height: 100%;
}

header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 101;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 64px;
    padding: 15px 55px;
    background: rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
    transition: all 0.3s;
}

header.move {
    background: #fff;
    box-shadow: 0px 0px 6px rgba(51, 51, 51, 0.2);
}

header.mn{
    background:#fff;
}

.logo {
    width: auto;
    height: 34px;
}

.logo img {
    width: auto;
    height: 34px;
    display: none;
}

.logo img:first-child{
    display:block;
}

header.move .logo img:first-child,
header.mn.move .logo img:first-child,
header.mn .logo img:first-child {
    display: none;
}

header.move .logo img:last-child,
header.mn.move .logo img:last-child,
header.mn .logo img:last-child {
    display: block;
}

.gnb-wrap {
    width: 40%;
}

.gnb-wrap ul {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.gnb-wrap ul li {
    font-size: 18px;
    line-height: 22px;
    font-weight: 500;
    color: #fff;
    cursor: pointer;
}

.move .gnb-wrap ul li {
    color: rgba(51, 51, 51, 0.8);
}

.gnb-wrap ul li:hover,
.gnb-wrap ul li.on {
    color: #50C59C;
}

.btn-mn{
    display:none;
    width:26px;
    height:20px;
    background:url(/resource/img/btn-mn-open.png) 50% 50% / 100% auto no-repeat;
    transition: all 0.3s ease;
    cursor:pointer;
}

header.mn .btn-mn,
header.move.mn .btn-mn{
    display:block;
    width: 33px;
    height: 33px;
    background:url(/resource/img/btn-mn-close.png) 50% 50% / 100% auto no-repeat;
}

header.move .btn-mn{
    background:url(/resource/img/btn-mn-open-b.png) 50% 50% / 100% auto no-repeat;
}

header.mn .gnb-wrap{
    position:fixed;
    top:64px;
    left:0;
    display:flex;
    width: 100vw;
    height: calc(100vh - 64px);
    background:#fff;
    border-top:1px solid rgba(0,0,0,0.1);
}

header.mn .gnb-wrap ul{
    flex-direction:column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 64px;
    padding: 60px 30px;
}

header.mn .gnb-wrap ul li{
    font-size:24px;
    line-height:29px;
    font-weight:500;
    color:#333;
}

.visual-section {
    position: relative;
    width: 100%;
    height: 100%;
}

.main-visual-box {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.main-visual-box img {
    width: 100%;
    max-height: 100%;
}

.swiper-horizontal>.swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
    width: auto;
    bottom: 90px;
    top: auto;
    left: 0;
}

.swiper-pagination-bullet {
    width: 40px;
    height: 3px;
    border-radius: 0;
    background: #B1B1B1;
    opacity: 1;
}

.swiper-pagination-bullet-active {
    background: #34D9B2;
}

.visual-comment-box {
    position: absolute;
    top: 245px;
    left: 270px;
    color: #fff;
    z-index: 100;
}

.visual-comment-box>p {
    color: #fff;
}

.visual-comment-box>p:first-of-type {
    font-size: 130px;
    line-height: 156px;
    font-weight: 400;
    margin: 0 0 14px;
}

.visual-comment-box>p:first-of-type>span {
    font-weight: 700;
}

.visual-comment-box>p:nth-of-type(2) {
    font-size: 28px;
    line-height: 26px;
    font-weight: 700;
    margin: 0 0 26px;
}

.visual-comment-box>p:last-of-type {
    font-size: 18px;
    line-height: 28px;
    font-weight: 500;
    text-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2);
    margin: 0 0 90px;
}

.visual-btn {
    display: block;
    width: 150px;
    padding: 16px 26px;
    background: rgba(255, 255, 255, 0.01);
    border: 1px solid #fff;
    font-size: 16px;
    line-height: 19px;
    font-weight: 500;
    color: #fff;
    cursor: pointer;
    transition: all 0.2s ease;
}

.visual-btn:hover {
    background: rgba(52, 217, 178, 0.5);
}

.fullpage-pagination {
    position: fixed;
    right: 20px;
    top: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 32px;
    z-index: 1000;
}

.fullpage-pagination span {
    position: relative;
    display: block;
    width: 8px;
    height: 8px;
    background: rgba(129, 129, 129, 0.6);
    border-radius: 100%;
    cursor: pointer;
}

.fullpage-pagination .active {
    background: #42AFA6;
}

.fullpage-pagination .active:after {
    content: '';
    display: block;
    width: 22px;
    height: 22px;
    border: 1px solid #818181;
    border-radius: 100%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

footer {
    width: 100%;
    height: 240px;
    padding: 50px 260px 70px;
    background: #1a1a1a;
    font-size: 15px;
    line-height: 18px;
    font-weight: 400;
    color: #999;
}

address {
    display: flex;
    align-items: center;
    gap: 28px;
    margin: 0 0 15px;
}

address span {
    position: relative;
}

address span:after {
    content: '';
    position: absolute;
    width: 1px;
    height: calc(100% - 2px);
    background: #999;
    right: -14px;
    top: 50%;
    transform: translateY(-50%);
}

.btn-top {
    position: fixed;
    right: 140px;
    bottom: 30px;
    z-index: 100;
    display: block;
    width: 60px;
    height: 60px;
    background: url(../img/btn-top.png) 50% 50% / 50% auto no-repeat, #50C59C;
    cursor: pointer;
    opacity: 0;
    transition: all 0.3s;
}

.btn-top.show {
    opacity: 1;
}

.contact-us {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 100px 250px 90px;
    background: url(../img/img-inquire-bg.png) 50% 50% / cover no-repeat;
    color: #fff;
    margin: 150px 0 0;
}

.contact-us>div {
    font-size: 26px;
    line-height: 54px;
    letter-spacing: -0.02em;
    font-weight: 400;
}

.contact-us>div span {
    font-weight: 700;
}

.btn-inq {
    align-self: flex-end;
    font-family: "NotoSans KR";
    font-size: 16px;
    line-height: 23px;
    font-weight: 500;
    padding: 10px 50px;
    border-radius: 100px;
    border: 1px solid #fff;
    cursor: pointer;
}

footer>div:last-of-type>div {
    display: flex;
    align-items: center;
    gap: 28px;
}

footer a {
    position: relative;
    display: block;
}

footer a:after {
    content: '';
    position: absolute;
    width: 1px;
    height: calc(100% - 2px);
    background: #999;
    right: -14px;
    top: 50%;
    transform: translateY(-50%);
}

address span:last-of-type:after,
footer a:last-of-type:after {
    display: none;
}

address+div {
    padding: 0 0 20px;
    margin: 0 0 10px;
    border-bottom: 1px solid #424242;
}

.content-box.full-item {
    width: 100%;
    height: 100vh;
    padding: 120px 250px;
    text-align: center;
}

.content-box.full-item:nth-of-type(2) {
    background: url(../img/img-main-bg01.png) 6% 42% / 650px auto no-repeat;
}

.content-box.full-item:nth-of-type(3) {
    background: url(../img/img-main-bg02.png) 50% 50% / cover no-repeat;
}

.content-box.full-item:nth-of-type(4) {
    background: url(../img/img-main-bg03.png) 50% 50% / cover no-repeat, linear-gradient(180deg, #50c59c 24%, #feffff 100%), linear-gradient(118.13deg, #ffffff 31.22%, #bdfcfe 88.66%);
}

.content-box.full-item:nth-of-type(5) {
    background: url(../img/img-main-bg04.png) 100% 20% / 493px auto no-repeat, url(../img/img-main-bg05.png) 6% 90% / 493px auto no-repeat;
    height: 100%;
    padding-bottom: 0;
}

.full-item>span:first-of-type {
    display: block;
    font-size: 18px;
    line-height: 22px;
    font-weight: 600;
    color: #50c59c;
    margin: 0 0 16px;
}

.content-box.full-item:nth-of-type(4)>span:first-of-type,
.content-box.full-item:nth-of-type(4) .business-intro-title {
    color: #fff;
}

.business-intro-title {
    font-size: 48px;
    line-height: 58px;
    font-weight: 500;
    color: #000;
    margin: 0 0 100px;
}

.business-intro-title span {
    font-weight: 700;
}

.content-box.full-item:nth-of-type(3) .business-intro-title {
    color: #fff;
    margin: 0 0 80px;
}

.content-box.full-item:nth-of-type(5) .business-intro-title {
    margin: 0 0 50px;
}

.solution-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.solution-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    width: calc((100% - 96px)/4);
    height: 400px;
    border-radius: 15px;
    padding: 60px;
}

.solution-box:nth-of-type(1) {
    background: url(../img/img-intro-01.png) 50% 50% / contain no-repeat;
}

.solution-box:nth-of-type(2) {
    background: url(../img/img-intro-02.png) 50% 50% / contain no-repeat;
}

.solution-box:nth-of-type(3) {
    background: url(../img/img-intro-03.png) 50% 50% / contain no-repeat;
}

.solution-box:nth-of-type(4) {
    background: url(../img/img-intro-04.png) 50% 50% / contain no-repeat;
}

.solution-box p {
    font-size: 28px;
    line-height: 34px;
    letter-spacing: -0.02em;
    color: #fff;
    text-align: left;
    word-break: keep-all;
}

.solution-box span {
    width: 27px;
    height: 27px;
    cursor: pointer;
}

.solution-box span img {
    max-width: 100%;
    height: auto;
}

.solution-wrap.type02 {
    margin: 0 0 80px;
}

.solution-box.type02 {
    width: calc((100% - 144px) / 3);
    color: #fff;
    background: none;
    align-items: center;
    justify-content: flex-start;
    height: auto;
    border-radius: 0;
    padding: 0;
}

.solution-box.type02>div:first-of-type {
    width: 50%;
    height: 120px;
    margin: 0 0 50px;
}

.solution-box.type02>div:first-of-type img {
    width: auto;
    height: 100%;
}

.solution-box.type02 p {
    font-size: 24px;
    line-height: 29px;
    font-weight: 700;
    margin: 0 0 15px;
}

.solution-box.type02>div:last-of-type {
    font-size: 16px;
    line-height: 24px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.8);
}

.btn-more {
    font-size: 16px;
    line-height: 19px;
    font-weight: 500;
    cursor: pointer;
    color: #fff;
    padding: 16px 26px;
    border: 1px solid #fff;
}

.content-box.full-item:nth-of-type(4) .btn-more {
    color: #50C59C;
    border-color: #50C59C;
}

.news-wrap {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 90px;
    overflow: hidden;
}

.news-box {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: calc((100% - 184px) / 3);
    height: 400px;
    background: #fff;
    border-radius: 10px;
    padding: 40px;
}

.news-thumbnail {
    width: 100%;
    height: 340px;
    align-self: center;
    background: url(../img/img-board-thumb-none.png) 50% 50% / contain no-repeat;
}

.news-title {
    font-size: 20px;
    line-height: 24px;
    font-weight: 700;
    color: #616161;
}

.news-date {
    font-size: 14px;
    line-height: 24px;
    font-weight: 500;
    color: #616161;
}

.contact-box {
    display: flex;
    align-items: center;
}

.contact-box>div {
    width: 50%;
}

#maps {
    height: 430px;
}

.contact-info>div:first-of-type {
    width: 100%;
    height: 180px;
    padding: 30px 0 40px;
    background: #50C59C;
}

.contact-info>div:first-of-type span {
    display: block;
    font-size: 28px;
    line-height: 34px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 12px;
}

.contact-info>div:first-of-type p {
    font-size: 54px;
    line-height: 65px;
    font-weight: 700;
    color: #fff;
}

.contact-info>div:last-of-type {
    width: 100%;
    height: 250px;
    padding: 50px 60px;
    background: #F1F1F1;
}

.contact-info>div:last-of-type>p {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    width: 100%;
    margin: 0 0 30px;
}

.contact-info>div:last-of-type>p:last-of-type {
    margin: 0;
}

.contact-info>div:last-of-type>p>span:first-of-type {
    font-size: 20px;
    line-height: 23px;
    font-weight: 700;
    color: #333;
}

.contact-info>div:last-of-type>p>span:first-of-type span {
    font-size: 40px;
    border-radius: 100%;
    color: #50C59C;
    margin: 0 0 0 8px;
}

.contact-info>div:last-of-type>p:first-of-type>span:first-of-type span {
    margin: 0 12px 0 8px;
}

.contact-info>div:last-of-type>p>span:last-of-type {
    font-size: 20px;
    line-height: 23px;
    font-weight: 500;
    color: #333
}

.menu-list {
    text-align: center;
}

.menu-list a {
    color: #fff;
    font-size: 40px;
    line-height: 54px;
    font-weight: 600;
}

.menu-list a:hover {
    color: #50C59C;
}

@media screen and (max-width: 1024px) {
    .visual-comment-box {
        left: 60px;
    }

    .main-visual-box img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .content-box.full-item {
        padding: 120px 60px;
    }

    .solution-wrap {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 20px;
    }

    .solution-box {
        height: 240px;
        width: calc(50% - 10px);
        padding: 20px 40px;
        background-size: cover !important;
    }

    .solution-wrap.type02 {
        gap: 40px;
        align-items: flex-start;
    }

    .solution-box.type02 {
        width: calc(33.33% - (80px / 3));
    }

    .solution-box.type02 p {
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        height: 58px;
    }

    .solution-box.type02>div:last-of-type {
        word-break: keep-all;
    }

    .news-wrap {
        justify-content: flex-start;
        gap: 40px;
    }

    .news-box {
        width: calc((100% - 80px) / 3);
    }

    .contact-box {
        flex-direction: column;
    }

    .contact-box>div {
        width: 100%;
    }

    .contact-info {
        display: flex;
    }

    .contact-info>div:last-of-type {
        padding: 20px;
        height: 180px;
    }

    .contact-info>div:last-of-type>p {
        align-items: flex-start;
    }

    .contact-info>div:last-of-type>p>span:first-of-type {
        display: block;
        min-width: 75px;
    }

    .contact-info>div:last-of-type>p>span:last-of-type {
        display: block;
        word-break: keep-all;
        text-align: left;
        line-height: 30px;
    }

    .contact-us {
        margin: 50px 0 0;
        padding: 50px 100px 40px;
    }

    footer {
        padding: 50px 100px 70px;
    }

    .btn-top {
        right: 60px;
    }
}

@media screen and (max-width:768px) {
    .gnb-wrap {
        width: 50%;
    }

    .contact-info>div:first-of-type p {
        font-size: 38px;
        line-height: 49px;
    }

    .contact-info>div:last-of-type>p {
        margin: 0 0 10px;
    }

    .contact-us {
        margin: 0;
        padding: 20px 40px;
    }

    footer {
        padding: 50px 40px 30px;
    }

    address {
        flex-wrap: wrap;
        row-gap: 6px;
    }

    .fullpage-pagination {
        display: none;
    }

    address span:nth-of-type(3):after {
        display: none;
    }
}

@media screen and (max-width:640px) {
    .gnb-wrap {
        width: 60%;
    }

    .visual-comment-box {
        width: 70%;
        word-break: keep-all;
    }

    .visual-comment-box>p:first-of-type {
        font-size: 80px;
        line-height: 96px;
    }

    .content-box.full-item {
        padding: 60px 20px;
    }

    .content-box.full-item:nth-of-type(2) {
        background-position: center center;
    }

    .solution-box p {
        font-weight: 700;
    }

    .business-intro-title {
        word-break: keep-all;
    }

    .solution-box {
        width: 100%;
        padding:40px;
    }

    .solution-wrap.type02 {
        flex-direction: column;
        gap: 60px;
    }

    .solution-box.type02 {
        width: 100%;
    }

    .solution-box.type02>div:first-of-type {
        margin: 0 0 30px;
    }

    .solution-box.type02 p {
        height: auto;
    }

    .business-intro-title {
        font-size: 34px;
        line-height: 44px;
        font-weight: 500;
    }

    .contact-info {
        flex-direction: column;
    }

    .content-box.full-item:nth-of-type(5) {
        padding-bottom: 60px;
    }
}

@media screen and (max-width:480px) {
    .gnb-wrap{
        display:none;
    }

    .btn-mn{
        display:block;
    }

    .contact-us {
        flex-direction: column;
    }

    .contact-info>div:first-of-type,
    .contact-info>div:last-of-type{
        height:auto;
        padding:20px;
    }

    address span:nth-of-type(2):after {
        display: none;
    }
}

@media screen and (max-width:420px){
    .contact-us{
        padding: 20px;
        gap:10px;
    }
    .contact-us>div{
        font-size: 24px;
        line-height: 36px;
    }

    .contact-us>div:first-of-type{
        align-self: flex-start;
    }

    footer{
        padding: 50px 20px 30px;
    }
}

@media screen and (max-width:360px){
    header{
        padding:15px 20px;
    }

    .visual-comment-box{
        width:calc(100% - 40px);
        left:20px;
    }

    .visual-comment-box>p:last-of-type{
        word-break:keep-all;
    }

    .contact-us>div{
        font-size:22px;
        line-height: 34px;
    }

    .btn-top{
        right:20px;
        bottom: 20px;
        width: 40px;
        height: 40px;
    }
}

@media screen and (max-width:320px){
    .visual-comment-box>p:nth-of-type(2){
        line-height:34px;
    }

    .solution-box{
        padding:20px;
    }

    .contact-info>div:first-of-type p{
        font-size:32px;
        line-height:43px;
    }

    .contact-us>div:first-of-type{
        font-size: 20px;
        line-height: 32px;
        letter-spacing: -0.05em;
    }
}