@charset "utf-8";
/* CSS Document */
#message-PDF a.link.btn::after {
  content: none;
}
#message-PDF {
  padding-top: 8rem;
}
#message-PDF p {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
}
#message-PDF .border {
  border: 4px solid rgb(44 203 169 / 45%);
  padding: 2.2rem;
  border-radius: 20px;
}
.reportBoxPdfIcon {
  margin-left: 8px;
  vertical-align: -4px;
}
#message-PDF *[class*=" btnT"][class^="glyph"] > span, *[class^="btnT"][class*=" glyph"] > span, *[class*=" btnT"][class*=" glyph"] > span {
  padding-left: 1.2em !important;
}
.message-2509 {
  text-align: center;
  font-size: 3.2rem;
  margin-bottom: 0.5em;
}
#message-PDF .main-color {
  color: #0ca26c;
  font-size: calc(3.2*1.5rem);
  font-weight: 800;
}
/*改修分*/
@media screen and (max-width: 767px) {
  #message-PDF {
    padding-top: 6rem;
  }
  .message-2509 {
    font-size: 2.2rem;
    margin-bottom: 0.5em;
  }
  #message-PDF .main-color {
    color: #0ca26c;
    font-size: calc(2.2*1.5rem);
  }
}
@media screen and (max-width: 540px) {
  #message-PDF {
    padding-top: 4rem;
  }
  .message-2509 {
    font-size: 2.0rem;
    margin-bottom: 0.5em;
  }
  #message-PDF .main-color {
    color: #0ca26c;
    font-size: calc(2.4rem);
  }
  #message-PDF .border {
    border: 2px solid rgb(44 203 169 / 45%);
    padding: 1.0rem;
  }
  #message-PDF *[class*=" btnT"][class^="glyph"] > span, *[class^="btnT"][class*=" glyph"] > span, *[class*=" btnT"][class*=" glyph"] > span {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .reportBoxPdfIcon {
    margin-left: 0.5em;
  }
  #message-PDF a.link.btn {
    transform: scale(0.9);
  }
}
/*concept 下部*/
#mov .visual {
  width: calc(100% / 3 - 1.6rem);
  position: relative;
}
#mov .visual picture, #mov .visual picture::before {
  content: '';
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0.25;
  transition: transform 1s cubic-bezier(.1, .5, .2, 1), opacity .4s ease-out .1s, -webkit-transform 1s cubic-bezier(.1, .5, .2, 1);
}
#mov .visual picture.on::before {
  opacity: 0.6;
}
#mov .visual .title {
  line-height: 1;
  font-size: 1.6rem;
  margin-top: 0.8rem;
}
#subcopy #motion-graph {
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0.3;
}
#subcopy #smart-i-graph {
  width: 100%;
  height: auto;
  opacity: 0.3;
}
#subcopy .visual {
  position: relative;
  /*aspect-ratio: 16 / 9;*/
}
#subcopy .visual::before {
  content: '';
}
#subcopy .visual::after {
  content: '';
}
#subcopy .visual .txt {
  text-align: center;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  height: max-content;
  right: 0;
  width: max-content;
}
#subcopy .visual .txt h5 {
  font-size: 2.4rem;
  font-weight: 400;
}
#maincopy .innerBlock {
  padding-top: 1.5rem;
  padding-bottom: 12rem;
}
#maincopy h6 {
      font-size: 3.05rem;
    margin-bottom: 1.3rem;
  transform: translateX(12px);/*2510*/
}
#subcopy .logo.flex{
  margin-top: 12rem;
  margin-bottom: -5rem;
}
#subcopy img {
  width: 25rem;
  z-index: 2;
}
#about {
  background: rgb(44 204 170 / 10%);
}
#about .innerBlock {
  padding-top: 12rem;
  padding-bottom: 12rem;
}
#about .title {
  margin-bottom: 4.2rem;
}
#about .title dt {
  font-size: 3.2rem;
}
#about .title dd {
  font-size: 1.6rem;
}
#about .info {
  gap: 1.6rem;
  /*margin-bottom: 8.2rem;*/
  /*position: relative;*/
  color: #ffffff;
  align-items: stretch;
}
/*#about .info::after{
  content: '';
  background: #2ccba9;
  height: calc(tan(60deg) * 45px / 2);
  width: 35px;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  bottom: calc(tan(60deg) * -44px / 2);
  left: 0;
  right: 0;
  margin: auto;
}*/
#about .info .cont {
  /* width: calc(50% - 1.6rem);*/
  background: #2ccba9;
  padding: 3.2rem;
  color: #fff;
  flex: 1;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: stretch;
  gap: 16px;
}
#about .info .cont .thumb {
  aspect-ratio: 1 / 1; /* 正方形比率固定（CSS3） */
  flex: 0 0 160px;
}
#about .info .cont .thumb:first-of-type {
  background: #fff;
}
#about .info .cont .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
#about .info .cont:first-child .thumb img {
  object-fit: contain;
  height: 72%;
}
/*#about .info .cont a{
  color: #ffffff;
  text-decoration: underline;
}
#about .info .cont a span{
  vertical-align: top;
}
#about .info .cont a span{
  font-size: 1.6rem;
}*/
/*#about .info .cont .box-wrapper{
  width: 100%;
}*/
#about .info .cont dl {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* 上下に配置を分けたいとき */
}
#about dl .flex.box {
  justify-content: flex-start;
}
#about .info .cont dt {
  font-size: 2rem;
  margin-bottom: 1rem;
  line-height: 1;
}
#about .info .cont dd {
  font-size: 1.5rem;
  line-height: 1.4;
  text-align: justify;
  font-weight: 500;
}
#about .title.foot dt {
  font-size: 2rem;
}
#about .info .cont dd.arrow-right {
  margin-top: 1em;
  text-align: right;
  font-size: 1.8rem;
  line-height: 1.5;
  border-top: 1px solid #8bfde5;
  padding-top: 0.5em;
  font-weight: 600;
}
#about .info .cont dd.arrow-right::after {
  font-family: 'Material Symbols Outlined';
  content: '\f591';
  line-height: 1.2;
  font-size: 1.8rem;
  vertical-align: middle;
  font-weight: 300;
  margin-left: 4px;
}
.about-box-wrapper {
  width: 100%;
  height: auto;
  box-sizing: border-box;
}
#about a {
  transition: transform 1s cubic-bezier(.1, .5, .2, 1), opacity .4s ease-out .1s, -webkit-transform 1s cubic-bezier(.1, .5, .2, 1);
}
#about a:visited {
  color: #fff;
}
#about a:hover {
  opacity: 0.7;
}
#about .info .cont .material-symbols-outlined {
  font-size: 1.6rem;
  vertical-align: middle;
  transform: translateY(-2px);
  margin-left: 2px;
}
.content > .footerKvBlock {
  padding: 3.2rem;
}
.content > .footerKvBlock .visual {
  position: relative;
}
.content > .footerKvBlock .visual::before {
  content: '';
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0.4;
  z-index: 0;
  border-radius: 1.8rem;
}
.content > .footerKvBlock .visual picture {
  width: 100%;
  overflow: hidden;
}
.content > .footerKvBlock .txt {
  position: absolute;
  height: max-content;
  bottom: 5%;
}
.content > .footerKvBlock .txt p.mainCopy {
  font-size: 3rem;
  padding-left: 3rem;
  margin-bottom: 3rem;
  line-height: 1;
}
.content > .footerKvBlock .txt p {
  color: #ffffff;
}
.content > .footerKvBlock .txt p.ledeCopy {
  font-size: 1.6rem;
  line-height: 2;
  margin-bottom: 4.8rem;
}
.content > .footerKvBlock {
  margin-bottom: 4rem;
  overflow: hidden;
}
/*@media screen and (max-width: 1080px) {
  #about .info .cont .thumb{
    flex: 1.5;
  }
  
}*/
/*2510*/
#maincopy a.btn{
  margin-top: 0;
  display: block;
  width: 100%;
  max-width: 500px;
  text-align: center;
}
#maincopy a.link.btn::after{
  margin-left: 0.25em;
}


@media screen and (max-width: 767px) {
  #maincopy h6 {
    text-align: center;
    font-size: 3.2rem;
  }
  #about a:hover {
    opacity: inherit;
  }
  #subcopy .logo.flex {
    margin-top: 11rem;
    margin-bottom: -3rem;
    
}
  #subcopy img{
    max-width: clamp(150px, 32.6vw, 250px);
    
  }

  #about .info {
    flex-direction: column;
  }
  #about .info .cont .thumb {
    flex: 1;
    min-width: 50%;
  }
  .content > .footerKvBlock .txt p.mainCopy {
    line-height: 1.6;
  }
  .content > .footerKvBlock {
    padding: 2rem;
  }
  .content > .footerKvBlock .txt {
    bottom: inherit;
  }
}
@media screen and (max-width: 560px) {
  #about .info .cont {
    flex-direction: column;
  }
}
@media screen and (max-width: 540px) {
  #maincopy h6 {
   font-size: 5.1vw;
    /*padding-left: 7.25vw;*/
    transform: translateX(6px);
  }
  #maincopy img {
    width: 40vw;
  }
  #mov {
    flex-flow: column;
  }
  #mov .visual {
    width: 100%;
  }
  #mov .visual:first-of-type, #mov .visual:nth-of-type(2) {
    margin-bottom: 2rem;
  }
  #subcopy .visual .txt h5 {
    font-size: 3.8vw;
  }
  #about .title dt {
    font-size: 5.85vw;
  }
  #about .info {
    flex-flow: column;
    /*margin-bottom: 6.2rem;*/
  }
  #about .info .cont {
    width: 100%;
  }
  #about .info .cont:first-of-type {
    margin-bottom: 2rem;
  }
  #about .info .cont dt {
    font-size: 1.8rem;
  }
  #about .info .cont dd {
    font-size: 1.4rem;
  }
  #info-slogo {
    width: 60vw;
  }
  .content > .footerKvBlock .txt p.mainCopy {
    font-size: 7vw;
    padding-left: 7vw;
    line-height: 1.6;
  }
}
@media screen and (max-width: 430px) {
  #about .info .cont {
    flex-flow: column;
  }
  #about .info .cont .thumb {
    width: 100%;
    /*  aspect-ratio:16 / 9;*/
  }
  #about .info .cont dl {
    width: 100%;
    margin-top: 1.6rem;
  }
  #about .title.foot dt {
    font-size: 1.6rem;
    margin-bottom: 1.6rem;
  }
  #about .title dd {
    text-align: justify;
    padding: 0 2rem;
  }
  #about .title dd br {
    display: none;
  }
  #banner .flex {
    flex-flow: column;
  }
  #banner .banner dd {
    width: 100%;
    margin-bottom: 4rem;
  }
  #banner .banner dd:last-child {
    margin-bottom: 0;
  }
      #subcopy .logo.flex {
        margin-top: 7rem;
        margin-bottom: -4.5rem;
    }
  #maincopy .innerBlock{
    padding-bottom: 7rem;
  }
  #about .innerBlock{
    padding-top: 7rem;
     padding-bottom: 7rem;
  }
  #about .title{
    margin-bottom: 2rem;
  }
  
}
@media screen and (max-width: 375px) {
  #maincopy a.btn{
    font-size: 1.2rem;
  }
    #subcopy .logo.flex{
    margin-bottom: -3rem;
      margin-top: 7rem;
  }
  @media screen and (max-width: 540px) {
  #maincopy h6 {
    font-size: 5vw;
    }
    
  }
  
}