@charset "utf-8";


/*메인슬라이드 애니*/
.serV-wrap { position: relative; }
.serV {position: relative; width: 100%;min-height: 950px;background: url(/theme/uriwon/img/serV-img3.png) center top no-repeat;background-size: cover; }
.serV img { width: 100%;height: 100%;}
.khwrap.container { padding: 100px 0;}


/*메인슬라이드 애니*/
.serMedia-wrap { position: relative;background: url(../../../../img/serWeb-back3.png) center top no-repeat;width: 100%;height: 100%;}
.subVT-wrap.serMedia-Top { position: absolute; left: 13% !important;}
.subVT-wrap img { width: 100%;height: 100%;} img { width: 100%;height: 100%;}
.serMedia-Top h2 { font-size: 20px;color: #111;font-family: 'Paperlogy';font-weight: 600;letter-spacing: 0;}
.serMedia-Top h3 { color: #111;}
.serMedia-Top .subVT-title { color: #111;}

.subTblank { margin-top: 50px; }
.serV-form { position: absolute; left: 50%; top: 88%; transform: translateX(-50%); display: flex; gap: 15px; width: auto;}
.serV-form a {  display: inline-block; background: #111; border-radius: 30px; font-size: 16px; color: #39D66D; font-weight: 600; height: 45px; line-height: 45px; padding: 0 25px;
    text-align: center; text-decoration: none; transition: all 0.3s ease; box-shadow: 0px 4px 10px rgba(0,0,0,0.05); min-width: 170px;}
.serV-form a:hover {  background: #000; color: #39D66D; transform: translateY(-8px);box-shadow: 0px 10px 30px rgba(0,255,84,0.4);}

/*내용*/
.serWeb-body { position: relative;}
.serWeb-title {font-size: 24px;color:#39D66D;font-family: 'Paperlogy';font-weight: 700;letter-spacing: 0;text-transform: uppercase;}
.serWeb-uiux { display: flex; align-items: flex-start; margin-bottom: 60px; position: relative;}
.serWUI-title { width: 200px; font-size: 28px; font-weight: 800; color: #333; padding-top: 20px;text-align: right;padding-right: 40px;}
.serWUI-box { flex: 1; position: relative; padding: 35px; min-height: 360px;}
.serWepApp { margin-left: 30%;}

.serUiUx { margin-left: 7%;}
.serUiUx .serWUI-img span:nth-child(1) { position: relative;margin-left: -50px;z-index: 122;box-shadow: 0 30px 30px rgba(0,0,0,0.2);}
.serUiUx .serWUI-img span:nth-child(2) { position: relative;margin-left: -50px;z-index: 121;box-shadow: 0 30px 30px rgba(0,0,0,0.2);}
.serUiUx .serWUI-img span:nth-child(3) { position: relative;margin-left: -50px;z-index: 120;box-shadow: 0 30px 30px rgba(0,0,0,0.2);}

.serDashBoard { margin-left: 35%;}

.serDetailView .serWeb-right { margin-left: 30%;width: 70%;display: flex;}
.serDetailView .serWeb-right .serWUI-img { background: #164626;}
.serDetailView .serWeb-right .serWUI-img span:nth-child(1) { position: relative;margin-left: -10px;margin-top: 0; z-index: 122;box-shadow: 0 30px 30px rgba(0,0,0,0.2);}
.serDetailView .serWeb-right .serWUI-img span:nth-child(2) { position: relative;margin-left: -10px;margin-top: 20px; z-index: 121;box-shadow: 0 30px 30px rgba(0,0,0,0.2);border-radius: 5px;}
.serDetailView .serWeb-right .serWUI-img span:nth-child(3) { position: relative;margin-left: -80px;margin-top: 10px; z-index: 120;box-shadow: 0 30px 30px rgba(0,0,0,0.2);border-radius: 5px;}

.serDetailView .serWeb-left { width: 40%;position: absolute;left: 0;top: 40%;}
.serDetailView .serWeb-left p { font-size: 60px;}
.serDetailView .serWeb-left p b { font-size: 60px;font-weight: 600;}

/* 텍스트 스타일 (검은색 배경 위) */
.serWUI-box h4 { font-size: 24px; color: #39D66D; font-weight: 600; margin-bottom: 10px; position: relative; z-index: 10; }
.serWUI-box h5 { font-size: 16px; color: #fff; font-weight: 200; position: relative; z-index: 10; letter-spacing: 0; }
.serWUI-box h6 { margin-top: 10px;width: 200px;}
.serWUI-box h6 span { font-size: 16px; color: #fff; font-weight: 200; position: relative; z-index: 10; letter-spacing: 0; line-height: 130%;}
.serWUI-img {  display: flex; position: absolute; top: 0; left: 270px; width: calc(100% - 300px); height: 100%; z-index: 100;border-radius: 20px;overflow: hidden;}
.serWeb-uiux.active .serWUI-box::before { opacity: 1; transform: translateX(0);}
.serWUI-box::before { content: ''; position: absolute; top: 0; left: 0; width: 350px; height: 100%; background: #111; border-radius: 20px;overflow: hidden; z-index: 5;opacity: 0; transition: opacity 0.6s ease; transition-delay: 0.1s;}
/*.serWUI-box::after { content: 'View';position: absolute; top: 50%; left: 240px;margin-top: -25px; width: 60px; height: 60px; line-height: 60px;text-align: center; background: #39D66D; border-radius: 100%;z-index: 100;}*/
.viewlink-btn { content: 'View';position: absolute; top: 50%; left: 240px;margin-top: -25px; width: 60px; height: 60px; line-height: 60px;text-align: center; background: #39D66D; border-radius: 100%;z-index: 1000;}
/* 이미지 개별 스타일 및 애니메이션 */
.serWUI-img span { display: block; height: 100%; flex: 1; overflow: hidden; opacity: 1; transform: translateX(0px); transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);}
.serWeb-uiux.active .serWUI-img span { opacity: 1; transform: translateX(0);}
.serWUI-img span img { width: 100%; height: 100%;object-fit: cover;object-position: center top;}

/* 순차적 등장 (이미지 개수에 따른 지연) */
.serWUI-img span:nth-child(1) { transition-delay: 0.2s; }
.serWUI-img span:nth-child(2) { transition-delay: 0.4s; }
.serWUI-img span:nth-child(3) { transition-delay: 0.6s; }



/* View 버튼 (이미지 위에 동동 떠있는 스타일) */
.view-btn { position: absolute; left: 380px; top: 50%; transform: translateY(-50%); width: 60px; height: 60px; background: #39D66D; border-radius: 50%; display: flex; align-items: center;
    justify-content: center; color: #fff; font-weight: 600; z-index: 20; cursor: pointer;}

/* serBenef-wrap */
.serBenef-wrap { clear: both;background: #fff;}
.serBenef-roll { width: 100%; overflow: hidden; position: relative; padding: 50px 0 50px 15%; }
.serBenef-inner { display: flex; width: fit-content; animation: rollingLoop 40s linear infinite;}
/* 마우스 호버 시 정지 */
.serBenef-roll:hover .serBenef-inner { animation-play-state: paused;}
.serBenef-card { flex-shrink: 0; width: 400px; margin-right: 30px; border-radius: 20px; overflow: hidden; position: relative; height: 550px; box-shadow: 0 10px 30px rgba(0,0,0,0.1);
 transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s ease; cursor: pointer;}
.serBenef-card:hover { transform: translateY(-15px); box-shadow: 0 20px 40px rgba(0,0,0,0.2); z-index: 10;}
.serBenef-card img { width: 100%; height: 100%; object-fit: cover;}
.serBenef-card:hover img { transform: scale(1.03); }
.serBenef-roll:hover .serBenef-inner { animation-play-state: paused;}
.serBenef-card span { position: absolute; bottom: 0; left: 0; width: 100%; padding: 35px 0; background: rgba(0, 0, 0, 0.25); backdrop-filter: blur(8px); color: #fff;
    text-align: center; font-size: 20px; font-weight: 500; z-index: 1000;}

@keyframes rollingLoop {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-50% - 10vw)); 
    }
}

/*포트폴리오*/
.serPortf-wrap { clear: both;width: 100%;height: 100%;background: #F5F5F5;}
.serPortf-body { width: 100%; margin: 0 auto; padding: 50px 0 0;}
.serPortf-inner { display: flex; gap: 20px; margin-bottom: 60px;align-items: stretch;}
.serPortf-half { flex: 2;min-width: 0; }
.serPortf-quarter { flex: 1;min-width: 0; }
.serPortf-half, .serPortf-quarter { display: flex; flex-direction: column; cursor: pointer;}
.serPortf-img {  width: 100%; flex: 1; background: #111; border-radius: 15px; overflow: hidden; margin-bottom: 15px; transition: transform 0.4s ease, box-shadow 0.4s ease;}
.serPortf-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease;}
.serPortf-wrap a.link { font-size: 20px; background: #39D66D;color:#fff; border-radius: 30px;padding: 15px 35px;height: 30px;line-height: 30px;font-weight: 400;}
.serPortf-wrap a.link:hover { scale: calc(1.02);background: #111;color: #39D66D;}
.serPortf-wrap .mcontent-title p span {vertical-align: sub;}
.serPortf-body dl { margin: 0; padding-left: 5px; }
.serPortf-body dt { font-size: 24px; font-weight: 700; color: #111; margin-bottom: 0; }
.serPortf-body dd { font-size: 16px; color: #888; margin: 0; }

/* 4. 호버 애니메이션: 이미지 살짝 올라가면서 확대 */
.serPortf-half:hover .serPortf-img,
.serPortf-quarter:hover .serPortf-img { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0,0,0,0.1);}
.serPortf-half:hover .serPortf-img img,
.serPortf-quarter:hover .serPortf-img img { transform: scale(1.05); }



/****************************************************************************************/
/****************************************************************************************/
/*Media Query*/
/****************************************************************************************/
/****************************************************************************************/

@media (max-width: 1400px) {
    .serDetailView .serWeb-left p,
    .serDetailView .serWeb-left p b { font-size: 28px;}
    
    .proDT-img .layerWrap p.txt, .proDT-img2 .layerWrap p.txt {font-size: 45px;}

}

@media (max-width: 1200px) {
    .serWepApp {margin-left: 15%;}
    .serDashBoard {margin-left: 10%;}
    .serDetailView .serWeb-right {margin-left: 10%; width: 90%;}

    .serWeb-uiux { display: block;}
    .serWeb-uiux .serWUI-title { margin-bottom: 10px;font-size: 24px;}

}

@media (max-width: 1024px) {
    .serPortf-inner {  flex-wrap: wrap; }
    .serPortf-half, .serPortf-quarter {  flex: 1 1 calc(32% - 10px); }

    .serV { width: 100%;min-height: 550px;}
    .subVT-wrap h3 { font-size: 45px;}
    .subVT-wrap .subVT-title { font-size: 24px;padding-top: 50px;}
    .subVT-txt { line-height: 120%;padding-top: 5px;font-size: 16px;}
    .serVT-wrap { left: 50px;}

    .serWeb-title {font-size: 20px;}

    .serDetailView .serWeb-left p,
    .serDetailView .serWeb-left p b { font-size: 40px;}
    .serDetailView .serWeb-left { position: relative;width: 100%;padding-bottom: 20px;}
    .proDT-img {height: 250px;}
    .proDT-img .layerWrap p.txt, .proDT-img2 .layerWrap p.txt {font-size: 30px;}

}

@media (max-width: 768px) {    
    .subVT-wrap .subVT-title { padding-top: 0;}
    .serV-wrap .subTblank { margin-top: 30px;}
    .subVT-wrap.serWeb-Top { width: 100%;left: 50% !important; top: 50%; transform: translate(-50%, -50%);text-align: center;}
    .serPortf-half, .serPortf-quarter {  flex: 1 1 calc(50% - 10px); }

    .serWeb-title {font-size: 16px;}

    .serWepApp,
    .serUiUx,
    .serDashBoard,
    .serDetailView .serWeb-right {margin-left: 0%;}
    .serDetailView .serWeb-right { display: block; width:100%;}
    .serWUI-box {padding: 20px;}
    .serWUI-box h4 { font-size: 20px;}
    .serWUI-img { left: 200px;width: calc(100% - 200px);border-radius: 12px;}
    .serWUI-box::before { border-radius: 12px;width: 250px;}
    .viewlink-btn {left: 174px;width: 45px;height: 45px;line-height: 45px;}

    .serBenef-card {width: 300px;height: 400px;}

    .serPortf-wrap .mcontent-title p span { display: block;margin-bottom: 5px;}
    .proDT-img {height: 200px;border-radius: 12px;}
    .proDT-img .layerWrap p.txt, .proDT-img2 .layerWrap p.txt {font-size: 24px;}
    .proDT-img .layerWrap p, .proDT-img2 .layerWrap p { padding: 0 40px; }

    .serWUI-title {text-align: left;}


}

@media (max-width: 640px) {
    .serPortf-half, .serPortf-quarter { flex: 1 1 100%; }
    .serPortf-img {aspect-ratio: 16 / 9; }
    .serPortf-body dt { font-size: 20px; }

    .serPortf-inner { margin-bottom: 35px;}

}


@media (max-width: 480px) {    
    .subVT-wrap { left: 10px;}
    .subVT-wrap h3 {font-size: 36px;}
    .subVT-h3 { font-size: 14px;}
    .subVT-wrap .subVT-title {font-size: 20px; padding-top: 20px;}

    .serWUI-img {display: block; top: 140px;left: 10px;width: calc(100% - 20px); height: 260px;}
    .serWUI-box::before { width: 100%;}

    .viewlink-btn {left: auto; width: 40px; height: 40px; line-height: 40px; right: 15px; top: 40px;font-size: 14px;}
    .serDetailView .serWeb-left p,
    .serDetailView .serWeb-left p b { font-size: 26px;}

    .serBenef-card {width: 250px;height: 300px;margin-right: 15px; border-radius: 12px;}
    .serBenef-card span {padding: 20px 0;}


}

@media (max-width: 360px) {   
    .serV-form {gap: 5px;} 
    .serV-form a {padding: 0 10px;min-width: 150px;}
    .subVT-wrap .subVT-title span { font-size: 16px;}
    
    .mcontent-title p {font-size: 22px;}

}