@charset "utf-8";

/*----- main -----*/
main {
    padding: 130px 0 0;
}
main h3,
main p,
main ul li,
main table {
    line-height: 1.5;
}

div.header {
    width: 80%;
    max-width: 1200px;
    min-height: 400px;
    margin: 50px auto 0;
}
div.header div.breadcrumb {
    font-size: calc( 10 / var(--root-font-size) * 1rem );
    margin: 0 0 15px;
}
div.header div.flexWrap {
    display: flex;
    justify-content: space-between;
}
div.header .mainTtl {
}
div.header .mainTtl .en {
    font-size: calc( 80 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
div.header .mainTtl .jp {
    position: relative;
    font-size: calc( 20 / var(--root-font-size) * 1rem );
    padding: 0 0 0 25px;
}
div.header .mainTtl .jp::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 14px;
    height: 14px;
    background: #FF7EB9;
    border-radius: 50%;
    margin: auto 0;
}
div.header aside {
    padding: 32px 0 0;
}
div.header aside ul {
}
div.header aside ul li {
    position: relative;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    padding: 0 0 0 20px;
    margin: 0 0 10px;
}
div.header aside ul li:last-child {
    margin: 0;
}
div.header aside ul li::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 7px;
    height: 7px;
    border: 0;
    border-top: #45577E solid 1px;
    border-right: #45577E solid 1px;
    transform: rotate(45deg);
    margin: auto 0;
}

div.introduction {
    padding: 0 0 100px;
}
div.introduction p {
    width: 90%;
    text-align: center;
    margin: 0 auto;
}
div.introduction p.ttl {
    font-size: calc( 40 / var(--root-font-size) * 1rem );
    font-weight: 700;
    padding: 0 0 25px;
}
div.introduction p.txt {
    max-width: 540px;
    line-height: 1.75;
}
div.introduction div.flexWrap.content {
    padding: 150px 0 0;
}

@media screen and (max-width: 960px) {
main {
    padding: 93px 0 0;
}
main h3,
main p,
main ul li,
main table {
    line-height: 1.5;
}

div.header {
    width: 90%;
    max-width: 1200px;
    min-height: auto;
    margin: 0 auto 75px;
}
div.header div.breadcrumb {
    font-size: calc( 10 / var(--root-font-size) * 1rem );
    margin: 0 0 30px;
}
div.header div.flexWrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
div.header .mainTtl {
    width: 100%;
}
div.header .mainTtl .en {
    font-size: calc( 40 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
div.header .mainTtl .jp {
    position: relative;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    padding: 0 0 0 25px;
}
div.header .mainTtl .jp::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 14px;
    height: 14px;
    background: #FF7EB9;
    border-radius: 50%;
    margin: auto 0;
}
div.header aside {
    padding: 50px 0 0;
}
div.header aside ul {
}
div.header aside ul li {
    position: relative;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    padding: 0 0 0 20px;
    margin: 0 0 10px;
}
div.header aside ul li:last-child {
    margin: 0;
}
div.header aside ul li::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 7px;
    height: 7px;
    border: 0;
    border-top: #45577E solid 1px;
    border-right: #45577E solid 1px;
    transform: rotate(45deg);
    margin: auto 0;
}

div.introduction {
    padding: 0 0 75px;
}
div.introduction p {
    width: 90%;
    text-align: center;
    margin: 0 auto;
}
div.introduction p.ttl {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    padding: 0 0 25px;
}
div.introduction p.txt {
    max-width: 540px;
    line-height: 1.75;
}
div.introduction div.flexWrap.content {
    padding: 75px 0 0;
}
}

/*----- company -----*/
main#company {
}
main#company section#feature {
    width: 80%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 100px 0;
    margin: 0 auto 50px;
}
main#company section#feature ol,
main#our-works section#service ol {
    width: 70vw;
    max-width: 900px;
    margin: 0 auto;
}
main#company section#feature ol li,
main#our-works section#service ol li {
    display: flex;
    justify-content: space-between;
}
main#company section#feature ol li {
    align-items: center;
    margin: 0 0 50px;
}
main#our-works section#service ol li {
    margin: 0 0 100px;
}
main#company section#feature ol li figure {
    width: 40%;
}
main#our-works section#service ol li figure {
    width: 45%;
}
main#our-works section#service ol li figure img {
    border-radius: 10px;
}
main#company section#feature ol li p,
main#our-works section#service ol li p {
}
main#company section#feature ol li p.num,
main#our-works section#service ol li p.num {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    padding: 0 0 10px;
}
main#company section#feature ol li p.num span,
main#our-works section#service ol li p.num span {
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    color: #FF7EB9;
}
main#company section#feature ol li .ttl,
main#our-works section#service ol li .ttl {
    font-size: calc( 34 / var(--root-font-size) * 1rem );
    padding: 0 0 25px;
}
main#company section#feature ol li .ttl span,
main#our-works section#service ol li .ttl span {
    color: #3172BF;
    font-weight: 700;
}
main#company section#feature ol li p.txt,
main#our-works section#service ol li p.txt {
    line-height: 1.75;
}
main#company section#feature ol li div.txtBlock,
main#our-works section#service ol li div.txtBlock {
    width: 50%;
}

main#company section#mission {
    width: 100%;
    padding: 100px 0 50px;
}

main#company section#goal {
    width: 100%;
    padding: 100px 0 150px;
}
main#company section#goal div.woman {
    background: #FFF;
    border-radius: 10px;
    padding: 25px;
    margin: 50px 0 0;
}
main#company section#goal div.woman .ttl {
    position: relative;
    color: #FF7EB9;
    font-size: inherit;
    font-weight: 700;
    padding: 0 0 0 20px;
    margin: 0 0 10px;
}
main#company section#goal div.woman .ttl::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 10px;
    height: 10px;
    background: #FF7EB9;
    border-radius: 50%;
    margin: auto 0;
}
main#company section#goal div.woman .txt {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 1.5;
}

main#company section#message {
    width: 100%;
    background: #3172BF;
    color: #FFF;
    padding: 150px 0;
    /*margin: 0 auto;*/
    margin: 0 auto 150px;
}
main#company section#message div.flexWrap.content div.imgBlock p,
main#company section#message-recruit div.flexWrap.content div.imgBlock p {
    padding: 0 25px;
}
main#company section#message div.flexWrap.content div.imgBlock p.position,
main#company section#message-recruit div.flexWrap.content div.imgBlock p.position {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    padding: 25px 25px 0;
}
main#company section#message div.flexWrap.content div.imgBlock p.name,
main#company section#message-recruit div.flexWrap.content div.imgBlock p.name {
    font-size: calc( 18 / var(--root-font-size) * 1rem );
}
main#company section#message div.flexWrap.content div.imgBlock p.name span,
main#company section#message-recruit div.flexWrap.content div.imgBlock p.name span {
    font-size: calc( 10 / var(--root-font-size) * 1rem );
}

main#company section#message-recruit {
    width: 100%;
    background: #FFF;
    padding: 150px 0;
    margin: 0 auto 150px;
}

main#company section#profile {
    width: 80%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 100px 0;
    margin: 0 auto;
}
main#company section#profile table {
    width: 70vw;
    max-width: 900px;
    margin: 0 auto;
}
main#company section#profile table tr:nth-child(odd) {
    background: rgba(49, 114, 190, 0.05);
}
main#company section#profile table tr th {
    width: 35%;
    color: #3172BE;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 600;
    vertical-align: middle;
    padding: 25px 0 25px 10%;
}
main#company section#profile table tr td {
    padding: 25px 0;
}

@media screen and (max-width: 960px) {
main#company {
}
main#company section#feature {
    width: 90%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 50px 0;
    margin: 0 auto 50px;
}
main#company section#feature ol,
main#our-works section#service ol {
    width: 80vw;
    max-width: 900px;
    margin: 0 auto;
}
main#company section#feature ol li,
main#our-works section#service ol li {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
main#our-works section#service ol li {
    flex-direction: column-reverse;
}
main#company section#feature ol li {
    align-items: center;
    margin: 0 0 50px;
}
main#our-works section#service ol li {
    margin: 0 0 50px;
}
main#company section#feature ol li figure {
    width: 60vw;
    margin: 0 0 25px;
}
main#our-works section#service ol li figure {
    width: 100%;
    margin: 0 0 25px;
}
main#our-works section#service ol li figure img {
    border-radius: 10px;
}
main#company section#feature ol li p,
main#our-works section#service ol li p {
}
main#company section#feature ol li p.num,
main#our-works section#service ol li p.num {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    padding: 0 0 10px;
}
main#company section#feature ol li p.num span,
main#our-works section#service ol li p.num span {
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    color: #FF7EB9;
}
main#company section#feature ol li .ttl,
main#our-works section#service ol li .ttl {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    padding: 0 0 25px;
}
main#company section#feature ol li .ttl span,
main#our-works section#service ol li .ttl span {
    color: #3172BF;
    font-weight: 700;
}
main#company section#feature ol li p.txt,
main#our-works section#service ol li p.txt {
    line-height: 1.75;
}
main#company section#feature ol li div.txtBlock,
main#our-works section#service ol li div.txtBlock {
    width: 100%;
}

main#company section#mission {
    width: 100%;
    padding: 50px 0;
}
main#company section#mission div.flexWrap.content {
    flex-direction: column-reverse;
}

main#company section#goal {
    width: 100%;
    padding: 50px 0 75px;
}
main#company section#goal div.woman {
    background: #FFF;
    border-radius: 10px;
    padding: 25px 5vw;
    margin: 25px 0 0;
}
main#company section#goal div.woman .ttl {
    position: relative;
    color: #FF7EB9;
    font-size: inherit;
    font-weight: 700;
    padding: 0 0 0 20px;
    margin: 0 0 10px;
}
main#company section#goal div.woman .ttl::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 10px;
    height: 10px;
    background: #FF7EB9;
    border-radius: 50%;
    margin: auto 0;
}
main#company section#goal div.woman .txt {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 1.5;
}

main#company section#message {
    width: 100%;
    background: #3172BF;
    color: #FFF;
    padding: 75px 0;
    /*margin: 0 auto;*/
    margin: 0 auto 75px;
}
main#company section#message div.flexWrap.content div.imgBlock p,
main#company section#message-recruit div.flexWrap.content div.imgBlock p {
    padding: 0 25px;
}
main#company section#message div.flexWrap.content div.imgBlock p.position,
main#company section#message-recruit div.flexWrap.content div.imgBlock p.position {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    padding: 15px 5vw 0;
}
main#company section#message div.flexWrap.content div.imgBlock p.name,
main#company section#message-recruit div.flexWrap.content div.imgBlock p.name {
    font-size: calc( 18 / var(--root-font-size) * 1rem );
}
main#company section#message div.flexWrap.content div.imgBlock p.name span,
main#company section#message-recruit div.flexWrap.content div.imgBlock p.name span {
    font-size: calc( 10 / var(--root-font-size) * 1rem );
}

main#company section#message-recruit {
    width: 100%;
    background: #FFF;
    padding: 150px 0;
    margin: 0 auto 150px;
}

main#company section#profile {
    width: 90%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 50px 0;
    margin: 0 auto;
}
main#company section#profile table {
    width: 80vw;
    max-width: 900px;
    margin: 0 auto;
}
main#company section#profile table tr:nth-child(odd) {
    background: rgba(49, 114, 190, 0.05);
}
main#company section#profile table tr th,
main#company section#profile table tr td {
    display: block;
    width: 100%;
}
main#company section#profile table tr th {
    width: 100%;
    color: #3172BE;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 600;
    vertical-align: middle;
    padding: 25px 5vw 5px;
}
main#company section#profile table tr td {
    padding: 0 5vw 25px;
}
}

/*----- our-works -----*/
main#our-works {
}
main#our-works section#about,
main#our-works section#service {
    width: 80%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 100px 0;
    margin: 0 auto 50px;
}
main#our-works section#about p.txt {
    width: 450px;
    line-height: 1.75;
    text-align: center;
    margin: 0 auto;
}
main#our-works section#about p.txt span {
    color: #FF7EB9;
}
main#our-works section#about div.img {
    width: 100%;
    max-width: 800px;
    margin: 50px auto 0;
}
main#our-works section#service p.message {
    width: 100%;
    max-width: 810px;
    line-height: 1.75;
    font-size: calc( 32 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    margin: 0 auto;
}

main#our-works section#process,
main#our-works section#works {
    width: 100%;
    padding: 100px 0 150px;
}
main#our-works section#process div.stepWrap {
    position: relative;
    width: 80%;
    max-width: 900px;
    margin: 0 auto;
}
main#our-works section#process div.stepWrap::before {
    content: "";
    position: absolute;
    top: 0;
    left: 68px;
    width: 14px;
    height: 100%;
    background: #D9DCE5;
}
main#our-works section#process div.step {
    position: relative;
    z-index: 9;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: #FFF;
    border-radius: 20px;
    padding: 30px;
    margin: 0 0 40px;
}
main#our-works section#process div.step:nth-of-type(4) {
    margin: 0 0 90px;
}
main#our-works section#process div.step.blue {
    background: #3172BE;
    color: #FFF;
}
main#our-works section#process p.step {
    color: #3172BE;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    text-align: center;
    margin: 0 0 40px;
}
main#our-works section#process div.step div.number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 90px;
    background: #3172BE;
    border-radius: 50%;
    color: #FFF;
    text-align: center;
}
main#our-works section#process div.step.blue div.number {
    background: #FFF;
    color: #3172BE;
}
main#our-works section#process div.step div.number p {
    font-size: calc( 18 / var(--root-font-size) * 1rem );
    font-weight: 700;
    line-height: 1;
}
main#our-works section#process div.step div.number p span {
    font-size: calc( 34 / var(--root-font-size) * 1rem );
}
main#our-works section#process div.step div.txtBlock {
    width: calc(100% - 120px);
}
main#our-works section#process div.step div.txtBlock p {
    line-height: 1.5;
}
main#our-works section#process div.step div.txtBlock p.ttl {
    color: #3172BE;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
main#our-works section#process div.step.blue div.txtBlock p.ttl {
    color: #FFF;
}
main#our-works section#works div.flexWrap {
    justify-content: center;
}
main#our-works section#works div.flexWrap div {
    margin: 0 min(3vw, 45px);
}

@media screen and (max-width: 960px) {
main#our-works {
}
main#our-works section#about,
main#our-works section#service {
    width: 90%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 50px 0;
    margin: 0 auto 50px;
}
main#our-works section#about p.txt {
    width: 80vw;
    max-width: 900px;
    line-height: 1.75;
    text-align: center;
    margin: 0 auto;
}
main#our-works section#about p.txt span {
    color: #FF7EB9;
}
main#our-works section#about div.img {
    width: 80vw;
    max-width: 315px;
    text-align: center;
    margin: 50px auto 0;
}
main#our-works section#service p.message {
    width: 80vw;
    max-width: 810px;
    line-height: 1.75;
    font-size: calc( 18 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    margin: 0 auto;
}

main#our-works section#process,
main#our-works section#works {
    width: 100%;
    padding: 50px 0;
}
main#our-works section#process div.stepWrap {
    position: relative;
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}
main#our-works section#process div.stepWrap::before {
    content: "";
    position: absolute;
    top: 0;
    left: 40px;
    width: 10px;
    height: 100%;
    background: #D9DCE5;
}
main#our-works section#process div.step {
    position: relative;
    z-index: 9;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    background: #FFF;
    border-radius: 20px;
    padding: 25px 5vw;
    margin: 0 0 25px;
}
main#our-works section#process div.step:nth-of-type(4) {
    margin: 0 0 50px;
}
main#our-works section#process div.step.blue {
    background: #3172BE;
    color: #FFF;
}
main#our-works section#process p.step {
    color: #3172BE;
    font-size: calc( 18 / var(--root-font-size) * 1rem );
    font-weight: 600;
    text-align: center;
    margin: 0 0 25px;
}
main#our-works section#process div.step div.number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 75px;
    height: 75px;
    background: #3172BE;
    border-radius: 50%;
    color: #FFF;
    text-align: center;
}
main#our-works section#process div.step.blue div.number {
    background: #FFF;
    color: #3172BE;
}
main#our-works section#process div.step div.number p {
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    line-height: 1;
}
main#our-works section#process div.step div.number p span {
    font-size: calc( 28 / var(--root-font-size) * 1rem );
}
main#our-works section#process div.step div.txtBlock {
    width: 100%;
}
main#our-works section#process div.step div.txtBlock p {
    line-height: 1.5;
}
main#our-works section#process div.step div.txtBlock p.ttl {
    color: #3172BE;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    text-align: center;
    padding: 10px 0;
}
main#our-works section#process div.step.blue div.txtBlock p.ttl {
    color: #FFF;
}
main#our-works section#works div.flexWrap {
    flex-wrap: wrap;
    justify-content: center;
}
main#our-works section#works div.flexWrap div {
    width: 100%;
    max-width: 350px;
    margin: 0 min(10vw, 37.5px) 25px;
}
}

/*----- work-style -----*/
main#work-style {
}
main#work-style section#interview {
    width: 80%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 100px 0;
    margin: 0 auto 50px;
}
main#work-style section#interview aside {
    width: 70vw;
    max-width: 900px;
    margin: 0 auto 50px;
}
main#work-style section#interview aside ul {
    display: flex;
    justify-content: space-between;
}
main#work-style section#interview aside ul li {
    display: inline-block;
    position: relative;
    width: 30%;
    max-width: 255px;
    padding: 0 0 25px;
}
main#work-style section#interview aside ul li::before,
main#work-style section#interview aside ul li::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 5px;
    width: 1px;
    height: 8px;
    border-radius: 9999px;
    background: #465065;
    transform-origin: 50% calc(100% - 0.5px);
    transition: 0.5s 0s;
}
main#work-style section#interview aside ul li:hover::before,
main#work-style section#interview aside ul li:hover::after {
    bottom: -5px;
}
main#work-style section#interview aside ul li::before {
    transform: rotate(45deg);
}
main#work-style section#interview aside ul li::after {
    transform: rotate(-45deg);
}
main#work-style section#interview aside ul li a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
main#work-style section#interview aside ul li p.num {
    position: relative;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
}
main#work-style section#interview aside ul li p.num::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 45%;
    height: 1px;
    background: #465065;
    margin: auto 0;
}
main#work-style section#interview aside ul li p.num span {
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    color: #FF7EB9;
}
main#work-style section#interview aside ul li .ttl {
    font-size: calc( 20 / var(--root-font-size) * 1rem );
    font-weight: 600;
    transition: 0.5s 0s;
}
main#work-style section#interview aside ul li:hover .ttl {
    color: #FF7EB9;
}
main#work-style section#interview div.interview {
    width: 70vw;
    max-width: 900px;
    border-top: #F5F5F5 solid 5px;
    padding: 100px 0;
    margin: 0 auto;
}
main#work-style section#interview div.interview div.flexWrap div.imgBlock img {
    border-radius: 20px;
}
main#work-style section#interview div.interview div.flexWrap.top {
    justify-content: space-between;
}
main#work-style section#interview div.interview div.flexWrap.top div.imgBlock {
    width: 45%;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock {
    display: flex;
    flex-direction: column;
    width: 50%;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock div {
    margin-top: auto;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock p.num {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    padding: 0 0 10px;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock p.num span {
    font-size: calc( 42 / var(--root-font-size) * 1rem );
    color: #FF7EB9;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock .ttl {
    font-size: calc( 34 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock p.name {
    font-size: calc( 20 / var(--root-font-size) * 1rem );
}
main#work-style section#interview div.interview div.flexWrap.bottom {
    align-items: flex-end;
    justify-content: space-between;
}
main#work-style section#interview div.interview div.flexWrap.bottom div.imgBlock {
    width: 35%;
}
main#work-style section#interview div.interview div.flexWrap.bottom div.txtBlock {
    width: 60%;
}
main#work-style section#interview div.interview div.flexWrap.bottom div.txtBlock .question {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 75px 0 15px;
}

main#work-style section#benefit {
    width: 100%;
    padding: 100px 0 50px;
}
main#work-style section#benefit div.img {
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}

main#work-style section#rewarding {
    width: 100%;
    padding: 100px 0 150px;
}
main#work-style section#rewarding ul {
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}
main#work-style section#rewarding ul li {
    display: flex;
    min-height: 175px;
    background: #FFF;
    border-radius: 20px;
    margin: 0 0 30px;
}
main#work-style section#rewarding ul li:last-child {
    margin: 0;
}
main#work-style section#rewarding ul li div.txtBlock {
    align-content: center;
    width: 65%;
    padding: 30px;
}
main#work-style section#rewarding ul li div.txtBlock p.txt,
main#work-style section#rewarding ul li div.txtBlock .ttl {
    color: #3172BE;
}
main#work-style section#rewarding ul li div.txtBlock p.txt {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    padding: 0 0 5px;
}
main#work-style section#rewarding ul li div.txtBlock .ttl {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
main#work-style section#rewarding ul li div.imgBlock {
    width: 35%;
    border-top-right-radius: 20px;
    border-bottom-right-radius: 20px;
}
main#work-style section#rewarding ul li:nth-child(1) div.imgBlock {
    background: url("../images/rewarding_img1.png") no-repeat center center;
    background-size: cover;
}
main#work-style section#rewarding ul li:nth-child(2) div.imgBlock {
    background: url("../images/rewarding_img2.png") no-repeat center center;
    background-size: cover;
}
main#work-style section#rewarding ul li:nth-child(3) div.imgBlock {
    background: url("../images/rewarding_img3.png") no-repeat center center;
    background-size: cover;
}
main#work-style section#rewarding ul li:nth-child(4) div.imgBlock {
    background: url("../images/rewarding_img4.png") no-repeat center center;
    background-size: cover;
}
main#work-style section#rewarding ul li:nth-child(5) div.imgBlock {
    background: url("../images/rewarding_img5.png") no-repeat center center;
    background-size: cover;
}

@media screen and (max-width: 960px) {
main#work-style {
}
main#work-style section#interview {
    width: 90%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 50px 0;
    margin: 0 auto 50px;
}
main#work-style section#interview aside {
    width: 80vw;
    max-width: 900px;
    margin: 0 auto 50px;
}
main#work-style section#interview aside ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
main#work-style section#interview aside ul li {
    display: inline-block;
    position: relative;
    width: 100%;
    max-width: 300px;
    padding: 0 0 25px;
}
main#work-style section#interview aside ul li::before,
main#work-style section#interview aside ul li::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 5px;
    width: 1px;
    height: 8px;
    border-radius: 9999px;
    background: #465065;
    transform-origin: 50% calc(100% - 0.5px);
    transition: 0.5s 0s;
}
main#work-style section#interview aside ul li:hover::before,
main#work-style section#interview aside ul li:hover::after {
    bottom: -5px;
}
main#work-style section#interview aside ul li::before {
    transform: rotate(45deg);
}
main#work-style section#interview aside ul li::after {
    transform: rotate(-45deg);
}
main#work-style section#interview aside ul li a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
main#work-style section#interview aside ul li p.num {
    position: relative;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
}
main#work-style section#interview aside ul li p.num::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 60%;
    height: 1px;
    background: #465065;
    margin: auto 0;
}
main#work-style section#interview aside ul li p.num span {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    color: #FF7EB9;
}
main#work-style section#interview aside ul li .ttl {
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 600;
    transition: 0.5s 0s;
}
main#work-style section#interview aside ul li:hover .ttl {
    color: #FF7EB9;
}
main#work-style section#interview div.interview {
    width: 80vw;
    max-width: 900px;
    border-top: #F5F5F5 solid 5px;
    padding: 50px 0;
    margin: 0 auto;
}
main#work-style section#interview div.interview div.flexWrap div.imgBlock img {
    border-radius: 20px;
}
main#work-style section#interview div.interview div.flexWrap.top {
    flex-wrap: wrap;
    justify-content: space-between;
}
main#work-style section#interview div.interview div.flexWrap.top div.imgBlock {
    width: 100%;
    margin: 0 0 25px;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock {
    display: flex;
    flex-direction: column;
    width: 100%;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock div {
    margin-top: auto;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock p.num {
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    padding: 0 0 10px;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock p.num span {
    font-size: calc( 26 / var(--root-font-size) * 1rem );
    color: #FF7EB9;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock .ttl {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
main#work-style section#interview div.interview div.flexWrap.top div.txtBlock p.name {
    font-size: calc( 18 / var(--root-font-size) * 1rem );
}
main#work-style section#interview div.interview div.flexWrap.bottom {
    align-items: flex-end;
    flex-wrap: wrap;
    justify-content: space-between;
}
main#work-style section#interview div.interview div.flexWrap.bottom div.imgBlock {
    width: 100%;
    margin: 25px 0 0;
}
main#work-style section#interview div.interview div.flexWrap.bottom div.txtBlock {
    width: 100%;
}
main#work-style section#interview div.interview div.flexWrap.bottom div.txtBlock .question {
    font-size: calc( 18 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 50px 0 15px;
}

main#work-style section#benefit {
    width: 100%;
    padding: 50px 0;
}
main#work-style section#benefit div.img {
    width: 90%;
    max-width: 340px;
    margin: 0 auto;
}

main#work-style section#rewarding {
    width: 100%;
    padding: 50px 0;
}
main#work-style section#rewarding ul {
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}
main#work-style section#rewarding ul li {
    display: flex;
    flex-wrap: wrap;
    min-height: 175px;
    background: #FFF;
    border-radius: 20px;
    margin: 0 0 25px;
}
main#work-style section#rewarding ul li:last-child {
    margin: 0;
}
main#work-style section#rewarding ul li div.txtBlock {
    align-content: center;
    width: 100%;
    padding: 25px 5vw;
}
main#work-style section#rewarding ul li div.txtBlock p.txt,
main#work-style section#rewarding ul li div.txtBlock .ttl {
    color: #3172BE;
}
main#work-style section#rewarding ul li div.txtBlock p.txt {
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    padding: 0 0 5px;
}
main#work-style section#rewarding ul li div.txtBlock .ttl {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
main#work-style section#rewarding ul li div.imgBlock {
    width: 100%;
    height: 175px;
    border-top-right-radius: 0;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
}
main#work-style section#rewarding ul li:nth-child(1) div.imgBlock {
    background: url("../images/rewarding_img1.png") no-repeat center center;
    background-size: cover;
}
main#work-style section#rewarding ul li:nth-child(2) div.imgBlock {
    background: url("../images/rewarding_img2.png") no-repeat center center;
    background-size: cover;
}
main#work-style section#rewarding ul li:nth-child(3) div.imgBlock {
    background: url("../images/rewarding_img3.png") no-repeat center center;
    background-size: cover;
}
main#work-style section#rewarding ul li:nth-child(4) div.imgBlock {
    background: url("../images/rewarding_img4.png") no-repeat center center;
    background-size: cover;
}
main#work-style section#rewarding ul li:nth-child(5) div.imgBlock {
    background: url("../images/rewarding_img5.png") no-repeat center center;
    background-size: cover;
}
}

/*----- recruit -----*/
main#recruit {
}
main#recruit section#description {
    width: 80%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 100px 0;
    margin: 0 auto 50px;
}
main#recruit section#description table {
    width: 70vw;
    max-width: 900px;
    line-height: 1.75;
    margin: 0 auto;
}
main#recruit section#description table tr:nth-child(odd) {
    background: #F3F7FB;
}
main#recruit section#description table th {
    width: 35%;
    color: #3172BE;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    vertical-align: middle;
    padding: 30px 0 30px 90px;
}
main#recruit section#description table td {
    width: 65%;
    padding: 30px 90px 30px 0;
}
main#recruit section#description table td span.blue {
    color: #3172BE;
}
main#recruit section#description table td span.indent_2em {
    padding: 0 2em 0 0;
}
main#recruit section#description table td span.indent_3em {
    padding: 0 3em 0 0;
}
main#recruit section#description table td span.border {
    position: relative;
    display: inline-block;
    width: 100%;
}
main#recruit section#description table td span.border::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #D9D9D9;
    margin: auto 0;
}
main#recruit section#description table td span.txt {
    position: relative;
    z-index: 9;
    background: #FEFEFE;
    padding: 0 1em 0 0;
}
main#recruit section#description table tr:nth-child(odd) td span.txt {
    background: #F3F7FB;
}

main#recruit section#entry {
    width: 100%;
    padding: 100px 0 150px;
}
main#recruit section#entry p.txt {
    line-height: 1.75;
    text-align: center;
    padding: 0 5vw 75px;
}
main#recruit section#entry #form {
    width: 80%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 100px 0;
    margin: 0 auto 50px;
}

main#recruit section#flow {
    width: 100%;
    background: #FFF;
    padding: 150px 0;
}
main#recruit section#flow ol {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}
main#recruit section#flow ol li {
    position: relative;
    width: 40%;
    background: #D1D5DF;
    border-radius: 20px;
    text-align: center;
    padding: 30px;
    margin: 25px 5%;
}
main#recruit section#flow ol li:nth-child(odd)::before,
main#recruit section#flow ol li:nth-child(odd)::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: calc(-12.5% - 6px);
    width: 12px;
    height: 2px;
    border-radius: 9999px;
    background-color: #3172BF;
    margin: auto 0;
    transform-origin: calc(100% - 1px) 50%;
}
main#recruit section#flow ol li:nth-child(odd)::before {
    transform: rotate(45deg);
}
main#recruit section#flow ol li:nth-child(odd)::after {
    transform: rotate(-45deg);
}
main#recruit section#flow ol li p.number {
    position: absolute;
    top: -15px;
    left: -15px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 70px;
    height: 70px;
    background: #3172BF;
    border-radius: 50%;
    color: #FFF;
    font-size: calc( 30 / var(--root-font-size) * 1rem );
    font-weight: 700;
    line-height: 1;
}
main#recruit section#flow ol li p.ttl {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
main#recruit section#flow ol li div.btn {
    margin: 30px auto 0;
}
main#recruit section#flow ol li figure {
    margin: 15px 0 0;
}

main#recruit section#faq {
    width: 100%;
    padding: 100px 0 180px;
}
/*アコーディオン全体*/
main#recruit section#faq ul.accordion-area {
    width: 90%;
    max-width: 1050px;
    margin: 0 auto;
}
main#recruit section#faq ul.accordion-area li {
    overflow: hidden;
    border-radius: 20px;
    margin: 0 0 30px;
}
main#recruit section#faq ul.accordion-area li:last-child {
    margin: 0;
}
/*アコーディオンタイトル*/
.accordion-area .title {
    position: relative;/*+マークの位置基準とするためrelative指定*/
    cursor: pointer;
    width: 100%;
    background: #3172BF;
    color: #FFF;
    padding: 30px;
    transition: 0.5s 0s;
}
.accordion-area .title.close {
}

/*アイコンの＋と×*/
.accordion-area .title .icon {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 30px;
    width: 45px;
    height: 45px;
    background: #FFF;
    border-radius: 50%;
    margin: auto 0;
}
.accordion-area .title .icon::before,
.accordion-area .title .icon::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 18px;
    height: 3px;
    background-color: #3172BF;
    border-radius: 1.5px;
    margin: auto;
    transition: 0.5s 0s;
}
.accordion-area .title .icon::before {
}
.accordion-area .title .icon::after {
    transform: rotate(-90deg);
}
/*　closeというクラスがついたら形状変化　*/
.accordion-area .title.close .icon::before {
}
.accordion-area .title.close .icon::after {
    transform: rotate(0);
}
.accordion-area .title p,
.accordion-area .box p {
    position: relative;
    font-size: calc( 18 / var(--root-font-size) * 1rem );
    padding: 0 0 0 45px;
}
.accordion-area .title p::before,
.accordion-area .box p::before {
    position: absolute;
    top: -5px;
    left: 0;
    font-size: calc( 30 / var(--root-font-size) * 1rem );
    line-height: 1;
}
.accordion-area .title p::before {
    content: "Q";
    color: #FFF;
}
.accordion-area .box p::before {
    content: "A";
    color: #FF7EB9;
}
/*アコーディオンで現れるエリア*/
.accordion-area .box {
    display: none;/*はじめは非表示*/
}
.accordion-area .box {
    background: #FFF;
    padding: 30px;
}

@media screen and (max-width: 960px) {
main#recruit {
}
main#recruit section#description {
    width: 90%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 50px 0;
    margin: 0 auto 50px;
}
main#recruit section#description table {
    width: 80vw;
    max-width: 900px;
    line-height: 1.75;
    margin: 0 auto;
}
main#recruit section#description table tr:nth-child(odd) {
    background: #F3F7FB;
}
main#recruit section#description table th,
main#recruit section#description table td {
    display: block;
}
main#recruit section#description table th {
    width: 100%;
    color: #3172BE;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    vertical-align: middle;
    padding: 25px 5vw 5px;
}
main#recruit section#description table td {
    width: 100%;
    padding: 0 5vw 25px;
}
main#recruit section#description table td span.blue {
    color: #3172BE;
}
main#recruit section#description table td span.indent_2em {
    padding: 0 2em 0 0;
}
main#recruit section#description table td span.indent_3em {
    padding: 0 3em 0 0;
}
main#recruit section#description table td span.border {
    position: relative;
    display: inline-block;
    width: 100%;
}
main#recruit section#description table td span.border::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #D9D9D9;
    margin: auto 0;
}
main#recruit section#description table td span.txt {
    position: relative;
    z-index: 9;
    background: #FEFEFE;
    padding: 0 1em 0 0;
}
main#recruit section#description table tr:nth-child(odd) td span.txt {
    background: #F3F7FB;
}

main#recruit section#entry {
    width: 100%;
    padding: 50px 0 75px;
}
main#recruit section#entry p.txt {
    line-height: 1.75;
    text-align: center;
    padding: 0 5vw 25px;
}
main#recruit section#entry #form {
    width: 90%;
    max-width: 1200px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 20px;
    padding: 50px 0;
    margin: 0 auto;
}

main#recruit section#flow {
    width: 100%;
    background: #FFF;
    padding: 75px 0;
}
main#recruit section#flow ol {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 80%;
    max-width: 300px;
    margin: 0 auto;
}
main#recruit section#flow ol li {
    position: relative;
    width: 100%;
    background: #D1D5DF;
    border-radius: 20px;
    text-align: center;
    padding: 25px 5vw;
    margin: 0 0 50px;
}
main#recruit section#flow ol li:last-child {
    margin: 0;
}
main#recruit section#flow ol li:nth-child(odd)::before,
main#recruit section#flow ol li:nth-child(odd)::after,
main#recruit section#flow ol li:nth-child(2)::before,
main#recruit section#flow ol li:nth-child(2)::after {
    content: "";
    position: absolute;
    top: inherit;
    bottom: -31px;
    left: 0;
    right: 0;
    width: 2px;
    height: 12px;
    border-radius: 9999px;
    background-color: #3172BF;
    margin: 0 auto;
    transform-origin: 50% calc(100% - 1px);
}
main#recruit section#flow ol li:nth-child(odd)::before,
main#recruit section#flow ol li:nth-child(2)::before {
    transform: rotate(45deg);
}
main#recruit section#flow ol li:nth-child(odd)::after,
main#recruit section#flow ol li:nth-child(2)::after {
    transform: rotate(-45deg);
}
main#recruit section#flow ol li p.number {
    position: absolute;
    top: -15px;
    left: -15px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    background: #3172BF;
    border-radius: 50%;
    color: #FFF;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    line-height: 1;
}
main#recruit section#flow ol li p.ttl {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 600;
    padding: 0 0 10px;
}
main#recruit section#flow ol li div.btn {
    margin: 30px auto 0;
}
main#recruit section#flow ol li figure {
    margin: 15px 0 0;
}

main#recruit section#faq {
    width: 100%;
    padding: 75px 0 95px;
}
/*アコーディオン全体*/
main#recruit section#faq ul.accordion-area {
    width: 90%;
    max-width: 1050px;
    margin: 0 auto;
}
main#recruit section#faq ul.accordion-area li {
    overflow: hidden;
    border-radius: 20px;
    margin: 0 0 25px;
}
main#recruit section#faq ul.accordion-area li:last-child {
    margin: 0;
}
/*アコーディオンタイトル*/
.accordion-area .title {
    position: relative;/*+マークの位置基準とするためrelative指定*/
    cursor: pointer;
    width: 100%;
    background: #3172BF;
    color: #FFF;
    padding: 25px calc(5vw + 45px) 25px 5vw;
    transition: 0.5s 0s;
}
.accordion-area .title.close {
}

/*アイコンの＋と×*/
.accordion-area .title .icon {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 5vw;
    width: 30px;
    height: 30px;
    background: #FFF;
    border-radius: 50%;
    margin: auto 0;
}
.accordion-area .title .icon::before,
.accordion-area .title .icon::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 12px;
    height: 2px;
    background-color: #3172BF;
    border-radius: 1.5px;
    margin: auto;
    transition: 0.5s 0s;
}
.accordion-area .title .icon::before {
}
.accordion-area .title .icon::after {
    transform: rotate(-90deg);
}
/*　closeというクラスがついたら形状変化　*/
.accordion-area .title.close .icon::before {
}
.accordion-area .title.close .icon::after {
    transform: rotate(0);
}
.accordion-area .title p,
.accordion-area .box p {
    position: relative;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    padding: 0 0 0 30px;
}
.accordion-area .title p::before,
.accordion-area .box p::before {
    position: absolute;
    top: -2.5px;
    left: 0;
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    line-height: 1;
}
.accordion-area .title p::before {
    content: "Q";
    color: #FFF;
}
.accordion-area .box p::before {
    content: "A";
    color: #FF7EB9;
}
/*アコーディオンで現れるエリア*/
.accordion-area .box {
    display: none;/*はじめは非表示*/
}
.accordion-area .box {
    background: #FFF;
    padding: 25px 5vw;
}
}

/*----- contact -----*/
main#contact {
}
main#contact div.container {
    width: 90%;
    max-width: 900px;
    padding: 0 0 255px;
    margin: 0 auto;
}
main#contact div.container ol {
    display: flex;
    justify-content: center;
    padding: 0 0 100px;
}
main#contact div.container ol li {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 120px;
    height: 120px;
    background: #FFF;
    border: #D9D9D9 solid 2px;
    border-radius: 50%;
    color: #D9D9D9;
    font-size: calc( 20 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    margin: 0 60px;
}
main#contact div.container ol li.done {
    background: #FF7EB9;
    border: none;
    color: #FFF;
}
main#contact div.container ol li::before,
main#contact div.container ol li::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -70px;
    width: 12px;
    height: 2px;
    border-radius: 9999px;
    background-color: #D9D9D9;
    margin: auto 0;
    transform-origin: calc(100% - 1px) 50%;
}
main#contact div.container ol li:first-child::before,
main#contact div.container ol li:first-child::after {
    content: none;
}
main#contact div.container ol li.done::before,
main#contact div.container ol li.done::after {
    left: -68px;
    background-color: #FF7EB9;
}
main#contact div.container ol li::before {
    transform: rotate(45deg);
}
main#contact div.container ol li::after {
    transform: rotate(-45deg);
}
main#contact div.container p.ttl {
    font-size: calc( 30 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    padding: 0 0 25px;
}
main#contact div.container p.txt {
    line-height: 1.75;
    text-align: center;
    padding: 0 0 100px;
}

#form {
}
#form table {
    width: 100%;
    max-width: 900px;
    margin: 0 auto 25px;
}
main#recruit table {
	width: 70vw;
}
#form table th {
    position: relative;
    width: 30%;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    vertical-align: top;
    padding: 40px 70px 40px 0;
}
#form table th .required {
    position: absolute;
    top: 40px;
    right: 15px;
    width: 40px;
    height: 24px;
    background: #3172BE;
    border-radius: 5px;
    color: #FFF;
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 24px;
    text-align: center;
}
#form table td {
    width: 70%;
    padding: 25px 0;
}
#form table tr.none th {
    padding: 0 0 25px;
}
#form table tr.none td {
    padding: 0 0 25px;
}
#form div.check {
    width: 70vw;
    max-width: 900px;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    margin: 0 auto 75px;
}
#form div.check a {
    text-decoration: underline;
}
#form div.check a:hover {
    text-decoration: none;
}

#form table td input,
#form table td textarea,
#form table td select,
#form table td div.confirm {
    display: inline-block;
    width: 100%;
    background: #FFF;
    border-radius: 5px;
    padding: 15px;
}
main#recruit #form table td input,
main#recruit #form table td textarea,
main#recruit #form table td select,
main#recruit #form table td div.confirm {
    background: #F5F5F5;
}
#form table td input,
#form table td textarea,
#form table td div.confirm {
    background: #FFF;
}
div.wpcf7 ::placeholder {
	color: #999;
}
div.wpcf7 .wpcf7-spinner {
    display: none!important;
}
span.wpcf7-not-valid-tip {
    color: #FF0000;
    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: inherit;
    line-height: 1.5;
    text-align: center;
    text-indent: 0.1em;
    padding: 10px 15px;
    margin: 25px auto 0;
}
main#recruit .wpcf7 form.invalid .wpcf7-response-output,
main#recruit .wpcf7 form.unaccepted .wpcf7-response-output,
main#recruit .wpcf7 form.payment-required .wpcf7-response-output,
main#recruit .wpcf7 form.sent .wpcf7-response-output,
main#recruit .wpcf7 form.spam .wpcf7-response-output,
main#recruit .wpcf7 form.failed .wpcf7-response-output,
main#recruit .wpcf7 form.aborted .wpcf7-response-output {
    background: #F5F5F5;
}

#form div.privacy_policy {
    width: 100%;
	background: #FFF;
    border-radius: 5px;
	padding: 15px;
	margin: 25px auto;
}
main#recruit #form div.privacy_policy {
	width: 70vw;
    max-width: 900px;
	background: #F5F5F5;
}
#form div.privacy_policy div.wrap {
    overflow-y: scroll;
    overflow-x: hidden;
    width: 100%;
    height: 200px;
    padding: 0 25px 0 0;
    margin: 0 auto;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar {
    width: 10px;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar-track {
    background: #45577E;
    border: none;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar-thumb {
    background: #FF7EB9;
}
#form div.privacy_policy div.wrap p {
    padding: 0 0 15px;
}
#form div.privacy_policy div.wrap p.ttl {
    font-size: calc( 20 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    padding: 15px 0;
}
#form div.privacy_policy div.wrap p.ttl_small {
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    padding: 15px 0;
}

#form div.consent {
    width: 70%;
	margin: 0 0 0 auto;
}
.wpcf7-list-item {
    display: block;
    line-height: 1.5;
    margin: 0;
}
#form table td.select .wpcf7-list-item {
    display: inline-block;
    width: 50%;
    margin: 10px 0;
}
input[type="checkbox"] {
    display: none;
}
.wpcf7-list-item-label {
    position: relative;
    height: 30px;
    line-height: 30px;
    padding-left: 35px;
    display: inline-block;
}
.wpcf7-list-item-label::before {
    content: "";
    display: block;
    width: 30px;
    height: 30px;
    border: #45577E solid 1px;
    background: #FFF;
    border-radius: 5px;
    position: absolute;
    left: 0;
    top: 0;
    box-sizing: border-box;
}
main#recruit .wpcf7-list-item-label::before {
	background: #F5F5F5;
}
input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
    content: "";
    display: block;
    width: 14px;
    height: 8px;
    border-top: 3px solid #FF7EB9;
    border-right: 3px solid #FF7EB9;
    transform: rotate(135deg);
    position: absolute;
    left: 8px;
    top: 9px;
}

#form ::file-selector-button {
    background: #FFF;
    border: 0;
    border-radius: 5px;
    color: #45577E;
    font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "メイリオ", "Meiryo", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    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.container {
    width: 90%;
    max-width: 900px;
    padding: 0 0 170px;
    margin: 0 auto;
}
main#contact div.container ol {
    display: flex;
    justify-content: center;
    padding: 0 0 50px;
}
main#contact div.container ol li {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 75px;
    height: 75px;
    background: #FFF;
    border: #D9D9D9 solid 2px;
    border-radius: 50%;
    color: #D9D9D9;
    font-size: calc( 18 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    margin: 0 15px;
}
main#contact div.container ol li.done {
    background: #FF7EB9;
    border: none;
    color: #FFF;
}
main#contact div.container ol li::before,
main#contact div.container ol li::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -25px;
    width: 12px;
    height: 2px;
    border-radius: 9999px;
    background-color: #D9D9D9;
    margin: auto 0;
    transform-origin: calc(100% - 1px) 50%;
}
main#contact div.container ol li:first-child::before,
main#contact div.container ol li:first-child::after {
    content: none;
}
main#contact div.container ol li.done::before,
main#contact div.container ol li.done::after {
    left: -23px;
    background-color: #FF7EB9;
}
main#contact div.container ol li::before {
    transform: rotate(45deg);
}
main#contact div.container ol li::after {
    transform: rotate(-45deg);
}
main#contact div.container p.ttl {
    font-size: calc( 24 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    padding: 0 0 25px;
}
main#contact div.container p.txt {
    line-height: 1.75;
    text-align: center;
    padding: 0 0 50px;
}

#form {
}
#form table {
    width: 80vw;
    max-width: 900px;
    margin: 0 auto 25px;
}
main#recruit table {
    width: 80vw;
}
#form table th,
#form table td {
    display: block;
}
#form table th {
    position: relative;
    width: 100%;
    font-size: calc( 16 / var(--root-font-size) * 1rem );
    font-weight: 700;
    vertical-align: top;
    padding: 0;
}
#form table th .required {
    position: absolute;
    top: 0;
    right: 15px;
    width: 40px;
    height: 24px;
    background: #3172BE;
    border-radius: 5px;
    color: #FFF;
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 24px;
    text-align: center;
}
#form table td {
    width: 100%;
    padding: 10px 0 25px;
}
#form table tr.none th {
    padding: 0;
}
#form table tr.none td {
    padding: 0 0 25px;
}
#form div.check {
    width: 80vw;
    max-width: 900px;
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    margin: 0 auto 50px;
}
#form div.check a {
    text-decoration: underline;
}
#form div.check a:hover {
    text-decoration: none;
}

#form table td input,
#form table td textarea,
#form table td select,
#form table td div.confirm {
    display: inline-block;
    width: 100%;
    background: #FFF;
    border-radius: 5px;
    padding: 15px;
}
main#recruit #form table td input,
main#recruit #form table td textarea,
main#recruit #form table td select,
main#recruit #form table td div.confirm {
    background: #F5F5F5;
}
#form table td input,
#form table td textarea,
#form table td div.confirm {
    background: #FFF;
}
div.wpcf7 ::placeholder {
	color: #999;
}
div.wpcf7 .wpcf7-spinner {
    display: none!important;
}
span.wpcf7-not-valid-tip {
    color: #FF0000;
    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: inherit;
    line-height: 1.5;
    text-align: center;
    text-indent: 0.1em;
    padding: 10px 15px;
    margin: 25px auto 0;
}
main#recruit .wpcf7 form.invalid .wpcf7-response-output,
main#recruit .wpcf7 form.unaccepted .wpcf7-response-output,
main#recruit .wpcf7 form.payment-required .wpcf7-response-output,
main#recruit .wpcf7 form.sent .wpcf7-response-output,
main#recruit .wpcf7 form.spam .wpcf7-response-output,
main#recruit .wpcf7 form.failed .wpcf7-response-output,
main#recruit .wpcf7 form.aborted .wpcf7-response-output {
    background: #F5F5F5;
}

#form div.privacy_policy {
    width: 80vw;
    max-width: 900px;
	background: #FFF;
    border-radius: 5px;
	padding: 15px;
	margin: 25px auto;
}
main#recruit #form div.privacy_policy {
	width: 80vw;
}
#form div.privacy_policy div.wrap {
    overflow-y: scroll;
    overflow-x: hidden;
    width: 100%;
    height: 200px;
    padding: 0 10px 0 0;
    margin: 0 auto;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar {
    width: 10px;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar-track {
    background: #45577E;
    border: none;
}
#form div.privacy_policy div.wrap::-webkit-scrollbar-thumb {
    background: #FF7EB9;
}
#form div.privacy_policy div.wrap p {
    padding: 0 0 15px;
}
#form div.privacy_policy div.wrap p.ttl {
    font-size: calc( 18 / var(--root-font-size) * 1rem );
    font-weight: 700;
    text-align: center;
    padding: 15px 0;
}
#form div.privacy_policy div.wrap p.ttl_small {
    font-size: calc( 14 / var(--root-font-size) * 1rem );
    font-weight: 700;
    padding: 15px 0;
}

#form div.btn input {
    width: 100%!important;
	height: 100%!important;
}
}