@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400..700&display=swap');

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

::before,
::after {
    box-sizing: inherit;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    width: 100%;
    margin: auto;
}

img {
    max-width: 100%;
}

a {
    text-decoration: none;
    transition: 0.3s all;
}

.inblock {
    display: inline-block;
}

.space {
    display: block;
    width: 100%;
    height: 100px;
}

.space2 {
    display: block;
    width: 100%;
    height: 100px;
}

.pad1 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.bold {
    font-weight: bold;
}

.impact {
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
}

.w960 {
    max-width: 960px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.w1200 {
    max-width: 1200px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.w1300 {
    max-width: 1300px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.w1400 {
    max-width: 1400px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.w1500 {
    max-width: 1500px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.w1600 {
    max-width: 1600px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.bg-gray {
    background-color: #FAFAFA;
}

.h-17 { line-height: 1.7; }
.h-18 { line-height: 1.8; }

.pb-50 { padding-bottom: 50px; }

@media screen and (max-width: 768px) {
    .space { height: 80px; }
    .space2 { height: 80px; }
    .h-17 { line-height: 1.6; }
    .h-18 { line-height: 1.7; }
    .pb-50 { padding-bottom: 40px; }
}

@media screen and (max-width: 480px) {
    body {
        font-size: 15px;
    }
    .space {
        height: 50px;
    }
    .space2 {
        height: 50px;
    }
    .pb-50 { padding-bottom: 30px; }
}


/***********************************************
* 共通
************************************************/
.ttl01 {
    font-size: 34px;
    font-weight: bold;
    line-height: 1.6;
    margin-bottom: 20px;
}

.ttl02 {
    width: 100%;
    position: relative;
    font-size: 30px;
    font-weight: 500;
    padding-bottom: 20px;
    margin-bottom: 30px;
}
.ttl02::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    margin: auto;
    background-color: #D3DECE;
}
.ttl02::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 120px;
    height: 2px;
    margin: auto;
    background-color: #37A602;
}
.ttl03 .en {
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    font-size: 55px;
    line-height: 1;
}
.ttl03.white {
    text-align: center;
    color: white;
}
.ttl04 {
    font-size: 29px;
    font-weight: bold;
    margin-top: 40px;
    margin-bottom: 40px;
}
.ttl04 span {
    font-weight: bold;
}
.ttl05 {
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    font-size: 88px;
    line-height: 1;
}
.ttl06 {
    position: relative;
    font-size: 30px;
    font-weight: 500;
    text-align: center;
    padding-bottom: 25px;
    margin-bottom: 40px;
}
.ttl06::before {
    position: absolute;
    content: '';
    width: 80px;
    height: 4px;
    background-color: #37A602;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.table1 {
    max-width: 1080px;
    width: 100%;
    margin: auto;
    border-top: solid 1px #E0E0E0;
    border-left: solid 1px #E0E0E0;
}
.table1 th {
    background-color: #FAFAFA;
    border-right: solid 1px #E0E0E0;
    border-bottom: solid 1px #E0E0E0;
    font-weight: 500;
    padding: 25px 10px 25px 22px;
    text-align: left;
    vertical-align: middle;
    width: 20%;
}
.table1 td {
    border-right: solid 1px #E0E0E0;
    border-bottom: solid 1px #E0E0E0;
    padding: 25px 10px 25px 22px;
    width: 80%;
}

.submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 340px;
    min-height: 70px;
    background-color: black;
    border-radius: 50px;
    color: white;
    font-weight: 500;
    margin: auto;
}
.submit:hover {
    background-color: #37A602;
}

@media screen and (max-width: 900px) {
    .ttl01 {
        font-size: 30px;
    }
}
@media screen and (max-width: 768px) {
    .ttl01 {
        font-size: 26px;
    }
    .ttl02 {
        padding-bottom: 10px;
        margin-bottom: 20px;
        font-size: 26px;
    }
    .ttl04 {
        font-size: 24px;
    }
    .ttl05 {
        font-size: 60px;
        background-position: center 140px;
    }
    .ttl06 {
        font-size: 24px;
    }
    .table1 tr {
        display: flex;
        flex-wrap: wrap;
    }
    .table1 th {
        width: 100%;
        padding: 10px 10px 10px 15px;
    }
    .table1 td {
        width: 100%;
        padding: 12px 10px 12px 20px;
    }
}
@media screen and (max-width: 480px) {
    .ttl01 {
        font-size: 20px;
    }
    .ttl01 br {
        display: none;
    }
    .ttl02 {
        font-size: 20px;
        padding-bottom: 7px;
        margin-bottom: 15px;
    }
    .ttl04 {
        font-size: 20px;
        margin-top: 25px;
        margin-bottom: 25px;
    }
    .ttl05 {
        font-size: 50px;
    }
    .ttl06 {
        font-size: 21px;
    }
}

/***********************************************
* header ヘッダー
************************************************/
.header {
    position: sticky;
    top: 0;
    background-color: white;
    z-index: 100;
    transition: 0.3s all;
}
.header.scroll {
    box-shadow: 3px 3px 5px #cfcfcf;
}
.h-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1600px;
    width: 95%;
    height: 110px;
    margin: auto;
    transition: 0.3s all;
}
/* .header.scroll .h-inner {
    height: 90px;
} */
.h-logo {
    width: 80%;
    max-width: 400px;
}
.h-logo img {
    width: 100%;
}

.h-nav {
    display: flex;
    width: 740px;
    justify-content: space-between;
}
.h-nav > li {
    height: 70px;
    position: relative;
}
.h-nav > li > a {
    position: relative;
    color: black;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}
.h-nav > li:hover,
.h-nav > li > a.current {
    color: #37A602;
}
.h-nav > li > a::before {
    position: absolute;
    content: '';
    width: 0;
    height: 1px;
    background-color: #37A602;
    left: 0;
    right: 0;
    bottom: 12px;
    margin: auto;
    transition: 0.3s all;
}
.h-nav > li > a:hover::before,
.h-nav > li > a.current::before,
.h-nav > li .inlist:hover + a::before
 {
    width: 100%;
}

.h-nav .inlist {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    text-decoration: none;
    left: -16px;
    margin: auto;
    width: 100px;
    text-align: center;
    transition: 0.5s all;
}
.h-nav .inlist a {
    color: white;
    background-color: #37A602;
    display: block;
    width: 100%;    
    padding: 10px 0px;
    border-radius: 2px;
}
.h-nav > li.has:hover .inlist {
    opacity: 1;
    z-index: 20;
    pointer-events: auto;
}

.h-img {
    width: 100%;
    height: 500px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    display: flex;
    align-items: center;
}
.h-img .ttl {
    padding-left: 10%;
    color: white;
}
.h-img .ttl .en {
    font-size: 80px;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    line-height: 1;
}
.h-img .ttl .jp {
    font-size: 19px;
    padding-top: 10px;
}
.more {
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    background-color: black;
    width: 220px;
    min-height: 58px;
    border-radius: 50px;
    margin-top: 60px;
}
.more:hover {
    background-color: #37A602;
}
.more.sp {
    display: none;
}

@media screen and (max-width: 1300px) {
    .h-nav {
        font-size: 15px;
        width: 580px;
    }
    .h-nav .inlist {
        left: -20px;
    }
}

@media screen and (max-width: 1100px) {
    .h-nav {
        display: none;
    }
    .h-inner {
        height: 90px !important;
    }
}
@media screen and (max-width: 768px) {
    .header {
        box-shadow: 1px 1px 3px #cfcfcf !important;
    }
    .h-inner {
        height: 70px !important;
    }
    .h-img {
        height: 350px;
    }
    .h-img .ttl .en {
        font-size: 60px;
    }

}
@media screen and (max-width: 480px) {
    .h-img {
        height: 270px;
    }
    .h-img .ttl .en {
        font-size: 45px;
    }
    .h-img .ttl {
        text-align: center;
        padding: 0;
        width: 100%;
    }
}

/***********************************************
* footer フッター
************************************************/
.footer {
    padding: 90px 1rem 70px;
    background-color: black;
    color: white;
}
.footer a {
    color: white;
}
.f-top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    border-bottom: solid 1px #373737;
}
.f-ttl, .f-tel, .f-mail {
    padding-bottom: 60px;
}
.f-top .t1 {
    font-size: 19px;
    margin-bottom: 20px;
}
.f-top .t2 {
    font-size: 15px;
    margin-top: 10px;
}
.f-ttl .en {
    font-size: 55px;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    line-height: 1;
}
.f-tel a {
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    font-size: 42px;
    line-height: 1;
}
.f-tel a span {
    font-size: 38px;
}
.f-mail .mail-link {
    display: block;
    background-color: white;
    color: black;
    width: 340px;
    border-radius: 50px;
    text-align: center;
    line-height: 70px;
    font-weight: 500;
}
.f-mail .mail-link .mail-icon {
    display: inline-block;
    margin-right: 10px;
    width: 24px;
    height: 18px;
    transition: 0.3s all;
    background-color: black;
    -webkit-mask-image: url(../img/common/mail.svg);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-image: url(../img/common/mail.svg);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
}
.f-mail .mail-link img {
    margin-right: 10px;
}
.f-mail .mail-link:hover {
    background-color: skyblue;
}
.tel-link {
    pointer-events: none;
}
.f-bot {
    padding-top: 75px;
    font-size: 15px;
}
.f-bot .name {
    font-size: 25px;
    font-weight: 500;
}
.f-bot .name span {
    font-size: 21px;
    font-weight: 500;
}
.f-flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.f-prof .address {
    margin-top: 20px;
    text-indent: -5px;
    line-height: 1.7;
}
.f-menu {
    display: flex;
    justify-content: space-between;
}
.f-menu ul:first-child {
    margin-right: 70px;
}
.f-menu ul li:not(:last-child) {
    margin-bottom: 15px;
}
.f-menu a:hover {
    color: skyblue;
}

.copyright {
    margin-top: 50px;
    font-size: 14px;
}

@media screen and (max-width: 1000px) {
    .f-ttl {
        width: 100%;
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    .f-top {
        display: block;
        text-align: center;
    }
    .tel-link {
        pointer-events: auto;
    }
    .f-mail .mail-link {
        max-width: 340px;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
    .f-bot {
        text-align: center;
    }
    .f-flex {
        justify-content: center;
    }
    .f-menu {
        display: none;
    }
    .copyright {
        text-align: center;
    }
    .footer {
        padding-top: 60px;
        padding-bottom: 40px;
    }
}

@media screen and (max-width: 480px) {
    .f-ttl .en {
        font-size: 40px;
    }
    .f-tel a {
        font-size: 34px;
    }
    .f-tel a span {
        font-size: 30px;
    }
    .f-bot {
        padding-top: 60px;
    }
    .f-bot .name {
        font-size: 21px;
    }
    .f-mail .mail-link {
        max-width: 300px;
        line-height: 60px;
    }
    .f-top .t1 {
        font-size: 17px;
        margin-bottom: 15px;
    }
    .f-top .t2 {
        font-size: 14px;
        margin-top: 5px;
    }
    .f-bot .name span {
        font-size: 18px;
    }
}


/***********************************************
* top index トップページ
************************************************/
.top-1 {
    padding-top: 180px;
    padding-bottom: 175px;
    background-image: url(../img/top/bg1.png);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: contain;
}
.top-1 .challenge {
    display: block;
    max-width: 897px;
    width: 92%;
    margin: auto;
}
.top-1 .challenge-sp {
    display: none;
}
.top-1 .txt {
    width: 100%;
    max-width: 1000px;
    margin: 45px auto 135px;
    font-size: 19px;
    line-height: 1.8;
}
.top1-list {
    display: flex;
    justify-content: center;
}
/* .top1-list li:nth-child(2) { transform: translateY(-55px); }
.top1-list li:nth-child(3) { transform: translateY(25px); }
.top1-list li:nth-child(4) { transform: translateY(-75px); } */

.top1-list li:nth-child(2) { margin-top: -55px; }
.top1-list li:nth-child(3) { margin-top: 25px; }
.top1-list li:nth-child(4) { margin-top: -75px; }

.top-2 {
    padding-top: 160px;
    padding-bottom: 150px;
    margin-bottom: 210px;
    background-image: url(../img/top/bg2.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top center;
}
.top2-1 {
    display: flex;
    flex-wrap: wrap;
}
.top2-1 .left {
    width: 340px;
    margin-bottom: 30px;
}
.top2-1 .right {
    margin-bottom: 70px;
}
.top2-ttl {
    font-size: 39px;
    font-weight: bold;
}

.top-2 .w1600 {
    position: relative;
}
.top2-2 .txtarea {
    width: 320px;
}
.ab-img {
    position: absolute;
    right: 0;
    top: 0;
    max-width: calc(90% - 350px);
}
.top-3 {
    /* background-color: black;
    color: white; */
    padding-top: 130px;
    padding-bottom: 130px;
}
.top3-flex {
    display: flex;
    flex-wrap: wrap;
    margin: auto;
    margin-bottom: 70px;
}
.top3-flex .left {
    width: 430px;
}
.top3-flex .right {
    font-size: 17px;
    padding-top: 20px;
}
.top-4 {
    padding-top: 150px;
    padding-bottom: 115px;
    background-image: url(../img/top/bg3.png);
    background-repeat: no-repeat;
    background-size: auto;
    background-position: center 140px;
}
.top-4 .w1300 {
    position: relative;
}
.top-4 .txtarea {
    position: relative;
    width: 100%;
    max-width: 535px;
    z-index: 2;
}
.top-4 .imgarea {
    position: absolute;
    top: -60px;
    right: 0;
    width: calc(100% - 550px);
    max-width: 690px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    z-index: 1;
}
.top-4 .imgarea img:nth-child(1) {
    width: 52.17%;
}
.top-4 .imgarea img:nth-child(2) {
    width: 44.2%;
}
.top-4 .imgarea img:nth-child(3) {
    width: 64.5%;
    margin-left: auto;
    transform: translateY(-60px);
}
.top-5 {
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
    background-image: url(../img/top/bg4.png);
    background-position: center 150px;
    background-repeat: no-repeat;
    background-size: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    padding-bottom: 165px;
}
.top-5 .imgarea {
    width: 40.6%;
    height: 680px;
    display: block;
    object-fit: cover;
}
.top-5 .txtarea {
    width: 56.4%;
    padding-top: 100px;
}
.top-5 .txtarea .ttl04 {
    max-width: 640px;
}
.top-5 .txtarea p {
    max-width: 690px;
}

@media screen and (max-width: 1920px) {
    .top-1 {
        background-size: auto;
    }
    .top-2 {
        background-size: auto;
    }
}
@media screen and (max-width: 1300px) {
    .top3-flex .left {
        width: 350px;
    }
}
@media screen and (max-width: 1150px) {
    .top-2 {
        padding-bottom: 100px;
        margin-bottom: 0;
    }
    .top2-1 .right {
        width: 100%;
    }
}
@media screen and (max-width: 1000px) {
    .top-4 .imgarea {
        width: 48%;
    }
}
@media screen and (max-width: 768px) {
    .top-1 {
        padding-top: 120px;
        padding-bottom: 110px;
    }
    .top-1 .challenge {
        display: none;
    }
    .top-1 .challenge-sp {
        display: block;
        width: 95%;
        margin: auto;
    }
    .top-1 .txt {
        line-height: 1.7;
        margin-bottom: 100px;
        font-size: 18px;
    }
    .top1-list {
        flex-wrap: wrap;
        justify-content: space-around;
    }
    .top1-list li {
        width: 48%;
    }
    .top1-list li img {
        position: relative;
        display: block;
    }
    .top1-list li:nth-child(2),
    .top1-list li:nth-child(3),
    .top1-list li:nth-child(4) {
        transform: translateY(0);
    }
    .top1-list li:nth-child(1) { margin-top: 0; transform: translate(5%, 10px) !important; z-index: 3; }
    .top1-list li:nth-child(2) { margin-top: 0; transform: translate(0, -15px) !important; z-index: 1; }
    .top1-list li:nth-child(3) { margin-top: 0; transform: translate(0, 0) !important; z-index: 2; }
    .top1-list li:nth-child(4) { margin-top: 0; transform: translate(-5%, -25px) !important; z-index: 4; }

    .top-2 {
        padding-top: 110px;
        padding-bottom: 110px;
        margin-bottom: 80px;
    }
    .top2-ttl {
        font-size: 30px;
    }
    .top2-1 .right {
        margin-bottom: 55px;
    }
    .top2-2 .txtarea {
        max-width: 410px;
        width: 80%;
    }
    .top2-2 .txtarea p {
        position: relative;
        z-index: 2;
        text-shadow: 1px 1px 1px white;
    }
    .ab-img {
        max-width: none;
        width: 50%;
        top: auto;
        bottom: 75px;
        z-index: 1;
    }
    .top3-flex .right {
        font-size: 16px;
    }
    .top-4 .txtarea p {
        text-shadow: 1px 1px 1px white;
    }
    
    .top-4 .imgarea {
        top: auto;
        bottom: -100px;
        width: 45%;
    }
    .top-5 {
        padding-bottom: 0;
        background-position: center 100px;
        background-size: cover;
    }
    .top-5 .imgarea {
        width: 80%;
        max-width: 400px;
        order: 2;
        height: auto;
        margin: 50px auto 80px;
    }
    .top-5 .txtarea {
        padding-top: 50px;
        width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .top-5 .more {
        margin-left: auto;
        margin-right: auto;
    }
}
@media screen and (max-width: 600px) {
    .top2-ttl {
        font-size: 24px;
    }
}
@media screen and (max-width: 480px) {
    .top-1 {
        padding-top: 100px;
    }
    .top-1 .txt {
        width: 90%;
        font-size: 16px;
        margin-bottom: 80px;
    }
    .more.pc {
        display: none;
    }
    .more.sp {
        display: flex;
        margin-top: 40px;
    }
    .ab-img {
        display: block;
        position: static;
        width: 80%;
        margin-left: auto;
        margin-right: auto;
    }
    .top-2 {
        padding-top: 70px;
        padding-bottom: 50px;
        margin-bottom: 50px;
    }
    .top2-1 .right {
        margin-bottom: 35px;
    }
    .top2-ttl {
        font-size: 20px;
    }
    .top2-ttl br {
        display: none;
    }
    .top2-2 .txtarea {
        width: 100%;
    }
    .top-2 .more.sp {
        margin-left: auto;
        margin-right: auto;
    }
    .top-4 {
        padding-top: 100px;
        padding-bottom: 60px;
        background-position: center 90px;
    }
    .top-4 .imgarea {
        position: static;
        width: 90%;
        margin: 25px auto 0;
    }
    .top-4 .imgarea img:nth-child(3) {
        transform: translateY(0);
        margin-top: -20px;
    }
    .top-4 .txtarea br.pc {
        display: none;
    }
    .top-4 .more.sp {
        margin-left: auto;
        margin-right: auto;
    }
}


/***********************************************
* service 事業案内
************************************************/
.ser-1 .flow {
    display: block;
    margin: auto;
    margin-top: 50px;
}

.ser-list li {
    position: relative;
    margin-top: 105px;
    padding-bottom: 105px;
}
.ser-list li .box {
    width: 96%;
    max-width: 1500px;
    margin: auto;
    display: flex;
    background-color: white;
}
.ser-list li .box .img {
    display: block;
    width: 45%;
    height: 465px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto;
}
.ser-list li .box .txt {
    width: 55%;
    padding: 60px 4% 40px;
}
.ser-list li .box .txt .inner {
    position: relative;
    z-index: 1;
}
.ser-list li .box .txt .num {
    position: absolute;
    font-size: 150px;
    right: 20%;
    top: -20px;
    line-height: 1;
    z-index: -1;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
}
.ser-list .green .num {
    color: #E6F4EA;
}
.ser-list .blue .num {
    color: #E7F4F9;
}
.ser-list .yellow .num {
    color: #FDF6D2;
}
.ser-list li .box .txt .ttl .en {
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    font-size: 26px;
    padding-bottom: 10px;
}
.ser-list li .box .txt .ttl .jp {
    font-size: 30px;
    font-weight: bold;
    padding-bottom: 20px;
}
.ser-list li .box .txt p {
    line-height: 1.8;
    max-width: 600px;
}
.ser-list li:nth-child(2n) .box .img {
    order: 2;
}
.ser-list .back {
    position: absolute;
    top: 140px;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    display: flex;
    z-index: -1;
}
.ser-list .green .back {
    background: linear-gradient(to right, #CFECDF, #E4F9EC);
}
.ser-list .blue .back {
    background: linear-gradient(to right, #E7F4F9, #CED8F0);
}
.ser-list .yellow .back {
    background: linear-gradient(to right, #FFE4D0, #FFF8CC);
}
.ser-list .back div {
    display: block;
    height: 100%;
}
.ser-list .back div:nth-child(1),
.ser-list .back div:nth-child(3) {
    width: calc(50% - 750px);
}
.ser-list .back div:nth-child(2) {
    max-width: 1500px;
    width: 100%;
}
.ser-list li:nth-child(2n) .back div:nth-child(1) {
    background-color: white;
}
.ser-list li:nth-child(2n+1) .back div:nth-child(3) {
    background-color: white;
}

@media screen and (max-width: 1500px) {
    .ser-list .back div:nth-child(1),
    .ser-list .back div:nth-child(3) { 
        width: 0;
    }
}

@media screen and (max-width: 1200px) {
    .ser-list li .box .txt {
        padding: 60px 2.5% 40px;
    }
    .ser-list li .box .txt .num {
        font-size: 120px;
    }
    .ser-list li .box .txt .ttl .en {
        font-size: 23px;
    }
    .ser-list li .box .txt .ttl .jp {
        font-size: 25px;
    }
}
@media screen and (max-width: 1100px) {
    .ser-1 br.pc {
        display: none;
    }
}
@media screen and (max-width: 900px) {
    .ser-list li .box .txt .ttl .en {
        font-size: 20px;
    }
    .ser-list li .box .txt .ttl .jp {
        font-size: 21px;
    }
}
@media screen and (max-width: 768px) {
    .ser-list li .box {
        flex-wrap: wrap;
    }
    .ser-list li .box .img {
        width: 80%;
        height: 50vw;
        order: 1;
        margin: auto;
        background-size: contain;
    }
    .ser-list li .box .txt {
        width: 100%;
        order: 2;
    }
    .ser-list li .box .txt .num {
        right: 5%;
    }
    .ser-list li .box .txt p {
        line-height: 1.7;
    }
}
@media screen and (max-width: 480px) {
    .ser-list li {
        margin-top: 60px;
        padding-bottom: 60px;
    }
    .ser-list li .box .txt {
        padding: 40px 2.5% 40px;
    }
    .ser-list li .box .txt .num {
        font-size: 90px;
        top: -30px;
    }
    .ser-list li .box .txt .ttl .jp {
        font-size: 19px;
    }
    .ser-list li .box .txt .ttl .jp br {
        display: none;
    }
}


/***********************************************
* company 会社案内
************************************************/
.sec:not(:last-of-type) {
    padding-bottom: 100px;
}
.com-1 {
    padding-top: 30px;
}
.com-flex {
    max-width: 1400px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    margin: auto;
}
.com-flex .left {
    width: 27%;
}
.com-flex .right {
    width: 72%;
}
.com-ttl .en {
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    font-size: 55px;
    line-height: 1;
}
.presedent-name {
    width: 100%;
    max-width: 300px;
    margin-left: auto;
    margin-top: 45px;
}
.com-3 {
    background-image: url(../img/company/bg.jpg);
    background-size: auto;
    background-position: top center;
    background-repeat: no-repeat;
    padding-top: 150px;
}
.outline-wrap {
    max-width: 1400px;
    width: 100%;
    margin: 45px auto 0;
    padding: 130px 2% 0;
    background-color: white;
}

.hist-list {
	max-width: 1200px;
	line-height: 1.7;
    margin-top: 20px;
}

.hist-list > li {
	position: relative;
	display: flex;
}

.hist-list > li .year {
	font-weight: bold;
	width: 100px;
	text-align: left;
	padding-bottom: 40px;
    font-size: 24px;
    font-weight: 500;
    line-height: 1;
}
.hist-list > li .year.sp {
    opacity: 0;
}

.hist-list > li .figure {
	position: relative;
	width: 70px;
	padding-bottom: 40px;
}

.hist-list > li .mon {
    width: 70px;
    padding-bottom: 40px;
}

.hist-list > li:first-child .figure::before {
	display: none;
}
.hist-list > li:last-child .figure::after {
	bottom: -28px;
}

.hist-list > li .figure .ball {
	content: '';
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: #37A602;
	position: absolute;
	top: 8px;
	left: 0;
	right: 0;
	margin: auto;
}

.hist-list > li .txt {
	width: calc(100% - 320px);
	/* padding-top: 20px; */
	padding-bottom: 40px;
	padding-left: 10px;
}

/*絶対配置で線を設定*/
.border-line {
	/*線の位置*/
	position: absolute;
	left: 134px;
	top:15px;
	width:2px;/*線の太さ*/
	height:0;/*はじめは高さを0に*/
	background: #D3DECE;
    z-index: -1;
}


.gmap-wrap {
    position: relative;
    height: 0;
    padding-bottom: 350px;
    overflow: hidden;
    margin-bottom: 20px;
}
.gmap-wrap iframe,
.gmap-wrap object,
.gmap-wrap embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.com-5 .ttl02  {
    font-size: 20px;
    padding-bottom: 10px;
    margin-bottom: 20px;
}
.com-5 .map-box {
    padding-bottom: 50px;
}
.com-5 .map-box:last-of-type {
    padding-bottom: 0;
}

/* .com-5 .prof {
    padding-bottom: 50px;
} */

@media screen and (max-width: 1000px) {
    .com-flex {
        flex-wrap: wrap;
    }
    .com-flex .left {
        /* width: 250px; */
        width: 100%;
        text-align: center;
        margin-bottom: 20px;
    }
    .com-flex .right {
        /* width: calc(100% - 250px); */
        width: 100%;
    }
    .sec:not(:last-of-type) {
        padding-bottom: 80px;
    }
    .com-3 {
        padding-top: 80px;
    }
    .outline-wrap {
        padding-top: 30px;
    }
}
@media screen and (max-width: 768px) {
    .sec:not(:last-of-type) {
        padding-bottom: 60px;
    }
    .com-ttl .en,
    .ttl03 .en {
        font-size: 47px;
    }
    .com-3 {
        padding-top: 65px;
    }
    .presedent-name {
        max-width: 240px;
        margin-top: 25px;
    }
    .hist-list > li {
        flex-wrap: wrap;
        border-bottom: solid 1px #D3DECE;
        align-items: flex-end;
    }
    .hist-list > li:not(:last-child) {
        margin-bottom: 10px;
    }
    .hist-list > li .year {
        width: 90px;
        font-size: 18px;
        padding-bottom: 0;
        line-height: 1.5;
        color: #37A602;
    }
    .hist-list > li .year.sp {
        opacity: 1;
    }
    .hist-list > li .figure {
        display: none;
    }
    .hist-list > li .mon {
        padding-bottom: 0;
        color: #37A602;
        font-weight: 500;
    }
    .hist-list > li .name {
        width: 100%;
        padding: 5px 5px 5px 10px;
    }
    .border-line {
        display: none;
    }
    .gmap-wrap {
        padding-bottom: 260px;
        margin-bottom: 15px;
    }
    .com-5 .ttl02 {
        font-size: 18px;
        padding-bottom: 7px;
        margin-bottom: 12px;
    }
    .com-5 .prof:not(:last-of-type) {
        padding-bottom: 40px;
    }
}
@media screen and (max-width: 480px) {
    .com-ttl .en,
    .ttl03 .en {
        font-size: 37px;
    }
    .presedent-name {
        max-width: 210px;
    }
    .hist-list > li .year {
        font-size: 17px;
    }
    .com-5 .ttl02 {
        font-size: 17px;
    }
    .com-5 .prof:not(:last-of-type) {
        padding-bottom: 30px;
    }
}


/***********************************************
* recruit 採用情報
************************************************/
.rec-1 .ttl03 {
    text-align: center;
    margin-bottom: 60px;
}
.rec-1 .submit {
    margin-top: 60px;
}

#rec-table .table1 {
    margin-bottom: 60px;
}
#rec-table .table1:last-of-type {
    margin-bottom: 0;
}


@media screen and (max-width: 768px) {
    .rec-1 .ttl03 {
        margin-bottom: 40px;
    }
    #rec-table .table1 {
        margin-bottom: 40px;
    }
}


/***********************************************
* numbers 数字で見る
************************************************/
.num-1 {
    margin-bottom: 60px;
}
.num-1 .ttl03 {
    text-align: center;
    margin-bottom: 60px;
}
.number-list > li {
    max-width: 1200px;
    margin: 0 auto 100px;
}
/* .number-list li:last-child {
    margin-bottom: 0;
} */
.number-list li .ttl {
    color: white;
    font-size: 18px;
    padding: 7px 15px;
}
.number-list li .ttl span {
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    font-size: 48px;
    line-height: 1;
    margin-right: 10px;
}
.number-list li.green {
    border-left: solid 1px #10A15E;
}
.number-list li.green .ttl {
    background-color: #10A15E;
}
.number-list li.green > div:not(.ttl) {
    background-color: #EBF6EE;
}
.number-list li.green .border {
    border-right: solid 1px #10A15E;
    border-bottom: solid 1px #10A15E;
}
.number-list li.blue {
    border-left: solid 1px #133F97;
}
.number-list li.blue .ttl {
    background-color: #133F97;
}
.number-list li.blue > div:not(.ttl) {
    background-color: #ECF6FA;
}
.number-list li.blue .border {
    border-right: solid 1px #133F97;
    border-bottom: solid 1px #133F97;
}
.number-list li.orange {
    border-left: solid 1px #FD7915;
}
.number-list li.orange .ttl {
    background-color: #FD7915;
}
.number-list li.orange > div:not(.ttl) {
    background-color: #FDF8DB;
}
.number-list li.orange .border {
    border-right: solid 1px #FD7915;
    border-bottom: solid 1px #FD7915;
}

.number-list .green .color {
    color: #10A15E;
}
.number-list .blue .color {
    color: #133F97;
}
.number-list .orange .color {
    color: #FD7915;
}

.number-list .cnt1 {
    display: flex;
    flex-wrap: wrap;
}
.number-list .cnt1-1 {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 66.66%;
    padding: 50px 10px 30px;
}
.number-list .cnt1-1 .img1 {
    margin-right: 15px;
}
.number-list .cnt1-1 .t1 {
    font-size: 57px;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    letter-spacing: 5px;
}
.number-list .cnt1-1 .t2 {
    font-size: 180px;
    line-height: 0.8;
    margin-left: 20px;
    margin-right: 20px;
    width: 333px;
    text-align: center;
}
@media screen and (max-width: 1280px) {
    .number-list .cnt1-1 .t2 {
        width: 26.015625vw;
    }
}
.number-list .cnt1-1 .t3 {
    font-size: 80px;
}
.number-list .cnt1-2 {
    display: flex;
    flex-wrap: wrap;
    width: 33.33%;
    padding: 30px 10px;
}
.number-list .cnt1-2 .t1 {
    width: 100%;
    font-size: 24px;
    text-align: center;
}
.number-list .cnt1-2 .t1 span {
    font-size: 42px;
}
.number-list .cnt1-2 .t2 {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding-top: 20px;
}
.number-list .cnt1-2 .t2 .num {
    font-size: 140px;
    line-height: 0.8;
    margin-left: 20px;
    margin-right: 20px;
    text-align: center;
    width: 127px;
}
@media screen and (max-width: 1280px) {
    .number-list .cnt1-2 .t2 .num {
        width: 9.921875vw;
    }
}
.number-list .cnt1-2 .t2 .txt {
    font-size: 62px;
}
.number-list .cnt2 {
    display: flex;
    flex-wrap: wrap;
}
.number-list .cnt2-1 {
    width: 33.33%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-end;
    padding: 30px 10px;
}
.number-list .cnt2-1 .t1 {
    width: 100%;
    text-align: center;
    font-size: 42px;
    padding-bottom: 20px;
}
.number-list .cnt2-1 .t2 {
    font-size: 140px;
    line-height: 0.8;
    margin-left: 20px;
    margin-right: 15px;
    width: 70px;
}
@media screen and (max-width: 1280px) {
    .number-list .cnt2-1 .t2 {
        width: 5.46875vw;
    }
}
.number-list .cnt2-1 .t3 {
    font-size: 62px;
}
.number-list .cnt2-2 {
    width: 66.66%;
    text-align: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-end;
    padding: 30px 10px;
}
.number-list .cnt2-2 .t1 {
    width: 100%;
    font-size: 24px;
    padding-bottom: 20px;
}
.number-list .cnt2-2 .t1 span {
    font-size: 42px;
}
.number-list .cnt2-2 .t2 {
    font-size: 138px;
    line-height: 0.8;
    margin-left: 20px;
    margin-right: 20px;
    text-align: center;
    width: 365px;
}
@media screen and (max-width: 1280px) {
    .number-list .cnt2-2 .t2 {
        width: 28.515625vw;
    }
}
.number-list .cnt2-2 .t3 {
    font-size: 62px;
}
.number-list .cnt3 {
    display: flex;
    flex-wrap: wrap;
}
.number-list .cnt3-1 {
    width: 50%;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: center;
    padding: 30px 10px;
}
.number-list .cnt3-1 .t1 {
    font-size: 42px;
    width: 100%;
    text-align: center;
    padding-bottom: 20px;
}
.number-list .cnt3-1 .t2 {
    font-size: 140px;
    line-height: 0.8;
    margin-left: 10px;
    margin-right: 10px;
    text-align: center;
    width: 183px;
}
.number-list .cnt3-2 {
    width: 50%;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: center;
    padding: 30px 10px;
}
.number-list .cnt3-2 .t1 {
    font-size: 42px;
    width: 100%;
    text-align: center;
    padding-bottom: 20px;
}
.number-list .cnt3-2 .t2 {
    font-size: 62px;
    margin-left: 15px;
}
.number-list .cnt3-2 .t3 {
    font-size: 140px;
    line-height: 0.8;
    margin-left: 10px;
    margin-right: 10px;
    text-align: center;
    width: 126px;
}
.number-list .cnt3-2 .t4 {
    font-size: 62px;
}


@media screen and (max-width: 1280px) {
    .number-list .cnt3-1 .t2 {
        width: 14.296875vw;
    }
}
.number-list .cnt3-1 .t3 {
    font-size: 62px;
}
.number-list .cnt3-2 {
    width: 50%;
}
.number-list .cnt4 {
    padding: 30px 20px;
}
.number-list .cnt4 .t1 {
    font-size: 42px;
}
.number-list .cnt4 .t1 span {
    font-size: 24px;
}
.number-list .age {
    display: flex;
    flex-wrap: wrap;
    font-size: 50px;
}
.number-list .age > li {
    margin-left: 3%;
    margin-right: 3%;
    margin-top: 20px;
}
.number-list .age .n1 {
    font-size: 86px;
    line-height: 0.8;
}
.number-list .age .n2 {
    font-size: 140px;
    line-height: 0.8;
    min-width: 80px;
    max-width: 130px;
    display: inline-block;
}
@media screen and (max-width: 1280px) {
    .number-list .age .n2 {
        min-width: 6.25vw;
        max-width: 10.15625vw;
    }
}
.number-list .cnt5 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-end;
    padding: 30px 20px;
}
.number-list .cnt5 .t1 {
    width: 100%;
    text-align: left;
    font-size: 42px;
}
.number-list .cnt5 .t1 span {
    font-size: 24px;
}
.number-list .cnt5 .t2 {
    position: relative;
    line-height: 0.8;
    padding-top: 50px;
    margin-left: 15px;
    margin-right: 15px;
    font-size: 140px;
    display: inline-block;
    text-align: center;
    max-width: 145px;
    min-width: 75px;
}
/* .number-list .cnt5 .t2.men {
    width: 145px;
}
.number-list .cnt5 .t2.women {
    width: 75px;
} */
@media screen and (max-width: 1280px) {   
    .number-list .cnt5 .t2 {
        min-width: auto;
        width: 11.3281vw;
    }
    /* .number-list .cnt5 .t2.men {
        width: 11.3281vw;
    }
    .number-list .cnt5 .t2.women {
        width: 11.3281vw;
    } */
}
.number-list .cnt5 .t2 span {
    position: absolute;
    text-align: center;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    font-weight: bold;
    font-size: 35px;
    color: black;    	
    white-space: nowrap;
}
.number-list .cnt5 .t3 {
    font-size: 50px;
    margin-right: 40px;
}
.number-list .cnt5 .t3:last-of-type {
    margin-right: 0;
}
.number-list .cnt6 {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    padding: 30px 20px;
}

.number-list .cnt6 .t1 {
    width: 100%;
    text-align: left;
    font-size: 42px;
}
.number-list .cnt6 .raito {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    width: 100%;
}
.number-list .cnt6 .raito li {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    margin-top: 20px;
}
.number-list .cnt6 .raito img {
    margin-right: 10px;
}
.number-list .cnt6 .t2 {
    font-size: 50px;
}
.number-list .cnt6 .t3 {
    position: relative;
    padding-top: 50px;
    font-size: 140px;
    margin-left: 5px;
    margin-right: 10px;
    line-height: 0.8;
    min-width: 100px;
    text-align: center;
}
.number-list .cnt6 .t3 span {
    position: absolute;
    text-align: center;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    font-weight: bold;
    font-size: 35px;
    color: black;
    white-space: nowrap;
}
.number-list .cnt6 .t4 {
    font-size: 50px;
}

@media screen and (max-width: 1280px) {
    .number-list > li {
        margin-bottom: 7.8125vw;
    }
    .number-list li .ttl {
        font-size: 1.4062vw;
        padding: 0.5468vw 1.1718vw;
    }
    .number-list li .ttl span {
        font-size: 3.7vw;
        margin-right: 0.7812vw;
    }

    .number-list .cnt1-1 {
        padding: 3.90625vw 0.7812vw 2.3437vw;
    }
    .number-list .cnt1-1 .img1 {
        width: 8.2031vw;
        margin-right: 1.1718vw;
    }
    .number-list .cnt1-1 .t1 {
        font-size: 4.4531vw;
    }
    .number-list .cnt1-1 .t2 {
        /* font-size: 14.0625vw; */
        font-size: 13.5vw;
        margin-left: 1.5625vw;
        margin-right: 1.5625vw;
    }
    .number-list .cnt1-1 .t3 {
        font-size: 6.25vw;
    }
    .number-list .cnt1-2 {
        padding: 2.3437vw 0.7812vw;
    }
    .number-list .cnt1-2 .t1 {
        font-size: 1.8vw;
    }
    .number-list .cnt1-2 .t1 span {
        font-size: 3.2vw;
    }
    .number-list .cnt1-2 .t2 {
        padding-top: 1.5625vw;
    }
    .number-list .cnt1-2 .img1 {
        width: 6.4062vw;
    }
    .number-list .cnt1-2 .t2 .num {
        font-size: 10.9375vw;
        margin-left: 1.5625vw;
        margin-right: 1.5625vw;
    }
    .number-list .cnt1-2 .t2 .txt {
        font-size: 4.8437vw;
    }
    .number-list .cnt2-1 {
        padding: 2.3437vw 0.7812vw;
    }
    .number-list .cnt2-1 .t1 {
        font-size: 3.2vw;
        padding-bottom: 1.5625vw;
    }
    .number-list .cnt2-1 .img1 {
        width: 4.6093vw;
    }
    .number-list .cnt2-1 .t2 {
        font-size: 10.9375vw;
        margin-left: 1.5625vw;
        margin-right: 1.1718vw;
    }
    .number-list .cnt2-1 .t3 {
        font-size: 4.8437vw;
    }
    .number-list .cnt2-2 {
        padding: 2.3437vw 0.7812vw;
    }
    .number-list .cnt2-2 .t1 {
        font-size: 1.8vw;
        padding-bottom: 1.5625vw;
    }
    .number-list .cnt2-2 .t1 span {
        font-size: 3.2vw;
    }
    .number-list .cnt2-2 .img1 {
        width: 8.5156vw;
    }
    .number-list .cnt2-2 .t2 {
        /* font-size: 10.7812vw; */
        font-size: 10vw;
        margin-left: 1.5625vw;
        margin-right: 1.5625vw;
    }
    .number-list .cnt2-2 .t3 {
        font-size: 4.8437vw;
    }

    .number-list .cnt3-1 {
        padding: 2.3437vw 0.7812vw;
    }
    .number-list .cnt3-1 .t1 {
        font-size: 3.2vw;
        padding-bottom: 1.5625vw;
    }
    .number-list .cnt3-1 .img1 {
        width: 6.9531vw;
    }
    .number-list .cnt3-1 .t2 {
        font-size: 10vw;
        margin-left: 0.7812vw;
        margin-right: 0.7812vw;
    }
    .number-list .cnt3-1 .t3 {
        font-size: 4.8437vw;
    }
    .number-list .cnt3-2 {
        padding: 2.3437vw 0.7812vw;
    }
    .number-list .cnt3-2 .t1 {
        font-size: 3.2vw;
        padding-bottom: 1.5625vw;
    }
    .number-list .cnt3-2 .img1 {
        width: 6.09375vw;
    }
    .number-list .cnt3-2 .t2 {
        font-size: 4.8437vw;
        margin-left: 1.171875vw;
    }
    .number-list .cnt3-2 .t3 {
        font-size: 10vw;
        width: 9.84375vw;
        margin-left: 0.7812vw;
        margin-right: 0.7812vw;
    }
    .number-list .cnt3-2 .t4 {
        font-size: 4.8437vw;
    }

    .number-list .cnt4 {
        padding: 2.3437vw 1.5625vw;
    }
    .number-list .cnt4 .t1 {
        font-size: 3.2vw;
    }
    .number-list .cnt4 .t1 span {
        font-size: 1.8vw;
    }
    .number-list .age {
        font-size: 3.90625vw;
    }
    .number-list .age > li {
        margin-left: 2vw;
        margin-right: 2vw;
        /* margin-left: 1.5vw; */
        /* margin-right: 1.5vw; */
        margin-top: 1.5625vw;
    }
    .number-list .age .n1 {
        font-size: 6.7187vw;
    }
    .number-list .age .n2 {
        font-size: 10vw;
    }
    .number-list .cnt5 {
        padding: 2.3437vw 1.5625vw;
    }
    .number-list .cnt5 .t1 {
        font-size: 3.2vw;
    }
    .number-list .cnt5 .t1 span {
        font-size: 1.8vw;
    }
    .number-list .cnt5 .img1 {
        width: 4.9218vw;
    }
    .number-list .cnt5 .t2 {
        padding-top: 3.90625vw;
        margin-left: 1.1718vw;
        margin-right: 1.1718vw;
        font-size: 10vw;
    }
    .number-list .cnt5 .t2 span {
        font-size: 2.7343vw;
    }
    .number-list .cnt5 .t3 {
        font-size: 3.90625vw;
        margin-right: 3.125vw;
    }
    .number-list .cnt5 .img2 {
        width: 6.3281vw;
    }
    .number-list .cnt6 {
        padding: 2.3437vw 1.5625vw;
    }
    .number-list .cnt6 .raito img {
        margin-right: 0.78125vw;
    }
    .number-list .cnt6 .raito img.img1 {
        width: 6.875vw;
    }
    .number-list .cnt6 .raito img.img2 {
        width: 7.265625vw;
    }
    .number-list .cnt6 .raito img.img3 {
        width: 7.03125vw;
    }
    .number-list .cnt6 .raito li {
        margin-top: 1.5625vw;
    }
    .number-list .cnt6 .t1 {
        font-size: 3.2vw;
    }
    .number-list .cnt6 .t2 {
        /* font-size: 3.90625vw; */
        font-size: 3.5vw;
    }
    .number-list .cnt6 .t3 {
        /* width: 11.71875vw; */
        width: 11vw;
        min-width: auto;
        font-size: 10vw;
        padding-top: 3.90625vw;
        margin-left: 0.390625vw;
        margin-right: 0.78125vw;
    }
    .number-list .cnt6 .t3 span {
        font-size: 2.734375vw;
    }
    .number-list .cnt6 .t4 {
        /* font-size: 3.90625vw; */
        font-size: 3.5vw;
    }
}

@media screen and (max-width: 768px) {
    .number-list .age > li {
        margin-left: 1.5vw;
        margin-right: 1.5vw;
    }
}





.num-1 .img:not(:last-of-type) {
    margin-bottom: 100px;
}

@media screen and (max-width: 768px) {
    .num-1 .img:not(:last-of-type) {
        margin-bottom: 60px;
    }
    .num-1 .ttl03 {
        margin-bottom: 40px;
    }
}
@media screen and (max-width: 480px) {
    .num-1 .img:not(:last-of-type) {
        margin-bottom: 40px;
    }
}


/***********************************************
* contact お問い合わせ
************************************************/
.con-1 .lead {
    text-align: center;
    font-size: 18px;
    line-height: 1.7;
}

.tel-box {
    background-color: black;
    max-width: 560px;
    width: 100%;
    text-align: center;
    color: white;
    padding: 40px 10px;
    margin: 65px auto 70px;
}
.tel-box .t1 {
    font-size: 19px;
}
.tel-box a {
    color: white;
    font-size: 42px;
    font-weight: bold;
    letter-spacing: -2px;
}
.tel-box a span {
    font-weight: bold;
    font-size: 38px;
}
.tel-box .t2 {
    font-size: 15   px;
}
.form-wrap {
    max-width: 1200px;
    padding: 70px 10px 110px;
    margin: auto;
}
.form-table {
    margin: auto;
    max-width: 960px;
    width: 100%;
}
.form-table tr {
    display: block;
    padding-bottom: 25px;
}
.form-table tr:last-child {
    padding-bottom: 0;
}
.form-table tr th {
    display: block;
    width: 100%;
    padding-bottom: 10px;
    text-align: left;
}
.form-table tr th span {
    display: inline-block;
    margin-right: 10px;
    font-size: 12px;
    color: white;
    padding-left: 5px;
    padding-right: 5px;
}
.form-table tr th span.hissu {
    background-color: #EA5514;
}
.form-table tr th span.ninni {
    background-color: #727171;
}
.form-table tr td {
    display: block;
    width: 100%;
}
.form-table tr td input[type="text"],
.form-table tr td input[type="tel"],
.form-table tr td input[type="email"],
.form-table tr td textarea {
    width: 100%;
    border: solid 1px #C9C9C9;
    font-family: 'Noto Sans JP', sans-serif;
    padding: 10px;
}
.form-wrap .pri-txt {
    text-align: center;
    padding-top: 50px;
    padding-bottom: 40px;
}
.form-wrap .pri-txt a {
    color: #172A88;
}
input.submit {
    border: none;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 500;
    transition: 0.3s all;
}

.thx-txt {
    max-width: 600px;
    margin: auto;
}

@media screen and (max-width: 768px) {
    .tel-box a {
        font-size: 36px;
    }
    .tel-box a span {
        font-size: 34px;
    }
    .con-1 .lead {
        font-size: 17px;
    }
}
@media screen and (max-width: 480px) {
    .con-1 .lead {
        text-align: left;
        font-size: 16px;
        line-height: 1.6;
    }
    .tel-box a {
        font-size: 30px;
    }
    .tel-box a span {
        font-size: 28px;
    }
    .tel-box .t1 {
        font-size: 17px;
    }
    .tel-box .t2 {
        font-size: 14px;
    }
    .tel-box {
        padding: 35px 10px;
        margin: 50px auto 60px;
    }
    .form-wrap {
        padding: 60px 10px 80px;
    }
}


/***********************************************
* entry エントリーフォーム
************************************************/
.ent-1 .tel-box {
    max-width: 640px;
}
.ent-1 .lead {
    font-size: 18px;
    line-height: 1.7;
    text-align: center;
}
.tel-box .tantou {
    font-size: 15px;
}
.form-wrap input.short {
    max-width: 300px;
}


@media screen and (max-width: 480px) {
    .ent-1 .lead {
        font-size: 16px;
        line-height: 1.6;
        text-align: left;
    }
    .tel-box .tantou {
        font-size: 14px;
    }
}


/***********************************************
* news 新着情報
************************************************/
.news-list {
    margin-bottom: 20px;
}
.news-list li {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-bottom: 40px;
    margin-bottom: 40px;
    border-bottom: solid 1px #E9E9E9;
}
.news-list li:last-child {
    margin-bottom: 0;
}
.news-list li .thumbwrap {
    width: 265px;
}
.news-list li .thumbwrap img {
    width: 100%;
}
.news-list li .txtarea {
    width: calc(96.5% - 265px);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.news-list li .txtarea .title,
.news-list li .txtarea .title a {
    font-size: 24px;
    color: black;
}
.news-list li .txtarea .title a:hover {
    color: #37A602;
}
.news-list li .txtarea .date {
    margin-top: 12px;
    color: #898989;
    width: 100%;
}
.news-list li .txtarea .comment {
    margin-top: 12px;
    width: 100%;
}

.detail-wrap .title {
    font-size: 24px;
}
.detail-wrap .up_ymd {
    width: 100%;
    position: relative;
    color: #898989;
    padding-top: 7px;
    padding-bottom: 20px;
    margin-bottom: 20px;
}
.detail-wrap .up_ymd::before {
    position: absolute;
    content: '';
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: 1px;
    background-color: #D3DECE;
}
.detail-wrap .up_ymd::after {
    position: absolute;
    content: '';
    bottom: 0;
    left: 0;
    width: 120px;
    height: 2px;
    background-color: #37A602;
}
.detail-wrap .detail-content {
    min-height: 200px;
}
.detail-wrap .detailText {
    font-size: 17px;
    margin-bottom: 50px;
}
.back-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 250px;
    height: 55px;
    color: white;
    background-color: black;
    border-radius: 50px;
    margin: 40px auto 0;
}
.back-btn:hover {
    background-color: #37A602;
}

@media screen and (max-width: 768px) {
    .news-list li .thumbwrap {
        width: 30%;
    }
    .news-list li .txtarea {
        width: 65%;
    }
    .news-list li .txtarea .title,
    .news-list li .txtarea .title a {
        font-size: 21px;
    }
    .news-list li .txtarea .date {
        margin-top: 0;
    }
}
@media screen and (max-width: 480px) {
    .news-list li .thumbwrap {
        width: 35%;
    }
    .news-list li .txtarea {
        width: 100%;
        padding-top: 7px;
    }
    .news-list li .txtarea .title a {
        font-size: 19px;
    }
    .news-list li .txtarea .date {
        font-size: 14px;
        text-align: right;
    }
    .news-list li .txtarea .comment {
        font-size: 14px;
    }
}


/***********************************************
* privacy プライバシーポリシー
************************************************/
.pri-1 .ttl01 {
    margin-bottom: 0;
}
.pri-1 .ttl01-sub {
    font-weight: 500;
    font-size: 21px;
    margin-bottom: 45px;
}
.pri-1 .ttl02 {
    padding-bottom: 10px;
    margin-bottom: 20px;
}

.pri-list .txt {
    margin-bottom: 40px;
    line-height: 1.8;
}
.pri-last {
    text-align: right;
}

@media screen and (max-width: 768px) {
    .pri-1 .ttl01-sub {
        font-size: 18px;
        margin-bottom: 35px;
    }
    .pri-list .txt {
        margin-bottom: 30px;
        line-height: 1.7;
    }
}
@media screen and (max-width: 480px) {
    .pri-1 .ttl01-sub {
        font-size: 15px;
        margin-bottom: 30px;
    }
    .pri-list .txt {
        margin-bottom: 25px;
    }
}


/***********************************************
* works 実績紹介
************************************************/
.works-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
}
.cat-menu {
    position: sticky;
    top: 110px;
    width: 29%;
    background-color: #F4F4F4;
    padding: 25px;
}
.cat-menu .inner {
    background-color: white;
    padding: 40px 25px 50px;
}
.cat-menu .ttl {
    font-size: 22px;
    font-weight: 500;
    margin-bottom: 22px;
}
.cat-menu ul li a {
    display: block;
    width: 100%;
    color: black;
    padding: 12px 15px;
    background-color: #F4F4F4;
    font-size: 17px;
}
.cat-menu ul li.current a,
.cat-menu ul li a:hover {
    color: white;
    background-color: black;
}
.cat-menu ul li {
    padding-bottom: 20px;
}
.cat-menu ul li:last-child {
    padding-bottom: 0;
}

.works-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    width: 69%;
}
.works-list li {
    width: 49%;
    padding-bottom: 60px;
}
.works-list li .thumbwrap {
    position: relative;
    width: 100%;
}
.works-list li .thumbwrap::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    background-color: black;
    transition: 0.3s all;
    opacity: 0;
    z-index: 1;
    pointer-events: none;
}
.works-list li .thumbwrap::after {
    content: 'VIEW MORE';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    color: white;
    font-size: 20px;
    transition: 0.3s all;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    opacity: 0;
    pointer-events: none;
}
.works-list li .thumbwrap:hover::before {
    opacity: 0.5;
}
.works-list li .thumbwrap:hover::after {
    opacity: 1;
}
.works-list li .thumbwrap img {
    display: block;
    width: 100%;
}
.works-list li .title {
    padding-top: 15px;
    padding-bottom: 10px;
}
.works-list li .title a {
    font-size: 20px;
    font-weight: 500;
    color: black;
}
.works-list li .title a:hover {
    opacity: 0.7;
}
.works-list li .catName {
    display: inline-block;
    padding: 0 5px;
    color: white;
    background-color: #37A602;
    font-size: 14px;
    margin-bottom: 15px;
}
.works-list li .work-item {
    display: flex;
    flex-wrap: wrap;
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: solid 1px #E9E9E9;
}
.works-list li .work-item:last-of-type {
    margin-bottom: 0;
}
.works-list li .work-item .ttl {
    width: 100px;
}
.works-list .work-item .txt {
    width: calc(100% - 100px);
}


.pager {
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin: auto;
}
.pager a.prev,
.pager a.next {
    display: none;
}
.pager a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    width: 40px;
    height: 40px;
    background-color: #C9CACA;
    margin-left: 2px;
    margin-right: 2px;
}
.pager a.current,
.pager a:hover {
    background-color: black;
}
.pager .overPagerPattern {
    margin-left: 5px;
    margin-right: 5px;
}

.works-detail-wrap .title {
    position: relative;
    width: 100%;
    font-size: 33px;
    font-weight: 500;
    padding-bottom: 20px;
    margin-bottom: 20px;
}
.works-detail-wrap .title::before {
    position: absolute;
    content: '';
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    height: 1px;
    background-color: #D3DECE;
}
.works-detail-wrap .title::after {
    position: absolute;
    content: '';
    bottom: 0;
    left: 0;
    width: 120px;
    height: 2px;
    background-color: #37A602;
}
.works-detail-wrap .sub-title {
    width: 100%;
    font-size: 25px;
    font-weight: 500;
    padding-top: 50px;
    padding-bottom: 20px;
}
.works-detail-wrap .category {
    display: inline-block;
    padding: 0 5px;
    color: white;
    background-color: #37A602;
    font-size: 14px;
}
.work-detail-table {
    width: 100%;
    margin-top: 25px;
    margin-bottom: 60px;
}
.work-detail-table th {
    width: 30%;
    text-align: left;
    background-color: #FAFAFA;
    padding: 12px 10px 12px 20px;
    border-left: solid 1px #C9C9C9;
    border-right: solid 1px #C9C9C9;
    border-bottom: solid 1px #C9C9C9;
}
.work-detail-table td {
    width: 70%;
    padding: 12px 10px 12px 20px;
    border-right: solid 1px #C9C9C9;
    border-bottom: solid 1px #C9C9C9;
}

.work-detail-table tr:nth-child(1) th,
.work-detail-table tr:nth-child(1) td {
    border-top: solid 1px #C9C9C9;
}

.slider {
    width: 85%;
    max-width: 845px;
    margin: 50px auto 17px;
}
.slider .slick-slide img {
    margin: auto;
}
.thumb-slider {
    width: 85%;
    max-width: 845px !important;
    margin: auto;
}
.thumb-slider .slick-track {
    transform: unset !important;
}
.thumb-slider .slick-slide {
    position: relative;
}
.thumb-slider .slick-slide::after {
    position: absolute;
    content: '';
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    background-color: black;
    transition: 0.3s all;
    opacity: 0;
}
.thumb-slider .slick-slide img {
    width: 100%;
    object-fit: cover;
}
.thumb-slider .slick-slide.slick-current::after {
    opacity: 0.6;
}
.cat-menu label,
.cat-menu #menu-bar {
    display: none;
}

@media screen and (max-width: 1200px) {
    .cat-menu {
        padding: 15px;
    }
    .cat-menu .inner {
        padding: 30px 15px 20px;
    }
    .cat-menu .ttl {
        font-size: 20px;
        margin-bottom: 15px;
    }
    .cat-menu ul li a {
        font-size: 16px;
        line-height: 1.3;
    }
}

@media screen and (max-width: 768px) {
    .cat-menu {
        position: static;
        width: 100%;
        padding-top: 0;
        padding-bottom: 0;
        margin-bottom: 45px;
        background: none;
    }
    .cat-menu .inner {
        padding: 0;
    }
    .cat-menu .ttl {
        display: none;
    }
    .cat-menu label {
        display: block;
        position: relative;
        padding: 15px;
        margin-bottom: 10px;
        line-height: 1;
        color: #fff;
        background: #1D2087;
        cursor: pointer;
        text-align: center;
        font-size: 17px;
        border-radius: 5px;
    }
    .cat-menu label::after {
        position: absolute;
        content: '';
        right: 20px;
        top: 0;
        bottom: 0;
        margin: auto;
        width: 0;
        height: 0;
        border-left: 14px solid white;
        border-bottom: 9px solid transparent;
        border-top: 9px solid transparent;
        -webkit-transition: all 0.2s;
        -moz-transition: all 0.2s;
        -ms-transition: all 0.2s;
        -o-transition: all 0.2s;
        transition: all 0.2s;
    }
    #menu-bar:checked ~ label::after {
        transform: rotate(90deg);
    }
    .cat-menu ul li {
        height: 0;
        padding: 0;
        margin: 0;
        overflow: hidden;
        -webkit-transition: all 0.5s;
        -moz-transition: all 0.5s;
        -ms-transition: all 0.5s;
        -o-transition: all 0.5s;
        transition: all 0.5s;
    }
    #menu-bar:checked ~ #links li {
        height: auto;
        margin-bottom: 10px;
    }
    #menu-bar:checked ~ #links li:last-child {
        margin-bottom: 0;
    }

    .works-list {
        width: 100%;
    }
    .works-list li .title a {
        font-size: 17px;
    }
    .works-list li .work-item .ttl {
        width: 80px;
    }
    .works-list li .work-item .txt {
        width: calc(100% - 80px);
    }
    .works-list li .work-item {
        font-size: 14px;
        padding-bottom: 10px;
        margin-bottom: 10px;
    }

    .works-detail-wrap .title {
        font-size: 26px;
    }
    .works-detail-wrap .sub-title {
        font-size: 22px;
    }
}
@media screen and (max-width: 480px) {
    .cat-menu ul li a {
        font-size: 15px;
    }
    .works-list li {
        width: 100%;
        padding-bottom: 40px;
    }
    .works-list li .thumbwrap {
        width: 80%;
        margin: auto;
    }

    .works-detail-wrap .title {
        padding-bottom: 10px;
        margin-bottom: 10px;
        font-size: 20px;
    }
    .works-detail-wrap .sub-title {
        font-size: 18px;
        padding-bottom: 10px;
    }
    .work-detail-table th {
        padding: 10px 10px 10px 15px;
        vertical-align: middle;
        font-size: 14px;
    }
    .work-detail-table td {
        padding: 10px 10px 10px 15px;
        font-size: 14px;
    }
}


/***********************************************
* トップページ WORKS NEWS
************************************************/
.slider-2 .slick-slide {
    position: relative;
    padding-left: 15px;
    padding-right: 15px;
}
.slider-2 .slick-slide::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 15px;
    right: 15px;
    margin: auto;
    background: black;
    transition: 0.3s all;
    opacity: 0;
    z-index: 2;
}
.slider-2 .slick-slide:hover::before {
    opacity: 0.6;
}
.slider-2 .slick-slide img {
    position: relative;
    width: 100%;
    /* padding-left: 1.5%; */
    /* padding-right: 1.5%; */
}
.slider-2 .slick-slide .txtarea {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 2%;
    right: 2%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    text-align: center;
    opacity: 0;
    transition: 0.3s all;
    z-index: 5;
}
.slider-2 .slick-slide:hover .txtarea {
    opacity: 1;
}
.slider-2 .slick-slide .txtarea .ttl {
    font-size: 25px;
    font-weight: 500;
}
.slider-2 .slick-slide .txtarea .txt {
    padding-top: 10px;
    font-size: 15px;
}
.slider-2 .slick-slide .txtarea a {
    max-width: 190px;
    height: 50px;
    width: 100%;
    color: white;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: solid 1px white;
    border-radius: 50px;
    margin: 25px auto 0;
}
.slider-2 .slick-slide .txtarea a:hover  {
    background-color: white;
    color: black;
}

.slider-2 .slick-dots li button:before {
    background: white;
    height: 2px;
}
.slider-2 .slick-dots {
    bottom: -35px;
}

.top-6 {
    /* padding-top: 100px; */
    padding-bottom: 200px;
}
.top-news {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
}
.top-news .ttl03 {
    width: 180px;
}
.top-news .top-news-list {
    width: calc(98% - 180px);
    border-top: solid 1px #C9C9C9;
}
.top-news .top-news-list li {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    border-bottom: solid 1px #C9C9C9;
    pointer-events: none;
    transition: 0.3s all;
}
.top-news .top-news-list li:hover {
    background-color: #CFECDF;
}

.top-news .top-news-list li .date {
    width: 120px;
    color: #898989;
}
.top-news .top-news-list li a {
    width: calc(98% - 120px);
    color: black;
    font-size: 17px;
    min-height: 90px;
    padding: 10px 0;
    display: flex;
    align-items: center;
    pointer-events: auto;
}

@media screen and (max-width: 1300px) {
    .slider-2 .slick-slide .txtarea .ttl {
        font-size: 21px;
    }
    .slider-2 .slick-slide .txtarea .txt {
        font-size: 14px;
    }
}
@media screen and (max-width: 900px) {
    .top-6 {
        /* padding-top: 60px; */
        padding-bottom: 120px;
    }
    .top-news .ttl03 {
        width: 100%;
        margin-bottom: 25px;
    }
    .top-news .top-news-list {
        width: 100%;
    }
}
@media screen and (max-width: 768px) {
    .top-3 {
        padding-top: 110px;
        padding-bottom: 110px;
    }
}
@media screen and (max-width: 600px) {
    .slider-2 .slick-slide {
        padding-left: 7px;
        padding-right: 7px;
    }
    .slider-2 .slick-slide::before {
        left: 7px;
        right: 7px;
    }
    /* .slider-2 .slick-slide img {
        padding-left: 2.5%;
        padding-right: 2.5%;
    } */
    .slider-2 .slick-slide .txtarea {
        padding-left: 4%;
        padding-right: 4%;
    }
    .slider-2 .slick-slide .txtarea .ttl {
        font-size: 15px;
    }
    .slider-2 .slick-slide .txtarea .txt {
        font-size: 12px;
    }
    .slider-2 .slick-slide .txtarea a {
        width: 80%;
        height: 30px;
        font-size: 12px;
        margin-top: 10px;
    }
    .top-news .top-news-list li a {
        width: 100%;
        padding-left: 12px;
        padding-bottom: 25px;
        min-height: auto;
        font-size: 16px;
    }
}
@media screen and (max-width: 480px) {
    .top-3 {
        padding-top: 70px;
        padding-bottom: 70px;
    }
    .top-news .top-news-list li a {
        font-size: 15px;
    }
    .slider-2 .slick-slide .txtarea .ttl {
        font-size: 14px;
    }
    .slider-2 .slick-slide .txtarea .txt {
        font-size: 10px;
        padding-top: 7px;
    }
}


.start {
	background: #FFF;
	position: fixed;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	z-index: 9000;
}
.start p {
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: none;
	z-index: 9999;
	width: 280px;
}