@charset "utf-8";

.main-inner {width: calc(100% - 32px); max-width: 1420px; margin: 0 auto;}

.skyblue {color: var(--skyblue);}
.bg_skyblue {background-color: var(--skyblue);}

.skyblue {color: var(--skyblue);}
.bg_skyblue {background-color: var(--skyblue);}

.green {color: var(--green);}
.bg_green {background-color: var(--green);}

.yellow {color: var(--yellow);}
.bg_yellow {background-color: var(--yellow);}

.gray {color: var(--text3);}
.bg_gray {background-color: var(--text3);}

.checkbox-item input[type="checkbox"] {display:none;}
.checkbox-item input[type="checkbox"] + label{position: relative; cursor:pointer; font-size: 18px; font-weight: 500; color: var(--text1) !important; padding-left: 30px !important;}
.checkbox-item input[type="checkbox"] + label:before{position:absolute; content:""; display:inline-block; background-color: #fff; width:20px; height:20px; border:1px solid var(--line); left:0; top: 50%; transform: translate(0, -50%);}
.checkbox-item input[type="checkbox"]:checked + label:before{ content:""; background-color: #007BFF; border: 1px solid #007BFF; background-image: url('../img/chk.png'); background-repeat: no-repeat; background-position: 50%;}

.checkbox-item_w input[type="checkbox"] + label{color: #fff !important;}
.checkbox-item_w input[type="checkbox"] + label:before{background-color: transparent; border:1px solid #fff;}

section h2 {font-size: 32px; font-weight: 600;}
section h4 {font-size: 24px; font-weight: 500;}
section h5 {font-size: 22px; font-weight: 700;}
section:not(.main-visual) {padding: 100px 0;}
.tit-area {display: flex; flex-direction: column; row-gap: 14px; margin-bottom: 60px;}
.flex {display: flex; align-items: center; column-gap: 20px;}

.btn-area {display: flex; justify-content: center;}
.more-btn {display: flex; align-items: center; column-gap: 10px; padding: 10px 20px; font-size: 18px; font-weight: 500; border: 1px solid var(--text1); border-radius: 40px;}
.main-btn {background-color: var(--primary); color: #fff; font-size: 18px; font-weight: 600; border-radius: 10px; padding: 14px 50px;}

.main-visual {position: relative;}
.main-visual .swiper {height: 760px !important; border-radius: 0 0 0 60px;}
.main-visual .swiper .swiper-slide {position: relative;  background-position: center; background-size: cover; background-repeat: no-repeat;}
.main-visual .swiper .swiper-slide::before {position: absolute; width: 100%; height: 262px; background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(130,130,130,0.49) 43%, rgba(0,0,0,1) 100%); opacity: 0.1; bottom: 0; left: 0; display: block; content: ''; z-index: 3}
.main-visual .swiper .swiper-slide img {width: 100%; height: 100%; object-fit: cover;}
.main-visual .swiper-pagination {width: calc(100% - 60px); max-width: 1500px; left: 50% !important; transform: translate(-50%, -50%) !important;display: flex; flex-direction: column; row-gap: 22px;}
.main-visual .swiper-pagination-bullet {width: 10px; height: 10px; background-color: #fff; opacity: 1;}
.main-visual .swiper-pagination-bullet-active {position: relative;}
.main-visual .swiper-pagination-bullet-active::after {position: absolute; width: 26px; height: 26px; border: 1px solid #fff; border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%, -50%); display: block; content: '';}
.main-visual .swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,
.main-visual .swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet {margin: 0}
.main-visual .main-info {position: absolute; bottom: 100px; left: 50%; transform: translate(-50%, 0); z-index: 10;}
.main-visual .main-info h2 {font-size: 36px; color: #fff; font-weight: 600}
.main-visual .main-info p {font-size: 24px; color: #fff; font-weight: 700; padding-top: 16px;}
.main-visual .main-info h2 b {font-weight: 700; font-size: 2.5rem;}
.main-visual .form {position: absolute; bottom: 0; right: 0; height: 100%; z-index: 11; display: flex; transition: all 0.3s ease;}
.main-visual .form .form-btn {width: 60px; height: 100%; border-radius: 50px 0 0 50px; overflow: hidden;}
.main-visual .form .form-btn > span {width: 100%; height: 50%; display: flex; align-items: flex-start; justify-content: center; padding: 18px 0; background-color: rgba(50, 50, 50, 0.8); color: #fff;}
.main-visual .form .form-btn > span img {transform: rotate(180deg);}
.main-visual .form.open .form-btn > span img {transform: rotate(0deg);}
.main-visual .form .form-btn > span.text {writing-mode: vertical-rl; background-color: rgba(115, 115, 115, 0.8); align-items: center; justify-content: flex-end; padding: 23px 0;}

.main-visual .form.open .form-area,
.main-visual .form.open .form-area .input-box {width: 828px;}
.main-visual .input-box {position: relative;}
.main-visual .input-box::after {position: absolute; right: 0; top: 50%; transform: translate(0, -50%); width: 108px; height: 402px; background: url(../img/logo_bg.svg) no-repeat center center / cover; display: block; content: '';}
.main-visual .form-area {width: 0; height: 100%; width: 0; transition: width 0.4s ease; overflow: hidden; display: flex; background-color: rgba(0, 0, 0, 0.8); align-items: center;}
.main-visual .input-area {width: 100%; padding: 0 250px 0 120px;}
.main-visual .input-area input[type="text"],
.main-visual .input-area select {padding: 0 14px; color: var(--text2); font-weight: 400;}
.main-visual .input-area input[type="text"]::placeholder {color: var(--text2); font-weight: 400;}
.main-visual .input-area select {margin-bottom: 20px;}
.main-visual .input-area .input-item {padding-bottom: 50px;}
.main-visual .input-area .input-item {display: flex; flex-direction: column;}
.main-visual .input-area .input-item > span {color: #fff; font-size: 18px; font-weight: 500; padding-bottom: 12px;}

.main-process .tit-area {align-items: center; row-gap: 20px;}
.main-process .tit-area span {font-size: 24px; font-weight: 500;}
.main-process .tit-area br {display: none;}
.main-process ul {display: flex; justify-content: center; column-gap: 2vw;}
.main-process ul li {flex-shrink: 0;}
.main-process ul li:not(.arrow) {display: flex; flex-direction: column; row-gap: 30px; align-items: center;}
.main-process ul li:nth-of-type(1) img,
.main-process ul li:nth-of-type(3) img {width: 5.4vw;}
.main-process ul li:nth-of-type(5) img,
.main-process ul li:nth-of-type(7) img {width: 4.2vw;}
.main-process ul li .hexagon {position: relative; width: 16vw; height: 15vw; display: flex; align-items: center; justify-content: center; background: url(../img/process-icon_bg.webp) no-repeat center center / cover;}
.main-process ul li .info {display: flex; flex-direction: column; align-items: center; row-gap: 10px;}
.main-process ul li .info p {font-size: 20px; font-weight: 600; text-align: center;}
.main-process ul li .info p:nth-of-type(2) {color: var(--text3); font-weight: 400;}
.main-process ul li.arrow {padding-top: 7vw;}
.main-process ul li.arrow img {width: 3vw;}


.main-status {position: relative; background: url(../img/main-status_bg.webp) no-repeat center center / cover; margin: 100px 0;}
.main-status::after {position: absolute; width: 100%; height: 100%; background-color: #fff; opacity: 0.6; top: 0; left: 0; display: block; content: '';}
.main-status .main-inner {position: relative; z-index: 1;}
.main-status .tit-area {flex-direction: row; align-items: center; column-gap: 30px;}
.main-status .main-status-swiper {width: calc(100% - 32px); max-width: 1420px; margin: 0 auto;}
.main-status .main-status-swiper ul {display: flex; column-gap: 24px; row-gap: 50px; flex-wrap: wrap;}
.main-status .main-status-swiper ul li {width: calc(100% / 4 - 18px) !important; height: 230px; display: flex; flex-direction: column; justify-content: space-between; background-color: #fff; border-radius: 10px; padding: 20px; box-shadow: 0px 4px 16px rgba(197, 197, 197, 0.25);}
.main-status .main-status-swiper ul li .tit {font-size: 18px; font-weight: 500; height: 42px; display: -webkit-box; -webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;word-break: break-word;}
.main-status .main-status-swiper ul li > div {display: flex; justify-content: space-between; align-items: flex-end;}
.main-status .main-status-swiper ul li .status {padding: 10px; color: #fff; border-radius: 20px; font-size: 18px; font-weight: 500;}
.main-status .main-status-swiper ul li .info {display: flex; flex-direction: column; row-gap: 10px;}
.main-status .main-status-swiper ul li .info span {font-size: 16px; color: var(--text2); font-weight: 500;}
.main-status .main-status-swiper ul li .info span.name {font-weight: 600;}

.main-service {display: flex; align-items: flex-start; column-gap: 140px;}
.main-service .tit-area {flex-shrink: 0;}
.main-service .tit-area > a {display: flex; align-items: center; column-gap: 16px;}
.main-service .info {width: 100%; display: flex; column-gap: 24px;}
.main-service .info li {position: relative; width: 50%; height: 363px; border-radius: 100px 100px 10px 10px; overflow: hidden;}
.main-service .info li:nth-of-type(1) {background: url(../img/main-service_1.webp) no-repeat center center / cover;}
.main-service .info li:nth-of-type(2) {background: url(../img/main-service_2.webp) no-repeat center center / cover;}
.main-service .info li .info-text {position: absolute; height: 150px; bottom: 0; right: 0; padding: 0 60px; background-color: #fff; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; row-gap: 20px; border-radius: 50px 0 0 0;}
.main-service .info li .info-text a {display: flex; column-gap: 20px; align-items: center;}
.main-service .info li .info-text a .circle {width: 30px; height: 30px; border-radius: 50%; background-color: var(--text1); display: flex; justify-content: center; align-items: center;}
.main-service .info li .info-text p {font-size: 18px; line-height: 27px; font-weight: 500;}

.main-review .n1:last-child {animation-delay: 10s;}
.main-review .n1 {margin-right: 30px;}
.main-review .loop_cont {display: flex; overflow: hidden; padding-bottom: 24px;}
.main-review .loop_cont .review {display: flex; column-gap: 30px; animation: roll 20s linear infinite forwards;}
.main-review .loop_cont .review li {width: 490px; height: 353px; border-radius: 30px 30px 30px 0; background: linear-gradient(to bottom, #eee, #f4f4f4); padding: 30px; box-shadow: 0px 4px 16px rgba(197, 197, 197, 0.25); flex-shrink: 0;}
.main-review .loop_cont .review li div {display: flex; align-items: center; column-gap: 10px; padding-bottom: 88px;}
.main-review .loop_cont .review li div h5 {font-weight: 500;}
.main-review .loop_cont .review li div h5:last-of-type {padding-left: 20px;}
.main-review .loop_cont .review li p {font-size: 18px; font-weight: 500; line-height: 36px; word-break: keep-all;}

/* 롤링 애니메이션 정의 */
@keyframes roll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-100%);
    }
}

.main-contact {position: relative; height: 650px; padding: 0 !important; margin-top: 200px;}
.main-contact .main-inner {position: absolute; left: 50%; bottom: 144px; transform: translate(-50%, 0); z-index: 1;}
.main-contact .main-inner ul {display: flex; flex-direction: column; row-gap: 5px; padding-top: 30px;}
.main-contact .main-inner ul li {font-size: 18px; font-weight: 500;}
.main-contact .img {position:relative; display: block; width: calc(100% - 828px); min-width: 1180px; height: 100%; background: url(../img/main-contact_bg.webp) no-repeat center center / cover;}
.main-contact .img::after { position:absolute; top: 0; left: 0; display: block; width: 100%; height: 100%; background-color: #fff; opacity: 0.4; content: '';}
.main-contact .img .mo {display: none;}
.main-contact .form {position: absolute; right: 0; bottom: 0; z-index: 5; width: 828px; height: 650px; background-color: #323232; border-radius: 50px 0 0 50px; display: flex; align-items: center; padding: 0 250px 0 120px;}
.main-contact .form::after {position: absolute; right: 0; top: 50%; transform: translate(0, -50%); width: 108px; height: 402px; background: url(../img/logo_bg.svg) no-repeat center center / cover; display: block; content: '';}
.main-contact .form-area input[type="text"] {width: 100%; padding: 0 14px; color: var(--text2); font-weight: 400; margin-top: 20px;}
.main-contact .form-area input[type="text"]::placeholder {color: var(--text2); font-weight: 400;}
.main-contact .form-area > h5 {font-weight: 500; padding-bottom: 10px; color: #fff;}
.main-contact .form-area .chk-area {margin-top: 10px; margin-bottom: 40px; display: flex; justify-content: flex-end; align-items: center;}
.main-contact .form-area .chk-area .checkbox-item input[type="checkbox"] + label {font-size: 16px;}
.main-contact .form-area .chk-area a {font-size: 16px; font-weight: 500; padding-left: 2px; color: #fff; text-decoration: underline;}

/* 반응형 */
@media screen and (max-width: 1520px) {

    .main-visual .form.open .form-area {width: 54vw;}
    .main-visual .input-area {padding: 0 15vw 0 8vw;}
}
@media screen and (max-width: 1420px) {
    .main-process ul li .info p {font-size: 1.5vw;}

    .main-service {column-gap: 40px;}

    .main-contact .form {width: 54vw; padding: 0 15vw 0 8vw;}

}
@media screen and (max-width: 1200px) {
    .main-visual .form.open .form-area {width: 68vw;}

    .main-service {flex-direction: column;}

    .main-contact {display: flex; flex-direction: column; height: auto;}
    .main-contact .main-inner {display: none;}
    .main-contact .img {min-width: unset; width: auto; height: auto; padding: 50px 40px;}
    .main-contact .img .mo {display: flex; position: relative; z-index: 5;}
    .main-contact .img ul {flex-direction: column; row-gap: 5px; padding-top: 30px;}
    .main-contact .form {position: relative; right: auto; bottom: auto; width: 100%; height: auto; padding: 55px 15vw 55px 40px; border-radius: 0;}

    .main-status .main-status-swiper {width: calc(100% - 16px); margin-left: 16px;}
    .main-status .main-status-swiper ul {flex-wrap: nowrap; column-gap: 0;}
    .main-status .main-status-swiper ul li {width: 300px !important; padding: 30px 20px;}

}
@media screen and (max-width: 1024px) {

    .main-visual .form.open .form-area {width: 80vw;}
    .main-visual .input-area {padding: 0 13vw 0 7vw;}

    .main-process ul {flex-wrap: wrap; row-gap: 50px;}
    .main-process ul li .hexagon {width: 200px; height: 200px;}
    .main-process ul li:nth-of-type(1) img,
    .main-process ul li:nth-of-type(3) img {width: 80px;}
    .main-process ul li:nth-of-type(5) img, 
    .main-process ul li:nth-of-type(7) img {width: 65px;}
    .main-process ul li .info p {font-size: 20px;}
    .main-process ul li.arrow {padding-top: 86px;}
    .main-process ul li.arrow img {width: 32px;}
    .main-process ul li:not(.arrow) {width: 30%;}

    .main-service .info li .info-text {padding: 0 5vw;}
}
@media screen and (max-width: 768px) {

    section h2 {font-size: 24px;}

    .tit-area {align-items: center; margin-bottom: 40px;}
    .img-area img {height: 36px;}
    
    .main-visual .swiper,
    .main-visual .main-info,
    .main-visual .form .form-btn,
    .main-visual .input-box::after {display: none;}
    .main-visual .form {position: revert;}
    .main-visual .form.open .form-area {width: 100%;}
    .main-visual .input-area {padding: 60px 8vw;}
    
    .main-process .tit-area span {font-size: 20px; text-align: center;}
    .main-process .tit-area span br {display: block;}
    .main-process ul li.arrow {display: none;}
    .main-process ul li:not(.arrow) {width: 100%;}

    .main-service .tit-area {width: 100%;}
    .main-service .info {flex-direction: column; row-gap: 30px; }
    .main-service .info li {width: 100%; height: 320px;}
    .main-service .info li .info-text {padding: 0 60px;}

    .main-review .loop_cont .review li {width: 360px; height: auto; padding: 30px 20px;}
    .main-review .loop_cont .review li div {padding-bottom: 60px;}
    .main-review .loop_cont .review li p {font-size: 16px; line-height: 28px; height: 140px; display: -webkit-box; -webkit-line-clamp: 5;-webkit-box-orient: vertical;overflow: hidden;text-overflow: ellipsis;word-break: break-word;}

    .main-contact {margin-top: 100px;}
    .main-contact .img {padding: 50px 8vw;}
    .main-contact .form {padding: 55px 8vw 55px 8vw;}
    .main-contact .form::after {display: none;}

}
@media screen and (max-width: 600px) {

}
@media screen and (max-width: 500px) {

    section:not(.main-visual) {padding: 50px 0;}
    section.main-service h2,
    section.main-review h2 {font-size: 18px;}

    .tit-area {margin-bottom: 30px;}
    .img-area img {height: 30px;}

    .main-visual .input-area {padding: 60px 16px;}

    .main-process {padding: 80px 0 50px 0 !important;}
    .main-process .tit-area span {font-size: 18px;}

    .main-service .info li {height: 290px;}
    .main-service .info li .info-text {height: 134px; row-gap: 10px; padding: 0 40px;}

    .main-status {margin: 50px 0; padding: 80px 0 !important;}
    .main-status .tit-area {justify-content: space-between; margin-bottom: 60px;}

    .main-contact {margin-top: 30px;}
    .main-contact .img {padding: 40px 16px;}
    .main-contact .form {padding: 55px 16px;}

}
@media screen and (max-width: 340px) {

}

/*****************/