footer {
    height: 1000px;
    background-color: #3E3E3E;
    color: white;
}

/* タイトルセクション */
footer .title-sec {
    margin-top: 5rem;
    text-align: center;
}

footer .title-sec .title {
    padding-top: 20rem;
}

footer .title-sec img {
    padding-top: 10px;
    width: 70px;
}

/* アイコンと会社名 */
footer .title-sec .icon-name-sec,
footer > .title-sec > .title > a > section {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4rem;
    font-weight: 800;
    letter-spacing: -.2rem;
}

footer .title-sec .right {
    background: linear-gradient(to right, #00FFFB, #0D00FF);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    padding-right: 2px;
}

/* サブタイトル */
footer .title-sec .sub-title {
    display: flex;
    justify-content: center;
    width: 300px;
    margin: -15px auto;
}

/* ナビゲーション */
footer > nav > ul {
    display: flex;
    padding: 5rem;
    justify-content: center;
}

footer ul li {
    margin: 0 2rem;
    list-style-type: none;
}

footer a {
    color: white;
    text-decoration: none;
}

/* SNSリンク */
.sns-link {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
}

footer .sns-link img {
    width: 3rem;
    height: 3rem;
    margin: 0 1rem;
}

/* ポリシーリンク */
footer .policy-link-list {
    text-align: center;
}

footer .policy-link-list > nav {
    margin: 5rem auto 0;
    position: relative;
    display: inline-block;
    padding: 0 20px;
}

.policy-link-list > nav::before,
.policy-link-list > nav::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background-color: #f7f7f7;
}

.policy-link-list > nav::before {
    left: 0;
}

.policy-link-list > nav::after {
    right: 0;
}

nav > .policy-link {
    font-size: smaller;
}

/* コピーライト */
.copyright {
    text-align: center;
    margin-top: 6rem;
}

footer .title-sec .title > a {
    display: inline-block;
    text-decoration: none;
    color: inherit;
}

footer .title-sec .icon-name-sec,
footer .title-sec .sub-title {
    pointer-events: auto;
}

/* レスポンシブ対応 */
@media (max-width: 540px) {
    footer .title-sec .icon-name-sec,
    footer > .title-sec > .title > a > section {
        font-size: 2rem;
    }
    
    footer .title-sec .left {
        letter-spacing: -.09rem;
    }
    
    footer .title-sec .right {
        letter-spacing: -.1rem;
    }
    
    footer .title-sec img {
        width: 3rem;
    }
    
    footer .title-sec .sub-title {
        font-size: .6rem;
        width: 200px;
        margin: -10px auto;
    }
    
    footer > nav > ul {
        display: block;
        margin-top: 1rem;
    }
    
    footer > nav > ul li {
        margin: 1rem 0;
        text-align: center;
    }
    
    .copyright {
        font-size: 0.6rem;
        margin-top: 4rem;
    }

    .sns-link {
        margin-top: 0;
    }

    footer .sns-link img {
        width: 2rem;
        height: 2rem;
    }
}