@charset "utf-8";

/* check */
/** { outline: 1px solid magenta; }*/

/*----------------------------------------
common parts
----------------------------------------*/
body { overflow:hidden; }
h2 { text-align:center; font-size:4rem; line-height:1; }
h2 p { text-align:center; letter-spacing:0.14em; margin-top:1rem; }
h3 { font-size:3rem; text-align:center; letter-spacing:0.34em; margin:5rem 0 4rem; font-weight: bold; }
h3 p { text-align:center; font-size:2rem; letter-spacing:0.14em; font-weight:normal; }
.lead { font-size:2.6rem; text-align:center; font-weight: bold; margin:3rem 0 5rem; letter-spacing:0.34em; line-height:1.75; }
.catch_text { font-size:2rem; line-height:2.1; letter-spacing:0.12em; max-width:75rem; margin:0 auto; }
.bold { font-weight: bold; }

.pc {  }.mid,.sp { display:none; }
@media screen and (max-width:820px){
  .pc-only { display:none; }
  .mid { display:block; }
}
@media screen and (max-width:600px){
  .pc { display:none; }
  .sp { display:block; }
}

#mv,#vision,#ability,#recruit,#mission,#company { overflow:hidden; }

/*----------------------------------------
mv
----------------------------------------*/
#mv {}
#mv .wrap { max-width:100vw; max-height:100vh; position:relative; }
#mv .wrap .back { height:100vh; }
#mv .wrap .back img { height:100%; width:100%; object-fit:cover; object-position:50% 70%; }
#mv .wrap .mark { position:absolute; top:35%; left:50%; transform:translate(-50%,-50%); max-width:50rem; }

/*----------------------------------------
service
----------------------------------------*/
#service {}
#service .logoLinkarea { position:relative; }
#service .logoLinkarea .main-img { max-width:13.28125vw; position:relative; margin:5rem auto 0; }
#service .logoLinkarea .main-img > img {  }
#service .logoLinkarea .main-img .Linkbtn { position:absolute;  }
#service .logoLinkarea .main-img .Linkbtn a {  }
#service .logoLinkarea .main-img .Linkbtn a:hover { opacity:1; }
#service .logoLinkarea .main-img .Linkbtn a:hover img { transform:scale(1.03); opacity:1; }
#service .logoLinkarea .main-img .Linkbtn img { max-width:22.395vw; transition:all ease-out .4s; }
#service .logoLinkarea .main-img .btn01 { top:1.5%; left:55%; }
#service .logoLinkarea .main-img .btn02 { top:41.5%; right:105%; }
#service .logoLinkarea .main-img .btn03 { top:61.5%; left:105%; }
@media screen and (max-width:1200px){
  #service .logoLinkarea .main-img { max-width:21.25vw; }
  #service .logoLinkarea .main-img .Linkbtn img { max-width:35.833vw; }
}
@media screen and (max-width:820px){
  #service .logoLinkarea .main-img { margin-top:18rem; }
  #service .logoLinkarea .main-img { max-width:35vw; }
  #service .logoLinkarea .main-img .btn01 { top:auto; bottom:81%; }
}
@media screen and (max-width:600px){
  #service .logoLinkarea .main-img { max-width:40vw; }
  #service .logoLinkarea .main-img .Linkbtn img { max-width:23vw; }
}

/*----------------------------------------
philosophy
----------------------------------------*/
#philosophy .slide-wrap { position:relative; margin-top:14rem; }
#philosophy .slide-wrap .abs { position:absolute; bottom:-1px; left:50%; transform:translateX(-50%); z-index:10; max-width:55rem; }

#philosophy .content { margin-top:6rem; }
#philosophy .content .tri {
  color:#fff;
  font-size:3rem;  
  text-align:center;
  display:block;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background:#00458A;
  width:22rem;
  height:19rem;
  margin:6rem auto 0;
}
#philosophy .content .tri p { margin-top: 1rem; }
#philosophy .content ul { display:flex; justify-content:space-between; align-items:center; margin-top:15rem; }
#philosophy .content ul li { position:relative; }
#philosophy .content ul li:first-child { width:50%; order:2; }
#philosophy .content ul li:last-child { width:45%; }
#philosophy .content ul li .ttl { font-size:2.6rem; margin-bottom:4rem; font-weight: bold; }
#philosophy .content ul li .tx { font-size:2.2rem; }
#philosophy .content ul li:first-child p {
  color:#fff;
  font-size:3rem;  
  text-align:center;
  display:block;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background:#3D2F81;
  max-width:22rem;
  max-height:19rem;
  width:100%;
  height:100%;
  position:absolute;
  top:-8rem;
  left: -11rem;
}
#philosophy .content ul li:first-child p span { display:inline-block; margin-top:1rem; }

@media screen and (max-width:820px){
  #philosophy .content .tri,#philosophy .content ul li:first-child p { width:25vw; height:20vw; }
  #philosophy .content ul { display:block; }
  #philosophy .content ul li:first-child,#philosophy .content ul li:last-child { width:100%; }
  #philosophy .content ul li:last-child { margin-top:2rem; }
  #philosophy .content ul li:first-child p { left:50%; transform:translateX(-50%); }
}
@media screen and (max-width:600px){
  #philosophy .content .tri,#philosophy .content ul li:first-child p { width:35vw; height:24vw; }
  #philosophy .content ul li .ttl { font-size:2.2rem; margin-bottom:2rem; }
  #philosophy .content ul li .tx { font-size:1.8rem; }
  #philosophy .content ul li:first-child p { top:-12vw; }
  #philosophy .content .tri,#philosophy .content ul li:first-child p span { font-size:2.6rem; }
}

/*----------------------------------------
business
----------------------------------------*/
#business {}
#business .bsn-top {  }
#business .bsn-top h2 { font-size:5.4rem; font-weight:normal; margin:3rem 0 6rem; letter-spacing:0.14em; }
#business .bsn-top .lead { font-size:2.6rem; text-align:center; letter-spacing:0.34em; }
#business .bsn-top .tx { font-size:2rem; max-width:75rem; margin:6rem auto 0; line-height:2.1; }
#business .bsn-wrap { margin-top:10rem; }
#business .bsn-wrap .bsn-block { padding:10rem 0;  }
#business .bsn-wrap .bsn-block .ttl { max-width:35rem; margin:0 auto; letter-spacing:0.26em; }
#business .bsn-wrap .bsn-block .bsn-lead { font-size:2.6rem; text-align:center; margin-bottom:11rem; letter-spacing:0.34em; }
#business .bsn-wrap .bsn-block .imgbox { display:flex; justify-content:space-between; align-items:flex-start; max-width:156rem; }
#business .bsn-wrap .bsn-block .imgbox li.img { width:61.538%; position:relative; }
#business .bsn-wrap .bsn-block .imgbox li.text { width:35.256%; margin-top:8rem; }
#business .bsn-wrap .bsn-block .imgbox li.text p {  font-size:2rem; }
#business .bsn-wrap .bsn-block .imgbox li.text .p1 { letter-spacing:0.12em; line-height:2.1; }
#business .bsn-wrap .bsn-block .imgbox li.text .p2 { text-align:center; margin:9rem 0 6rem; letter-spacing:0.3em; padding:2rem 0; border-bottom:solid 1px #fff; border-top:solid 1px #fff; }
#business .bsn-wrap .bsn-block .imgbox .num{ position:absolute; max-width:10rem; top:-6rem; }
#business .bsn-wrap .bsn-block .imgbox .abstext {  }
#business .bsn-wrap .bsn-block .imgbox .abstext ul { position:absolute; top:9rem; left:8rem; max-width:44rem; width:100%; }
#business .bsn-wrap .bsn-block .imgbox .abstext ul li { background:rgb(255,255,255,.6); text-align:center; padding:1rem 0; font-size:2.2rem; letter-spacing:0.22em; line-height:1; }
#business .bsn-wrap .bsn-block .imgbox .abstext ul li:nth-of-type(n+2) { margin-top:1.5rem; }
#business .bsn-wrap .bsn-block .imgbox .abstext ul.border { left:auto; right:8rem; }
#business .bsn-wrap .bsn-block .imgbox .abstext ul.border li { background:none; border:solid 1px #727171; }
#business .bsn-wrap .bsn-block .btnarea { margin-top:8rem; }
#business .bsn-wrap .bsn-block .btnarea ul { display:flex; justify-content:space-between; left:auto; right:8rem; }
#business .bsn-wrap .bsn-block .btnarea ul li { width:48%; }
#business .bsn-wrap .bsn-block .btnarea ul li p { margin-top:3rem; font-size:2rem; text-align:center; }
#business .bsn-wrap .bsn-block .btnarea .btn { max-width:100%; }
#business .bsn-wrap .bsn-block .btnarea .btn a {}
#business .bsn-wrap .bsn-block .btnarea > p { margin-top:3rem; font-size:2rem; text-align:center; letter-spacing:0.3em; }
#business .bsn-wrap .bsn-block:nth-of-type(odd) { background:#E6E6DF; }
#business .bsn-wrap .bsn-block:nth-of-type(odd) .num { right:-3.5rem; }
#business .bsn-wrap .bsn-block:nth-of-type(even) .imgbox { margin-left:auto; }
#business .bsn-wrap .bsn-block:nth-of-type(even) li.img { order:2; }
#business .bsn-wrap .bsn-block:nth-of-type(even) li.text .p2 { border-color:#E6E6DF; }
#business .bsn-wrap .bsn-block:nth-of-type(even) .num { left:-3.5rem; }

@media screen and (max-width:820px){
  #business .bsn-top h2 { margin-top:8rem; }
  #business .bsn-wrap .bsn-block .imgbox .abstext ul { max-width:80%; top:5rem; left:50%; transform:translate(-50%); }
  #business .bsn-wrap .bsn-block .imgbox .abstext ul.border { left:50%; right:auto; }
  #business .bsn-wrap .bsn-block .btnarea { margin-top:5rem; }
}
@media screen and (max-width:600px){
  #business .bsn-top h2 { margin:0 auto 3rem; font-size:4rem; }
  #business .bsn-wrap .bsn-block .imgbox .abstext ul { max-width:100%; margin-top:1rem; position:initial; transform:none; }
  #business .bsn-wrap .bsn-block .imgbox .abstext ul li { font-size:2rem; background:none; border:solid 1px #727171; }
  #business .bsn-wrap .bsn-block .imgbox .abstext ul li:nth-of-type(n+2) { margin-top:5px; }
}

/*----------------------------------------
ability
----------------------------------------*/
#ability { margin:11rem 0; }
#ability .imgback-wrap { position:relative; margin-top:7rem; }
#ability .imgback-wrap .textarea { position:absolute; left:0; top:10rem; width:100%; color:#fff; }
#ability .imgback-wrap .textarea .ttl { text-align:center; font-size:2.2rem; letter-spacing:0.34em; line-height:1.75; }
#ability .imgback-wrap .textarea .bb { border:solid 1px #fff; max-width:26.5rem; margin:5rem auto 3rem; font-size:2rem; letter-spacing:0.34em; text-align:center; padding:0.5rem 0; }
#ability .imgback-wrap .textarea .num { max-width:40rem; margin:0 auto; }
#ability .imgback-wrap .textarea .num img { border-bottom:solid 1px #fff; }
#ability .imgback-wrap .textarea .num p { font-size:1.2rem; letter-spacing:0.12em; margin-top:1rem; }
#ability .imgback-wrap .btn { position:absolute; left:50%; bottom:9%; transform:translateX(-50%); max-width:35rem; width:100%; }
#ability .imgback-wrap .btn a { display:block; }

/*----------------------------------------
recruit
----------------------------------------*/
#recruit { margin-top:12rem; }
#recruit .imgback-wrap { position:relative; }
#recruit .imgback-wrap .textarea { position:absolute; left:50%; top:5%; transform:translateX(-50%); width:100%; max-width:47rem; }
#recruit .imgback-wrap .textarea .lead { margin-bottom:5rem; line-height:1; white-space:nowrap; }
#recruit .imgback-wrap .btn { position:absolute; left:50%; bottom:10%; transform:translateX(-50%); max-width:45rem; width:100%; }
#recruit .imgback-wrap .btn a { display:block; }
#recruit .imgback-wrap .btn p { font-size:1.8rem; letter-spacing:0.34em; margin-top:3rem; text-align:center; }
#recruit .imgback-wrap > img { min-height:80rem; }

/*----------------------------------------
mission
----------------------------------------*/
#mission { margin-top: 12rem; }

/*----------------------------------------
company
----------------------------------------*/
#company { margin-top:7.5rem; margin-bottom:9rem; }
#company .wrap { max-width:100rem; margin:0 auto; }
#company .wrap ul.bl01 { display:flex; margin-top:8rem; }
#company .wrap ul.bl01 .mark { width:19%; }
#company .wrap ul.bl01 .text { width:81%; margin-top:4rem; }
#company .wrap .ttl { text-align:right; font-size:2.8rem; letter-spacing:0.08em; position:relative; }
#company .wrap .ttl:after {
  content:"";
  display:block;
  position:absolute;
  width:100%;
  height:100%;
  top:0;
  left:0;
  background:#fff;
  transition:all ease-out 2s;
}
#company .wrap .ttl.active:after { transform:translateX(150%); }

#company .wrap .txarea { margin-top:4rem; margin-left:auto; width:88.89%; font-size:1.8rem; letter-spacing:0.16em; line-height:1.97; }
#company .wrap .bl02 { width:89%; margin-left:auto; margin-top:1rem; }
#company .wrap .bl02 .txarea { margin:4rem 0 0 auto; width:80.899%; }
#company .wrap .about { margin-top:11.5rem; }
#company .wrap .about .tx { font-size:1.8rem; color:#898989; letter-spacing:0.12em; padding-left:1em; margin-bottom:1rem; }
#company .wrap .about table { width:100%; margin-bottom:9rem; }
#company .wrap .about table tr { border-top:solid 1px #898989; }
#company .wrap .about table th,#company .wrap .about table td { padding:2rem 0; font-size:1.8rem; letter-spacing:0.12em; }
#company .wrap .about table td span{ padding:2rem 0; font-size:1.3rem; letter-spacing:0.12em; }
#company .wrap .about table th { width:24%; padding-left:1em; }
#company .map { aspect-ratio: 12 / 5; }
#company .map iframe { width:100%; height:100%; }

/*----------------------------------------
responsive
----------------------------------------*/
@media screen and (max-width:1500px){
  #business .bsn-wrap .bsn-block .imgbox { display:block; }
  #business .bsn-wrap .bsn-block .imgbox li.img,#business .bsn-wrap .bsn-block .imgbox li.text { max-width:85rem; width:100%; margin:0 auto; }
  #business .bsn-wrap .bsn-block .imgbox li.text { margin-top:3rem; }
  #business .bsn-wrap .bsn-block .imgbox li.text .p2 { margin:6rem auto 4rem; }
  
  #recruit .imgback-wrap .catch_text { text-shadow:0px 0px 5px #fff; }
  #recruit .imgback-wrap .btn { bottom:10%; }
  #recruit .imgback-wrap > img { object-fit:cover; }
}
@media screen and (max-width:1200px){
  #vision .block-wrap ul li.text .wrap { padding:5% 5% 5% 15%; }
  #vision .block-wrap ul li.text .cap { margin:1rem 5% 0 15%; }
  #vision .block-wrap ul:nth-of-type(even) li.text .wrap { padding:5% 15% 5% 5%; }
  #vision .block-wrap ul:nth-of-type(even) li.text .cap { margin:1rem 15% 0 5%; }
  
  #ability .imgback-wrap { margin:7rem calc(50% - 50vw) 0; }
  #ability .imgback-wrap .textarea { top:9%; }
  #ability .imgback-wrap > img { min-height:68rem; object-fit:cover; }
}
@media screen and (max-width:1024px){
  #business .bsn-wrap .bsn-block .imgbox li.img, #business .bsn-wrap .bsn-block .imgbox li.text { max-width:100%; width:85%; }
}
@media screen and (max-width:820px){
  #vision .block-wrap ul { display:block; }
  #vision .block-wrap ul li.img { width:90%; }
  #vision .block-wrap ul li.text { width:90%; margin:-5rem 0 0 auto; }
  #vision .block-wrap ul li.text .wrap { padding:7rem 4rem 3rem; }
  #vision .block-wrap ul li.text .cap { margin:1rem 4rem 0; }
  #vision .block-wrap ul:nth-of-type(even) li.img { margin-left:auto; }
  #vision .block-wrap ul:nth-of-type(even) li.text { margin:-5rem auto 0 0; }
  #vision .block-wrap ul:nth-of-type(even) li.text .wrap { padding:7rem 4rem 3rem; }
}
@media screen and (max-width:768px){}
@media screen and (max-width:680px){
}
@media screen and (max-width:600px){
  h2 { font-size:2.6rem; margin-bottom:4rem; }
  h2 img { width:6rem; }
  h3 { font-size:2.6rem; margin:3rem 0 4rem; }
  h3 p { font-size:1.8rem; }
  .lead { font-size:2.2rem; margin-bottom:5rem; }
  .catch_text { font-size:1.8rem; }
  
  #vision { margin-bottom:0; }
  #vision .block-wrap { margin:5rem 0; }
  #vision .block-wrap ul li.img,#vision .block-wrap ul li.text { width:100%; }
  #vision .block-wrap ul li.text,#vision .block-wrap ul:nth-of-type(even) li.text { margin-top:0; }
  #vision .block-wrap ul li.text .wrap p { font-size:1.6rem; }
  #vision .block-wrap ul li.text .wrap p > span.line > span > span { font-size:2.6rem; }
  #vision .block-wrap ul li.text .cap { font-size:1.2rem; margin-left:2rem; }
  #vision .block-wrap ul li.text .wrap,#vision .block-wrap ul:nth-of-type(even) li.text .wrap { padding:2rem; }
  #vision .block-wrap ul li.text .wrap p > span.line > span > span { padding-left:0.5em; }
  #vision .block-wrap ul li.text .wrap p > span.line > span > span.pl2 { padding-left:0.5em; }
  #vision .slide-wrap { margin-top:10rem; }
  
  #business { margin-top:10rem; overflow:hidden; }
  #business .bsn-wrap .bsn-block { padding:6rem 0; }
  #business .bsn-wrap .bsn-block .bsn-lead { font-size:2rem; margin-bottom:6rem; }
  #business .bsn-wrap .bsn-block .imgbox .num { max-width:8rem; top:-4.5rem; }
  #business .bsn-wrap .bsn-block:nth-of-type(odd) .num { right:-2rem; }
  #business .bsn-wrap .bsn-block:nth-of-type(even) .num { left:-2rem; }
  #business .bsn-wrap .bsn-block .imgbox li.text p { font-size:1.6rem; }
  #business .bsn-wrap .bsn-block .imgbox li.text .p2 { margin:4rem auto; }
  #business .bsn-wrap .bsn-block .imgbox li.text .btn { margin-bottom:0; }
  
  #ability { margin:10rem 0 0 0; }
  #ability .imgback-wrap .textarea .num { max-width:35rem; }
  
  #recruit { margin-top:10rem; }
  #recruit .imgback-wrap .textarea { padding:0 2rem; }
  
  #mission { margin-top:10rem; }
  
  #company .wrap ul.bl01 { margin-top:0; }
  #company .wrap .txarea { font-size:1.6rem; }
  #company .wrap .about table { margin-bottom:5rem; }
  #company .wrap .about table th, #company .wrap .about table td { font-size:1.6rem; }
  #company .wrap .about table th { width:35%; }
  #company .map { aspect-ratio:6 / 4; }
  
}
@media screen and (max-width:375px){}
@media screen and (max-width:320px){}