@charset "utf-8";
.front .topContents{
    padding: 250px 0 0;
    margin-top: 0;
    background:linear-gradient(0deg, transparent , rgba(102, 102, 102,0.7) 100%);
    margin-bottom: 50px;
}
@media only screen and (max-width:999px) {
    .front .topContents {
        padding: 90px 0 0;
        min-width: 100px;
        margin-bottom: 25px;
        width: 100%;
    }
}
.mainimageWrap{
    position:relative;
    margin-bottom:15px;
}
.mainimageBox{
    position:absolute;
    left:15px;
    bottom:40px;
    display:flex;
    flex-direction: column;
    align-items: flex-end;    
    letter-spacing: 0.1em;
}
.mainimage img { width: 100%; }

.mainimageTxt{
    background: rgb(255,255,255,0.7);
    padding: 15px 15px 10px 15px;
    color: #fff;
    text-shadow: 0px 0px 3px rgba(0,0,0,1), 0px 0px 5px rgba(0,0,0,1);
    font-size: 3.0rem;
    line-height:1.25;
    font-weight:bold;
}
.mainimageTxt > span.ls-05{
    letter-spacing: -0.05em;
    display:block;
}
.mainimageTxt > span.mainimageTxtRed{
    color:#ff0000;
    text-shadow: none;
    font-size:3.3rem;
}
.mainimageTxt > span.mainimageTxtRed > span{
    font-size:3.1rem;
}
.mainimageBadge{
    padding-right:65px;
    margin:15px 0;
}
.mainimageBadge > img{
    width:220px;
    display:block;
}
.slick-slide img { /* 画像下の隙間削除 */
	vertical-align: bottom;
	display: inline!important;
}

@media (width < 999px) {
    .mainimage{
        .slick-prev{
            left: -15px;
            z-index: 2;
        }
        .slick-next{
            right: -15px;
            z-index: 2;
        }
    }
}

/* ------------------------
NEWS 
--------------------------*/
.indexNewsTitleContainer{
    .ctaBtn{
        margin: 0;
        max-width: 200px;
        a{
            padding: 0.5em 1em;
            background: var(--bgColor-gray);
            font-size: 1.8rem;
        }
    }
}
.indexNewsTitle{
    span{
        font-size: 3.6rem;
        font-weight: bold;
        font-family: var(--main-font);
        color: var(--color-primary);
        line-height: 1;
        margin-bottom: 15px;
        display: block;
    }
    h2{
        font-size:1.8rem;
        font-weight:bold;
        display:flex;
        align-items: center;
        font-family: var(--sub-font);
        line-height: 1;
        margin-bottom: 25px;
    }
}

/*indexNews*/
.indexNews{
    padding: 75px 0;
}

.indexNewsWrap{
    /* background-color:#fafafa; */
    padding: 20px 20px;
    width: calc(100% - 355px - 25px);
}
.indexNews .newsList1 {
	margin-bottom:0px;

    li{
        margin-bottom: 25px;
        border-bottom: 1px solid #999;
    }
    li:last-child{
        margin-bottom: 0;
    }
}

@media only screen and (max-width:999px) {
    .indexNews{
        padding: 50px 0;
    }
    .indexNewsTitleContainer{
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        margin-bottom: 25px;
        .indexNewsTitle{
            h2{
                margin-bottom: 0;
                font-size: 1.6rem;
            }
        }
        .ctaBtn{
            max-width: 120px;
            a{
                font-size: 1.4rem;
                justify-content: space-between;
                padding: 0.5em 1.25em;
                &::after{
                    font-size: 1.2rem;
                    right: 15px;
                }
            }
        }
    }
    .indexNewsWrap{
        padding: 0;
    }
    .indexNews .newsList1Title {
        font-size: 1.5rem;
        overflow: hidden;
        display: -webkit-box;
        text-overflow: ellipsis;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
}

/* ------------------------

--------------------------*/
/*indexDaikou*/
.indexDaikou .indexBgblue2{
    padding:50px 0;    
}

@media (width < 999px) {
    .indexDaikou .indexBgblue2{
        padding:40px 0;    
    }    
}

/*indexRead*/
.indexRead h2{
    font-family: var(--main-font);
    color: var(--color-text);
    text-align: center;
    font-weight: bold;
    line-height: 1.6;
    font-size: 2.8rem;
    margin-bottom: 50px;
}
#main .indexRead p{
    font-size: 2.4rem;
    font-weight: bold;
    text-align: center;
    font-family: var(--main-font);
    padding: 15px 0;
    background: #e5e5e5;
    color: var(--color-text);
    position: relative;
    margin-bottom: 0;
    &::after{
        content: '';
        position: absolute;
        left: 50%;
        bottom: -20px;
        transform: translate(-50%);
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 20px 30px 0 30px;
        border-color: #e5e5e5 transparent transparent transparent;
    }

}
@media only screen and (max-width:999px) {
    .indexRead h2{
        font-size: 2.4rem;
        line-height:1.35;
        margin-bottom:15px;
    }
    #main .indexRead p{
        font-size: 1.8rem;
        bottom: -15px;
        border-width: 15px 20px 0 20px;
    }
}
.indexDaikou{
    .daikoucheck{
        /* color:#fff; */
        color: #292424;
        border: 2px solid var(--bgColor-gray);
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 15px;
        span{
            display: block;
            font-size: 1.5rem;
            color: #202020;
            letter-spacing: 0.075em;
            line-height: 1.5;
            flex:1;
        }
    }
    .indexDaikouTxt{
        font-family: var(--sub-font);
        font-weight: 500;
        letter-spacing: 0.05em;
        color: var(--color-text);
        font-size: 1.7rem;
        span{
            line-height: 2;
            display: block;
            margin-bottom: 15px;
        }
    }
    .indexDaikouContainer{
        padding: 60px 0;
    }
}
.indexDaikou .buttonLink01.ib {
    margin: 25px 0;
}
.indexDaikou .buttonLink01.ib a{
    font-size:3.4rem;
    width:760px;
    text-align:center;
    padding:0.7em 50px 0.5em 30px;
}
@media only screen and (max-width:999px) {
    .indexBgLightblue.indexDaikou{
        padding:5.21vw 0;    
        
        span{
            font-size: 1.5rem;
        }
    }
    #main .indexDaikou p{margin-bottom:5.21vw;}
    .indexDaikou .buttonLink01.ib a{
        font-size:4.43vw;
        width:calc(100% - 7.82vw);
        text-align:center;
        padding:0.7em 50px 0.5em 30px;
        margin:0;
    }
    .indexDaikou{
        .indexDaikouContainer{
            padding: 40px 0;
        }
    }
    .indexDaikou{
        .daikoucheck{
            gap: 10px;
        }
    }
}

/* ------------------------
section CTAbtn
--------------------------*/
   
.ctaBtnContainer{
    padding: 50px 15px;
    background: var(--bgColor-gray);
}
.ctaBtn{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    a{
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 2.2rem;
        letter-spacing: 0.02em;
        font-family: var(--main-font);
        color: var(--color-white);
        text-decoration: none;
        border: 1px solid var(--color-white);
        border-radius: 100px;
        padding: 1em 2em;
        font-weight: 500;
        background: transparent;
        width: 100%;
        max-width: 500px;
        &:hover{
            width: 100%;
            background: var(--btn-hover-primary);
            color: var(--color-white);
        }
        &::after{
            font-family: 'Font Awesome 5 Free';
            position: absolute;
            content: '\f054';
            font-weight: bold;
            right: 25px;
            font-size: 1.4rem;
            line-height: 1;
          }
    }
}
.ctaBtn.tel{
    a{
        &::before{
            display: inline-block;
            color: #006899;
            font-family: var(--fa);
            font-weight: 800;
            font-size: 0.75em;
            position: absolute;
            top: 0.2em;
            left: 0;
        }
    }
}
.ctaBtn.primary{
    a{
        background: var(--color-primary);
        color: var(--color-white);
        border: 1px solid var(--color-primary);
        &:hover{
            color: var(--btn-hover-primary);
            background-color: var(--color-white);
        }
    }
}

@media (width < 999px) {

    .ctaBtn{
        a{
            font-size: 1.8rem;
        }
    }
}


.indexCase{
    padding-top: 70px;
    padding-bottom: 60px;
}

.indexCaseTitle{
    text-align: center;
    margin-bottom: 50px;
    h2{
        font-size: 3.6rem;
        font-family: var(--main-font);
        letter-spacing: 0.025em;
        color: var(--color-primary);
        line-height: 1;
        margin-bottom: 25px;
        font-weight: 500;
    }
    span{
        display: block;
        font-size: 1.8rem;
        color: #666;
        line-height: 1;
        font-weight: 500;
        letter-spacing: 0.05em;
    }
}

.indexCaseImage {
    width: 100%;

}

@media only screen and (max-width:999px) {
    .indexCase{
        padding: 50px 0;
    }
    .indexCaseTitle{
        font-size: 1.6rem;
    }
}

/* ------------------------
indexSuggest
--------------------------*/
.indexSuggest{
    padding: 60px 0;
    background: #eee;
}
.suggestTitle{
    font-family: var(--main-font);
    color: var(--color-text);
    text-align: center;
    font-weight: bold;
    line-height: 1.6;
    font-size: 2.8rem;
    margin-bottom: 50px;
}
.suggestTxt{
    p{
        font-family: var(--sub-font);
        font-weight: 500;
        letter-spacing: 0.05em;
        color: var(--color-text);
        font-size: 1.7rem;
        span{
            line-height: 2;
            display: block;
            margin-bottom: 15px;
        }
    }
}

@media (width < 999px) {
    .indexSuggest{
        padding: 50px 0;
    }
    .suggestTitle{
        font-size: 2rem;
        text-align: left;
        margin-bottom: 25px;
    }
}



.container2Col{
    display: flex;

    gap: 25px;
}
@media (width < 999px) {
    .container2Col{
        flex-direction: column;
    }
}