@charset "utf-8";

/*================================
Layout
================================*/
@media screen and (min-width: 1024px) and (max-width: 1619px) {
    html {
        scroll-padding-top: 8.889vw;
    }
}

@media screen and (max-width: 1023px) {
    html {
        scroll-padding-top: 20.513vw;
    }
    .w1800 {
        width: 100%;
        max-width: 1840px;
        margin-inline: auto;
        padding-inline: 5.128vw;
    }

    .w1400 {
        width: 100%;
        max-width: 1440px;
        margin-inline: auto;
        padding-inline: 5.128vw;
    }

    .w1100 {
        width: 100%;
        max-width: 1140px;
        margin-inline: auto;
        padding-inline: 5.128vw;
    }
}


/*================================
Common
================================*/

/*================================
Header
================================*/
@media screen and (min-width: 1024px) {
    .header .gnav_list li a.current {
        color: #6BC711;
    }
}
@media screen and (min-width: 1024px) and (max-width: 1619px) {
    .header {
        position: fixed;
        top: 2.222vw;
        left: 0;
        width: 100%;
        padding-left: 2.222vw;
        z-index: 10;
    }

    .header .header_bar {
        display: flex;
        justify-content: space-between;
        align-items: center;
        column-gap: 1.111vw;
        height: 6.667vw;
        padding: 0 1.389vw 0 2.222vw;
        background: #FFF;
        border-radius: 3.333vw 0 0 3.333vw;
    }

    .header .logo {
        min-width: 10vw;
    }

    .header .gnav {
        flex: 1;
        display: flex;
        justify-content: flex-end;
    }

    .header .gnav_list {
        display: flex;
        align-items: center;
    }

    .header .gnav_list li a {
        display: block;
        padding: 0 1.389vw;
        font-family: "Barlow","Noto Sans JP",sans-serif;
        font-size: 1.222vw;
        font-weight: 600;
        text-align: center;
    }

    .header .gnav_list li a span {
        display: block;
        margin-top: 0.472vw;
        text-align: center;
        font-size: 0.667vw;
    }
}

@media screen and (max-width: 1023px) {
    .header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        padding-left: 0;
        z-index: 10;
    }

    .header .header_bar {
        display: flex;
        justify-content: space-between;
        align-items: center;
        column-gap: 20px;
        height: 20.513vw;
        padding: 0 5.128vw 0 5.128vw;
        background: #FFF;
        border-radius: 0 0 0 0;
    }

    .header .logo {
        min-width: 43.59vw;
    }

    .header .logo img {
        width: 43.59vw;
    }

    .header .gnav {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        overflow-y: auto;
        flex: 1;
        display: block;
        padding: 20.769vw 5.128vw;
        background: rgba(77,77,77,0.98);
        z-index: 11;
        opacity: 0;
        pointer-events: none;
        transition: all 0.3s ease;
    }

    .nonScroll .header .gnav {
        opacity: 1;
        pointer-events: all;
    }

    .header .gnav_list {
        display: block;
    }

    .header .gnav_list li a {
        display: block;
        padding: 5.128vw 5.128vw;
        font-size: 7.692vw;
        color: #FFF;
        text-align: left;
        border-top: 1px solid #C4C4C4;
    }

    .header .gnav_list li:first-of-type a {
        border-top: none;
    }

    .header .gnav_list li a span {
        display: block;
        margin-top: 2.051vw;
        text-align: left;
        font-size: 3.077vw;
        color: #6BC711;
    }
    .hamburger {
        position: absolute;
        top: 50%;
        right: 5.128vw;
        transform: translateY(-50%);
        z-index: 12;
    }
    .hamburger .hamburger_icon {
        position: relative;
        width: 8.108vw;
        height: 6.205vw;
    }
    .hamburger .hamburger_icon span {
        display: block;
        position: absolute;
        width: 100%;
        height: 0.769vw;
        background: #4D4D4D;
        transition: all 0.3s ease;
    }

    .nonScroll .hamburger .hamburger_icon span {
        background: #FFF;
    }

    .hamburger .hamburger_icon span:nth-of-type(1) {
        top: 0;
    }

    .hamburger .hamburger_icon span:nth-of-type(2) {
        top: 2.692vw;
    }

    .hamburger .hamburger_icon span:nth-of-type(3) {
        bottom: 0;
    }

    .nonScroll .hamburger .hamburger_icon span:nth-of-type(1) {
        top: 2.692vw;
        transform: rotate(-45deg);
    }

    .nonScroll .hamburger .hamburger_icon span:nth-of-type(2) {
        top: 0;
        opacity: 0;
    }

    .nonScroll .hamburger .hamburger_icon span:nth-of-type(3) {
        bottom: 2.692vw;
        transform: rotate(45deg);
    }
}

/*================================
Contents Common
================================*/
@media screen and (max-width: 1023px) {
    .section_header.section_header_type1 {
        padding-bottom: 7.179vw;
        margin-bottom: 10.256vw;
    }

    .section_header.section_header_type1:after {
        width: 14.359vw;
        height: 0.769vw;
    }

    .section_header .title .en {
        font-size: 10.256vw;
    }

    .section_header .title .jp {
        margin-top: 2.051vw;
        font-size: 3.59vw;
    }

    .news_list li a {
        position: relative;
        display: block;
        padding: 5.128vw 15.128vw 5.128vw 3.333vw;
    }

    .news_list li a:after {
        right: 2.821vw;
        width: 8.462vw;
        height: 8.462vw;
    }

    .news_list .date {
        font-size: 3.59vw;
    }

    .news_list .title {
        margin-top: 2.051vw;
        font-size: 4.103vw;
    }

    .btn .btn_more {
        width: 52.308vw;
        height: 13.333vw;
        margin: 10vw auto 0 auto;
        padding: 0 3.59vw 0 8.462vw;
        font-size: 3.59vw;
    }

    .btn .btn_more:after {
        width: 8.462vw;
        height: 8.462vw;
    }

    .col2 {
        display: flex;
        justify-content: space-between;
    }

    .col2_reverse {
        flex-direction: row-reverse;
    }
}

/*================================
Home
================================*/
@media screen and (min-width: 1024px) and (max-width: 1619px) {
    .home #mv {
        height: 60vw;
        background: url(../img/home/bg_mv_pc@2x.webp) no-repeat center center;
        background-size: cover;
    }

    .home #mv .inner {
        padding: 18.944vw 2.222vw 14.722vw 14.111vw;
    }

    .home #mv .catch {
        font-family: "Barlow","Noto Sans JP",sans-serif;
        font-size: 7.778vw;
        line-height: 1;
        color: #FFF;
    }

    .home #mv .catch .message {
        display: block;
        margin-top: 3.333vw;
        font-size: 1.944vw;
        line-height: 1.57;
    }
}

@media screen and (max-width: 1023px) {
    .home #mv {
        height: 197.692vw;
        background: url(../img/home/bg_mv_sp@2x.webp) no-repeat center center;
        background-size: cover;
    }

    .home #mv .inner {
        padding: 51.538vw 0 65.385vw 10.256vw;
    }

    .home #mv .catch {
        font-family: "Barlow","Noto Sans JP",sans-serif;
        font-size: 17.949vw;
        line-height: 1.08;
        color: #FFF;
        letter-spacing: 0;
    }

    .home #mv .catch .message {
        display: block;
        margin-top: 11.538vw;
        font-size: 6.154vw;
        line-height: 1.66;
        letter-spacing: 0.15em;
    }
}

@media screen and (max-width: 1023px) {
    .home .section_main {
        padding: 15.385vw 0 15.385vw 0;
    }
}

@media screen and (max-width: 1023px) {
    .home #aboutus {
        background: url(../img/home/bg_aboutus_sp@2x.webp) no-repeat center center;
        background-size: cover;
    }

    .home #aboutus .message {
        margin-top: 13.846vw;
        text-align: center;
    }

    .home #aboutus .message .catch {
        margin-bottom: 12.564vw;
        font-size: 7.692vw;
    }

    .home #aboutus .message p {
        font-size: 3.333vw;
    }
}

@media screen and (max-width: 1023px) {
    .home #business .col2 {
        flex-direction: column;
        row-gap: 10.256vw;
    }

    .home #business .col2 .item:first-of-type {
        width: 100%;
        padding-left: 0;
    }

    .home #business .col2 .item:nth-of-type(2) picture {
        flex: 1;
        display: block;
        width: 100%;
        max-width: 100%;
        margin-inline: auto;
        text-align: center;
    }

    .home #business .col2 .item:nth-of-type(2) picture img {
        width: 100%;
    }
    .home #business .section_header.section_header_type1.section_header_left .title {
        text-align: center;
    }
    .home #business .section_header.section_header_type1.section_header_left:after {
        left: 50%;
        transform: translateX(-50%);
    }
}

@media screen and (max-width: 1023px) {
    .home .section_main .message p {
        font-size: 3.59vw;
        line-height: 2;
    }
}

@media screen and (max-width: 1023px) {
    .home #service {
        padding-bottom: 0;
    }
    .home #service .col2 {
        flex-direction: column;
    }

    .home #service .col2 .item:first-of-type {
        width: 100%;
        padding-right: 0;
    }

    .home #service .section_header.section_header_type1.section_header_left .title {
        text-align: center;
    }
    .home #service .section_header.section_header_type1.section_header_left:after {
        left: 50%;
        transform: translateX(-50%);
    }

    .home #service .message picture {
        display: block;
        margin-top: 10.256vw;
        margin-bottom: 8.974vw;
        text-align: center;
    }

    .home #service .col2 .item:nth-of-type(2) picture {
        display: block;
        max-width: 100%;
        margin-top: 15.385vw;
        text-align: center;
    }

    .home #service .col2 .item:nth-of-type(2) picture img {
        width: calc(100% + 10.256vw);
        transform: translate(-5.128vw);
        max-width: initial;
}
}

@media screen and (max-width: 1023px) {
    .home .company_table {
        grid-template-columns: 4.5em 1fr;
        padding: 10.256vw 8.205vw;
        border-radius: 3.846vw;
    }
    .home .company_table dt,
    .home .company_table dd {
        padding: 4.359vw 0;
        border-bottom: 1px solid #C4C4C4;
        font-size: 3.59vw;
        line-height: 1.8;
    }

    .home .company_table dt {
        font-weight: 700;
        color: #6BC711;
    }

    .home .company_table dd {
        padding-left: 5.897vw;
    }

    .home .company_table .board li {
        display: flex;
    }

    .home .company_table .board li .position {
        width: 7.5em;
    }
}

@media screen and (max-width: 1023px) {
    .home #contact {
        padding-top: 0;
        padding-bottom: 0;
    }

    .home #contact .inner {
        padding-top: 15.385vw;
        padding-bottom: 15.385vw;
        background: url(../img/home/bg_contact_sp@2x.webp) no-repeat center center;
        background-size: cover;
    }

    .home #contact .tel .responsible {
        font-size: 3.59vw;
    }

    .home #contact .tel .number {
        margin-top: 1.282vw;
        font-size: 10.256vw;
    }

    .home #contact .tel .time {
        margin-top: 1.282vw;
        font-size: 5.128vw;
    }
}

@media screen and (max-width: 1023px) {
    .home #recruit {
        background: #F2F3F4;
    }
}

/*================================
Page Common
================================*/
@media screen and (max-width: 1023px) {
    body:not(.home) #mv {
        height: 66.923vw;
    }

    body:not(.home) #mv .inner {
        padding-top: 29.487vw;
    }

    body:not(.home) #mv .title {
        position: relative;
        padding-bottom: 7.179vw;
        margin-bottom: 10.256vw;
        text-align: center;
        color: #FFF;
    }

    body:not(.home) #mv .title:after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 14.359vw;
        height: 0.769vw;
        background: #FFF;
    }

    body:not(.home) #mv .title .en {
        font-family: "Barlow","Noto Sans JP",sans-serif;
        font-size: 10.256vw;
        font-weight: 600;
        line-height: 1.2;
        word-break: break-all;
    }

    body:not(.home) #mv .title .jp {
        margin-top: 2.051vw;
        font-size: 3.59vw;
        font-weight: bold;
        line-height: 0.75;
    }

    .breadcrumbs {
        display: flex;
        align-items: center;
        padding-block: 5.128vw 0;
    }

    .breadcrumbs .item,
    .breadcrumbs .item a {
        font-size: 2.564vw;
    }

    .breadcrumbs div:has(a):after {
        content: "＞";
        display: inline-block;
        margin: 0 1.026vw;
    }

    #contents {
        margin-top: 14.872vw;
    }
}

/*================================
NEWS
================================*/
@media screen and (max-width: 1023px) {
    body:not(.home) #mv {
        background: url(../img/news/bg_mv_news_sp@2x.webp) no-repeat center center;
        background-size: cover;
    }

    .pager {
        margin-top: 10.256vw;
    }

    .pager ol {
        display: flex;
        align-items: center;
        justify-content: center;
        column-gap: 3.59vw;
        list-style: none;
    }

    .pager ol a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 8.205vw;
        height: 8.205vw;
        font-family: "Barlow","Noto Sans JP",sans-serif;
        font-size: 3.846vw;
        border: 1px solid #909090;
        border-radius: 50%;
    }

    .pager ol .current a {
        background: #4D4D4D;
        border: 1px solid #4D4D4D;
        color: #FFF;
    }

    .pager .back a {
        display: block;
        width: 8.205vw;
        height: 8.205vw;
        margin-right: 3.846vw;
        background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5Ljg4NCIgaGVpZ2h0PSIxNi45NDEiIHZpZXdCb3g9IjAgMCA5Ljg4NCAxNi45NDEiPiA8cGF0aCBpZD0i44OR44K5XzE1NyIgZGF0YS1uYW1lPSLjg5HjgrkgMTU3IiBkPSJNOTI1OS4yMzItOTA2bDcuNzYzLDcuNzYzLTcuNzYzLDcuNzYzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MjY4LjQwOSAtODg5Ljc2Nikgcm90YXRlKDE4MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzRkNGQ0ZCIgc3Ryb2tlLXdpZHRoPSIyIi8+PC9zdmc+");
        background-position: center center;
        background-repeat: no-repeat;
    }

    .pager .next a {
        display: block;
        width: 8.205vw;
        height: 8.205vw;
        margin-left: 3.846vw;
        background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5Ljg4NCIgaGVpZ2h0PSIxNi45NDEiIHZpZXdCb3g9IjAgMCA5Ljg4NCAxNi45NDEiPiA8cGF0aCBpZD0i44OR44K5XzE1NyIgZGF0YS1uYW1lPSLjg5HjgrkgMTU3IiBkPSJNOTI1OS4yMzItOTA2bDcuNzYzLDcuNzYzLTcuNzYzLDcuNzYzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MjY4LjQwOSAtODg5Ljc2Nikgcm90YXRlKDE4MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzRkNGQ0ZCIgc3Ryb2tlLXdpZHRoPSIyIi8+PC9zdmc+");
        background-position: center center;
        background-repeat: no-repeat;
        transform: rotate(180deg);
    }

    .news_meta {
        margin-top: 2.564vw;
        color: #C4C4C4;
        font-size: 2.564vw;
    }

    .news_detail h2 {
        font-size: 6.667vw;
        text-align: center;
    }

    .news_detail p,
    .news_detail picture {
        display: block;
        margin-top: 10.256vw;
    }

    .news_detail .btn_more {
        margin-top: 15.385vw;
    }
}


/*================================
Footer
================================*/
@media screen and (max-width: 1023px) {
    body:not(.home) .footer {
        margin-top: 10.256vw;
    }
    .footer .inner {
        padding: 15.128vw 5.128vw 13.333vw;
    }

    .footer .inner .copyright {
        margin-top: 7.692vw;
        font-size: 2.564vw;
    }
}
