.footer_wrapper {
    min-height: 100vh; /* ←コンテンツの高さの最小値＝ブラウザの高さに指定 */
    position: relative;/* ←相対位置 */
    padding-bottom: 60px; /* ←フッターの高さを指定 */
    box-sizing: border-box;
}

footer {
    background:     #394340;
    color: #D0B9A8;
    text-align: center;
    margin-top: 0px;
    border-top: 1px solid #5a5a5a;
    /* width: 100%; */
    /* box-sizing: border-box; */
    /* margin-top: auto; */
    /* position: fixed; */
    /* bottom: 0; */
}

footer p {
    margin: 0;
    padding: 0;
    line-height: 16px;
    text-align: center;
    font-size: 14px;
    padding: 20px;
}
a.official-link {
    display: block;
    text-align: center;
    color: #fff;
    padding: 20px;
    text-decoration: none;
}