html,
body,
a {
    cursor: none;
}

body {
    width: 100%;
    background-color: var(--c-wh);
}

#cursor {
    position: fixed;
    top: -10px;
    left: -10px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--c-gr);
    z-index: 1500;
    transition: width 0.5s, height 0.5s, top 0.5s, left 0.5s;
    transform: translate(0, 0);
    pointer-events: none;
}
/*カーソルホバー*/
#cursor.cursor--hover {
    top: -10px;
    left: -10px;
    width: 10px;
    height: 10px;
    background: var(--c-gr);
}
@media (max-width: 840px) {
    html,
    body,
    a {
        cursor: initial;
    }
    #cursor {
        display: none;
    }
}
/*追従*/
.float {
    display: block;
    width: 40px;
    height: 38px;
    background-size: 50%;
    background-image: url(../img/btn-top.png);
    background-size: 50%;
    background-position: center;
    background-repeat: no-repeat;
    position: fixed;
    bottom: 10px;
    right: 10px;
    z-index: 900;
    transition: .3s;
}
.float.rotate {
    -webkit-transform: rotate(-180deg);
    -ms-transform: rotate(-180deg);
    transform: rotate(-180deg);
    transition: .3s;
}
@media (max-width: 640px) {
    .float {
        display: block;
        width: 20px;
        height: 19px;
        bottom: 20px;
        z-index: 900;
        background-image: url(../img/btn-top-smt-a.png);
        left: 50%;
        transform: translateX(-50%);
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        position: -webkit-sticky;
        position: sticky;
        background-size: 100%;
    }
    .float.rotate {
        transform: translateX(-50%) rotate(-180deg);
        -webkit-transform: translateX(-50%) rotate(-180deg);
        -ms-transform: translateX(-50%) rotate(-180deg);
    }
}

/* header */
header {
    width: calc(100% - 60px);
    margin: 26px auto;
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    z-index: 100;
}
header a {
    font-size: 18px;
}
.head-left {
    transition: .3s;
    position: absolute;
    top: 0;
    left: 0;
}
.head-left:hover {
    transition: .3s;
    color: var(--c-gr);
}
.head-mid {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}
.head-mid a {
    padding: 4px 0px;
}
.head-mid a:hover {
    color: var(--c-gr);
}
.head-mid a::after {
    content: '/';
    padding: 0 0 0 4px;
    color: #000;
}
.head-mid a::after:hover {
    color: #000;
}
.head-right {
    position: absolute;
    top: 0;
    right: 0;
}
.head-right:hover {
    color: var(--c-gr);
}
.head-mid a:last-of-type:after {
    content: '';
    padding: 0;
}

@media (max-width: 600px) {
    header {
        display: none;
    }
}

main {
    max-width: 1080px;
    margin: auto;
    min-height: 100vh;
}
@media (max-width: 1100px) {
    main {
        padding: 30px;
    }
}


footer {
    width: 100%;
    border-bottom: 6px solid #67C2A8;
    position: relative;
}
footer img {
    margin: 0 auto 11px;
    display: block;
    width: 76px;
}
footer p {
    position: absolute;
    left: 30px;
    bottom: 9px;
    line-height: 1em !important;
    font-size: 13px;
}

@media (max-width: 840px) {
    footer p {
        display: none;
    }
    footer img {
        width: 60px;
    }
}



body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    /* 背景カラー */
    z-index: 9999;
    /* 一番手前に */
    pointer-events: none;
    /* 他の要素にアクセス可能にするためにポインターイベントは無効に */
    opacity: 0;
    /* 初期値では非表示 */
    -webkit-transition: opacity .4s ease;
    /* アニメーション時間は 0.4秒 */
    -ms- transition: opacity .4s ease;
    -moz- transition: opacity .4s ease;
    transition: opacity .4s ease;
}


/*body要素に.fadeoutセレクタがある場合には、レイヤーが表示されるようにopacityを１に設定します。*/

body.fadeout::after {
    opacity: 1;
}


/*お好みで、.fadeoutセレクタ以下の他の要素にもアニメーション用のCSSを定義します*/
/*DEMOではページ遷移時にarticle要素のスケールもアニメーションさせています*/