@charset "utf-8";
/* CSS Document */

/*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
エントリー一覧
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/

.post_list_wrap {
    margin-bottom: 20em;
    @media screen and (max-width: 480px) {
        margin-bottom: 10rem;
    }

    /* タクソノミー一覧 */
    .taxonomy_list_wrap {
        margin-bottom: 7.4rem;
        padding: 0 1rem;
        @media screen and (max-width: 480px) {
            margin-bottom: 4rem;
        }
        &:has(.news) {
            margin-bottom: 0;
        }
        .taxonomy-list {
            background-color: #fff;
            .taxonomy-item {
                box-sizing: border-box;
                border-right: 1px solid var(--color-blue);
                border-bottom: 1px solid var(--color-blue);

                .taxonomy-link {
                    color: var(--color-blue);
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    width: 100%;
                    height: 100%;

                    span {
                        font-size: 2rem;
                        display: inline-block;
                        letter-spacing: 0.2em;
                        padding: 0.65em 0 0.65em 0.2em;
                        @media screen and (max-width: 480px) {
                            font-size: 1.2rem;
                        }
                    }
                }
                &.current-term {
                    background-color: var(--color-blue);
                    .taxonomy-link {
                        color: #fff;
                    }
                }
            }
            /* 施工実績 */
            &.casestudy {
                position: relative;
                max-width: 60rem;
                height: 9.6rem;
                margin: auto;

                &::after {
                    content: "";
                    display: block;
                    height: 100%;
                    border-left: 1px dashed var(--color-blue);

                    position: absolute;
                    top: 0;
                    right: 20.7rem;
                }
                @media screen and (max-width: 480px) {
                    width: calc(100% - 2rem);
                    height: 6.4rem;
                    &::after {
                        right: 35%;
                    }
                }
                .taxonomy-item {
                    width: 18.5rem;
                    height: 4.8rem;
                    position: absolute;
                    @media screen and (max-width: 480px) {
                        width: 30%;
                        height: 3.2rem;
                    }
                    &.title {
                        background-color: var(--color-ex-light-blue);
                        left: 0;
                        top: 0;
                        .taxonomy-link {
                            span {
                                color: #000;
                                font-size: 1.6rem;
                                @media screen and (max-width: 480px) {
                                    font-size: 1.2rem;
                                }
                            }
                        }
                    }
                    &.all {
                        right: 0;
                        bottom: 0;
                        border-left: 1px solid var(--color-blue);
                    }
                    /* 舗装工事 */
                    &.pavement {
                        border-top: 1px solid var(--color-blue);
                        top: 0;
                        left: 18.5rem;
                        @media screen and (max-width: 480px) {
                            left: 30%;
                        }
                    }
                    /* 土木工事 */
                    &.civil {
                        border-left: 1px solid var(--color-blue);
                        top: 50%;
                        left: 0;
                    }
                    /* 災害関連工事 */
                    &.restoration {
                        top: 50%;
                        left: 18.5rem;
                        @media screen and (max-width: 480px) {
                            left: 30%;
                        }
                    }
                    /* 民間工事 */
                    &.private {
                        border-left: 1px solid var(--color-blue);
                        border-top: 1px solid var(--color-blue);
                        top: 0;
                        right: 0;
                    }
                }
            }
            /* お知らせ */
            &.news {
                border-top: 1px solid var(--color-blue);
                border-left: 1px solid var(--color-blue);
                max-width: 44.8rem;
                margin: auto;
                display: grid;
                grid-template-columns: repeat(2, 1fr);
                grid-template-rows: repeat(2, 1fr);
                grid-column-gap: 0px;
                grid-row-gap: 0px;
                transform: translateY(-50%);
                @media screen and (max-width: 480px) {
                    width: 22rem;
                }
                .taxonomy-item {
                    width: 22.4rem;
                    @media screen and (max-width: 480px) {
                        width: 11rem;
                    }
                    &:nth-child(1) {
                        grid-area: 1 / 1 / 2 / 2;
                    }
                    &:nth-child(2) {
                        grid-area: 1 / 2 / 2 / 3;
                    }
                    &:nth-child(3) {
                        grid-area: 2 / 1 / 3 / 2;
                    }
                    &:nth-child(4) {
                        grid-area: 2 / 2 / 3 / 3;
                    }
                }
            }
        }
    }

    .post_list {
        padding: 0 2rem;
        margin: auto;
        box-sizing: content-box;
        /* -------------------- */
        /* エントリー */
        .entry_item {
            /* パーマリンク */
            a.permalink {
                /*エントリーのデータ部分*/
                .entry_data_wrap {
                    display: flex;
                    align-items: center;
                    gap: 1rem;
                    .term_wrap {
                        font-size: 1.2rem;
                        letter-spacing: 0.1em;
                        padding: 0.27em 1em 0.38em 1.1em;
                        @media screen and (max-width: 480px) {
                            font-size: 1rem;
                            padding: 0.27em 0.5em 0.38em 0.6em;
                            letter-spacing: 0.05em;
                        }
                    }

                    /* 日付 */
                    .postdate {
                        font-size: 1.8rem;
                        letter-spacing: 0.04em;
                        @media screen and (max-width: 480px) {
                            font-size: 1.2rem;
                        }
                    }
                }

                /* タイトル */
                .title {
                    font-size: 2rem;
                    line-height: 1.4;
                    font-weight: 500;
                    letter-spacing: 0.05em;
                    @media screen and (max-width: 480px) {
                        font-size: 1.4rem;
                    }
                }
            }
        }

        /*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/
        /* 施工実績 */
        &.casestudy {
            max-width: 100rem;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            @media screen and (max-width: 480px) {
                padding: 0 2rem;
                display: block;
            }

            /* justify 調整用空タグ */
            &::after {
                content: "";
                display: block;
            }

            /* １行3列 */
            &::after {
                width: 31%;
            }

            /* -------------------- */
            /* エントリー */
            .entry_item {
                position: relative;
                width: 31%;
                max-width: 30.6rem;
                margin-bottom: 4.5rem;

                @media screen and (max-width: 480px) {
                    width: 100%;
                    max-width: 100%;
                    margin-bottom: 2rem;
                }

                /* パーマリンク */
                a.permalink {
                    background-color: var(--color-blue);
                    display: block;
                    width: 100%;
                    height: 100%;
                    box-sizing: border-box;
                    color: #000;
                    padding: 6.1%;
                    color: #fff;

                    /* サムネイル */
                    .thumb {
                        /* アスペクト比を指定 */
                        aspect-ratio: 260 / 170;
                    }

                    /*エントリーのデータ部分*/
                    .entry_data_wrap {
                        margin: 1.8rem 0 1.4rem;
                        @media screen and (max-width: 480px) {
                            margin: 1.2rem 0 1rem;
                        }
                        /* ターム */
                        .term_wrap {
                            background-color: #fff;
                            color: var(--color-blue);
                        }
                    }
                }
            }
            &.toppage {
                .entry_item {
                    &:nth-child(-n + 2) {
                        width: 48%;
                        max-width: 47.8rem;

                        @media screen and (max-width: 480px) {
                            width: 100%;
                        }
                    }
                }
            }
        }
        /*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/
        /* お知らせ */
        &.news {
            max-width: 72rem;
            box-sizing: content-box;
            margin: auto;
            padding-bottom: 6rem;
            @media screen and (max-width: 480px) {
                padding-bottom: 3rem;
                width: 28.6rem;
            }
            .entry_item {
                a.permalink {
                    display: flex;
                    padding: 1rem 0;
                    gap: 4%;
                    position: relative;
                    align-items: center;
                    color: #000;
                    &::after {
                        content: "";
                        display: block;
                        position: absolute;
                        border-bottom: 1px dashed #000;
                        right: 0;
                        bottom: 0;
                        width: 73.3%;
                    }
                    @media screen and (max-width: 480px) {
                        &::after {
                            width: 100%;
                        }
                        flex-direction: column;
                        gap: 1.8rem;
                        padding: 0 0 2.8rem;
                        margin-bottom: 3rem;
                    }
                    .thumb {
                        width: 22.7%;
                        flex-shrink: 0;
                        aspect-ratio: 164/90;
                        border-radius: 1rem;
                        overflow: hidden;
                        @media screen and (max-width: 480px) {
                            width: 100%;
                            aspect-ratio: 286/159;
                            border-radius: 0.5rem;
                        }
                    }
                    .text_wrap {
                        width: 73.3%;
                        @media screen and (max-width: 480px) {
                            width: 100%;
                        }
                        /*エントリーのデータ部分*/
                        .entry_data_wrap {
                            margin: 0 0 1.2rem;
                            @media screen and (max-width: 480px) {
                                margin: 0 0 1rem;
                            }
                            /* ターム */
                            .term_wrap {
                                background-color: var(--color-blue);
                                color: #fff;
                                @media screen and (max-width: 480px) {
                                    font-size: 1.2rem;
                                }
                            }
                            /* 日付 */
                            .postdate {
                                @media screen and (max-width: 480px) {
                                    font-size: 1.8rem;
                                }
                            }
                            /* タイトル */
                            .title {
                                @media screen and (max-width: 480px) {
                                    font-size: 1.8rem;
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    /*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/
    /* お知らせ */
    &.news {
        background-color: var(--color-ex-light-blue);
        margin-top: 9.3rem;
        @media screen and (max-width: 480px) {
            margin-top: 5.9rem;
        }
    }

    /*〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓*/
    /* ページナビ */
    .pagination_wrap {
        margin-top: 4rem;
        @media screen and (max-width: 480px) {
            margin-top: 2rem;
        }
        .nav-links {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 1rem;
            @media screen and (max-width: 480px) {
                gap: 0.6rem;
            }
            span.page-numbers,
            a.page-numbers {
                font-family: "Poppins", sans-serif;
                font-weight: 400;
                font-size: 1.8rem;
                display: flex;
                justify-content: center;
                align-items: center;
                background-color: var(--color-blue);
                border-radius: 9999px;
                width: 2em;
                aspect-ratio: 1/1;
                color: #fff;
                border: 1px solid var(--color-blue);
                @media screen and (max-width: 480px) {
                    font-size: 1.2rem;
                }
                &.current {
                    background-color: #fff;
                    color: var(--color-blue);
                }
                &.next,
                &.prev {
                    font-family: "Noto Sans JP", sans-serif;
                    font-size: 1.6rem;
                    width: 3em;
                    aspect-ratio: 3/1;
                    background-color: transparent;
                    border: none;
                    color: var(--color-blue);
                    @media screen and (max-width: 480px) {
                        font-size: 1.4rem;
                    }
                }
                &.dots {
                    background-color: transparent;
                    border: none;
                    color: var(--color-blue);
                }
            }
        }
    }
    /* お知らせ */
    &.news {
        .pagination_wrap {
            margin-top: 1.8rem;
            transform: translateY(50%);
            @media screen and (max-width: 480px) {
                margin-top: 0;
            }
        }
    }
}
