* {
    margin: 0; padding: 0;  
    cursor: url(./img/cursor_basic.png), auto;
}
li {list-style: none;}
a {
    text-decoration: none;
    color: black;
    cursor: url(./img/cursor_pointer01.png), auto;
}
a:hover {transition: 0.3s ease;}
html {font-size: 62.5%;}
body {
    font-family: "Pretendard", "san-serif";
    font-weight: 400;
    font-size: 1.6rem;
    word-break: keep-all;
    /* text-align: justify; */
}

/************ header **************/
.header {
    width: 100%; height: 65px;
    background-color: #fff;
    position: relative;
    position: fixed;
    top: 0; left: 0;
    z-index: 100;
}
.header_inner {position: relative;}
.header .logo {
    width: 100px;
    padding: 17px 20px;
    cursor: url(./img/cursor_pointer01.png), pointer;
}
.header .logo img {width: 100%;}
.pc_about {display: none;}

/************ gnb **************/
#gnb_chk {display: none;}
#gnb_chk:checked ~ .gnb_menu {right: 0;}
#gnb_chk ~ .gnb_menu {right: -100%;}

html:has(#gnb_chk:checked) {
    overflow: hidden;
    height: 100vh;
}
.gnb_btn_mobile {
    font-size: 2.8rem;
    position: absolute;
    top: 17px; right: 20px;
    cursor: pointer;
}
.gnb_btn_pc {display: none;}
.gnb_btn i {cursor: pointer;}
.gnb_btn_mobile:hover {
    color: #008eff;
    transition: 0.3s ease;
}

.gnb_menu{
    width: 100%;
    height: 100svh;                    /* 폴백: 100vh; 최선: 100dvh/100svh */
    height: 100dvh;
    background-color: #FFF000;
    position: fixed;
    top: 0; right: -100%;
    z-index: 9999;
    overflow-y: auto;
    transition: right 0.3s ease-in-out;
}
.gnb_menu .menu_top {
    width: 100%; height: 70px;
    position: relative;
}
.gnb_menu .menu_top .gnb_close {
    width: 30px;
    position: absolute;
    top: 20px; right: 15px;
    z-index: 9999;
    cursor: url(./img/cursor_pointer01.png), auto, pointer;
}
.gnb_menu .menu_top .gnb_close img {width: 100%;}

.menu_wrap {
    width: 100%;
    /* overflow: hidden; */
}
.menu_title {
        position: relative;
        padding: 17px 20px;
        cursor: pointer;
        font-size: 1.8rem;
        font-weight: 500;
        border-bottom: 1px solid #222;
}
.menu_title:first-child {border-top: 1px solid black;}
.menu_title .on>span {
    font-weight: bold;
    color: #006633;
}
.menu_title a:hover {color: #008eff;}
.menu_title span:hover {color: #008eff;}

.menu_list {
    margin: 0 auto;
    display: none;
    /* overflow: hidden; */
    padding: 20px 35px;
    border-bottom: 1px solid #222;
}
.last {border-bottom: none;}
.menu_list li {
    padding: 5px 0;
    line-height: 3.8rem;
}
.menu_list li a {font-size: 1.8rem;}
.arrow_wrap {
    position: absolute;
    top: 50%; right: 20px;
    transform: translate(0, -50%);
}
.menu_title .arrow_plus {display: block;}
.menu_title .arrow_minus {display: none;}
.menu_title.on .arrow_plus {display: none;}
.menu_title.on .arrow_minus {display: block;}

/************ footer **************/
.footer {
    width: 100%; height: 200px;
    margin-top: 100px;
}
.footer_inner {
    text-align: center;
    padding: 50px 0;
}

.sns {
    cursor: pointer;
    margin-bottom: 15px;
}
.sns a {
    color: #999;
    font-size: 1.4rem;
}
.sns i {
    font-size: 3.2rem;
    color: #999;
    vertical-align: middle;
}
.sns:hover a {
    color: #008eff;
    transition: 0.3s ease;
    cursor: url(./img/cursor_pointer01.png), pointer;
}
.sns:hover i {
    color: #008eff;
    transition: 0.3s ease;
    cursor: url(./img/cursor_pointer01.png), pointer;
}
.pm_logo {
    width: 100%;
    display: flex;
    gap: 20px;
    justify-content: center;
    align-items: baseline;
    margin-bottom: 20px;
}
.pm_logo li {
    width: 80px;
    float: left;
}
.pm_logo li a:hover {cursor: url(./img/cursor_pointer01.png), pointer}
.pm_logo li a:hover img {color: #666;}
.pm_logo li img {width: 100%;}
.footer .txt {
    color: #999;
    font-size: 1.4rem;
    font-weight: 300;
}

.tablet_only {display: none;}
.pc_only {display: none;}
.pc_tablet_only {display: none;}


/************ media query_Tablet **************/
@media all and (min-width: 601px){
    .header {height: 70px;}
    .header .logo {
        width: 130px;
        padding: 15px 20px;
    }

    .gnb_btn {
        font-size: 3.4rem;
        top: 16px; right: 20px;
    }
    .gnb_menu {width: 60%;}
    #gnb_chk:checked ~ .silhouette {
        width: 100%; height: 100vh;
        background-color: rgba(0, 0, 0, 0.3);
        position: fixed;
        top: 0; left: 0;
        z-index: 100;
    }
    .gnb_menu .menu_top {height: 80px;}
    .gnb_menu .menu_top .gnb_close  {width: 40px;}

    .menu_title {
        font-size: 2rem;
        padding: 20px;
    }
    .arrow_wrap {right: 25px;}

    .mobile_only {display: none;}
    .pc_only {display: none;}
    .tablet_only {display: block;}
    .pc_tablet_only {display: block;}

}

/************ media query_PC **************/
@media all and (min-width: 1025px) {
    .header_inner {
        width: calc(100% - 40px);
        max-width: 2400px;
        margin: 0 auto;
    }

    .gnb_btn_pc {
        display: block;
        font-size: 2.2rem;
        font-weight: bold;
        position: absolute;
        top: 24px; right: 20px;
        cursor: url(./img/cursor_pointer01.png), pointer;
    }
    .gnb_btn_pc:hover {
    color: #008eff;
    transition: 0.3s ease;
}
    .gnb_btn_mobile {display: none;}

    .gnb_menu {width: 30%;}
    .gnb_pc ul li {
        float: left;
        margin-left: 30px;
        font-weight: 500;
    }
    .menu_title {
        font-size: 2.2rem;
        font-weight: 600;
        padding: 24px 30px;
}
    .menu_list li a {
        font-size: 2rem;
        font-weight: 400;
    }
    .pc_about {
        display: block;
        position: absolute;
        top: 24px; right: 95px;
        font-size: 2.2rem;
        font-weight: bold;
    }
    .pc_about:hover {color: #008eff;}

    .mobile_only {display: none;}
    .tablet_only {display: none;}
    .pc_only {display: block;}

}

