@charset "utf-8";

/* -----------------------------------------
    スマートフォン
----------------------------------------- */

@media screen and (max-width: 480px) {


    #main{
        max-width: 100%;
    }
    
    header {
        max-width: 100vw;
    }

    #header_inner {
        color: #fff;
        padding: 1rem;
    }

    #main section {
        margin: 0;
    }

    h3 {
        text-align: left;
        font-size: 18px;
    }    
    
/* -----------------------------------------
　　　 hamburger-menu
----------------------------------------- */
    .menu-trigger,
    .menu-trigger span {
        display: inline-block;
        transition: all .4s;
        box-sizing: border-box;
    }
    .menu-trigger {
        position: fixed;
        top: 1rem;
        right: 0;
        width: 40px;
        height: 40px;
        background: none;
        border: none;
        appearance: none;
        cursor: pointer;
        z-index: 300;
    }
    .menu-trigger span {
        position: absolute;
        left: 0;
        width: 18px;
        height: 4px;
        background-color: #000;
        border-radius: 4px;
    }
    .menu-trigger span:nth-of-type(1) {
        top: 0;
    }
    .menu-trigger span:nth-of-type(2) {
        top: 10px;
    }
    .menu-trigger span:nth-of-type(3) {
        bottom: 16px;
    }
    .menu-trigger.active {
        transform: rotate(360deg);
    }
    .menu-trigger.active span:nth-of-type(1) {
        transform: translateY(10px) rotate(-45deg);
        background: #749CD2;
    }
    .menu-trigger.active span:nth-of-type(2) {
        transform: translateY(0) rotate(45deg);
        background: #749CD2;
    }
    .menu-trigger.active span:nth-of-type(3) {
        opacity: 0;
    }

    /* メニューボタン */
    li a {
        color: #749CD2;
        font-size: 24px;
        font-weight: bold;
    }

    nav {
        position: fixed;
        right: -320px; /* 右から出てくる */
        top: 0;
        width: 300px; /* スマホに収まるサイズ */
        height: 100vh;
        padding-top: 60px;
        background: url(../img/bk.jpg) no-repeat;
        transition: all .6s;
        z-index: 200;
        overflow-y: auto; /* メニューが多くなったらスクロールできるように */
    }

    .nav_list {
        display: block;
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .nav_item {
        text-align: center;
        padding: 0;
        margin: 2rem;
        background-color: transparent;
        border: none;
    }
    .nav_item a {
        display: block;
        padding: 8px 0;
        text-decoration: none;
    }
    .nav_item a:hover {
        background-color: #749CD2;
        border-radius: 20px;
        color: #fff;
    }
    .nav_item::before {
        content: none;
    }

    .black_bg {
        position: fixed;
        left: 0;
        top: 0;
        width: 100vw;
        height: 100vh;
        z-index: 100;
        background-color: #333;
        opacity: 0;
        visibility: hidden;
        transition: all .6s;
        cursor: pointer;
    }

    /* 表示された時用のCSS */
    .nav-open nav {
        right: 0;
    }
    .nav-open .black_bg {
        opacity: .8;
        visibility: visible;
    }

/* -----------------------------------------
top
----------------------------------------- */
    #main_bg {
    background-position: center center;
    height:  50vh;
    background-size: 100%;
    }

    #top h2 br{
        display: none;
    }
    #top h2 {
        text-align: left;
        font-size: 24px;
        margin: 1em;
        line-height: 1.2em;
    }
    #top h3 {
        text-align: center;
        font-size: 18px;
        margin: 0;
    }

    .hide-text {
        width: 90%;
        margin: auto;
    }

/* -----------------------------------------
about
----------------------------------------- */
    #about h4 {
        display: block;
        text-align: center;
        background-position: center;
    }

/* -----------------------------------------
profile
----------------------------------------- */
    .profile_content {
        display: block;
    }

    .text {
        width: 100%;
    }

    .face {
        margin-bottom: 2em;
    }
/* -----------------------------------------
    fee
----------------------------------------- */
    a.btn-border-shadow {
        padding: calc(1rem - 12px) 2rem 1rem;
    }

    a.btn-border-shadow:hover {
        padding: calc(1rem - 6px) 2rem;
    }
    
    a.btn-border-shadow {
        padding: calc(1rem - 12px) 2rem 1rem;
    }

    #fee .grid-container {
        display: none;
    }

    .notice {
        margin: 2rem auto;
    }
    .notice span {
        text-align: left;
    }
    .notice p {
        padding: 0 0 3rem;
    }
    #fee table  {
        border: 1px solid #aaa;
        border-collapse: separate;
        border-spacing: 0;
        border-radius: 10px;
        overflow: hidden;
        width: 100%;
    }
    #fee td, #fee th {
        border: 1px solid #aaa;
        padding: 3px;
        width: 50%;
        height: 25px;
    }
    #fee th {
        background-color: #ddd;
    }
    #fee ul{
        margin: 20px 0 0;
    }
    #fee li {
        text-align: left;
        font-size: 14px;
        margin-bottom: .6em;
    }
    .even {
        background-color: #eee;
    }
    .odd {
        background: #fefcf9;
    }
    .lessonInfo {
        display: block;
        text-align: center;
    }
    

/* -----------------------------------------
    Contact
----------------------------------------- */
    #contact {
        padding: 3rem 0;
    }

/* -----------------------------------------
    footer
----------------------------------------- */
        footer {
            display: block;
            justify-content: center;
            align-items: center;
            margin-top: -2rem;
    }


}