/* common */
main{
    --sec100: 100px;
    --sec140: 140px;
}
main{ padding-top: calc(var(--utilH) + var(--navH)); }


/* tit */
.tit{ font-family: var(--engFont); font-size: 30px; font-weight: 700; color: #111; letter-spacing: -0.02em; margin-bottom: 30px; }


/* viewmore */
.viewmore{
    --arrow: 24px;
    --gap: 10px;
}
.viewmore{ min-width: 240px; display: inline-flex; justify-content: center; align-items: center; font-size: 20px; font-weight: 500; color: var(--mainColor) !important; text-stroke: 0.015em var(--mainColor); -webkit-text-stroke: 0.015em var(--mainColor); text-align: center; padding: 17px; position: relative; z-index: 10; }
.viewmore::before,
.viewmore::after{ content: ""; width: 100%; height: 100%; border-radius: 10px; position: absolute; top: 0; left: 0; z-index: -1; }
.viewmore::before{ background: #FFF; opacity: 1; }
.viewmore::after{ background: var(--gradient, linear-gradient(87deg, #01459C 5.87%, #017FCA 96.44%)); opacity: 0; }
.viewmore span{ display: inline-block; transform: translateX(0); }
.viewmore i{ display: inline-block; width: var(--arrow); height: var(--arrow); background: var(--mainColor); -webkit-mask: url("/img/main/icon_viewmore.svg") no-repeat center center / contain; margin-left: var(--gap); opacity: 1; margin-left: var(--gap); }


@media screen and (hover: hover) and (pointer: fine){
    /* viewmore */
    .viewmore{ transition: color 0.4s, text-stroke-color 0.4s; }
    .viewmore::before,
    .viewmore::after{ transition: opacity 0.4s; }
    .viewmore::before{ background: #FFF; opacity: 1; }
    .viewmore::after{ opacity: 0; }
    .viewmore span{ transform: translateX(calc((var(--arrow) + var(--gap)) / 2)); transition: transform 0.4s; }
    .viewmore i{ background: #FFF; opacity: 0; transition: background 0.4s, opacity 0.4s; }

    .viewmore:hover{ color: #FFF !important; text-stroke-color: transparent; -webkit-text-stroke-color: transparent; }
    .viewmore:hover::before{ opacity: 0; }
    .viewmore:hover::after{ opacity: 1; }
    .viewmore:hover span{ transform: translateX(0); }
    .viewmore:hover i{ opacity: 1; }
}

@media screen and (max-width: 1600px){
    /* common */
    main{
        --sec100: 80px;
        --sec140: 120px;
    }

    /* tit */
    .tit{ font-size: 28px; margin-bottom: 25px; }

    /* viewmore */
    .viewmore{
        --arrow: 22px;
    }
    .viewmore{ min-width: 200px; font-size: 19px; padding-block: 14px; }
}

@media screen and (max-width: 1280px){
    /* common */
    main{
        --sec140: 80px;
    }

    /* tit */
    .tit{ font-size: 26px; margin-bottom: 20px; }

    /* viewmore */
    .viewmore{
        --arrow: 20px;
    }
    .viewmore{ min-width: 170px; font-size: 17px; padding-block: 12px; }
}

@media screen and (max-width: 900px){
    /* tit */
    .tit{ font-size: 23px; }
}


/* mainSite */
#mainSite{ font-family: var(--engFont); color: #FFF; letter-spacing: -0.02em; margin-top: 50px; }
#mainSite .bg{ background: url("/img/main/mainsite_bg.jpg") no-repeat center right 23% / cover; border-radius: 20px; padding: 85px 60px; position: relative; }
#mainSite .bg::before{ content: ""; background: linear-gradient(to bottom, transparent, #000); opacity: 0; border-radius: inherit; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
#mainSite .flex-box{ display: flex; align-items: center; position: relative; z-index: 10; }
#mainSite .left{ flex: 1 1 auto; min-width: 0; }
#mainSite .right{ flex-shrink: 0; padding-left: 30px; }
#mainSite h4{ font-size: 5.2rem; font-weight: 600; }
#mainSite p{ font-size: 18px; font-weight: 400; line-height: 1.5; margin-top: 30px; }

@media screen and (max-width: 1700px){
    #mainSite .bg{ padding: 60px 50px; }
}

@media screen and (max-width: 1280px){
    #mainSite p{ font-size: 17px; margin-top: 15px; }
}

@media screen and (max-width: 900px){
    #mainSite .bg{ padding: 40px 35px; }
    #mainSite .flex-box{ flex-direction: column; align-items: unset; }
    #mainSite .right{ padding-left: 0; margin-top: 30px; }
    #mainSite h4{ font-size: 4.8rem; }   
    #mainSite p{ margin-top: 10px; }
}

@media screen and (max-width: 600px){
    #mainSite br{ display: none; }
    #mainSite .bg{ padding: 100px 25px 25px; }
    #mainSite .bg::before{ opacity: 0.7; }
}


/* arrivals */
#arrivals{ padding: var(--sec100) 0; }
#arrivals .tit{ opacity: 0; transform: translateX(var(--aosM)); transition: opacity var(--aosT), transform var(--aosT); }

#arrivals .detail-top .bottom{ margin-left: -42px; }

#arrivals .aos-animate .tit{ opacity: 1; transform: translate(0, 0) !important; }

@media screen and (max-width: 1024px){
    #arrivals .tit{ transform: translateY(var(--aosP)); }

    #arrivals .detail-top .bottom{ margin-left: 0; }
}


/* popular */
#popular{ padding-bottom: var(--sec140); }


/* banner */
#banner{ background: url("/img/main/banner_bg.jpg") no-repeat center right 38% / cover; font-family: var(--engFont); color: #FFF; letter-spacing: -0.02em; padding: 100px 0; position: relative; overflow: hidden; }
#banner > *{ position: relative; z-index: 10; }
#banner::before{ content: ""; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.3); position: absolute; top: 0; left: 0; z-index: unset; opacity: 0; }
#banner h4{ font-size: 4rem; font-weight: 500; } 
#banner p{ font-size: 24px; font-weight: 200; line-height: 1.4; margin: 5px 0 50px; }

@media screen and (max-width: 1600px){
    #banner p{ font-size: 22px; }
}

@media screen and (max-width: 1280px){
    #banner{ padding: 70px 0; }
    #banner p{ font-size: 20px; margin-bottom: 30px; }
}

@media screen and (max-width: 900px){
    #banner::before{ opacity: 1; }
    #banner p{ font-size: 18px; }
}



/* categories */
#categories{ padding: var(--sec140) 0; }
#categories .flex-box{ display: flex; opacity: 1; }
#categories .flex-box > *{ opacity: 0; transition: opacity var(--aosT), transform var(--aosT); }
#categories .left{ flex-shrink: 0; width: 535px; padding-right: 100px; transform: translateX(var(--aosM)); }
#categories .right{ flex: 1 1 auto; min-width: 0; transform: translateY(var(--aosP)); }
#categories .tit{ line-height: 1.4; margin-bottom: 60px; }

#categories .tab-menu ul{ padding-left: 22px; position: relative; }
#categories .tab-menu ul::before{ content: ""; width: 2px; height: 100%; background: #F1F1F1; border-radius: 10px; position: absolute; top: 0; left: 0; }
#categories .tab-menu ul li{ position: relative; }
#categories .tab-menu ul li:not(:last-of-type){ margin-bottom: 15px; }
#categories .tab-menu ul li::before{ content: ""; width: 2px; height: 100%; background: var(--mainColor); border-radius: 10px; position: absolute; top: 0; left: -22px; opacity: 0; }
#categories .tab-menu ul li button{ background: transparent; border: none; border-radius: 10px; font-family: var(--engFont); font-size: 18px; font-weight: 500; color: #999; letter-spacing: -0.02em; padding: 17px 20px; }

#categories .tab-menu ul li.on::before{ opacity: 1; }
#categories .tab-menu ul li.on button{ background: var(--mainColor); color: #FFF; }

#categories .tab-content .tab:not(:first-of-type){ display: none; }

#categories .grid-box{ display: grid; grid-template-columns: repeat(3, calc(100% / 3)); margin: -15px; }
#categories .grid-box > *{ margin: 15px; }
#categories .grid-box .item{ box-shadow: 0 0 30px rgba(var(--mainRGB), 0.1); border-radius: 20px; letter-spacing: -0.02em; text-align: center; position: relative; }
#categories .grid-box .item::after{ content: ""; width: 100%; height: 100%; border: 2px solid var(--mainColor); border-radius: inherit; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 0.4s; box-sizing: border-box; pointer-events: none; }
#categories .grid-box .item a{ display: block; padding: 30px 45px 45px; }
#categories .grid-box .item figure{ display: block; padding-bottom: 100%; position: relative; overflow: hidden; }
#categories .grid-box .item figure img{ width: 100%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
#categories .grid-box .item p{ font-size: 20px; font-weight: 600; color: #111; margin-top: 12px; }


#categories .flex-box.aos-animate > *{ opacity: 1; transform: translate(0, 0) !important; }

@media screen and (hover: hover) and (pointer: fine){
    #categories .grid-box .item:hover::after{ opacity: 1; }
}

@media screen and (max-width: 1600px){
    #categories .left{ width: 450px; padding-right: 70px; }
    #categories .tit{ margin-bottom: 40px; }

    #categories .tab-menu ul li button{ font-size: 17px; padding: 14px 17px; }

    #categories .grid-box .item a{ padding: 25px 35px 35px; }
    #categories .grid-box .item p{ font-size: 19px; margin-top: 8px; }
}

@media screen and (max-width: 1400px){
    #categories{ padding-bottom: 100px; }
    #categories .grid-box{ margin: -10px; }
    #categories .grid-box > *{ margin: 10px; }
    #categories .grid-box .item a{ padding: 15px 25px 25px; }
}

@media screen and (max-width: 1280px){
    #categories .left{ width: 400px; padding-right: 40px; }
    #categories .tit{ margin-bottom: 30px; }

    #categories .tab-menu ul{ padding-left: 15px; }
    #categories .tab-menu ul li:not(:last-of-type){ margin-bottom: 10px; }
    #categories .tab-menu ul li::before{ left: -15px; }
    #categories .tab-menu ul li button{ font-size: 16px; }

    #categories .grid-box .item p{ font-size: 18px; }
}

@media screen and (max-width: 1200px){
    #categories .flex-box{ flex-direction: column; }
    #categories .left{ width: 100%; text-align: center; padding-right: 0; padding-bottom: 30px; transform: translateY(var(--aosP)); }
    #categories .left br{ display: none; }
    
    #categories .tab-menu ul::before,
    #categories .tab-menu ul li::before{ display: none; }
    #categories .tab-menu ul{ width: calc(100% + 10px); display: flex; flex-wrap: wrap; justify-content: center; padding-left: 0; margin-bottom: -10px; }
    #categories .tab-menu ul li{ flex-grow: 1; margin-right: 10px; margin-bottom: 10px; }
    #categories .tab-menu ul li button{ width: 100%; height: 100%; background: var(--grayBg); }
}

@media screen and (max-width: 900px){
    #categories .left{ padding-bottom: 20px; }
    #categories .tit{ margin-bottom: 25px; }
}

@media screen and (max-width: 750px){
    #categories .grid-box{ grid-template-columns: repeat(2, 50%); }
}