/*-------------
基本設定
--------------*/
body{
  font-size: 4vw
}
.pc{
  display: none;
}
.tab{
  display: none;
}
.mobi{
  display: block;
}
.pc.tab{
  display: none;
}
.btn{
  width: 95%;
  margin: auto;
}
.container{
  width: calc(100% - 20px);
}
.title{
  font-size: 9vw;
}
.title span{
  font-size: 4vw;
}
.alt-title{
  font-size: 6vw;
}

h2 {
    font-size: 6vw;
}

h3 {
    font-size: 5vw;
}

.mt40 {
    margin-top: 4vw;
}

/*-------------
header
--------------*/
header{
	height:65px;
}
.header-pc{
  display: none;
}
.header-sp{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px;
  box-sizing: border-box;
  width: 100%;
}
header .logo{
  margin: 0;
  width: auto;
  height: 50px;
  padding: 5px 5px 5px 1px;
}
.header-sp.fixed .logo img{
	display:none;
}
header .logo img{
  width: auto;
  height: 50px;
}
.header-sp .lang{
  font-size: 3vw
}
.header-sp .lang li{
  padding: 5px;
}
.hamburger{
  width: 40px;
  height: 23px;
  position: relative;
  padding: 10px;
  box-sizing: border-box;
}
.hamburger span{
  width: 80%;
  height: 5px;
  border-radius: 3px;
  background: #000;
  display: block;
  position: absolute;
  left: 0;
  transition: all ease .3s;
}
.hamburger span:first-of-type{
  top: 0;
}
.hamburger span:nth-of-type(2){
  top: 50%;
  transform: translateY(-50%);
}
.hamburger span:last-of-type{
  bottom: 0;
}
.hamburger span:first-of-type.active{
  top: 9px;
  transform: rotate(45deg);
}
.hamburger span:nth-of-type(2).active{
  opacity: 0;
}
.hamburger span:last-of-type.active{
  bottom: 9px;
  transform: rotate(-45deg);
}
.header-nav-sp{
  top: 60px;
}
.header-nav-sp.active{
  visibility:visible;
  opacity: 1;
}
.header-nav-sp .menu li{
  padding: 0;
  display: block;
  font-size: 4vw;
}
.header-nav-sp .header-contact{
  font-size: 4vw;
  text-align: center;
}
/*-------------
top
--------------*/
.top-kv{
  margin-top: 60px;
  min-height: 500px;
  aspect-ratio: unset;
  background-size: cover;
}
.top-kv-txt{
  padding-left: 10px;
}
.top-kv-txt h1{
  font-size:7vw;
  margin-bottom: 20px;
}
.top-kv-txt p{
  font-size: 5vw;
}
.top-kv-txt p:last-of-type{
  font-size: 5.5vw;
  margin-top: 20px;
}
.top-point{
  background-size: 100% 100%;
  padding: 30px 0;
}
.top-point .flex-between{
  flex-wrap: wrap;
  justify-content: center;
}
.top-point-inner{
  width: calc(95% / 2);
  height:30vw;
  margin-bottom:3vw;
}
.top-point-inner img{
	margin: 5px auto;
	max-width: 15vw;
}
.top-point .container {
    column-gap: 2vw;
    row-gap: 2vw;
}
.top-point-inner p{
	font-size:3.5vw;
}
.top-point .container a::before {
    width: 12px;
    bottom: 2px;
}

#top-mv{
    background: url(images/top-kv-sp.webp) top center no-repeat;
    background-size: cover;
	padding: 55vw 0 3vw 0;
    position: relative;
    z-index: 1;
}


#top-mv .container {
    padding: 0 3vw;
}

.mv-disc {
    font-size: 5.5vw;
}

.mv-title-l {
    font-size: 12.5vw;
}
.mv-title-span {
    font-size: 8vw;
}

.mv-disc-1{
	white-space:nowrap;
}
.mv-disc-1 .tx-s {
    font-size: 5vw;
}

#top-link .container {
    width: 96%;
}

#top-link ul li {
    width: 48%;
	text-align:left;
	font-size:4vw;
	margin-bottom:1.5rem;
	line-height:1.3;
	padding:.7rem .5rem;
}

#top-link ul li a {
    display: flex;
    align-items: center;
    justify-content: flex-start;
	text-align:center;
}

#top-link ul li:first-child span, #top-link ul li:nth-child(3) span, #top-link ul li:nth-child(4) span {
    margin-left: 3vw;
}

#top-link ul li:nth-child(5) span, #top-link ul li:last-child span {
    margin-left: 4vw;
}

#top-link ul li img {
    max-width: 38px;
}

#top-link ul li:after{
	width:19px;
	height:19px;
    right: 4px;
    top: 35%;
}
.top-vocie-wrap{
	flex-wrap:wrap;	
}

.top-vocie-wrap .child{
	width:100%;
}

.top-vocie-wrap .child img{
	max-width:100%;
}

.number-wrap-1 {
    margin: 2rem auto 1rem;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.number-wrap-2{
	display:flex;
	justify-content:space-between;
	flex-wrap:wrap;
}

.number-wrap-2 .child {
    margin-top: 0;
}

.number-wrap-1 .child, .number-wrap-2 .child {
    width: 48.5%;
    height: 50vw;
    float: unset;
    margin-right: 0;
	margin-bottom: 1rem;
}

.number-wrap-1 .child img, .number-wrap-2 .child img {
    max-width: 38vw;
    height: auto;
    margin: 1rem auto 0;
}

.number-wrap-1 .child-2 {
    width: 100%;
    height: 100px;
    float: unset;
    margin-bottom: .7rem;
}

.number-wrap-1 .child-2 img {
    max-width: 78vw;
    height: auto;
    margin: 0 auto 0;
}

.number-wrap-1 .child:last-child, .number-wrap-2 .child:last-child {
    margin-right: 0;
    margin-bottom: 0rem;
}

.company-wrap .tx {
    width: 100%;
}

#company:after{
	display:none;
}

.company-pic-sp{
	margin:0 0 2vw 2vw;
	max-width:40vw;
	height:auto;
}

.about-company .btn.red {
    width: 80vw;
    font-size: 3.5vw;
    margin: 0 auto;
}

#number {
    margin: 6vw auto 0;
}

.number-wrap-1 .child .ex, .number-wrap-2 .child .ex {
    font-size: 3.5vw;
}

#work {
    margin-top: 6vw;
    background-size: contain;
    background-position: top right;
    padding: 4rem 0;
    background-color: #bb1217;
}

#work p {
    line-height: 1.8;
}

#voice {
    margin: 6vw auto;
}

.top-vocie-wrap .yaku {
    font-size: 3.7vw;
}

.top-vocie-wrap .mm {
    font-size: 3.7vw;
}

.top-vocie-wrap .child:first-child{
	margin-bottom:6vw;
}

#environment {
    padding: 6vw 0;
}

.environment-wrap {
    margin: 3vw auto 0;
}

.environment-wrap .child {
	width:48%;
}

.environment-wrap .child .tx-m {
    font-size: 4.5vw;
}

.environment-wrap .child .icon img {
    max-height: 50px;
}

.information-wrap .mm {
    font-size: 4vw;
}

.information-wrap .link a{
	width:47%;
}

#information {
    padding: 3vw 0 10vw;
}

.page-wrap.recruit-top {
    margin: 0 0;
}

/*募集要項*/
#sub-requirements{
	padding:2vw 0;
}

.sub-requirements-wrap table th {
    padding: 2vw 1vw 0 2vw;
    font-size: 3.5vw;
}

.sub-requirements-wrap table td {
    padding: 1vw 1vw 1vw 3vw;
    font-size: 3.9vw;
}

.sub-vocie-wrap .q {
    font-size: 4.3vw;
}

.sub-voice-staff-pic{
	max-width:48vw;
	height:auto;
	margin:0 0 2vw 2vw;
}

.sub-vocie-wrap .mm {
    width: 100%;
}

#sub-one-day{
	margin:5vw 0 0;
	background-position:right top;
}

.sub-one-day-wrap .time {
    width: 30%;
}

.sub-one-day-wrap .mark {
    width: 7%;
}

.sub-one-day-wrap .job {
    width: 60%;
}

#sub-flow {
	padding: 6vw 0;
}

.sub-flow-contents .num {
    width: 67px;
    padding: 1px 0;
}

#sub-entry {
    margin: 5vw auto;
}

.entry-btn{
	height:95px;
	line-height:95px;
}

.entry-btn::after {
    width: 27px;
    height: 27px;
    top: 36%;
}

/*-------------
footer
--------------*/
footer{
  font-size: 4.3vw;
}
footer .logo{
  width: 70%;
}

footer .logo img{
	max-width:42vw;
}
.footer-inner{
  width: calc(100% - 20px);
  margin: 0 10px;
  flex-wrap: wrap;
  padding: 30px 0;
}
.footer-inner-nav{
	margin-top:6vw;
}
.footer-inner-nav li{
  font-size: 4vw;
}
.footer-inner .flex-between{
  flex-wrap: wrap;
  width: 100%;
}
.footer-inner .flex-between ul{
  width: 100%;
  margin-top: 10px;
}
.copyright{
  font-size: 3vw;
}
/*-------------
contact banner
--------------*/
.contact-banner-inner{
	padding:22px 0;
}
.contact-banner-inner h2{
  font-size: 9vw;
  text-align:center;
}
.contact-banner-inner img{
  width: 55%;
  right:0;
}
.contact-banner-button .mail{
  width: 90%;
  font-size: 5vw;
  padding: 10px 30px 10px 60px;
  margin: 70px auto 0;
}
.contact-banner-button .mail::before{
  width: 30px;
  left: 20px;
}
.contact-banner-button a .small{
  font-size: 4vw;
}
/*-------------
news
--------------*/
.news-wrap{
  padding: 30px 10px;
}
/*-------------
page
--------------*/
.page-wrap{
  margin-top: 40px;
}
.page-title{
  height: 120px;
	margin-top:65px;
}
.page-title h1{
  font-size: 5vw;
}
.page-title h1 span{
  font-size: 4vw;
}
.page-inner-link .flex-center{
  flex-wrap: wrap;
}
.page-inner-link li{
  width: 95%;
  height: 13vw;
}
.breadcrumbs{
  font-size: 3.5vw;
}
/*-------------
page about
--------------*/
.about-representative{
  padding-top: 30px;
}
.about-representative .flex-between{
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 30px;
}
.about-representative-txt h3{
  margin-top: 20px;
  font-size: 7vw;
}
.about-representative-txt h3 > span{
  font-size: 5.5vw;
}
.about-representative-txt p{
  margin-bottom: 30px;
}
.about-company{
  padding: 30px 0;
}
.about-company .title{
  margin: 0 auto 30px;
}
.about-company-inner{
  padding: 10px;
}
.about-company-inner th,
.about-company-inner td{
  display: block;
  width: 100%;
  padding: 15px;
}
.about-company::before{
  height: 100%;
}
/*-------------
page contact
--------------*/
.form-wrap{
  padding: 50px 10px;
}
.form-wrap table{
  width: 100%;
}
.form-wrap th,
.form-wrap td{
  display: block;
  padding: 10px 0;
  width: 100%;
}
.required,
.optional{
  position: unset;
  margin-left: 15px;
}
/*-------------
page faq
--------------*/
.faq-list{
  padding: 30px 0;
}
.faq-list li{
  font-size: 4vw;
}
.faq-list li p{
  padding: 0 20px 0 30px;
}
.faq-list li p.active{
  padding: 20px 20px 20px 30px;
}
.faq-list li button{
  padding: 20px 40px 20px 40px;
}
.faq-list li button::before{
  left: 10px;
}
.faq-list .btn-icon{
  right: 10px;
  width: 25px;
  height: 25px;
}
/*-------------
page advantage
--------------*/
.advantage-top .flex-between{
  flex-wrap: wrap;
}
.advantage-top h2{
  margin-bottom: 20px;
}
.advantage-top img{
  width: 100%;
}
.advantage-list-wrap .title{
  margin-bottom: 30px;
  font-size: 10vw;
}
.advantage-list-wrap li{
  font-size: 4.5vw;
	padding-left:35px;
}
.advantage-list-wrap li::before{
	width:22px;
	height:1px;
	top:3vw;
}
.advantage-list-wrap .bg-ash,
.advantage-list-wrap .bg-red{
  padding: 30px 0;
  margin-bottom: 30px;
}
.advantage-list-wrap .flex-start{
  flex-wrap: wrap;
}
.advantage-list-wrap .flex-start ul{
  width: 100%;
}
.advantage-main-title{
  margin-bottom: 30px;
}
.advantage-main-title h2{
  font-size: 6vw;
}
.advantage-main-title img{
  bottom: 0;
  width: 80%;
}
.advantage-list-wrap .container .illust img {
    max-height: 28vw;
    width: auto;
}
.advantage-list-wrap .container .illust {
    position: absolute;
    right: 1%;
    top: -8%;
}
.advantage-list-wrap .container .illust.value img {
    max-height: 40vw;
    width: auto;
}
.advantage-list-wrap .container .illust.value {
    top: -1%;
}
/*-------------
page voice
--------------*/
.voice-inner-imgs{
  margin: 20px 0;
}
.voice-inner-txt li{
  padding: 10px;
}
/*-------------
page services
--------------*/
.services-inner{
  margin-bottom: 50px;
	scroll-margin-top: 80px;/*アンカーリンクずれ対応*/
}
.services-inner h2{
  font-size: 6.5vw;
  border-width: 10px;
}
.services-inner-txt{
  margin-top: 20px;
}
.services-inner-list{
  padding: 20px;
}
.services-inner-list h3{
  font-size: 5vw;
}
.services-inner-list li{
  margin-bottom: 10px;
}
.services-inner-list li::before{
  transform: unset;
  top: 1.8vw;
  width: 5vw;
}
.services-inner .flex-between{
  flex-wrap: wrap-reverse;
}
.services-wrap{
  padding: 50px 0 0;
}
.services-wrap img{
  width: 100%;
}
.services-inner-link li{
  width: calc(95% / 2);
  height: 33vw;
}
.services-inner-link li a{
  font-size: 3.5vw;
  padding: 10px;
}
.services-inner-link li a::before{
  bottom: 10px;
  width: 15px;
}
.services-inner-link img{
  width: 13vw;
}
/*-------------
page flow
--------------*/
.flow-top .flex-between{
  flex-wrap: wrap;
}
.flow-top img{
  width: 100%;
  margin-top: 20px;
}
.flow-top .bg-red{
  padding: 20px 2px;
}
.flow-top .bg-red p{
  font-size: 3.4vw;
  margin-bottom: 20px;
}
.flow-step-inner{
  padding: 30px 10px;
}
.flow-step-inner h3{
  font-size: 5vw;
}
.flow-step-inner h3 span{
  font-size: 9vw;
}
.flow-step-inner dl{
  width: 100%;
  margin: 30px 0 0;
}
.flow-step-img{
  width: 100%;
  position: unset;
  transform: unset;
}
.flow-step-inner .contact-banner-button .mail{
  margin-top: 30px;
}
.flow-onayami{
  margin: 50px 0;
}
.flow-onayami h2{
  font-size: 4.5vw;
}
.flow-onayami ul{
  padding: 30px 10px;
}
.flow-onayami ul::before{
  border-right: 50px solid transparent;
  border-left: 50px solid transparent;
  border-top: 30px solid #5e707e;
  bottom: -29px;
}
.flow-onayami li{
  font-size: 4vw;
}
.flow-onayami li::before{
  width: 5vw;
  transform: unset;
  top: 1vw;
}
.flow-onayami p{
  font-size: 4vw;
  margin: 60px 2.5% 0;
}