﻿
/************************** MAIN VISUAL ****************************/
.header__main-wrap {
    background: center center/cover url("../img/main_img_pc.png") no-repeat;
    margin: 7rem auto 0;
    padding: 5rem 0
}


.header__main-wrap .header__main {
    display: flex;
    justify-content: space-between;
    margin: auto;
    max-width: 120rem
}

@media screen and (max-width: 1200px) {
    .header__main-wrap .header__main {
        padding: 0 2em
    }
}

.header__main-wrap .header__main .l-box__wrap h1 span {
    display: block
}

.header__main-wrap .header__main .l-box__wrap h1 span:nth-child(1) {
    font-size: 3.1rem;
    font-weight: 900;
    letter-spacing: .1em
}

.header__main-wrap .header__main .l-box__wrap h1 span:nth-child(2) {
    color: var(--color-base);
    font-size: 4.5rem;
    font-weight: 900;
    line-height: 1.3;
    margin-bottom: .25em
}

.header__main-wrap .header__main .l-box__wrap p {
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 1em
}

.header__main-wrap .header__main .l-box__wrap .header_psub {
    color: #1d43a3;
    font-size: 2.2rem;
}

.header__main-wrap .header__main .l-box__wrap img {
    margin-bottom: 2.8rem;
    width: 58rem
}

.header__main-wrap .header__main .l-box__wrap .btn__wrap p {
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0;
    text-align: center;
    color: #fff;
}

.header__main-wrap .header__main .l-box__wrap .btn__wrap__btn {
    border-radius: 1rem;
    height: 6.8rem;
    width: 33rem;
    font-size: 2rem;
    filter: drop-shadow(0 0 0.8rem rgba(0, 0, 0, 0.46));
    margin: 0;
    padding-left: 4rem;
}

@media screen and (max-width: 748px) {
    .header__main-wrap {
        margin: 8.5rem auto 0;
        padding: 1rem 0 0
    }

    .header__main-wrap .header__main {
        display: block;
        padding: 0;
        width: 100%
    }

    .header__main-wrap .header__main .l-box__wrap {
        background: bottom center/cover url(../img/main_img_sp.png) no-repeat;
        padding: 0 5% 5%
    }

    .header__main-wrap .header__main .l-box__wrap h1 span:nth-child(1) {
        font-size: 2.2rem
    }

    .header__main-wrap .header__main .l-box__wrap h1 span:nth-child(2) {
        font-size: 2.7rem;
    }

    .header__main-wrap .header__main .l-box__wrap p {
        font-size: 1.5rem;
        margin-bottom: .5em
    }

    .header__main-wrap .header__main .l-box__wrap .header_psub {
        font-size: 2rem;
    }

    .header__main-wrap .header__main .l-box__wrap img {
        display: block;
        margin: 0 auto 56%;
        width: 100%
    }

    .header__main-wrap .header__main .l-box__wrap .btn__wrap p {
        font-size: 1.5rem
    }

    .header__main-wrap .header__main .l-box__wrap .btn__wrap__btn {
        height: 6rem;
        width: 28rem;
        font-size: 1.8rem;
        margin: 0 auto;
    }

    .header__main-wrap .header__main .l-box__wrap .btn__wrap__btn::after {
        width: 1.8rem;
        height: 1.8rem;
        top: 34%
    }

    .header__main-wrap .header__main .l-box__wrap .btn__wrap__btn::before {
        width: 2.2rem;
        top: 32%;
        left: 10%
    }
}

.header__main-wrap .header__main .r-box__wrap {
    width: 45rem
}

.header__main-wrap .header__main .r-box__wrap p {
    position: relative;
    background: var(--color-main);
    border-radius: 1rem;
    color: #fff;
    font-size: 2.4rem;
    font-weight: 700;
    margin-bottom: .75em;
    text-align: center
}

.header__main-wrap .header__main .r-box__wrap p::before {
    position: absolute;
    content: "";
    top: 100%;
    left: 50%;
    margin-left: -1rem;
    border: 1rem solid rgba(0, 0, 0, 0);
    border-top: 1rem solid var(--color-main)
}

.header__main-wrap .header__main .r-box__wrap ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

.header__main-wrap .header__main .r-box__wrap ul li {
    position: relative;
    border: .3rem solid var(--color-main);
    border-radius: 1rem;
    box-sizing: border-box;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 1rem;
    width: 49%
}

.header__main-wrap .header__main .r-box__wrap ul li:hover {
    border: .3rem solid var(--color-accent)
}

.header__main-wrap .header__main .r-box__wrap ul li::before {
    position: absolute;
    content: "";
    background: 100%/100% url(../img/0005.webp) no-repeat;
    width: 2rem;
    height: 2rem;
    top: 36%;
    right: 7%
}

.header__main-wrap .header__main .r-box__wrap ul li a {
    position: relative;
    display: block;
    box-sizing: border-box;
    color: #242422;
    padding: .5em;
    width: 100%;
    height: 100%;
    z-index: 1
}

.header__main-wrap .header__main .r-box__wrap ul li a:hover {
    color: var(--color-accent)
}

.header__main-wrap .header__main .r-box__wrap ul li:nth-child(2) a {
    padding-top: 1.05em
}

.header__main-wrap .header__main .r-box__wrap ul li span {
    font-size: 1.5rem
}

@media screen and (max-width: 748px) {
    .header__main-wrap .header__main .r-box__wrap {
        background: #f6f9ef;
        box-sizing: border-box;
        padding: 5%;
        width: 100%
    }

    .header__main-wrap .header__main .r-box__wrap p {
        font-size: 1.6rem
    }

    .header__main-wrap .header__main .r-box__wrap ul li {
        background: #fff;
        border: .2rem solid var(--color-main);
        font-size: 1.2rem;
        width: 49%;
        margin-bottom: .5rem
    }

    .header__main-wrap .header__main .r-box__wrap ul li::before {
        width: 1.8rem;
        height: 1.8rem
    }

    .header__main-wrap .header__main .r-box__wrap ul li span {
        font-size: 1rem
    }
}



/************************** S01 ****************************/
.s01__wrap {
    padding: 4rem 5%;
    text-align: center
}

.s01__wrap h2 {
    font-size: 2.6rem;
    letter-spacing: .2em;
    margin-bottom: .5em
}

.s01__wrap p {
    font-size: 1.6rem;
    margin-bottom: 1.5em
}

.s01__wrap ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: auto;
    max-width: 110rem
}

.s01__wrap ul li {
    margin: 1rem 3rem
}

.s01__wrap ul li:nth-child(1) {
    width: 14.5rem
}

.s01__wrap ul li:nth-child(2) {
    width: 10.8rem
}

.s01__wrap ul li:nth-child(3) {
    width: 22.8rem
}

.s01__wrap ul li:nth-child(4) {
    width: 10.7rem
}

.s01__wrap ul li:nth-child(5) {
    width: 15rem
}

.s01__wrap ul li:nth-child(6) {
    width: 12.7rem
}

.s01__wrap ul li:nth-child(7) {
    width: 10.5rem
}

.s01__wrap ul li:nth-child(8) {
    width: 11rem
}

.s01__wrap ul li:nth-child(9) {
    width: 13.3rem
}

.s01__wrap ul li:nth-child(10) {
    width: 14.1rem
}

@media screen and (max-width: 748px) {
    .s01__wrap {
        padding: 2rem 0
    }

    .s01__wrap h2 {
        font-size: 2rem
    }

    .s01__wrap p {
        font-size: 1.4rem
    }

    .s01__wrap ul {
        width: 100%
    }

    .s01__wrap ul li {
        margin: 1rem
    }

    .s01__wrap ul li:nth-child(1) {
        width: 10.15rem
    }

    .s01__wrap ul li:nth-child(2) {
        width: 7.56rem
    }

    .s01__wrap ul li:nth-child(3) {
        width: 15.96rem
    }

    .s01__wrap ul li:nth-child(4) {
        width: 7.49rem
    }

    .s01__wrap ul li:nth-child(5) {
        width: 10.5rem
    }

    .s01__wrap ul li:nth-child(6) {
        width: 8.89rem
    }

    .s01__wrap ul li:nth-child(7) {
        width: 7.35rem
    }

    .s01__wrap ul li:nth-child(8) {
        width: 7.7rem
    }

    .s01__wrap ul li:nth-child(9) {
        width: 9.31rem
    }

    .s01__wrap ul li:nth-child(10) {
        width: 9.87rem
    }
}



/************************** S02 ****************************/
.s02__wrap {
    padding: 8rem 5%;
    background: var(--color-main)
}

.s02__wrap>section,
.s02__wrap>div {
    margin: auto;
    max-width: 100rem
}

@media screen and (max-width: 748px) {
    .s02__wrap {
        padding: 4rem 4%
    }

    .s02__wrap>section,
    .s02__wrap>div {
        width: 100%
    }
}

.s02__wrap .s02 h2 {
    color: #fff;
    font-size: 3.6rem;
    letter-spacing: .1em;
    margin-bottom: 1em;
}

.s02__wrap .s02 .box__wrap {
    display: flex;
    justify-content: space-between;
}

.s02__wrap .s02 .box__wrap div {
    width: 24%;
}

.s02__wrap .s02 .box__wrap div h3 {
    position: relative;
    color: #fff;
    font-size: 1.8rem;
    margin-bottom: .75em;
}

.s02__wrap .s02 .box__wrap div h3::before {
    content: "";
    position: absolute;
    background: 100%/100% url("../img/0201.webp") no-repeat;
    width: 3.2rem;
    height: 3.2rem;
    top: -6%;
    left: -20%;
}

.s02__wrap .s02 .box__wrap div:nth-child(2) h3::before {
    background: 100%/100% url("../img/0202.webp") no-repeat
}

.s02__wrap .s02 .box__wrap div:nth-child(3) h3::before {
    background: 100%/100% url("../img/0203.webp") no-repeat
}

.s02__wrap .s02 .box__wrap div:nth-child(4) h3::before {
    background: 100%/100% url("../img/0204.webp") no-repeat
}

.s02__wrap .s02 .box__wrap div ul li {
    position: relative;
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: .6rem;
    box-sizing: border-box;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 1em;
    height: 6.8rem
}

.s02__wrap .s02 .box__wrap div ul li::before {
    content: "";
    position: absolute;
    background: 100%/100% url("../img/0005.webp") no-repeat;
    width: 2rem;
    height: 2rem;
    top: 36%;
    right: 5%
}

.s02__wrap .s02 .box__wrap div ul li a {
    display: block;
    color: #242422;
    padding: 1em 2.5em 1em 1em;
    width: 100%;
    z-index: 1
}

.s02__wrap .s02 .box__wrap div ul li a:hover {
    color: var(--color-accent)
}

.s02__wrap .s02 .box__wrap.m-adjustment {
    display: block
}

.s02__wrap .s02 .box__wrap.m-adjustment>div {
    width: 100%
}

.s02__wrap .s02 .box__wrap.m-adjustment>div>h3::before {
    display: none
}

.s02__wrap .s02 .box__wrap.m-adjustment>div>ul {
    display: flex;
    flex-wrap: wrap;
    gap: 10px
}

.s02__wrap .s02 .box__wrap.m-adjustment>div>ul li {
    width: 18.8%
}

.s02__wrap .s02 .c-details {
    position: relative;
    display: table;
    color: #fff;
    margin-left: auto;
    padding-left: 2.5rem;
    font-size: 1.4rem
}

.s02__wrap .s02 .c-details::before {
    content: "";
    position: absolute;
    background: 100%/100% url("../img/0004.webp") no-repeat;
    width: 2rem;
    height: 2rem;
    top: 12%;
    left: 0
}

.s02__wrap .s02 .c-details:hover {
    color: var(--color-accent);
}

@media screen and (max-width: 748px) {
    .s02__wrap .s02 .box__wrap.m-adjustment>div>ul {
        display: block
    }

    .s02__wrap .s02 .box__wrap.m-adjustment>div>ul li {
        width: 100%
    }

    .s02__wrap .s02 h2 {
        font-size: 2.6rem
    }

    .s02__wrap .s02 .box__wrap {
        flex-wrap: wrap
    }

    .s02__wrap .s02 .box__wrap div {
        width: 49%;
        margin-bottom: 1rem
    }

    .s02__wrap .s02 .box__wrap div h3 {
        font-size: 1.6rem;
        margin-left: 3rem;
        margin-bottom: .5em
    }

    .s02__wrap .s02 .box__wrap div h3::before {
        width: 2.2rem;
        height: 2.2rem;
        top: 10%;
        left: -20%;
    }

    .s02__wrap .s02 .box__wrap div ul li {
        font-size: 1.3rem;
        height: 6rem;
    }

    .s02__wrap .s02 .box__wrap div ul li::before {
        width: 1.6rem;
        height: 1.6rem;
    }

    .s02__wrap .s02 .c-details {
        font-size: 1.3rem;
        padding-left: 2rem;
    }

    .s02__wrap .s02 .c-details::before {
        width: 1.6rem;
        height: 1.6rem;
        top: 12%;
    }
}


/************************** S03 ****************************/
.s03__wrap {
    padding: 8rem 5%;
}

.s03__wrap>section,
.s03__wrap>div {
    margin: auto;
    max-width: 100rem
}

@media screen and (max-width: 748px) {
    .s03__wrap {
        padding: 4rem 4%
    }

    .s03__wrap>section,
    .s03__wrap>div {
        width: 100%
    }
}

.s03__wrap .s03 h2 {
    font-size: 3.6rem;
    letter-spacing: .1em;
    margin-bottom: 1em
}

.s03__wrap .s03 .box__wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 5%
}

.s03__wrap .s03 .box__wrap div {
    width: 30%;
    margin-bottom: 4rem
}

.s03__wrap .s03 .box__wrap div img {
    display: block;
    width: 100%
}

.s03__wrap .s03 .box__wrap div p:nth-child(2) {
    font-size: 1.5rem;
    font-weight: 700;
    margin: .5em 0
}

.s03__wrap .s03 .box__wrap div p:nth-child(3) {
    color: var(--color-base);
    font-size: 1.3rem;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: .5em
}

.s03__wrap .s03 .box__wrap div ul {
    display: flex;
    flex-wrap: wrap
}

.s03__wrap .s03 .box__wrap div ul li {
    border: .1rem solid #ccc;
    border-radius: .2rem;
    color: #5a5a5a;
    font-size: 1.2rem;
    line-height: 1.3;
    margin-right: .5rem;
    margin-bottom: .5em;
    padding: .25em .5em
}

.s03__wrap .s03 .c-details {
    color: #242422
}

.s03__wrap .s03 .c-details::before {
    background: 100%/100% url("../img/0005.webp") no-repeat
}

.s03__wrap .s03 .c-details:hover {
    color: var(--color-accent)
}

@media screen and (max-width: 748px) {
    .s03__wrap .s03 h2 {
        font-size: 2.6rem
    }

    .s03__wrap .s03 .box__wrap div {
        width: 100%
    }

    .s03__wrap .s03 .box__wrap div ul li {
        font-size: 1rem
    }
}


/************************** S04 ****************************/
.s04__wrap {
    padding: 8rem 5%;
    background: var(--color-sub);
}

.s04__wrap>section,
.s04__wrap>div {
    margin: auto;
    max-width: 100rem
}

.s04__wrap .s04 h2 {
    font-size: 3.6rem;
    letter-spacing: .1em;
    margin-bottom: 1em
}

.s04__wrap .s04 .box__wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between
}

.s04__wrap .s04 .box__wrap>div {
    background: #fff;
    border-radius: 1rem;
    box-sizing: border-box;
    padding: 2.5rem 1.5rem 1.5rem;
    margin-bottom: 2rem;
    width: 32%
}

.s04__wrap .s04 .box__wrap>div h3 {
    position: relative;
    color: var(--color-base);
    font-size: 1.85rem;
    text-align: center;
    margin-bottom: 1.5em
}

.s04__wrap .s04 .box__wrap>div h3::before {
    content: "";
    position: absolute;
    width: 7rem;
    height: .2rem;
    background: var(--color-accent);
    bottom: -1rem;
    left: 50%;
    transform: translateX(-50%);
}

.s04__wrap .s04 .box__wrap>div p {
    line-height: 1.6;
    text-align: left;
}

.s04_cnt_s {
    text-align: center;
    /* gap: 0.3rem; */
    width: 100%;
    padding: 0;
    margin: 0 0 6%;
    background: none;
}

.s04_cnt_s p {
    min-width: 0;
}

.s04__wrap .s04 .box__wrap>div .s04_cnt_s_icon {
    max-width: 19rem;
    margin: 1.5% 0 0;
}

.s04_cnt_detail {
    background: rgba(167, 180, 214, 0.4);
    padding: 3%;
    border-radius: .6rem;
    box-sizing: border-box;
}

.s04__wrap .s04_accent {
    align-items: center;
    display: flex;
    justify-content: center;
    background: var(--color-main);
    border-radius: .6rem;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
    height: 6rem;
    line-height: 1.3;
    text-align: center;
    margin: 1.5rem 0 1rem;
}

@media screen and (max-width: 748px) {
    .s04__wrap {
        padding: 4rem 4%
    }

    .s04__wrap>section,
    .s04__wrap>div {
        width: 100%
    }

    .s04__wrap .s04 h2 {
        font-size: 2.6rem
    }

    .s04__wrap .s04 .box__wrap div {
        width: 100%
    }

    .s04__wrap .s04 .box__wrap div img {
        width: 16rem
    }

    .s04__wrap .s04 .box__wrap div p:nth-child(4) {
        font-size: 1.6rem
    }

    .s04__wrap .s04 .box__wrap div:nth-child(4) img {
        margin: 1rem auto
    }
}
/************************** S06 ****************************/
.s06__wrap {
    padding: 8rem 5%;
    background: #fafafa;
}

.s06__wrap > section,
.s06__wrap > div {
    margin: auto;
    max-width: 100rem;
}

.s06__wrap .s06 h2 {
    font-size: 3.6rem;
    letter-spacing: .1em;
    margin-bottom: 1em;
}

.s06__wrap .s06 .box__wrap {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4rem 5%;
    margin-bottom: 4rem;
}

/*
記事カード
*/
.s06__wrap .s06 .box__wrap .box {
    min-width: 0;
}

/*
カード全体のリンク
*/
.s06__wrap .s06 .front-item__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: var(--color-base);
    text-decoration: none;
    transition:
        opacity .3s ease,
        transform .3s ease;
}

.s06__wrap .s06 .front-item__link:hover {
    opacity: .8;
    transform: translateY(-.3rem);
}

/*
アイキャッチ画像の外枠
*/
.s06__wrap .s06 .knowledge-card__image {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #e8e8e8;
}

/*
アイキャッチ画像
*/
.s06__wrap .s06 .knowledge-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.s06__wrap .s06 .front-item__link:hover .knowledge-card__image img {
    transform: scale(1.03);
}

/*
記事タイトル
*/
.s06__wrap .s06 .knowledge-card__title {
    color: var(--color-base);
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    margin: .75em 0;
}

/*
記事の抜粋
*/
.s06__wrap .s06 .knowledge-card__excerpt {
    display: -webkit-box;
    overflow: hidden;
    color: var(--color-base);
    font-size: 1.3rem;
    line-height: 1.6;
    margin: 0 0 1.2rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

/*
日付とカテゴリー
*/
.s06__wrap .s06 .knowledge-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem 1rem;
    margin-top: auto;
}

/*
投稿日
*/
.s06__wrap .s06 .knowledge-card__meta .date {
    position: relative;
    flex-shrink: 0;
    font-size: 1rem;
    margin: 0;
    padding-left: 1.25rem;
}

.s06__wrap .s06 .knowledge-card__meta .date::before {
    content: "";
    position: absolute;
    background: 100% / 100% url("../img/0602.webp") no-repeat;
    width: 1rem;
    height: 1rem;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

/*
カテゴリー一覧
*/
.s06__wrap .s06 .knowledge-card__categories {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 0;
    padding: 0;
}

/*
カテゴリー
*/
.s06__wrap .s06 .knowledge-card__categories li {
    border: .1rem solid #ccc;
    border-radius: .2rem;
    color: #5a5a5a;
    font-size: 1.2rem;
    line-height: 1.3;
    margin: 0;
    padding: .25em .5em;
}

/*
記事がない場合のメッセージ
*/
.s06__wrap .s06 .knowledge-card__empty {
    margin: 3rem 0;
    text-align: center;
}

/*
一覧ページへのリンク
*/
.s06__wrap .s06 .c-details {
    color: #242422;
}

.s06__wrap .s06 .c-details::before {
    background: 100% / 100% url("../img/0005.webp") no-repeat;
}

.s06__wrap .s06 .c-details:hover {
    color: var(--color-accent);
}

/*
タブレット
*/
@media screen and (max-width: 960px) and (min-width: 749px) {
    .s06__wrap .s06 .box__wrap {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/*
スマートフォン
*/
@media screen and (max-width: 748px) {
    .s06__wrap {
        padding: 4rem 4%;
    }

    .s06__wrap > section,
    .s06__wrap > div {
        width: 100%;
    }

    .s06__wrap .s06 h2 {
        font-size: 2.6rem;
        line-height: 1.3;
    }

    .s06__wrap .s06 .box__wrap {
        grid-template-columns: 1fr;
        gap: 3rem;
        margin-bottom: 2rem;
    }

    .s06__wrap .s06 .knowledge-card__title {
        font-size: 1.6rem;
    }

    .s06__wrap .s06 .knowledge-card__excerpt {
        font-size: 1.3rem;
    }

    .s06__wrap .s06 .knowledge-card__categories li {
        font-size: 1rem;
    }
}

/************************** S07 ****************************/
.s07__wrap {
    padding: 8rem 5%
}


.s07__wrap .s07 dl div {
    display: flex;
    padding: .85em;
    border-top: .025rem solid #5e6c75;
}

.s07__wrap .s07 dl div:last-child {
    border-bottom: .025rem solid #5e6c75;
}

.s07__wrap .s07 dl dt {
    width: 8em;
    flex-shrink: 0;
}

.s07__wrap .s07 dl dd {
    width: 100%;
}

.s07__wrap .s07 dl dd a {
    color: var(--color-base);
    text-decoration: none;
}

.s07__wrap .s07 dl dd a:hover {
    color: var(--color-accent);
}

.s07__wrap>section,
.s07__wrap>div {
    margin: auto;
    max-width: 100rem
}

.s07__wrap .s07 h2 {
    font-size: 3.6rem;
    letter-spacing: .1em;
    margin-bottom: 1em
}

@media screen and (max-width: 748px) {
    .s07__wrap .s07 dl div {
        display: block;
    }

    .s07__wrap .s07 dl dt {
        width: 100%;
        margin-bottom: .5em;
    }

    .s07__wrap {
        padding: 4rem 4%
    }

    .s07__wrap>section,
    .s07__wrap>div {
        width: 100%
    }

    .s07__wrap .s07 h2 {
        font-size: 2.6rem
    }

    .s07__wrap .s07 dl {
        font-size: 1.4rem
    }

    .s07__wrap .s07 dl div {
        display: block
    }

    .s07__wrap .s07 dl div dt {
        display: block;
        margin-bottom: .5em
    }
}