@charset "utf-8";
/* layout.css는 전체적인 레이아웃 스타일을 정의합니다. */ 

#skipToContent a {z-index:100000;position:absolute;top:0;left:0;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden}
#skipToContent a:focus, 
#skipToContent a:active {width:200px;height:50px;background:#21272e;color:#fff;font-size:14px;font-weight:bold;text-align:center;text-decoration:none;line-height:50px}

.only-desktop-tablet {display:block;}
.only-desktop {display:block;}
.only-tablet {display:none;}
.only-tablet-mobile {display:none;}
.only-mobile {display:none;}

.contain {max-width:1260px; padding-left:30px; padding-right:30px; margin:0 auto;}
.contain:after {content:""; display:block; clear:both;}


/* header */
#wrapper {padding-left:360px; padding-top:100px; position:relative;}
#header {position:fixed; left:0; top:0; padding-top:40px; padding-bottom:50px; background:#fff; z-index:20; width:300px; z-index:999; height:100%; min-height:100vh;}
#header .contain {height:100%; display:flex; flex-direction:column; justify-content:space-between; padding-left:50px;}
#header .contain.is-sticky {max-height:calc(100vh - 120px);}
#header .contain:after {display:none;}
.sitelogo {margin-bottom:115px;}
.sitelogo a {display:flex; height:70px; align-items:center;}

.submenu {display:none;  padding-top:18px;}
.submenu li {margin-bottom:10px; line-height:1.2em;}
.submenu li:last-child {margin-bottom:0;}
.submenu  a {font-size:13px; font-weight:400; line-height:1.2em; letter-spacing:-0.03em; color:#868686;}

#gnb  {margin-bottom:50px;}
#gnb > ul > li.active .submenu {display:block;}
#gnb > ul > li.active .submenu li a:hover,
#gnb > ul > li.active .submenu li.on a {color:#4d4d4d; font-weight:500;}

#gnb > ul > li {margin-bottom:30px;}
#gnb > ul > li:last-child {margin-bottom:0;}
#gnb > ul > li > a {position:relative;  display:inline-block; font-size:14px; color:#686868; letter-spacing:0; font-weight:500; padding-bottom:6px;}
#gnb > ul > li > a:before {content:""; position:absolute; width:0; height:2px; background:#a9a9a9; left:0; bottom:0; transition:0.2s all ease;}
#gnb > ul > li.active > a:before {width:100%;}
#gnb > ul > li.active > a {color:#242424;}

#header .foot-copy .contain {padding:0;}

/* for mobile */
.btn-m-menu {display:none; position:absolute; top:50%; margin-top:-11px; right:30px; width:27px; height:22px; text-align:center; text-indent:-9999em; z-index:50;}
.btn-m-menu span {position:absolute; right:0; top:50%; margin-top:-1.5px; width:27px; height:2px; background:#242424;}
.btn-m-menu span:before,
.btn-m-menu span:after {content:" "; position:absolute; right:0; width:27px; height:2px; background:#242424; transition-duration:0.3s, 0.3s; transition-delay:0.3s, 0s;}
.btn-m-menu span:before {top:-10px; transition-property:top, transform;}
.btn-m-menu span:after {bottom:-10px; transition-property:bottom, transform;} 

.mobile-navigation {position:fixed; top:0; right:0; padding:20px 0; width:300px; height:100%; overflow:auto; transition:.3s ease-in-out; -ms-transform:translateX(100%); transform:translateX(100%); background:#ffffff; z-index:101;}
.mobile-navigation .home {padding-bottom:20px; text-align:center; border-bottom:1px solid #ddd;}
.mobile-navigation .home img {height:40px;}
.mobile-navigation .nav-menu>ul>li {border-bottom:1px solid #ddd;}
.mobile-navigation .nav-menu>ul>li>a {position:relative; padding:14px 15px; display:block; color:#242424; font-size:1.3em; font-weight:500; line-height:1.3em;}
.mobile-navigation .nav-menu>ul>li.active>a {color:#555;}

.mobile-navigation .nav-menu>ul>li.active>a:after{transform: translateY(-35%) rotate(-135deg); border-color: #555;}
.mobile-navigation .nav-menu .submenu {display:none; position:static; transform: translateX(0); margin:-1px 0 0 0; width:100%;  padding:10px 0;background:#666; padding-bottom:10px;}
.mobile-navigation .nav-menu .submenu>ul {display:block; width:100%; background:transparent;}
.mobile-navigation .nav-menu .submenu>ul>li {text-align:left; padding:0;}
.mobile-navigation .nav-menu .submenu>ul>li>a {display:block; position:relative; padding:5px 0 5px 25px; color:#fff; font-size:16px; font-weight:400; line-height:1.3em;}
.mobile-navigation .nav-menu .submenu>ul>li>a:after {content:"";position:absolute; top:14px; left:15px; width:4px; height:4px; border-radius:100%; background:#fff; opacity:0.6; transition:.2s ease-in-out;}
.mobile-navigation .nav-menu .submenu>ul>li>a:hover {color:#fff}
.mobile-navigation .nav-menu .submenu>ul>li>a:hover:after {background:#fff; opacity:1;}
.mobile-navigation .close {position:absolute; top:15px; right:18px; width:24px; height:24px; text-indent:-9999em; overflow:hidden;}
.mobile-navigation .close:before,
.mobile-navigation .close:after {content:" "; position:absolute; top:12px; left:0; width:100%; height:2px; background:#242424;}
.mobile-navigation .close:before {transform:rotate(45deg);}
.mobile-navigation .close:after {transform:rotate(-45deg);}
.mobile-overlay {display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:#000; opacity:.76; z-index:98;} 

html.menu-opened {overflow:hidden;}
html.menu-opened .mobile-navigation {-ms-transform:translateX(0); transform:translateX(0);}
html.menu-opened .mobile-overlay {display:block;}


/* main */
.main-cont {padding-right:320px; padding-bottom:50px; filter: blur(12px); transition: filter 0.5s 0.2s cubic-bezier(0.445, 0.05, 0.55, 0.95),opacity 0.3s cubic-bezier(0.445, 0.05, 0.55, 0.95); opacity: 0;}
#main.load .main-cont {filter:blur(0); opacity:1;}

.portfolio-list ul {display:flex; flex-wrap:wrap; margin:-3px;}
.portfolio-list ul li {width:33.333%; padding:3px;}
.portfolio-list ul li  a {position:relative; display:block;}
.portfolio-list ul li .cnt {position:absolute; display:flex; align-items:center; justify-content:center; left:0; top:0; width:100%; height:100%; z-index:1; background:rgba(0,0,0,0.7); padding:20px; opacity:0; transition:0.2s all ease;}
.portfolio-list ul li .tit {font-family:"pretendard",sans-serif; font-size:16px; font-weight:500; line-height:1.2em; letter-spacing:-0.02em; color:#fff; display:inline-block; position:relative; opacity:0; transform:translateY(-10px);}
/* .portfolio-list ul li .tit:before {content:""; position:absolute; width:10px; height:10px; border-right:1px solid #fff; border-top:1px solid #fff; right:0; transform:rotate(45deg); top:50%; margin-top:-5px;}
 */.portfolio-list ul li .thumb {position:relative; padding-bottom:75%; overflow:hidden;}
.portfolio-list ul li .thumb img {position:absolute; top:50%; left:0; transition:.4s ease-in-out; transform:translateY(-50%); -ms-transform:translateY(-50%); -webkit-transform:translateY(-50%); width:100%; height:auto !important; max-width:100%; min-height:100%; object-fit:cover;}

.portfolio-list ul li a:hover .cnt {opacity:1;}
.portfolio-list ul li a:hover .tit {opacity:1; transform:translateY(0); transition:.4s ease-in-out;}

/* sub */

#contArea {max-width:1260px; width:100%; padding-left:30px; padding-right:30px;}

#contArea.wide {max-width:100%; padding-left:0; padding-right:0;}



.real-cont {padding-bottom:50px;}
.real-cont.none {padding-bottom:0;}

/* footer */
#footer {display:none; font-size:10px; line-height:1.4em; letter-spacing:-0.03em; color:#9d9d9d;}
.foot-info address {font-style:normal; font-size:10px; line-height:1.4em; letter-spacing:-0.03em; color:#9d9d9d;}
.foot-info address strong {font-size:11px ;font-weight:500; display:block; color:#8d8d8d; margin-bottom:5px;}
.foot-info address span {display:block;}
.foot-info .copyright {margin-top:5px;}
.scroll-top {position:fixed; right:20px; bottom:20px; z-index:99;}