@charset "UTF-8";

.p-front__mv-nonemask-news {
    display: none;
}

.l-footer__row .col-nav {
    width: 60vw;
    max-width: 650px;
}

/* 新規追加クラス */
.l-footer__nav .wrap {
    display: flex;
    column-gap: 28px;
    row-gap: 17px;
}




.l-footer__link {
    margin-top: 33px;
}

@media screen and (max-width: 991px) {

    /* 新規追加クラス */
    .l-footer__nav .wrap {
        flex-direction: column;
    }
}

.l-footer__nav .col ul li a {
    font-size: 1.3rem !important;
}

/* 新規追加クラス */
.l-footer__nav .col ul li.bold a {
    font-size: 1.6rem !important;
    font-weight: 700;
}



.p-page__entry .entrywrap {
    display: flex;
    row-gap: 30px;
    column-gap: 20px;
    margin-top: 20px
}

@media screen and (max-width: 991px) {
    .p-page__entry .entrywrap {
        flex-direction: column
    }
}

.p-page__entry .entrywrap h3 {
    color: #0770ce
}

.p-page__entry .entrywrap .col,
.p-page__entry .entrywrap .p-page__job-flow .col .forwardarrow,
.p-page__job-flow .col .p-page__entry .entrywrap .forwardarrow {
    width: calc((100% - 30px)/2)
}

@media screen and (max-width: 991px) {

    .p-page__entry .entrywrap .col,
    .p-page__entry .entrywrap .p-page__job-flow .col .forwardarrow,
    .p-page__job-flow .col .p-page__entry .entrywrap .forwardarrow {
        width: 100%
    }
}

.p-page__entry .entrywrap .flex {
    display: flex
}

@media screen and (max-width: 480px) {
    .p-page__entry .entrywrap .flex {
        flex-direction: column
    }
}

.p-page__entry .entrywrap hr {
    border: 1px solid rgba(215, 215, 215, .5019607843);
    margin-top: 15px;
    margin-bottom: 15px
}

.p-page__entry .entrywrap span {
    font-weight: 700;
    min-width: 80px
}

.p-page__entry.info {
    border-top: 1px solid #d6d6d6;
    padding-top: 50px;
    margin-top: 77px;
    text-align: center
}

.p-page__entry.info p {
    text-align: center
}

.p-page__entry.info .tel {
    font-size: clamp(3.5rem, 3vw, 4.5rem);
    font-weight: 500;
    margin-top: 14px !important;
    margin-bottom: 21px !important
}

.what-anchor {
    position: absolute;
    top: calc(clamp(105px, 15vw, 234px) * -1);
}


/* 新規セクション追加にともなう新規クラス追加 */
.piechartwrap {
    display: flex;
    flex-wrap: wrap;
    column-gap: 30px;
    max-width: 700px;
    margin: 0 auto;
    margin-bottom: 4px;
    row-gap: 6px;
    justify-content: center;
}

.piechartwrap h3 {
    width: 100%;
    text-align: center;
}

.piechartwrap .col {
    width: calc((100% - 60px) / 3);
    background-color: transparent;
    padding: 0;
}

.piechartwrap .col p {
    text-align: center;
    margin-top: 11px !important;
    font-size: 1.7rem;
    font-weight: 500;
}

@media screen and (max-width: 640px) {

    .piechartwrap .col p {
        font-size: 1.5rem;
    }
}

@media screen and (max-width: 480px) {

    .piechartwrap .col {
        width: calc((100% - 60px) / 2);
    }
}




/* WORKSTYLEページ追加CSS */


.p-page__workstyle-dev h4 {
    position: relative;
    padding-left: 22px
}

.p-page__workstyle-dev h4::after {
    content: "";
    position: absolute;
    width: 15px;
    height: 15px;
    border-radius: 100%;
    background-color: #0094ff;
    left: 0;
    top: 5px;
}

.p-page__workstyle-dev h3.bartype::after {
    display: none;
}

.p-page__workstyle-dev .row {
    display: flex;
    column-gap: 50px;
    flex-wrap: wrap
}

.p-page__workstyle-dev .wrap {
    display: flex;
    column-gap: 50px;
    flex-wrap: wrap;
    margin-top: 35px;
    row-gap: 24px
}

@media screen and (max-width: 991px) {
    .p-page__workstyle-dev .wrap {
        margin-top: 0px
    }
}

.p-page__workstyle-dev .wrap-2 {
    display: flex;
    row-gap: 30px;
    column-gap: 30px;
    flex-wrap: wrap;
    margin-top: 35px
}

@media screen and (max-width: 991px) {
    .p-page__workstyle-dev .wrap-2 {
        margin-top: 0px
    }
}

.p-page__workstyle-dev .col {
    width: calc((100% - 30px)/2);
    background-color: #f1f1f1
}

@media screen and (max-width: 640px) {
    .p-page__workstyle-dev .col {
        width: 100%
    }
}

.p-page__workstyle-dev ul {
    margin-top: 35px;
    padding-left: 1.4rem
}

.p-page__workstyle-dev ul li {
    font-size: 1.5rem;
    line-height: 1.9em;
    list-style: disc
}

.p-page__workstyle-dev ul li span {
    color: #0770ce;
    font-weight: 600
}



.p-page__workstyle-benefits {
    display: flex;
    flex-wrap: wrap;
    column-gap: 25px;
    row-gap: 25px
}

.p-page__workstyle-benefits .txt {
    text-align: center;
    font-size: 2rem;
    font-weight: 500
}

.p-page__workstyle-benefits .txt span.num {
    font-size: 6rem;
    font-weight: 600;
    line-height: .9em;
    color: #0770ce
}

@media screen and (max-width: 991px) {
    .p-page__workstyle-benefits .txt span.num {
        font-size: 5rem
    }
}

.p-page__workstyle-benefits .wrap {
    margin-bottom: 10px !important;
    min-height: 115px;
    display: flex;
    flex-direction: column;
    justify-content: center
}

.p-page__workstyle-benefits .item {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    min-width: 16.5rem;
    margin: 0 auto
}

.p-page__workstyle-benefits .annotation {
    font-size: 1.4rem
}

.p-page__workstyle-benefits .col {
    width: calc((100% - 75px)/4);
    padding: 30px 18px
}

@media screen and (max-width: 991px) {
    .p-page__workstyle-benefits .col {
        width: calc((100% - 25px)/2)
    }
}

@media screen and (max-width: 640px) {
    .p-page__workstyle-benefits .col {
        width: 100%
    }
}

.p-page__workstyle-benefits .col3 {
    width: calc((100% - 50px)/3);
    padding: 30px
}

@media screen and (max-width: 991px) {
    .p-page__workstyle-benefits .col3 {
        width: calc((100% - 25px)/2)
    }
}

@media screen and (max-width: 640px) {
    .p-page__workstyle-benefits .col3 {
        width: 100%
    }
}

.p-page__workstyle-benefits h4 {
    text-align: center;
    font-size: 2rem;
    line-height: 1.4em;
    border-bottom: 1px solid #b8b8b8;
    padding-bottom: 28px
}

@media screen and (max-width: 991px) {
    .p-page__workstyle-benefits h4 {
        font-size: 1.7rem
    }
}

.p-page__workstyle-benefits .txtwrap {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 163px
}

@media screen and (max-width: 640px) {
    .p-page__workstyle-benefits .txtwrap {
        min-height: auto
    }
}

.p-page__workstyle-benefits p {
    text-align: center
}

.p-page__workstyle-benefits .emphasis {
    font-size: 2.3rem;
    font-weight: 600;
    line-height: 1.5em;
    color: #0770ce
}

@media screen and (max-width: 991px) {
    .p-page__workstyle-benefits .emphasis {
        font-size: 2rem
    }
}

/* TOPページ追加CSS */

.l-front__section-mv {
    height: 100dvh;
    margin-bottom: 0px;
}



.l-front__section,
.l-front__section-entry {
    height: clamp(600px, 85dvh, 900px);
}

@media screen and (max-width: 991px) {

    .l-front__section,
    .l-front__section-entry {
        height: auto;
    }
}

.l-front__section-2nd {
    position: relative;
    background-color: #0770ce;
    display: flex;
    align-items: center;
    overflow-x: hidden;
    z-index: 111;
    overflow-x: hidden;
    padding-top: 100px;
    height: clamp(600px, 85dvh, 1000px)
}



@media screen and (max-width: 991px) {

    .l-front__section-2nd {
        height: auto;
        padding-top: 100px;
        padding-bottom: 100px
    }
}



@media screen and (max-width: 640px) {

    .l-front__section-2nd {
        height: auto;
        padding-top: 50px;
        padding-bottom: 50px
    }
}


.p-front__topmessage .president {
    width: 30%
}

@media screen and (max-width: 991px) {
    .p-front__topmessage .president {
        width: 100%;
        max-width: 300px;
        margin: 0 auto
    }
}

.p-front__topmessage .inner {
    justify-content: space-between
}

@media screen and (max-width: 991px) {
    .p-front__topmessage .inner {
        align-items: flex-start;
        flex-direction: column;
        justify-content: flex-start;
        row-gap: 45px
    }
}

.p-front__topmessage .presidenttxt {
    width: 65%
}

@media screen and (max-width: 991px) {
    .p-front__topmessage .presidenttxt {
        width: 100%
    }
}



/* TOPページ追加CSS第2弾 */

.icon-scroll-arrow {
    width: 7px;
    height: 7px;
    border: 1px solid #0770ce;
    border-top: 0;
    border-left: 0;
    transform: rotate(45deg);
    position: relative;
    bottom: 8px;
    animation: scrollicon 2s ease infinite
}

@keyframes scrollicon {
    0% {
        opacity: 0;
        bottom: 40px
    }

    40% {
        bottom: 8px;
        opacity: 1
    }

    70% {
        opacity: 1
    }

    100% {
        opacity: 0
    }
}

.icon-scroll-line {
    width: 1px;
    height: 40px;
    background-color: #0770ce;
    transform-origin: top;
    animation: scrollline 2s ease infinite
}

@keyframes scrollline {
    0% {
        opacity: 1;
        transform: scaleY(0);
        transform-origin: top
    }

    40% {
        opacity: 1;
        transform: scaleY(100%);
        transform-origin: top
    }

    41% {
        transform-origin: bottom
    }

    100% {
        opacity: 0;
        transform: scaleY(0);
        transform-origin: bottom
    }
}

.icon-scroll-wrap {
    display: flex;
    flex-direction: column;
    align-items: center
}

.icon-scroll-row {
    position: absolute;
    left: auto;
    right: 3%;
    margin: 0 auto;
    bottom: 35px;
    display: flex;
    align-items: center;
    column-gap: 13px;
    flex-direction: column;
    row-gap: 5px
}

@media screen and (max-width: 640px) {
    .icon-scroll-row {
        display: none
    }
}

.icon-scroll-txt {
    text-align: center;
    font-family: "Source Sans 3", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 1px;
    color: #0770ce
}

@keyframes scrolltxt {
    0% {
        opacity: 1
    }

    49% {
        opacity: 1
    }

    65% {
        opacity: 0
    }

    100% {
        opacity: 1
    }
}

.p-front__mv {
    position: relative;
    min-height: inherit;
    height: 100%;
}

.p-front__mv-nonemask {
    position: absolute;
    bottom: 8dvh;
}

.p-front__mv-nonemask h1 {
    font-size: clamp(3.5rem, 3.7vw, 6rem);
}

@media screen and (max-width: 640px) {
    .p-front__mv-nonemask h1 {
        font-size: clamp(3rem, 6vw, 5.5rem);
    }
}

@media screen and (max-width: 640px) {
    .l-front__section-mv {
        height: 85dvh;
    }
}