/* 00. COMMON SETTING
-------------------------------------------------------------------- */

.p-main {
  overflow: hidden;
}

.p-aboutInner,
.p-ipInner,
.p-companyInnerWrap,
.p-contactInner {
  width: 90%;
  margin: 0 auto;
  max-width: 1000px;
}

/* 01. MOVIE AND KEY VISUAL
-------------------------------------------------------------------- */

.p-keyVisual {
  position: relative;
}

.p-keyVisual__movie {
  width: 100%;
  height: auto;
}

.p-keyVisual__spImgWrapper {
  position: relative;
  height: 100vh;
  overflow: hidden;
}

.p-keyVisual__image {
  position: absolute;
  top: -100%;
  right: -100%;
  left: -100%;
  bottom: -100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  max-width: inherit;
  margin: auto;
  z-index: -1;
  letter-spacing: 0.1em;
}

.p-keyMessage {
  height: 150px;
  margin: auto;
  position: absolute;
  left: 0;
  right: 0;
  top: 150px;
  bottom: 0;
  text-align: center;
}

.p-keyMessage__main,
.p-keyMessage__sub {
  color: #fff;
  display: block;
  text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 2px;
}

.p-keyMessage__sub {
  letter-spacing: 0.1em;
}

/* 02. ABOUT
-------------------------------------------------------------------- */

.p-about {
  text-align: center;
}

.p-about__slogan::after {
  content: "";
  display: block;
  width: 30px;
  height: 33px;
  background: url(../shared/img/leaf.svg) no-repeat center center/contain;
  margin: 30px auto;
}

/* 03.BUSINESS
-------------------------------------------------------------------- */

.p-business__titleEn {
  color: #fff;
}

.p-business__titleJa {
  color: #fff;
  font-size: 18px;
}

.p-businessDev__title.c-title--left {
  letter-spacing: -0.4em;
}

.p-businessDev__title.c-title--left::before {
  background: rgba(255, 255, 255, 0.3);
}

.p-businessDev__title.c-title--left::after {
  background: #fff;
}

.p-businessDev__plainText {
  color: #fff;
}

.p-businessDevInner {
  width: 90%;
  margin: 0 auto;
}

.p-businessDeeplearning__title.c-title--right {
  letter-spacing: -0.4em;
}

.p-businessDeeplearning__title.c-title--right::before {
  background: rgba(255, 255, 255, 0.3);
}

.p-businessDeeplearning__title.c-title--right::after {
  background: #fff;
}

.p-businessDeeplearning__plainText {
  color: #fff;
}

.p-businessDeeplearningInner {
  width: 90%;
  margin: 0 auto;
}

.p-businessIot__title.c-title--left {
  letter-spacing: -0.4em;
}

.p-businessIot__title.c-title--left::before {
  background: rgba(255, 255, 255, 0.3);
}

.p-businessIot__title.c-title--left::after {
  background: #fff;
}

.p-businessIot__plainText {
  color: #fff;
}

.p-businessIotInner {
  width: 90%;
  margin: 0 auto;
}

/* 04. IP
-------------------------------------------------------------------- */

.p-ip {
  position: relative;
}

.p-ip__treeContainer {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 520px;
  z-index: -1;
}

.p-ip__tree {
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  padding: 0 50px;
  position: absolute;
  bottom: 0;
  width: 230px;
  height: 520px;
  z-index: -1;
}

.p-ipInner {
  z-index: 100;
}

#treeCanvasR {
  right: 0;
}

/* 05. COMPANY
-------------------------------------------------------------------- */

.p-company {
  background: #f2f2f2;
}

.p-company__btn.c-btn {
  padding-bottom: 0;
}

.p-companyImg {
  text-align: center;
}

/* 06. NEWS
-------------------------------------------------------------------- */

.p-news__article {
  border-bottom: #ccc solid 1px;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.p-news__article:hover {
  background: #f2f2f2;
}

.p-news__article a {
  display: block;
}

.p-newsArticleInner {
  width: 90%;
  margin: 0 auto;
  max-width: 1000px;
  display: block;
  letter-spacing: -0.4em;
  padding: 1.1em 0 1em;
}

.p-newsArticle__time {
  letter-spacing: 0.15em;
}

.p-newsArticle__title {
  letter-spacing: 0.15em;
}

/* 07. SERVICE
-------------------------------------------------------------------- */

.p-serviceCms {
  background: url(../img/serviceImgCms.png) no-repeat center/cover;
}

.p-serviceRover {
  background: url(../img/serviceImgRover.png) no-repeat center/cover;
}

.p-servicePlamobi {
  background: url(../img/serviceImgPlamobi.png) no-repeat center/cover;
}

.p-service__name {
  color: #fff;
  display: block;
  height: 1em;
  width: auto;
  text-align: center;
  z-index: 1;
}

/* 08. CONTACT
-------------------------------------------------------------------- */

.p-contact__btn.c-btn {
  padding-top: 50px;
}

.p-bnr {
  padding-top: 100px;
}

.p-bnr__list {
  padding: 0 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  gap: 1.8em;
}

.p-bnr__list:nth-of-type(n + 2) {
  margin-top: 1.8em;
}

.p-bnr__transition {
  -webkit-transition: .3s;
  transition: .3s;
}

.p-bnr__transition:hover {
  opacity: 0.5;
}

@media screen and (min-width: 768px) {
  .p-keyVisual__spImgWrapper {
    display: none;
  }

  .p-keyMessage__main {
    font-size: 60px;
  }

  .p-keyMessage__sub {
    font-size: 24px;
  }

  .p-about {
    padding: 140px 0;
  }

  .p-about__slogan {
    font-size: 30px;
  }

  .p-businessDev {
    background: #14376a url(../img/businessImgDevelop.png) no-repeat right center;
  }

  .p-businessDev__title.c-title--left::before {
    width: 300px;
  }

  .p-businessDev__title.c-title--left::after {
    width: 200px;
  }

  .p-businessDev__btn {
    text-align: left;
  }

  .p-businessDevWrap {
    background: -webkit-gradient(linear, left top, right top, color-stop(5%, #0c213f), color-stop(50%, #0c213f), to(rgba(12, 33, 63, 0)));
    background: linear-gradient(90deg, #0c213f 5%, #0c213f 50%, rgba(12, 33, 63, 0) 100%);
  }

  .p-businessDevInner {
    padding: 80px 0;
  }

  .p-businessDeeplearning {
    background: #14376a url(../img/businessImgDeeplearning.jpg) no-repeat left center;
  }

  .p-businessDeeplearning__title.c-title--right::before {
    width: 300px;
  }

  .p-businessDeeplearning__title.c-title--right::after {
    width: 200px;
  }

  .p-businessDeeplearning__btn {
    text-align: right;
  }

  .p-businessDeeplearningWrap {
    background: -webkit-gradient(linear, right top, left top, from(#0c213f), color-stop(50%, #0c213f), to(rgba(12, 33, 63, 0)));
    background: linear-gradient(-90deg, #0c213f 0%, #0c213f 50%, rgba(12, 33, 63, 0) 100%);
  }

  .p-businessDeeplearningInner {
    padding: 80px 0;
  }

  .p-businessIot {
    background: #14376a url(../img/businessImgIot.png) no-repeat right center;
  }

  .p-businessIot__title.c-title--left::before {
    width: 300px;
  }

  .p-businessIot__title.c-title--left::after {
    width: 200px;
  }

  .p-businessIot__btn {
    text-align: left;
  }

  .p-businessIotWrap {
    background: -webkit-gradient(linear, left top, right top, from(#0c213f), color-stop(50%, #0c213f), to(rgba(12, 33, 63, 0)));
    background: linear-gradient(90deg, #0c213f 0%, #0c213f 50%, rgba(12, 33, 63, 0) 100%);
  }

  .p-businessIotInner {
    padding: 80px 0;
  }

  .p-ip {
    padding: 120px 0 140px;
  }

  .p-company {
    padding: 100px 0;
  }

  .p-companyInnerWrap {
    letter-spacing: -0.4em;
  }

  .c-companyItem {
    display: inline-block;
    letter-spacing: 0.1em;
    padding: 0 0.8em;
    width: 50%;
    vertical-align: middle;
  }

  .p-news {
    padding: 120px 0 140px;
  }

  .p-newsArticle__time {
    margin-right: 2em;
  }

  .p-newsArticle__title::after {
    margin-bottom: 70px;
  }

  .p-service {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }

  .p-serviceCms {
    position: relative;
    width: 100%;
  }

  .p-serviceRover {
    position: relative;
    width: 100%;
  }

  .p-servicePlamobi {
    position: relative;
    width: 100%;
  }

  .p-service__name {
    font-size: 48px;
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
  }

  .p-service__plainText {
    color: #fff;
    max-width: 500px;
    min-height: 200px;
    margin: 0 auto;
    padding-bottom: 100px;
    width: 100%;
  }

  .p-service__btn.c-btn--white--blank {
    position: absolute;
    bottom: 80px;
    margin: auto;
    left: 0;
    right: 0;
  }

  .p-serviceDetail {
    background: rgba(20, 55, 106, 0.7);
    height: 100%;
    padding: 80px 20px;
    position: relative;
    z-index: 2;
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
    opacity: 0;
  }

  .p-serviceDetail:hover {
    opacity: 1;
  }

  .p-contact {
    padding: 100px 0;
  }
}

@media screen and (max-width: 767px) {
  .p-aboutInner,
  .p-ipInner,
  .p-companyInnerWrap,
  .p-contactInner {
    width: 85%;
  }

  .c-plainText,
  .c-plainText--left,
  .c-plainText--right {
    display: none;
  }

  .p-keyVisual__movie {
    display: none;
  }

  .p-keyVisual__spImgWrapper {
    display: block;
  }

  .p-keyMessage__main {
    font-size: 8vw;
  }

  .p-keyMessage__sub {
    font-size: 16px;
  }

  .p-about {
    padding: 100px 0;
  }

  .p-about__slogan {
    font-size: 22px;
  }

  .p-business__titleEn {
    display: block;
    word-break: keep-all;
  }

  .p-business__titleJa {
    display: block;
  }

  .p-businessDev {
    background: #14376a url(../img/businessImgDevelop.png) no-repeat left 50% center/cover;
  }

  .p-businessDev__title.c-title--left::before {
    width: 100%;
  }

  .p-businessDev__title.c-title--left::after {
    width: 35%;
  }

  .p-businessDevWrap {
    background: -webkit-gradient(linear, right top, left top, color-stop(5%, rgba(12, 33, 63, 0)), color-stop(30%, rgba(12, 33, 63, 0.7)), color-stop(50%, #0c213f));
    background: linear-gradient(to left, rgba(12, 33, 63, 0) 5%, rgba(12, 33, 63, 0.7) 30%, #0c213f 50%);
  }

  .p-businessDevInner {
    padding: 60px 0;
  }

  .p-businessDeeplearning {
    background: #14376a url(../img/businessImgDeeplearning.jpg) no-repeat left center/cover;
  }

  .p-businessDeeplearning__title.c-title--right::before {
    width: 100%;
  }

  .p-businessDeeplearning__title.c-title--right::after {
    width: 35%;
  }

  .p-businessDeeplearningWrap {
    background: -webkit-gradient(linear, left top, right top, color-stop(5%, rgba(12, 33, 63, 0)), color-stop(30%, rgba(12, 33, 63, 0.7)), color-stop(50%, #0c213f));
    background: linear-gradient(to right, rgba(12, 33, 63, 0) 5%, rgba(12, 33, 63, 0.7) 30%, #0c213f 50%);
  }

  .p-businessDeeplearningInner {
    padding: 60px 0;
  }

  .p-businessIot {
    background: #14376a url(../img/businessImgIot.png) no-repeat left 50% center/cover;
  }

  .p-businessIot__title.c-title--left::before {
    width: 100%;
  }

  .p-businessIot__title.c-title--left::after {
    width: 35%;
  }

  .p-businessIotWrap {
    background: -webkit-gradient(linear, right top, left top, color-stop(5%, rgba(12, 33, 63, 0)), color-stop(30%, rgba(12, 33, 63, 0.7)), color-stop(50%, #0c213f));
    background: linear-gradient(to left, rgba(12, 33, 63, 0) 5%, rgba(12, 33, 63, 0.7) 30%, #0c213f 50%);
  }

  .p-businessIotInner {
    padding: 60px 0;
  }

  .p-ip {
    padding: 80px 0 100px;
  }

  .p-ip__title {
    word-break: keep-all;
  }

  .p-company {
    padding: 50px 0;
  }

  .p-companyImg {
    padding-bottom: 40px;
  }

  .p-news {
    padding: 80px 0;
  }

  .p-newsArticleInner {
    width: 85%;
  }

  .p-newsArticle__time {
    display: block;
    margin-right: 0;
  }

  .p-serviceCms {
    padding: 70px 10px 60px;
  }

  .p-serviceRover {
    padding: 70px 10px 60px;
  }

  .p-servicePlamobi {
    padding: 70px 10px 60px;
  }

  .p-service__name {
    font-size: 36px;
  }

  .p-service__btn.c-btn--white--blank {
    padding-top: 50px;
  }

  .p-contact {
    padding: 80px 0 100px;
  }

  .p-contact__plainText.c-plainText {
    display: block;
  }
}

@media screen and (max-width: 480px) {
  .p-ip__tree {
    padding: 0 19vw;
  }

  #treeCanvasR {
    display: none;
  }
}