/* reset */
*{margin: 0;padding: 0;}
body, html{font-size: 16px;font-family: "Pretendard";color: #333;overflow-x: hidden;max-width: 100%;}
.wrap { width: 100%; max-width: 1400px; margin: 0 auto; box-sizing: border-box; }
a{text-decoration: none;color: inherit;}
li{list-style:none;}
img{vertical-align: top;}
button, input, select, textarea {font-family: inherit;font-size: inherit;}
address{font-style: normal;}

/* web font */
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Thin.woff2') format('woff2');
    font-weight: 100;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraLight.woff2') format('woff2');
    font-weight: 200;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Light.woff2') format('woff2');
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2') format('woff2');
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Medium.woff2') format('woff2');
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-display: swap;
}
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Black.woff2') format('woff2');
    font-weight: 900;
    font-display: swap;
}
 
/* index */
header{height: 70px;border-bottom: 1px solid #b4b4b4;}
header .wrap{display: flex;justify-content: space-between;align-items: center;}
header img{height: 70px;}
header nav ul{display: flex;gap: 100px;font-size: 18px;}
header nav ul li{position: relative;}
header nav ul li.active{font-weight: 600;}
header nav ul {position: relative;}
header nav ul .indicator {position: absolute;bottom: -24px;height: 4px;background: #000;width: 65px;transition: left 0.5s ease; }

footer{border-top: 1px solid #A2A2A2;padding-top: 30px;padding-bottom: 50px;}
footer img{width: 162px;position: relative;left: -12px;margin-bottom: 10px;}
footer address{font-size: 18px;font-weight: 500;margin-bottom: 20px;}
footer small{font-size: 18px;font-weight: 500;}

.section1 {padding-bottom: 30px;}
.big_banner{height: 582px;background: url(../img/web_main_img.jpg) no-repeat bottom/cover;width: 100%;margin-top: 30px;border-radius: 20px;}
.big_banner .content{display: flex;gap: 30px;flex-direction: column;width: 400px;padding-top: 100px;padding-left: 50px;}
.big_banner .badge{width: 137px;background: #fff;border-radius: 5px;line-height: 26px;text-align: center;font-size: 12px;font-weight: 700;}
.big_banner h2{color: #fff;font-size: 45px;font-weight: 800;line-height: 1.4;}
.yellow{color: #FFB000;}
.big_banner p{font-size: 18px;color: #fff;font-weight: 400;line-height: 1.6;}
.big_banner .btns{display: flex;justify-content: space-between;width: 320px;gap: 10px;}
.big_banner .btns a{display: flex;justify-content: space-between;width: 150px;height: 50px;align-items: center;box-sizing: border-box;padding: 10px 17px;border-radius: 10px;font-weight: 600;gap: 20px;}
.big_banner .btns a img{width: 20px;}
.big_banner .btns a:nth-child(1){background: #fff;}
.big_banner .btns a:nth-child(2){border:1px solid #fff;color: #fff;}
.big_banner .btns a:nth-child(2) img{filter: brightness(0) invert(1);}

.small_banner{display: grid;grid-template-columns: repeat(3, 1fr);gap: 25px;margin-top: 30px;margin-bottom: 30px;}
.small_banner li{border-radius: 15px;height: 237px;width: 100%;padding: 70px 30px;box-sizing: border-box;}
.small_banner li:nth-child(1){background: url(../img/web_main_img_1.png) no-repeat center/cover;}
.small_banner li:nth-child(2){background: url(../img/web_main_img_2.png) no-repeat center/cover;}
.small_banner li:nth-child(3){background: url(../img/web_main_img_3.png) no-repeat center/cover;}
.small_banner li strong{font-size: 40px;font-weight: 700;color: #fff;}
.small_banner li p{font-size: 25px;font-weight: 500;color: #fff;margin-top: 5px;}

.about{background: #F8F8F8;padding: 30px 0;margin-top: 30px;height: 450px;}
.about h3{font-size: 18px;font-weight: 800;color: #FFB000;}
.partner{display: flex;justify-content: space-between;}
.partner .text h4{font-size: 45px;font-weight: 700;margin: 30px 0;}
.partner .text p{font-size: 18px;font-weight: 400;line-height: 1.6;}
.partner ul{display: grid;grid-template-columns: repeat(2, 1fr);gap: 25px;}
.partner ul li{display: flex;gap: 20px;justify-content: space-between;align-items: center;background: #fff;height: 215px;border-radius: 15px;padding: 30px 40px;box-sizing: border-box;width: 330px;}
.partner ul li .txt{width: 150px;}
.partner ul li img{width: 55px;}
.partner ul li h4{font-size: 22px;font-weight: 600;}
.partner ul li p{font-size: 17px;font-weight: 400;line-height: 1.4;margin-top: 15px;}

.marketing{padding-top: 50px;}
.marketing .text h3{font-size: 18px;font-weight: 800;color: #FFB000;}
.marketing .text h4{font-size: 45px;font-weight: 700;margin: 30px 0px;}
.marketing .text p {font-size: 18px;font-weight: 400;margin-bottom: 30px;}
.marketing ul{display: grid;grid-template-columns: repeat(4, 1fr);gap: 25px;}
.marketing ul li{height: 400px;border-radius: 15px;}
.marketing ul li:nth-child(1){background: url(../img/web_main2_img_1.png) no-repeat center/cover;}
.marketing ul li:nth-child(2){background: url(../img/web_main2_img_2.png) no-repeat center/cover;}
.marketing ul li:nth-child(3){background: url(../img/web_main2_img_3.png) no-repeat center/cover;}
.marketing ul li:nth-child(4){background: url(../img/web_main2_img_4.png) no-repeat center/cover;}
.marketing ul li {position: relative;display: flex;gap: 20px;flex-direction: column;justify-content: flex-end;padding: 30px;box-sizing: border-box;}
.marketing ul li::before {content: '';position: absolute;top: 0; left: 0;width: 100%; height: 100%;background: rgba(0, 0, 0, 0.4); border-radius: 15px;}
.marketing ul li h5, .marketing ul li p, .marketing ul li span {position: relative;z-index: 1;color: #fff;}
.marketing ul li h5{font-size: 20px;font-weight: 600;}
.marketing ul li p{font-size: 15px;font-weight: 400;line-height: 1.4;}
.marketing ul li span{font-size: 15px;font-weight: 400;line-height: 1.6;}

.portfolio { padding: 100px 0; }
.portfolio h3 { font-size: 18px; font-weight: 800; color: #FFB000; }
.portfolio h4 { font-size: 45px; font-weight: 700; margin: 15px 0 10px; }
.portfolio .text p { font-size: 18px; color: #333; margin-bottom: 40px; }
.portfolio ul {display: grid;grid-template-columns: repeat(3, 380px);justify-content: start;gap: 25px;}
.portfolio ul li { border-radius: 15px; overflow: hidden; border: 1px solid #eee; width: 380px;}
.portfolio ul li a { display: block; text-decoration: none; color: inherit; }
.portfolio ul li img { width: 100%; height: 220px; object-fit: cover; display: block; }
.portfolio ul li .txt { padding: 20px; }
.portfolio ul li h5 { font-size: 20px; font-weight: 700; margin-bottom: 8px; }
.portfolio ul li p { font-size: 15px; color: #555; margin-bottom: 12px; }
.portfolio ul li span { font-size: 13px; color: #888; }

/*service*/
.big_banner2{background: url(../img/web_main2_img.png) no-repeat bottom/cover;}
.big_banner2 .content{padding: 0;margin: 0 auto;width: 500px;text-align: center;padding-top: 200px;}

.solution { padding-top: 100px;padding-bottom: 20px; }
.solution h3 { font-size: 18px; font-weight: 800; color: #FFB000; }
.solution .text { display: flex; justify-content: space-between; align-items: flex-end; margin: 20px 0 60px; }
.solution .text h4 { font-size: 45px; font-weight: 700; width: 500px; }
.solution .text p { font-size: 18px; color: #333; line-height: 1.6;}
.solution ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; align-items: start; }
.solution ul li:nth-child(even) { padding-top: 80px; }
.solution ul li img { width: 100%; border-radius: 15px; object-fit: cover; }
.solution ul li h5 { font-size: 30px; font-weight: 600; margin: 20px 0 10px; }
.solution ul li p { font-size: 18px; color: #333; line-height: 1.6; margin-bottom: 15px; font-weight: 400;}
.solution ul li span { font-size: 15px; color: #555; line-height: 2; }

.system{padding: 30px 0;margin-top: 30px;height: 450px;margin-bottom: 60px;}
.system h3{font-size: 18px;font-weight: 800;color: #FFB000;}
.process{display: flex;justify-content: space-between;}
.process .text h4{font-size: 45px;font-weight: 700;margin: 30px 0;}
.process .text p{font-size: 18px;font-weight: 400;line-height: 1.6;}
.process ul{display: grid;grid-template-columns: repeat(2, 1fr);gap: 25px;}
.process ul li{display: flex;gap: 20px;justify-content: space-between;align-items: center;background: #F8F8F8;height: 215px;border-radius: 15px;padding: 20px 40px;box-sizing: border-box;width: 330px;}
.process ul li img{width: 55px;}
.process ul li span{font-size: 20px;font-weight: 400;margin-bottom: 10px;display: block;}
.process ul li h4{font-size: 30px;font-weight: 700;}
.process ul li p{font-size: 18px;font-weight: 400;line-height: 1.4;margin-top: 35px;}

/*contact*/
.contact .wrap{display: flex;gap: 100px;}
.contact { padding: 40px 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 80px; }
.contact .content { width: 600px; }
.contact .content span { background: #FFF5DF; font-size: 13px; font-weight: 700; padding: 7px 15px; border-radius: 5px; color: #FFB000;}
.contact .content h2 { font-size: 45px; font-weight: 700; margin: 20px 0; }
.contact .content strong { font-size: 35px; font-weight: 500; line-height: 1.5; display: block; margin-bottom: 20px; }
.contact .content p { font-size: 18px; color: #555; line-height: 1.8; margin-bottom: 15px; font-weight: 500;width: 400px;}
.contact form {display: flex; flex-direction: column; gap: 20px; width: 600px;}
.contact form div { display: flex; flex-direction: column; gap: 30px; }
.contact form label { font-size: 19px; font-weight: 500; }
.contact form input[type="text"], .contact form input[type="email"] { height: 50px; border: none; border-radius: 10px; background: #F2F2F2; padding: 0 15px; box-sizing: border-box; font-size: 15px; outline: none; }
.contact form .forth input { height: 150px; padding: 15px; }
.contact form .fifth { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 10px; }
.contact form .fifth label { font-size: 18px; color: #555; font-weight: 500;}
.contact form > button {width: 100%;height: 55px;background: #000;color: #fff;border: none;border-radius: 10px;font-size: 18px;font-weight: 600;cursor: pointer;margin-top: 10px;}
.contact form textarea {border: none;border-radius: 10px;background: #F2F2F2;padding: 15px;box-sizing: border-box;font-size: 15px;outline: none;resize: none;width: 100%;height: 200px;}

.fifth {display: flex;align-items: center;}
.fifth input[type="checkbox"] {display: none;}
.fifth label {display: flex;align-items: center;gap: 8px;cursor: pointer;position: relative;}
.fifth label::before {content: '';display: inline-block;width: 20px;height: 20px;min-width: 20px;border: 2px solid #555;border-radius: 4px;background-color: white;transition: background-color 0.2s, border-color 0.2s;box-sizing: border-box;}
.fifth input[type="checkbox"]:checked + label::before {background-color: #000;border-color: #000;}
.fifth input[type="checkbox"]:checked + label::after {content: '';position: absolute;left: 7px;  top: 51%;transform: translateY(-60%) rotate(45deg);width: 5px;height: 10px;border-right: 2px solid white;border-bottom: 2px solid white;}

.modal {display: none;position: fixed;top: 0; left: 0;width: 100%; height: 100%;background: rgba(0,0,0,0.5); /* 배경 어둡게 */z-index: 9999;justify-content: center;align-items: center;}
.modal.active {display: flex;}
.modal-box {background: white;padding: 30px;border-radius: 8px;max-width: 500px;width: 90%;max-height: 80vh;overflow-y: auto;}
.modal-box h3{font-size: 20px;font-weight: 600;}
.modal-content{line-height: 1.6;font-size: 14px; font-weight: 500;}
.modal-header {display: flex;justify-content: space-between;align-items: center;margin-bottom: 20px;}
#closeBtn {background: none;border: none;font-size: 25px;cursor: pointer;color: #555;}
#closeBtn:hover {color: #000;}


@media (max-width:800px) { /* 모바일용 */
    .pc{display: none !important;}
    .wrap { padding: 0 20px; }

    header { height: 60px; display: flex;align-items: center;justify-content: center;}
    header img { height: 50px; }
    header nav ul { gap: 30px; font-size: 15px; }

    footer{padding-top: 10px;padding-bottom: 30px;}
    footer address { font-size: 12px; }
    footer small { font-size: 12px; }

    .big_banner { height: 400px; margin-top: 15px; border-radius: 15px; background: url(../img/mo_main_img.png) no-repeat center/cover;height: 300px;}
    .big_banner .content { width: 100%; padding: 24px 25px 0; gap: 15px; }
    .big_banner h2 { font-size: 25px; text-align-last: left;}
    .big_banner p { font-size: 15px; text-align-last: left;}
    .big_banner .btns { justify-content: flex-start;}
    .big_banner .btns a {width: 100px;height: 40px;border-radius: 100px;justify-content: center;font-size: 13px;}
    .big_banner2 {background: url(../img/mo_main2_img.png) no-repeat center/cover;height: 290px;}
    .big_banner2 .content{padding: 70px 25px 0;}
    .big_banner .badge{color: #fff;background: rgba(555,555,555,0.3);border-radius: 20px;padding-left: 10px;position: relative;}
    .big_banner .badge:before{content: "";width: 8px;height: 8px;display: block;background: #FFB000;border-radius: 100px;top: 8px;left: 11px;position: absolute;}

    .small_banner { grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 15px 0; }
    .small_banner li { height: 100px; padding: 20px 15px; border-radius: 10px;display: flex;flex-direction: column;align-items: center;}
    .small_banner li strong { font-size: 24px; }
    .small_banner li p { font-size: 14px; }

    .about { height: auto; padding: 30px 0; margin: 0;}
    .partner { flex-direction: column; gap: 30px; }
    .partner figure{background: #D28916;padding: 10px;border-radius: 10px;}
    .partner ul li figure img{width: 30px;}
    .partner .text h4 { font-size: 28px; margin: 15px 0; }
    .partner .text p { font-size: 15px; }
    .partner ul { grid-template-columns: 1fr 1fr; gap: 15px; }
    .partner ul li { width: 100%; height: auto; padding: 20px; flex-direction: column; align-items: flex-start; }
    .partner ul li .txt { width: 100%; }
    .partner ul li h4 { font-size: 18px; }
    .partner ul li p { font-size: 14px; margin-top: 8px; }

    .marketing { padding-top: 30px; }
    .marketing .text h4 { font-size: 28px; margin: 15px 0; }
    .marketing .text p { font-size: 15px; margin-bottom: 20px; line-height: 1.6 ;}
    .marketing ul { grid-template-columns: 1fr 1fr; gap: 15px; }
    .marketing ul li { height: 160px; border-radius: 10px; padding: 10px;gap: 3px;}
    .marketing ul li h5 { font-size: 14px; }
    .marketing ul li p { font-size: 10px; }
    .marketing ul li span { font-size: 10px; }

    .portfolio { padding: 50px 0; }
    .portfolio h4 { font-size: 28px; }
    .portfolio .text p { font-size: 15px; margin-bottom: 20px; }
    .portfolio-swiper { width: 100%; padding-bottom: 35px; }
    .portfolio-swiper .swiper-slide { border-radius: 15px; overflow: hidden; border: 1px solid #eee; }
    .portfolio-swiper .swiper-slide a { display: block; color: inherit; }
    .portfolio-swiper .swiper-slide img { width: 100%; height: 180px; object-fit: cover; display: block; }
    .portfolio-swiper .swiper-slide .txt { padding: 20px; }
    .portfolio-swiper .swiper-slide h5 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
    .portfolio-swiper .swiper-slide p { font-size: 14px; color: #555; margin-bottom: 10px; }
    .portfolio-swiper .swiper-slide span { font-size: 12px; color: #888; }
    .portfolio-swiper .swiper-wrapper {height: auto !important;}
    .portfolio-swiper .swiper-slide {height: auto !important;}
    .portfolio ul li { width: 100%; }
    .portfolio ul { grid-template-columns: 1fr; }

    .solution { padding-top: 20px; }
    .solution .text { flex-direction: column; align-items: flex-start; gap: 15px; margin-bottom: 30px; }
    .solution .text h4 { font-size: 28px; width: 100%; }
    .solution .text p { font-size: 15px; }
    .solution ul { grid-template-columns: 1fr 1fr; gap: 20px; }
    .solution ul li:nth-child(even) { padding-top: 0; }
    .solution ul li h5 { font-size: 22px; }
    .solution ul li p { font-size: 15px; }

    .solution-swiper { width: 100%; padding-bottom: 35px; }
    .solution-swiper .swiper-wrapper { height: auto !important; }
    .solution-swiper .swiper-slide { height: auto !important; border-radius: 15px; overflow: hidden; border: 1px solid #eee; }
    .solution-swiper .swiper-slide img { width: 100%; height: 180px; object-fit: cover; display: block; }
    .solution-swiper .swiper-slide .txt { padding: 20px; }
    .solution-swiper .swiper-slide h5 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
    .solution-swiper .swiper-slide p { font-size: 14px; color: #555; margin-bottom: 10px; line-height: 1.6; }
    .solution-swiper .swiper-slide span { font-size: 13px; color: #888; line-height: 2; }

    .system { height: auto; padding: 30px 0; margin-bottom: 30px; }
    .process { flex-direction: column;}
    .process .text h4 { font-size: 28px; margin: 15px 0; }
    .process .text p { font-size: 15px; }
    .mobile-process { display: flex; flex-direction: column; margin-top: 20px; }
    .mobile-process-item { display: flex; gap: 15px; align-items: flex-start; }
    .mobile-process-left { display: flex; flex-direction: column; align-items: center; gap: 5px;}
    .step-num { width: 40px; height: 40px; border-radius: 50%; background: #FFB000; color: #000; font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .step-line { width: 2px; flex: 1; min-height: 30px; background: #FFB000; margin: 5px 0; }
    .mobile-process-card { flex: 1; display: flex; align-items: center; gap: 15px; background: #F8F8F8; border-radius: 12px; padding: 18px; margin-bottom: 15px; border: 1px solid #D9D9D9;}
    .mobile-process-card img { width: 45px; height: 45px; object-fit: contain; background: #F6EEDF; border-radius: 10px; padding: 8px; box-sizing: border-box; flex-shrink: 0; }
    .mobile-process-card h5 { font-size: 16px; font-weight: 700; margin-bottom: 5px; }
    .mobile-process-card p { font-size: 13px; color: #555; line-height: 1.5; }

    .contact .wrap { flex-direction: column; gap: 30px; padding: 0 20px; }
    .contact .content { width: 100%; }
    .contact .content h2 { font-size: 30px; }
    .contact .content strong { font-size: 20px; }
    .contact .content p { font-size: 15px; width: 100%; margin-bottom: 10px;}
    .contact form { width: 100%; }
    .contact form label { font-size: 15px; }
    .contact form div { gap: 10px; }
    .contact form .fifth label{font-size: 15px;}

    .modal-box { padding: 20px; }
    .modal-box h3 { font-size: 17px; }
    .modal-content { font-size: 13px; }

    .hamburger {display: flex;flex-direction: column;gap: 5px;background: none;border: none;cursor: pointer;padding: 5px;}
    .hamburger span {display: block;width: 25px;height: 2px;background: #333;transition: all 0.3s ease;}
    .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity: 0; }
    .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    .mobile-menu {position: fixed;top: 0;right: -100%;width: 70%;height: 100vh;background: #fff;z-index: 9999;transition: right 0.3s ease;padding: 70px 40px;box-sizing: border-box;box-shadow: -5px 0 20px rgba(0,0,0,0.1);}
    .mobile-menu.open { right: 0; }
    .mobile-menu ul { display: flex; flex-direction: column; gap: 30px; }
    .mobile-menu ul li { border-bottom: 1px solid #ddd; padding-bottom: 0; } 
    .mobile-menu ul li a { font-size: 20px; font-weight: 400; color: #333; display: block; padding-bottom: 15px; }
    .mobile-menu ul li.active a { color: #FFB000; }
    .menu-overlay {display: none;position: fixed;top: 0; left: 0;width: 100%; height: 100%;background: rgba(0,0,0,0.5);z-index: 9998;}
    .menu-overlay.open { display: block; }
    .mobile-menu-header {display: flex;justify-content: space-between;align-items: center;margin-bottom: 40px;}
    .mobile-menu-header img {height: 50px;position: relative;left: -10px;}
    .mobile-close {background: none;border: none;font-size: 22px;cursor: pointer;color: #333;position: absolute;top: 17px;right: 24px;}
}




















@media (min-width:801px) { /* PC용 */
    .mob{display: none !important;}
}