@charset "utf-8";

/*----- main -----*/
main {
    padding: 80px 0 0;
}
div.breadcrumbs {
    width: 90%;
    max-width: 1200px;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    letter-spacing: 0.1em;
    line-height: 1.5;
    padding: 25px 0 75px;
    margin: 0 auto;
}
div.breadcrumbs span.current {
    color: #7F7F7F;
}
aside.contentsNav {
    width: 90%;
    max-width: 1200px;
    padding: 0 0 75px;
    margin: 0 auto;
}
aside.contentsNav ul {
    display: flex;
    flex-wrap: wrap;
}
aside.contentsNav ul li {
    position: relative;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    letter-spacing: 0.1em;
    line-height: 24px;
    padding: 0 30px 0 0;
    margin: 0 min(2vw, 30px) 0 0;
}
aside.contentsNav ul li span.arrowWrap {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: #E5F5FC;
    border-radius: 5px;
    margin: auto 0;
    transition: 0.5s 0s;
}
aside.contentsNav ul li:hover span.arrowWrap {
    background: #F8B62D;
}

@media screen and (max-width: 960px) {
main {
    padding: 80px 0 0;
}
div.breadcrumbs {
    width: 85%;
    max-width: 1200px;
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    letter-spacing: 0.1em;
    line-height: 1.5;
    padding: 0 0 25px;
    margin: 0 auto;
}
div.breadcrumbs span.current {
    color: #7F7F7F;
}
aside.contentsNav {
    width: 85%;
    max-width: 1200px;
    padding: 0 0 15px;
    margin: 0 auto;
}
aside.contentsNav ul {
    display: flex;
    flex-wrap: wrap;
}
aside.contentsNav ul li {
    position: relative;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    letter-spacing: 0.1em;
    line-height: 24px;
    padding: 0 30px 0 0;
    margin: 5px min(4vw, 15px) 5px 0;
}
aside.contentsNav ul li span.arrowWrap {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: #E5F5FC;
    border-radius: 5px;
    margin: auto 0;
    transition: 0.5s 0s;
}
aside.contentsNav ul li:hover span.arrowWrap {
    background: #F8B62D;
}
}

/*----- About -----*/
main#about {
}
main#about section#philosophy {
    padding: 75px 0;
}
main#about section#philosophy div.flexWrap {
    justify-content: space-between;
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
}
main#about section#philosophy div.flexWrap div.flexL {
    width: 100%;
    /*width: 37.5%;*/
}
main#about section#philosophy div.flexWrap div.flexL p {
    line-height: 1.5;
}
main#about section#philosophy div.flexWrap div.flexL p.copy {
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 25px;
}
main#about section#philosophy div.flexWrap div.flexR {
    width: 43.75%;
}

main#about section#code-of-conduct {
    padding: 75px 0;
}
main#about section#code-of-conduct ol {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 90%;
    max-width: 840px;
    padding: 25px 0 75px;
    margin: 0 auto;
}
main#about section#code-of-conduct ol li,
main#about section#code-of-conduct ol li.wide div.flexL,
main#about section#code-of-conduct ol li.wide div.flexR {
    width: 47.5%;
}
main#about section#code-of-conduct ol li.wide {
    justify-content: space-between;
    width: 100%;
    border-top: #7EBDDA solid 1px;
    padding: 50px 0 0;
    margin: 50px 0 0;
}
main#about section#code-of-conduct ol li div.block {
    padding: 0 50px 0 0;
}
main#about section#code-of-conduct ol li div.block p {
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    line-height: 1.5;
    padding: 0 0 0 50px;
}
main#about section#code-of-conduct ol li div.block p.ttl {
    position: relative;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 15px;
}
main#about section#code-of-conduct ol li div.block p.ttl span {
    position: absolute;
    top: 0;
    left: 0;
    color: #F8B62D;
    font-size: calc( 30 / var(--root-font-size) * 1rem );
    line-height: 1.125;
}

main#about section#service {
    padding: 75px 0;
}
main#about section#service div.message {
    width: 90%;
    max-width: 1000px;
    background: url("../images/service_illust.png") no-repeat right bottom;
    background-size: 225px 210px;
    padding: 100px 0;
    margin: 0 auto;
}
main#about section#service div.message p {
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    letter-spacing: 0.1em;
    line-height: 2;
    padding: 0 calc(2.5% + 225px) 0 7.5%;
}
main#about section#service div.message p span {
    color: #007DB6;
    font-weight: 700;
}

main#about section#staff {
    padding: 75px 0;
}
main#about section#staff div.flexWrap {
    justify-content: space-between;
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
}
main#about section#staff div.flexWrap div.flexL {
    width: 43.75%;
}
main#about section#staff div.flexWrap div.flexR {
    position: relative;
    align-content: flex-end;
    width: 100%;
    /*width: 48.75%;*/
}
main#about section#staff div.flexWrap div.flexR p {
    line-height: 1.5;
}
main#about section#staff div.flexWrap div.flexR p.position {
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 500;
    margin: 0 0 10px;
}
main#about section#staff div.flexWrap div.flexR p.name {
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 25px;
}
main#about section#staff div.flexWrap div.flexR p.furigana {
    position: absolute;
    top: 0;
    right: 0;
    color: #007DB6;
    letter-spacing: 0.1em;
    writing-mode: vertical-rl;
}

main#about section#company {
    padding: 75px 0 150px;
}
main#about section#company div.flexWrap {
    justify-content: space-between;
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
}
main#about section#company div.flexWrap div.flexL {
    width: 20%;
}
main#about section#company div.flexWrap div.flexR {
    width: 75%;
}

@media screen and (max-width: 960px) {
main#about {
}
main#about section#philosophy {
    padding: 75px 0 0;
}
main#about section#philosophy div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 85%;
    max-width: 1000px;
    margin: 0 auto;
}
main#about section#philosophy div.flexWrap div.flexL {
    width: 100%;
    padding: 0 0 25px;
}
main#about section#philosophy div.flexWrap div.flexL p {
    line-height: 1.5;
}
main#about section#philosophy div.flexWrap div.flexL p.copy {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 15px;
}
main#about section#philosophy div.flexWrap div.flexR {
    width: 100%;
}

main#about section#code-of-conduct {
    padding: 75px 0 0;
}
main#about section#code-of-conduct ol {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 85%;
    max-width: 840px;
    padding: 0 0 25px;
    margin: 0 auto;
}
main#about section#code-of-conduct ol li,
main#about section#code-of-conduct ol li.wide div.flexL,
main#about section#code-of-conduct ol li.wide div.flexR {
    width: 100%;
}
main#about section#code-of-conduct ol li.wide {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    border-top: none;
    padding: 0;
    margin: 0;
}
main#about section#code-of-conduct ol li div.block {
    border-bottom: #7EBDDA solid 1px;
    padding: 25px 0;
}
main#about section#code-of-conduct ol li:last-child div.block {
    border-bottom: none;
}
main#about section#code-of-conduct ol li div.block p {
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    line-height: 1.5;
    padding: 0;
}
main#about section#code-of-conduct ol li div.block p.ttl {
    position: relative;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 15px;
}
main#about section#code-of-conduct ol li div.block p.ttl span {
    position: inherit;
    top: inherit;
    left: inherit;
    display: block;
    color: #F8B62D;
    font-size: calc( 22 / var(--root-font-size) * 1rem );
    line-height: 1.5;
}
main#about section#code-of-conduct div.txtBlock.center {
    width: 85%;
    margin: 0 auto;
}
main#about section#code-of-conduct div.txtBlock.center p {
    font-size: calc( 18 / var(--root-font-size) * 1rem );
}

main#about section#service {
    padding: 75px 0 25px;
}
main#about section#service div.message {
    width: 85%;
    max-width: 1000px;
    background: url("../images/service_illust.png") no-repeat right bottom;
    background-size: 225px 210px;
    padding: 50px 0 225px;
    margin: 0 auto;
}
main#about section#service div.message p {
    font-size: calc( 18 / var(--root-font-size) * 1rem );
    letter-spacing: 0.1em;
    line-height: 2;
    padding: 0;
}
main#about section#service div.message p span {
    color: #007DB6;
    font-weight: 700;
}

main#about section#staff {
    padding: 75px 0 25px;
}
main#about section#staff div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 85%;
    max-width: 1000px;
    margin: 0 auto;
}
main#about section#staff div.flexWrap div.flexL {
    width: 100%;
    padding: 0 0 25px;
}
main#about section#staff div.flexWrap div.flexR {
    position: relative;
    align-content: flex-end;
    width: 100%;
    padding: 0 50px 0 0;
}
main#about section#staff div.flexWrap div.flexR p {
    line-height: 1.5;
}
main#about section#staff div.flexWrap div.flexR p.position {
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    font-weight: 500;
    margin: 0 0 5px;
}
main#about section#staff div.flexWrap div.flexR p.name {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 25px;
}
main#about section#staff div.flexWrap div.flexR p.furigana {
    position: absolute;
    top: 0;
    right: 0;
    color: #007DB6;
    letter-spacing: 0.1em;
    writing-mode: vertical-rl;
}

main#about section#company {
    padding: 75px 0 100px;
}
main#about section#company div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 85%;
    max-width: 1000px;
    margin: 0 auto;
}
main#about section#company div.flexWrap div.flexL {
    width: 100%;
    padding: 0 0 25px;
}
main#about section#company div.flexWrap div.flexR {
    width: 100%;
}
}

/*----- Works -----*/
main#works div.article {
    background: #E5F2F8;
    padding: 150px 0;
}
main#works ul.archive {
    flex-wrap: wrap;
    justify-content: space-between;
}
main#works ul.archive li.post {
    width: 46.25%;
    margin: 0 0 50px;
}

@media screen and (max-width: 960px) {
main#works div.article {
    background: #E5F2F8;
    padding: 15px 0 100px;
}
main#works ul.archive {
    flex-wrap: wrap;
    justify-content: center;
}
main#works ul.archive li.post {
    width: 100%;
    max-width: 300px;
    margin: 0 min(2vw, 7.5px) 30px;
}
}

/*----- News -----*/
main#news div.article {
    padding: 0 0 150px;
}
main#news ul.archive {
    padding: 0 0 50px;
}

@media screen and (max-width: 960px) {
main#news div.article {
    padding: 15px 0 100px;
}
main#news ul.archive {
    padding: 0;
}
}

/*----- Recruit -----*/
main#recruit {
}

main#recruit section#recruit-message {
    background: #E5F2F8;
    padding: 125px 0;
}
main#recruit section#recruit-message div.flexWrap {
    justify-content: space-between;
    width: 90%;
    max-width: 840px;
    padding: 100px 0;
    margin: 0 auto;
}
main#recruit section#recruit-message div.flexWrap div.flexL {
    width: 47.5%;
}
main#recruit section#recruit-message div.flexWrap div.flexR {
    width: 100%;
    /*width: 45%;*/
}
main#recruit section#recruit-message div.flexWrap div.flexR p {
    line-height: 1.5;
}
main#recruit section#recruit-message div.flexWrap div.flexR p.copy {
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 25px;
}
main#recruit section#recruit-message div.pickup {
    width: 90%;
    max-width: 840px;
    background: #FFF;
    border-radius: 10px;
    padding: 35px 0;
    margin: 0 auto;
}
main#recruit section#recruit-message div.pickup p.ttl {
    position: relative;
    color: #007DB6;
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    text-indent: 0.05em;
    padding: 0 0 25px;
    margin: 0 0 25px;
}
main#recruit section#recruit-message div.pickup p.ttl::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 30px;
    height: 4px;
    background: #F8B62D;
    border-radius: 2px;
    margin: 0 auto;
}
main#recruit section#recruit-message div.pickup div.flexWrap {
    align-items: center;
    width: 100%;
    max-width: inherit;
    padding: 0 7.5%;
}
main#recruit section#recruit-message div.pickup div.flexWrap div.flexL {
    width: 100%;
    /*width: 57.5%;*/
}
main#recruit section#recruit-message div.pickup div.flexWrap div.flexL p {
    color: #007DB6;
    line-height: 1.5;
}
main#recruit section#recruit-message div.pickup div.flexWrap div.flexR {
    width: 40%;
}

main#recruit section#requirements {
    padding: 125px 0 75px;
}
main#recruit section#requirements div.flexWrap,
main#recruit section#requirements table {
    width: 90%;
    max-width: 840px;
    margin: 0 auto;
}
main#recruit section#requirements div.flexWrap {
    justify-content: space-between;
    padding: 75px 0;
}
main#recruit section#requirements div.flexWrap div.block {
    border: #007DB6 solid 1px;
    border-radius: 10px;
    padding: 15px 20px;
}
main#recruit section#requirements div.flexWrap div.block:nth-of-type(1) {
    width: 40%;
}
main#recruit section#requirements div.flexWrap div.block:nth-of-type(2) {
    width: 55%;
}
main#recruit section#requirements div.flexWrap div.block p {
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    line-height: 1.5;
}
main#recruit section#requirements div.flexWrap div.block p.ttl {
    color: #007DB6;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    padding: 0 0 10px;
}
main#about section#company div.flexWrap table,
main#recruit section#requirements table {
    line-height: 1.5;
}
main#about section#company div.flexWrap table tr,
main#recruit section#requirements table tr {
    border-bottom: #7EBDDA solid 1px;
}
main#about section#company div.flexWrap table tr:first-child,
main#recruit section#requirements table tr:first-child {
    border-top: #7EBDDA solid 1px;
}
main#about section#company div.flexWrap table tr th,
main#recruit section#requirements table tr th {
    width: 30%;
    color: #007DB6;
    font-weight: 700;
    padding: 25px 5%;
}
main#about section#company div.flexWrap table tr td,
main#recruit section#requirements table tr td {
    width: 70%;
    padding: 25px 0;
}

main#recruit section#recruit-flow {
    padding: 75px 0 0;
}
main#recruit section#recruit-flow ol {
    width: 90%;
    max-width: 840px;
    padding: 0 0 125px;
    margin: 0 auto;
}
main#recruit section#recruit-flow ol li {
    background: #E3E3E3;
    border-radius: 10px;
    padding: 25px 7.5% 35px;
    margin: 0 0 25px;
}
main#recruit section#recruit-flow ol li:last-child {
    margin: 0;
}
main#recruit section#recruit-flow ol li p {
    line-height: 1.5;
}
main#recruit section#recruit-flow ol li p.ttl {
    position: relative;
    color: #007DB6;
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    font-weight: 700;
    padding: 0 0 0 32px;
    margin: 0 0 10px;
}
main#recruit section#recruit-flow ol li p.ttl span.num {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    display: block;
    width: 22px;
    height: 22px;
    color: #FFF;
    background: #007DB6;
    border-radius: 5px;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    line-height: 20px;
    text-align: center;
    text-indent: 0.05em;
    margin: auto 0;
}
main#recruit section#recruit-flow ol li p.ttl span.small {
    font-size: calc( 22 / var(--root-font-size) * 1rem );
}
main#recruit section#recruit-flow ol li div.flexWrap {
    justify-content: space-between;
}
main#recruit section#recruit-flow ol li div.flexWrap p {
    width: calc(100% - 290px);
}
main#recruit section#recruit-flow ol li div.flexWrap .btn {
    width: 240px;
}
main#recruit section#recruit-flow div.message {
    background: #007DB6;
    color: #FFF;
    padding: 125px 0;
}
main#recruit section#recruit-flow div.message div.flexWrap {
    justify-content: space-between;
    width: 90%;
    max-width: 840px;
    margin: 0 auto;
}
main#recruit section#recruit-flow div.message div.flexWrap div.flexL {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    /*width: 50%;*/
}
main#recruit section#recruit-flow div.message div.flexWrap div.flexL p {
    width: 100%;
    line-height: 1.5;
}
main#recruit section#recruit-flow div.message div.flexWrap div.flexL p.copy {
    align-content: flex-end;
    color: #FFF;
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 25px 0 0;
}
main#recruit section#recruit-flow div.message div.flexWrap div.flexR {
    width: 47.5%;
}

main#recruit section#entry {
    padding: 125px 0 150px;
}

@media screen and (max-width: 960px) {
main#recruit {
}

main#recruit section#recruit-message {
    background: #E5F2F8;
    padding: 75px 0 50px;
}
main#recruit section#recruit-message div.txtBlock.center,
main#recruit section#requirements div.txtBlock.center,
main#recruit section#entry div.txtBlock.center {
    width: 85%;
    margin: 0 auto;
}
main#recruit section#recruit-message div.txtBlock.center p,
main#recruit section#requirements div.txtBlock.center p,
main#recruit section#entry div.txtBlock.center p {
    text-align: inherit;
    text-indent: inherit;
}
main#recruit section#recruit-message div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 85%;
    max-width: 840px;
    padding: 50px 0;
    margin: 0 auto;
}
main#recruit section#recruit-message div.flexWrap div.flexL {
    width: 100%;
    padding: 0 0 25px;
}
main#recruit section#recruit-message div.flexWrap div.flexR {
    width: 100%;
}
main#recruit section#recruit-message div.flexWrap div.flexR p {
    line-height: 1.5;
}
main#recruit section#recruit-message div.flexWrap div.flexR p.copy {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 25px;
}
main#recruit section#recruit-message div.pickup {
    width: 90%;
    max-width: 840px;
    background: #FFF;
    border-radius: 10px;
    padding: 35px 0;
    margin: 0 auto;
}
main#recruit section#recruit-message div.pickup p.ttl {
    position: relative;
    color: #007DB6;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    line-height: 1.5;
    text-align: inherit;
    text-indent: inherit;
    padding: 0 min(8vw, 30px) 25px;
    margin: 0 0 25px;
}
main#recruit section#recruit-message div.pickup p.ttl::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: min(8vw, 30px);
    right: inherit;
    width: 50px;
    height: 4px;
    background: #F8B62D;
    border-radius: 2px;
    margin: 0;
}
main#recruit section#recruit-message div.pickup div.flexWrap {
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
    max-width: inherit;
    padding: 0 min(8vw, 30px);
}
main#recruit section#recruit-message div.pickup div.flexWrap div.flexL {
    width: 100%;
}
main#recruit section#recruit-message div.pickup div.flexWrap div.flexL p {
    color: #007DB6;
    line-height: 1.5;
}
main#recruit section#recruit-message div.pickup div.flexWrap div.flexR {
    width: 100%;
}

main#recruit section#requirements {
    padding: 75px 0 25px;
}
main#recruit section#requirements div.flexWrap,
main#recruit section#requirements table {
    width: 90%;
    max-width: 840px;
    margin: 0 auto;
}
main#recruit section#requirements div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 25px 0 50px;
}
main#recruit section#requirements div.flexWrap div.block {
    border: #007DB6 solid 1px;
    border-radius: 10px;
    padding: 15px min(4vw, 15px);
}
main#recruit section#requirements div.flexWrap div.block:nth-of-type(1) {
    width: 100%;
    margin: 0 0 15px;
}
main#recruit section#requirements div.flexWrap div.block:nth-of-type(2) {
    width: 100%;
}
main#recruit section#requirements div.flexWrap div.block p {
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    line-height: 1.5;
}
main#recruit section#requirements div.flexWrap div.block p.ttl {
    color: #007DB6;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    padding: 0 0 10px;
}
main#about section#company div.flexWrap table,
main#recruit section#requirements table {
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    line-height: 1.5;
}
main#about section#company div.flexWrap table tr,
main#recruit section#requirements table tr {
    border-bottom: #7EBDDA solid 1px;
}
main#about section#company div.flexWrap table tr:first-child,
main#recruit section#requirements table tr:first-child {
    border-top: #7EBDDA solid 1px;
}
main#about section#company div.flexWrap table tr th,
main#recruit section#requirements table tr th {
    width: 80px;
    color: #007DB6;
    font-weight: 700;
    padding: 15px 0;
}
main#about section#company div.flexWrap table tr td,
main#recruit section#requirements table tr td {
    width: calc(100% - 80px);
    padding: 15px 0;
}

main#recruit section#recruit-flow {
    padding: 75px 0 0;
}
main#recruit section#recruit-flow ol {
    width: 85%;
    max-width: 840px;
    padding: 0 0 75px;
    margin: 0 auto;
}
main#recruit section#recruit-flow ol li {
    background: #E3E3E3;
    border-radius: 10px;
    padding: 25px min(8vw, 30px) 35px;
    margin: 0 0 15px;
}
main#recruit section#recruit-flow ol li:last-child {
    margin: 0;
}
main#recruit section#recruit-flow ol li p {
    line-height: 1.5;
}
main#recruit section#recruit-flow ol li p.ttl {
    position: relative;
    color: #007DB6;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    padding: 0 0 0 32px;
    margin: 0 0 10px;
}
main#recruit section#recruit-flow ol li p.ttl span.num {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    display: block;
    width: 22px;
    height: 22px;
    color: #FFF;
    background: #007DB6;
    border-radius: 5px;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    line-height: 20px;
    text-align: center;
    text-indent: 0.05em;
    margin: auto 0;
}
main#recruit section#recruit-flow ol li p.ttl span.small {
    font-size: calc( 20 / var(--root-font-size) * 1rem );
}
main#recruit section#recruit-flow ol li div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
}
main#recruit section#recruit-flow ol li div.flexWrap p {
    width: 100%;
    margin: 0 0 25px;
}
main#recruit section#recruit-flow ol li div.flexWrap .btn {
    width: 240px;
}
main#recruit section#recruit-flow div.message {
    background: #007DB6;
    color: #FFF;
    padding: 50px 0;
}
main#recruit section#recruit-flow div.message div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 85%;
    max-width: 840px;
    margin: 0 auto;
}
main#recruit section#recruit-flow div.message div.flexWrap div.flexL {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    padding: 0 0 25px;
}
main#recruit section#recruit-flow div.message div.flexWrap div.flexL p {
    width: 100%;
    line-height: 1.5;
}
main#recruit section#recruit-flow div.message div.flexWrap div.flexL p.copy {
    align-content: flex-end;
    color: #FFF;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 25px 0 0;
}
main#recruit section#recruit-flow div.message div.flexWrap div.flexR {
    width: 100%;
}

main#recruit section#entry {
    padding: 75px 0 100px;
}
}

/*----- contact -----*/
main#contact {
}

#form {
    width: 90%;
    max-width: 600px;
    padding: 50px 0 150px;
    margin: 0 auto;
}
#form table {
}
#form table th,
#form table td,
#form p.ttl {
    display: block;
    line-height: 1.5;
}
#form table th,
#form p.ttl {
    width: 100%;
    color: #007DB6;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 5px 0;
}
#form table th .required {
    display: inline-block;
    width: 45px;
    background: #F8B62D;
    border-radius: 5px;
    color: #FFF;
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 24px;
    text-align: center;
    text-indent: 0.05em;
    margin: 0 0 0 15px;
}
#form table td {
    width: 100%;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    padding: 5px 0 25px;
}
#form table td.select {
    color: #007DB6;
}
#form div.check {
    color: #007DB6;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 75px;
}

#form table td input,
#form table td textarea {
    display: inline-block;
    width: 100%;
    border: #7EBDDA solid 1px;
    border-radius: 5px;
    padding: 15px;
}
#form table td.short {
    display: flex;
    justify-content: space-between;
}
#form table td.short .wpcf7-form-control-wrap {
    width: 48.75%;
}
#form table td select {
    padding: 0;
}
div.wpcf7 ::placeholder {
	color: #E3E3E3;
}
div.wpcf7 .wpcf7-spinner {
    display: none!important;
}
span.wpcf7-not-valid-tip {
    color: #FF3E3E;
    line-height: 1.5;
    margin: 0 15px;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
    width: 100%;
    background: #FFF;
    border-radius: 5px;
    border: none!important;
    color: #FF3E3E;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    line-height: 1.5;
    text-align: center;
    text-indent: 0.05em;
    padding: 10px 15px;
    margin: 25px auto 0;
}

#form div.privacy_policy {
    width: 100%;
	border: #7EBDDA solid 1px;
    border-radius: 5px;
	padding: 25px;
	margin: 0 auto 25px;
}
#form div.privacy_policy div.wrap {
    overflow-y: scroll;
    overflow-x: hidden;
    width: 100%;
    height: 150px;
    padding: 0 25px 0 0;
    margin: 0 auto;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar {
    width: 4px;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar-track {
    background: #E3E3E3;
    border-radius: 2px;
    border: none;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar-thumb {
    background: #007DB6;
    border-radius: 2px;
}
#form div.privacy_policy div.wrap p {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 1.5;
}
#form div.privacy_policy div.wrap p span {
    color: #FF3E3E;
}
#form div.privacy_policy div.wrap article {
    padding: 0 0 1.5em;
}

.wpcf7-list-item {
    display: block;
    margin: 10px 30px 10px 0!important;
}
input[type="checkbox"] {
    display: none!important;
}
.wpcf7-list-item-label {
    position: relative;
    height: 30px;
    line-height: 30px;
    padding-left: 40px;
    display: inline-block;
}
.wpcf7-list-item-label::before {
    content: "";
    display: block;
    width: 30px;
    height: 30px;
    border: #7EBDDA solid 1px;
    background: #FFF;
    border-radius: 5px;
    position: absolute;
    left: 0;
    top: 0;
    box-sizing: border-box;
}
input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
    content: "";
    display: block;
    width: 14px;
    height: 8px;
    border-top: 3px solid #F8B62D;
    border-right: 3px solid #F8B62D;
    transform: rotate(135deg);
    position: absolute;
    left: 8px;
    top: 9px;
}

#form ::file-selector-button {
    background: #007DB6;
    border: none;
    border-radius: 5px;
    color: #FFF;
    font-family: "Zen Kaku Gothic New", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "メイリオ", "Meiryo", sans-serif;
    line-height: 1.5;
    text-align: center;
    padding: 10px 15px;
    margin: 0 10px 0 0;
}

@media screen and (max-width: 960px) {
main#contact {
}
main#contact div.txtBlock.center {
    width: 85%;
    padding: 15px 0 0;
    margin: 0 auto;
}
main#contact div.txtBlock.center p {
    text-align: inherit;
    text-indent: inherit;
}

#form {
    width: 85%;
    max-width: 600px;
    padding: 50px 0 100px;
    margin: 0 auto;
}
#form table {
}
#form table th,
#form table td,
#form p.ttl {
    display: block;
    line-height: 1.5;
}
#form table th,
#form p.ttl {
    width: 100%;
    color: #007DB6;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 5px 0;
}
#form table th .required {
    display: inline-block;
    width: 45px;
    background: #F8B62D;
    border-radius: 5px;
    color: #FFF;
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 24px;
    text-align: center;
    text-indent: 0.05em;
    margin: 0 0 0 15px;
}
#form table td {
    width: 100%;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    padding: 5px 0 25px;
}
#form table td.select {
    color: #007DB6;
}
#form div.check {
    color: #007DB6;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    font-weight: 700;
    margin: 0 0 50px;
}

#form table td input,
#form table td textarea {
    display: inline-block;
    width: 100%;
    border: #7EBDDA solid 1px;
    border-radius: 5px;
    padding: 15px;
}
#form table td.short {
    display: flex;
    justify-content: space-between;
}
#form table td.short .wpcf7-form-control-wrap {
    width: 48.75%;
}
#form table td select {
    padding: 0;
}
div.wpcf7 ::placeholder {
	color: #E3E3E3;
}
div.wpcf7 .wpcf7-spinner {
    display: none!important;
}
span.wpcf7-not-valid-tip {
    color: #FF3E3E;
    line-height: 1.5;
    margin: 0 15px;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.sent .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
    width: 100%;
    background: #FFF;
    border-radius: 5px;
    border: none!important;
    color: #FF3E3E;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    line-height: 1.5;
    text-align: center;
    text-indent: 0.05em;
    padding: 10px 15px;
    margin: 25px auto 0;
}

#form div.privacy_policy {
    width: 100%;
	border: #7EBDDA solid 1px;
    border-radius: 5px;
	padding: 15px;
	margin: 0 auto 25px;
}
#form div.privacy_policy div.wrap {
    overflow-y: scroll;
    overflow-x: hidden;
    width: 100%;
    height: 150px;
    padding: 0 15px 0 0;
    margin: 0 auto;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar {
    width: 4px;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar-track {
    background: #E3E3E3;
    border-radius: 2px;
    border: none;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar-thumb {
    background: #007DB6;
    border-radius: 2px;
}
#form div.privacy_policy div.wrap p {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 1.5;
}
#form div.privacy_policy div.wrap p span {
    color: #FF3E3E;
}
#form div.privacy_policy div.wrap article {
    padding: 0 0 1.5em;
}

.wpcf7-list-item {
    display: block;
    margin: 5px 30px 5px 0!important;
}
input[type="checkbox"] {
    display: none!important;
}
.wpcf7-list-item-label {
    position: relative;
    height: 24px;
    line-height: 24px;
    padding-left: 34px;
    display: inline-block;
}
.wpcf7-list-item-label::before {
    content: "";
    display: block;
    width: 24px;
    height: 24px;
    border: #7EBDDA solid 1px;
    background: #FFF;
    border-radius: 5px;
    position: absolute;
    left: 0;
    top: 0;
    box-sizing: border-box;
}
input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
    content: "";
    display: block;
    width: 14px;
    height: 8px;
    border-top: 3px solid #F8B62D;
    border-right: 3px solid #F8B62D;
    transform: rotate(135deg);
    position: absolute;
    left: 5px;
    top: 6px;
}

#form ::file-selector-button {
    background: #007DB6;
    border: none;
    border-radius: 5px;
    color: #FFF;
    font-family: "Zen Kaku Gothic New", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "メイリオ", "Meiryo", sans-serif;
    line-height: 1.5;
    text-align: center;
    padding: 10px 15px;
    margin: 0 10px 0 0;
}
}