/* 기본 설정 */

html,
body {
  padding: 0;
  margin: 0;
}

body {
  font-family: "Helvetica Neue", Helvetica, arial, "Apple SD Gothic Neo", "애플 SD 고딕 Neo", NanumGothic, 돋움, Dotum, sans-serif;
  overflow-y: auto;
  font-size: 100%;
  min-width: 320px;
  background-color: #fff;
}

ul, ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

a {
  text-decoration: none;
  color: inherit;
}

h1, h2, h3, h4, h5 {
  padding: 0;
  margin: 0;
}

/* input 기본 스타일 초기화 */
input {
    -webkit-border-radius:0px;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
            outline-width: 0;
}

*:focus {
    outline: none;
}

/* IE10 이상에서 input box 에 추가된 지우기 버튼 제거 */
input::-ms-clear { display: none; }

/* input type number 에서 화살표 제거 */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}

/* Select box 스타일 초기화 */ 
select {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}

/* IE 에서 Select box 화살표 제거 */ 
select::-ms-expand { display: none; }

/* 기본 레이아웃 설정 */
#container {
    width: auto;
    max-width: 1920px;
    margin: auto;
    overflow: hidden;
}

.section {
    padding: 3vh;
    width: calc(100% - 6vh);
    min-height: 94vh;
    background-position: center;
    background-size: cover;
    position: relative;
    transition: opacity 1.2s;
}

.section-header {
    text-align: center;
    font-size: 18px;
    line-height: 30px;
    margin: 3.2em auto;
    z-index: 1;
    position: relative;
    top: 0;
}

.section-header i {
    font-size: 68px;
    line-height: 80px;
    display: block;
}

.content-wrap {
    max-width: 960px;
    width: calc(100vw - 160px);
    margin: 0 auto 7.5em;
    line-height: 1.55em;
    border-color: inherit;
    color: inherit;
}

.content-wrap h1 {
    font-size: 250%;
    line-height: 1.85em;
    margin: 0.2em 0 0.25em;
}

.content-wrap h2 {
    font-size: 130%;
    line-height: 1.85em;
    margin: 0.3em 0 0.35em;
}   

.content-wrap h3 {
    font-size: 125%;
    line-height: 1.75em;
    margin: 0.45em 0 0.45em;
}

.content-wrap h4 {
    font-size: 115%;
    line-height: 1.65em;
    margin: 0.25em 0 0.25em;
    padding: 0.45em 0 0;
}

.content-wrap h5 {
    font-size: 110%;
    line-height: 1.65em;
    margin: 0.25em 0 0.25em;
    padding: 0.45em 0 0;
}

.content-wrap img:not(.acf-map img),
.content-wrap iframe {
    max-width: 100%;
    height: auto;
    margin: 15px 0;
}

.content-wrap p > img:first-child,
.content-wrap p > iframe:first-child {
    margin-top: 0;
}

.content-wrap p > img:last-child,
.content-wrap p > iframe:last-child {
    margin-bottom: 0;
}

.content-wrap a.button {
    padding: 15px 18px;
    background-color: #fff;
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.12);
    border-radius: 4px;
    font-size: 14px;
    font-weight: 800;
    margin: 1em 0 1.5em;
    display: inline-block;
    color: inherit;
    border-width: 1px;
    border-style: solid;
    border-color: inherit;
}

.button-bg-transparent a.button {
    background-color: transparent;
}

.content-wrap.center {
    margin: auto;
    text-align: center;
}

.content-wrap.top {
    margin: 0 auto auto;
}

.content-wrap.bottom {
    margin: auto auto 0;
}

.content-wrap.left {
    text-align: left;
}

.content-wrap.right {
    text-align: right;
}


/* 커버 설정 */
#cover {
    z-index: 10;
    display: flex;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
}

.cover-wrap {
    display: flex;
    width: 100%;
    max-width: 1200px;
    margin: auto;
    position: relative;
}

#logo-wrap {
    width: calc(50% - 20px);
    height: 100%;
    margin-right: 20px;
    position: absolute;
    top: 0;
    display: flex;
}

#logo {
    width: 100%;
    height: 100%;
    max-width: 600px;
    max-height: 600px;
    margin: auto;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

#cover-logo {
    width: 50vw;
    height: 100vh;
    max-width: 320px;
    max-height: 320px;
    margin: auto;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    font-size: 0;
    text-indent: -99999em;

    transition: opacity 0.4s;
}

#menu {
    width: calc(50% - 20px);
    max-height: 100%;
    margin: auto 0 auto calc(50% + 20px);
    color: inherit;
    border-color: inherit;
}

#menu a {
    height: 14.4vh;
    max-height: 82px;
    color: inherit;
    display: flex;
    padding: 2vh 0;
    position: relative;
    opacity: 0;
}

#menu a.show {
	opacity: 1;

	/* 자연스럽게 변경 */
	transition: opacity 0.6s;
	-webkit-transition: opacity 0.6s;
	-moz-transition: opacity 0.6s;
	-o-transition: opacity 0.6s;
	-ms-transition: opacity 0.6s;
}


#menu a::after {
    content: '';
    display: block;
    clear: both;
}

#menu i {
    font-size: 10vh;
    line-height: 10vh;
    margin: auto 0;
    float: left;
    display: block;
}

#menu i::before {
    padding: 0;
}

#menu .wrap {
    margin: auto auto auto 3vh;
    padding-left: 3.5vh;
    font-size: 2vh;
    line-height: 1.4em;
    color: inherit;
    position: relative;
}

#menu .wrap::before {
    content: '';
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border-left-width: 1px;
    border-left-style: solid;
    border-left-color: inherit;
    display: block;
    opacity: 0.45;
}

#menu a:hover .wrap::before,
#menu a:hover .summary {
    opacity: 1;
}

#menu h2 {
    font-size: 1.5em;
    margin-bottom: 0.35em;
}

.summary {
    opacity: 0.45;
    color: inherit;
}

#side-menu {
    position: fixed;
    width: 50px;
    right: -50px;
    height: 50px;
    bottom: calc(50vh - 25px);
    z-index: 9;
    opacity: 0;
    transition: opacity 1s, right 0.4s 0.6s;
}

#side-menu.show {
    right: 15px;
    opacity: 1;
}

#side-menu.menus-2 {
    height: 120px;
    bottom: calc(50vh - 60px);
}

#side-menu.menus-3 {
    height: 180px;
    bottom: calc(50vh - 90px);
}

#side-menu.menus-4 {
    height: 240px;
    bottom: calc(50vh - 120px);
}

#side-menu.menus-5 {
    height: 300px;
    bottom: calc(50vh - 150px);
}

#side-menu a {
    width: 50px;
    height: 50px;
    margin-bottom: 10px;
    display: inline-block;
    
    transition: color 0.8s, width 0.4s, height 0.4s, font 0.4s;
}

#side-menu a:last-child {
    margin-bottom: 0;
}

#side-menu i {
    width: 50px;
    height: 50px;
    font-size: 42px;
}

#navigation {
    width: 100%;
    height: 70px;
    font-size: 112.5%;
    font-weight: 500;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
    position: fixed;
    z-index: 99999;
    top: 0;

    transition: top 0.4s, background-color 0.4s;
}

#navigation ul {
    float: right;
    margin: 0 2em;
}

#navigation li:first-child {
    padding: 0 0.75em 0 0;
}

#navigation li:last-child {
    padding: 0 0 0 0.75em;
}

#navigation li {
    float: left;
    padding: 0 0.75em;
}

#navigation li a {
    display: block;
    height: 100%;
    line-height: 70px;
}

#navigation a#home {
    width: 70px;
    height: 100%;
    background-size: 55px;
    background-repeat: no-repeat;
    background-position: center;
    font-size: 0;
    text-indent: -9999em;
    position: absolute;
    left: 0;
    top: 0;

    transition: top 0.4s, left 0.4s, opacity 0.4s;
}

#select-menu-container {
    width: calc(100% - 71px);
    height: 100%;
    position: absolute;
    right: 0;
    top: 0;
    display: none;
    cursor: pointer;
}

#select-menu {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 1;
    opacity: 0;
}

#selected-menu {
    position: relative;
    height: 100%;
    line-height: 70px;
    float: right;
    margin-right: 1em;
}

#selected-menu label {
    margin-right: 0.25em;
    color: inherit;
}

#selected-menu svg {
    width: 25px;
    height: 70px;
    float: right;
}


/* arrow 설정 */
a.arrow {
    position: absolute;
    z-index: 99;
    display: block;
    font-size: 60px;
    text-align: center;
    overflow: hidden;
}

a.arrow-horizontal {
    width: 60px;
    height: 100px;
    line-height: 100px;
    top: calc(50% - 50px);
}

a.arrow-vertical {
    width: 100px;
    height: 60px;
    line-height: 60px;
    left: calc(50% - 50px);
}

a.arrow-left { left: 0; }
a.arrow-right{ right:0; }
a.arrow-up   { top : 0; }
a.arrow-down { bottom: 0;}

/* form 설정 */
.open-form-side {
    padding: 12px 18px 13px;
    font-size: 14px;
    line-height: 16px;
    position: fixed;
    left: 0;
    top: 50%;
    margin-top: -28px;
    width: auto;
    display: block;
    z-index: 9;
}

/* 지도 설정 */

.acf-map {
    height: 100%;
    width: 100%;
    position: absolute;
}

.section > .acf-map {
    height: 418px;
    width: calc(100vw - 162px);
    max-width: 958px;
    border-width: 1px;
    border-style: solid;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.all-02 .acf-map,
.map-02 .acf-map {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.contact .content-wrap {
    padding-bottom: 2em;
}

.contact.all-02 .content-wrap,
.contact.map-02 .content-wrap {
    width: 878px;
    left: calc(50% - 480px);
    bottom: 55px;
    padding: 30px 40px 40px;
    font-size: 15px;
    line-height: 1.45em;
    border: 1px solid #fff;
    background-color: rgba(255, 255, 255, 0.92);
    box-shadow: 6px 11px 0 rgba(0, 0, 0, 0.12);
    position: absolute;
    z-index: 999;
}


#popup-container {
    position: fixed;
    width: 0;
    height: 0;
    padding: 50vh 50vw;
    z-index: 99999;
    top: -100vh;
    left: 0;
    opacity: 0;
    background-color: rgba(0, 0, 0, 0.65);

    transition: opacity 0.3s, padding 0.3s, width 0.3s, height 0.3s;
}

#popup-container.open {
    top: 0;
    opacity: 1;
    width: calc(100vw - 60px);
    height: calc(100vh - 60px);
    padding: 30px;
}

#popup-container.open.fullscreen {
    width: 100vw;
    height: 100vh;
    padding: 0;
    background-color: #000;
}

#popup-wrap {
    width: calc(100% - 50px);
    height: calc(100% - 75px);
    max-width: 858px;
    max-height: 800px;
    padding: 49px 24px 24px 24px;
    margin: auto;
    border: 1px solid #C6C6C6;
    box-shadow: 15px 16px 0px rgba(0, 0, 0, 0.08);
    background-color: #fff;
    position: relative;
}

#popup-container.open.fullscreen #popup-wrap {
    max-width: 100%;
    max-height: 100%;
    width: calc(100% - 20px);
    height: calc(100% - 68px);
    padding: 58px 10px 10px;
    border: none;
    background: transparent;
}

#popup-content {
    overflow-y: auto;
    width: 100%;
    height: 100%;
    opacity: 0;

    transition: opacity 0.2s 0.2s;
}

.open #popup-content {
    opacity: 1;
}

/* 팝업 내비게이션 설정 */
.navigation-button-prev,
.navigation-button-next {
    position: absolute;
    top: calc(50% - 30px);
    width: 60px;
    height: 60px;
    font-size: 60px;
    line-height: 60px;
    color: #d3d3d3;
    cursor: pointer;
    z-index: 9999;
    display: none;
}

.slide .navigation-button-prev,
.slide .navigation-button-next {
    display: block;
}

.navigation-button-prev { left: 0; }
.navigation-button-next { right: 0;}

/* 팝업 페이지내이션 설정 */
#popup-pagination {
    top: 4px;
    height: 48px;
    width: calc(100% - 54px);
    position: absolute;
}

#popup-pagination span.swiper-pagination-bullet {
    border-radius: 0;
    height: 100%;
    margin: 0 2px;
    max-width: 120px;
    background-size: cover;
    background-position: center;
    font-size: 0;
    text-indent: -9999999em;
    display: block;
    float: left;
}

#popup-pagination.slide-1 .swiper-pagination-bullet { width: calc(100% - 4px); }
#popup-pagination.slide-2 .swiper-pagination-bullet { width: calc(50% - 4px); }
#popup-pagination.slide-3 .swiper-pagination-bullet { width: calc(33.3333% - 4px); }
#popup-pagination.slide-4 .swiper-pagination-bullet { width: calc(25% - 4px); }
#popup-pagination.slide-5 .swiper-pagination-bullet { width: calc(20% - 4px); }
#popup-pagination.slide-6 .swiper-pagination-bullet { width: calc(16.6666% - 4px); }
#popup-pagination.slide-7 .swiper-pagination-bullet { width: calc(14.2857% - 4px); }
#popup-pagination.slide-8 .swiper-pagination-bullet { width: calc(12.5% - 4px); }
#popup-pagination.slide-9 .swiper-pagination-bullet { width: calc(11.1111% - 4px); }
#popup-pagination.slide-10 .swiper-pagination-bullet { width: calc(10% - 4px); }
#popup-pagination.slide-11 .swiper-pagination-bullet { width: calc(9.0909% - 4px); }
#popup-pagination.slide-12 .swiper-pagination-bullet { width: calc(8.3333% - 4px); }
#popup-pagination.slide-13 .swiper-pagination-bullet { width: calc(7.6923% - 4px); }
#popup-pagination.slide-14 .swiper-pagination-bullet { width: calc(7.1428% - 4px); }
#popup-pagination.slide-15 .swiper-pagination-bullet { width: calc(6.6666% - 4px); }

#popup-pagination span.swiper-pagination-bullet-active {
    background-color: #fff;
}

/* 팝업 컨텐츠 설정 */
#popup-content h2.title {
    font-size: 125%;
    word-break: break-all;
    font-weight: 500;
}

#popup-content .date {
    font-size: 75%;
    color: #707070;
    margin-top: 0.45em;
}

#popup-content .date i {
    margin-right: 0.25em;
}

#popup-content .entry {
    font-size: 87.5%;
    line-height: 1.55em;
    margin-top: 1.75em;
}

.entry p {
    margin: 1.35em 0;
}

.entry ul {
    margin: 1em 0 1em 1.5em;  
    list-style: square outside;
    line-height: 1.35em;
}

.entry ol {
    margin: 1em 0 1em 1.2em;  
    list-style: decimal outside;
    line-height: 1.35em;
}

.entry li:not(:last-child) {
    margin-bottom: 0.75em;
}

/* 기본 블럭 스타일 보호 */
.entry .wp-block-gallery,
.entry .wp-block-gallery li {
    margin: 0;
    padding: 0;
    list-style: none;
}


/* 팝업 닫기 */
* a.close-x {
    width: 40px;
    height: 40px;
    display: block;
    top: 7px;
    right: 7px;
    opacity: 0;
    position: absolute;

    transition: opacity 0.1s 0.3s;
}

.open a.close-x {
    opacity: 1;
}

a.close-x::before,
a.close-x::after {
    content: '';
    border-top: 3px solid #D3D3D3;
    position: absolute;
    display: block;
    width: 100%;
    top: 19px;
    transform: rotate(45deg);
}

a.close-x::after {
    transform: rotate(-45deg);
}


#footer {
    position: relative;
    padding: 40px 0;
    text-align: center;
    font-size: 10px;
    font-weight: lighter;
    line-height: 1.2em;
    width: 100%;
    z-index: 2;
    display: block;
}

#footer h2 {
    font-size: 14px;
    line-height: 24px;
}


.wp-block-jetpack-contact-info {
    display: none;
}


.infinite-blinker {
    animation-duration: 0.8s;
    animation-name: blinker;
    animation-iteration-count: infinite;
}

@keyframes blinker {
    50% { opacity: 0; }
}


@media (max-width: 899px), (orientation: portrait) {

    .cover-wrap {
        display: block;
    }

    #logo-wrap {
        width: calc(100vw - 60px);
        height: calc(100vh - 60px);
        margin-right: 0;
        position: relative;
    }

    #menu {
        width: calc(100% - 20px);
        margin: auto auto 8%;
    }

    #menu::after {
        content: '';
        display: block;
        clear: both;
    }

    #menu a {
        width: 49%;
        float: left;
        max-height: 200px;
    }

    #menu a:nth-child(2n) {
        margin-left: 2%;
    }
    
    #menu .wrap {
        font-size: 85%;
    }

}

@media (max-width: 720px) {

    #menu a {
        width: 100%;
        height: auto;
        float: none;
        margin-left: 0 !important;
        padding: 2vw 0;
    }

    #menu i {
        font-size: 12vw;
        line-height: 12vw;
    }

    #menu .wrap {
        font-size: 2.25vw;
        padding-left: 4vw;
        margin: auto auto auto 4vw;
    }

    #navigation {
        top: 0;
    }

    #navigation ul {
        display: none;
    }

    #select-menu-container {
        display: block;
    }

    .section-header {
        margin: 1em auto 0.75em;
    }

    /* 기본 템플릿 외 모든 템플릿에 적용 - 좌우 여백 없애기 */
    body:not(.page-template-default) .content-wrap {
        width: 100%;
        margin-bottom: 3.5em;
    }

}

@media (min-width: 580px) {

    #side-menu {
        background-color: transparent !important;
    }

}

@media (max-width: 579px) {

    #logo-wrap {
        max-height: 100vw;
    }

    #menu {
        margin: auto auto 10%;
        max-width: 600px;
    }

    #menu .wrap {
        font-size: 2.5vw;
    }

    .section-header {
        margin: 2.2em auto;
    }

    .content-wrap {
        width: 100%;
        margin-bottom: 3.5em;
    }

    .content-wrap h1,
    .content-wrap h2 {
        font-size: 150%;
        line-height: 1.35em;
    }

    .content-wrap h2,
    .content-wrap h3 {
        font-size: 125%;
        line-height: 1.55em;
    }

    .content-wrap h4,
    .content-wrap h5 {
        font-size: 110%;
        line-height: 1.55em;
    }
    
    .acf-map {
        width: calc(100% - 2px);
    }

    #side-menu {
        bottom: 0 !important;
        right: 0 !important;
        width: 100% !important;
        height: 70px !important;
        margin: 0;
        z-index: 11;
    }

    #side-menu a {
        text-align: center;
        margin: 0;
        height: 70px;
        color: inherit !important;
    }

    #side-menu i {
        line-height: 70px;
    }

    #side-menu i::before {
        padding: 0;
    }

    #side-menu.menus-1 a { width: 100vw; }
    #side-menu.menus-2 a { width: 50vw; }
    #side-menu.menus-3 a { width: 33.3333vw; }
    #side-menu.menus-4 a { width: 25vw; }
    #side-menu.menus-5 a { width: 20vw; }

    /* #footer {
        padding-bottom: 110px;
    } */

}
