@charset "UTF-8";

.concept {
    display: flex;
    justify-content: flex-end;
    /*flex=横並び＝右端に寄せる*/
    margin-bottom: 120px;
}

.concept .text {
    max-width: 460px;
    display: flex;
    flex-direction: column;
    justify-content: end;
    /*column=縦並び＝下に寄せる*/
    margin-right: auto;
    /*auto=余ってるスペースを全部もらう 結果として 要素が左に寄る*/
}

.concept .text .title {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 30px;
}

.concept .text .detail {
    line-height: 2;
    font-size: 16px;
    margin-bottom: 40px;
    text-align: justify;
    /*文章の左右の端をそろえる（両端揃え*/
}

.concept .img {
    max-width: 400px;
    margin: 0 40px;
}

.concept .img img {
    border-radius: 30px;
}

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

    .concept {
        flex-direction: column-reverse;
        margin-bottom: 80px;
    }

    .concept .text .title {
        text-align: center;
        margin-top: 40px;
    }

    .concept .img {
        margin: 0 auto;
    }

    .concept .btn {
        margin: 0 auto;
    }
}

#menu {
    margin-bottom: 100px;
    padding-bottom: 100px;
    /*スクロールするため、padding自体も設定*/
    background: linear-gradient(#f2ece1 25%, #e9e1d1 25%);
    /*同じ % を並べると 境界線になる。*/
}

#menu .section-title-h {
    margin-bottom: 20px;
}

#menu .menu-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
   
    gap: 35px;
}


#menu .menu-list li {
    overflow: hidden;
}

#menu .menu-list li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 30px;
    display: block;
}

#menu .menu-list li img {
    border-radius: 30px;

}

#menu .menu-list li:first-child {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
}

#menu .menu-list li:nth-child(2) {
    grid-column: 3/4;
    grid-row: 1/3;
}

/* 3〜8番目の li にだけ適用 */
#menu .menu-list li:nth-child(n+3):nth-child(-n+8) .menu-img {
  aspect-ratio: 4 / 3; 
}

@media screen and (max-width: 767px) {
    #menu {
        margin-bottom: 60px;
        padding-bottom: 60px;
    }

    #menu .menu-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    #menu .menu-list li:nth-child(2) {
        grid-column: auto;
        grid-row: 3/5;
    }
}

.blog {
    margin-bottom: 100px;
}

.blog .inner {
    display: flex;
    margin-bottom: 40px;
}

.blog .section-title-v {
    margin-right: 40px;
}

.blog .blog-item {
    display: flex; /* PCでは横並び */
}

.blog .blog-item img {
    border-radius: 30px;
}

.blog .blog-item time {
    font-size: 12px;
}

.blog .blog-item .title {
    font-size: 14px;
    margin-top: 10px;
}

.blog .blog-item .item-left {
    width: 100%;
    max-width: 450px;
    padding-right: 40px;
}

.blog .blog-item .item-left .img {
    margin-bottom: 10px;
}

.blog .blog-item .item-right {
    border-left: solid 1px #333;
    padding-left: 40px;
}

.blog .blog-item .item-right .img {
    margin-right: 20px;
}

.blog .blog-item .item-right .item-top {
    margin-bottom: 40px;
}

.blog .blog-item .item-right .item-top a,
.blog .blog-item .item-right .item-bottom a {
    display: flex; /* PC：画像＋テキスト横 */
}

.blog .blog-item .item-right .item-top .img,
.blog .blog-item .item-right .item-bottom .img {
    width: 100%;
    max-width: 220px;
}

.blog .btn {
    margin: 0 auto;
}

/* =========================
   スマホ
========================= */
@media screen and (max-width: 767px) {

    .blog {
        margin-bottom: 60px;
    }

    .blog .inner {
        flex-direction: column;
    }

    /* ★これが一番重要：blog-item の flex を殺す */
    .blog .blog-item {
        display: block; /* ← PC崩れない・SP縦並び */
    }

    .blog .section-title-v {
        margin-right: 0;
    }

    .blog .blog-item .item-left {
        max-width: 100%;
        padding: 0 0 40px;
    }

    .blog .blog-item .item-right {
        border-left: none;
        padding-left: 0;
    }

    /* SPでは中だけ flex（縦） */
    .blog .blog-item .item-right .item-top a,
    .blog .blog-item .item-right .item-bottom a {
        display: flex;
        flex-direction: column;
    }

    .blog .blog-item .item-right .item-top .img,
    .blog .blog-item .item-right .item-bottom .img {
        max-width: 100%;
        margin: 0 0 10px;
    }
}


