@charset "utf-8";


/**
 * スマホ用設定
 */
@media ( width < 768px ) {

    #page-mv {
        margin: 60px auto 0;
        padding: 0 0 8.0vw;
        width: 100%;
        height: auto;
        background: url(../images/fv-bg_02.webp) no-repeat center bottom / 100% auto, #f8f4f2;
    }
    #page-mv.no-bg {
        background: url(../images/fv-bg_01.webp) no-repeat center / 100% auto;
    }
    #page-mv.no-bg::before {
        background: transparent;
    }
    #page-mv .breadcrumbs {
        position: relative;
        margin: 0 auto;
        padding: 4.0vw 0;
        width: 90%;
        color: #8c8c8c;
        font-size: 2.8vw;
        font-weight: 500;
        text-align: left;
        z-index: 2;
    }
    #page-mv .breadcrumbs a {
        color: #8c8c8c;
    }
    #page-mv .breadcrumbs span {
        color: var(--fg-color);
    }
    #page-mv .page-mv-box {
        position: relative;
        margin: 0 auto;
        padding: 0;
        width: 90%;
        height: calc( 100% - 12.0vw );
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        z-index: 2;
    }
    #page-mv.page-faq .page-mv-box .subtitle {
        margin: 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
    }
    #page-mv .page-mv-box {
        align-items: flex-start;
    }
    #page-mv.page-faq .page-mv-box h1 {
        position: relative;
        margin: 0.2em 0 0;
        font-size: 6.0vw;
        font-weight: 500;
        text-align: center;
    }
    #page-mv .page-mv-box .subtitle {
        margin: 0;
        padding: 0.2em 1.2em;
        color: #fff;
        font-size: 3.2vw;
        font-weight: 500;
        background: #ff9d00;
    }
    #page-mv .page-mv-box h1 {
        position: relative;
        margin: 0.2em 0 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 500;
        text-align: left;
    }
    #page-mv.page-center .page-mv-box h1 {
        margin: 0 auto;
        padding: 0;
    }
    #page-mv.page-center .page-mv-box .subtitle {
        margin: 0 auto;
        color: var(--fg-color);
        background: transparent;
    }
    #page-mv .page-mv-box p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
    }

    #page-main {
        margin: 0 auto;
        padding: 12.0vw 5.0vw;
        width: 100%;
        background: #f8f4f2;
    }

    #page-main iframe {
        display: block;
        margin: 16.0vw auto 0;
        width: 100%;
        height: auto;
        max-height: 100vh;
        aspect-ratio: 640 / 480;
        border: 0;
    }

    #faq-wrap {
        margin: 0 auto;
        padding: 12.0vw 5.0%;
        width: 100%;
        background: #f8f4f2;
    }
    #faq-wrap #faq-main {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #faq-wrap #faq-sidebar {
        display: none;
    }

    #faq-main section + section {
        margin-top: 16.0vw;
    }
    #faq-main h2 {
        position: relative;
        margin: 0;
        padding: 48px 0 0;
        font-size: 5.2vw;
        font-weight: 500;
        text-align: left;
    }
    #faq-main h2 span {
        margin-left: 0.5em;
        font-size: 3.6vw;
        font-weight: 500;
    }
    #faq-main h2::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 35px;
        height: 38px;
        background: url(../images/icon-cube.svg) no-repeat center / contain;
    }
    #faq-main .pic {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #faq-main .half-pic {
        margin: 8.0vw auto 0 0;
        padding: 0;
        width: 80%;
        height: auto;
    }
    #faq-main :is(.pic,.half-pic) img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 1.0vw;
    }
    #faq-main p {
        margin: 1.5em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.7;
    }

    #faq-main .faq-box {
        margin: 6.0vw auto 0;
        padding: 4.0vw 5.0vw;
        background: #fff;
        border-radius: 2.0vw;
    }
    #faq-main .faq-box + .faq-box {
        margin-top: 2.0vw;
    }
    #faq-main .faq-box .faq-q {
        margin: 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 2.0vw;
    }
    #faq-main .faq-box .faq-q::before {
        display: grid;
        place-items: center;
        content: "Q";
        width: 2.0em;
        flex: 0 0 2.0em;
        height: auto;
        aspect-ratio: 1 / 1;
        color: #fff;
        font-size: 120%;
        font-weight: 700;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        background: #91c1e9;
        border-radius: 100%;
    }
    #faq-main .faq-box .faq-a {
        margin: 4.0vw 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 2.0vw;
    }
    #faq-main .faq-box .faq-a::before {
        display: grid;
        place-items: center;
        content: "A";
        width: 2.0em;
        flex: 0 0 2.0em;
        height: auto;
        aspect-ratio: 1 / 1;
        color: #fff;
        font-size: 120%;
        font-weight: 700;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        background: #ff9d00;
        border-radius: 100%;
    }

    #work-mv {
        margin: 60px auto 0;
        padding: 0;
        width: 100%;
        height: auto;
        overflow: hidden;
        background: url(../images/fv-bg_01.webp) no-repeat center / 100% auto;
    }
    #work-mv.work-child {
        aspect-ratio: 5 / 3;
        background: url(../images/fv-bg_02.webp) no-repeat center bottom / 100% auto, #f8f4f2;
    }
    #work-mv .breadcrumbs {
        margin: 0 auto;
        padding: 4.0vw 0;
        width: 90%;
        color: #8c8c8c;
        font-size: 2.8vw;
        font-weight: 500;
        text-align: left;
    }
    #work-mv .breadcrumbs a {
        color: #8c8c8c;
    }
    #work-mv .breadcrumbs span {
        color: var(--fg-color);
    }
    #work-mv .work-mv-box {
        margin: 0 auto;
        padding: 0;
        width: 90%;
    }
    #work-mv.work-child .work-mv-box {
        height: calc( 100% - 12.0vw );
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    #work-mv .work-mv-box .subtitle {
        margin: 0;
        padding: 0.2em 1.2em;
        width: max-content;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        background: #ff9d00;
    }
    #work-mv .work-mv-box h1 {
        position: relative;
        margin: 0;
        padding: 20px 0 0;
        font-size: 6.0vw;
        font-weight: 500;
        text-align: center;
    }
    #work-mv .work-mv-box h1::before {
        position: absolute;
        content: "";
        top: 0;
        left: calc( 50% - 20.5px );
        width: 41px;
        height: 20px;
        background: url(../images/icon-hexagon.svg) no-repeat center / contain;
    }
    #work-mv.work-child .work-mv-box h1 {
        padding: 0;
        text-align: left;
    }
    #work-mv.work-child .work-mv-box h1::before {
        content: none;
    }
    #work-mv .work-mv-box p {
        margin: 2.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: center;
        line-height: 1.8;
    }
    #work-mv.work-child .work-mv-box p {
        margin: 1.0em 0 0;
        font-weight: 500;
        text-align: left;
    }
    #work-mv .work-mv-pic {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 98%;
        height: auto;
    }
    #work-mv .work-mv-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 1.0vw;
    }

    main {
        margin: 0 auto;
        width: 100%;
    }

    #job {
        margin: 0 auto;
        padding: 12.0vw 0;
        width: 100%;
    }
    #job .job-wrap {
        margin: 0 auto;
        padding: 0;
        width: 90%;
    }
    #job .en-title {
        position: relative;
        margin: 0;
        font-size: 8.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        text-align: left;
    }
    #job .en-title::before {
        position: absolute;
        content: "";
        bottom: calc( 100% + 20px );
        left: 0;
        width: 26px;
        height: 11px;
        background: linear-gradient( to right, #91c1e9 11px, transparent 11px, transparent 15px, #ff9d00 15px );
    }
    #job .ja-title {
        margin: 0;
        font-size: 2.8vw;
        font-weight: 700;
        line-height: 1.0;
        text-align: left;
    }
    #job .job-grid {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 12.0vw 0;
    }
    #job .job-grid .job-item {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #job .job-grid .job-item .pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 913 / 823;
        border-radius: 1.0vw;
        overflow: hidden;
    }
    #job .job-grid .job-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        filter: brightness(80%);
        transition: filter 0.3s ease-out, transform 0.3s ease-out;
    }
    #job .job-grid .job-item .pic figcaption {
        position: absolute;
        left: 5%;
        bottom: 5%;
        width: 90%;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
    }
    #job .job-grid .job-item .pic figcaption::after {
        position: absolute;
        content: "";
        bottom: 0;
        right: 0;
        width: 1.2em;
        height: auto;
        aspect-ratio: 1 / 1;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        background: url(../images/icon-arrow.svg) no-repeat center / contain;
    }
    #job .job-grid .job-item h3 {
        margin: 0.8em 0 0;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: left;
    }
    #job .job-grid .job-item p {
        margin: 1.0em 0 0;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: left;
    }
    @media ( hover: hover ) {
        #job .job-grid .job-item:hover {
            opacity: 1.0;
        }
        #job .job-grid .job-item:hover .pic img {
            filter: brightness(100%);
            transform: scale( 1.1, 1.1 );
        }
    }

    .work-child-page-links {
        margin: 0 auto;
        padding: 8.0vw 0 0;
        width: 90%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 6.0vw;
    }
    .work-child-page-links > a {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 500;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 1.0vw;
    }
    .work-child-page-links > a::after {
        display: block;
        content: "";
        margin: 0;
        padding: 0;
        width: 0.5em;
        height: 0.5em;
        border-right: 2px solid #ff9d00;
        border-bottom: 2px solid #ff9d00;
        rotate: 45deg;
    }

    .work-child-wrap {
        margin: 0 auto;
        padding: 12.0vw 5.0%;
        width: 100%;
        background: #fff;
    }
    .work-child-wrap + .work-child-wrap {
        border-top: 1px solid #d9d9d9;
    }
    .work-child-wrap .work-child-main {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .work-child-wrap .work-child-sidebar {
        display: none;
    }

    .work-child-main section + section {
        margin-top: 16.0vw;
    }
    .work-child-main h2 {
        position: relative;
        margin: 0;
        padding: 48px 0 0;
        font-size: 5.2vw;
        font-weight: 500;
        text-align: left;
    }
    .work-child-main h2 span {
        display: block;
        margin-left: 0.5em;
        font-size: 3.6vw;
        font-weight: 500;
    }
    .work-child-main h2::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 35px;
        height: 38px;
        background: url(../images/icon-cube.svg) no-repeat center / contain;
    }
    .work-child-main .pic {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main .half-pic {
        margin: 8.0vw auto 0 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main :is(.pic,.half-pic) img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 1.0vw;
    }
    .work-child-main p {
        margin: 1.5em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.7;
    }

    .work-child-main .work-child-flex {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
    }
    .work-child-main .work-child-flex .work-child-item {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .work-child-main .work-child-flex .work-child-item .icon {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: 58px;
    }
    .work-child-main .work-child-flex .work-child-item .icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    .work-child-main .work-child-flex .work-child-item .pic {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main .work-child-flex .work-child-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main .work-child-flex .work-child-item h3 {
        margin: 0.4em 0 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
    }
    .work-child-main .work-child-flex .work-child-item h3::before {
        content: none;
    }
    .work-child-main .work-child-flex .work-child-item p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: center;
    }
    .work-child-main .work-child-flex.resource {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    .work-child-main .work-child-flex.resource .icon {
        margin: 0 auto;
        padding: 0;
        width: 136px;
        height: auto;
    }
    .work-child-main .work-child-flex.resource .icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main .work-child-flex.resource .work-child-item {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .work-child-main .work-child-flex.resource .work-child-item ul {
        margin: 0 0 0 5.0vw;
        padding: 0;
    }
    .work-child-main .work-child-flex.resource .work-child-item ul li {
        margin: 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: left;
    }
    .work-child-main .work-child-flex.resource .work-child-item ul li + li {
        margin-top: 0.5em;
    }
    .work-child-main .work-child-flex.workflow {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
    }
    .work-child-main .work-child-flex.workflow .work-child-item {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .work-child-main .work-child-flex.workflow .work-child-item .pic {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 938 / 528;
    }
    .work-child-main .work-child-flex.workflow .work-child-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 1.0vw;
    }
    .work-child-main .work-child-flex.workflow .work-child-item h3 {
        margin: 2.0vw auto 0;
        padding: 0.2em 1.5em;
        width: max-content;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        background: #ff9d00;
    }
    .work-child-main .work-child-flex.workflow .work-child-item p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
    }
    .work-child-main h3 {
        margin: 2.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: left;
    }
    .work-child-main h3.bar-l {
        padding-left: 0.5em;
        font-size: 4.8vw;
        border-left: 4px solid #ff9d00;
    }
    .work-child-main h3::before {
        content: "・ ";
        color: #ff9d00;
    }
    .work-child-main h3.bar-l::before {
        content: none;
    }
    .work-child-main h3 + p {
        margin-top: 1.0em;
    }
    .work-child-main .work-child-flex + h3 {
        margin-top: 1.0em;
    }
    .work-child-main .half-pic + h3 {
        margin-top: 1.0em;
    }

    #work-office-studies p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
    }
    #work-office-studies h2 + p {
        margin-top: 8.0vw;
    }
    #work-office-studies p + .half-pic {
        margin-top: 8.0vw;
    }
    #work-office-studies .half-pic + h3 {
        margin-top: 2.0vw;
    }

    #people-main {
        margin: 0 auto;
        padding: 0;
        width: 100%;
    }

    .people-section {
        margin: 0 auto;
        padding: 12.0vw 0;
        width: 90%;
    }
    .people-section h2 {
        position: relative;
        margin: 0;
        padding: 48px 0 0;
        font-size: 5.2vw;
        font-weight: 500;
        text-align: left;
    }
    .people-section h2::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 35px;
        height: 38px;
        background: url(../images/icon-cube.svg) no-repeat center / contain;
    }
    .people-section .people-grid {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 8.0vw 0;
    }
    .people-section .people-grid .people-item {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .people-section .people-grid .people-item .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-radius: 2.0vw;
        overflow: hidden;
    }
    .people-section .people-grid .people-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        filter: brightness(80%);
        transition: filter 0.3s ease-out, transform 0.3s ease-out;
    }
    .people-section .people-grid .people-item .attr {
        margin: 1.0em 0 0;
        padding: 0;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 500;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
    }
    @media ( hover: hover ) {
        .people-section .people-grid .people-item {
            opacity: 1.0;
        }
        .people-section .people-grid .people-item:hover .pic img {
            filter: brightness(100%);
            transform: scale( 1.1, 1.1 );
        }
    }

    .page-grid {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 90%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 8.0vw 0;
    }
    .page-grid .page-item {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .page-grid .page-item .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 380 / 282;
        border-radius: 2.0vw;
        overflow: hidden;
    }
    .page-grid .page-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.3s ease-out;
    }
    .page-grid .page-item .head {
        margin: 1.0em 0 0;
        padding: 0;
        width: 100%;
        font-size: 4.0vw;
        font-weight: 700;
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 0 2.0vw;
    }
    .page-grid .page-item .head::before {
        display: block;
        content: "";
        margin: 0.3em;
        padding: 0;
        width: 9px;
        height: 22px;
        background: linear-gradient( to bottom, #91c1e9 9px, transparent 9px, transparent 13px, #ff9d00 13px );
    }
    .page-grid .page-item[target="_blank"] .head::after {
        display: block;
        content: "";
        margin: 0.3em 0 0;
        padding: 0;
        width: 1.0em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: url(../images/icon-newtab.svg) no-repeat center / contain;
    }
    .page-grid .page-item p {
        margin: 1.0em 0 0;
        padding: 0;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 500;
    }
    @media ( hover: hover ) {
        .page-grid .page-item {
            opacity: 1.0;
        }
        .page-grid .page-item:hover .pic img {
            filter: brightness(100%);
            transform: scale( 1.1, 1.1 );
        }
    }

    #news-main {
        margin: 0 auto;
        padding: 12.0vw 0;
        width: 100%;
    }
    #news-main .news-item {
        margin: 0 auto;
        padding: 6.0vw 0;
        width: 90%;
        border-bottom: 1px solid #d4d4d4;
    }
    #news-main .news-item:first-child {
        border-top: 1px solid #d4d4d4;
    }
    #news-main .news-item .date {
        margin: 0;
        padding: 0;
        width: 100%;
        color: #878787;
        font-size: 3.6vw;
        font-weight: 400;
        font-family: 'Helvetica';
        text-align: left;
        line-height: calc( 20 / 18 );
    }
    #news-main .news-item .title {
        margin: 0.5em 0 0;
        padding: 0;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        text-decoration: underline;
        line-height: calc( 30 / 18 );
    }

    #environment-main {
        margin: 0 auto;
        padding: 12.0vw 0;
        width: 90%;
    }
    #environment-main h2 {
        position: relative;
        margin: 0;
        padding: 48px 0 0;
        font-size: 5.2vw;
        font-weight: 500;
        text-align: left;
    }
    #environment-main h2::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 35px;
        height: 38px;
        background: url(../images/icon-cube.svg) no-repeat center / contain;
    }
    #environment-main .environment-flex {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 16.0vw 0;
    }
    #environment-main .environment-flex .environment-item {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #environment-main .environment-flex .environment-item .icon {
        margin: 0 auto;
        padding: 0;
        width: 25%;
        height: auto;
    }
    #environment-main .environment-flex .environment-item .icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #environment-main .environment-flex .environment-item h3 {
        margin: 0.4em 0 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
    }
    #environment-main .environment-flex .environment-item p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: center;
    }
    #environment-main .environment-flex + .pic {
        margin-top: 12.0vw;
    }
    #environment-main .pic {
        margin: 4.0vw auto 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #environment-main .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 2.0vw;
    }
    #environment-main section + section {
        margin-top: 12.0vw;
    }

    #environment-main:has(.data-box) {
        width: 96%;
    }
    #environment-main .data-box {
        margin: 0 auto;
        padding: 4.0vw;
        width: 100%;
        background: #e2f0fb;
        border-radius: 6.0vw;
    }
    #environment-main .data-grid {
        margin: 0 auto;
        padding: 0;
        width: 100%;
    }
    #environment-main .data-grid .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 537 / 377;
    }
    #environment-main .data-grid .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #environment-main .data-grid .pic + :is(.pic,.table) {
        margin-top: 4.0vw;
    }
    #environment-main .data-grid .table {
        margin: 0;
        padding: 4.0vw;
        grid-column: span 2;
        background: #fff;
        width: 100%;
        border-radius: 1.0vw;
    }
    #environment-main .data-grid .table .title {
        margin: 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 700;
    }
    #environment-main .data-grid .table .table-name {
        margin: 2.0em 0 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 700;
    }
    #environment-main .data-grid .table .table-name::before {
        content: "● ";
        color: #0a4685;
    }
    #environment-main .data-grid .table p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 2.8vw;
        font-weight: 500;
    }
    #environment-main .data-grid .table .table-wrap {
        margin: 2.0vw 0 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: stretch;
        justify-content: flex-start;
        border-top: 1px solid #d4d4d4;
    }

    #environment-main .data-grid .table .table-wrap .table-office-l {
        margin: 0;
        padding: 0 0 4.0vw;
        width: 35.0vw;
        display: grid;
        grid-template-columns: 50% 50%;
        grid-template-rows: repeat( 7, 8.0vw );
        gap: 0;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > div {
        display: grid;
        place-items: center;
        font-size: 2.8vw;
        font-weight: 500;
        border-right: 1px solid #d4d4d4;
        border-bottom: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(1) {
        grid-column: span 2;
        grid-row: span 2;
        font-size: 3.2vw;
        background: #fff;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(2) {
        grid-column: span 1;
        grid-row: span 2;
        color: #fff;
        background: #ff9d00;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(3),
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(4) {
        grid-column: span 1;
        grid-row: span 1;
        color: #fff;
        background: #ff9d00;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(5) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #91c1e9;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(6) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #f07175;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(7) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #b6b6b6;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r {
        margin: 0;
        padding: 0 0 4.0vw;
        width: calc( 100% - 35.0vw );
        max-width: calc( 16.0vw * 8 );
        overflow-x: auto;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data {
        margin: 0;
        padding: 0;
        width: calc( 16.0vw * 8 );
        display: grid;
        grid-template-columns: repeat( 8, 16.0vw );
        grid-template-rows: repeat( 7, 8.0vw );
        gap: 0;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > div {
        display: grid;
        place-items: center;
        font-size: 3.6vw;
        font-weight: 500;
        border-right: 1px solid #d4d4d4;
        border-bottom: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(1),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(2),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(3),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(4) {
        grid-column: span 2;
        font-size: 3.2vw;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(5),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(7),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(9),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(11) {
        font-size: 3.2vw;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(6),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(8),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(10),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(12) {
        font-size: 3.2vw;
        background: #fff6e8;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(2n+13) {
        font-size: 3.2vw;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(2n+14) {
        font-size: 3.2vw;
        background: #fff6e8;
    }

    #environment-main .data-grid .table .table-wrap .table-car-railway-l {
        margin: 0;
        padding: 0 0 4.0vw;
        width: 35.0vw;
        display: grid;
        grid-template-columns: 50% 50%;
        grid-template-rows: repeat( 9, 8.0vw );
        gap: 0;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > div {
        display: grid;
        place-items: center;
        font-size: 2.8vw;
        font-weight: 500;
        border-right: 1px solid #d4d4d4;
        border-bottom: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(1) {
        grid-column: span 2;
        grid-row: span 2;
        font-size: 3.2vw;
        background: #fff;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(2) {
        grid-column: span 1;
        grid-row: span 4;
        color: #fff;
        background: #ff9d00;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(3),
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(4),
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(5),
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(6) {
        grid-column: span 1;
        grid-row: span 1;
        color: #fff;
        background: #ff9d00;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(7) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #91c1e9;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(8) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #f07175;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(9) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #b6b6b6;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r {
        margin: 0;
        padding: 0 0 4.0vw;
        width: calc( 100% - 35.0vw );
        max-width: calc( 16.0vw * 8 );
        overflow-x: auto;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data {
        margin: 0;
        padding: 0;
        width: calc( 16.0vw * 8 );
        display: grid;
        grid-template-columns: repeat( 8, 16.0vw );
        grid-template-rows: repeat( 9, 8.0vw );
        gap: 0;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > div {
        display: grid;
        place-items: center;
        font-size: 3.6vw;
        font-weight: 500;
        border-right: 1px solid #d4d4d4;
        border-bottom: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(1),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(2),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(3),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(4) {
        grid-column: span 2;
        font-size: 3.2vw;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(5),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(7),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(9),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(11) {
        font-size: 3.2vw;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(6),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(8),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(10),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(12) {
        font-size: 3.2vw;
        background: #fff6e8;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(2n+13) {
        font-size: 3.2vw;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(2n+14) {
        font-size: 3.2vw;
        background: #fff6e8;
    }

    #environment-main .training-box {
        position: relative;
        margin: 0 auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0;
    }
    #environment-main .training-box + .training-box {
        margin-top: 16.0vw;
    }
    #environment-main .training-box .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #environment-main .training-box .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #environment-main .training-box .day {
        position: relative;
        margin: 8.0vw auto 8.0vw 0;
        padding: 0 0 0 31px;
        width: 50%;
        font-size: 4.0vw;
        font-weight: 700;
    }
    #environment-main .training-box .day::before {
        position: absolute;
        content: "";
        top: calc( 50% - 13px );
        left: 0;
        width: 11px;
        height: 26px;
        background: linear-gradient( to bottom, #91c1e9 11px, transparent 11px, transparent 15px, #ff9d00 15px );
    }
    #environment-main .training-box .info {
        margin: 0;
        padding: 4.0vw 0 0;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 400;
        border-top: 1px solid #d9d9d9;
    }
    #environment-main .training-box .info.grid {
        display: grid;
        grid-template-columns: 16.0vw 1fr;
        align-items: center;
        gap: 4.0vw 0;
    }
    #environment-main .training-box .info p {
        font-weight: 500;
    }
    #environment-main .training-box .info p + p {
        margin-top: 0.8em;
    }
    #environment-main .training-box .info ul {
        margin-left: 1.5em;
    }

}


/**
 * PC用設定
 */
@media ( width >= 768px ) {

    #page-mv {
        position: relative;
        margin: 80px auto 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1512 / 400;
        background: url(../images/fv-bg_02.webp) no-repeat center bottom / 100% auto, #f8f4f2;
    }
    #page-mv.no-bg {
        background: url(../images/fv-bg_01.webp) no-repeat center / 100% auto;
    }
    #page-mv.no-bg::before {
        background: transparent;
    }
    #page-mv .breadcrumbs {
        position: relative;
        margin: 0 auto;
        padding: 20px 0;
        width: 90%;
        max-width: 1115px;
        color: #8c8c8c;
        font-size: 11px;
        font-weight: 500;
        text-align: left;
        z-index: 2;
    }
    #page-mv .breadcrumbs a {
        color: #8c8c8c;
    }
    #page-mv .breadcrumbs span {
        color: var(--fg-color);
    }
    #page-mv .page-mv-box {
        position: relative;
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 1115px;
        height: calc( 100% - 60px );
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        z-index: 2;
    }
    #page-mv.page-center .page-mv-box {
        align-items: center;
    }
    #page-mv .page-mv-box .subtitle {
        margin: 0;
        padding: 0.2em 1.2em;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: left;
        background: #ff9d00;
    }
    #page-mv.page-center .page-mv-box .subtitle {
        padding: 0;
        color: var(--fg-color);
        font-size: 32px;
        text-align: center;
        background: transparent;
    }
    #page-mv .page-mv-box h1 {
        position: relative;
        margin: 0;
        padding: 20px 0 0;
        color: var(--fg-color);
        font-size: 48px;
        font-weight: 500;
        text-align: left;
    }
    #page-mv.page-center .page-mv-box h1 {
        padding: 0;
        text-align: center;
    }
    #page-mv .page-mv-box p {
        margin: 2.0em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
    }
    #page-mv.page-center .page-mv-box p {
        text-align: center;
    }

    #page-main {
        margin: 0 auto;
        padding: 80px max( 5.0vw, calc( 50.0vw - 420px ) );
        width: 100%;
        background: #f8f4f2;
    }

    #page-main p {
        position: relative;
        z-index: 1;
    }
    #page-main iframe {
        display: block;
        margin: 80px auto 0;
        width: 100%;
        height: auto;
        max-height: 100vh;
        aspect-ratio: 640 / 480;
        border: 0;
    }

    #faq-wrap {
        margin: 0 auto;
        padding: 80px max( 5%, calc( 50vw - 556px ) );
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        background: #f8f4f2;
    }
    #faq-wrap #faq-main {
        position: relative;
        margin: 0;
        padding: 0;
        width: calc( 100% - 260px );
        z-index: 1;
    }
    #faq-wrap #faq-sidebar {
        position: sticky;
        top: 120px;
        margin: 0;
        padding: 0;
        width: 260px;
        z-index: 1;
    }

    #faq-main section + section {
        margin-top: 80px;
    }
    #faq-main h2 {
        position: relative;
        margin: 0;
        padding: 48px 0 0;
        font-size: 32px;
        font-weight: 500;
        text-align: left;
    }
    #faq-main h2 span {
        margin-left: 0.5em;
        font-size: 18px;
        font-weight: 500;
    }
    #faq-main h2::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 35px;
        height: 38px;
        background: url(../images/icon-cube.svg) no-repeat center / contain;
    }
    #faq-main .pic {
        margin: 40px auto 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #faq-main .half-pic {
        margin: 40px auto 0 0;
        padding: 0;
        width: 50%;
        height: auto;
    }
    #faq-main :is(.pic,.half-pic) img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 8px;
    }
    #faq-main p {
        margin: 1.5em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: 1.7;
    }
    #faq-main .faq-box {
        margin: 30px auto 0;
        padding: 20px 30px;
        background: #fff;
        border-radius: 16px;
    }
    #faq-main .faq-box + .faq-box {
        margin-top: 10px;
    }
    #faq-main .faq-box .faq-q {
        margin: 0;
        padding: 0;
        font-size: 18px;
        font-weight: 500;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 20px;
    }
    #faq-main .faq-box .faq-q::before {
        display: grid;
        place-items: center;
        content: "Q";
        width: 2.0em;
        flex: 0 0 2.0em;
        height: auto;
        aspect-ratio: 1 / 1;
        color: #fff;
        font-size: 20px;
        font-weight: 700;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        background: #91c1e9;
        border-radius: 100%;
    }
    #faq-main .faq-box .faq-a {
        margin: 20px 0 0;
        padding: 0;
        font-size: 18px;
        font-weight: 400;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 20px;
    }
    #faq-main .faq-box .faq-a::before {
        display: grid;
        place-items: center;
        content: "A";
        width: 2.0em;
        flex: 0 0 2.0em;
        height: auto;
        aspect-ratio: 1 / 1;
        color: #fff;
        font-size: 20px;
        font-weight: 700;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        background: #ff9d00;
        border-radius: 100%;
    }

    #faq-sidebar a {
        display: block;
        color: #8c8c8c;
        font-size: 14px;
        font-weight: 700;
        text-align: left;
        transition: opacity 0.3s ease-out, color 0.5s ease-out;
    }
    #faq-sidebar a + a {
        margin-top: 12px;
    }
    #faq-sidebar a.active {
        color: #ff6f05;
    }

    #work-mv {
        margin: 80px auto 0;
        padding: 0;
        width: 100%;
        height: auto;
        overflow: hidden;
        background: url(../images/fv-bg_01.webp) no-repeat center / 100% auto;
    }
    #work-mv.work-child {
        aspect-ratio: 1512 / 400;
        background: url(../images/fv-bg_02.webp) no-repeat center bottom / 100% auto, #f8f4f2;
    }
    #work-mv .breadcrumbs {
        margin: 0 auto;
        padding: 20px 0;
        width: 90%;
        max-width: 1115px;
        color: #8c8c8c;
        font-size: 11px;
        font-weight: 500;
        text-align: left;
    }
    #work-mv.work-child .breadcrumbs {
        max-width: 1200px;
    }
    #work-mv.people .breadcrumbs {
        max-width: 1216px;
    }
    #work-mv.work .breadcrumbs {
        max-width: 1212px;
    }
    #work-mv .breadcrumbs a {
        color: #8c8c8c;
    }
    #work-mv .breadcrumbs span {
        color: var(--fg-color);
    }
    #work-mv .work-mv-box {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 1115px;
    }
    #work-mv.work-child .work-mv-box {
        max-width: 1200px;
        height: calc( 100% - 60px );
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    #work-mv .work-mv-box .subtitle {
        margin: 0;
        padding: 0.2em 1.2em;
        width: max-content;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        background: #ff9d00;
    }
    #work-mv .work-mv-box h1 {
        position: relative;
        margin: 0;
        padding: 20px 0 0;
        font-size: 32px;
        font-weight: 500;
        text-align: center;
    }
    #work-mv .work-mv-box h1::before {
        position: absolute;
        content: "";
        top: 0;
        left: calc( 50% - 20.5px );
        width: 41px;
        height: 20px;
        background: url(../images/icon-hexagon.svg) no-repeat center / contain;
    }
    #work-mv.work-child .work-mv-box h1 {
        padding: 0;
        font-size: 48px;
        text-align: left;
    }
    #work-mv.work-child .work-mv-box h1::before {
        content: none;
    }
    #work-mv .work-mv-box p {
        margin: 2.0em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: center;
        line-height: 1.8;
    }
    #work-mv.work-child .work-mv-box p {
        margin: 1.0em 0 0;
        font-size: 24px;
        font-weight: 500;
        text-align: left;
    }
    #work-mv.people .work-mv-pic {
        max-width: 1216px;
    }
    #work-mv.work .work-mv-pic {
        max-width: 1212px;
    }
    #work-mv .work-mv-pic {
        margin: 40px auto 0;
        padding: 0;
        width: 90%;
        max-width: 1115px;
        height: auto;
    }
    #work-mv .work-mv-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 8px;
    }

    main {
        margin: 0 auto;
        width: 100%;
    }

    #job {
        margin: 0 auto;
        padding: 70px 0;
        width: 100%;
    }
    #job .job-wrap {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 1212px;
    }
    #job .en-title {
        position: relative;
        margin: 0;
        font-size: 55px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        text-align: left;
    }
    #job .en-title::before {
        position: absolute;
        content: "";
        bottom: calc( 100% + 20px );
        left: 0;
        width: 26px;
        height: 11px;
        background: linear-gradient( to right, #91c1e9 11px, transparent 11px, transparent 15px, #ff9d00 15px );
    }
    #job .ja-title {
        margin: 0;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.0;
        text-align: left;
    }
    #job .job-grid {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 0 58px;
    }
    #job .job-grid .job-item {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 3;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #job .job-grid .job-item .pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 913 / 823;
        border-radius: 8px;
        overflow: hidden;
    }
    #job .job-grid .job-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        filter: brightness(80%);
        transition: filter 0.3s ease-out, transform 0.3s ease-out;
    }
    #job .job-grid .job-item .pic figcaption {
        position: absolute;
        left: 5%;
        bottom: 5%;
        width: 90%;
        color: #fff;
        font-size: 22px;
        font-weight: 500;
    }
    #job .job-grid .job-item .pic figcaption::after {
        position: absolute;
        content: "";
        bottom: 0;
        right: 0;
        width: 1.2em;
        height: auto;
        aspect-ratio: 1 / 1;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        background: url(../images/icon-arrow.svg) no-repeat center / contain;
    }
    #job .job-grid .job-item h3 {
        margin: 0.8em 0 0;
        font-size: 17px;
        font-weight: 500;
        text-align: left;
    }
    #job .job-grid .job-item p {
        margin: 1.0em 0 0;
        font-size: 15px;
        font-weight: 400;
        text-align: left;
    }
    @media ( hover: hover ) {
        #job .job-grid .job-item:hover {
            opacity: 1.0;
        }
        #job .job-grid .job-item:hover .pic img {
            filter: brightness(100%);
            transform: scale( 1.1, 1.1 );
        }
    }

    .work-child-page-links {
        margin: 0 auto;
        padding: 54px 0 0;
        width: 90%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 48px;
    }
    .work-child-page-links > a {
        display: block;
        margin: 0;
        padding: 0;
        font-size: 18px;
        font-weight: 500;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0 6px;
    }
    .work-child-page-links > a::after {
        display: block;
        content: "";
        margin: 0;
        padding: 0;
        width: 0.5em;
        height: 0.5em;
        border-right: 2px solid #ff9d00;
        border-bottom: 2px solid #ff9d00;
        rotate: 45deg;
    }

    .work-child-wrap {
        position: relative;
        margin: 0 auto;
        padding: 80px max( 5%, calc( 50vw - 600px ) );
        width: 100%;
        background: #fff;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
    }
    .work-child-wrap + .work-child-wrap::before {
        position: absolute;
        content: "";
        top: 0;
        left: max( 5%, calc( 50% - 600px ) );
        width: 90%;
        max-width: 1200px;
        border-top: 1px solid #d9d9d9;
    }
    .work-child-wrap .work-child-main {
        margin: 0;
        padding: 0;
        width: calc( 100% - 280px - 118px );
    }
    .work-child-wrap .work-child-sidebar {
        position: sticky;
        top: 120px;
        margin: 0;
        padding: 0;
        width: 280px;
    }

    .work-child-main section + section {
        margin-top: 80px;
    }
    .work-child-main h2 {
        position: relative;
        margin: 0;
        padding: 48px 0 0;
        font-size: 32px;
        font-weight: 500;
        text-align: left;
    }
    .work-child-main h2 span {
        margin-left: 0.5em;
        font-size: 18px;
        font-weight: 500;
    }
    .work-child-main h2::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 35px;
        height: 38px;
        background: url(../images/icon-cube.svg) no-repeat center / contain;
    }
    .work-child-main .pic {
        margin: 40px auto 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main .half-pic {
        margin: 40px auto 0 0;
        padding: 0;
        width: 50%;
        height: auto;
    }
    .work-child-main :is(.pic,.half-pic) img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 8px;
    }
    .work-child-main p {
        margin: 1.5em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: 1.7;
    }
    .work-child-main .work-child-flex {
        margin: 40px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0 20px;
    }
    .work-child-main .work-child-flex .work-child-item {
        margin: 0;
        padding: 0;
        width: 50%;
    }
    .work-child-main .work-child-flex .work-child-item .icon {
        margin: 0 auto;
        padding: 0;
        width: 50%;
        height: 58px;
    }
    .work-child-main .work-child-flex .work-child-item .icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    .work-child-main .work-child-flex .work-child-item .pic {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main .work-child-flex .work-child-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main .work-child-flex .work-child-item h3 {
        margin: 0.4em 0 0;
        padding: 0;
        font-size: 20px;
        font-weight: 500;
        text-align: center;
    }
    .work-child-main .work-child-flex .work-child-item h3::before {
        content: none;
    }
    .work-child-main .work-child-flex .work-child-item p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: center;
    }
    .work-child-main .work-child-flex.resource {
        margin: 40px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .work-child-main .work-child-flex.resource .icon {
        margin: 0 auto;
        padding: 0;
        width: 136px;
        height: auto;
    }
    .work-child-main .work-child-flex.resource .pic {
        margin: 0;
        padding: 0;
        width: 30%;
        height: auto;
    }
    .work-child-main .work-child-flex.resource :is(.icon,.pic) img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    .work-child-main .work-child-flex.resource .work-child-item {
        margin: 0;
        padding: 0;
        width: calc( 100% - 136px - 80px );
    }
    .work-child-main .work-child-flex.resource .pic + .work-child-item {
        width: calc( 100% - 30% - 80px );
    }
    .work-child-main .work-child-flex.resource .work-child-item ul {
        margin: 0;
        padding: 0;
    }
    .work-child-main .work-child-flex.resource .work-child-item ul li {
        margin: 0;
        padding: 0;
        font-size: 16px;
        font-weight: 500;
        text-align: left;
    }
    .work-child-main .work-child-flex.resource .work-child-item ul li + li {
        margin-top: 0.5em;
    }
    .work-child-main .work-child-flex.workflow {
        margin: 40px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
    }
    .work-child-main .work-child-flex.workflow .work-child-item {
        margin: 0;
        padding: 0;
        width: calc( 50% - 25px );
    }
    .work-child-main .work-child-flex.workflow .work-child-item .pic {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 938 / 528;
    }
    .work-child-main .work-child-flex.workflow .work-child-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 8px;
    }
    .work-child-main .work-child-flex.workflow .work-child-item h3 {
        margin: 16px auto 0;
        padding: 0.2em 1.5em;
        width: max-content;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        background: #ff9d00;
    }
    .work-child-main .work-child-flex.workflow .work-child-item p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
    }
    .work-child-main h3 {
        margin: 2.0em 0 0;
        padding: 0;
        font-size: 18px;
        font-weight: 500;
        text-align: left;
    }
    .work-child-main h3.bar-l {
        padding-left: 0.5em;
        font-size: 24px;
        border-left: 4px solid #ff9d00;
    }
    .work-child-main h3::before {
        content: "・ ";
        color: #ff9d00;
    }
    .work-child-main h3.bar-l::before {
        content: none;
    }
    .work-child-main h3 + p {
        margin-top: 1.0em;
    }
    .work-child-main .work-child-flex + h3 {
        margin-top: 1.0em;
    }
    .work-child-main .half-pic + h3 {
        margin-top: 1.0em;
    }

    #work-office-studies p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
    }
    #work-office-studies h2 + p {
        margin-top: 48px;
    }
    #work-office-studies p + .half-pic {
        margin-top: 48px;
    }
    #work-office-studies .half-pic + h3 {
        margin-top: 10px;
    }
    #work-office-studies .work-office-flex {
        margin: 40px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0 20px;
    }
    #work-office-studies .work-office-flex .work-office-item {
        margin: 0;
        padding: 0;
        width: calc( 50% - 25px );
    }
    #work-office-studies .work-office-flex .work-office-item .pic {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 938 / 528;
    }
    #work-office-studies .work-office-flex .work-office-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 8px;
    }
    #work-office-studies .work-office-flex + h3 {
        margin-top: 1.0em;
    }

    .work-child-sidebar a {
        display: block;
        color: #8c8c8c;
        font-size: 14px;
        font-weight: 700;
        text-align: left;
        transition: opacity 0.3s ease-out, color 0.5s ease-out;
    }
    .work-child-sidebar a + a {
        margin-top: 12px;
    }
    .work-child-sidebar a.active {
        color: #ff6f05;
    }

    #people-main {
        margin: 0 auto;
        padding: 0;
        width: 100%;
    }

    .people-section {
        margin: 0 auto;
        padding: 80px 0;
        width: 90%;
        max-width: 1216px;
    }
    .people-section h2 {
        position: relative;
        margin: 0;
        padding: 48px 0 0;
        font-size: 32px;
        font-weight: 500;
        text-align: left;
    }
    .people-section h2::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 35px;
        height: 38px;
        background: url(../images/icon-cube.svg) no-repeat center / contain;
    }
    .people-section .people-grid {
        margin: 60px auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 65px 61px;
    }
    .people-section .people-grid .people-item {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .people-section .people-grid .people-item .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-radius: 16px;
        overflow: hidden;
    }
    .people-section .people-grid .people-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        filter: brightness(80%);
        transition: filter 0.3s ease-out, transform 0.3s ease-out;
    }
    .people-section .people-grid .people-item .attr {
        margin: 1.0em 0 0;
        padding: 0;
        width: 100%;
        font-size: 16px;
        font-weight: 500;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
    }
    @media ( hover: hover ) {
        .people-section .people-grid .people-item {
            opacity: 1.0;
        }
        .people-section .people-grid .people-item:hover .pic img {
            filter: brightness(100%);
            transform: scale( 1.1, 1.1 );
        }
    }

    .page-grid {
        margin: 60px auto 0;
        padding: 0;
        width: 90%;
        max-width: 1115px;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 65px 61px;
    }
    .page-grid .page-item {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    .page-grid .page-item .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 380 / 282;
        border-radius: 16px;
        overflow: hidden;
    }
    .page-grid .page-item .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.3s ease-out;
    }
    .page-grid .page-item .head {
        margin: 1.0em 0 0;
        padding: 0;
        width: 100%;
        font-size: 20px;
        font-weight: 700;
        display: flex;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 0 15px;
    }
    .page-grid .page-item .head::before {
        display: block;
        content: "";
        margin: 0.2em 0 0;
        padding: 0;
        width: 9px;
        height: 22px;
        background: linear-gradient( to bottom, #91c1e9 9px, transparent 9px, transparent 13px, #ff9d00 13px );
    }
    .page-grid .page-item[target="_blank"] .head::after {
        display: block;
        content: "";
        margin: 0.2em 0 0;
        padding: 0;
        width: 1.0em;
        height: auto;
        aspect-ratio: 1 / 1;
        background: url(../images/icon-newtab.svg) no-repeat center / contain;
    }
    .page-grid .page-item p {
        margin: 1.0em 0 0;
        padding: 0;
        width: 100%;
        font-size: 15px;
        font-weight: 500;
    }
    @media ( hover: hover ) {
        .page-grid .page-item {
            opacity: 1.0;
        }
        .page-grid .page-item:hover .pic img {
            filter: brightness(100%);
            transform: scale( 1.1, 1.1 );
        }
    }

    #news-main {
        position: relative;
        margin: 0 auto;
        padding: 80px 0;
        width: 100%;
        z-index: 1;
    }
    #news-main .news-item {
        margin: 0 auto;
        padding: 20px 0;
        width: 90%;
        max-width: 1112px;
        border-bottom: 1px solid #d4d4d4;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    #news-main .news-item:first-child {
        border-top: 1px solid #d4d4d4;
    }
    #news-main .news-item .date {
        margin: 0;
        padding: 0;
        width: 160px;
        color: #878787;
        font-size: 18px;
        font-weight: 400;
        font-family: 'Helvetica';
        text-align: left;
        line-height: calc( 20 / 18 );
    }
    #news-main .news-item .title {
        margin: 0;
        padding: 0;
        width: calc( 100% - 160px );
        font-size: 18px;
        font-weight: 400;
        text-align: left;
        text-decoration: underline;
        line-height: calc( 30 / 18 );
    }

    #environment-main {
        margin: 0 auto;
        padding: 80px 0;
        width: 90%;
        max-width: 1112px;
    }
    #environment-main h2 {
        position: relative;
        margin: 0;
        padding: 48px 0 0;
        font-size: 32px;
        font-weight: 500;
        text-align: left;
    }
    #environment-main h2::before {
        position: absolute;
        content: "";
        top: 0;
        left: 0;
        width: 35px;
        height: 38px;
        background: url(../images/icon-cube.svg) no-repeat center / contain;
    }
    #environment-main .environment-flex {
        margin: 40px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0 20px;
    }
    #environment-main .environment-flex .environment-item {
        margin: 0;
        padding: 0;
        width: calc( 50% - 25px );
    }
    #environment-main .environment-flex .environment-item .icon {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: 58px;
    }
    #environment-main .environment-flex .environment-item .icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    #environment-main .environment-flex .environment-item h3 {
        margin: 0.4em 0 0;
        padding: 0;
        font-size: 20px;
        font-weight: 500;
        text-align: center;
    }
    #environment-main .environment-flex .environment-item p {
        margin: 0.5em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: center;
    }
    #environment-main .pic {
        margin: 30px auto 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #environment-main .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-radius: 16px;
    }
    #environment-main section + section {
        margin-top: 80px;
    }

    #environment-main:has(.data-box) {
        max-width: 1415px;
    }
    #environment-main .data-box {
        margin: 0 auto;
        padding: 45px;
        width: 100%;
        max-width: 1415px;
        background: #e2f0fb;
        border-radius: 30px;
    }
    #environment-main .data-grid {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        max-width: 1115px;
        display: grid;
        grid-template-columns: repeat( 2, 1fr );
        gap: 20px;
    }
    #environment-main .data-grid .pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 537 / 377;
    }
    #environment-main .data-grid .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #environment-main .data-grid .table {
        margin: 0;
        padding: 20px;
        grid-column: span 2;
        background: #fff;
        width: 100%;
        border-radius: 5px;
    }
    #environment-main .data-grid .table .title {
        margin: 0;
        padding: 0;
        font-size: 18px;
        font-weight: 700;
    }
    #environment-main .data-grid .table .table-name {
        margin: 2.0em 0 0;
        padding: 0;
        font-size: 18px;
        font-weight: 700;
    }
    #environment-main .data-grid .table .table-name::before {
        content: "● ";
        color: #0a4685;
    }
    #environment-main .data-grid .table p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 14px;
        font-weight: 500;
    }
    #environment-main .data-grid .table .table-wrap {
        margin: 16px 0 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: stretch;
        justify-content: flex-start;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l {
        margin: 0;
        padding: 0 0 16px;
        width: 320px;
        display: grid;
        grid-template-columns: 130px 1fr;
        grid-template-rows: repeat( 7, 43px );
        gap: 0;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > div {
        display: grid;
        place-items: center;
        font-size: 14px;
        font-weight: 500;
        border-right: 1px solid #d4d4d4;
        border-bottom: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(1) {
        grid-column: span 2;
        grid-row: span 2;
        font-size: 17px;
        background: #fff;
        border-top: 1px solid #d4d4d4;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(2) {
        grid-column: span 1;
        grid-row: span 2;
        color: #fff;
        background: #ff9d00;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(3),
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(4) {
        grid-column: span 1;
        grid-row: span 1;
        color: #fff;
        background: #ff9d00;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(5) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #91c1e9;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(6) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #f07175;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-l > :nth-child(7) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #b6b6b6;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r {
        margin: 0;
        padding: 0 0 16px;
        width: calc( 100% - 320px );
        max-width: calc( 90px * 8 );
        overflow-x: auto;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data {
        margin: 0;
        padding: 0;
        width: calc( 90px * 8 );
        display: grid;
        grid-template-columns: repeat( 8, 90px );
        grid-template-rows: repeat( 7, 43px );
        gap: 0;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > div {
        display: grid;
        place-items: center;
        font-size: 18px;
        font-weight: 500;
        border-right: 1px solid #d4d4d4;
        border-bottom: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(1),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(2),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(3),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(4) {
        grid-column: span 2;
        font-size: 17px;
        background: #fff;
        border-top: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(5),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(7),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(9),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(11) {
        font-size: 17px;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(6),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(8),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(10),
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(12) {
        font-size: 17px;
        background: #fff6e8;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(2n+13) {
        font-size: 17px;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-office-r .table-data > :nth-child(2n+14) {
        font-size: 17px;
        background: #fff6e8;
    }

    #environment-main .data-grid .table .table-wrap .table-car-railway-l {
        margin: 0;
        padding: 0 0 16px;
        width: 320px;
        display: grid;
        grid-template-columns: 130px 1fr;
        grid-template-rows: repeat( 9, 43px );
        gap: 0;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > div {
        display: grid;
        place-items: center;
        font-size: 14px;
        font-weight: 500;
        border-right: 1px solid #d4d4d4;
        border-bottom: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(1) {
        grid-column: span 2;
        grid-row: span 2;
        font-size: 17px;
        background: #fff;
        border-top: 1px solid #d4d4d4;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(2) {
        grid-column: span 1;
        grid-row: span 4;
        color: #fff;
        background: #ff9d00;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(3),
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(4),
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(5),
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(6) {
        grid-column: span 1;
        grid-row: span 1;
        color: #fff;
        background: #ff9d00;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(7) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #91c1e9;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(8) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #f07175;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-l > :nth-child(9) {
        grid-column: span 2;
        grid-row: span 1;
        color: #fff;
        background: #b6b6b6;
        border-left: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r {
        margin: 0;
        padding: 0 0 16px;
        width: calc( 100% - 320px );
        max-width: calc( 90px * 8 );
        overflow-x: auto;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data {
        margin: 0;
        padding: 0;
        width: calc( 90px * 8 );
        display: grid;
        grid-template-columns: repeat( 8, 90px );
        grid-template-rows: repeat( 9, 43px );
        gap: 0;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > div {
        display: grid;
        place-items: center;
        font-size: 18px;
        font-weight: 500;
        border-right: 1px solid #d4d4d4;
        border-bottom: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(1),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(2),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(3),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(4) {
        grid-column: span 2;
        font-size: 17px;
        background: #fff;
        border-top: 1px solid #d4d4d4;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(5),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(7),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(9),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(11) {
        font-size: 17px;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(6),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(8),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(10),
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(12) {
        font-size: 17px;
        background: #fff6e8;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(2n+13) {
        font-size: 17px;
        background: #fff;
    }
    #environment-main .data-grid .table .table-wrap .table-car-railway-r .table-data > :nth-child(2n+14) {
        font-size: 17px;
        background: #fff6e8;
    }

    #environment-main .training-box {
        position: relative;
        margin: 50px auto 0;
        padding: 0 0 0 40px;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0;
    }
    #environment-main .training-box::before {
        position: absolute;
        content: "";
        top: calc( 50% - 6px );
        left: 0;
        width: 12px;
        height: 12px;
        background: #a5a5a5;
        border-radius: 100%;
    }
    #environment-main .training-box .pic {
        margin: 0;
        padding: 0 30px 0 0;
        width: 25%;
        height: auto;
        flex: 0 0 25%;
    }
    #environment-main .training-box .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #environment-main .training-box .day {
        position: relative;
        margin: 0;
        padding: 0 0 0 31px;
        width: 150px;
        font-size: 18px;
        font-weight: 700;
        flex: 0 0 150px;
    }
    #environment-main .training-box .day::before {
        position: absolute;
        content: "";
        top: calc( 50% - 13px );
        left: 0;
        width: 11px;
        height: 26px;
        background: linear-gradient( to bottom, #91c1e9 11px, transparent 11px, transparent 15px, #ff9d00 15px );
    }
    #environment-main .training-box .info {
        margin: 0;
        padding: 0 0 0 60px;
        width: auto;
        font-size: 16px;
        font-weight: 400;
        border-left: 1px solid #d9d9d9;
    }
    #environment-main .training-box .info.grid {
        display: grid;
        grid-template-columns: 80px 1fr;
        align-items: center;
        gap: 20px 0;
    }
    #environment-main .training-box .info p {
        font-weight: 500;
    }
    #environment-main .training-box .info p + p {
        margin-top: 0.8em;
    }
    #environment-main .training-box .info ul {
        margin-left: 1.5em;
    }

}
