@charset "utf-8";
*{
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: 500;
    font-style: normal;
    font-size: 62.5%;
    p{
        font-size: 1.7rem;
        line-height: 3.2rem;
        letter-spacing: 0.2rem;
        padding: 2rem 0;
        font-weight: 500;
    }
    .text h2{
        font-size: 2.8rem;
        letter-spacing: 0.3rem;
        font-weight: 800;
    }
    .text h3{
        font-size: 2.2rem;
        letter-spacing: 0.2rem;
        font-weight: 800;
    }
    .text h4{
        font-size: 1.7rem;
        letter-spacing: 0.2rem;
        font-weight: 500;
    }
    a{
        font-weight: 800;
    }
    span {
        display: inline-block;
        font-size: 1.7rem;
        line-height: 0;
        letter-spacing: 0.2rem;
        padding: 2rem 0;
        font-weight: 500;
    }
}

html{
    height: 100dvh;
}

.top_btn{
    cursor: pointer;
    z-index: 5;
    position: fixed;
    top: 3rem;
    left: 4rem;
}
.top_btn img{
    width: 24rem;
}
.btn{
    position: fixed;
    top: 4rem;
    right: 4rem;
    z-index: 1001;
}


.book_btn01{
    cursor: pointer;
}
.book_btn01 img{
    width: 3.2rem;
}
.book_btn02{
    cursor: pointer;
    text-decoration: none;
    padding: 0 3px;
}
.book_btn02 span{
    color: #235994;
    font-size: 1.6rem;
    letter-spacing: 0;
    font-weight: 600;
}
.book{
    width: fit-content;
}

.hamburger_btn{
    width: 30px;
    height: fit-content;
    cursor: pointer;
    display: block; 
    position: relative;
}
.h_span{
    position: relative;
    background-color: #235994;
    height: 2.4px;
    width: 100%;
    border-radius: 10px;
    transition: all 0.4s ease-in-out;
    padding: 0;
    transform-origin: center;
}
.h_span:nth-of-type(1) {
    top: -2px;
}
.h_span:nth-of-type(2) {
    bottom: -2px;
}
/* クリック時に横アイコンが斜めになる */
.h_span.active:nth-of-type(1) {
    transform: translateY(4.6px) rotate(-45deg);
}
.h_span.active:nth-of-type(2) {
    transform: translateY(-4.6px) rotate(45deg);
}

  
.hamburger{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fffdff;
    width: 100%;
    min-height: 70rem;
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    transition: all 0.3s;
}
.hamburger.show{
    display: flex;
}
.menu{
    display: flex;
    align-items: flex-start;
    flex-flow: column;
    gap: 3.2rem;
}
.hamburger ul{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2rem 1rem;
    max-width: 70rem;
}
#menu01,#menu02,#menu03{
    background-color: #235994;
    color: #fffdff;
}
#menu01:hover,#menu02:hover,#menu03:hover{
    background-color: #235994a2;
    color: #fffdff;
}
.hamburger li{
    list-style: none;
}
.hamburger li a{
    padding: 0.2rem 0.8rem 0.4rem 1rem;
    border-radius: 5rem;
    text-align: center;
    cursor: pointer;
    z-index: 1;
    position: relative;
    transition: all 0.3s;
    letter-spacing: 0.3rem;
    font-size: 1.7rem;
    background-color: #fffdff;
    text-decoration-line: none;
    color: #235994;
}
.hamburger li a:hover{
    background-color: #235994a2;
    color: #fffdff;
}

.head{
    width: 100%;
    background-image: url(sozai/head01.jpg);
    position: fixed;
    z-index: -1;
    background-size: cover;
    background-position: center;
    height: 100%;
    margin-top: 0;
    height: 80rem;
    margin-bottom: 8rem;
    display: flex;
    justify-content: flex-start;
}
#head02{
    background-image: url(sozai/head02.jpg);
}
#head03{
    background-image: url(sozai/head03.jpg);
}
.head h2{
    color: #235994;
    font-size: 2.8rem;
    letter-spacing: 0.4rem;
    text-align: right;
    margin: 9rem 0 0 5.8rem;
    font-weight: 800;
}

.aida{
    width: 100%;
    height: 35rem;
    display: flex;
    padding-top: 2rem;
}
.aida img{
    width: 100%;
    object-fit: cover;
}

/*INDEX--------------------------------------------------------*/

.standout{
    letter-spacing: 0.2rem;
    font-weight: bold;
    font-size: 1.8rem;
}
.text00,.text01{
    display: flex;
    justify-content: space-between;
    margin: 1.6rem 0;
    align-items: center;
}

.haikei00{
    background-color: #fffdff;
}
.haikei01{
    background-color: #73aed2;
}

.content00{
    color: #235994;
    max-width: 70rem;
    margin: 0 auto;
    padding-bottom: 10rem;
}

.text{
    margin: 1rem;
}
.time img{
    object-fit: contain;
    width: 100%;
    height: 30rem;
    margin-top: -2rem;
}

.content_name{
    letter-spacing: 0.5rem;
    display: flex;
    margin: 0 0 4rem 0;
    padding-top: 8rem;
    justify-content: center;
}
.content_name h1{
    color: #235994;
    font-size: 4rem;
    font-weight: bolder;
}

.moreBox{
    display: flex;
    justify-content: flex-end;
    margin-top: -1rem;
}
.moreBox .more a{
    padding: 0.6rem 1.2rem 0.8rem 1.4rem;
    border-radius: 5rem;
    text-align: center;
    cursor: pointer;
    z-index: 1;
    position: relative;
    transition: all 0.3s;
    letter-spacing: 0.3rem;
    font-size: 2rem;
    border: 2px solid #235994;
    box-sizing: border-box;
    color: #235994;
    text-decoration: none;
    font-size: 1.7rem;
}
.moreBox .more a:hover{
    color: #fffdff;
    background-color: #235994;
}
.content01 .moreBox .more a{
    padding: 0.6rem 1.2rem 0.8rem 1.4rem;
    border-radius: 5rem;
    text-align: center;
    cursor: pointer;
    z-index: 1;
    position: relative;
    transition: all 0.3s;
    letter-spacing: 0.3rem;
    font-size: 2rem;
    border: 2px solid #fffdff;
    box-sizing: border-box;
    color: #fffdff;
    text-decoration: none;
    font-size: 1.7rem;
}
.content01 .moreBox .more a:hover{
    color: #235994;
    background-color: #fffdff;
}
.mapes{
    max-width: 70rem;
    display: flex;
    justify-content: center;
    gap: 1rem;
    width: 100%;
}
.mapes .map{
    width: calc(50% - 0.5rem);
}

/*ABOUT--------------------------------------------------------*/
.ultagu{
    display: flex;
    width: fit-content;
    flex-wrap: wrap;
    gap: 2rem 2rem;
    margin: 2rem 0 0 0;
    color: #235994;
    border: 2px solid #235994;
    padding: 1rem 2rem;
    border-radius: 0rem;

}
.ultagu li a{ 
    font-size: 1.7rem;
    text-decoration: none;
}

.tel{
    display: flex;
    align-items: center;
    gap: 1rem;
}
.book{
    width: 100%;
    margin-top: 1rem;
}
.book .moreBox{
    display: inline;
    margin-top: 0.2rem;
}
.book .moreBox .more a{
    padding: 0.2rem 0.8rem 0.4rem 1rem;
}
.content01{
    color: #fffdff;
    max-width: 70rem;
    margin: 0 auto;
    padding-bottom: 10rem;
    
}

.yakusoku{
    padding-top: 8rem;
    padding-bottom: 8rem;
}

.num h1{
    font-size: 8rem;
    font-weight: 800;
    color: #00EBC7;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 900;
    font-style: normal;
}

.flex_boxes{
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 1rem;
}
.flex_box{
    width: calc(50% - 0.5rem);
}
.flex_box img{
    object-fit: cover;
    width: 100%;
    aspect-ratio: 7/4;
}
.flex_contents{
    display: flex;
    flex-flow: column;
}
.flex_contents p{
    line-height: 2.5rem;
}
.staff_img{
    width: 50%;
    aspect-ratio: 1 / 1;
}
.staff_img img{
    object-fit: cover;
    width: 100%;
    height: 100%;
    border-radius: 4rem;
}
.staff{
    color: #fffdff;
    width: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.info{
    margin-bottom: 4rem;
}
.info p{
    font-size: 1.6rem;
    line-height: 2.8rem;
    letter-spacing: 0;
    padding: 0.4rem 0;
    font-weight: 500;
}
.info a{
    font-size: 1.6rem;
    line-height: 2.8rem;
    letter-spacing: 0;
    padding: 0.4rem 0;
    font-weight: 500;
    color: #fffdff;
}
.info a:hover{
    color: #00EBC7;
}
.text02{
    margin-bottom: 5rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid #235994;

}
.content01 .text02{
    margin-bottom: 5rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid #fffdff;

}
.text02 h3{
    margin-top: 4rem;
    margin-bottom: 2rem;
}
.text03{
    display: flex;
    justify-content: space-between;
}
.text03 .moreBox{
    margin: 0;
}
/*TREATMENT--------------------------------------------------------*/
.details{
    margin-bottom: 0.5rem;
}
.summary00{
    background-color: #fffdff;
    color: #235994;
    border-radius: 0.8rem;
    padding: 1rem 2rem 0.4rem 2rem;
    transition: 0.3s all;
    display: block;

}
.summary00:hover{
    background-color: #fffdff;
}
.summary00::-webkit-details-marker {
    /* Safari-デフォルトの三角形を削除*/
    display: none;
}
.deg h2{
    transition: transform 0.3s ease;
}
details[open] .deg h2{
    transform: rotate(135deg);
}

.acc{
    overflow: hidden;
    margin-bottom: 4rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid #235994;
}
.content01 .acc{
    border-bottom: 2px solid #fffdff;
}

.content_price{
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}
.price{
    margin: 0;
    background-color: #fffdff;
    display: flex;
    flex-flow: column;
    align-items: center;
    width: calc(50% - 0.5rem);
    justify-content: center;
    padding-top: 2rem;
    padding-bottom: 2rem;
    border-radius: 0.8rem;
    gap: 0.4rem;
    color: #235994;
}
.price a{
    font-size: 1.7rem;
}
.price .a{
    font-size: 1.5rem;
    font-weight: 400;
}
.price a:nth-of-type(1){
    font-weight: 800;
    letter-spacing: 0.2rem;
}
.price a:nth-of-type(2){
    font-size: 2.8rem;
    font-weight: 800;
}
.price a:nth-of-type(3){
    background-color: #235994;
    color: #fffdff !important;
    padding: 0.4rem 0.8rem;
    font-size: 1.5rem;
    border-radius: 0.4rem;
    min-width: 40%;
    display: flex;
    justify-content: center;
    margin-top: -0.4rem;
    margin-bottom: 0.8rem;
}
.price a:nth-of-type(4){
    font-size: 1.5rem;
    opacity: 80%;
} 
.content00 .price{
    margin: 0;
    background-color: #235994;
    display: flex;
    flex-flow: column;
    align-items: center;
    width: calc(50% - 0.5rem);
    justify-content: center;
    padding-top: 2rem;
    padding-bottom: 2rem;
    border-radius: 0.8rem;
    gap: 0.4rem;
    color: #fffdff;
}
.content00 .price a:nth-of-type(3){
    background-color: #fffdff;
    color: #235994 !important;
    padding: 0.4rem 0.8rem;
    font-size: 1.5rem;
    border-radius: 0.4rem;
    min-width: 40%;
    display: flex;
    justify-content: center;
    margin-top: -0.4rem;
    margin-bottom: 0.8rem;
}
.flex_boxes03{/*img3枚ようのclass*/
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.6rem;
}
.flex_box03{
    width: calc(33.33333% - 0.4rem);
}
.flex_box03 img{
    object-fit: cover;
    width: 100%;
    aspect-ratio: 7/4;
}
.summary01{
    background-color: #235994;
    color: #fffdff;
    border-radius: 0.8rem;
    padding: 1rem 2rem 0.4rem 2rem;
    transition: 0.3s all;
    display: block;
}
.summary01:hover{
    background-color: #235a94;
}
.summary01::-webkit-details-marker {
    /* Safari-デフォルトの三角形を削除*/
    display: none;
}
.content01 .ultagu{
    display: flex;
    width: fit-content;
    flex-wrap: wrap;
    gap: 2rem 2rem;
    margin: 2rem 0 0 0;
    border: 2px solid #fffdff;
    color: #fffdff;
    padding: 1rem 2rem;
    border-radius: 0rem;
}

.num b{
    font-size: 2rem;
    font-weight: 800;
    /*font-family: "Noto Sans JP", sans-serif;*/
}
.num_p p:nth-of-type(1){
    font-weight: 800;
    padding-bottom: 0;
}
.num_p p:nth-of-type(2){
    padding-top: 0;
}
.num_p a{
    font-size: 1.7rem;
    font-weight: 500;
}

.img{
    width: 100%;
}
.img img{
    object-fit: contain;
    width: 100%;
    aspect-ratio: 7/3;
}
.download{
    color: #235994;
}
.download:hover{
    color: #00EBC7;
}
/*FOOTER--------------------------------------------------------*/
footer{
    height: 30rem;
    background-color: #73aed2;
    padding-top: 10rem;
    height: fit-content;
}
.footer{
    display: flex;
    align-items: center;
    flex-flow: column;
    gap: 2rem;
    margin-bottom: 4rem;
    margin-left: -2rem;
}
.footer ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem 1rem;
    max-width: 70rem;
}
.footer li{
    list-style: none;
}
.footer li a{
    padding: 0.2rem 0.8rem 0.4rem 1rem;
    border-radius: 5rem;
    text-align: center;
    cursor: pointer;
    z-index: 1;
    position: relative;
    transition: all 0.3s;
    letter-spacing: 0.3rem;
    font-size: 1.7rem;
    text-decoration-line: none;
    color: #fffdff;
}
.footer li a:hover{
    background-color: #235994a2;
    color: #fffdff;
}
.footer_content{
    max-width: 70rem;
    padding-top: 1rem;
    display: flex;
    align-items: center;
    gap: 2rem;
}
.footer_content .img01{
    width: 28rem;
}
.footer_content a{
    text-decoration: none;
}
.footer_content h2{
    color: #fffdff;
    font-size: 2rem;
    cursor: pointer;
}

/*--------------------------------------------------------*/
@media(max-width:439px){
    .moreBox .more a{
        border: solid 1.6px #235994;
    }
    .content01 .moreBox .more a{
        border: solid 1.6px #fffdff;
    }
    .ultagu{
        border: solid 1.4px #235994;
    }
    .content01 .ultagu{
        border: solid 1.4px #fffdff;
    }
    .acc{
        border-bottom: solid 1.6px;
    }
    .acc{
        border-bottom: 1.2px solid #235994;
    }
    .content01 .acc{
        border-bottom: 1.2px solid #fffdff;
    }
    .time img{
        margin-top: -8rem;
    }
}
@media(max-width:599px){
    *{
        font-size: 50%;
        font-weight: 500;
        p{
            font-size: 14px;
            letter-spacing: 0.15rem;
        }
        .text h2{
            font-weight: 800;
        }
        .text h3{
            font-weight: 800;
        }
        .text h4{
            font-size: 14px;
            font-weight: 800;
            letter-spacing: 0.15rem;
        }
        a{
            font-weight: 800;
        }

        span{
            font-size: 14px;
        }
        .span{
            display: flex;
            flex-flow: column;
            align-items: center;
        }      
    }
    .top_btn{
        left: 1rem;
    }
    .btn{
        position: fixed;
        right: 1rem;
    }
    .h_span.active:nth-of-type(1) {
        transform: translateY(3.6px) rotate(-45deg);
    }
    .h_span.active:nth-of-type(2) {
        transform: translateY(-3.6px) rotate(45deg);
    }
    .head h2{
        margin: 9rem 0 0 2.4rem;
    }
    .mapes{
        flex-flow: column;
    }
    .mapes .map{
        width: 100%;
    }
    .text01{
        max-width: 70rem;
    }
    .num_p a{
    font-size: 14px;
    font-weight: 800;
    }
    .footer_content{
        flex-flow: column;
    }
}
@media(max-width:767px){
    
    .ultagu{
        gap: 0 2rem;
    }

    .text00{
        flex-flow: column;
        margin-bottom: 4rem;
    }
    .content00 .price,.content01 .price{
        width: 100%;
    }
}