.footer{
    color: #000;
    letter-spacing: 1px;
    display: flex;
    flex-direction: column;
    gap: 3rem;
    margin-top: 2rem;
}

/** footer-contact-section **/
.footer-contact-section{
    position: relative;
    display: grid;
    gap: 40px;
    width: 90%;
    max-width: 1093px;
    margin: 0 auto;
    color: #000;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(2, auto);
}
.footer-contact-info-wrapper{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    max-width: 100%;
}
.footer-contact-info-message-wrapper{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    max-width: 100%;
}
.footer-contact-info-title{
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 20px;
    letter-spacing: 2px;
}
.footer-contact-info-message{
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.footer-contact-info-link{
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}
.footer-contact-info-link > div{
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 30px;
    border: 1px solid;
    line-height: normal;
}
.footer-contact-info-wrapper:first-child .footer-contact-info-title, .footer-contact-info-wrapper:first-child .footer-contact-info-link a{
    color: #ee7300;
}
.footer-contact-info-wrapper:first-child .footer-contact-info-link div{
    border-color: #ee7300;
}
.footer-contact-info-wrapper:last-child .footer-contact-info-title, .footer-contact-info-wrapper:last-child .footer-contact-info-link a{
    color: #3db134;
}
.footer-contact-info-wrapper:last-child .footer-contact-info-link div{
    border-color: #3db134;
}
.footer-contact-info-link a{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 13px 0;
}
/** /footer-contact-section **/

/** footer-banner-section **/
.footer-banner-section{
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 90%;
    flex-wrap: wrap;
    margin: 60px auto 20px auto;
    gap: 10px;
}
.footer-banner-wrapper{
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid #ccccccaa;
}
@media (min-width: 769px){
    .footer-banner-section{
        flex-wrap: nowrap;
    }   
}
/** /footer-banner-section **/

/** footer-operating-company-section **/
.footer-operating-company-section{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: flex-start;
    position: relative;
    width: 90%;
    max-width: 1280px;
    font-size: 12px;
    margin: auto;
}
.footer-operating-company-info-wrapper{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
}
.footer-operating-company-logo{
    position: relative;
    width: 90%;
    max-width: 430px;
    margin: 20px 0;
}
.footer-operating-company-info > a{
    text-decoration: none;
    color: #000;
}
.footer-page-links{
    display: none;
}
/** /footer-operating-company-section **/

/** footer-fukuross-link-section **/
.footer-fukuross-link-section{
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 90%;
    max-width: 1280px;
    margin: auto;
}
.footer-fukuross-link-wrapper{
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
}
#img_fukuross_on_footer{
    width: 90%;
    max-width: 280px;
}
/** /footer-fukuross-link-section **/

/** footer-copyright-section **/
.footer-copyright-section{
    background-color: #3eb134;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 30px 0;
}
.footer-copyright-wrapper{
    display: flex;
    justify-content: center;
    align-items: center;    
    flex-wrap: wrap;
    gap: 10px;
    padding: 0 10px;
}
.footer-copyright-text{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    font-size: 10px;
    color: #fff;
    height: 14px;
    letter-spacing: 2.5px;
    font-size: 12px;
}
.c-mark{
    font-size: 12px;
}
.footer-copyright-text > span:first-child{
    margin-right: 8px;
}
/** /footer-copyright-section **/


@media (min-width: 769px) {
    .footer{
        align-items: center;
        margin: auto;
        margin-top: 3rem;
    }
    /** footer-contact-section **/
    .footer-contact-section{
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: 1fr;
    }
    .footer-contact-info-wrapper{
        justify-content: space-between;
    }
    .footer-contact-info-title{
        font-size: 30px;
        letter-spacing: 3px;
    }
    .footer-contact-info-message, .footer-contact-info-link{
        font-size: 18px;
        letter-spacing: 2px;
    }
    /** /footer-contact-section **/

    /** footer-operating-company-section **/
    .footer-operating-company-section{
        justify-content: space-between;
        max-width: 1280px;
        font-size: 14px;
    }
    .footer-operating-company-info-wrapper{
        width: 35%;
    }
    .footer-page-links{
        width: 50%;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 5px;
    }
    .footer-page-links-column{
        display: flex;
        flex-direction: column;
    }
    .footer-page-links-column > ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }
    
    .footer-page-links-column > ul > li {
        color:#3db134;
        padding: 0;
        max-width: 648px;
        word-break: break-all;
        line-height: 1.5;
        display: flex;
        align-items: center; /* テキストとマーカーを縦中央に揃える */
        font-weight: 600;
    }
    
    .footer-page-links-column > ul > li > div{
        display: flex;
        align-items: center; /* テキストとマーカーを縦中央に揃える */
        padding: 0.5rem 0;
        gap: 10px;
    }
    
    .footer-page-links-column > ul > li > div::before {
        content: "•";
        position: relative;
    }
    
    .footer-page-links-column > ul > li > div > a{
        text-decoration: none;
        color:#3db134;
    }
    /** /footer-operating-company-section **/

    /** footer-copyright-section **/
    .footer-copyright-text{
        font-size: 14px;
        height: 18px;
    }
    .c-mark{
        font-size: 14px;
    }
    /** /footer-copyright-section **/
}

/* mypage link */
.mypage-link-on-the-right{
    display: none;
}
@media (min-width: 769px) {
    .mypage-link-on-the-right {
        position: fixed;
        right: 0;
        top: 30%;
        background: #3eb134;
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        border-top-left-radius: 20px;
        border-bottom-left-radius: 20px;
        cursor: pointer;
        padding: 27px 20px;
        letter-spacing: 3px;
        font-size: 14px;
    }
    .mypage-link-on-the-right.invisible{
        display: none;
    }
    .mypage-link-on-the-right .text {
        writing-mode: tb-rl;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .mypage-link-on-the-right:focus .line-text, .mypage-link-on-the-right:hover .line-text {
        color: #fff;
    }
}

/* scroll top icon */
.scroll-top{
    display: flex !important;
    bottom: 3rem !important;
    position: fixed;
    right: .45rem;
    bottom: 1.75rem;
    display: flex;
    padding: 0 .45rem;
    z-index: 999;
}
.scroll-end{
    opacity: 1 !important;
}
.scroll-top.invisible{
    display: none !important;
}
.scroll-top-box{
    position: absolute;
    display: flex;
    background-color: #3db134;
    width: 50px;
    height: 50px;
    right: 10px;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    bottom: 25px;
}
.scroll-top-arrow{
    position: relative;
    transform: rotate(-90deg);
    top: 8px;
}
.scroll-top-arrow::before{
    position:absolute;
    content: "";
    width: 10px;
    height: 10px;
    border-right: 1.5px solid #fff;
    border-top: 1.5px solid #fff;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
    transform:rotate(45deg);
}

@media (min-width: 769px) {
    .scroll-top-box{
        width: 50px;
        height: 50px;
        right: 25px;
        bottom: -5px;
    }
    .scroll-top-arrow{
        top: 15px;
    }
    .scroll-top-arrow::before{
        width: 7px;
        height: 7px;
        border-right: 2px solid #fff;
        border-top: 2px solid #fff;
        top: 0;
        left: 9px;
    }
}