@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');


/* Reset CSS
-------------------------------*/

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{
    margin:0;
    padding:0;
}
table{
    border-collapse:collapse;
    border-spacing:0;
}
fieldset,img{
    border:0;
}
address,caption,cite,code,dfn,em,strong,th,var{
    font-style:normal;
    font-weight:normal;
}
ul,ol,li{
    list-style:none;
}
caption,th{
    text-align:left;
}
h1,h2,h3,h4,h5,h6{
    font-size:100%;
    font-weight:normal;
}
q:before,q:after{
    content:'';
}
abbr,acronym {border:0;font-variant:normal;}
sup {vertical-align:text-top;}
sub {vertical-align:text-bottom;}
hr {display:none;}
input,textarea,select{
    font-family:inherit;
    font-size:inherit;
    font-weight:inherit;
    *font-size:100%;
}
*,
*::before,
*::after {
    box-sizing: border-box;
}

img{
    max-width:100%;
    height:auto;
    vertical-align: bottom;
    margin:0;
    padding:0;
}

.clearfix:after {
    content: ""; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden;
}
html {scroll-behavior: smooth;}

a {
  outline:none;
  color: #2e2e2e;
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s;
  text-decoration: none;
}

a:hover {
  text-decoration: none;
  filter: alpha(opacity=80);
  -moz-opacity:0.80;
  opacity:0.80;
}

/* PCで電話リンクしない */
@media(min-width: 768px){
  a[href^="tel:"]{
    pointer-events: none;
  }
}
.d-ilblock{
    display: inline-block;
}
.flex{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}



/* Basic setting
-------------------------------*/

body {
    font-family: 'Noto Sans JP', "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	font-size: 16px;
	line-height: 1.8;
    font-weight: 500;
	color: #000;
	-webkit-text-size-adjust: 100%;
}
#wrapper{
	margin:0 auto;
	padding:0;
	width:100%;
	overflow:hidden;
}
@media screen and (max-width:640px){
    body {
        font-size: 14px;
        line-height: 1.7;
    }
}






/* ヘッダー
-------------------------------*/
#header{
    background-color: #000;
    padding: 25px;
    position: relative;
    z-index: 50;
}
#header .inner{
    width: 100%;
    align-items: center;
}



@media screen and (max-width:910px){

    #header{
        padding: 20px;
    }

    
    
}
@media screen and (max-width:640px){
    #header{
        padding: 10px;
    }

    .h_logo{
        width: calc(100% - 70px);
        
    }
    
    
}



























/* フッター
-------------------------------*/
#footer{
    width: 100%;
    padding-top: 100px;
    background-color: #fff;
    position: relative;
    z-index: 40;
}
#footer .inner{
    width: 90%;
    max-width: 1400px;
    margin: auto;
    align-items: center;
}
.f_info01 address{
    margin-top: 40px;
    font-size: 18px;
    line-height: 1.6;
}
.f_nav{
    width: 100%;
    max-width: 500px;
}
.f_nav li{
    margin-left: 2em;
    margin-bottom: 30px;
    font-size: 18px;
    line-height: 1.6;
    display: inline-block;
    min-width: 120px;
}
.f_nav li a{
    padding: 5px 0 5px 40px;
    background: url(../img/common/arrow_maru.png) left center no-repeat;
}
#footer .copy{
    margin-top: 60px;
    width: 100%;
    background-color: #000;
    color: #fff;
    padding: 15px 3%;
	text-align:center;
	font-size:15px;
    line-height: 1.2;
}

#footer .copy span{
    display: inline-block;
}

/*  ページトップへ */
#pageTop{
	position:fixed;
	bottom:50px;
	right:20px;
    z-index: 90;
}


@media screen and (max-width:1100px){
    .f_nav {
        width: 100%;
        max-width: 350px;
    }
}

@media screen and (max-width:910px){
    .f_info01{
        width: 90%;
        margin: auto;
        text-align: center;
    }
    .f_info01 address{
        display: inline-block;
        text-align: left;
    }
    .f_nav {
        display: none;
    }
    #pageTop{
        width: 50px;
        height: 50px;
        border-radius: 30px;
        overflow: hidden;
        background: url(../img/common/arrow_top.png) center center no-repeat;
        background-size: 200% auto;
    }
    #pageTop img{
        display: none;
    }
}

@media screen and (max-width:640px){
    
    .f_info01 address{
        margin-top: 20px;
        font-size: 14px;
        line-height: 1.6;
    }
    #footer .copy{
        margin-top: 40px;
        font-size:12px;
    }


}















.w1400{
    width: 90%;
    max-width: 1400px;
    margin: auto;
}
.w1200{
    width: 90%;
    max-width: 1200px;
    margin: auto;
}
.w940{
    width: 90%;
    max-width: 940px;
    margin: auto;
}


.page_ttl{
    width: 100%;
    height: 19.79vw;
    display: flex;
    justify-content: center;
    align-items: center;
    background: url(../img/common/page_ttl_bg.jpg) center top/cover no-repeat;
    text-align: center;
}
.page_ttl .en{
    font-size: 18px;
    font-weight: 500;
}
.page_ttl .en span{
    color: #6492f5;
    margin-right: 10px;
}
.page_ttl .ja{
    font-size: 46px;
    font-weight: 600;
}
.page_ttl .ja span{
    color: #6492f5;
}

.btn{
    text-align: center;
}

.btn a{
    display: inline-block;
    text-align: center;
    width: 100%;
    max-width: 450px;
    background-color: #6492f5;
    border-radius: 30px;
    background-image: url(../img/common/arrow_maru_w.png);
    background-repeat: no-repeat;
    background-position: calc(100% - 20px) center;
    color: #fff;
    font-weight: 700;
    padding: 15px 20px 15px 0;
}

@media screen and (min-width:1921px){
    .page_ttl{
        height: 380px;
        background-position: bottom center;
        background-size: cover;
    }
}
@media screen and (max-width:910px){
    .page_ttl{
        height: 160px;
    }
    .page_ttl .en{
        font-size: 16px;
    }
    .page_ttl .ja{
        font-size: 32px;
    }
}
@media screen and (max-width:640px){
    .page_ttl{
        background-size: 140% auto;
    }
    .page_ttl .en{
        font-size: 15px;
    }
    .page_ttl .ja{
        font-size: 28px;
    }

}













/* 会社案内
-------------------------------*/

body.company{
    background: url(../img/common/company_bg.png) center top no-repeat;
}

.page_ttl.bg_company{
    margin-top: 40px;
    width: 100%;
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
    height: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items:center;
    background:none;
    text-align: center;
    margin-bottom: 70px;
}
.page_ttl.bg_company ._in{
    width: 39%;
}

.page_ttl.bg_company .en span{
    color: #f56b78;
}
.page_ttl.bg_company .ja span{
    color: #f56b78;
}
.page_ttl.bg_company .img{
    width: 61%;
    position: relative;
}
.page_ttl.bg_company .img img{
    border-top-left-radius: 30px;
    border-bottom-left-radius: 30px;
}
.page_ttl.bg_company .img:after{
    position: absolute;
    left: 45%;
    top: calc(100% - 79px);
    width: 157px;
    height: 157px;
    border-radius: 50%;
    background-color: #6492f5;
    content: "";
}
.comp01,
.comp02{
    margin-bottom: 150px;
}
.comp_ttl{
    width: 150px;
    text-align: center;
    background-color: #f56b78;
    border-radius: 30px;
    padding: 10px;
    font-size: 20px;
    color: #fff;
    margin-bottom: 70px;
}
.comp_ttl.ao{
    background-color: #6492f5;
}
.gaiyou{
    width: 100%;
    background-color: rgba(255,255,255,0.6);
}
.gaiyou tr{
    border-bottom: solid 1px #f56b78;
}
.gaiyou tr:first-child{
    border-top: solid 1px #f56b78;
}
.gaiyou th{
    width: 200px;
    padding: 20px 0 20px 20px;
    border-bottom: solid 3px #f56b78;
    font-size: 120%;
    color: #f56b78;
}
.gaiyou tr:first-child th{
    border-top: solid 3px #f56b78;
}
.gaiyou td{
    padding: 20px 60px;
}

.gaiyou.ao tr{
    border-bottom-color: #6492f5;
}
.gaiyou.ao tr:first-child{
    border-top-color: #6492f5;
}
.gaiyou.ao th{
    border-bottom:none;
    color: #6492f5;
}
.gaiyou.ao tr:first-child th{
    border-top: none;
}

.gaiyou .txt4{
    width: 4em;
    display: flex;
    justify-content: space-between;
}
.gaiyou .f_s{
    font-size: 80%;
    padding-left: 2px;
    padding-right: 2px;
}
.gaiyou .em1{
    display: inline-block;
    width: 1.1em;
    text-align: center;
}



@media screen and (max-width:1920px){
    .page_ttl.bg_company .img:after{
        top: calc(100% - 4.05vw);
        width: 8.1vw;
        height: 8.1vw;
    }
}
@media screen and (max-width:910px){

    .page_ttl.bg_company{
        margin-top: 20px;
    }
    .page_ttl.bg_company .img img{
        border-top-left-radius: 20px;
        border-bottom-left-radius: 20px;
    }
    .page_ttl.bg_company .img:after{
        display: none;
    }
    .comp01,
    .comp02{
        margin-bottom: 80px;
    }
    .comp_ttl{
        margin-bottom: 30px;
    }
    .gaiyou th{
        width: 150px;
        padding: 10px 0 10px 10px;
        font-size: 100%;
    }
    .gaiyou td{
        padding: 10px 20px;
    }
    
}
@media screen and (max-width:640px){
    .page_ttl.bg_company{
        margin-top: 0;
        margin-bottom: 40px;
    }
    .page_ttl.bg_company ._in{
        width: 50%;
    }
    .page_ttl.bg_company .img{
        width: 50%;
    }
    .page_ttl.bg_company .img img{
        border-radius: 0;
        width: 100%;
        height: 160px;
        object-fit: cover;
        object-position: center;
    }
    .comp01,
    .comp02{
        margin-bottom: 50px;
    }
    .comp_ttl{
        font-size: 16px;
        margin-bottom: 20px;
    }
    .gaiyou th{
        display: inline-block;
        width: 100%;
        padding: 10px;
        background-color: #f1f1f1;
        border-bottom: none;
    }
    .gaiyou tr:first-child th{
        border-top: none;
    }
    .gaiyou td{
        display: inline-block;
        width: 100%;
        padding: 10px;
    }
}


/* アクセス */
.com03{
    width: 100%;
    padding-top: 80px;
    overflow: hidden;
    position: relative;
}
.com03:after{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 470px;
    background-color: #6492f5;
    content: "";
}
.com03:before{
    position: absolute;
    top: 95px;
    left: calc(50% - 845px);
    z-index: 2;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background-color: #f56b78;
    content: "";
}
.com03 ._in{
    position: relative;
    z-index: 3;
}
.com03 .txt{
    width: 380px;
    color: #fff;
}
.com03 .txt .sub1{
    font-size: 30px;
    margin-bottom: 20px;
}
.com03 .txt .sub2{
    margin-top: 20px;
}
.com03 .txt .sub2 a{
    color: #fff;
    text-decoration: underline;
    padding-right: 25px;
    background: url(../img/common/arrow_maru_w.png) right center no-repeat;
    background-size: 16px auto;
}

.com03 .txt .sub3{
    margin-top: 120px;
}
.com03 .map{
    width: calc(100% - 380px);
}
.g-map{
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 530px;/* 高さ */
    border-radius: 20px;
    overflow: hidden;
}
.g-map iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

@media screen and (max-width:910px){
    .com03{
        background-color: #6492f5;
        padding-top: 40px;
        padding-bottom: 40px;
    }
    .com03:after{
        display: none;
    }
    .com03:before{
        display: none;
    }
    .com03 .txt{
        width: 100%;
    }
    .com03 .txt .sub1{
        width: 150px;
        text-align: center;
        background-color: #fff;
        border-radius: 30px;
        padding: 10px;
        font-size: 20px;
        color: #6492f5;
        margin-bottom: 20px;
    }
    .com03 .txt .sub1 span{
        display: none;
    }
    .com03 .txt .sub3{
        display: none;
    }
    .com03 .map{
        width: 100%;
        padding-top: 30px;
    }
    .g-map{
        padding-top: 60%;/* 高さ */
    }
}
@media screen and (max-width:640px){
    .com03 .txt .sub1{
        font-size: 16px;
    }
    .g-map{
        padding-top: 80%;/* 高さ */
        border-radius: 0;
    }
    
}






/* 事業案内
-------------------------------*/
body.business{
    background: url(../img/business/biz_bg.png) center top no-repeat;
}
.page_ttl.biz .ja {
    padding: 0 20px;
}
.biz01{
    width: 90%;
    max-width: 1100px;
    margin: auto;
    padding-top: 50px;
    padding-bottom: 100px;
}
.biz01 .sub1{
    text-align: center;
    margin-bottom: 45px;
}

.biz01 p{
    font-weight: 700;
    line-height: 2;
}

.biz02{
    width: 100%;
    max-width: 1920px;
    margin: auto;
    background-color: #fbfcee;
    padding-bottom: 80px;
}

.biz02 .txt{
    width: 90%;
    max-width: 890px;
    padding: 30px;
    background-color: #ffe15a;
    border-bottom-right-radius: 30px;
    font-weight: 700;
    text-align: center;
    margin-bottom: 10px;
}
.biz02 .txt p{
    display: inline-block;
    text-align: left;
}
.biz02 .img{
    width: 90%;
    margin: auto;
    text-align: center;
}

@media screen and (min-width:911px){
    .biz01 p{
        font-size: 19px;
        line-height: 2.2;
    }
    .biz02 .txt p{
        font-size: 19px;
    }
}
@media screen and (max-width:910px){
    .biz01{
        padding-top: 1px;
        padding-bottom: 50px;
    }
    .biz01 .sub1{
        margin-bottom: 30px;
    }
}

@media screen and (max-width:640px){
    body.business{
        background:none;
    }
    .page_ttl.bg_company.biz ._in{
        width: 100%;
        padding: 40px 5%;
    }
    .page_ttl.bg_company.biz .img{
        width: 100%;
    }
    
    .biz02 {
        padding-bottom: 50px;
    }
    .biz02 .txt{
        margin: auto;
        max-width: initial;
        max-width: auto;
        padding: 20px;
        border-radius: 0 0 20px 20px;
        margin-bottom: 30px;
    }
}



.biz03{
    width: 100%;
    padding-top: 80px;
    padding-bottom: 40px;
    overflow: hidden;
}

.biz_item{
    padding-top: 50px;
    margin-bottom: 100px;
}
.biz_item .cat{
    margin-bottom: 50px;
}
.biz_item .num{
    color: #6492f5;
    font-size: 19px;
    line-height: 1.3;
    font-weight: 700;
}
.biz_item .num span{
    font-family: "Jost", sans-serif;
    font-weight: 500;
    font-size: 60px;
    margin-right: 10px;
}
.biz_item .cat p{
    font-size: 52px;
    line-height: 1.3;
    font-weight: 900;
}
.biz_item_in{
    background-color: #e8e9ed;
    border-radius: 30px;
    padding: 60px;
    position: relative;
}

.biz_item_in .txt1{
    width: 530px;
}
.biz_item_in .txt1 dt{
    font-size: 38px;
    line-height: 1.5;
    font-weight: 900;
    margin-bottom: 30px;
}
.biz_item_in .txt1 dd{
    font-weight: 700;
    margin-bottom: 30px;
}
.biz_item_in .img1{
    position: absolute;
    left: 680px;
    top: -60px;
    width: 640px;
}

.biz_item_in .txt2{
    width: 100%;
    padding: 20px 50px 50px 50px;
    background-image: url(../img/business/biz_18.png);
    background-size: 100% 100%;
    position: relative;
    margin-bottom: 20px;
}
.biz_item_in .txt2 .sub{
    position: absolute;
    left: 20px;
    top: -40px;
}
.biz_item_in .txt3 .img2{
    width: 100%;
}
.biz_item_in .txt3 .img2 li{
    width: 32%;
}
.biz_item_in .txt3 .img2 li img{
    border-radius: 20px;
    border: solid 5px #6492f5;
}
.biz_item_in .txt3 .img2 li p{
    margin-top: 10px;
    line-height: 1.4;
}

.biz_item_in .txt3 .img2.x2{
    width: 100%;
    max-width: 730px;
    margin: auto;
}
.biz_item_in .txt3 .img2.x2 li{
    width: 48%;
}
@media screen and (min-width:911px){
    .biz_item_in .txt1{
        min-height: 650px;
    }
    .biz_item_in .txt1 dd{
        line-height: 2.4;
    }

    .biz_item.rev .cat{
        text-align: right;
    }
    .rev .biz_item_in .txt1{
        margin-left: auto;
    }
    .rev .biz_item_in .img1{
        left: auto;
        right: 680px;
    }
}
@media screen and (max-width:910px){

    .biz03{
        padding-top: 30px;
    }

    .biz_item{
        padding-top: 30px;
        margin-bottom: 50px;
    }
    .biz_item .cat{
        margin-bottom: 20px;
    }
    .biz_item .num{
        font-size: 16px;
    }
    .biz_item .num span{
        font-size: 50px;
    }
    .biz_item .cat p{
        font-size: 40px;
    }
    .biz_item_in{
        padding: 40px;
    }

    .biz_item_in .txt1{
        width: 100%;
    }
    .biz_item_in .txt1 dt{
        font-size: 28px;
        margin-bottom: 20px;
    }
    .biz_item_in .txt1 dd{
        font-weight: 500;
    }
    .biz_item_in .img1{
        position: static;
        width: 90%;
        text-align: center;
        margin: auto;
    }

    .biz_item_in .txt2{
        margin-top: 40px;
        width: 100%;
        padding: 30px 20px 20px;
        border-radius: 20px;
        border: solid 5px #6492f5;
        background-image: none;
        position: relative;
    }
    .biz_item_in .txt3 .img2 li p{
        margin-top: 5px;
        font-size: 90%;
        line-height: 1.4;
    }
    .biz_item_in .txt3 .img2.x2{
        width: 66%;
    }
}

@media screen and (max-width:640px){
    .biz03{
        padding-top: 20px;
    }

    .biz_item{
        padding-top: 20px;
        margin-bottom: 30px;
    }
    .biz_item .cat{
        margin-bottom: 10px;
    }
    .biz_item .num span{
        font-size: 38px;
    }
    .biz_item .cat p{
        font-size: 28px;
    }
    .biz_item_in{
        border-radius: 20px;
        padding: 30px 20px 20px;
    }

    .biz_item_in .txt1 dt{
        font-size: 24px;
        margin-bottom: 15px;
    }
    .biz_item_in .txt1 dd{
        margin-bottom: 15px;
    }

    .biz_item_in .txt2{
        margin-top: 40px;
        border-width: 3px;
    }
    .biz_item_in .txt2 .sub {
        left: 10px;
        top: -30px;
    }
    .biz_item_in .txt2 .sub img{
        width: auto;
        height: 51px;
    }

    
    .biz_item_in .txt3 .img2 li {
        width: 48%;
        margin-bottom: 15px;
    }
    .biz_item_in .txt3 .img2.x2{
        width: 100%;
    }
    .biz_item_in .txt3 .img2 li img {
        border-width: 3px;
    }
}

@media screen and (max-width:400px){
    .biz_item_in .img1 {
        width: 100%;
    }
    .biz_item_in .txt2{
        border-radius: 10px;
    }

    .biz_item_in .txt2 .sub img{
        width: auto;
        height: 45px;
    }

    .biz_item_in .txt3 .img2 li {
        width: 100%;
    }
    .biz_item_in .txt3 .img2.x2 li {
        width: 100%;
        margin-bottom: 15px;
    }
    .biz_item_in .txt3 .img2 li img {
        border-radius: 10px;
    }
}





.biz04 .img{
    width: 38%;
    border-radius: 30px 0 0 30px;
    overflow: hidden;
}
.biz04 .txt{
    width: 62%;
    background-color: #6492f5;
    border-radius: 0 30px 30px 0; 
    padding: 0 5%;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
}
.biz04 .txt ._in{
}
.biz04 .txt p{
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 40px;
}
.biz04 .txt .btn{
    text-align: left;
}
.biz04 .txt .btn a {
    background-color: #fff;
    background-image: url(../img/common/arrow_maru.png);
    color: #6492f5;
}

@media screen and (max-width:1200px){
    .biz04 .txt p{
        font-size: 2.1vw;
        margin-bottom: 3.3vw;
    }
}
@media screen and (max-width:910px){
    .biz04 .txt p br.pc{
        display: none;
    }
}
@media screen and (max-width:640px){
    .biz04 .img{
        width: 100%;
        aspect-ratio:16 / 9;
        border-radius: 20px 20px 0 0;
        overflow: hidden;
    }
    .biz04 .img img{
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .biz04 .txt{
        width: 100%;
        border-radius: 0 0 20px 20px; 
        padding: 20px 20px 30px 20px;
    }
    .biz04 .txt p{
        font-size: 16px;
        margin-bottom: 20px;
    }
    .biz04 .txt .btn a {
        background-position: calc(100% - 10px) center;
        background-size: 25px auto;
    }
    
    
}

















/* 採用情報
-------------------------------*/
.rec_bg1{
    background-color: #ffe15a;
    padding-top: 10px;
    overflow: hidden;
}
.rec01{
    width: 98%;
    max-width: 1884px;
    aspect-ratio:1884 / 645;
    margin: auto;
    background: url(../img/recruit/rec_01.jpg) center center/cover no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.rec01 .cap1{
    margin-bottom: 30px;
}
@media screen and (max-width:1920px){
    .rec01 .txt{
        width: 53.6vw;
    }
    .rec01 .cap1{
        display: inline-block;
        width: 53.6vw;
        margin-bottom: 1.5vw;
    }
    .rec01 .cap2{
        display: inline-block;
        width: 41.2vw;
    }

}
@media screen and (max-width:640px){
    .rec01{
        aspect-ratio:2 / 1.2;
    }
    .rec01 .txt{
        width: 80vw;
    }
    .rec01 .cap1{
        width: 80vw;
        margin-bottom: 2.5vw;
    }
    .rec01 .cap2{
        width: 61.4vw;
    }
}



/* 代表メッセージ */
.rec02{
    padding-top: 60px;
}
.rec02_ttl{
    width: 100%;
    height: 122px;
    max-width: 1920px;
    margin: auto;
    background-image: url(../img/recruit/rec_02.png);
    background-repeat: no-repeat;
    background-position: 1920px 0; /* 開始位置: */

    animation-name: slideRightToLeft;
    animation-delay: 2s; /* 0秒の遅れて開始 */
    animation-duration: 1s; /* アニメーションの時間 */
    animation-iteration-count: 1; /* 繰り返し回数: 1回のみ実行 */
    animation-fill-mode: forwards; /* アニメーション終了時の状態を維持 */
    margin-bottom: 60px;
}

@keyframes slideRightToLeft {
    0% {
        background-position: 1920px 0; /* 開始時: 右端 */
    }
    100% {
        background-position: 50px 0; /* 終了時: 左端 */
    }
}

@media screen and (max-width:1920px){
    .rec02{
        padding-top: 3vw;
    }
    .rec02_ttl{
        height: 6.3vw;
        background-size: auto 100%;
        margin-bottom: 3vw;
    }
}
@media screen and (max-width:480px){
    .rec02{
        padding-top: 20px;
    }
    .rec02_ttl{
        height: 30px;
        background-position: 10px 0; /* 開始位置: */
        animation:none;
        margin-bottom: 10px;
    }

    
}



.rec02_item{
    width: 90%;
    max-width: 1600px;
    margin: 0 auto 100px;
}
.rec02_item .img{
    width: 50%;
    order: 1;
}
.rec02_item .txt{
    width: 45%;
    order: 2;
}
.rec02_item.rev .img{
    order: 2;
}
.rec02_item.rev .txt{
    order: 1;
}

.rec02_item .txt .sub1{
    padding-top: 125px;
    padding-bottom: 125px;
    margin-bottom: 30px;
    position: relative;
}
.rec02_item .txt .sub1.bg_sl1{
    background-image: url(../img/recruit/rec_06.png);
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 255px 100%;
}
.rec02_item .txt .sub1.bg_sl2{
    background-image: url(../img/recruit/rec_07.png);
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 255px 100%;
}
.rec02_item .txt .sub1.bg_sl3{
    background-image: url(../img/recruit/rec_06.png);
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 255px 100%;
}
.rec02_item .txt .sub1.bg_sl1:after{
    position: absolute;
    top: 0;
    right: 0;
    width: 90px;
    height: 120px;
    background: url(../img/recruit/rec_08.png) center center no-repeat;
    background-size: contain;
    content: "";
}
.rec02_item .txt .sub1.bg_sl2:after{
    position: absolute;
    top: -100px;
    left: -20px;
    width: 117px;
    height: 143px;
    background: url(../img/recruit/rec_09.png) center center no-repeat;
    background-size: contain;
    content: "";
}
.rec02_item .txt .sub1.bg_sl3:after{
    position: absolute;
    top: -80px;
    right: 0;
    width: 166px;
    height: 127px;
    background: url(../img/recruit/rec_10.png) center center no-repeat;
    background-size: contain;
    content: "";
}
.rec02_item .txt .sub1 .obi{
    display: inline-block;
    background-color: #fff;
    padding: 1px 0.3em 3px;
    line-height: 1.2;
    font-size: 57px;
    font-weight: 700;
}
.rec02_item .txt .sub1 .obi.p2{
    margin-top: 20px;
    margin-left: 50px;
}
.rec02_item .txt .sub2{
    font-size: 38px;
    font-weight: 700;
}
@media screen and (min-width:911px){
    .rec02_item .txt p{
        font-size: 19px;
        line-height: 2.2;
    }
}
@media (max-width:1780px) and (min-width:911px){

    .rec02_item{
        margin-bottom: 5.6vw;
    }
    .rec02_item .txt .sub1{
        padding-top: 7vw;
        padding-bottom: 7vw;
        margin-bottom: 1.6vw;
    }
    .rec02_item .txt .sub1.bg_sl1{
        background-size: 14vw 100%;
    }
    .rec02_item .txt .sub1.bg_sl2{
        background-size: 14vw 100%;
    }
    .rec02_item .txt .sub1.bg_sl3{
        background-size: 14vw 100%;
    }
    .rec02_item .txt .sub1.bg_sl1:after{
        width: 5vw;
        height: 6.7vw;
    }
    .rec02_item .txt .sub1.bg_sl2:after{
        top: -5.6vw;
        left: -1.1vw;
        width: 6.5vw;
        height: 8vw;
    }
    .rec02_item .txt .sub1.bg_sl3:after{
        top: -4.5vw;
        right: 0;
        width: 9.3vw;
        height: 7.1vw;
    }
    .rec02_item .txt .sub1 .obi{
        font-size: 3.2vw;
    }
    .rec02_item .txt .sub1 .obi.p2{
        margin-top: 1.1vw;
        margin-left: 2.8vw;
    }
    .rec02_item .txt .sub2{
        font-size: 2.1vw;
    }
    .rec02_item .txt p{
        font-size: 16px;
        line-height: 2;
    }
    .rec02_item .txt p br.pc{
        display: none;
    }
}
@media screen and (max-width:910px){

    .rec02_item{
        margin-bottom: 5.6vw;
    }
    .rec02_item .img{
        width: 100%;
        order: 2;
        text-align: center;
        margin-top: 10px;
    }
    .rec02_item .img img{
        width: 90%;
        max-width: 500px;
        height: auto;
    }
    
    
    .rec02_item .txt{
        width: 100%;
        order: 1;
    }

    
    .rec02_item .txt .sub1{
        padding-top: 20px;
        padding-bottom: 0;
    }
    .rec02_item .txt .sub1.bg_sl1{
        background-image: none;
    }
    .rec02_item .txt .sub1.bg_sl2{
        background-image: none;
    }
    .rec02_item .txt .sub1.bg_sl3{
        background-image: none;
    }
    .rec02_item .txt .sub1.bg_sl1:after{
        top: 0;
        right: 0;
        background-position: right top;
        background-size: 90% auto;
    }
    .rec02_item .txt .sub1.bg_sl2:after{
        top: 0;
        left: auto;
        right: 0;
        background-position: right top;
        background-size: 80% auto;
    }
    .rec02_item .txt .sub1.bg_sl3:after{
        top: 0;
        right: -20px;
        background-position: right top;
        background-size: 80% auto;
    }
    .rec02_item .txt .sub1 .obi{
        line-height: 1.2;
        font-size: 40px;
    }
    .rec02_item .txt .sub1 .obi.p2{
        margin-top: 20px;
        margin-left: 30px;
    }
    
    .rec02_item .txt .sub2 {
        font-size: 4.2vw;
    }
    
}
@media screen and (max-width:640px){

    .rec02_item .txt .sub1 {
        margin-bottom: 20px;
    }
    .rec02_item .txt .sub1.bg_sl1:after{
        background-size: 50% auto;
    }
    .rec02_item .txt .sub1.bg_sl2:after{
        background-size: 50% auto;
    }
    .rec02_item .txt .sub1.bg_sl3:after{
        top: -10px;
        right: -30px;
        background-size: 50% auto;
    }
    .rec02_item .txt .sub1 .obi{
        line-height: 1.2;
        font-size: 6.25vw;
    }
    
    .rec02_item .txt .sub1 .obi.p2{
        margin-top: 2.5vw;
        margin-left: 4vw;
    }
}




.rec02-2{
    background-color: #fffbeb;
    padding-bottom: 120px;
}
.rec02-2 .fuki{
    width: 100%;
    background-color: #ffe15a;
    border-radius:0 0 100px 100px;
    padding-bottom: 90px;
    position: relative;
}
.rec02-2 .fuki:after{
    position: absolute;
    left: 50%;
    bottom: -60px;
    width: 120px;
    height: 60px;
    background: url(../img/recruit/rec_34.png) left bottom no-repeat;
    content: "";
}
.rec02-2 .ceo_txt{
    width: 100%;
    max-width: 1147px;
    height: 257px;
    margin: auto;
    background: url(../img/recruit/rec_11.png) center center no-repeat;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 2;
    font-size: 30px;
    font-weight: 700;
}
.rec02-2 .ceo_txt ._in{
    width: 90%;
    max-width: 833px;
}
.rec02-2 .ceo_txt span{
    background-color: #fff;
    padding: 0 10px;
}
.rec02-2 .ceo_img{
    margin-top: -60px;
    padding-left: 5%;
    padding-right: 5%;
    text-align: center;
    position: relative;
    z-index: 3;
}

@media screen and (max-width:910px){
    .rec02-2{
        padding-bottom: 100px;
    }
    .rec02-2 .fuki{
        border-radius:0;
        padding-bottom: 90px;
    }
    .rec02-2 .fuki:after{
        bottom: -6vw;
    }
    .rec02-2 .ceo_txt{
        width: 100%;
        max-width: 1147px;
        height: auto;
        background:none;
        font-size: 3.2vw;
    }
}
@media screen and (max-width:640px){
    .rec02-2{
        padding-bottom: 50px;
    }
    .rec02-2 .fuki {
        padding-bottom: 11vw;
    }
    .rec02-2 .ceo_txt{
        font-size: 16px;
        line-height: 1.8;
    }
    .rec02-2 .ceo_txt ._in{
        background-color: #fff;
        border-radius: 10px;
        padding: 20px;
    }
    .rec02-2 .ceo_txt span{
        padding: 0;
    }
    .rec02-2 .ceo_img{
        margin-top: -9vw;
    }

}





/* 数字でひも解く */

.rec_bg2{
    background: url(../img/recruit/rec_13.png) center top repeat;
    padding-top: 50px;
    padding-bottom: 150px;
    overflow: hidden;
}
.rec03{
    padding-bottom: 130px;
}
.rec03 .ttl1{
    text-align: center;
    margin-bottom: 60px;
}

.rec_data{
    width: 100%;
}
.rec_data li{
    width: 23%;
    margin-bottom: 30px;
    border: solid 4px #6492f5;
    border-radius: 20px;
    background-color: #eff4fe;
    color: #6492f5;
    text-align: center;
    padding: 20px;
}
.rec_data li:nth-child(3n+2){/**/
    border-color: #f56b78;
    background-color: #fef0f1;
    color: #f56b78;
}
.rec_data li:nth-child(3n+3){/**/
    border-color: #f9a520;
    background-color: #fbfcee;
    color: #f9a520;
}

.rec_data li .txt{
    font-size: 68px;
    font-weight: 700;
    
}
.rec_data li .txt span{
    font-size: 20px;
    font-weight: 500;

}
.rec_data li.sp{
    display: none;
}

@media screen and (max-width:1340px){
    .rec_data li .txt{
        font-size: 5vw;
    }
}
@media screen and (max-width:910px){
    .rec_bg2{
        padding-bottom: 100px;
    }
    .rec03{
        padding-bottom: 80px;
    }
    .rec_data li{
        margin-bottom: 20px;
        padding: 10px;
    }
    .rec_data li .txt span{
        font-size: 16px;
        font-weight: 500;
    }
    
    
}
@media screen and (max-width:640px){
    .rec_bg2{
        padding-bottom: 70px;
    }
    .rec03 .ttl1{
        margin-bottom: 30px;
    }
    .rec_data li{
        width: 31%;
    }
    .rec_data li .txt span{
        font-size: 14px;
    }

    .rec_data li.sp{
        display: inline-block;
        height: 1px;
        padding: 0;
        border: none;
        background-color: transparent;
        margin: 0;
    }

}
@media screen and (max-width:420px){
    .rec_data li{
        width: 48%;
        margin-bottom: 10px;
    }
    .rec_data li .txt{
        font-size: 26px;
    }

}



/* Q&A */

.rec04 .ttl1{
    text-align: center;
}
.rec04 .ttl2{
    text-align: center;
    font-size: 120%;
    margin-top: 20px;
    margin-bottom: 60px;
}

.qa_list{
    position: relative;
}
.qa_list .bg1{
    position: absolute;
    left: -110px;
    top: -50px;
}
.qa_list .bg2{
    position: absolute;
    right: -110px;
    top: 50px;
}
.qa_list .bg3{
    position: absolute;
    right: -100px;
    bottom: 0;
}

.qa_list ul{
    width: 100%;
}
.qa_list li{
    width: 31%;
    margin-bottom: 30px;
}
.qa_list li .rec_card{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    aspect-ratio:38 / 40;
    background-color: #f56b78;
    border-radius: 30px;
    color: #fff;
    font-size: 25px;
    font-weight: 700;
    padding: 20px;
    text-align: center;
    transition: 0.3s;
}
.qa_list li .rec_card:hover{
    filter: alpha(opacity=80);
    -moz-opacity:0.80;
    opacity: 0.8;
    
    transform: scale(1.05);
}


.qa_list li.bg_ao .rec_card{
    background-color: #6492f5;
}
.qa_list li.bg_ye .rec_card{
    background-color: #ffe15a;
    color: #000;
}
.qa_list li .rec_card .num{
    font-family: "Jost", sans-serif;
    font-weight: 600;
    font-size: 40px;
}

.popup {
    cursor: pointer;
}
.rec_card.active{
    animation-name: thin-and-return;
    animation-duration: 1s; /* アニメーションの総再生時間 */
    animation-iteration-count: 1; /* 実行回数は1回 */
    animation-direction: alternate; /* 順方向 */
    animation-fill-mode: forwards; /* アニメーション終了後、最後の状態を維持 */
}

@keyframes thin-and-return {
    0% {
        transform: scaleX(1);
    }
    50% {
        transform: scaleX(0.01);
    }
    100% {
        transform: scaleX(1);
    }
}

.modal-container {
    display: none;
    position: fixed;
    background: rgba(0, 0, 0, .7);
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 99;
}
.modal-container > div {
    display: flex;
    height: 100vh;
    justify-content: center;
    align-items: center;
}
.modal-container > div > img {
    max-width: calc(100vw - 30px);
    max-height: calc(100vh - 30px);
}
.recruit .lb-data .lb-close{
    float: none;
}

@media screen and (max-width:910px){
    .rec04 .ttl2{
        margin-bottom: 30px;
    }

    .qa_list{
        position: relative;
    }
    .qa_list .bg1{
        display: none;
    }
    .qa_list .bg2{
        display: none;
    }
    .qa_list .bg3{
        display: none;
    }

    .qa_list ul{
        width: 100%;
    }
    .qa_list li{
        width: 32%;
        margin-bottom: 20px;
    }
    .qa_list li .rec_card{
        border-radius: 20px;
        font-size: 20px;
    }
    .qa_list li .rec_card .num{
        font-size: 30px;

    }
    .qa_list li .rec_card p br.pc{
        display: none;
    }

}
@media screen and (max-width:640px){
    .rec04 .ttl1 img{
        width: 200px;
        height: auto;
    }
    .rec04 .ttl2{
        font-size: 100%;
    }
    .qa_list li{
        width: 48%;
        margin-bottom: 20px;
    }
    .qa_list li .rec_card{
        font-size: 18px;
        height: 100%;
        aspect-ratio: auto;
    }
}
@media screen and (max-width:400px){
    
    .qa_list li .rec_card{
        font-size: 16px;
        padding: 20px 10px;
        border-radius: 10px;
    }
    .qa_list li .rec_card .num{
        font-size: 20px;

    }

    
}





/* 募集要項 */
.rec05{
    width: 100%;
    padding-top: 80px;
    padding-bottom: 300px;
    background: url(../img/recruit/rec_33.png) center bottom repeat-x;
}
.rec05 .sub1{
    text-align: center;
    font-size: 50px;
    font-weight: 700;
    color: #6492f5;
    margin-bottom: 60px;
}
.bosyu{
    width: 100%;
    border-top: solid 1px #808080;
    margin-bottom: 90px;
}
.bosyu tr{
    border-bottom: solid 1px #808080;
}
.bosyu th{
    width: 300px;
    padding: 20px;
}
.bosyu td{
    padding: 20px;
}



@media screen and (max-width:910px){
    .rec05{
        padding-top: 60px;
        padding-bottom: 200px;
    }
    .rec05 .sub1{
        font-size: 30px;
        margin-bottom: 30px;
    }
    .bosyu{
        margin-bottom: 50px;
    }
    .bosyu th{
        width: 150px;
    }

}
@media screen and (max-width:640px){

    .rec05 .sub1{
        font-size: 22px;
    }

    .bosyu th{
        display: inline-block;
        width: 100%;
        padding: 10px;
        background-color: #f1f1f1;
    }
    .bosyu td{
        display: inline-block;
        width: 100%;
        padding: 10px;
    }
    
    
}

























/* お問い合わせ
-------------------------------*/
.toi_cont{
    background-color: #e0e9fd;
    border-radius: 30px;
    padding: 90px 5%;
}
.toi_cont ._in{
    width: 100%;
    max-width: 1000px;
    margin: auto;
}

.hissu{
    display: inline-block;
    padding: 1px 10px 2px;
    font-size: 85%;
    line-height: 1.2;
    color: #fff;
    background-color: #6492f5;
    border-radius: 15px;
}
.toi_cont .txt1{
    margin-bottom: 60px;
}
.toi_cont .txt1 .hissu{
    margin-right: 10px;
}

.mailform{
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 40px; /* 左右、上下 */
}
.mailform th{
    width: 220px;
}
.mailform th .hissu{
    margin-left: 10px;
}
.vr-top{
    vertical-align: top;
}
.mailform td.cat label{
    display: inline-block;
}
.mailform td.cat label:not(:last-child){
    margin-right: 2em;
}
.mailform td.cat input{
    margin-right: 5px;
}

.length_l{
    width: 100%;
    padding: 10px;
    background-color: #fff;
    border-radius: 10px;
    border: none;
}
.length_s{
    width: 80px;
    padding: 10px;
    background-color: #fff;
    border-radius: 10px;
    border: none;
}
.naiyou{
    width: 100%;
    height: 220px;
    border-radius: 10px;
    padding: 10px;
    background-color: #fff;
    border: none;
    resize: vertical;
}

.toi_cont .txt2{
    width: calc(100% -220px);
    max-width: 620px;
    margin-left: 220px;
    padding: 15px;
    text-align: center;
    background-color: #6492f5;
    border-radius: 10px;
    color: #fff;
    margin-bottom: 50px;
}

.toi_cont .txt2 a{
    color: #fff;
    text-decoration: underline;
}
.toi_cont .txt2 a:hover{
    text-decoration: none;
}
.toi_cont .txt3{
    text-align: center;
}
.sousin{
    width: 250px;
    height: 60px;
    background-color: #fff;
    background-image: url(../img/common/arrow_sousin.png);
    background-repeat: no-repeat;
    background-position: calc(100% - 20px) center;
    border: none;
    border-radius: 10px;
    color: #6492f5;
    cursor: pointer;
    transition: 0.3s;
}
.sousin:hover{
    filter: alpha(opacity=80);
    -moz-opacity:0.80;
    opacity:0.80;
}

@media screen and (max-width:910px){
    .toi_cont{
        border-radius: 20px;
        padding: 40px 5%;
    }
    .toi_cont .txt1{
        margin-bottom: 30px;
    }
    .mailform{
        border-spacing: 0 20px; /* 左右、上下 */
    }
    .length_l{
        border-radius: 5px;
    }
    .length_s{
        border-radius: 5px;
    }
    .naiyou{
        border-radius: 5px;
    }
    .toi_cont .txt2{
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 30px;
    }

}
@media screen and (max-width:640px){
    .toi_cont{
        width: 100%;
        border-radius: 0;
        padding: 30px 5%;
    }
    .mailform th{
        display: inline-block;
        width: 100%;
    }
    .mailform td{
        display: inline-block;
        width: 100%;
        padding-top: 8px;
    }
    .toi_cont .txt2{
        border-radius: 5px;
    }
    .sousin{
        background-image: none;
        border-radius: 5px;
    }

}








/* プライバシーポリシー
-------------------------------*/
.ply01,
.ply02{
    margin-bottom: 100px;
}
.ply01 p{
    margin-bottom: 30px;
}

.ply02 .pl-li{
    margin-bottom: 40px;
    padding-left: 30px;
    border-left: solid 4px #6492f5;
}
.ply02 .pl-li ul li{
    text-indent: -1em;
    margin-left: 1em;
}

.ply03{
    background-color: #6492f5;
    border-radius: 30px;
    padding: 40px 5%;
    color: #fff;
}

.ply03 .ttl{
    font-size: 120%;
    margin-bottom: 10px;
}
.ply03 p:not(:last-child){
    margin-bottom: 30px;
}
.ply03 p a{
    color: #fff;
    text-decoration: underline;
}
.ply03 p a:hover{
    text-decoration: none;
}
@media screen and (max-width:910px){
    .ply01,
    .ply02{
        margin-bottom: 80px;
    }
    .ply01 p{
        margin-bottom: 15px;
    }

    .ply02 .pl-li{
        margin-bottom: 30px;
    }

    .ply03{
        border-radius: 20px;
        padding: 30px 5%;
    }

    .ply03 p:not(:last-child){
        margin-bottom: 15px;
    }
}
@media screen and (max-width:640px){
    .ply01,
    .ply02{
        margin-bottom: 50px;
    }

    .ply02 .pl-li{
        margin-bottom: 20px;
        padding-left: 15px;
        border-left-width: 2px;
    }

}




























/* layout */
.clear { clear: both; }
.ar { text-align: right; }
.ac { text-align: center; }
.strong{font-weight:bold;}
.f-ao{
    color: #6492f5;
}
.f-pk{
    color: #f56b78;
}
.f-ore{
    color: #f9a520;
}
/* プリントの表示設定 */
@media print{
    body {
        zoom: 0.68;
        -webkit-print-color-adjust: exact;
    }

    #wrapper{
        width:1110px;
        margin:auto;
    }
    body.recruit {
        zoom: 0.58;
    }
    .rec02_item .txt .sub1 .obi{
        font-size: 40px;
    }

    .rec01 .txt {
        width: 60%;
    }
    .rec01 .cap2 {
        width: 70%;
        margin: auto;
    }
    
    nav.globalMenuSp {
        display: none;
    }
    .navToggle {
        position: relative;    /* bodyに対しての絶対位置指定 */
    }

    [data-aos^="fade"][data-aos^="fade"]{
        opacity: 1;
        transform: translateZ(0);
    }



}







