@charset "utf-8";
/* CSS Document */

/*-------------------------------------------------------------------------------------------------
1. header & gnb
-------------------------------------------------------------------------------------------------*/
html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding-top: var(--logo-height);
}

.site-header,
.site-header * {
    box-sizing: border-box;
}

.site-header a {
    text-decoration: none;
}

.site-header ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-header button {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    font: inherit;
}

.site-header {
    --header-expand-height: 335px;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--logo-height);
    background: var(--color-bright);
    z-index: 1000;
    overflow: visible;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.site-header::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 0;
    background: var(--color-bright);
    border-top: 1px solid rgba(0, 0, 0, 0.04);
    opacity: 0;
    visibility: hidden;
    transition: height 0.28s ease, opacity 0.2s ease, visibility 0.2s ease;
    z-index: 1;
}

.site-header.is-open::after {
    height: var(--header-expand-height);
    opacity: 1;
    visibility: visible;
}

.header-inner {
    max-width: calc(var(--layout-width) + (var(--layout-side-margin) * 2));
    margin: 0 auto;
    padding: 0 var(--layout-side-margin);
    height: var(--logo-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-40);
    position: relative;
    z-index: 3;
    background: var(--color-bright);
}


.header-logo {
    flex: 0 0 auto;
    margin: 0;
}

.header-logo a {
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo-placeholder {
    width: 120px;
    height: 44px;
    font-size: var(--font-size-small);
    color: var(--color-font);
    display: flex;
    align-items: center;
    justify-content: center;
}

.header-nav {
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    display: flex;
    justify-content: center;
}

.gnb {
    height: 100%;
    display: flex;
    align-items: stretch;
    justify-content: center;
}

.gnb-item {
    position: relative;
    width: 222px;
    text-align: center;
}

.gnb-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--logo-height);
    font-size: var(--font-size-large);
    font-weight: 500;
    color: var(--color-dark);
    white-space: nowrap;
    transition: color 0.2s ease;
}

.gnb-link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 136px;
    height: 2px;
    background: var(--color-point);
    transform: translateX(-50%) scaleX(0);
    transform-origin: center;
    transition: transform 0.25s ease;
}

.gnb-sub-wrap {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    padding-top: var(--gap-40);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    z-index: 2;
}

.gnb-sub {
    display: flex;
    flex-direction: column;
    gap: var(--gap-30);
    align-items: center;
    min-height: 230px;
}

.gnb-sub a {
    font-size: var(--font-size-large);
    font-weight: 400;
    color: var(--color-font);
    line-height: 1;
    transition: color 0.2s ease;
}

.gnb-sub a:hover,
.gnb-sub a:focus,
.gnb-sub a.is-current {
    color: var(--color-point);
}

.header-util {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--gap-20);
}

.header-inquiry {
    min-width: 108px;
    height: 40px;
    padding: 0 20px;
    border-radius: 999px;
    background: var(--color-point);
    color: var(--color-bright);
    font-size: var(--font-size-normal);
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.header-icon {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.icon-placeholder {
    width: 100%;
    height: 100%;
    font-size: 10px;
    color: var(--color-font);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.site-header.is-open .gnb-item.is-active .gnb-link,
.site-header .gnb-item:hover .gnb-link,
.site-header .gnb-item:focus-within .gnb-link {
    color: var(--color-point);
}

.site-header.is-open .gnb-item.is-active .gnb-link::after,
.site-header .gnb-item:hover .gnb-link::after,
.site-header .gnb-item:focus-within .gnb-link::after {
    transform: translateX(-50%) scaleX(1);
}

.site-header.is-open .gnb-sub-wrap,
.site-header .gnb-item:hover .gnb-sub-wrap,
.site-header .gnb-item:focus-within .gnb-sub-wrap {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.header-menu-btn {
    display: none;
    width: 28px;
    height: 22px;
    flex: 0 0 auto;
    position: relative;
}

.header-menu-btn span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--color-dark);
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.header-menu-btn span:nth-child(1) {
    top: 0;
}

.header-menu-btn span:nth-child(2) {
    top: 10px;
}

.header-menu-btn span:nth-child(3) {
    top: 20px;
}

.site-header.is-compact .header-nav,
.site-header.is-compact .header-util {
    display: none;
}

.site-header.is-compact .header-menu-btn {
    display: block;
}

@media (max-width: 767px) {
    body {
        padding-top: 80px;
    }

    .site-header {
        height: 80px;
    }

    .header-inner {
        height: 80px;
        padding: 0 20px;
        gap: 20px;
    }

    .logo-placeholder {
        width: 110px;
        height: 40px;
    }
}

/*------------- 모바일 메뉴 -------------------*/
body.mobile-menu-open {
    overflow: hidden;
}

.header-menu-btn {
    display: none;
    width: 30px;
    height: 24px;
    position: relative;
    flex: 0 0 auto;
}

.header-menu-btn span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--color-dark);
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.header-menu-btn span:nth-child(1) {
    top: 0;
}

.header-menu-btn span:nth-child(2) {
    top: 11px;
}

.header-menu-btn span:nth-child(3) {
    top: 22px;
}

.mobile-menu-dim {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
    z-index: 1998;
}

.mobile-menu-dim.is-open {
    opacity: 1;
    visibility: visible;
}

.mobile-menu {
    position: fixed;
    top: 0;
    right: 0;
    width: min(420px, 88vw);
    height: 100vh;
    background: var(--color-bright);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    z-index: 1999;
}

.mobile-menu.is-open {
    transform: translateX(0);
}

.mobile-menu-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0 var(--gap-20) var(--gap-30);
}

.mobile-menu-top {
    height: var(--logo-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
}

.mobile-menu-logo {
    display: inline-flex;
    align-items: center;
}

.mobile-menu-logo img {
    display: block;
    height: 42px;
    width: auto;
}

.mobile-menu-close {
    position: relative;
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
}

.mobile-menu-close span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 2px;
    background: var(--color-dark);
}

.mobile-menu-close span:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
}

.mobile-menu-close span:nth-child(2) {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.mobile-nav {
    flex: 1 1 auto;
    overflow-y: auto;
    padding-top: var(--gap-20);
}

.mobile-gnb {
    border-top: 1px solid var(--color-border);
}

.mobile-gnb-item {
    border-bottom: 1px solid var(--color-border);
}

.mobile-gnb-btn {
    width: 100%;
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-20);
    text-align: left;
    padding: 0;
    color: var(--color-dark);
    font-size: var(--font-size-large);
    font-weight: 600;
}

.mobile-gnb-arrow {
    position: relative;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.mobile-gnb-arrow::before,
.mobile-gnb-arrow::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 2px;
    background: var(--color-dark);
    transition: transform 0.25s ease;
}

.mobile-gnb-arrow::before {
    transform: translate(-50%, -50%);
}

.mobile-gnb-arrow::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.mobile-gnb-item.is-open .mobile-gnb-arrow::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.mobile-sub {
    display: none;
    padding: 0 0 var(--gap-20);
}

.mobile-sub li + li {
    margin-top: 18px;
}

.mobile-sub a {
    display: block;
    color: var(--color-font);
    font-size: var(--font-size-medium);
    font-weight: 400;
    line-height: 1.4;
}

.mobile-sub a:hover,
.mobile-sub a:focus,
.mobile-sub a.is-current {
    color: var(--color-point);
}

.mobile-menu-util {
    flex: 0 0 auto;
    padding-top: var(--gap-20);
}

.mobile-menu-inquiry {
    width: 100%;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-point);
    color: var(--color-bright);
    font-size: var(--font-size-medium);
    font-weight: 600;
    border-radius: 999px;
}

.mobile-menu-sns {
    display: flex;
    align-items: center;
    gap: var(--gap-15);
    margin-top: var(--gap-20);
}

.mobile-menu-sns a {
    width: 42px;
    height: 42px;
    border: 1px solid var(--color-border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mobile-menu-sns img {
    display: block;
    width: 22px;
    height: 22px;
}

@media (max-width: 1180px) {
    .site-header.is-compact .header-nav,
    .site-header.is-compact .header-util {
        display: none;
    }

    .site-header.is-compact .header-menu-btn {
        display: block;
    }
}

@media (max-width: 767px) {
    .mobile-menu {
        width: 100%;
        max-width: 100%;
    }

    .mobile-menu-top {
        height: 80px;
    }

    .mobile-menu-logo img {
        height: 36px;
    }

    .mobile-gnb-btn {
        min-height: 62px;
        font-size: var(--font-size-medium);
    }

    .mobile-sub a {
        font-size: var(--font-size-normal);
    }
}

/*-------------------------------------------------------------------------------------------------
2. subtop
-------------------------------------------------------------------------------------------------*/
.subtop-wrap{width:100%; height:var(--subTop-height); background-position:center; background-size: cover; position:fixed; background-color:#000; display:flex; align-items: flex-end;}
.background-image{width:100%; height: 100%; object-fit: cover; position:absolute; top:50%; left:50%; transform: translate(-50%,-50%); z-index: 0; opacity: 0.7;}
.subtop-spacer{width:100%; height:var(--subTop-height);}
.subtop-wrap .inner-wrap{width:auto; margin:0 auto var(--gap-40) auto; display:inline-block; padding:0 var(--layout-margin); box-sizing: border-box;}
.subtop-wrap .page-location{color:var(--color-bright); display:flex; align-items: center; font-size:var(--font-size-normal);  background-color: rgba(0, 0, 0, 0.4); backdrop-filter: blur(25px); margin:0 auto; padding:15px 0; border-radius: 5px;}
.subtop-wrap .page-location > li{display:flex; align-items: center; justify-content: center; min-width:200px; box-sizing: border-box; padding:0 15px;}
.subtop-wrap .page-location > li:first-child{min-width: 22px;}
.subtop-wrap .page-location > li:nth-child(even){ min-width: 1px; padding:0;}
.subtop-wrap .page-location > li:last-child{margin-right:0; position:relative; cursor:pointer;}
#pagelocation-arrow-svg{fill:var(--color-bright); margin-left:var(--gap-10); transition:all .3s; width:5px;}
#home-icon{fill:var(--color-bright);}
#slush-icon{stroke:var(--color-border);}
.subtop-wrap h1{color:var(--color-bright); font-size:var(--font-size-xxxxxlarge); font-weight: 600; margin-top:var(--gap-20); line-height: 120%; position:absolute; z-index: 1; left:50%; top:50%; text-align: center; transform: translate(-50%,-50%);}

.submenus-wrap{min-width:200px; border:1px solid var(--color-border);position:absolute; top:34px; background-color:#fff; right:0; color:var(--color-font); opacity: 0; overflow: hidden; height: 0; z-index: 2}
.submenus-wrap > li{padding:10px 15px; transition:all .3s;}
.submenus-wrap > li:hover{background-color:var(--color-light-gray);}
.submenus-wrap > li.on{background-color:var(--color-light-gray);}
.submenus-wrap > li > a:hover{color:var(--color-font);}

.subtop-wrap.white .page-location{color:var(--color-bright);}
.subtop-wrap.white #pagelocation-arrow-svg{fill:var(--color-bright); transition: all .3s;}
.subtop-wrap.white #home-icon{fill:var(--color-bright);}
.subtop-wrap.white #slush-icon{stroke:var(--color-bright);}
.subtop-wrap.white h1{color:var(--color-bright);}

.subtop-wrap .page-location > li.on .submenus-wrap{display:block;}
.subtop-wrap .page-location > li.on > #pagelocation-arrow-svg{transform:rotate(90deg);}



.page-head{width:calc(100% - var(--layout-flax-margin)); max-width:var(--layout-width); margin:var(--gap-140) auto 0 auto; display:block;}
.page-head .page-title{color:var(--color-font); font-weight:600; font-size:var(--font-size-large); margin-bottom:10px;}
.page-head .page-message{font-weight: 600; font-size:var(--font-size-xxxxxlarge);}

@media only screen and (max-width:640px){
	.subtop-wrap .page-location > li{ min-width:150px;}
	.subtop-wrap h1{color:var(--color-bright); font-size:var(--font-size-xxxlarge);}
	.page-head .page-message{font-size:var(--font-size-xxxlarge);}
}

@media only screen and (max-width:460px){
	.subtop-wrap .page-location > li{ min-width:100px;}
}
