@charset "UTF-8";
/* 変数 */
:root {
    --main-color: #00a8b0;
    --Navy: #2c2b32;
    --white: #fff;
    --gray-100: #fbfbfb;
    --gray-200: #f4f4f4;
    --gray-300: #e1e1e1;
    --gray-500: #818181;
    --green02-400: #00767a;
}

/* pc版 */
html {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 0.69444444444vw;
    /* 固定値（px） / 基準の画面幅（px） * 100 
       10/1440 *100 =  0.69444444444.... 
    これで1rem = 0.69444444444vw = (画面幅が1440pxのとき)10px になる
    〇〇px / 10 = 〇〇rem*/
}

.sp {
    display: none;
}
.pc {
    display: block;
}

/* 1440幅より大きい場合は1remを10px固定に*/
@media (width >=1440px) {
    html {
        font-size: 62.5%;
    }
}

@media (width <=768px) {
    html {
        font-size: 1.30208333333vw;
        /* これで1rem = 1.30208333333vw = (画面幅が768pxのとき)10px になる */
    }
    .sp {
        display: block;
    }
    .pc {
        display: none;
    }
}

/* 375幅より小さい場合も1remを10px固定に*/
@media (width <=420px) {
    html {
        font-size: 62.5%;
    }
}

/***********
*  共通 
 ***********/
body {
    color: var(--Navy);
    background-color: var(--gray-100);
    font-size: 1.6rem;
    line-height: 1.5;
}

.wrapper {
    width: 100%;
    max-width: 1040px;
    margin: 8rem auto 0;
    padding: 0 4rem;
}
@media (width <=768px) {
    .wrapper {
        padding: 0 5.5rem;
        margin: 6rem auto 0;
    }
}
@media (width <=420px) {
    .wrapper {
        padding: 0 1.5rem;
    }
}

.two-column {
    display: grid;
    column-gap: 4.7rem;
    grid-template-columns: 1fr 26.6rem;
    justify-content: space-between;
    &.intitle {
        grid-template-rows: auto auto;
        h2 {
            grid-column: 1 / 3;
            grid-row: 1 / 2;
        }
    }
}
@media (width <=768px) {
    .two-column {
        grid-template-columns: auto;
        column-gap: 0;
    }
}

h2 {
    font-weight: 700;
    font-size: 4rem;
    margin-bottom: 4rem;
}
@media (width <=420px) {
    h2 {
        font-size: 2.8rem;
    }
}

.title {
    display: flex;
    margin-bottom: 4rem;
    align-items: baseline;
    gap: 2rem;
    h2 {
        margin-bottom: 0;
    }
    p {
        font-weight: 700;
    }
}
@media (width <=420px) {
    .title {
        flex-direction: column;
        gap: 0;
    }
}

.imake_logo img {
    height: auto;
    width: 16.5rem;
}
@media (width <=768px) {
    .imake_logo img {
        width: 29.9rem;
    }
}
@media (width <=420px) {
    .imake_logo img {
        width: 18rem;
    }
}

.sns_icon_list {
    display: flex;
    gap: 1.6rem;
    height: 2.4rem;
    a {
        display: block;
    }
    img {
        width: auto;
        height: 100%;
        display: block;
    }
}
@media (width <=768px) {
    .sns_icon_list {
        height: 5rem;
    }
}
@media (width <=420px) {
    .sns_icon_list {
        height: 3rem;
    }
}

/* 編集画面で追加クラスでつける用 */
.bg_wh {
    background-color: var(--white);
}
.default_padding {
    padding: 0 4rem;
    max-width: 1040px;
    margin: auto;
}
.call-out {
    padding: 3rem 2rem 1rem;
    border-radius: 5px;
    border: 1px solid #e1e1e1;
}
@media (width <=768px) {
    .default_padding {
        padding: 0 5.5rem;
    }
}
@media (width <=420px) {
    .default_padding {
        padding: 0 1.5rem;
    }
    .sp_space-40 {
        height: 4rem !important;
    }
    .sp_space-50 {
        height: 5rem !important;
    }
    .sp_space-60 {
        height: 6rem !important;
    }
}

/***********
*  header
 ***********/
header {
    background-color: var(--white);
}
.header {
    max-width: 1040px;
    margin: auto;
    padding: 8rem 4rem 4rem;
    .main_title {
        display: flex;
        align-items: baseline;
        gap: 2rem;
        img {
            width: 36rem;
            height: 7.1rem;
        }
        p {
            font-weight: 700;
            &::before {
                content: "";
                display: inline-block;
                height: 2.8rem;
                width: 0.2rem;
                background-color: var(--Navy);
                margin-right: 2rem;
            }
        }
    }
}

@media (width <=768px) {
    .header {
        padding: 7rem 5.5rem 2rem;
        display: flex;
        justify-content: space-between;
        .main_title {
            flex-direction: column;
            p {
                &::before {
                    content: none;
                }
            }
        }
    }
    .menu_btn {
        img {
            width: 8rem;
            height: 8rem;
        }
    }
    .sp_menu {
        display: none;
        &.open {
            overflow: scroll;
            display: block;
            height: 100svh;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            padding: 3.5rem 4rem 0 4rem;
            background-color: var(--gray-300);
            z-index: 9;
            .sp_menu_wrapper {
                background-color: var(--white);
                height: max-content;
                min-height: 100svh;
                padding: 3.5rem 1.5rem 11.6rem 1.5rem;
            }
            .sp_menu_grid {
                display: grid;
                grid-template-columns: auto auto;
                justify-content: space-between;
            }
            .category-tag-widget_wrapper {
                margin-top: 10rem;
            }
            .category-tag-widget {
                max-width: 46.8rem;
                margin: auto;
                font-size: 2.4rem;
                h3 {
                    font-size: 2.8rem;
                }
            }
            .main_title {
                margin-left: 1.5rem;
            }
            .sp_menu_sns_list {
                background-color: var(--main-color);
                height: 15rem;
                display: grid;
                place-content: center;
                place-items: center;
                gap: 2rem;
                border-radius: 1.6rem 1.6rem 0 0;
                margin-top: -1.6rem;
                .imake_logo img {
                    width: 11rem;
                    height: 2.5rem;
                }
                .sns_icon_list {
                    height: 3rem;
                    gap: 6rem;
                }
            }
        }
    }
}

@media (width <=420px) {
    .header {
        padding: 6.3rem 2.5rem 2rem;
        display: grid;
        grid-template-columns: auto auto;
        .main_title {
            grid-column: 1/3;
            grid-row: 1/2;
            display: grid;
            grid-template-columns: 24.3rem 6rem;
            grid-template-rows: auto auto;
            row-gap: 2rem;
            column-gap: 0;
            justify-content: space-between;
            font-size: 1.4rem;
            width: 100%;
            img {
                width: 24.3rem;
                height: 4.8rem;
                grid-row: 1/2;
                grid-column: 1/2;
            }
            p {
                display: block;
                grid-row: 2/3;
                grid-column: 1/3;
            }
        }
    }
    .menu_btn {
        grid-column: 2/3;
        grid-row: 1/2;
        img {
            width: 6rem;
            height: 6rem;
        }
    }
    .sp_menu {
        &.open {
            padding: 3.5rem 1.5rem 0;
            .sp_menu_wrapper {
                padding: 2.8rem 1.4rem 11.6rem;
            }
            .category-tag-widget_wrapper {
                margin-top: 4rem;
            }
            .category-tag-widget {
                font-size: 1.6rem;
                h3 {
                    font-size: 2.4rem;
                }
            }
            .main_title {
                margin: auto;
            }
            .sp_menu_sns_list {
                .sns_icon_list {
                    gap: 3rem;
                }
            }
        }
    }
}
/***********
*  footer
 ***********/
footer {
    background-color: var(--gray-500);
    color: var(--white);
    padding: 0 4rem;
    margin-top: 30rem;
}

.footer {
    font-size: 1.4rem;
    max-width: 1040px;
    margin: auto;
    padding: 3.6rem 0 9.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
}
@media (width <=768px) {
    .footer {
        font-size: 2.4rem;
        gap: 5rem;
        .copyright {
            font-size: 1.6rem;
        }
    }
}
@media (width <=420px) {
    .footer {
        font-size: 1.4rem;
        .copyright {
            font-size: 1.2rem;
        }
    }
}
/***********
* 投稿 
 ***********/
.post .wrapper {
    background-color: var(--white);
    padding: 0;
}

.post_content {
    margin-top: 8rem;
}

.post_wrapper {
    width: 100%;
    /* max-width: 880px; */
    padding: 8rem 8rem 15rem 8rem;
    margin: auto;
}
@media (width <=768px) {
    .post_wrapper {
        padding: 3rem 5.5rem 15rem 5.5rem;
    }
}
@media (width <=420px) {
    .post_wrapper {
        padding: 3rem 1.5rem 15rem 1.5rem;
    }
}

.post_information {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.post_thumbnail img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 1.2rem;
}
/* @media (width <=420px) {
    .post_thumbnail img {
        height: 21.5rem;
    }
} */

.post_title {
    font-size: 2.8rem;
    line-height: 1.5;
    font-weight: bold;
}

.post_meta {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-top: 2rem;
    font-size: 1.2rem;
}

.post_label_list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 2rem;
}

.post_label {
    display: inline-block;
    background-color: var(--gray-200);
    padding: 0.5rem 1.6rem;
    border-radius: 9999px;
    font-size: 1rem;
    white-space: nowrap;
    line-height: 1;
}

.intro_text {
    background-color: var(--gray-200);
    padding: 4rem 3rem;
}

.custom_toc {
    margin-top: 8rem;
    box-shadow: rgba(0, 0, 0, 0.3) 0rem 0.2rem 0.5rem;
    padding: 3rem;

    .custom_toc_title {
        font-size: 2.4rem;
        font-weight: 700;
        color: var(--gray-500);
    }

    ul {
        font-weight: 700;
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
        margin-top: 0.5rem;

        li {
            text-decoration: underline;
            display: flex;
            flex-direction: row;
        }

        li::before {
            content: "";
            background-image: url(../images/arrow.svg);
            display: block;
            width: 2.5rem;
            height: 2.5rem;
            background-size: contain;
            background-repeat: no-repeat;
            flex-shrink: 0;
            margin-right: 0.5rem;
        }
    }
}

.main_content {
    h2 {
        margin-top: 8rem;
        font-size: 2.4rem;
        font-weight: 700;
        margin-bottom: 3rem;
    }

    h2::after {
        content: "";
        display: block;
        width: 100%;
        height: 1px;
        background-color: var(--gray-300);
        margin-bottom: 3rem;
    }

    h3 {
        font-size: 2rem;
        font-weight: 700;
        margin-bottom: 1rem;
    }

    p {
        margin-bottom: 3rem;
    }

    .wp-block-quote {
        color: var(--gray-500);
        font-weight: 700;
        position: relative;
        padding-left: 2rem;
        margin-bottom: 3rem;

        p {
            margin-bottom: 0;
        }
    }

    .wp-block-quote::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        display: block;
        width: 0.5rem;
        height: 100%;
        background-color: var(--gray-500);
    }

    .wp-block-image img {
        margin-bottom: 3rem;
    }

    .wp-block-list {
        font-weight: 700;
        line-height: 1.875;
        margin-left: 2rem;
        margin-bottom: 3rem;
        .wp-block-list {
            font-weight: normal;
        }
    }

    ol.wp-block-list {
        list-style-type: decimal;
    }

    ul.wp-block-list {
        list-style-type: disc;
    }
}

.cta_box {
    background-color: var(--main-color);
    box-shadow: 0 0.4rem 0.4rem 0 rgba(0, 0, 0, 0.25);
    border-radius: 1.2rem;
    color: var(--white);

    a {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 2rem 3rem;
        width: 100%;
    }
    .strong {
        font-weight: 700;
    }
    img {
        width: 4rem;
        height: 4rem;
    }
}

.author_box {
    background-color: var(--gray-200);
    padding: 4rem 3rem;
    display: flex;
    flex-direction: row;
    gap: 2rem;
    margin-top: 8rem;
}

.author_image {
    width: 9rem;
    height: 9rem;
    border-radius: 50%;
    object-fit: cover;
}

.author_info_box {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    width: 100%;
    h2 {
        font-size: 2rem;
        margin-bottom: 0;
        border-bottom: var(--gray-300) 1px solid;
    }
}

.author_info {
    display: flex;
    font-weight: 700;
    gap: 1rem;
}
@media (width <=768px) {
    .author_info {
        flex-direction: column;
    }
}

.author_bio_box {
    .bio-title {
        font-weight: bold;
        border-bottom: var(--gray-300) 1px solid;
    }
    .sns_box {
        margin-top: 2rem;
        .sns_box_innner {
            display: flex;
            gap: 2rem;
            margin-top: 1rem;
            img {
                display: block;
                min-width: 2.4rem;
                height: auto;
            }
        }
    }

    .website {
        margin-top: 2rem;
        a {
            text-decoration: underline;
        }
    }
}

.author_role {
    color: var(--gray-500);
}

.author_bio {
    display: block;
}

.share_buttons {
    margin-top: 8rem;
    .share_title {
        font-weight: 700;
        margin-bottom: 1rem;
    }

    .share_list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr));
        gap: 2rem;
    }

    .share_btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 2rem;
        color: var(--white);
        width: 100%;
        height: 6rem;
        border-radius: 0.8rem;
        &.x {
            background-color: #290a1d;
        }
        &.facebook {
            background-color: #004a9f;
        }
        &.copy {
            background-color: var(--gray-500);
        }
        img {
            display: block;
            height: 2.4rem;
            width: auto;
        }
    }
}

.return_top {
    margin: 6rem auto 0;
    width: fit-content;
    a {
        background-color: var(--main-color);
        color: var(--white);
        width: 28rem;
        height: 6rem;
        border-radius: 0.8rem;
        font-weight: 700;
        display: flex;
        gap: 1.6rem;
        justify-content: center;
        align-items: center;
        box-shadow: rgba(0, 0, 0, 0.25) 0 0.4rem 0.4rem 0;
    }
}

.post footer {
    margin-top: 10rem;
}

/* この記事を読むとできるようになること */
.can_box {
    margin-bottom: 8rem;
    .can_title {
        font-size: 2rem;
        color: var(--Navy);
        font-weight: 700;
        margin-bottom: 1rem;
        border-bottom: 1px solid var(--gray-300);
    }
    .can_list {
        counter-reset: number 0;
        display: flex;
        flex-direction: column;
        row-gap: 0.5rem;
        li {
            display: flex;
            flex-direction: row;
            column-gap: 1rem;
            font-size: 1.8rem;
            &::before {
                counter-increment: number 1;
                content: counter(number) ".";
                color: var(--main-color);
                font-weight: 700;
            }
        }
    }
}

/***********
* 記事一覧
 ***********/
.post_card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 4px 0 rgba(80, 76, 67, 0.1);
    position: relative;

    .post_label_list.column {
        margin-top: 0;
    }

    h3 {
        font-weight: 700;
    }

    .date {
        font-size: 1.2rem;
    }
}

.new_label {
    position: absolute;
    display: inline-block;
    background: #00c7c7;
    color: #fff;
    font-size: 12px;
    padding: 3px 6px;
    border-radius: 12px;
    margin-bottom: 5px;
}

/* ページネーション */
.pagination {
    margin-top: 5rem;
    display: flex;
    justify-content: center;
    gap: 1.6rem;
    font-weight: 500;
}

.pagination .page-numbers {
    text-decoration: none;
}

.pagination .current {
    color: var(--main-color);
    border-bottom: 1px solid var(--main-color);
}

/***********
* 記事一覧(縦型)
 ***********/
.post-list.column {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
    gap: 3rem;
}

/* 2カラムのとき */
.two-column .post-list.column {
    grid-template-columns: repeat(2, minmax(30rem, 1fr));
}

.post_card.column {
    display: grid;
    grid-template-rows: 1fr 1fr;
    min-height: 37.6rem;
    width: 100%;
}

.post_card_thumbnail.column {
    a {
        display: block;
    }
    img {
        width: 100%;
        height: auto;
        /* height: calc(37.6rem / 2); */
        object-fit: cover;
        border-radius: 4px 4px 0 0;
    }
}

.post_card_wrapper.column {
    padding: 1.5rem 2rem 2rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: space-between;
    height: 100%;
}

.post_card_date.column {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (width <=420px) {
    .two-column .post-list.column {
        grid-template-columns: auto;
    }
}

/***********
* 記事一覧(横型)
 ***********/
.post-list.row {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

.post_card.row {
    display: flex;
    width: 100%;
    max-height: 15.3rem;
    gap: 1rem;
}

.post_card_thumbnail.row {
    width: 24.5rem;
    a {
        display: block;
        width: 24.5rem;
        height: 100%;
    }
    img {
        width: 24.5rem;
        height: 100%;
        object-fit: cover;
        border-radius: 4px 0 0 4px;
    }
}

.post_card_wrapper.row {
    padding: 0.5rem 0.5rem 0.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    justify-content: center;
    height: 100%;

    h3 {
        display: flex;
        &::before {
            content: "";
            background-image: url(../images/arrow.svg);
            display: inline-block;
            width: 2.5rem;
            height: 2.5rem;
            background-size: contain;
            background-position: center;
            background-repeat: no-repeat;
            margin-right: 0.5rem;
            flex-shrink: 0;
        }
    }
}

.post_label_list.row {
    margin: 0;
}

@media (width <=420px) {
    .post_card.row {
        max-height: 10.4rem;
    }
    .post_card_thumbnail.row {
        width: 16.7rem;
        a {
            width: 16.7rem;
        }
        img {
            width: 16.7rem;
        }
    }
    .post_card_wrapper.row {
        h3 {
            font-size: 1rem;
            align-items: center;
            &::before {
                width: 2rem;
                height: 2rem;
            }
        }
        .post_label {
            font-size: 0.8rem;
            padding: 0.2rem 1rem;
        }
    }
}

/***********
* タグ・カテゴリーリスト
 ***********/
.category-tag-widget {
    font-weight: 700;
    h3 {
        color: var(--green02-400);

        &::after {
            content: "";
            display: block;
            width: 100%;
            height: 1px;
            background-color: var(--green02-400);
            margin-top: 0.8rem;
            margin-bottom: 0.8rem;
        }

        &:not(:first-of-type) {
            margin-top: 3rem;
        }
    }
    ul {
        list-style: none;
        color: var(--gray-500);
        display: flex;
        flex-direction: column;
        gap: 0.8rem;
    }

    li {
        &::before {
            content: "-";
            margin-right: 0.5rem;
        }
    }

    .tag-genre-title {
        color: var(--gray-500);
        margin-bottom: 0.5rem;

        &::before {
            content: "";
            display: inline-block;
            margin-right: 0.5rem;
            background-color: var(--gray-500);
            width: 0.8rem;
            height: 0.8rem;
            border-radius: 0.1rem;
        }

        &:not(:first-of-type) {
            margin-top: 2.5rem;
        }
    }
}

/***********
* スライダー
 ***********/

/* リセット */
.latest-posts-slider {
    .post_title,
    .post_label_list {
        margin: 0;
    }
}

/* 各スライド */
.latest-posts-slider .splide__slide {
    height: 28.2rem;
    display: flex;
    align-items: flex-start;
    gap: 4rem;
}

/* 画像 */
.latest-posts-slider .splide__slide .slide_thumbnail a {
    display: block;
    height: 28.2rem;
    width: 45.2rem;
    img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 10px;
    }
}

/* テキスト部分 */
.slide_text_box {
    width: 100%;
    height: 100%;
    padding: 3rem 2rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.slide_text {
    display: flex;
    flex-direction: column;
    width: 100%;
    a {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
}

.latest-posts-slider .splide__slide h3 {
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.5;
}

.latest-posts-slider .splide__slide .slide_intro {
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.5;
}

/* タグ部分 */
.latest-posts-slider .splide__slide .post-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.latest-posts-slider .splide__slide .post-tags span {
    background: #f4f4f4;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    color: #333;
}

/* ページネーション（インジケーター） */
.splide__pagination {
    position: static;
    margin-top: 5rem;
}

.splide__pagination__page {
    background: var(--gray-200);
    width: 10rem;
    height: 1rem;
    border-radius: 100px;
    margin: 0 4px;
    opacity: 1;
}

.splide__pagination__page.is-active {
    background: var(--main-color);
    transform: scale(1);
}

@media (width <=768px) {
    .latest-posts-slider .splide__slide {
        height: auto;
        flex-direction: column;
        align-items: center;
        gap: 2rem;
    }
    .slide_thumbnail {
        width: 100%;
        height: 41.1rem;
        min-height: 41.1rem;
    }
    .latest-posts-slider .splide__slide .slide_thumbnail a {
        display: block;
        height: 100%;
        width: 100%;
    }
    .slide_text_box {
        width: 100%;
        padding: 0;
        gap: 1rem;
    }
}

@media (width <=420px) {
    .slide_thumbnail {
        height: 21.5rem;
        min-height: 21.5rem;
    }
    .slide_text_box {
        gap: 2rem;
    }
    .slide_text {
        a {
            gap: 2rem;
        }
    }
    .splide__pagination {
        margin-top: 3.5rem;
    }
    .splide__pagination__page {
        width: 7rem;
    }
    .latest-posts-slider .splide__slide h3 {
        font-size: 2.4rem;
    }
}

/***********
* アーカイブページ
 ***********/
.archive {
    section:not(:first-of-type) {
        margin-top: 10rem;
    }
}

.no_archive {
    color: var(--gray-500);
    font-weight: 700;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    grid-column: 1 / 3;
    align-items: center;
    .no_archive_title {
        font-size: 2.8rem;
    }
}

.two-column:has(.no_archive) {
    display: block;
}
