@charset "utf-8";

/********* 環境切り替え *********************************************/

@media screen and (max-width: 767px) {
    .sp {
    }
    .tb {
        display: none;
    }
    .pc {
        display: none;
    }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
    .sp {
        display: none;
    }
    .tb {
    }
    .pc {
        display: none;
    }
}
@media screen and (min-width: 1024px) {
    .sp {
        display: none;
    }
    .tb {
        display: none;
    }
    .pc {
    }
}

/********* ベース ***************************************************/

body {
    margin: 0;
    padding: 0;
    background-color: #444;
}
form input[type="submit"], form input[type="button"] {
    border: 1px solid #222;
    background-color: #ddd;
    -webkit-border-radius: 6px;
    -moz-border-radius: 6px;
    -ms-border-radius: 6px;
    -o-border-radius: 6px;
    border-radius: 6px;
}
form input[type="submit"]:hover, form input[type="button"]:hover {
    background-color: #eee;
}
@media screen and (max-width: 767px) {
    form input, form textarea, form select {
        max-width: 320px;
        font-size: 16px;
    }
}
@media screen and (min-width: 768px) {
    form input, form textarea, form select {
        font-size: 14px;
    }
}

/********* ヘッダー *************************************************/

header {
    padding: 10px 20px;
    background-color: #444;
}
header div.content {
    overflow: hidden;
    margin: 0 auto;
}
header h1 {
    float: left;
    margin: 0 30px 0 0;
    padding: 0;
    font-size: 150%;
}
header h1 a {
    color: #fff;
    text-decoration: none;
}
header h1 a span.levis {
    font-size: 150%;
}
@media screen and (max-width: 1023px) {
    header div.content {
        width: 100%;
    }
}
@media screen and (min-width: 1024px) {
    header div.content {
        width: 960px;
    }
}

/* メニュー */
header nav {
    float: left;
    height: 60px;
}
@media screen and (max-width: 767px) {
    header nav ul {
        display: block;
        z-index: 999;
        position: fixed;
        top: -10px;
        right: -20px;
        bottom: -10px;
        left: -20px;
        background: #444;
        padding: 80px 20px 0;
    }
    header nav ul li {
        display: block;
        list-style: none;
        border-top: 1px solid #aaa;
        font-size: 110%;
    }
    header nav ul li:last-child {
        border-bottom: 1px solid #aaa;
    }
    header nav ul li a {
        display: block;
        padding: 10px;
        color: #fff;
        font-weight: bold;
        text-decoration: none;
    }
    header nav ul.menu {
        opacity: 0;
        visibility: hidden;
        overflow: hidden;
    }
    header nav ul.menu-show {
        opacity: .9;
        -webkit-transition: all .2s ease-in;
        -moz-transition: all .2s ease-in;
        -ms-transition: all .2s ease-in;
        -o-transition: all .2s ease-in;
        transition: all .2s ease-in;
    }
}
@media screen and (min-width: 768px) {
    header nav ul {
        display: flex;
        margin: 24px 0 0;
    }
    header nav ul li {
        list-style: none;
        margin-right: 30px;
    }
    header nav ul li a {
        color: #fff;
        font-weight: bold;
        text-decoration: none;
    }
}

/* ハンバーガーメニュー */
@media screen and (max-width: 767px) {
    header nav div#nav-button {
        z-index: 999;
        display: block;
        position: absolute;
        height: 50px;
        top: 16px;
        right: 16px;
        width: 50px;
        text-align: center;
    }
    header nav div#nav-button div {
        display: inline-block;
        position: relative;
        width: 30px;
        height: 20px;
        cursor: pointer;
        margin-top: 15px;
    }
    header nav div#nav-button div:hover {
        opacity: .6
    }
    header nav div#nav-button div span {
        display: block;
        position: absolute;
        left: 0;
        width: 30px;
        height: 2px;
        background: #fff;
        -webkit-transition: all .2s ease-in;
        -moz-transition: all .2s ease-in;
        -ms-transition: all .2s ease-in;
        -o-transition: all .2s ease-in;
        transition: all .2s ease-in;
    }
    header nav div#nav-button div span:nth-of-type(1) {
        top: 0;
    }
    header nav div#nav-button div span:nth-of-type(2) {
        top: 10px;
    }
    header nav div#nav-button div span:nth-of-type(3) {
        top: 20px;
    }
    header nav div#nav-button div.nav-active span:nth-of-type(1) {
        top: 10px;
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        -o-transform: rotate(45deg);
        transform: rotate(45deg);
    }
    header nav div#nav-button div.nav-active span:nth-of-type(2) {
        opacity: 0;
    }
    header nav div#nav-button div.nav-active span:nth-of-type(3) {
        top: 10px;
        -webkit-transform: rotate(-45deg);
        -moz-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
        -o-transform: rotate(-45deg);
        transform: rotate(-45deg);
    }
}
@media screen and (min-width: 768px) {
    header nav div#nav-button {
        display: none;
    }
}

/********* コンテンツ ***********************************************/

main {
    padding: 10px 20px;
    background-color: #fff;
}
main div.content {
    margin: 0 auto;
}
@media screen and (max-width: 1023px) {
    main div.content {
        width: 100%;
    }
}
@media screen and (min-width: 1024px) {
    main div.content {
        width: 960px;
    }
}

main h2 {
    margin-bottom: 20px;
    border-bottom: 1px solid #222;
}
main section {
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ccc;
}
main section h4 {
    font-size: 120%;
}

/********* サブコンテンツ *******************************************/

aside {
    padding: 10px 20px;
    background-color: #fff;
}
aside div.content {
    margin: 0 auto;
}
@media screen and (max-width: 1023px) {
    aside div.content {
        width: 100%;
    }
}
@media screen and (min-width: 1024px) {
    aside div.content {
        width: 960px;
    }
}

aside h2 {
    display: none;
}
aside ul {
    margin: 0;
    text-align: right;
}
aside ul li {
    list-style: none;
    margin: 0;
}

/********* フッター *************************************************/

footer {
    padding: 0 20px 10px;
}
footer div.content {
    margin: 0 auto;
}
@media screen and (max-width: 1023px) {
    footer div.content {
        width: 100%;
    }
}
@media screen and (min-width: 1024px) {
    footer div.content {
        width: 960px;
    }
}
footer p {
    color: #fff;
}

/* ページのトップへ */
footer ul#totop {
    z-index: 998;
    position: fixed;
    right: 16px;
    bottom: 16px;
    margin: 0;
    background: #444;
}
footer ul#totop li {
    list-style: none;
}
footer ul#totop li a {
    display: block;
    position: relative;
    width: 50px;
    height: 50px;
    text-decoration: none;
    text-indent: -9999px;
}
footer ul#totop li a:after {
    content: "";
    display: block;
    position: absolute;
    width: 16px;
    height: 16px;
    top: 50%;
    left: 50%;
    margin-top: -4px;
    margin-left: -8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
footer ul#totop li a:hover {
    opacity: .6
}
