@charset "utf-8";

/*----- main -----*/
main {
}
main div.headerWrap {
    display: flex;
    justify-content: space-between;
    width: 100%;
}
main div.headerWrap div.headerL {
    width: 40%;
    padding: 100px 10%;
}
main div.headerWrap div.headerL aside ul {
    margin: 50px 0 0;
}
main div.headerWrap div.headerL aside ul li {
    margin: 0 0 15px;
}
main div.headerWrap div.headerL aside ul li:last-child {
    margin: 0;
}
main div.headerWrap div.headerR {
    width: 60%;
    padding: 0 0 100px;
}
main div.headerWrap div.headerR div.img {
    height: 600px;
    border-top-left-radius: 30px;
    margin: 0 0 25px;
}
main div.headerWrap div.headerR div.img.about {
    background: url("../images/h_about.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerR div.img.works {
    background: url("../images/h_works.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerR div.img.recruit {
    background: url("../images/h_recruit.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerR div.img.news {
    background: url("../images/h_news.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerR div.img.contact {
    background: url("../images/h_contact.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerC {
    padding: 25px 10% 50px;
}
main div.headerWrap p.breadcrumbs {
    color: #1FA1A0;
    font-size: calc( 12 / var(--root-font-size) * 1rem);
    font-weight: 400;
    line-height: 25px;
}
main div.headerWrap div.headerC p.breadcrumbs {
    margin: 0 0 50px;
}
main div.headerWrap p.breadcrumbs a {
    color: #1FA1A0;
    text-decoration: none;
}
main div.headerWrap p.breadcrumbs a:hover {
    color: #FBE51F;
}

@media screen and (max-width: 960px) {
main div.headerWrap {
    display: flex;
    flex-direction: column-reverse;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
}
main div.headerWrap div.headerL {
    width: 100%;
    padding: 0 10% 25px;
}
main div.headerWrap div.headerL aside ul {
    width: 250px;
    margin: 25px auto;
}
main div.headerWrap div.headerL aside ul li {
    margin: 0 0 5px;
}
main div.headerWrap div.headerL aside ul li:last-child {
    margin: 0;
}
main div.headerWrap div.headerR {
    width: 90%;
    padding: 0 0 25px;
    margin: 0 0 0 auto;
}
main div.headerWrap div.headerR div.img {
    height: 60vw;
    border-top-left-radius: 30px;
    margin: 0 0 15px;
}
main div.headerWrap div.headerR div.img.about {
    background: url("../images/h_about.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerR div.img.works {
    background: url("../images/h_works.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerR div.img.recruit {
    background: url("../images/h_recruit.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerR div.img.news {
    background: url("../images/h_news.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerR div.img.contact {
    background: url("../images/h_contact.png") no-repeat center center;
    background-size: cover;
}
main div.headerWrap div.headerC {
    padding: 25px 10%;
}
main div.headerWrap p.breadcrumbs {
    color: #1FA1A0;
    font-size: calc( 12 / var(--root-font-size) * 1rem);
    font-weight: 400;
    line-height: 25px;
}
main div.headerWrap div.headerC p.breadcrumbs {
    margin: 0 0 25px;
}
main div.headerWrap p.breadcrumbs a {
    color: #1FA1A0;
    text-decoration: none;
}
main div.headerWrap p.breadcrumbs a:hover {
    color: #FBE51F;
}
}

/*----- about -----*/
main#about section#overview {
    background: #F2F1E6;
    padding: 100px 0 200px;
}
main#about div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    max-width: 1200px;
    padding: 0 min(12.5%, 150px);
    margin: 0 auto;
}
main#about div.flexWrap div.block {
    width: 47.5%;
    margin: 0 0 50px;
}
main#about section#overview div.flexWrap div.block.img img {
    max-width: calc(100% + min(35%, 150px));
    border-top-left-radius: 30px;
}
main#about section#massage div.flexWrap div.block.img img {
    border-top-right-radius: 30px;
}
main#about div.flexWrap div.block.txt p {
    line-height: 1.75;
}
main#about div.flexWrap div.block.txt.space {
    padding: 0 0 0 2.5%;
}
main#about div.flexWrap div.block.txt p.copy {
    color: #1FA1A0;
    font-size: calc( 30 / var(--root-font-size) * 1rem);
    font-weight: 700;
    line-height: 1.5;
    margin: 0 0 25px;
}
main#about section#massage div.flexWrap div.block.txt p.copy {
    margin: 0 0 50px;
}
main#about div.flexWrap div.block.txt p.name {
    line-height: 1.5;
}
main#about div.flexWrap div.block.txt p.name span {
    font-size: calc( 20 / var(--root-font-size) * 1rem);
}

main#about section#overview div.overviewContent {
}
main#about section#overview div.overviewContent .ttl {
    display: flex;
    align-items: center;
    color: #1FA1A0;
    font-size: calc( 24 / var(--root-font-size) * 1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin: 0 0 50px;
}
main#about section#overview div.overviewContent .ttl::after {
    content: "";
    flex-grow: 1;
    width: 100%;
    height: 2px;
    background: #1FA1A0;
    margin: 0 0 0 1em;
}
main#about section#overview div.overviewContent div.mission {
    width: 100%;
    padding: 100px 0 0;
}
main#about section#overview div.overviewContent div.mission ol {
    display: flex;
    justify-content: space-between;
}
main#about section#overview div.overviewContent div.mission ol li {
    position: relative;
    width: 30%;
    background: #FFF;
    padding: 25px;
}
main#about section#overview div.overviewContent div.mission ol li p {
    color: #1FA1A0;
    font-weight: 700;
}
main#about section#overview div.overviewContent div.mission ol li p.num {
    position: absolute;
    top: -0.5em;
    left: 25px;
    font-size: calc( 30 / var(--root-font-size) * 1rem);
    line-height: 1;
}
main#about section#overview div.overviewContent div.mission ol li p.txt {
    letter-spacing: 0.1em;
    line-height: 1.5;
}
main#about section#overview div.overviewContent div.value {
    width: 47.5%;
    padding: 100px 0 0;
}
main#about section#overview div.overviewContent div.value figure {
    text-align: center;
}
main#about section#overview div.overviewContent div.vision {
    width: 47.5%;
    padding: 100px 0 0;
}
main#about section#overview div.overviewContent div.vision ol {
}
main#about section#overview div.overviewContent div.vision ol li {
    display: flex;
    width: 100%;
    background: #1FA1A0;
    margin: 0 0 20px;
}
main#about section#overview div.overviewContent div.vision ol li:last-child {
    margin: 0;
}
main#about section#overview div.overviewContent div.vision ol li p {
    font-weight: 700;
}
main#about section#overview div.overviewContent div.vision ol li p.num {
    align-content: center;
    width: 85px;
    background: #FFF;
    color: #1FA1A0;
    font-size: calc( 12 / var(--root-font-size) * 1rem);
    letter-spacing: 0.1em;
    line-height: 1;
    text-align: center;
    text-indent: 0.1em;
}
main#about section#overview div.overviewContent div.vision ol li p.num span {
    font-size: calc( 30 / var(--root-font-size) * 1rem);
}
main#about section#overview div.overviewContent div.vision ol li p.txt {
    width: calc(100% - 85px);
    color: #FFF;
    line-height: 1.5;
    letter-spacing: 0.1em;
    padding: 20px 7.5%;
}

main#about section#massage {
    padding: 100px 0 200px;
}

main#about section#company {
    background: #F2F1E6;
    padding: 100px 0 200px;
}
main#about section#company table {
    width: 90%;
    max-width: 675px;
    line-height: 1.5;
    margin: 0 auto;
}
main#recruit section#job-description table {
    width: 100%;
    line-height: 1.5;
}
main#about section#company table a,
main#recruit section#job-description table a {
    text-decoration: none;
}
main#about section#company table tr,
main#recruit section#job-description table tr {
    border-bottom: #1FA1A0 dashed 1px;
}
main#about section#company table tr th,
main#recruit section#job-description table tr th {
    width: 20%;
    color: #1FA1A0;
    font-weight: 700;
    padding: 15px 0;
}
main#about section#company table tr td,
main#recruit section#job-description table tr td {
    width: 80%;
    padding: 15px 0;
}
main#recruit section#job-description table tr td p.note {
    font-size: calc( 12 / var(--root-font-size) * 1rem);
}

@media screen and (max-width: 960px) {
main#about section#overview {
    background: #F2F1E6;
    padding: 50px 0 100px;
}
main#about div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    max-width: 1200px;
    padding: 0 min(5vw, 150px);
    margin: 0 auto;
}
main#about div.flexWrap div.block {
    width: 100%;
    margin: 0 0 50px;
}
main#about section#overview div.flexWrap div.block.img img {
    max-width: 100%;
    border-top-left-radius: 30px;
}
main#about section#massage div.flexWrap div.block.img img {
    border-top-right-radius: 30px;
}
main#about div.flexWrap div.block.txt p {
    line-height: 1.75;
}
main#about div.flexWrap div.block.txt.space {
    padding: 0;
}
main#about div.flexWrap div.block.txt p.copy {
    color: #1FA1A0;
    font-size: calc( 24 / var(--root-font-size) * 1rem);
    font-weight: 700;
    line-height: 1.5;
    margin: 0 0 25px;
}
main#about section#massage div.flexWrap div.block.txt p.copy {
    margin: 0 0 25px;
}
main#about div.flexWrap div.block.txt p.name {
    line-height: 1.5;
}
main#about div.flexWrap div.block.txt p.name span {
    font-size: calc( 20 / var(--root-font-size) * 1rem);
}

main#about section#overview div.overviewContent {
}
main#about section#overview div.overviewContent .ttl {
    display: flex;
    align-items: center;
    color: #1FA1A0;
    font-size: calc( 24 / var(--root-font-size) * 1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin: 0 0 25px;
}
main#about section#overview div.overviewContent .ttl::after {
    content: "";
    flex-grow: 1;
    width: 100%;
    height: 2px;
    background: #1FA1A0;
    margin: 0 0 0 1em;
}
main#about section#overview div.overviewContent div.mission {
    width: 100%;
    padding: 50px 0 0;
}
main#about section#overview div.overviewContent div.mission ol {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
main#about section#overview div.overviewContent div.mission ol li {
    position: relative;
    width: 100%;
    background: #FFF;
    padding: 25px 5vw;
    margin: 0 0 25px;
}
main#about section#overview div.overviewContent div.mission ol li:last-child {
    margin: 0;
}
main#about section#overview div.overviewContent div.mission ol li p {
    color: #1FA1A0;
    font-weight: 700;
}
main#about section#overview div.overviewContent div.mission ol li p.num {
    position: absolute;
    top: -0.5em;
    left: 5vw;
    font-size: calc( 30 / var(--root-font-size) * 1rem);
    line-height: 1;
}
main#about section#overview div.overviewContent div.mission ol li p.txt {
    letter-spacing: 0.1em;
    line-height: 1.5;
}
main#about section#overview div.overviewContent div.value {
    width: 100%;
    padding: 50px 0 0;
}
main#about section#overview div.overviewContent div.value figure {
    text-align: center;
}
main#about section#overview div.overviewContent div.vision {
    width: 100%;
    padding: 50px 0 0;
}
main#about section#overview div.overviewContent div.vision ol {
}
main#about section#overview div.overviewContent div.vision ol li {
    display: flex;
    width: 100%;
    background: #1FA1A0;
    margin: 0 0 20px;
}
main#about section#overview div.overviewContent div.vision ol li:last-child {
    margin: 0;
}
main#about section#overview div.overviewContent div.vision ol li p {
    font-weight: 700;
}
main#about section#overview div.overviewContent div.vision ol li p.num {
    align-content: center;
    width: 85px;
    background: #FFF;
    color: #1FA1A0;
    font-size: calc( 12 / var(--root-font-size) * 1rem);
    letter-spacing: 0.1em;
    line-height: 1;
    text-align: center;
    text-indent: 0.1em;
}
main#about section#overview div.overviewContent div.vision ol li p.num span {
    font-size: calc( 30 / var(--root-font-size) * 1rem);
}
main#about section#overview div.overviewContent div.vision ol li p.txt {
    width: calc(100% - 85px);
    color: #FFF;
    line-height: 1.5;
    letter-spacing: 0.1em;
    padding: 20px 5vw;
}

main#about section#massage {
    padding: 50px 0;
}

main#about section#company {
    background: #F2F1E6;
    padding: 50px 0 100px;
}
main#about section#company table {
    width: 90%;
    max-width: 675px;
    line-height: 1.5;
    margin: 0 auto;
}
main#recruit section#job-description table {
    width: 100%;
    line-height: 1.5;
}
main#about section#company table a,
main#recruit section#job-description table a {
    text-decoration: none;
}
main#about section#company table tr,
main#recruit section#job-description table tr {
    border-bottom: #1FA1A0 dashed 1px;
}
main#about section#company table tr th,
main#recruit section#job-description table tr th,
main#about section#company table tr td,
main#recruit section#job-description table tr td {
    display: block;
}
main#about section#company table tr th,
main#recruit section#job-description table tr th {
    width: 100%;
    color: #1FA1A0;
    font-weight: 700;
    padding: 15px 0 0;
}
main#about section#company table tr td,
main#recruit section#job-description table tr td {
    width: 100%;
    padding: 5px 0 15px;
}
main#recruit section#job-description table tr td p.note {
    font-size: calc( 12 / var(--root-font-size) * 1rem);
}
}

/*----- works -----*/
main#works div.inner {
    display: flex;
    justify-content: space-between;
    width: 90%;
    max-width: 1200px;
    padding: 0 0 50px;
    margin: 0 auto;
}
main#works div.inner div.archive {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 60%;
    margin: 0 0 0 10%;
}
main#works div.inner div.archive article {
    width: 45%;
}
main#works div.inner aside {
    width: 10%;
    min-width: 90px;
    margin: 0 10% 0 0;
}

main#works div.inner.single {
    display: inherit;
    max-width: 900px;
    padding: 0 0 200px;
    margin: 0 auto;
}
main#works div.inner.single article {
    padding: 0 7.5%;
}
main#works div.inner.single article .ttl {
    border-bottom: #1FA1A0 dashed 1px;
    font-size: calc( 30 / var(--root-font-size) * 1rem);
    padding: 0 0 15px;
    margin: 0 0 25px;
}
main#works div.inner.single article div.content {
    border-top: #1FA1A0 dashed 1px;
    padding: 25px 0;
    margin: 25px 0 0;
}
main#works div.inner.single article div.content dl {
    display: flex;
    flex-wrap: wrap;
    padding: 0 25px;
}
main#works div.inner.single article div.content dl dt {
    width: 125px;
    color: #1FA1A0;
    font-size: calc( 20 / var(--root-font-size) * 1rem);
    font-weight: 700;
    line-height: 1.25;
    margin: 10px 0;
}
main#works div.inner.single article div.content dl dd {
    width: calc(100% - 125px);
    line-height: 1.5;
    margin: 10px 0;
}

#works_single_slider {}
#works_single_slider .slider {
    padding: 10px;
}
#works_single_slider .slick-slide img {
    margin: 0 auto;
}
#works_single_slider .thumbnail .slick-track {
    width: 100%!important;
    transform: unset !important;
}
#works_single_slider .thumbnail-img {
    opacity: 0.5;
    transition: opacity 0.5s linear;
    width: calc(100% / 5) !important;
    padding: 10px;
}
#works_single_slider .thumbnail .slick-current {
    opacity: 1;
}

.lum-lightbox {
    z-index: 99999!important;
    /* ライトボックスの背景色 */
    background: rgba(112, 112, 112, 0.8)!important;  
}
.lum-lightbox-inner {
    /* ライトボックス画像の表示領域 */
    top: 2.5%;
    right: 2.5%;
    bottom: 2.5%;
    left: 2.5%;
}
.lum-lightbox-inner img.lum-img {
    max-width: 100%;
}

.lum-close-button {
    position: absolute;
    right: 15px!important; /* ボタンの位置 */
    top: 15px!important; /* ボタンの位置 */
    width: 40px!important; /* ボタンの幅 */
    height: 40px!important; /* ボタンの高さ */
    opacity: 1!important;
}
.lum-close-button:hover {
    opacity: 1;
}
.lum-close-button:before,
.lum-close-button:after {
    position: absolute;
    left: 15px;
    content: "";
    height: 30px!important; /* X 印の高さ（長さ）*/
    width: 3px!important;  /* X 印の幅（太さ）*/
    background-color: #FFF;
    border-radius: 1.5px;
    transition: 0.5s 0s;
}
.lum-close-button:hover:before,
.lum-close-button:hover:after {
    background-color: #FBE51F;
}
.lum-close-button:before {
    transform: rotate(60deg)!important;
}
.lum-close-button:after {
    transform: rotate(-60deg)!important;
}

.lum-gallery-button {
    background: transparent;
    border: 0;
    cursor: pointer;
    height: 40px!important;
    margin: 0;
    max-height: 100%;
    outline: 0;
    overflow: hidden;
    padding: 0;
    position: absolute;
    text-indent: 150%;
    top: 50%;
    transform: translateY(-50%);
    white-space: nowrap;
    width: 40px!important;
}
.lum-previous-button {
    left: 2.5vw!important;
}
.lum-next-button {
    right: 2.5vw!important;
}
/* 左右の矢印ボタンの共通のスタイル */
.lum-gallery-button:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    width: 40px!important;
    height: 40px!important;
    border-top: none!important;
    border-radius: none!important;
}
.lum-previous-button:after {
    transform: translateY(-50%)!important;
    background: url("../images/anchor4.png") no-repeat center center;
    background-size: contain;
    border-left: none!important;
    border-radius: none!important;
    box-shadow: none!important;
    left: 0!important;
}
.lum-next-button:after {
    transform: translateY(-50%)!important;
    background: url("../images/anchor2.png") no-repeat center center;
    background-size: contain;
    border-right: none!important;
    border-radius: none!important;
    box-shadow: none!important;
    right: 0!important;
}

@media screen and (max-width: 960px) {
main#works div.inner {
    display: flex;
    flex-direction: column-reverse;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 90%;
    max-width: 1200px;
    padding: 0 0 50px;
    margin: 0 auto;
}
main#works div.inner div.archive {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    padding: 0 5vw;
    margin: 0;
}
main#works div.inner div.archive article {
    width: 47.5%;
}
main#works div.inner aside {
    width: 100%;
    min-width: 90px;
    padding: 0 5vw;
    margin: 0;
}
main#works div.inner aside ul {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 50px;
}
main#works div.inner aside ul li {
    margin: 0 5px 5px 0;
}

main#works div.inner.single {
    display: inherit;
    max-width: 900px;
    padding: 0 0 100px;
    margin: 0 auto;
}
main#works div.inner.single article {
    padding: 0 5vw;
}
main#works div.inner.single article .ttl {
    border-bottom: #1FA1A0 dashed 1px;
    font-size: calc( 24 / var(--root-font-size) * 1rem);
    padding: 0 0 15px;
    margin: 0 0 25px;
}
main#works div.inner.single article div.content {
    border-top: #1FA1A0 dashed 1px;
    padding: 25px 0;
    margin: 25px 0 0;
}
main#works div.inner.single article div.content dl {
    display: flex;
    flex-wrap: wrap;
    padding: 0 5vw;
}
main#works div.inner.single article div.content dl dt {
    width: 75px;
    color: #1FA1A0;
    font-size: calc( 16 / var(--root-font-size) * 1rem);
    font-weight: 700;
    line-height: 1.5;
    margin: 10px 0;
}
main#works div.inner.single article div.content dl dd {
    width: calc(100% - 125px);
    line-height: 1.5;
    margin: 10px 0;
}

#works_single_slider {}
#works_single_slider .slider {
    padding: 5px;
}
#works_single_slider .slick-slide img {
    margin: 0 auto;
}
#works_single_slider .thumbnail .slick-track {
    width: 100%!important;
    transform: unset !important;
}
#works_single_slider .thumbnail-img {
    opacity: 0.5;
    transition: opacity 0.5s linear;
    width: calc(100% / 5) !important;
    padding: 5px;
}
#works_single_slider .thumbnail .slick-current {
    opacity: 1;
}
}
@media screen and (max-width: 450px) {
main#works div.inner div.archive {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    padding: 0;
    margin: 0;
}
main#works div.inner div.archive article {
    width: 100%;
    max-width: calc(375px + 10vw);
    padding: 0 5vw;
}
}

/*----- recruit -----*/
main#recruit section#message {
    position: relative;
    background: #F2F1E6;
    padding: 50px 0 calc(100px + 7.5vw);
    margin: 7.5vw 0 0;
}
main#recruit section#message::before,
main#recruit section#interview::before {
    content: "";
    position: absolute;
    top: -7.5vw;
    left: 0;
    width: 100%;
    height: 7.5vw;
    background: url("../images/line_beige.png") no-repeat center top;
    background-size: cover;
}
main#recruit section#message p.introduction {
    width: 90%;
    max-width: 540px;
    line-height: 1.75;
    text-align: center;
    margin: 0 auto;
}
main#recruit section#message section#point {
    padding: 100px 0 0;
}
main#recruit section#message section#point h3.ttl {
    width: 100%;
    max-width: 900px;
    height: 50px;
    background: #1FA1A0;
    border-radius: 25px;
    color: #F2F1E6;
    font-size: calc( 24 / var(--root-font-size) * 1rem);
    letter-spacing: 0.1em;
    line-height: 50px;
    text-align: center;
    text-indent: 0.1em;
    margin: 0 auto 100px;
}
main#recruit section#message section#point div.flexWrap {
    align-items: center;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}
main#recruit section#message section#point div.flexWrap div.imgBlock {
    width: 45%;
    padding: 0 0 100px;
}
main#recruit section#message section#point div.flexWrap div.imgBlock.right img {
    border-top-right-radius: 30px;
}
main#recruit section#message section#point div.flexWrap div.imgBlock.left img {
    border-top-left-radius: 30px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock {
    width: 45%;
    padding: 0 5% 100px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock p {
    line-height: 1.5;
    margin: 0 0 50px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock p:last-of-type {
    margin: 0;
}
main#recruit section#message section#point div.flexWrap div.txtBlock p.ttl {
    color: #1FA1A0;
    font-size: calc( 24 / var(--root-font-size) * 1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0 0 15px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock p.ttl.round {
    width: 100%;
    max-width: 360px;
    height: 40px;
    background: #1FA1A0;
    border-radius: 20px;
    color: #F2F1E6;
    font-size: calc( 20 / var(--root-font-size) * 1rem);
    line-height: 40px;
    text-align: center;
    text-indent: 0.1em;
    margin: 0 auto 50px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock ul {
    padding: 0 15%;
}
main#recruit section#message section#point div.flexWrap div.txtBlock ul li {
    position: relative;
    color: #1FA1A0;
    line-height: 1.5;
    padding: 0 0 0 25px;
    margin: 15px 0;
}
main#recruit section#message section#point div.flexWrap div.txtBlock ul li::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 12px;
    height: 12px;
    background: #FBE51F;
    border-radius: 50%;
    margin: auto 0;
}

main#recruit section#job-description {
    position: relative;
    padding: 50px 0 calc(150px + 7.5vw);
}
main#recruit section#job-description::before {
    content: "";
    position: absolute;
    top: -7.5vw;
    left: 0;
    width: 100%;
    height: 7.5vw;
    background: url("../images/line_white.png") no-repeat center top;
    background-size: cover;
}
main#recruit section#job-description div.inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
}
main#recruit section#job-description div.inner .side {
    position: sticky;
    top: 0;
    width: 40%;
    padding: 0 10%;
}
main#recruit section#job-description div.inner .side ul {
    margin: 45px 0 0;
}
main#recruit section#job-description div.inner .side ul li {
    margin: 0 0 15px;
}
main#recruit section#job-description div.inner .side ul li:last-child {
    margin: 0;
}
main#recruit section#job-description div.inner .main {
    width: 60%;
    padding: 0 10% 0 0;
}
main#recruit section#job-description div.inner .main .block {
    width: 100%;
    max-width: 750px;
    background: #F2F1E6;
    border-top-left-radius: 30px;
    padding: 50px;
    margin: 0 0 50px;
}
main#recruit section#job-description div.inner .main .block h3.ttl {
    position: relative;
    color: #1FA1A0;
    font-size: calc( 20 / var(--root-font-size) * 1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.5;
    padding: 0 0 0 50px;
    margin: 0 0 25px;
}
main#recruit section#job-description div.inner .main .block h3.ttl span {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 40px;
    background: #FFF;
    border: #1FA1A0 solid 2px;
    border-radius: 20px;
    font-size: calc( 18 / var(--root-font-size) * 1rem);
    letter-spacing: 0.1em;
    line-height: 36px;
    text-align: center;
    text-indent: 0.1em;
    margin: auto 0;
}

main#recruit section#interview {
    position: relative;
    background: #F2F1E6;
    padding: 50px 0 200px;
}
main#recruit section#interview div.inner {
    width: 90%;
    max-width: 1200px;
    background: #FFF;
    border-top-left-radius: 30px;
    padding: 150px min(12.5%, 150px) 75px;
    margin: 0 auto;
}
main#recruit section#interview div.inner div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
}
main#recruit section#interview div.inner div.flexWrap div.flexL {
    width: 50%;
}
main#recruit section#interview div.inner div.flexWrap div.flexR {
    width: 42.5%;
}
main#recruit section#interview div.inner div.flexWrap div.flexC {
    width: 100%;
}
main#recruit section#interview div.inner div.flexWrap div.center {
    align-content: center;
}
main#recruit section#interview div.inner p {
    line-height: 1.75;
}
main#recruit section#interview div.inner p.name {
    font-size: calc( 18 / var(--root-font-size) * 1rem);
    line-height: 1.5;
    margin: 0 0 75px;
}
main#recruit section#interview div.inner p.name span {
    font-size: calc( 20 / var(--root-font-size) * 1rem);
}
main#recruit section#interview div.inner p.question {
    color: #1FA1A0;
    font-size: calc( 30 / var(--root-font-size) * 1rem);
    font-weight: 700;
    margin: 0 0 15px;
}
main#recruit section#interview div.inner p.answer {
    margin: 0 0 75px;
}
main#recruit section#interview div.inner figure {
    position: relative;
    margin: 0 0 15px;
}
main#recruit section#interview div.inner figure p {
    position: absolute;
    top: -3em;
    right: -25px;
    color: #FFF;
    font-size: calc( 28 / var(--root-font-size) * 1rem);
    text-align: right;
}
main#recruit section#interview div.inner figure p span {
    background: #1FA1A0;
    line-height: 2.25;
    padding: 0.25em 25px;
}

main#recruit section#flow {
    padding: 100px 0 200px;
}
main#recruit section#flow figure {
    width: 90%;
    max-width: 900px;
    text-align: center;
    margin: 0 auto;
}
main#recruit section#flow ol {
    display: flex;
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}

main#recruit section#faq {
    background: #F2F1E6;
    padding: 100px 0 calc(200px + 7.5vw);
}
main#recruit section#faq ul {
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}
main#recruit section#faq ul li {
    margin: 0 0 50px;
}
main#recruit section#faq ul li:last-child {
    margin: 0;
}
main#recruit section#faq ul li p {
    line-height: 1.75;
}
main#recruit section#faq ul li p.question {
    color: #1FA1A0;
    font-size: calc( 20 / var(--root-font-size) * 1rem);
    font-weight: 700;
    margin: 0 0 5px;
}

@media screen and (max-width: 960px) {
main#recruit section#message {
    position: relative;
    background: #F2F1E6;
    padding: 50px 0 calc(50px + 7.5vw);
    margin: 7.5vw 0 0;
}
main#recruit section#message::before,
main#recruit section#interview::before {
    content: "";
    position: absolute;
    top: -7.5vw;
    left: 0;
    width: 100%;
    height: 7.5vw;
    background: url("../images/line_beige.png") no-repeat center top;
    background-size: cover;
}
main#recruit section#message p.introduction {
    width: 90%;
    max-width: 540px;
    line-height: 1.75;
    text-align: left;
    margin: 0 auto;
}
main#recruit section#message section#point {
    padding: 100px 0 0;
}
main#recruit section#message section#point h3.ttl {
    width: 90%;
    max-width: 900px;
    height: 50px;
    background: #1FA1A0;
    border-radius: 25px;
    color: #F2F1E6;
    font-size: calc( 20 / var(--root-font-size) * 1rem);
    letter-spacing: 0.1em;
    line-height: 50px;
    text-align: center;
    text-indent: 0.1em;
    margin: 0 auto 50px;
}
main#recruit section#message section#point div.flexWrap {
    align-items: center;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}
main#recruit section#message section#point div.flexWrap div.order1 {
    order: 1;
}
main#recruit section#message section#point div.flexWrap div.order2 {
    order: 2;
}
main#recruit section#message section#point div.flexWrap div.order3 {
    order: 3;
}
main#recruit section#message section#point div.flexWrap div.order4 {
    order: 4;
}
main#recruit section#message section#point div.flexWrap div.order5 {
    order: 5;
}
main#recruit section#message section#point div.flexWrap div.order6 {
    order: 6;
}
main#recruit section#message section#point div.flexWrap div.order7 {
    order: 7;
}
main#recruit section#message section#point div.flexWrap div.order8 {
    order: 8;
}
main#recruit section#message section#point div.flexWrap div.imgBlock {
    width: 90%;
    padding: 0 0 50px;
}
main#recruit section#message section#point div.flexWrap div.imgBlock.right img {
    border-top-right-radius: 30px;
}
main#recruit section#message section#point div.flexWrap div.imgBlock.left {
    margin: 0 0 0 auto;
}
main#recruit section#message section#point div.flexWrap div.imgBlock.left img {
    border-top-left-radius: 30px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock {
    width: 90%;
    padding: 0 0 50px;
    margin: 0 auto;
}
main#recruit section#message section#point div.flexWrap div.txtBlock p {
    line-height: 1.5;
    margin: 0 0 50px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock p:last-of-type {
    margin: 0;
}
main#recruit section#message section#point div.flexWrap div.txtBlock p.ttl {
    color: #1FA1A0;
    font-size: calc( 20 / var(--root-font-size) * 1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0 0 15px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock p.ttl.round {
    width: 100%;
    max-width: 360px;
    height: 40px;
    background: #1FA1A0;
    border-radius: 20px;
    color: #F2F1E6;
    font-size: calc( 18 / var(--root-font-size) * 1rem);
    line-height: 40px;
    text-align: center;
    text-indent: 0.1em;
    margin: 0 auto 25px;
}
main#recruit section#message section#point div.flexWrap div.txtBlock ul {
    padding: 0 5vw;
}
main#recruit section#message section#point div.flexWrap div.txtBlock ul li {
    position: relative;
    color: #1FA1A0;
    line-height: 1.5;
    padding: 0 0 0 25px;
    margin: 15px 0;
}
main#recruit section#message section#point div.flexWrap div.txtBlock ul li::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 12px;
    height: 12px;
    background: #FBE51F;
    border-radius: 50%;
    margin: auto 0;
}

main#recruit section#job-description {
    position: relative;
    padding: 50px 0 calc(75px + 7.5vw);
}
main#recruit section#job-description::before {
    content: "";
    position: absolute;
    top: -7.5vw;
    left: 0;
    width: 100%;
    height: 7.5vw;
    background: url("../images/line_white.png") no-repeat center top;
    background-size: cover;
}
main#recruit section#job-description div.inner {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 90%;
    margin: 0 auto;
}
main#recruit section#job-description div.inner .side {
    position: inherit;
    top: 0;
    width: 100%;
    padding: 0 0 50px;
}
main#recruit section#job-description div.inner .side ul {
    width: 250px;
    margin: 0 auto;
}
main#recruit section#job-description div.inner .side ul li {
    margin: 0 0 5px;
}
main#recruit section#job-description div.inner .side ul li:last-child {
    margin: 0;
}
main#recruit section#job-description div.inner .main {
    width: 100%;
    padding: 0;
}
main#recruit section#job-description div.inner .main .block {
    width: 100%;
    max-width: 750px;
    background: #F2F1E6;
    border-top-left-radius: 30px;
    padding: 50px 5vw;
    margin: 0 0 25px;
}
main#recruit section#job-description div.inner .main .block h3.ttl {
    position: relative;
    color: #1FA1A0;
    font-size: calc( 18 / var(--root-font-size) * 1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.5;
    padding: 0 0 0 50px;
    margin: 0 0 15px;
}
main#recruit section#job-description div.inner .main .block h3.ttl span {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 40px;
    background: #FFF;
    border: #1FA1A0 solid 2px;
    border-radius: 20px;
    font-size: calc( 18 / var(--root-font-size) * 1rem);
    letter-spacing: 0.1em;
    line-height: 36px;
    text-align: center;
    text-indent: 0.1em;
    margin: auto 0;
}

main#recruit section#interview {
    position: relative;
    background: #F2F1E6;
    padding: 50px 0;
}
main#recruit section#interview div.inner {
    width: 90%;
    max-width: 1200px;
    background: #FFF;
    border-top-left-radius: 30px;
    padding: 100px min(5vw, 150px) 50px;
    margin: 0 auto;
}
main#recruit section#interview div.inner div.flexWrap {
    flex-wrap: wrap;
    justify-content: space-between;
}
main#recruit section#interview div.inner div.flexWrap div.flexL {
    width: 100%;
}
main#recruit section#interview div.inner div.flexWrap div.flexR {
    width: 100%;
}
main#recruit section#interview div.inner div.flexWrap div.flexC {
    width: 100%;
}
main#recruit section#interview div.inner div.flexWrap div.center {
    align-content: center;
}
main#recruit section#interview div.inner div.flexWrap div.photo {
    margin: 0 0 50px;
}
main#recruit section#interview div.inner p {
    line-height: 1.75;
}
main#recruit section#interview div.inner p.name {
    font-size: calc( 16 / var(--root-font-size) * 1rem);
    line-height: 1.5;
    margin: 0 0 50px;
}
main#recruit section#interview div.inner p.name span {
    font-size: calc( 18 / var(--root-font-size) * 1rem);
}
main#recruit section#interview div.inner p.question {
    color: #1FA1A0;
    font-size: calc( 18 / var(--root-font-size) * 1rem);
    font-weight: 700;
    margin: 0 0 5px;
}
main#recruit section#interview div.inner p.answer {
    margin: 0 0 50px;
}
main#recruit section#interview div.inner figure {
    position: relative;
    margin: 0 0 15px;
}
main#recruit section#interview div.inner figure p {
    position: absolute;
    top: -3em;
    right: max(-2.5vw, -25px);
    color: #FFF;
    font-size: calc( 24 / var(--root-font-size) * 1rem);
    text-align: right;
}
main#recruit section#interview div.inner figure p span {
    background: #1FA1A0;
    line-height: 2.25;
    padding: 0.25em min(2.5vw, 25px);
}

main#recruit section#flow {
    padding: 50px 0 100px;
}
main#recruit section#flow figure {
    width: 90%;
    max-width: 300px;
    text-align: center;
    margin: 0 auto;
}
main#recruit section#flow ol {
    display: flex;
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}

main#recruit section#faq {
    background: #F2F1E6;
    padding: 50px 0 calc(100px + 7.5vw);
}
main#recruit section#faq ul {
    width: 90%;
    max-width: 900px;
    margin: 0 auto;
}
main#recruit section#faq ul li {
    margin: 0 0 50px;
}
main#recruit section#faq ul li:last-child {
    margin: 0;
}
main#recruit section#faq ul li p {
    line-height: 1.75;
}
main#recruit section#faq ul li p.question {
    color: #1FA1A0;
    font-size: calc( 18 / var(--root-font-size) * 1rem);
    font-weight: 700;
    margin: 0 0 5px;
}
}

/*----- contact -----*/
main#contact section#form {
    width: 90%;
    max-width: 900px;
    padding: 0 0 200px;
    margin: 0 auto;
}
main#contact section#form h2.ttl,
main#contact section#thanks h1.ttl {
    color: #1FA1A0;
    font-size: calc( 30 / var(--root-font-size) * 1rem);
    font-weight: 700;
    line-height: 1.75;
    margin: 0 0 15px;
}
main#contact section#form p.txt,
main#contact section#thanks p.txt {
    line-height: 1.75;
    margin: 0 0 50px;
}
main#contact section#thanks p.txt {
    margin: 0 0 100px;
}
main#contact section#form div.form {
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
}
main#contact section#form div.form table {
}

main#contact section#thanks {
    width: 90%;
    max-width: 900px;
    text-align: center;
    padding: 0 0 200px;
    margin: 0 auto;
}

#form {
}
#form table {
    width: 100%;
}
#form table th,
#form table td {
    display: block;
    width: 100%;
}
#form table th {
    position: relative;
    vertical-align: top;
    padding: 25px 0 25px 85px;
}
#form table th .required,
#form table th .optional {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 70px;
    height: 24px;
    background: #FBE51F;
    border-radius: 12px;
    color: #1FA1A0;
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 24px;
    text-align: center;
    margin: auto 0;
}
#form table th .optional {
    background: #1FA1A0;
    color: #FBE51F;
}
#form table td {
    padding: 0 0 25px;
}
#form table td.acceptance a {
    text-decoration: underline;
}
#form table td.acceptance a:hover {
    text-decoration: none;
}

#form table td input.wpcf7-form-control,
#form table td textarea,
#form table td select,
#form table td div.confirm {
    display: inline-block;
    width: 100%;
    background: #F2F2F2;
    border-radius: 10px;
    padding: 15px;
}
div.wpcf7 ::placeholder {
	color: #707070;
}
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: #FBE51F;
    border-radius: 10px;
    border: none!important;
    color: #1FA1A0;
    line-height: 1.5;
    text-align: center;
    text-indent: 0.1em;
    padding: 10px 15px;
    margin: 25px auto 0;
}

select {
    -webkit-appearance: none;
    appearance: none; /* デフォルトの矢印を非表示 */
}
select::-ms-expand {
    display: none; /* デフォルトの矢印を非表示(IE用) */
}
/* セレクトボックスの矢印デザイン変更 */
#form table td .box {
    position: relative;
}
#form table td .box::before {
    content: "";
    position: absolute;
    z-index: 9;
    top: 0;
    bottom: 0;
    right: 15px;
    width: 20px;
    height: 20px;
    background: url("../images/anchor5.png") no-repeat center center;
    background-size: contain;
    margin: auto 0;
}

.wpcf7-list-item {
    display: block;
    line-height: 1.5;
    margin: 0!important;
}
#form table td.checkbox .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;
    background: #F2F2F2;
    border: #A8A8A8 solid 1px;
    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 #1FA1A0;
    border-right: 3px solid #1FA1A0;
    transform: rotate(135deg);
    position: absolute;
    left: 8px;
    top: 9px;
}

#form div.btn {
    margin: 15px auto 0;
}

@media screen and (max-width: 960px) {
main#contact section#form {
    width: 90%;
    max-width: 900px;
    padding: 0 0 100px;
    margin: 0 auto;
}
main#contact section#form h2.ttl,
main#contact section#thanks h1.ttl {
    color: #1FA1A0;
    font-size: calc( 24 / var(--root-font-size) * 1rem);
    font-weight: 700;
    line-height: 1.75;
    margin: 0 0 15px;
}
main#contact section#form p.txt,
main#contact section#thanks p.txt {
    font-size: calc( 14 / var(--root-font-size) * 1rem);
    line-height: 1.75;
    margin: 0 0 50px;
}
main#contact section#thanks p.txt {
    margin: 0 0 50px;
}
main#contact section#form div.form {
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
}
main#contact section#form div.form table {
}

main#contact section#thanks {
    width: 90%;
    max-width: 900px;
    text-align: center;
    padding: 0 0 100px;
    margin: 0 auto;
}

#form {
}
#form table {
    width: 100%;
}
#form table th,
#form table td {
    display: block;
    width: 100%;
}
#form table th {
    position: relative;
    vertical-align: top;
    padding: 15px 0 15px 85px;
}
#form table th .required,
#form table th .optional {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 70px;
    height: 24px;
    background: #FBE51F;
    border-radius: 12px;
    color: #1FA1A0;
    font-size: calc( 12 / var(--root-font-size) * 1rem );
    line-height: 24px;
    text-align: center;
    margin: auto 0;
}
#form table th .optional {
    background: #1FA1A0;
    color: #FBE51F;
}
#form table td {
    padding: 0 0 15px;
}
#form table td.acceptance a {
    text-decoration: underline;
}
#form table td.acceptance a:hover {
    text-decoration: none;
}

#form div.btn {
    margin: 15px auto 0;
}
}

/*----- privacy-policy -----*/
main#privacy-policy div.inner {
    width: 90%;
    max-width: 900px;
    padding: 100px 0 150px;
    margin: 0 auto;
}
main#privacy-policy div.inner div.introduction {
    margin: 0 0 100px;
}
main#privacy-policy div.inner div.introduction .ttl {
    color: #1FA1A0;
    font-size: calc( 30 / var(--root-font-size) * 1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0 0 25px;
}
main#privacy-policy div.inner p.txt {
    line-height: 1.5;
    margin: 0 0 50px;
}

@media screen and (max-width: 960px) {
main#privacy-policy div.inner {
    width: 90%;
    max-width: 900px;
    padding: 50px 0;
    margin: 0 auto;
}
main#privacy-policy div.inner div.introduction {
    margin: 0 0 50px;
}
main#privacy-policy div.inner div.introduction .ttl {
    color: #1FA1A0;
    font-size: calc( 20 / var(--root-font-size) * 1rem);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0 0 15px;
}
main#privacy-policy div.inner .mainTtl .en {
    font-size: calc( 20 / var(--root-font-size) * 1rem );
}
main#privacy-policy div.inner p.txt {
    line-height: 1.5;
    margin: 0 0 50px;
}
}
