
/*-----------------
基本設定
-----------------*/
:root{
  --header-h: 54px;
}
body{
  font-size: 4vw;
}
.wrapper{
  width: 100%;
  padding: 0 2.5%;
}
.pc{
  display: none;
}
.tab{
  display: none;
}
.mobi{
  display: block;
}
.pc.tab{
  display: none;
}
h2 span[lang="ja"]{
  font-size: 5vw;
}
h2 span[lang="en"]{
  font-size: 4vw;
}
/*-----------------
header
-----------------*/
.header-sp ul li a{
  font-size: 4vw;
  font-weight: 700;
}

/*-----------------
top
-----------------*/
.top{
  margin-top: 54px;
}
.top-ttl{
  width: 100%;
  left: 0;
}
.top-ttl p{
  font-size: 5vw;
  margin: 0 2.5%;
}
.top-ttl p[lang="ja"]{
  padding: 10px;
}
.top-ttl p[lang="ja"] span:last-of-type{
  font-size: .9em;
}
.top-ttl p[lang="en"]{
  font-size: .4em;
  margin-top: 10px;
}
.top img{
  width: 100%;
}
.top-news{
  width: 80%;
  padding: 5px 10px;
}
.top-news-type{
  font-size: 3vw;
}
.top-news-ttl{
  font-size: 3.5vw;
  margin: 0;
}
.top-news-inner:not(:last-of-type){
  margin-bottom: 5px;
  padding-bottom: 5px;
}
/*-----------------
overview
-----------------*/
.overview{
  padding: 30px 0;
}
.overview-lead{
  margin: 15px 0;
}
.overview-lead span[lang="ja"]{
  font-size: 5vw;
}
.overview img{
  width: 100%;
}
/*-----------------
value
-----------------*/
.value{
  padding: 50px 2.5%;
}
.value-con{
  display: block;
  height: auto;
  margin: 30px 0;
}
.value-con-txt{
  font-size: 4vw;
  margin-bottom: 10px;
  width: 100%;
}
.value-con-txt h3 span[lang="ja"]{
  font-size: 5vw;
  margin-bottom: 10px;
}
.value-con-txt h3 span[lang="en"]{
  font-size: 4vw;
}
.value-con .num{
  font-size: 9vw;
  padding-left: 9vw;
}
.value-con .num::before{
  width: 7vw;
}
.value-img{
  position: unset;
  transform: translate(0);
  width: 100%;
  height: 220px;
  overflow: hidden;
}
.value-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom center;
}
.value > .value-con:first-of-type .value-img img{
  object-position: top center;
} 
.value-con-txt-inner{
  width: 100%;
}
.value-con-txt-inner > p[lang="en"]{
  font-size: 3.5vw;
}
.value-con-txt-inner > p[lang="ja"]{
  font-size: 3.5vw;
}
/*-----------------
service
-----------------*/
.service{
  padding: 40px 0;
}
.service-con{
  padding: 20px 2vw;
  margin-bottom: 50px;
  box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.3);
}
.service-con h3{
  top: -30px;
}
.service-con:last-of-type h3{
  top: -20px;
}
.service-con h3 span[lang="en"]{
  font-size: 9vw;
}
.service-con:last-of-type h3 span[lang="en"]{
  font-size: 6vw;
}
.service-con h3 span[lang="ja"]{
  font-size: 5vw;
}
.service-con img{
  margin-left: 10px;
  width: 35%;
}
.service-con p[lang="ja"]{
  font-size: 4vw;
}
.service-con-txt{
  margin: 50px 0 20px;
}
/*-----------------
company
-----------------*/
.company{
  padding: 30px 0;
}
.company h2{
  margin-bottom: 20px;
}
.company table th,
.company table td{
  padding: 15px 10px;
  font-size: 4vw;
}
.company th{
  width: 25%;
}
.company tr:first-of-type td span{
  font-size: .8em;
}
/*-----------------
message
-----------------*/
.message{
  padding: 50px 0;
}
.message-img{
  margin-top: 30px;
}
.message-img img{
  width: 100%;
}
.message-txt{
  margin-top: 30px;
}
.message-txt p{
  font-size: 4vw;
}
.message .ceo-name img{
  width: 30%;
}
/*-----------------
members
-----------------*/
.members{
  padding: 50px 0;
}
.members-wrap{
  margin-bottom: 30px;
}
.members-container{
  height: auto;
  aspect-ratio: unset;
}
.members-name{
  margin: 10px 0 0;
}
.members-name span[lang="en"]{
  font-size: 6vw;
}
.members-name span[lang="ja"]{
  font-size: 5vw;
}
.members-post span{
  font-size: 3vw;
  margin: 0;
}
.members-post span[lang="ja"]{
  font-size: 3.5vw;
}
.members-post span[lang="en"]{
  font-size: 3vw;
}
.members-item{
  width: 100%;
}
.members-img{
  position: static;
  width: 100%;
  margin-top: 0;
  display: block;
}
.members-txt{
  margin-top: 10px;
  font-size: 4vw;
}
.members-all img{
  width: calc(100% - 4vw);
}
.members-all img{
  bottom: 10vw;
}
.members-wrap{
  position: static;
  display: block;
}
.members-wrap:nth-of-type(even) .members-img{
  left: auto;
}
.members-wrap:nth-of-type(odd) .members-img{
  right: auto;
}
.members-full{
  width: calc(100% - 4vw);
}
/*-----------------
footer
-----------------*/
footer .wrapper {
  flex-wrap: wrap;
  padding: 30px 2.5%;
}
footer .wrapper div{
  width: 100%;
}
.footer-copy{
  font-size: 3vw;
}
/*-----------------
page
-----------------*/
.page{
  margin: 54px auto 30px;
}
.page-ttl{
  background-size: cover;
  aspect-ratio: 16/6;
}
.page h1{
  font-size: 6vw;
}
.page h1 span[lang="en"]{
  font-size: 5vw;
}
.page-privacy-policy h2{
  font-size: 5vw;
  padding: 5px 10px 5px 40px;
}
.title2{
  font-size: 6vw;
}
.title3{
  font-size: 5.5vw;
}
.title4{
  font-size: 5vw;
}
.title5{
  font-size: 4vw;
}
/*-----------------
contact
-----------------*/
.contact-form{
  padding: 20px 0;
}
.contact-form table th,
.contact-form table td{
  padding: 5px;
  display: block;
  width: 100%;
}
.contact-form table th{
  font-size: 4vw;
}
.contact-form table td{
  padding-bottom: 10px;
}
.contact-form table th .required,
.contact-form table th .optional{
  top: 10px;
  left: 40%;
  right: auto;
}
.contact-form input[type="text"],
.contact-form input[type="email"]{
  height: 45px;
}
.form-check{
  margin-top: 30px;
}
