@charset "utf-8";

.main{
    padding-top: 0;
}

@media screen and (max-width: 768px) {
    
}

/* MV
----------------------------------------------------------------------------- */
.top-mv{
    width: 100vw;
    height: 49.479167vw;
    background-image: url("/komashin/img/top/top_mv_pc.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding-top: 20.833333vw;
}
.top-mv-ttl{
    font-size: 2.604167vw;
    font-weight: 700;
    margin-bottom: 1.5625vw;
}
.top-mv-txt{
    background-color: rgba(255,255,255,0.55);
    padding: 1.5625vw;
    display: inline-block;
    font-size: 1.041667vw;
    line-height: 2.0em;
}

@media screen and (max-width: 768px) {
    .top-mv{
        width: 100vw;
        height: calc(100vh - 1.25vw);
        background-image: url("/komashin/img/top/top_mv_sp.png");
        padding-top: 22.5vw;
        position: relative;
    }
    .top-mv .inner{
        padding: 0;
    }
    .top-mv-ttl{
        font-size: 7.5vw;
        margin-bottom: 0;
        width:95vw;
        background-color: rgba(255,255,255,0.55);
        padding: 6vw 5vw;
    }
    .top-mv-txt{
        background-color: rgba(255,255,255,0.55);
        padding: 1.5625vw;
        font-size: 3.75vw;
        width: 95vw;
        padding: 0 5vw 5vw;
    }
    
    .top-mv-sp{
        position: absolute;
        left: 0;
        bottom: 0;
        width:100vw;
        display: flex;
    }
    .top-mv-sp a{
        display: block;
        color: #fff;
        width: 50%;
        text-align: center;
        padding: 3.75vw 0 3.25vw;
        font-size: 4.25vw;
        font-weight: 700;
    }
    .top-mv-sp a img{
        vertical-align: middle;
        margin-top: -1.25vw;
    }
    .top-mv-sp a:nth-child(1){
        background-color: #15A648;
        box-shadow: 0 1.25vw 0 #216438;
    }
    .top-mv-sp a:nth-child(2){
        background-color: #0067A5;
        box-shadow: 0 1.25vw 0 #255579;
    }
}

/* info
----------------------------------------------------------------------------- */
.top-info{
    background-color: #FFF4F4;
    padding: 10px 0;
}
.top-info .inner{
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.top-info-ttl{
    display: inline-block;
    color: #fff;
    background-color: #E46A6A;
    border-radius: 10px;
    font-size: 18px;
    padding: 8px 20px;
    margin-right: 30px;
}
.top-info-ttl i{
    margin-right: 10px;
}

.top-info-news{
    flex-grow: 2;
}
.top-info-news a{
    color: #333;
}

.top-info-more{
    text-align: right;
    
}
.top-info-more a{
    color: #E46A6A;
    font-size: 18px;
    font-weight: 700;
    margin-left: 20px;
    white-space: nowrap;
}
.top-info-more a::after{
    content: "";
    display:inline-block;
    width: 17px;
    height: 17px;
    background-image: url("/komashin/img/top/top_info_more.svg");
    background-repeat: no-repeat;
    background-position: center center;
    margin-left: 10px;
    vertical-align: middle;
    margin-top: -3px;
}

@media screen and (max-width: 768px) {
    .top-info{
        background-color: #9EC73C;
        padding: 5vw 0;
    }
    .top-info .inner{
        display: block;
    }

    .top-info-ttl{
        display: block;
        color: #fff;
        background-color: transparent;
        border-radius: 0;
        font-size: 4.5vw;
        padding: 0;
        margin-bottom: 5vw;
        margin-right: 0;
        font-weight: 700;
    }
    .top-info-ttl i{
        margin-right: 10px;
    }

    .top-info-news a{
        color: #fff;
        font-size: 3.75vw;
    }
    .top-info-news{
        margin-bottom: 5vw;
    }
    .top-info-more{
        text-align: right;

    }
    .top-info-more a{
        color: #fff;
        font-size: 4vw;
        margin-left: 0;
        white-space: nowrap;
    }
    .top-info-more a::before{
        content: "";
        display:inline-block;
        margin-right: 3.75vw;
        width: 17px;
        height: 17px;
        background-image: url("/komashin/img/arr_white03.svg");
        margin-left: 0;
        vertical-align: middle;
        margin-top: -3px;
    }
    .top-info-more a::after{
        display: none;
    }
}

/* nav
----------------------------------------------------------------------------- */
.top-nav{
    background-color: #FBFFEF;
    padding: 50px 0;
}

.top-nav .inner{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    
}
.top-nav-box{
    width: calc(50% - 25px);
}

.top-nav-box-ttl{
    text-align: center;
    color: #fff;
    font-size: 25px;
    font-weight: 700;
    border-radius: 15px 15px 0 0;
}
.top-nav-box-ttl a{
    color: #fff;
    text-decoration: none;
    display: block;
    padding: 20px 0;
    
}
.top-nav-box-ttl i{
    margin-right: 10px;
}
.top-nav .top-nav-box:nth-child(1) .top-nav-box-ttl{
    background-color: #15A648;
}
.top-nav .top-nav-box:nth-child(2) .top-nav-box-ttl{
    background-color: #0067A5;
}

.top-nav-box-main{
    background-color: #fff;
    padding: 20px;
    border-radius: 0 0 15px 15px;
    box-shadow: 0 3px 7px rgba(0,0,0,0.05);
}
.top-nav .top-nav-box:nth-child(2) .top-nav-box-main{
    padding: 7px 20px;
}
.top-nav-box-main ul{
    display: flex;
    flex-wrap: wrap;
}
.top-nav-box-main ul:nth-child(2n-1){
    border-bottom: 1px solid #DFE0ED;
}
.top-nav-box-main ul li{
    width: calc(100% / 3);
    padding: 20px 0;
}
.top-nav-box-main ul li a{
    display: block;
    text-align: center;
    border-right: 1px solid #DFE0ED;
    font-size: 20px;
    font-weight: 700;
    text-decoration: none;
}
.top-nav-box-main ul li a img{
    margin-bottom: 10px;
}
.top-nav-box-main ul li:nth-child(3n) a{
    border-right: none;
}
.top-nav .top-nav-box:nth-child(1) .top-nav-box-main ul li a{
    color: #1A6634;
}
.top-nav .top-nav-box:nth-child(2) .top-nav-box-main ul li a{
    color: #0067A5;
}

@media screen and (max-width: 768px) {
    .top-nav{
        background-color: #FBFFEF;
        padding: 7.5vw 0;
    }

    .top-nav .inner{
        display: block;
    }
    .top-nav-box{
        width: 100%;
    }
    .top-nav-box-ttl{
        font-size: 18px;
    }
    .top-nav-box-ttl a{
        padding: 20px 0;
    }
    .top-nav-box-ttl i{
        margin-right: 5px;
    }
    .top-nav .top-nav-box:nth-child(1){
        margin-bottom: 20px;
    }
    
    .top-nav .top-nav-box:nth-child(2) .top-nav-box-main{
        padding: 7px 20px;
    }
    .top-nav-box-main{
        padding: 0 20px;
    }
    .top-nav-box-main ul{
        display: block;
    }
    .top-nav-box-main ul:nth-child(2n-1){
        border-bottom: none;
    }
    .top-nav-box-main ul li{
        border-bottom: 1px solid #DFE0ED;
        width: 100%;
    }
    .top-nav-box-main ul:last-child li:last-child{
        border-bottom: none;
    }
    .top-nav-box-main ul li a{
        display: flex;
        text-align: left;
        justify-content: flex-start;
        align-items: center;
        border-right: none;
        font-size: 18px;
    }
    .top-nav-box-main ul li a img{
        width:80px;
        margin-bottom: 0;
        margin-right: 20px;
    }
}

/* campaign
----------------------------------------------------------------------------- */
.top-campaign{
    padding: 50px 0;
}

.top-campaign-slider{
    margin-bottom: 30px;
}
.top-campaign-slider ul{
    display: flex;
    justify-content: center; /* 2026-09-17 カード2枚でも中央寄せ（3枚時は幅+gapで従来と同じ配置） */
    gap: 50px;
    align-items: flex-start;
}
.top-campaign-slider ul li{
    width: 100%;
    max-width: calc( (100% - 100px) / 3 );
}
.top-campaign-slider ul li a{
    display: block;
    margin-bottom: 20px;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
}
.top-campaign-slider ul li a img{
    width: 100%;
    height: auto;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all  0.5s ease;
}
.top-campaign-slider ul li a:hover img{
    transform: scale(1.1,1.1);
}
.top-campaign-slider ul li a span{
    position: absolute;
    top: 20px;
    left:0;
    display: inline-block;
    padding: 5px 10px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    z-index: 88;
}
.tag-lgreen{
    background-color: #9EC73C;
}
.tag-lblue{
    background-color: #00B8E0;
}

.top-campaign-slider-ttl{
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 20px;
}

@media screen and (max-width: 768px) {
    .top-campaign{
        
    }

    .top-campaign-slider{
        margin-bottom: 30px;
    }
    .top-campaign-slider ul{
        display: block;
    }
    .top-campaign-slider ul li{
        width: 100%;
        max-width: none;
        margin-bottom: 30px;
    }
    .top-campaign-slider-ttl{
        font-size: 18px;
    }
}

/* about
----------------------------------------------------------------------------- */
.top-about{
    background-image: url("/komashin/img/top/top_about_bg.png");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    padding: 100px 0;
}

.top-about-main{
    width: 100%;
    max-width: 550px;
}
.top-about-main-ttl{
    font-size: 40px;
    font-weight: 700;
    margin-bottom: 50px;
}
.top-about-main-box{
    background-color: rgba(255,255,255,0.6);
    padding: 50px;
    font-size: 18px;
    line-height: 1.8;
    margin-bottom: 50px;
}

.top-about-link ul{
    display: flex;
    justify-content: space-between;
}
.top-about-link ul li{
    width: calc( (100% - 100px) / 3);
}
.top-about-link ul li a{
    display: block;
    background-color: #fff;
    border-radius: 10px;
    padding: 25px;
    font-size: 18px;
    font-weight: 500;
    color: #282828;
    border-left: 10px solid #9EC73C;
    position: relative;
    text-decoration: none;
}

.top-about-link ul li a::after{
    content: "";
    position: absolute;
    right: 20px;
    top: calc(50% - 9px);
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    border-left: 10px solid #9ec73c;
    border-right: 0;
}

@media screen and (max-width: 768px) {
    .top-about{
        background-image: url("/komashin/img/top/top_about_bg.png");
        background-position: center center;
        background-size: cover;
        background-repeat: no-repeat;
        padding: 80px 0;
    }

    .top-about-main{
        width: 100%;
        max-width: 550px;
    }
    .top-about-main-ttl{
        font-size: 40px;
        font-weight: 700;
        margin-bottom: 50px;
    }
    .top-about-main-box{
        padding: 20px;
        font-size: 16px;
    }

    .top-about-link ul{
        display: block;
    }
    .top-about-link ul li{
        width: 100%;
        margin-bottom: 20px;
    }
    .top-about-link ul li:last-child{
        margin-bottom: 0;
    }
    .top-about-link ul li a{
        padding: 15px 20px;
    }
}

/* news
----------------------------------------------------------------------------- */
.top-news{
    padding: 100px 0;
}

.top-news-list{
    margin-bottom: 30px;
}
.top-news-list .tab-btn{
    border-bottom: 1px solid #1A6634;
    padding-bottom: 30px;
}
.top-news-list .tab-btn ul{
    display: flex;
    justify-content: center;
    align-items: center;
}
.top-news-list .tab-btn ul li{
    margin: 0 10px;
    display: inline-block;
    padding: 10px 20px;
    color: #98A869;
    background-color: #E6EED0;
    text-align: center;
    border-radius: 25px;
    cursor: pointer;
}
.top-news-list .tab-btn ul li.is-current{
    color: #fff;
    background-color: #1A6634;
}
.top-news-list .list-news-tags{
    margin-right: 15px;
}

.top-news-btn{
    text-align: center;
}

@media screen and (max-width: 768px) {
    .top-news{
        padding: 80px 0;
    }

    .top-news-list .tab-btn{
        padding-bottom: 0;
    }
    .top-news-list .tab-btn ul{
        overflow-x: scroll;
        justify-content: flex-start;
        padding-bottom: 15px;
    }
    .top-news-list .tab-btn ul li{
        white-space: nowrap;
        margin: 0 5px;
        padding: 7px 15px;
        font-size:13px;
    }
}

/* app
----------------------------------------------------------------------------- */
.top-app{
    background-color: #D8E8B1;
}

.top-app .inner{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.top-app-img{
    padding-top: 74px;
    width:calc(50% - 25px);
}

.top-app-txt{
    width:calc(50% - 25px);
    padding: 50px 0;
}
.top-app-txt-intro{
    font-size: 18px;
    margin-bottom: 30px;
    line-height: 2.0em;
}
.top-app-txt-func{
    margin-bottom: 30px;
    width: 100%;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    width:100%;
}
.top-app-txt-func dt{
    background-color: #15A648;
    color: #fff;
    text-align: center;
    padding: 0 15px;
    font-size: 20px;
    font-weight: 700;
    border-radius: 10px 0 0 10px;
    width:120px;
    padding-top: 70px;
}
.top-app-txt-func dd{
    background-color: #fff;
    border-radius: 0 10px 10px 0;
    width: calc(100% - 120px);
    padding: 15px 30px;
    font-size: 17px;
}

.top-app-txt-dl{
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background-color: #fff;
    border-radius: 10px;
    margin-bottom: 30px;
}
.top-app-txt-dl-box{
    text-align: center;
    padding: 0 50px 10px;
}
.top-app-txt-dl .top-app-txt-dl-box:nth-child(1){
    border-right: 1px solid #DFE0ED;
}
.top-app-txt-dl-box a{
    display: inline-block;
}
.top-app-txt-dl-box img{
    max-width: 140px;
    height: auto;
}

.top-app-txt-about{
    text-align: center;
}

@media screen and (max-width: 768px) {
    .top-app{
        background-color: #D8E8B1;
    }

    .top-app .inner{
        display: block;
        padding: 0;
    }

    .top-app-img{
        padding: 50px 20px 0;
        width:100%;
        border-bottom: 2px solid #fff;
    }

    .top-app-txt{
        width:100%;
        padding: 30px 20px 50px;
    }
    .top-app-txt-intro{
        font-size: 15px;
        margin-bottom: 15px;
        line-height: 1.8em;
    }
    .top-app-txt-func{
        margin-bottom: 30px;
        width: 100%;
        display: block;
    }
    .top-app-txt-func dt{
        width:100%;
        padding: 15px 0;
        width:100%;
        padding-top: 15px;
        border-radius: 15px 15px 0 0;
    }
    .top-app-txt-func dd{
        border-radius: 0 0 10px 10px;
        width: 100%;
        padding: 20px;
        font-size: 15px;
    }

    .top-app-txt-dl{
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px;
        background-color: #fff;
        border-radius: 10px;
        margin-bottom: 30px;
    }
    .top-app-txt-dl-box{
        text-align: center;
        padding: 0 10px 10px;
    }
    .top-app-txt-dl-box img{
        width:100%;
        max-width: 140px;
        height: auto;
    }
}

/* links
----------------------------------------------------------------------------- */
.top-links{
    padding: 80px 0;
    background-color: #F5F9EC;
}

/* 2026-09-17 関連リンク：2段。各段が自動でゆっくり横に流れる（index.phpのスクリプトで複製・速度設定） */
.top-links-marquee{
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.top-links-row{
    overflow: hidden;
    /* 2026-09-17 左右の端をふんわり透明に（端でスパッと切れて見えないように） */
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
}
.top-links-track{
    display: flex;
    width: max-content;
}
.top-links-track.is-running{
    animation: top-links-flow 60s linear infinite;
}
.top-links-row:hover .top-links-track{
    animation-play-state: paused;
}
.top-links-track li{
    flex: 0 0 260px;
    margin-right: 20px;
}
.top-links-track li a{
    display: block;
}
.top-links-track li img{
    display: block;
    width: 100%;
    height: auto;
}
@keyframes top-links-flow{
    from{ transform: translateX(0); }
    to{ transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
    .top-links-row{
        overflow-x: auto;
    }
}
.top-links-slider ul li{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
}
.top-links-slider ul li a{
    display: block;
    width: calc( (100% - 60px) / 4 );
    margin-bottom: 20px;
}
.top-links-slider ul li a img{
    
}

@media screen and (max-width: 768px) {
    .top-links{
        padding: 50px 0;
        background-color: #F5F9EC;
    }

    .top-links-track li{
        flex: 0 0 180px;
    }
}