@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-mobile {display:none;}

.contain {max-width:1260px; padding-left:30px; padding-right:30px; margin:0 auto;}

/* header */
#wrapper {padding-top:80px;}

#header {position:fixed; top:0; left:0; width:100%; padding:0 50px; background:#fff; box-shadow:0 0 3px rgba(0,0,0,.2); z-index:100;}
#header .inner {position:relative; height:80px; display:flex; align-items:center; justify-content:space-center; z-index:2;}

#gnb {flex:1 1 auto; min-width:0; width:1%; text-align:right;}
#gnb > ul {position:relative; display:inline-flex;}
#gnb > ul > li {margin-left:80px;}
#gnb > ul > li > a {position:relative; display:block; color:#2c2c2c; font-size:18px; font-weight:500; line-height:80px; letter-spacing:-.05em;}
#gnb > ul > li > a:after {content:""; position:absolute; bottom:0; left:50%; width:0; height:4px; background:#468745; transition:.2s;}
#gnb > ul > li.active > a:after {width:50px; margin-left:-25px;}
#gnb .submenu {display:none; position:absolute;}
#gnb .submenu > ul {display:flex;}
#gnb .submenu > ul > li {padding:0 15px;}
#gnb .submenu > ul > li:first-child {padding-left:0;}
#gnb .submenu > ul > li:last-child {padding-right:0;}
#gnb .submenu > ul > li > a {display:block; color:#fff; font-size:16px; font-weight:400; line-height:50px; letter-spacing:-.05em; white-space:nowrap;}
#gnb .submenu > ul > li > a:hover {color:#468745;}
#gnb > ul > li.m2 .submenu {right:0;}
#gnb > ul > li.m5 .submenu {right:0;}

.submenu-bg {display:none; position:absolute; left:0; width:100%; height:0; background:rgba(0,0,0,.7);}

/* for mobile */
.btn-m-menu {display:none; position:absolute; top:50%; right:0; margin-top:-12px; width:24px; height:24px; text-indent:-9999em;}
.btn-m-menu span {position:absolute; left:0; right:0; top:12px; height:2px; background:#2c2c2c;}
.btn-m-menu span:before,
.btn-m-menu span:after {content:" "; position:absolute; left:0; right:0; height:2px; background:#2c2c2c;}
.btn-m-menu span:before {top:-9px;}
.btn-m-menu span:after {bottom:-9px;}

.mobile-navigation {display:none; position:fixed; top:0; right:0; width:300px; height:100%; overflow:auto; transition:.2s linear; -ms-transform:translateX(100%); transform:translateX(100%); background:#fff; z-index:102;}
.mobile-navigation .home {display:flex; align-items:center; height:80px; padding:0 20px;}
.mobile-navigation .home img {height:36px;}
.mobile-navigation .links {text-align:center; padding:15px 0; background:#1f255d; color:#fff;}
.mobile-navigation .nav-menu>ul {border-top:1px solid #ddd;}
.mobile-navigation .nav-menu>ul>li {border-bottom:1px solid #ddd;}
.mobile-navigation .nav-menu>ul>li>a {position:relative; padding:10px 48px 10px 20px; display:block; color:#000; font-size:18px; font-weight:700; line-height:1.5em;}
.mobile-navigation .nav-menu>ul>li>a:after {content:""; position:absolute; top:50%; right:20px; transform:translateY(-75%) rotate(45deg); width:11px; height:11px; border-right:2px solid #505050; border-bottom:2px solid #505050;}
.mobile-navigation .nav-menu>ul>li.active>a {color:#fff; background:#468745}
.mobile-navigation .nav-menu>ul>li.active>a:after {transform:translateY(-35%) rotate(-135deg); border-color:#fff;}
.mobile-navigation .nav-menu .submenu {display:none; padding:10px 20px; background:#f8f8f8; color:#555; font-size:15px; font-weight:400; line-height:1.5em;}
.mobile-navigation .nav-menu .submenu > ul > li > a {display:block; position:relative; padding:5px 0; transition:color;}
.mobile-navigation .nav-menu .submenu > ul > li.active>a {color:#468745;}
.mobile-navigation .sns {text-align:center; padding:20px 0;}
.mobile-navigation .sns a {margin:0 5px;}
.mobile-navigation .sns img {width:35px;}
.mobile-navigation .close {position:absolute; top:20px; right:18px; width:26px; height:26px; text-indent:-9999em; overflow:hidden;}
.mobile-navigation .close:before,
.mobile-navigation .close:after {content:" "; position:absolute; top:12px; left:0; width:100%; height:3px; background:#454545; border-radius:3px;}
.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:0.6; z-index:101;}

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-links {display:flex; margin-bottom:10px;}
.main-links .cs {width:20%; padding:20px 50px; color:#fff; background:#202020;}
.main-links .cs h3 {font-family:'ROKAFSans',sans-serif; font-size:32px; font-weight:500; line-height:1.2em; letter-spacing:-.05em; margin:-3px 0 17px;}
.main-links .cs .tel {padding:5px 0; font-size:18px; font-weight:500; line-height:1.3em;}
.main-links .cs .tel span {display:inline-block; vertical-align:middle; margin:-.2em 15px 0 0; width:28px; height:28px; text-align:center; line-height:28px; background:#468745; border-radius:100%;}
.main-links .cs .kolas {padding:15px; margin-top:12px; background:#fff; text-align:center; color:#050505; font-size:12px; line-height:1.5em; letter-spacing:-.05em;}
.main-links .cs .kolas img {display:block; margin:0 auto 15px;}
.main-links .link {width:20%; padding:20px; color:#fff; text-align:center; display:flex; align-items:center; background-repeat:no-repeat; background-position:50% 50%; background-size:cover;}
.main-links .link .in {width:100%;}
.main-links .link .txt {font-size:30px; font-weight:700; line-height:1.333em; letter-spacing:-.05em;}
.main-links .link .vline {width:1px; height:0; margin:0 auto; background:#fff; overflow:hidden; transition:.4s;}
.main-links .link .more {display:none; margin:0 auto; border:1px solid #fff; width:112px; font-size:14px; line-height:45px;}
.main-links .link.bg1 {background-image:url("../images/main/link1_off.jpg");}
.main-links .link.bg2 {background-image:url("../images/main/link2_off.jpg");}
.main-links .link.bg3 {background-image:url("../images/main/link3_off.jpg");}
.main-links .link.bg4 {background-image:url("../images/main/link4_off.jpg");}
.main-links .link.bg1:hover {background-image:url("../images/main/link1_on.jpg");}
.main-links .link.bg2:hover {background-image:url("../images/main/link2_on.jpg");}
.main-links .link.bg3:hover {background-image:url("../images/main/link3_on.jpg");}
.main-links .link.bg4:hover {background-image:url("../images/main/link4_on.jpg");}
.main-links .link:hover .vline {height:40px; margin:20px auto;}
.main-links .link:hover .more {display:block;}

.main-visual {position:relative; color:#fff; overflow:hidden; margin-bottom:40px;}
.main-visual img {width:100%;}
.main-visual .desktop {display:block;}
.main-visual .mobile {display:none;}
.main-visual .slick-arrow {position:absolute; top:50%; margin-top:-30px; width:60px; height:60px; overflow:hidden; text-indent:-999em; border:1px solid #fff; border-radius:100%; background-color:transparent;  background-repeat:no-repeat; background-position:50% 50%; z-index:50;}
.main-visual .slick-prev {left:50px; background-image:url("../images/main/slide_prev.png");}
.main-visual .slick-next {right:50px; background-image:url("../images/main/slide_next.png");}
.main-visual .caption {position:absolute; top:50%; transform:translateY(-50%); width:100%; padding:0 13.5%;}
.main-visual .caption .txt1 {font-size:28px; font-weight:300; line-height:1.4em; letter-spacing:.15em; margin-bottom:10px; transition:.9s .2s; transform:translateX(30px); opacity:0;}
.main-visual .caption .txt2 {font-size:80px; font-weight:700; line-height:1.4em; letter-spacing:.35em; transition:.9s .4s; transform:translateX(30px); opacity:0;}
.main-visual .active .txt1 {transform:translateY(0); opacity:1;}
.main-visual .active .txt2 {transform:translateY(0); opacity:1;}

.main-cont-wrap {padding:0 50px; margin-bottom:100px; display:flex;}

.main-bnrs {width:360px; margin-right:50px;}
.main-bnrs a {display:block; position:relative; padding:50px; height:267px; color:#fff; background-repeat:no-repeat; background-position:50% 50%;}
.main-bnrs a:first-child {margin-bottom:10px;}
.main-bnrs .tit {font-size:24px; font-weight:700; line-height:1.3em; letter-spacing:-.05em; margin-top:-3px; margin-bottom:10px;}
.main-bnrs .txt {font-size:.95em; font-weight:300; line-height:1.438em; letter-spacing:-.05em;}
.main-bnrs .more {position:absolute; left:50px; bottom:50px; width:190px; padding:0 17px; line-height:48px; letter-spacing:-.05em; border:1px solid #ddd; background:url("../images/main/btn_arrow.png") right 17px center no-repeat;}
.main-bnrs .type1 {background-image: url("../images/main/bnr1.jpg");}
.main-bnrs .type2 {background-image: url("../images/main/bnr2.jpg");}

.main-posts {flex:1 1 auto; min-width:0; width:1%;}
.main-posts h2 {font-size:40px; line-height:1.3em; letter-spacing:-.05em; margin:-3px 0 10px;}
.main-posts .wrap {position:relative;}
.main-posts .tab {margin-bottom:50px;}
.main-posts .tab ul {display:flex;}
.main-posts .tab ul li {margin-right:50px;}
.main-posts .tab ul li a {display:block; position:relative; padding:8px 0; color:#797979; font-size:20px; font-weight:500; line-height:1.3em; letter-spacing:-.05em;}
.main-posts .tab ul li.active a {color:#468745;}
.main-posts .tab ul li.active a:after {content:""; position:absolute; bottom:0; left:0; right:0; height:3px; background:#468745;}
.main-posts .content ul {display:flex; margin:0 -8px;}
.main-posts .content ul li {width:25%; padding:0 8px;}
.main-posts .content ul li .box {display:block; background:#fff; height:393px; box-shadow:3px 3px 30px rgba(0,0,0,.15);}
.main-posts .content ul li .thumb {position:relative; height:191px; overflow:hidden;}
.main-posts .content ul li .thumb img {position:absolute; top:50%; left:0; 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;}
/*.main-posts .content ul li .thumb:after {content:""; position:absolute; top:0; left:0; right:0; bottom:0; background:url("../images/main/play.png") 50% 50% no-repeat;}*/
.main-posts .content ul li .tit {margin:-5px 0 15px; font-size:20px; font-weight:500; line-height:1.5em; letter-spacing:-.05em; height:3em; overflow:hidden; text-overflow:ellipsis; word-break:break-all; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;}
.main-posts .content ul li .txt {margin-bottom:60px; line-height:1.75em; font-weight:300; letter-spacing:-.06em; color:#797979; height:8.75em; overflow:hidden; text-overflow:ellipsis; word-break:break-all; white-space:normal; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical;}
.main-posts .content ul li .date {color:#adadad; font-weight:300; line-height:1.3em;}
.main-posts .content ul li .thumb-video {position:relative; padding-bottom:56.25%; overflow:hidden;}
.main-posts .content ul li .thumb-video video {position:absolute; top:0; left:0; width:100%; height:100%;}
.main-posts .content .post ul li .box {padding:50px 40px;}
.main-posts .content .video ul li .cnt {padding:40px 30px;}
.main-posts .content .video ul li .cnt .tit {margin-bottom:47px;}
.main-posts .more {position:absolute; top:11px; right:0; font-size:18px; font-weight:500; line-height:1.3em; letter-spacing:-.03em;}
.main-posts .more:after {content:""; display:inline-block; vertical-align:middle; margin:-.2em 0 0 10px; width:25px; height:25px; background:url("../images/main/more.png") 50% 50% no-repeat; border-radius:100%; border:2px solid #505050;}

.main-sites {padding:19px 50px; border-top:1px solid #dfdfdf; display:flex; align-items:center;}
.main-sites .title {display:flex; align-items:center; margin-right:79px;}
.main-sites .title h2 {font-size:24px; line-height:1.3em; letter-spacing:-.05em;}
.main-sites .title p {color:#c0c0c0; font-size:14px; font-weight:500; line-height:1.3em; letter-spacing:-.05em; margin-left:15px;}
.main-sites .arrows {margin-right:30px; width:55px; display:flex; justify-content:space-between; flex-wrap:wrap;}
.main-sites .arrows a {height:25px; border:1px solid #797979;}
.main-sites .arrows .all {width:100%; margin-bottom:10px; text-align:center; color:#797979; font-size:12px; line-height:23px;}
.main-sites .arrows .slide-btn {width:25px; background-repeat:no-repeat; background-position:50% 50%;}
.main-sites .arrows .slide-btn.prev {background-image: url("../images/main/slide2_prev.png");}
.main-sites .arrows .slide-btn.next {background-image: url("../images/main/slide2_next.png");}
.main-sites .slider {flex:1 1 auto; min-width:0; width:1%; position:relative; overflow:hidden;}
.main-sites .slider ul {display:flex;}
.main-sites .slider ul li {flex:0 0 auto; width:180px; margin-right:33px;}
.main-sites .slider ul li a {display:block; position:relative; height:60px; border:1px solid #dfdfdf;}
.main-sites .slider ul li a img {position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); -ms-transform:translate(-50%,-50%); -webkit-transform:translate(-50%,-50%); width:auto !important; height:auto !important; max-width:100%; max-height:100%; object-fit:contain;}

/* sub */
.sub-visual {display:flex; align-items:center; height:300px; color:#fff; background-repeat:no-repeat; background-position:50% 50%; background-size:cover; overflow:hidden;}
.sub-visual .inner {width:100%;}
.sub-visual h2 {font-size:50px; font-weight:700; line-height:1.3em; letter-spacing:-.05em; margin-bottom:17px;}
.sub-visual p {font-size:18px; font-weight:300; line-height:1.4em; letter-spacing:-.05em;}
.sub-visual.bg0 {background-image:url("../images/common/sv0.jpg");}
.sub-visual.bg1 {background-image:url("../images/common/sv1.jpg");}
.sub-visual.bg2 {background-image:url("../images/common/sv2.jpg");}
.sub-visual.bg2-1 {background-image:url("../images/common/sv2_1.jpg");}
.sub-visual.bg2-2 {background-image:url("../images/common/sv2_2.jpg");}
.sub-visual.bg2-3 {background-image:url("../images/common/sv2_3.jpg");}
.sub-visual.bg2-4 {background-image:url("../images/common/sv2_4.jpg");}
.sub-visual.bg3 {background-image:url("../images/common/sv3.jpg");}
.sub-visual.bg4 {background-image:url("../images/common/sv4.jpg");}
.sub-visual.bg5 {background-image:url("../images/common/sv5.jpg");}

.lnb {border-bottom:1px solid #dfdfdf;}
.lnb .swiper-container {margin-bottom:-1px;}
.lnb ul li {width:auto; margin-right:50px;}
.lnb ul li:last-child {margin-right:0;}
.lnb ul li a {position:relative; display:flex; align-items:center; justify-content:center; height:80px; font-size:18px; line-height:1.3em; letter-spacing:-.05em;}
.lnb ul li.active a:after {content:""; position:absolute; bottom:0; left:0; right:0; height:3px; background:#006f45;}

#contArea {max-width:1260px; padding-left:30px; padding-right:30px; margin:0 auto;}
#contArea.wide {max-width:100%; padding-left:0; padding-right:0;}

.sub-title {position:relative; margin:90px 0 25px;}
.sub-title h2 {font-size:34px; line-height:1.3em; letter-spacing:-.05em;}
.sub-title .btn-qa {position:absolute; top:3px; right:0; padding:0 16px; color:#fff; line-height:38px; letter-spacing:-.04em; background:#006f45;}
.sub-title .btn-qa:before {content:""; display:inline-block; vertical-align:middle; margin:-.3em 4px 0 0; width:20px; height:20px; background:url("../images/sub/ico_qa.png") 50% 50% no-repeat;}

.real-cont {min-height:300px; padding-bottom:100px;}

/* Service Map Styles */
.main-service-map {
	position: relative;
	width: 100%;
	height: 900px;
	margin: 10px auto;
	background: url('/images/sub/service_bg.jpg') center center;
	background-size: cover;
	overflow: hidden;
}

.service-map-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.3);
}

.service-title {
	position: absolute;
	top: 30px;
	left: 30px;
	color: white;
	z-index: 10;
}

.service-title h2 {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 5px;
	text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}

.service-title p {
	font-size: 1rem;
	font-weight: 300;
	text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}

/* 육각형 배치 컨테이너 */
.hexagon-container {
	position: relative;
	width: 1100px;
	height: 700px;
	margin: 80px auto 0;
	z-index: 5;
}

/* 서비스 박스 기본 스타일 */
.service-box {
	position: absolute;
	width: 270px;
	height: 240px;
	overflow: hidden;
	cursor: pointer;
}

.service-box img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	clip-path: polygon(25% 6.7%, 75% 6.7%, 100% 50%, 75% 93.3%, 25% 93.3%, 0% 50%);
	transition: all 0.3s ease;
}

/* 중앙 위치 (service1_1.jpg) */
.service-box.center {
	top: 58%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 370px;
	height: 335px;
}

/* 육각형 배치 - 6개 위치 */
.service-box.pos1 {
	top: 0%;
	left: 50%;
	transform: translateX(-50%);
}

.service-box.pos2 {
	top: 24%;
	right: 10%;
}

.service-box.pos3 {
	bottom: 5%;
	right: 10%;
}

.service-box.pos4 {
	bottom: -17%;
	left: 50%;
	transform: translateX(-50%);
}

.service-box.pos5 {
	bottom: 5%;
	left: 10%;
}

.service-box.pos6 {
	top: 24%;
	left: 10%;
}

/* 텍스트 레이블 스타일 */
.service-label {
	position: absolute;
	color: white;
	text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
	z-index: 10;
}

.service-label h3 {
	font-size: 1.3rem;
	font-weight: 700;
	margin: 0 0 8px 0;
	line-height: 1.2;
}

.service-label p {
	font-size: 0.95rem;
	font-weight: 400;
	margin: 0;
	line-height: 1.4;
}

/* 각 서비스별 텍스트 위치 */
.label-architectural {
	top: 5%;
	right: 25%;
	text-align: right;
	max-width: 250px;
}

.label-noise {
	top: 20%;
	left: -2%;
	text-align: left;
	max-width: 250px;
}

.label-stage {
	top: 20%;
	right: -2%;
	text-align: right;
	max-width: 250px;
}

.label-research {
	bottom: 20%;
	left: -2%;
	text-align: left;
	max-width: 250px;
}

.label-educational {
	bottom: -10%;
	left: 15%;
	text-align: center;
	max-width: 300px;
}

.label-kolas {
	bottom: -10%;
	right: -2%;
	text-align: right;
	max-width: 250px;
}

/* 연결선 효과 */
.connection-lines {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
}

.connection-line {
	position: absolute;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent);
	opacity: 0.6;
}

/* footer */
#footer {padding:37px 50px; background:#333; color:#bdbdbd; font-size:14px; font-weight:300; line-height:1.571em;}
#footer .inner {display:flex; align-items:center;}
#footer address {font-style:normal;}

.foot-info {flex:1 1 auto; min-width:0; width:1%; margin-right:60px;}
.foot-info .comp-name {font-weight:400; color:#fff; font-size:16px; margin-bottom:10px;}
.foot-info address span {display:inline-block; margin-right:14px;}