/* header */
header {width: 100%; position: sticky; z-index: 99; top: 0;}
header .header-nav {background: #fff; height: 90px; border-bottom: 1px solid #c0c0c0;}
header .header-nav #logo {position: absolute; left: 20px; top: 50%; transform: translateY(-50%); width: 298px; height: 31px;}
header .header-nav nav ul li a {color: #444; font-size: 14px; padding: 0 24px; letter-spacing: 0.1em; transition: all ease-in-out 0.3s;}
header .header-nav nav ul li a:hover, header .header-nav nav ul li a.on {color: #000;}

@media (max-width: 767px) {
    header .header-nav {height: 84px;}
    header .header-nav #logo {width: 257px; height: 14px; overflow: hidden;}
    header .header-nav nav {
        position: fixed;
        top: 0;
        right: 0;
        background: #f2f2ee;
        width: 100%;
        height: 100%;
        z-index: 1;
        transition: all 0.5s;
        transform: translateX(100%);
        opacity: 0;
    }
    header .header-nav nav.is-active {
        transform: translateX(0);
        opacity: 1;
        transition: all 0.4s cubic-bezier(0.165,0.84,0.44,1);
    }
    header .header-nav nav ul {display: block !important; padding-top: 69px;}
    header .header-nav nav ul li a {font-size: 20px; padding: 15px 20px; display: block;}
    .mobile-gnb {display: block; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); z-index: 2;}
    .mobile-gnb .line {
        width: 30px;
        height: 3px;
        background-color: #333;
        display: block;
        margin: 5px auto;
        -webkit-transition: all 0.3s ease-in-out;
        -o-transition: all 0.3s ease-in-out;
        transition: all 0.3s ease-in-out;
    }
    .mobile-gnb.is-active .line:nth-child(1) {
        -webkit-transform: translateY(7.5px) rotate(45deg);
        -ms-transform: translateY(7.5px) rotate(45deg);
        -o-transform: translateY(7.5px) rotate(45deg);
        transform: translateY(7.5px) rotate(45deg);
    }
    .mobile-gnb.is-active .line:nth-child(2) {opacity: 0;}
    .mobile-gnb.is-active .line:nth-child(3) {
        -webkit-transform: translateY(-7.5px) rotate(-45deg);
        -ms-transform: translateY(-7.5px) rotate(-45deg);
        -o-transform: translateY(-7.5px) rotate(-45deg);
        transform: translateY(-7.5px) rotate(-45deg);
    }
}
@media (min-width: 768px) {
    .mobile-gnb {display: none;}
}

/* 푸터 */
footer {padding: 110px 0;}
footer .sns {width: 40px; height: 40px; border-radius: 50%; border: 1px solid #63642a;}
footer .sns a {height: 100%;}

/* main */
#main-visual {
    animation: fadein 2s;
    -moz-animation: fadein 2s; /* Firefox */
    -webkit-animation: fadein 2s; /* Safari and Chrome */
    -o-animation: fadein 2s; /* Opera */
}
@keyframes fadein {
    from {
        opacity:0;
    }
    to {
        opacity:1;
    }
}
@-moz-keyframes fadein { /* Firefox */
    from {
        opacity:0;
    }
    to {
        opacity:1;
    }
}
@-webkit-keyframes fadein { /* Safari and Chrome */
    from {
        opacity:0;
    }
    to {
        opacity:1;
    }
}
@-o-keyframes fadein { /* Opera */
    from {
        opacity:0;
    }
    to {
        opacity: 1;
    }
}
#main-visual .visual {height: calc(100vh - 90px); overflow: hidden;}
#main-visual .visual ul {align-items: center;}
#main-visual .visual .main-thumnail {height: calc(100vh - 90px);}
#main-visual .visual .main-thumnail img {width: 100%; height: 100%; object-fit: cover;}
.description {background: rgba(31,31,31,0.0); opacity: 0; filter: alpha(opacity=0); position: absolute; top: 0; left: 0; width: 100%; height: 100%; text-align: center; overflow: hidden; transition: all .4s ease-in-out; -webkit-transition: all .4s ease-in-out; -moz-transition: all .4s ease-in-out; -o-transition: all .4s ease-in-out; padding: 0;}
.description:hover {background: rgba(31,31,31,0.6); opacity: 1; filter: alpha(opacity=0.6);cursor: pointer;}
#main-visual .description:hover {background: linear-gradient(to top, #000, rgba(38,38,38,0.474) 35%, rgba(0,0,0,0) 60%); opacity: 1; filter: alpha(opacity=0.6);cursor: pointer;}
#main-visual .visual .description {height: calc(100vh - 90px);}
.description a {display: block; position: relative; width: 100%; height: 100%; cursor: pointer;}
.description h2 {font-size: 36px; color: #fff; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}
#main-visual .description .description-title {position: absolute; left: 82px; bottom: 60px; top: auto; transform: translate(0, 0);}
#main-visual .description .description-title h2 {position: relative; left: auto; bottom: auto; top: auto; transform: translate(0, 0);}
#main-visual .description .description-title ul li {margin: 0 16px; position: relative;}
#main-visual .description .description-title ul li::after {content: ""; position: absolute; width: 2px; height: 20px; background-color: #fff; display: block; top: 50%; right: -16px; transform: translateY(-50%);}
#main-visual .description .description-title ul li:last-child::after {display: none;}
#project .description h2 {font-size: 28px;}

#service {padding: 120px 0; background: url(../../img/main-service-bg.jpg) center center no-repeat; background-size: cover;}
#service .container {max-width: 740px;}
#service h3 {font-size: 56px;}
#service ul {width: 585px;}
#service ul li {grid-template-columns: 60px auto; padding: 30px 40px; border-radius: 10px; background: #fff; gap: 50px;}

#contact {padding: 160px 0;}
#contact .yellow {letter-spacing: 0.12em;}

.mobile-top {display: none;}

@media (max-width: 991px) {
    #main-visual .visual {height: 100%; overflow: auto;}
    #main-visual .visual > ul {grid-template-columns: 1fr;}
    #main-visual .visual > ul > li {height: calc(100vh - 90px / 3);}
    #main-visual .visual .main-thumnail {height: 100%; overflow: hidden;}
    #main-visual .visual .description {height: 100%;}
}

@media (max-width: 767px) {
    footer {padding: 40px 0;}
    #main-visual .visual {height: 100%; overflow: auto;}
    #main-visual .visual.container {padding: 0;}
    #main-visual .visual > ul {align-items: center; margin-top: 0; gap: 0;}
    #main-visual .visual > ul ul {padding: 0; display: block;}
    #main-visual .visual > ul > li {height: 200px; overflow: hidden; align-content: center;}
    .description {background: rgba(31,31,31,0.6); opacity: 1; filter: alpha(opacity=0.6);}
    .description h2 {font-size: 25px;}
    #main-visual .visual .main-thumnail {height: 100%;}
    #main-visual .visual .description {height: 100%;}
    #main-visual .description {background: rgba(31,31,31,0.6); opacity: 1; filter: alpha(opacity=0.6);}
    #main-visual .description .description-title {position: absolute; left: 50%; bottom: auto; top: 50%; transform: translate(-50%, -50%);}
    #main-visual .description .description-title.flex {display: block;}
    #main-visual .description .description-title ul li a {height: auto;}
    
    #main-visual .description .description-title ul li {margin: 0 16px; position: relative;}
    #main-visual .description .description-title ul li::after, #main-visual .description .description-title ul li:last-child::after {display: none;}
    #main-visual .description:hover {background: rgba(31,31,31,0.6); opacity: 1;}

    #main-company p {font-size: 12px;}

    #project .description h2 {font-weight: 300; font-size: 25px;}
    #service {padding: 35px 0;}
    #service h3 {font-size: 24px; margin-top: 25px;}
    #service img {width: 96px;}
    #service .copy {margin-top: 15px; font-size: 16px;}
    #service .grid-2 {text-align: center;}
    #service .grid-2 h3 {text-align: left;}
    #service ul {width: 100%; margin-top: 50px; gap: 48px;}
    #service ul li {grid-template-columns: 1fr; padding: 0; border-radius: 0; background: transparent; gap: 9px;}
    #service ul li img {display: inline-block;}
    #contact {padding: 35px 0 110px 0;}
    #contact .map iframe {width: 100% !important;}
    #contact h3 {text-align: left;}
    .mobile-top {display: block; position: fixed; right: 0; bottom: 20px;}
    .mobile-top a {color: #fff; font-size: 20px; width: 48px; height: 48px; line-height: 48px; text-align: center; display: block; background: #9a9a9a;}
    .mail-link {text-decoration: underline;}
}

#project .sub-title {margin-top: 70px;}
.tab {margin: 50px 0;}
.tab ul {gap: 24px;}
.tab ul li {position: relative;}
.tab ul li a {color: #9a9a9a; letter-spacing: 0.1em; font-weight: 300; transition: all ease-in-out 0.3s; padding-bottom: 5px;}
.tab ul li a.on {color: #63642a; font-weight: 600; text-decoration: underline;}
.tab ul li .sub-nav {position: absolute; top: 30px; display: none; box-shadow: 0 4px 20px rgba(0,0,0,0.25); z-index: 9; width: 183px; background: #fff;}
.tab ul li .sub-nav li a {padding: 10px 20px; font-weight: 300; font-size: 16px; display: block; transition: all ease-in-out 0.3s; color: #000; letter-spacing: 0.05em;}
.tab ul li .sub-nav li a.active /*.tab ul li .sub-nav li a:hover*/ {font-weight: 500;}
#project .project-list {margin-bottom: 250px;}
#project .project-detail {margin: 0 auto 194px auto;}
#project .project-detail > div {grid-template-columns: 430px auto;}
#project .project-detail .detail-txt {margin: 60px 0 175px;}
#project .project-detail .detail-txt p {margin-top: 30px;}
#project .project-detail .detail-txt .list-num {display: none;}
#project .project-detail .detail-img {gap: 12px;}
#project .project-detail .detail-img > div {gap: 12px;}
#project .project-detail .detail-img .large-img img {object-fit: cover; aspect-ratio: 1.78/1;}
#project .project-detail .detail ul li:first-child {display: none;}
#project .project-detail .detail ul li img {width: 100%;}
#project .project-detail .detail-thumbnail > ul {gap: 12px;}
#project .project-detail .detail-thumbnail > ul li {display: grid; align-items: center; align-content: center; overflow: hidden;}
#project .project-detail .detail-thumbnail a.thumbnail {background: #1f1f1f;}
#project .project-detail .detail-thumbnail a.thumbnail img {object-fit: cover;}
#project .project-detail .detail-thumbnail a.thumbnail.on img {opacity: 0.4;}
#project .project-more {margin-top: 180px;}

@media (max-width: 767px) {
    #project .sub-title {margin: 0;}
    #project .sub-title h3 {display: none;}
    .tab {margin: 25px 0;}
    .tab ul li a {font-size: 16px;}
    #project .project-list {margin: 0;}
    #project .project-list ul {gap: 0}
    #project .project-list ul li {height: auto; align-content: center;}

    #project .project-detail {
        margin: 0 auto 80px auto;
    }
    #project .project-detail > div {grid-template-columns: 1fr;}
    #project .project-detail .detail-txt {
        padding: 20px 20px 50px 20px;
        margin: 0;
    }
    #project .project-detail .detail-txt h4 {font-size: 24px;}
    #project .project-detail .detail-txt p {margin-top: 20px;}
    /* #project .project-detail .detail-txt .list-num {display: block;} */
    #project .project-detail .detail-img > div {
        gap: 12px;
        grid-template-columns: 1fr;
    }
    #project .project-detail .detail-img .large-img {display: none;}
    #project .project-detail .detail-thumbnail > ul li {
        width: 100%;
        height: 100%;
    }
    #project .project-detail .detail-thumbnail a.thumbnail.on img {opacity: 1;}

    #project .project-detail .detail ul li:first-child {display: block;}

    #project .project-more {margin-top: 40px; padding: 0 0 0 20px;}
    #project .project-more h2 {font-size: 24px;}
    #project .project-more ul {margin-top: 15px; grid-template-columns: repeat(3, 1fr); overflow-x: scroll; -ms-overflow-style: none; /* 인터넷 익스플로러 */ scrollbar-width: none; /* 파이어폭스 */}
    #project .project-more ul::-webkit-scrollbar {
        display: none; /* 크롬, 사파리, 오페라, 엣지 */
    }
    #project .project-more ul li {min-width: 280px;}
    #project .project-more ul li a h4 {font-size: 16px;}
    #project .project-more ul li a p {font-size: 14px;}
}
@media (min-width: 768px) {
    #project .project-detail > div {
        grid-template-columns: 1fr;
    }
    #project .project-detail .detail-txt p {
        margin-top: 30px; max-width: 540px;
    }
    #project .project-detail .detail-img > div {
        grid-template-columns: 1fr;
    }
    #project .project-detail .detail-thumbnail > ul {
        grid-template-columns: repeat(4, 1fr);
    }
    #project .project-detail .detail-thumbnail > ul li {
        width: 100%;
        height: 160px;
    }
    #project .project-detail .detail-thumbnail a.thumbnail img {
        min-width: 100%;
        min-height: 160px;
    }
}
@media (min-width: 992px) {
    #project .project-detail .detail-img > div {grid-template-columns: auto 272px; justify-content: center;}
    #project .project-detail .detail-img .large-img {width: 100%;}
    #project .project-detail .detail-img .large-img img {width: 100%; height: 100%; object-fit: cover; display: block;}
    #project .project-detail .detail-thumbnail > ul li {width: 130px; height: 120px;}
    #project .project-detail .detail-thumbnail a.thumbnail {background: #1f1f1f;}
    #project .project-detail .detail-thumbnail > ul {
        grid-template-columns: 130px 130px;
    }
}
@media (min-width: 1200px) {
    #project .project-detail > div {grid-template-columns: auto 850px;}
    #project .project-detail .detail-img > div {grid-template-columns: 566px auto;}
}

.img-404 {width: 50%;}
.img-404 img {border-radius: 0 0 0 353px;}
.txt-404 {padding-left: 20px;}
.txt-404 .button-404 a {font-size: 18px; color: #fff; padding: 26px 54px; background: #63642a; display: inline-block; letter-spacing: 0.2em;}

@media (max-width: 767px) {
    #not-found-404 > div {flex-wrap: wrap; flex-direction: row; justify-content: center; text-align: center;}
    .img-404 {width: 100%; height: 281px; overflow: hidden; align-content: center; display: grid;}
    .img-404 img {border-radius: 0;}
    .txt-404 {width: 100%; padding: 0 20px; margin-top: 30px;}
    .txt-404 h2 {font-size: 72px;}
    .txt-404 p {font-size: 16px;}
    .txt-404 .button-404 {margin-top: 30px;}
    .txt-404 .button-404 a {display: block; padding: 18px 0;}
}
@media (min-width: 768px) {
    .txt-404 {padding-right: 4%;}
    .txt-404 h2 {font-size: 150px;}
    .txt-404 p {font-size: 18px;}
}
@media (min-width: 992px) {
    .txt-404 {padding-right: 4%;}
}