@charset "utf-8";


/*グローバルナビゲーション
==================================================================================================================*/
/*ヘッダー*/

header {
    width: 100%;
    padding: 0;
    margin: 0;
    transition: all 0.8s;
    font-size: clamp(14px, 2vw, 30px);
}

header:has(#gnav_wrap.panelactive) {
    position: fixed;
    z-index: 9999;
}

.header_logo {
    max-height: 15vh;
    width: calc(100vw - 240px - 6em);
    margin-inline: auto;
}

.header_logo h1 {
    width: clamp(16em, 35vw, 24em);
    margin: auto;
    position: relative;
    z-index: 9999;
}

.header_logo h1 a {
    display: inline-block;
    padding-block: .8em;
}

.header_logo h1 .txt {
    display: block;
    text-align: center;
    letter-spacing: .5em;
    margin-bottom: .8em;
    font-size: 80%;
}

.header_logo h1 .txt .small {
    font-size: inherit;
    margin-right: .3em;
}

.header_logo h1::before,
.header_logo h1::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: auto;
}

.header_logo h1::before {
    background: url(../images/common/ilst_person01.png) no-repeat center right;
    background-size: contain;
    width: 6em;
    aspect-ratio: 29 / 21;
    right: calc(100% + 1em);
}

.header_logo h1::after {
    background: url(../images/common/ilst_person02.png) no-repeat center left;
    background-size: contain;
    width: 4.5em;
    aspect-ratio: 70 / 89;
    left: calc(100% + 1em);
}

header:has(#gnav_wrap.panelactive) h1::before,
header:has(#gnav_wrap.panelactive) h1::after {
    display: none;
}

.nav_box {
    background: #EEEEEE url(../images/common/bg01.jpg) repeat;
    display: none;
    width: 100%;
    height: 100vh;
    overflow: auto;
    margin: auto;
    -webkit-overflow-scrolling: touch;
    justify-content: center;
    align-content: flex-start;
    padding-top: clamp(160px, 15vw, 240px);
}

#gnav_wrap.panelactive .nav_box {
    display: flex;
}

.nav_box .nav_menu {
    opacity: 0;
    margin: 0 auto;
    width: 94%;
    max-width: 1280px;
    gap: 2em;
}

.nav_box .nav_menu>li {
    width: calc((100% - 4em) / 3);
}

.nav_box .nav_menu>li>a,
.nav_box p a {
    display: block;
    text-align: center;
    padding: .5em 2em .5em .5em;
    border-radius: 6em;
    color: #fff;
    font-weight: 800;
}

.nav_box .nav_menu>li ul {
    margin-left: 1.25em;
    font-size: 80%;
}

.nav_box .nav_submenu li:not(:last-child) {
    margin-bottom: .5em;
}

.nav_box .nav_submenu li {
    padding-left: 1em;
    position: relative;
}

.nav_box .nav_submenu li::before {
    content: "・";
    position: absolute;
    top: 0;
    left: 0;
}

.nav_box .news a {
    background: #6F96DB;
    box-shadow: .5rem .5rem 0px rgba(111, 150, 219, .4);
}

.nav_box .blog a {
    background: #EEC703;
    box-shadow: .5rem .5rem 0px rgba(238, 199, 3, .4);
}

.nav_box .contact a {
    background: #DF7CD5;
    box-shadow: .5rem .5rem 0px rgba(223, 124, 213, .4);
}

.nav_box .guidance p a {
    background: #EC6987;
    box-shadow: .5rem .5rem 0px rgba(236, 105, 135, .4);
}

.nav_box .facility p a {
    background: #50C2D5;
    box-shadow: .5rem .5rem 0px rgba(80, 194, 213, .4);
}

.nav_box .houjin p a {
    background: #5CC980;
    box-shadow: .5rem .5rem 0px rgba(92, 201, 128, .4);
}


#gnav_wrap.panelactive {
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
}

#gnav_wrap.panelactive ul {
    opacity: 1;
}

#gnav_wrap.panelactive ul li {
    animation-name: gnaviAnime;
    animation-duration: 1s;
    animation-delay: .2s;
    animation-fill-mode: forwards;
    opacity: 0;
}

@keyframes gnaviAnime {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}


.openbtn {
    position: fixed;
    top: 1em;
    right: 1.5em;
    z-index: 998;
    cursor: pointer;
    width: 5em;
    height: auto;
    padding: .3em;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff;
}

.openbtn.active {
    right: initial;
    left: 1.5em;
    z-index: 9999;
    transform: rotateY(-180deg);
    transition: .6s;
}

.openbtn .openbtn_close {
    display: none;
}

.openbtn.active .openbtn_menu {
    display: none;
}

.openbtn.active .openbtn_close {
    display: block;
}

.openbtn>div img {
    display: block;
    height: 100%;
    width: auto;
    opacity: 1;
}

.openbtn .openbtn_close img {
    opacity: 0;
    transform: rotateY(180deg);
}

.openbtn.active .openbtn_menu img {
    opacity: 0;
}

.openbtn.active .openbtn_close img {
    opacity: 1;
}

.openbtn::after {
    content: "";
    background: url(../images/common/menu_ilst.png) no-repeat center top;
    background-size: contain;
    width: 100%;
    height: auto;
    aspect-ratio: 30 / 17;
    position: absolute;
    top: calc(100% + .5em);
    left: 0;
    right: 0;
    margin: auto;
    transition: all .3s;
}


.nav_box .illust_list {
    justify-content: center;
    gap: clamp(2em, 10vw, 10em);
    width: 100%;
    margin-top: 1em;
}

.nav_box .illust_list>li {
    width: 25vw;
}

.nav_box .illust_list .illust01 {
    max-width: 245px;
}

.nav_box .illust_list .illust02 {
    max-width: 217px;
}

@media (min-width: 800px) and (max-height: 1000px) {
    .nav_box .illust_list {
        display: none;
    }
}


/*スクロールでヘッダー調整*/
@media (min-width: 800px) {

    /*
body:not(:has(.panelactive)) header.transform{ padding: 1.5em 1em 0;}
body:not(:has(.panelactive)) header.transform .header_logo h1{
  width: 27.5vw;
  min-width: 340px;
  transition: all .5s;
}
body:not(:has(.panelactive)) header.transform .header_logo h1 .txt{
  font-size: clamp(0.875rem, 0.784rem + 0.45vw, 1.125rem);
  margin-bottom: .25em;
}
body:not(:has(.panelactive)) header.transform .header_logo h1::before{
  width: 8vw;
  height: 6vw;
  min-width: 100px;
  min-height: 73px;
  left: calc(-8vw - 2em);
  transition: all .5s;
}
body:not(:has(.panelactive)) header.transform .header_logo h1::after{
  width: 6vw;
  height: 8vw;
  min-width: 73px;
  min-height: 100px;
  right: calc(-6vw - 2em);
  transition: all .5s;
}
*/
}


@media (max-width: 799px) {
    header {
        padding: .3em;
        background: #fff;
        position: fixed;
        z-index: 9999;
        font-size: clamp(14px, 4vw, 21px);
    }

    .header_logo {
        margin: 0;
        width: auto;
        max-width: calc(100% - 120px);
        height: auto;
    }

    .header_logo h1::before,
    .header_logo h1::after {
        display: none;
    }

    .header_logo h1 {
        margin-left: 0;
        width: auto;
    }

    .header_logo h1 a {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        padding-block: .3em;
    }

    .header_logo h1 .txt {
        margin-bottom: 0;
        letter-spacing: 0;
    }

    .header_logo h1 .txt .small {
        margin-right: 0;
        display: block;
        font-size: 65%;
    }

    .header_logo h1 img {
        width: 14em;
    }

    .nav_box {
        width: 100%;
        background: #fff;
        padding: 15vw 0;
    }

    .nav_box .nav_menu {
        width: 75%;
        gap: 1.5em 1em;
    }

    .nav_box .nav_menu>li {
        width: 100%;
    }

    .nav_box .nav_menu>li.sp_btn {
        width: calc(50% - .75em);
    }

    .nav_box .nav_menu>li.sp_btn:nth-of-type(3) {
        margin-inline: auto;
    }

    .nav_box .nav_menu>li.sp_txt a {
        background: none;
        box-shadow: none;
        text-align: left;
    }

    .nav_box .nav_menu>li.sp_txt .arrow::before,
    .nav_box .nav_menu>li.sp_txt .arrow::after {
        display: none;
    }

    .nav_box .guidance p a {
        color: #EC6987;
    }

    .nav_box .facility p a {
        color: #50C2D5;
    }

    .nav_box .houjin p a {
        color: #5CC980;
    }

    .nav_box p {
        position: relative;
        padding-left: 1em;
        margin: 0;
    }

    .nav_box p::after {
        content: "";
        position: absolute;
        top: 54%;
        left: 0;
        transform: translateY(-50%);
        width: 1em;
        height: .75em;
        clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    }

    .nav_box .nav_menu>li.sp_txt p a {
        padding-block: 0;
    }

    .nav_box .guidance p::after {
        background-color: #EC6987;
    }

    .nav_box .facility p::after {
        background-color: #50C2D5;
    }

    .nav_box .houjin p::after {
        background-color: #5CC980;
    }

    .nav_box .nav_submenu {
        display: flex;
        flex-wrap: wrap;
        margin-left: .75em;
        gap: 0 2em;
    }

    .nav_box .nav_submenu li {
        width: calc(50% - 1em);
    }

    .nav_box .nav_submenu li,
    .nav_box .nav_submenu li:not(:last-child) {
        margin-block: .5em 0;
    }

    .openbtn {
        position: absolute;
        background: none;
        width: 12vw;
        min-width: 44px;
        height: 100%;
    }

    .openbtn,
    .openbtn.active {
        top: 0;
        bottom: 0;
        left: unset;
        right: .5em;
    }

    .openbtn::before,
    .openbtn::after {
        content: "";
        width: 100%;
        height: 1px;
        background: #5A412F;
        position: absolute;
        left: 0;
        right: 0;
        transition: all .3s;
    }

    .openbtn::before {
        top: .5em;
    }

    .openbtn::after {
        bottom: 0.5em;
        top: unset;
        aspect-ratio: unset;
    }

    .openbtn.active::before,
    .openbtn.active::after {
        content: "";
        width: 8vw;
        min-width: 30px;
        height: 1px;
        background: #5A412F;
        position: absolute;
        top: 50%;
        left: calc(50% - 4vw);
    }

    .openbtn.active::before {
        transform: rotate(45deg);
    }

    .openbtn.active::after {
        transform: rotate(-45deg);
        margin: 0;
    }

    .openbtn img {
        width: 100%;
        height: auto;
        margin: auto;
    }

    .openbtn.active img {
        display: none;
    }

    .nav_box .illust_list .illust01 {
        max-width: unset;
        width: clamp(120px, 21vw, 160px);
        bottom: initial;
        left: initial;
        top: 50%;
        right: 6%;
    }

    .nav_box .illust_list .illust02 {
        max-width: unset;
        width: clamp(120px, 20vw, 160px);
        bottom: initial;
        left: initial;
        top: 85%;
        right: 3%;
    }
}



@media (max-width:599px) {
    .header_logo {
        max-width: 80vw;
    }

    .nav_box .nav_menu {
        width: 90%;
    }

    .nav_box .nav_menu>li.sp_btn.contact {
        width: 100%;
    }

    .nav_box .nav_menu {
        top: 20vw;
        padding-bottom: 0;
    }

    .nav_box .nav_menu>li ul {
        font-size: 100%;
        line-height: 1.4;
    }

    .nav_box .illust_list {
        display: flex;
        gap: 0 10vw;
        justify-content: center;
        padding-block: 2em;
    }

    .nav_box .illust_list li {
        position: static;
    }
}