header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    --height: 100px;
    height: var(--height);
    z-index: 1000;
}

.header .wrap { 
    display: flex; align-items: center; justify-content: space-between;
    height: 100%;
}

.header .logo {
    width: 108px;
}
.header .logo svg * {
    transition: fill .4s;
}
.header.white .logo svg * {
    fill: #fff !important;
}
.header .gnb > ul {
    display: flex; align-items: center; color: #000;
    transition: color .4s;
}
.header.white .gnb > ul {
    color: #fff;
}
.header .gnb > ul > li {
    font-size: 20px;
    font-weight:500;
    letter-spacing: -0.03em;
    font-family: 'Pretendard';
    position: relative;
    transition: color .4s;
}
/* .header .gnb > ul > li::before {
    content: '';
    display: block;
    width: 0%;
    height: 2px;
    margin-bottom: -10px;
    background: #fff;
    position: absolute;
    bottom: 0; left: 50%; transform: translateX(-50%);
    transition: width .4s;
} */
.header .gnb > ul > li > a {
    position: relative; z-index: 1;
}
.header .gnb > ul > li + li {
    margin-left: calc(100/20*1em);
}

.header .gnb > ul > li .dept2 {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    box-sizing: border-box;
    display: none;
    min-width: 100%;
}
.header .gnb > ul > li .dept2 .dept2__inner {
    padding: calc(20/20*1em) 0;
}
.header .gnb > ul > li .dept2 ul {
    display: flex; flex-direction: column;
    background: #fff;
}
.header .gnb > ul > li .dept2 ul li {
    font-size: 16px;
    transition: background .4s;
}
.header .gnb > ul > li .dept2 a {
    font-size: inherit;
    color: #000;
    letter-spacing: -0.03em;
    font-family: 'Pretendard';
    text-align: center;
    display: block;
    width: 100%;
    padding: calc(10/16*1em) calc(20/16*1em);
    box-sizing: border-box;
    white-space: nowrap;
}
.header .gnb > ul > li .dept2 a i{ margin-left: 5px; }
.header .gnb > ul > li .dept2 ol{ display: none; }
.header .gnb > ul > li .dept2 ol li a{ font-size: 14px; padding: 7px 15px; color: rgba(0,0,0,0.6); }

@media screen and (min-width: 821px) {
    .header .gnb > ul > li:hover::before {
        width: 100%;
    }
    .header .gnb > ul > li .dept2 ul > li:hover > a {
        background: #eee;
    }
    .header .gnb > ul > li .dept2 ol > li:hover > a{
        background-color: #eee;
    }
}

.header .hamburger {
    z-index: 1000;
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 25px;
    height: 20px;
    cursor: pointer;
    position: relative;
}
.header .hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: #000;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: left .4s, right .4s, top .4s, bottom .4s, transform .4s, opacity .4s;
}
.header.white .hamburger span {
    background: #fff;
}
.header .hamburger span:nth-child(1) {
    top: 0;
    transform: translate(-50%, 0%) rotate(0);
}
.header.hamburger-active .hamburger span:nth-child(1) {
    top: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
}
.header.hamburger-active .hamburger span:nth-child(2) {
    opacity: 0;
}
.header .hamburger span:nth-child(3) {
    top: auto;
    bottom: 0;
    transform: translate(-50%, 0%) rotate(0);
}
.header.hamburger-active .hamburger span:nth-child(3) {
    bottom: 50%;
    transform: translate(-50%, 50%) rotate(-45deg);
}

@media screen and (max-width: 1280px) {
    .header .logo {width: 80px;}
    .header .gnb > ul > li {font-size: 16px;}
    .header .gnb > ul > li + li {margin-left: calc(50/16*1em);}
}
@media screen and (max-width: 820px) {
    .header .hamburger {display: flex;}
    .header.hamburger-active .hamburger span {background: #000 !important;}
    .header .gnb {z-index: 1000; position: fixed; top: 0; right: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0); transition: background .4s, transform .4s; pointer-events: none; display: flex; justify-content: flex-end;}
    .header.hamburger-active .gnb {background: rgba(0, 0, 0, 0.5); pointer-events: auto;}
    .header .gnb > ul {width: 100%; transform: translateX(100%); transition: transform .4s; background: #fff; flex-direction: column; align-items: flex-start; width: 50%; height: 100%; padding: calc(130/26*1em) 0 0; font-size: clamp(16px, 26/820*100vw, 26px);}
    .header.hamburger-active .gnb > ul {color: #000 !important; transform: translateX(0%);}
    .header .gnb > ul > li {width: 100%; font-size: inherit; white-space: nowrap; border-bottom: 1px solid #000;}
    .header .gnb > ul > li > a {display: block; width: 100%; padding: 20px; pointer-events: none;}
    .header .gnb > ul > li + li {margin-left: 0; margin-top: 0;}
    .header .gnb > ul > li:before {display: none;}
    .header .gnb > ul > li .dept2 {position: static; left: 0; transform: none;}
    .header .gnb > ul > li .dept2 .dept2__inner {padding: 0;}
    .header .gnb > ul > li .dept2 ul li {font-size: 14px;}
    .header .gnb > ul > li .dept2 ul li a {text-align: left; padding: calc(10/14*1em) calc(30/14*1em);}
    .header .gnb > ul > li .dept2 ol li a{ padding: 5px calc(30/14*1em); }
}
@media screen and (max-width: 500px) {
    header{ --height: 80px; }
    .header .wrap {height: 80px;}
    .header .logo {width: 60px;}
    .header .hamburger {width: 20px; height: 15px;}
    .header .gnb > ul {width: 70%;}
}
@media screen and (max-width: 360px) {
    .header .gnb > ul {width: 80%;}
}


footer {
    background: #000;
}
footer .footer__inner {
    display: flex; flex-direction: column;
}
footer .topLine {
    display: flex; align-items: center; justify-content: flex-end;
    font-size: 20px;
    padding: calc(25/20*1em) 0;
    box-sizing: border-box;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    margin-bottom: calc(40/20*1em);
}
footer .topLine .topBtn {
    cursor: pointer;
    display: flex; align-items: center;
    font-size: inherit;
    color: #fff;
}
footer .topLine .topBtn span {
    font-family: 'Pridi';
}

footer .footer__inner-txt {
    display: flex; align-items: flex-start; justify-content: space-between;
}
footer .titleWrap {
    display: flex; align-items: flex-start;
}
footer .footer__inner-txt .logo {
    width: 108px;
}
footer .footer__inner-txt .logo svg * {
    fill: #fff !important;
}
footer .titleWrap .title {
    font-size: 20px;
    font-family: 'Pretendard';
    color: #fff;
    padding-left: calc(30/20*1em);
    padding-top: calc(15/20*1em);
}
footer .rightWrap {
    display: flex; flex-direction: column; align-items: flex-end;
}
footer .infoWrap dl {
    display: flex; align-items: flex-start;
    font-size: 20px;
    padding-top: calc(15/20*1em);
}
footer .infoWrap dl dt {
    font-size: inherit;
    font-family: 'Pridi';
    color: #fff;
    padding-right: calc(90/20*1em);
}
footer .infoWrap dl dd {
    font-size: inherit;
    color: #fff;
}
footer .infoWrap dl dd .item {
    font-size: inherit;
    color: inherit;
    display: flex; align-items: center;
}
footer .infoWrap dl dd .item + .item {
    margin-top: calc(15/20*1em);
}
footer .infoWrap dl dd .item b {
    width: calc(90/20*1em);
    font-family: 'Pridi';
}
footer .infoWrap dl dd .item span {
    font-family: 'Pretendard';
    letter-spacing: -0.03em;
}
footer .copy {
    font-size: 16px;
    font-family: 'Pridi';
    color: #fff;
    padding-top: calc(40/16*1em);
    padding-bottom: calc(35/16*1em);
}
@media screen and (max-width: 1280px) {
    footer .footer__inner-txt .logo {width: 80px;}
    footer .titleWrap .title {font-size: 18px;}
    footer .infoWrap dl {font-size: 18px;}
    footer .infoWrap dl dt {padding-right: calc(60/18*1em);}
}
@media screen and (max-width: 1024px) {
    footer .topLine {font-size: 18px;}
    footer .footer__inner-txt {flex-direction: column; align-items: flex-start;}
    footer .rightWrap {width: 100%; align-items: flex-start; margin-top: calc(30/18*1em);}
    footer .infoWrap {width: 100%;}
    footer .infoWrap dl {width: 100%; flex-direction: column;}
    footer .infoWrap dl dt {padding-right: 0; padding-bottom: calc(20/18*1em);}
    footer .infoWrap dl dd {flex-grow: 1;}
    footer .infoWrap dl dd .item + .item {margin-top: calc(10/18*1em);}
    footer .copy {width: 100%;}
}
@media screen and (max-width: 820px) {
    footer .rightWrap {margin-top: calc(40/18*1em);}
}
@media screen and (max-width: 500px) {
    footer .topLine {font-size: 16px;}
    footer .footer__inner-txt .logo {width: 60px;}
    footer .titleWrap .title {font-size: 16px;}
    footer .infoWrap dl {font-size: 16px; flex-grow: 0;}
    footer .infoWrap dl dd {width: 100%;}
    footer .copy {font-size: 14px;}
}
@media screen and (max-width: 360px) {
    footer .titleWrap {flex-direction: column;}
    footer .titleWrap .title {font-size: 14px; padding-left: 0;}
    footer .infoWrap dl {font-size: 14px;}
    footer .infoWrap dl dd .item {flex-direction: column; align-items: flex-start; gap: calc(4/14*1em)}
    footer .copy {font-size: 12px;}
}

/* marquee */
._marquee{ display: flex; }
._marquee .con{ white-space: nowrap; animation: marquee forwards infinite 10s linear; }

@keyframes marquee {
    100%{ transform: translateX(-100%); }
}


/* sub visual */
._s{ width: 100%; overflow: hidden; position: relative; padding: 180px 0; }

#subVisual{ width: 100%; }
#subVisual .wrap{ display: flex; justify-content: space-between; align-items: center; }
#subVisual .title{ font-family: 'Pretendard'; }
#subVisual .title dt{ font-size: 22px; letter-spacing: -0.03em; font-weight: 500; color: rgba(0,0,0,0.8); }
#subVisual .title dd{ font-size: 67px; letter-spacing: -0.03em; font-weight: 700; margin-top: 30px; line-height: 1.2; }

.arrow i{ display: block; font-size: 20px; color: #013d7c; margin: -7px 0; animation: opacity 1s infinite ease-in-out alternate; }
.arrow i:nth-of-type(2){ animation-delay: .2s; }
.arrow i:nth-of-type(3){ animation-delay: .4s; }

.arrow.white i{ color: #fff; }

@keyframes opacity {
    0%{ opacity: 0.3; }
    100%{ opacity: 1; }
}

#subVisual ._marquee{ margin-top: 90px;  }
#subVisual ._marquee .con{ padding-right: 0.7em; font-size: 7.8125vw; letter-spacing: -0.03em; color: rgba(0,0,0,0.05); font-weight: 700; }

@media screen and (min-width: 1921px){
    #subVisual ._marquee .con{ font-size: 150px; }
}

@media screen and (max-width: 1600px){
    #subVisual .title dt{ font-size: 20px; }
    #subVisual .title dd{ font-size: 55px; margin-top: 25px; }
}

@media screen and (max-width: 1280px){
    ._s{ padding: 120px 0; }
    #subVisual .title dt{ font-size: 18px; }
    #subVisual .title dd{ font-size: 45px; margin-top: 20px; }
    #subVisual ._marquee{ margin-top: 70px; }
}

@media screen and (max-width: 820px){
    #subVisual .title dt{ font-size: 16px; }
    #subVisual .title dd{ font-size: 35px; margin-top: 15px; }
    #subVisual ._marquee{ margin-top: 50px; }
}

@media screen and (max-width: 500px){
    ._s{ padding: 100px 0; }
    #subVisual .title dt{ font-size: 14px; }
    #subVisual .title dd{ font-size: 26px; margin-top: 10px; }
    #subVisual ._marquee{ margin-top: 30px; }
}