@charset "UTF-8";

html {
    font-size: 62.5%;
}

/* sp */
/* p {
    font-size: 1.4rem;
}

h2 {
    font-size: 1.9rem;
}

h3 {
    font-size: 1.6rem;
} */

/* sec01 */
.container01 {
    width: 100%;
    height: 45vw;
    position: relative;
    background-image: url(../images/works/work_mv_01.png);
    background-size: cover;
    background-position: top;
    background-repeat: no-repeat;
}

@media screen and (min-width: 999.8px) {

    /* sec01 */
    .container01 {
        height: 27vw;
    }

}

.works {
    & .taxonomy-list-wrapper {
        position: relative;
    }

    & .taxonomy-list-wrapper::after {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        content: "";
        height: 2px;
        background-color: var(--color-main);
    }

    & .taxonomy-list {
        display: flex;
        justify-content: center;

        & .is-active {
            background-color: #d5ead8;
            position: relative;
            z-index: 1;
            margin-bottom: 0;
        }

        & li {
            list-style: none;
            width: calc(95% / 3);
            padding-block: 2rem;
            text-align: center;
            border: 2px solid var(--color-main);
            border-bottom: none;
            color: var(--color-main);
            font-weight: bold;
            cursor: pointer;

            &:nth-of-type(2) {
                border-left: none;
                border-right: none;
            }
        }
    }

    & .taglist-wrapper {
        background-color: #d5ead8;
        display: block;

        & .taglist {
            max-width: 1400px;
            width: 100%;
            padding-inline: 5%;
            margin-inline: auto;
            padding-block: 4rem;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            /* flex-wrap: wrap; */
            row-gap: 2rem;
            column-gap: 8px;

            & span {
                cursor: pointer;
                font-size: 90%;
                text-align: center;
                background: #fff;
                font-weight: bold;
                border-radius: 100vh;
                padding-block: 4px;
                text-align: center;
                flex: 0 1 110px;

                &.is-active {
                    background-color: var(--color-main);
                    color: #fff;
                }
            }
        }

        &.is-none {
            display: none;
        }
    }

    & .contents-box {
        margin-top: 4.5vw;
    }

    & .contents-box__list {
        display: none;
        grid-template-columns: 1fr;

        &.is-display {
            display: grid;
            gap: 40px;
        }

        & .contents-box__list__item {
            & .title {
                margin-top: 16px;
            }

            & img {
                width: 100%;
                height: max(240px, 24vmin);
                object-fit: cover;
            }
        }
    }

    @media screen and (min-width: 500px) {
        & .contents-box__list {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    @media screen and (min-width: 1024px) {
        & .contents-box__list {
            grid-template-columns: repeat(3, 1fr);
        }
    }
}

.contents-box__list__item .taglist,
.remodal-content .taglist {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    text-align: left;
    margin-top: 16px;

    &>span {
        display: inline-block;
        font-size: 1.6rem;
        width: 110px;
        padding: 4px 0;
        text-align: center;
        background-color: var(--color-main);
        color: #fff;
        border-radius: 100vh;
    }
}

.remodal-content > img {
    /* aspect-ratio: 4/3; */
    object-fit: contain;
    height: min(400px, 35vh);
}

.remodal-dl {
    margin-top: 16px;
    width: 100%;

    display: grid;
    grid-template-columns: 10% auto 10% auto;
    align-items: baseline;


    & dt,
    & dd {
        height: 100%;
        border-bottom: 2px solid var(--color-main);
        padding: 8px;
    }

    & dt.__01,
    & dd.__01,
    & dt.__02,
    & dd.__02 {
        border-top: 2px solid var(--color-main);
    }


    & dt {
        background: #d5ead8;
        font-weight: 700;
    }

    & dd {
        text-align: left;
    }

    & dd.__item_column {
        grid-column: 2 / 5;
    }

}

@media screen and (max-width: 999.8px) {
    .remodal-dl {
        margin-top: 16px;
        width: 100%;

        display: grid;
        grid-template-columns: 20% auto;

        & dt.__02,
        & dd.__02 {
            border-top: none;
        }

        & dd.__item_column {
            grid-column: auto;
        }
    }
    /* .remodal-content > img {
        height: auto;
        aspect-ratio: 4/3;
        object-fit: cover;
    } */
    
}

.sliderTop_sp30 {
    display: block;
}

.sliderTop30 {
    display: none;
}

.container01 {
    position: relative;
    margin-inline: auto;
}

.container01 .slick-track {
    height: 45vw;
}

.container01 .slick-track .slick-slide {
    object-fit: cover;
}

.text__main {
    position: absolute;
    top: unset;
    left: unset;
    transform: unset;
    z-index: 100;
}

/* sec01 pc */
@media screen and (min-width: 999.8px) {

    .container01 .slick-track {
        height: 27vw;
    }

    .text__main {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    h2 {
        font-size: 3.5rem;
    }

    h3 {
        font-size: 2.6rem;
    }

    .sliderTop_sp30 {
        display: none;
    }

    .sliderTop30 {
        display: block;
    }

    .works .taxonomy-list li {
        width: calc(60% / 3);
    }

    .works .taglist-wrapper .taglist {
        width: 60%;
        grid-template-columns: repeat(5, 1fr);
        justify-content: space-between;
        column-gap: 16px;
        padding-inline: 0;
    }


}

.contentsSp {
    padding: 0px 5%;
    margin: 0 auto;
}

#sec02 h2 {
    font-weight: 400;
    text-align: start;
}

#sec02 {
    /* text-align: center; */
    margin-top: 8vw;
}

#sec02 p {
    text-align: start;
}

.sPblock {
    display: block;
}

.sec0201__title {
    font-size: 1.9rem;
    margin-bottom: var(--header-margin-bottom);
}

.block-txt,
.sec0201__img {
    margin-top: 20px;
    width: 100%;
}

.sec0201__img {
    & img {
        width: 100%;
    }
}

/*タブ切り替え全体のスタイル*/
.tabs {
    margin-top: 8vw;
    /* background-color: #fff; */
}

/*タブのスタイル*/
.tab_item {
    width: 50%;
    height: 60px;
    border: 1px solid var(--color-main);
    line-height: 60px;
    text-align: center;
    color: var(--color-main);
    display: block;
    float: left;
    text-align: center;
    transition: all 0.2s ease;
    border-radius: 10px 10px 0px 0px;
    position: relative;
    flex: 1 1 auto;
}

.tab_item:hover {
    opacity: 0.75;
}

.tab_header {
    position: relative;
    height: 60px;
    display: flex;
    justify-content: space-between;
    gap: 2rem;
}

.tab_header::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
    width: 100vw;
    height: 1px;
    background-color: var(--color-main);
}

/* ラジオボタンを非表示 */
input[name="tab_item"] {
    display: none;
}

/* タブの中身を非表示 */
.tab_content {
    display: none;
    clear: both;
}

/* 橋梁事業が選択されている時だけ表示 */
#bridge:checked~.tab_header+#bridge_content {
    display: block;
}

/* 鉄骨事業が選択されている時だけ表示 */
#steel:checked~.tab_header+#bridge_content+#steel_content {
    display: block;
}

/* 選択中タブの見た目 */
#bridge:checked~.tab_header label[for="bridge"],
#steel:checked~.tab_header label[for="steel"] {
    background-color: var(--color-main);
    color: #fff;
}

.Form-Item {
    margin: 8vw 0px;
}

.flow-img {
    margin-top: 4vw;
    width: 100%;
    padding-bottom: 8vw;
    background-color: var(--color-white);

}

.green-box {
    margin-bottom: 8vw;
    border: solid 1px var(--color-main);
}

.padding-20 {
    padding: 20px;
}

.green-tab {
    color: var(--color-white);
    background-color: var(--color-main);
    padding: 16px 20px;
    /* margin-bottom: 2rem; */
    line-height: 1.5;
}

@media screen and (min-width: 999.8px) {
    .contentsSp {
        padding: 0px;
    }

    .block {
        width: 50%;
        line-height: 2;
    }

    .sPblock {
        display: flex;
        gap: 2rem;
    }

    .green-box .sPblock {
        padding: 4rem;
        gap: 2rem;
        font-size: 1.6rem;
        line-height: 1.875;
    }

    .sec0201__title {
        font-size: 3.5rem;
        line-height: 1.5;
    }

    .sec0201__txt {
        /* width: 70%; */
        /* margin-right: 20px; */
    }

    .sec0201__txt,
    .sec0201__img {
        margin-top: 0px;
    }

    .sec0201__img {
        width: 40%;
        flex-shrink: 0;

        & img {
            object-fit: contain;
        }
    }

    .block-txt {
        /* width: 90%;
        margin-top: 20px; */
    }

    .block-img {
        width: 50%;

        &>img {
            object-fit: cover;
            width: 100%;
            height: 100%;
        }
    }

    .Form-Item {
        margin-top: 4vw;
    }

    .green-tab {
        font-size: 18px;
    }

    .green-box {
        margin-bottom: 4vw;
    }

    .flow-img {
        margin-top: 4vw;
        width: 100%;
        padding-bottom: 4vw;
    }
}

/* sec03 */


/* .arrow:hover {
    background-color: var(--color-main);
} */