* {
  box-sizing: border-box;
}

@font-face {
  font-family: "Noto Sans JP";
  font-weight: 400;
  src: url("../fonts/NotoSansJP-Regular.ttf");
}

@font-face {
  font-family: "Noto Sans JP";
  font-weight: 500;
  src: url("../fonts/NotoSansJP-Medium.ttf");
}

@font-face {
  font-family: "Noto Sans JP";
  font-weight: 700;
  src: url("../fonts/NotoSansJP-Bold.ttf");
}

@font-face {
  font-family: "Jost";
  font-weight: 400;
  src: url("../fonts/Jost-Regular.ttf");
}

@font-face {
  font-family: "Jost";
  font-weight: 500;
  src: url("../fonts/Jost-Medium.ttf");
}

body {
  overflow-y: hidden;
  overflow-x: hidden;
  /*add*/
  color: #ffffff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  animation: scrl 2s ease-in-out 7.4s forwards;
}

@keyframes scrl {
  0% {
    overflow-y: hidden;
  }

  100% {
    overflow-y: visible;
  }
}

a {
  display: inline-block;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

a:hover {
  transition: 0.8s;
  -webkit-transition: 0.8s;
}

img {
  vertical-align: bottom;
  max-width: 100%;
}

.pc {
  display: block;
}

.sp {
  display: none;
}

.wrap {
  margin: 0 auto;
  max-width: 2500px;
}

.l-inner {
  width: 95%;
  margin: 0 auto;
  max-width: 1000px;
}

/* Typing Animation */
.js-typing {
  display: inline-flex;
  overflow: hidden;
  transform: translate(-100%, 0);
  transition: transform ease 0.7s;
}

.js-typing span {
  transform: translate(100%, 0);
  transition: transform ease 0.7s;
}

.js-animation.active .js-typing,
.js-animation.active .js-typing span {
  animation-timing-function: ease;
  animation-fill-mode: forwards;
  animation-duration: 0.7s;
}

.js-animation.active .js-typing {
  animation-name: typing1;
}

@keyframes typing1 {
  0% {
    transform: translate(-100%, 0);
  }

  100% {
    transform: translate(0, 0);
  }
}

.js-animation.active .js-typing span {
  animation-name: typing2;
}

@keyframes typing2 {
  0% {
    transform: translate(100%, 0);
  }

  100% {
    transform: translate(0, 0);
  }
}

/* Fade Animation */
.js-fade-in {
  opacity: 0;
}

.js-animation.active .js-fade-in {
  animation-timing-function: linear;
  animation-fill-mode: forwards;
  animation-name: fade-in;
  animation-duration: 5s;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }

  25% {
    opacity: 1;
  }

  50% {
    opacity: 1;
  }

  100% {
    opacity: 1;
  }
}

/* ------------------------------------------ */
.delay {
  animation-delay: 0.6s;
}

/* Common Title */
.cmn-ttl span {
  display: flex;
  align-items: center;
  width: 376px;
  text-align: right;
}

.cmn-ttl .line {
  display: inline-block;
  width: 100%;
  height: 1px;
}

.cmn-ttl .en-txt,
.cmn-ttl .jp-txt {
  padding-left: 10px;
  white-space: nowrap;
  letter-spacing: 0.2px;
}

.cmn-ttl .en-txt {
  font-family: "Jost", sans-serif;
  /*  font-size: 40px;*/
  font-size: 36px;
  font-weight: 500;
}

.cmn-ttl .jp-txt {
  font-size: 32px;
  font-weight: 700;
}

.cmn-ttl-white .line {
  background-color: #ffffff;
}

.cmn-ttl-white .en-txt {
  color: #ffffff;
}

.cmn-ttl-blue .line {
  background-color: #000f3e;
}

.cmn-ttl-blue .en-txt,
.cmn-ttl-blue .jp-txt {
  color: #000f3e;
}

/* Common Block */
.cmn-blk {
  display: flex;
  align-items: flex-start;
  padding-top: 49px;
}

.cmn-blk .cmn-txt-blk {
  display: flex;
  width: 60.6%;
  margin-top: 12px;
  margin-left: 92px;
}

.cmn-blk .txt-blk {
  width: 587px;
}

.cmn-blk .cmn-sub-ttl {
  margin-bottom: 26px;
  color: #000f3e;
  font-size: 22px;
}

.cmn-blk .cmn-sub-ttl span {
  font-family: "Jost", sans-serif;
}

.cmn-blk .cmn-txt {
  line-height: 2.5;
  padding-left: 3px;
  color: #000f3e;
  font-size: 16px;
}

/* Header */
.header {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  margin: 0 auto;
  padding: 29px 32px 29px 25px;
  transition: background-color 0.3s ease;
  max-width: 2500px;
}

/* .header.bg-transparent {
  background-color: transparent;
} */
.header.bg-blur {
  background-color: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(8px) brightness(100%);
  -webkit-backdrop-filter: blur(8px) brightness(100%);
}

.header .header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header .header-logo {
  width: 124px;
}

/* -----update----- */
.header .header-logo img {
  filter: invert(100%) sepia(91%) saturate(0%) hue-rotate(198deg) brightness(115%) contrast(101%);
}

.header.bg-white .header-logo img {
  filter: inherit;
}

/* ---------------------------------------- */
.header .gnav ul {
  display: flex;
  align-items: center;
}

.header .gnav ul li+li {
  margin-left: 30px;
}

.header .gnav ul li a {
  color: #ffffff;
}

.header.bg-white .gnav ul li a {
  color: #000f3e;
}

@media (hover: hover) and (pointer: fine) {
  .header .gnav ul li a:hover {
    opacity: 0.7;
  }
}

.header .gnav ul li a.en-link {
  font-family: "Jost", sans-serif;
}

.header .gnav ul li a.jp-link {
  font-size: 12px;
}

/* --------------------add animation-------------------- */
.main-anima {
  position: relative;
}

.main-v {
  position: absolute;
  z-index: 1;
  width: 100vw;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}

#gradient1 {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 0;
}

#gradient2 {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1;
  opacity: 0;
}

@keyframes dissolve {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

/*
.logo {
  display: flex;
  position: absolute;
  justify-content: center;
  align-items: center;
  z-index: 2;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  animation: opacity 1.2s ease 6.7s forwards;
}
@keyframes opacity {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
*/
.logo {
  display: flex;
  position: absolute;
  justify-content: center;
  align-items: center;
  z-index: 2;
  width: 100%;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}

@media screen and (max-width:640px) {
  .logo {
    animation: opacity 1.2s ease 6.5s forwards;
  }
}

@media screen and (min-width:641px) {
  .logo {
    animation: opacity 1.2s ease 6.7s forwards;
  }
}

@keyframes opacity {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.logo .mv_logo {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100vh;
  height: 100svh;
}

.logo .mv_logo svg {
  height: 100%;
}

@media screen and (max-width:640px) {
  .logo .mv_logo svg {
    margin-right: -29.5%;
  }
}

@media screen and (min-width:641px) {
  .logo .mv_logo svg {
    margin-right: -33.5%;
  }
}


.logo .mv_logo svg g {}

@media screen and (max-width:640px) {
  .logo .mv_logo svg g {
    transform: scale(0.54);
    transform-origin: 25.5% 75%;
  }
}

@media screen and (min-width:641px) {
  .logo .mv_logo svg g {
    transform: scale(0.48);
    transform-origin: 25.5% 75%;
  }
}

#logo1 {
  animation: zoomOut 8s cubic-bezier(.95, 0, 1, 0) 4.2s forwards;
}

@media screen and (max-width:640px) {
  @keyframes zoomOut {
    0% {
      transform: scale(0.54);
      transform-origin: 25.5% 75%;
    }

    100% {
      transform: scale(20000);
      transform-origin: 25.5% 75%;
    }
  }

}

@media screen and (min-width:641px) {
  @keyframes zoomOut {
    0% {
      transform: scale(0.48);
      transform-origin: 25.5% 75%;
    }

    100% {
      transform: scale(5000);
      transform-origin: 25.5% 75%;
    }
  }
}

/* ----------------------------------------------------------- */
/* Background Fixed */
.bg-fixed {
  position: fixed;
  /* top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); */
  width: 140%;
  height: 140vh;
  height: 140svh;
  margin: 0 auto;
  background: url("../img/img_mv_bg03.jpg") no-repeat center/cover;
  max-width: 2500px;
  overflow: hidden;
  z-index: 0;
}

@media screen and (max-width:640px) {
  .bg-fixed {
    top: 50vh;
    top: 50svh;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: zindex 1.6s ease-in-out 6.2s forwards;
  }
}

@media screen and (min-width:641px) {
  .bg-fixed {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: zindex 1.8s ease-in-out 6.4s forwards;
  }
}

@keyframes zindex {
  0% {
    z-index: 0;
    opacity: 0;
  }

  33% {
    z-index: 1;
    opacity: 0;
  }

  66% {
    z-index: 1;
    opacity: 0.5;
  }

  100% {
    z-index: 1;
    opacity: 1;
    width: 120%;
    height: 120vh;
    height: 120svh;
  }
}

/* Background Parallex */
.bg-parallex {
  position: relative;
  z-index: 2;
  width: 100%;
}

.bg-parallex img {
  position: relative;
  z-index: 2;
  width: 100%;
}

/* Mainvisual Section */
.pin-spacer {
  width: 100% !important;
}

.sec-mv {
  display: flex;
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 600px;
}

/* ------ / add text-zindex / ------------------------------------------- */
.zindexAnimation {
  animation: zoom 1.9s ease-in-out 6.6s forwards;
  z-index: 5;
  position: relative;
  opacity: 0;
}

.mv-text-zindex {
  overflow: hidden;
  transform-origin: center;
  animation: zoom2 1.9s ease-in-out 6.6s forwards;
}

@keyframes zoom {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes zoom2 {
  0% {
    transform: scale(0.9);
  }

  100% {
    transform: scale(1);
  }
}

/* --------------------------- / add end / --------------------------- */
.sec-mv .sec-mv-inner {
  display: flex;
  align-items: flex-start;
  margin-top: 50px;
}

.sec-mv .mv-txt-blk {
  width: 422px;
  margin-top: 3px;
  margin-left: 93px;
}

.sec-mv .mv-ttl {
  padding-bottom: 45px;
  /*  font-size: 30px;*/
  font-size: 27px;

}

.sec-mv .mv-txt {
  line-height: 2.5;
  padding-left: 4px;
  /*  font-size: 16px;*/
  font-size: 14.4px;
}

.sec-mv .mv-txt+.mv-txt {
  padding-top: 40px;
}

/* Contents */
.sec-contents {
  position: relative;
  z-index: 1;
  padding: 222px 0 263px;
  background-color: #f1f1f1;
}

.sec-contents .sign-left,
.sec-contents .sign-right {
  position: absolute;
  z-index: -1;
}

.sec-contents .sign-left {
  bottom: -2%;
  left: 0;
}

.js-animation.active.sign-left {
  animation: sign-move1 2s ease forwards;
}

@keyframes sign-move1 {
  0% {
    bottom: -2%;
  }

  100% {
    bottom: 0;
  }
}

.sec-contents .sign-right {
  top: 30.1%;
  right: 0;
}

.js-animation.active.sign-right {
  animation: sign-move2 2s ease forwards;
}

@keyframes sign-move2 {
  0% {
    top: 30.1%;
  }

  100% {
    top: 28.1%;
  }
}

.sec-contents .sign-left::before,
.sec-contents .sign-right::after {
  display: inline-block;
  content: "";
}

.sec-contents .sign-left::before {
  width: 484px;
  height: 1103px;
  background: url("../img/img_sign02.png") no-repeat center/contain;
}

.sec-contents .sign-right::after {
  width: 250px;
  height: 572px;
  background: url("../img/img_sign01.png") no-repeat center/contain;
}

.sec-contents .mission-blk {
  padding-bottom: 83px;
}

.sec-contents .mission-img {
  position: relative;
  height: 310px;
  overflow: hidden;
  margin-top: -61px;
  margin-left: -8.5%;
  min-width: 310px;
  border-radius: 50%;
}

.sec-contents .mission-img::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../img/img_content01.jpg") no-repeat;
  background-size: 210%;
  background-position: 33% 32%;
  content: "";
}

.js-animation.active .mission-img::before {
  animation: bg-move1 2s ease forwards;
}

@keyframes bg-move1 {
  0% {
    background-position: 33% 32%;
  }

  100% {
    background-position: 33% 50%;
  }
}

.sec-contents .vision-blk {
  position: relative;
  padding-bottom: 201px;
}

.sec-contents .vision-img {
  position: absolute;
  top: 194px;
  left: 206px;
  width: 172px;
  height: 172px;
  overflow: hidden;
  border-radius: 50%;
}

.sec-contents .vision-img::before,
.sec-contents .value-img::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../img/img_content02.jpg") no-repeat;
  background-size: 260%;
  background-position: 50% 42%;
  content: "";
}

.js-animation.active .vision-img::before,
.js-animation.active .value-img::before {
  animation: bg-move2 2s ease forwards;
}

@keyframes bg-move2 {
  0% {
    background-position: 50% 42%;
  }

  100% {
    background-position: 50% 62%;
  }
}

.sec-contents .value-blk {
  padding-bottom: 204px;
}

.sec-contents .principles-blk {
  padding-bottom: 159px;
}

.sec-contents .principles-blk .cmn-txt-blk {
  margin-top: 4px;
}

.sec-contents .principles-img {
  position: relative;
  height: 270px;
  overflow: hidden;
  margin-top: 65px;
  margin-left: -6.7%;
  min-width: 270px;
  border-radius: 50%;
}

.sec-contents .principles-img::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../img/img_content03.jpg") no-repeat;
  background-size: 530%;
  background-position: 51% 42%;
  content: "";
}

.js-animation.active .principles-img::before {
  animation: bg-move3 2s ease forwards;
}

@keyframes bg-move3 {
  0% {
    background-position: 51% 42%;
  }

  100% {
    background-position: 51% 47%;
  }
}

.sec-contents .principles-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  width: 446px;
  color: #000f3e;
}

.sec-contents .principles-list dt {
  display: flex;
  align-items: center;
  width: 236px;
  margin-bottom: 30px;
  font-family: "Jost", sans-serif;
  font-weight: 500;
}

.sec-contents .principles-list dt strong {
  font-size: 32px;
  letter-spacing: 4px;
}

.sec-contents .principles-list dt span {
  font-size: 21px;
}

.sec-contents .principles-list dt .line {
  width: 100%;
  height: 1px;
  margin-left: 10px;
  background-color: #c9c9c9;
}

.sec-contents .principles-list dd {
  width: 200px;
  margin-bottom: 32px;
  font-size: 20px;
  white-space: nowrap;
}

.sec-contents .msg-blk .cmn-txt-blk {
  margin-top: -10px;
}

/* Business Intro Section */
.sec-business-intro {
  position: relative;
  z-index: 2;
  padding: 125px 0 84px;
  background: url("../img/img_business_intro_bg.jpg") no-repeat center/cover;
}

.sec-business-intro .sec-intro-inner {
  display: flex;
  align-items: flex-start;
  margin-bottom: 66px;
}

.sec-business-intro .cmn-ttl {
  padding-top: 15px;
}

.sec-business-intro .cmn-ttl .jp-txt {
  letter-spacing: 3.2px;
}

.sec-business-intro .intro-txt {
  line-height: 2.5;
  margin-left: 107px;
  font-size: 16px;
  max-width: 587px;
}
.sec-business-intro .intro-topics {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  background: #000F3E;
  margin: 0 auto 50px;
}
.sec-business-intro .intro-topics-txt {
  padding: 77px 15px 0 56px;
}
.sec-business-intro .intro-topics-txt h3 {
  font-size: 22px;
  font-weight: bold;
  margin: 0 0 71px;
  line-height: 1.58;
}
.sec-business-intro .intro-topics-txt h3 span {
  font-family: "Jost", sans-serif;
  font-weight: 500;
  font-size: 24px;
  letter-spacing: 0.01em;
  margin: 0 3px 0 4px;
}
.sec-business-intro .intro-button {
  font-family: "Jost", sans-serif;
  font-weight: 500;
  display: block;
  border: 1px solid #fff;
  color: #fff;
  font-size: 20px;
  letter-spacing: 0.01em;
  line-height: 47px;
  width: 380px;
  height: 50px;
  text-align: center;
  margin: auto;
  position: relative;
  transition: all .5s;
}
.sec-business-intro .intro-button.sp {
  display: none;
}
.sec-business-intro .intro-button:hover {
  background: #FFFFFF;
  color: #000F3E;
}
.sec-business-intro .intro-button::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 30px;
  width: 9px;
  height: 9px;
  margin: auto;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(45deg);
  box-sizing: border-box;
  transition: all .5s;
}
.sec-business-intro .intro-button:hover::after {
  border-color: #000F3E;
}
@media all and (max-height:700px) {
  .sec-mv .mv-ttl {
    padding-bottom: 30px;
  }

  .sec-mv .mv-txt {
    line-height: 2;
  }

  .sec-mv .mv-txt+.mv-txt {
    padding-top: 20px;
  }
}

/* -----update----- */
.sec-business-intro .schedule-txt {
  margin-bottom: 20px;
  padding: 0 183px;
  font-size: 16px;
}

/* ---------------- */
.sec-business-intro .img-list {
  display: flex;
  justify-content: space-between;
  padding: 0 183px;
}

.sec-business-intro .img-list p {
  width: 48.7%;
}

.sec-business-intro .intro-img {
  margin: 0 auto;
  width: 80%;
  text-align: center;
}

/* Company Overview Section */
.sec-company-overview {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 162px 0 155px;
  background-color: #f1f1f1;
}

.sec-company-overview .sign-right01 {
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
}

.js-animation.active .sign-right01 {
  animation: sign-move3 2s ease forwards;
}

@keyframes sign-move3 {
  0% {
    top: 0;
  }

  100% {
    top: -2.4%;
  }
}

.sec-company-overview .sign-right01::after {
  display: inline-block;
  width: 389px;
  height: 660px;
  background: url("../img/img_sign03.png") no-repeat center/contain;
  content: "";
}

.sec-company-overview .l-inner {
  max-width: 738px;
}

.sec-company-overview .overview-ttl {
  color: #000f3e;
  font-size: 24px;
  letter-spacing: 1px;
}

.sec-company-overview .overview-tbl {
  margin-top: 58px;
  color: #000f3e;
}

.sec-company-overview .overview-tbl th {
  position: relative;
  width: 70px;
  padding: 40px 0 40px;
  text-align: left;
  white-space: nowrap;
  letter-spacing: 3.3px;
}
.sec-company-overview .overview-tbl th.pres {
  letter-spacing: 0.07em;
}

.sec-company-overview .overview-tbl th::before,
.sec-company-overview .overview-tbl th::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #d2d2d2;
  content: "";
}

.sec-company-overview .overview-tbl th::before {
  display: none;
}

.sec-company-overview .overview-tbl td {
  line-height: 1.8;
  padding: 40px 0 0 41px;
  letter-spacing: 0.7px;
}
.sec-company-overview .overview-tbl td .tel_box {
  display: inline-block;
}
.sec-company-overview .overview-tbl td .tel_box + .tel_box {
  margin-left: 20px;
}

.sec-company-overview .overview-tbl tr:nth-child(6) th {
  padding: 45px 0 38px;
}

.sec-company-overview .overview-tbl tr:nth-child(6) td {
  padding: 45px 0 0 41px;
}

.sec-company-overview .overview-tbl tr:nth-child(7) th {
  padding: 23px 0 38px;
}

.sec-company-overview .overview-tbl tr:nth-child(7) td {
  padding: 23px 0 0 41px;
}

.sec-company-overview .overview-tbl tr:nth-child(6) th::after,
.sec-company-overview .overview-tbl tr:nth-child(7) th::after {
  bottom: 12px;
}

.sec-company-overview .overview-tbl td a {
  color: #000f3e;
  cursor: pointer;
  pointer-events: auto;
}
.sec-company-overview .overview-tbl td a.link-txt {
  text-decoration: underline;
}

/* Contact Us Section */
.sec-contactus {
  position: relative;
  z-index: 1;
  padding: 94px 0 120px;
  background-color: #f8f8f8;
  text-align: center;
}

.sec-contactus .contactus-ttl {
  color: #000f3e;
  font-size: 16px;
  letter-spacing: 1px;
}

.sec-contactus .mail {
  width: 320px;
  margin: 21px auto 0;
  padding: 30px 0;
  color: #000f3e;
  font-family: "Jost", sans-serif;
  font-size: 24px;
  border-top: 1px solid #c9c9c9;
  border-bottom: 1px solid #c9c9c9;
}

.sec-contactus .mail a {
  color: #000f3e;
}

/* Footer */
.footer {
  position: relative;
  z-index: 1;
  padding: 128px 0 28px;
  background-color: #000f3e;
  text-align: center;
}

.footer .footer-logo {
  width: 375px;
  margin: 0 auto;
}

.footer .copyright-txt {
  padding-top: 92px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 1px;
}

/* Ipad
-----------------------------------------------------------------*/
@media only screen and (min-width: 641px) and (max-width: 1280px) {
  body {
    font-size: 1.094vw;
  }

  .wrap {
    max-width: 100%;
  }

  .l-inner {
    max-width: 78.125vw;
  }

  /* Common Title */
  .cmn-ttl span {
    width: 29.375vw;
  }

  .cmn-ttl .line {
    height: 0.088vw;
  }

  .cmn-ttl .en-txt,
  .cmn-ttl .jp-txt {
    padding-left: 0.781vw;
    letter-spacing: 0.016vw;
  }

  .cmn-ttl .en-txt {
    /*    font-size: 3.125vw;*/
    font-size: 2.812vw;
  }

  .cmn-ttl .jp-txt {
    font-size: 2.5vw;
  }

  /* Common Block */
  .cmn-blk {
    padding-top: 3.828vw;
  }

  .cmn-blk .cmn-txt-blk {
    margin-top: 0.938vw;
    margin-left: 7.188vw;
  }

  .cmn-blk .txt-blk {
    width: 45.859vw;
  }

  .cmn-blk .cmn-sub-ttl {
    margin-bottom: 2.031vw;
    font-size: 1.719vw;
  }

  .cmn-blk .cmn-txt {
    padding-left: 0.234vw;
    font-size: 1.25vw;
  }

  /* Header */
  .header {
    padding: 2.266vw 2.5vw 2.266vw 1.953vw;
    max-width: 100%;
  }

  .header.bg-blur {
    backdrop-filter: blur(0.625vw) brightness(100%);
    -webkit-backdrop-filter: blur(0.625vw) brightness(100%);
  }

  .header .header-logo {
    width: 9.688vw;
  }

  .header .gnav ul li+li {
    margin-left: 2.344vw;
  }

  .header .gnav ul li a.jp-link {
    font-size: 0.938vw;
  }

  /* -----add animation media----- */
  .logo {
    max-width: 100%;
  }

  /* ---------- end ---------- */
  /* Background Fixed */
  .bg-fixed {
    max-width: 120%;
  }

  /* Mainvisual Section */
  .sec-mv .sec-mv-inner {
    margin-top: 3.906vw;
  }

  .sec-mv .mv-txt-blk {
    width: 33.969vw;
    margin-top: 0.234vw;
    margin-left: 7.266vw;
  }

  .sec-mv .mv-ttl {
    padding-bottom: 3.516vw;
    /*    font-size: 2.344vw;*/
    font-size: 2.109vw;
  }

  .sec-mv .mv-txt {
    padding-left: 0.313vw;
    /*    font-size: 1.25vw;*/
    font-size: 1.125vw;
  }

  .sec-mv .mv-txt+.mv-txt {
    padding-top: 3.125vw;
  }

  /* Contents */
  .sec-contents {
    padding: 17.344vw 0 20.547vw;
  }

  .sec-contents .sign-left::before {
    width: 37.813vw;
    height: 86.172vw;
  }

  .sec-contents .sign-right::after {
    width: 19.531vw;
    height: 44.688vw;
  }

  .sec-contents .mission-blk {
    padding-bottom: 6.484vw;
  }

  .sec-contents .mission-img {
    height: 24.219vw;
    margin-top: -4.766vw;
    min-width: 24.219vw;
  }

  .sec-contents .vision-blk {
    padding-bottom: 15.703vw;
  }

  .sec-contents .vision-img {
    top: 15.156vw;
    left: 16.094vw;
    width: 13.438vw;
    height: 13.438vw;
  }

  .sec-contents .value-blk {
    padding-bottom: 15.938vw;
  }

  .sec-contents .principles-blk {
    padding-bottom: 12.422vw;
  }

  .sec-contents .principles-blk .cmn-txt-blk {
    margin-top: 0.313vw;
  }

  .sec-contents .principles-img {
    height: 21.094vw;
    margin-top: 5.078vw;
    min-width: 21.094vw;
  }

  .sec-contents .principles-list {
    width: 34.844vw;
  }

  .sec-contents .principles-list dt {
    width: 18.438vw;
    margin-bottom: 2.344vw;
  }

  .sec-contents .principles-list dt strong {
    font-size: 2.5vw;
    letter-spacing: 0.313vw;
  }

  .sec-contents .principles-list dt span {
    font-size: 1.641vw;
  }

  .sec-contents .principles-list dt .line {
    height: 0.088vw;
    margin-left: 0.781vw;
  }

  .sec-contents .principles-list dd {
    width: 15.95vw;
    margin-bottom: 2.5vw;
    font-size: 1.563vw;
  }

  .sec-contents .msg-blk .cmn-txt-blk {
    margin-top: -0.781vw;
  }

  /* Business Intro Section */
  .sec-business-intro {
    padding: 9.766vw 0 3.313vw;
  }

  .sec-business-intro .sec-intro-inner {
    margin-bottom: 7.109vw;
  }

  .sec-business-intro .cmn-ttl {
    padding-top: 1.172vw;
  }

  .sec-business-intro .cmn-ttl .jp-txt {
    letter-spacing: 0.25vw;
  }

  .sec-business-intro .intro-txt {
    margin-left: 8.359vw;
    font-size: 1.25vw;
    max-width: 46vw;
  }
  .sec-business-intro .intro-topics {
    max-width: 90vw;
  }
  .sec-business-intro .intro-topics-txt {
    padding: 6.525vw 5.125vw 0;
  }
  .sec-business-intro .intro-topics-txt h3 {
    margin-bottom: 4.831vw;
    font-size: 1.819vw;
  }
  .sec-business-intro .intro-topics-txt h3 span {
    font-size: 1.919vw;
  }
  .sec-business-intro .intro-topics-photo {
    width: 50%;
  }
  .sec-business-intro .intro-topics-photo img {
    width: 100%;
    height: auto;
  }
  .sec-business-intro .intro-button {
    font-size: 1.919vw;
    width: 33vw;
    height: 5.5vw;
    line-height: 5.5vw;
  }

  /* -----update----- */
  .sec-business-intro .schedule-txt {
    margin-bottom: 1.563vw;
    padding: 0 14.297vw;
    font-size: 1.25vw;
  }

  /* --------------- */
  .sec-business-intro .img-list {
    padding: 0 14.297vw;
  }

  /* Company Overview Section */
  .sec-company-overview {
    padding: 12.656vw 0 12.109vw;
  }

  .sec-company-overview .sign-right01::after {
    width: 30.391vw;
    height: 48.828vw;
  }

  .sec-company-overview .l-inner {
    max-width: 57.659vw;
  }

  .sec-company-overview .overview-ttl {
    font-size: 1.875vw;
    letter-spacing: 0.078vw;
  }

  .sec-company-overview .overview-tbl {
    margin-top: 4.453vw;
  }

  .sec-company-overview .overview-tbl th {
    width: 5.569vw;
    padding: 3.125vw 0 2.5vw;
    letter-spacing: 0.258vw;
  }

  .sec-company-overview .overview-tbl th::before,
  .sec-company-overview .overview-tbl th::after {
    height: 0.078vw;
  }

  .sec-company-overview .overview-tbl td {
    padding: 3.125vw 0 2.5vw 4.609vw;
    letter-spacing: 0.055vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(6) th {
    padding: 3.516vw 0 2.969vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(6) td {
    padding: 3.516vw 0 0 4.609vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(7) th {
    padding: 1.797vw 0 2.969vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(7) td {
    padding: 1.797vw 0 0 4.609vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(6) th::after,
  .sec-company-overview .overview-tbl tr:nth-child(7) th::after {
    bottom: 0.938vw;
  }

  .sec-company-overview .overview-tbl td a {
    cursor: pointer;
    pointer-events: auto;
  }

  /* Contact Us Section */
  .sec-contactus {
    padding: 7.344vw 0 9.375vw;
  }

  .sec-contactus .contactus-ttl {
    font-size: 1.25vw;
    letter-spacing: 0.078vw;
  }

  .sec-contactus .mail {
    width: 25vw;
    margin: 1.641vw auto 0;
    padding: 2.344vw 0;
    font-size: 1.875vw;
    border-top: 0.088vw solid #c9c9c9;
    border-bottom: 0.088vw solid #c9c9c9;
  }

  /* Footer */
  .footer {
    padding: 10vw 0 2.188vw;
  }

  .footer .footer-logo {
    width: 29.297vw;
  }

  .footer .copyright-txt {
    padding-top: 7.188vw;
    font-size: 0.781vw;
    letter-spacing: 0.078vw;
  }
}

/* SP
-----------------------------------------------------------------*/
@media only screen and (max-width: 640.9px) {
  body {
    font-size: 3.67vw;
  }

  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  .wrap {
    max-width: 100%;
  }

  .l-inner {
    width: 100%;
    padding: 0 7.4%;
    max-width: 100%;
  }

  /* Common Title */
  .cmn-ttl span {
    width: 37.867vw;
  }

  .cmn-ttl .line {
    height: 0.267vw;
  }

  .cmn-ttl .en-txt,
  .cmn-ttl .jp-txt {
    padding-left: 1.333vw;
    letter-spacing: 0.053vw;
  }

  .cmn-ttl .en-txt {
    font-size: 9.067vw;
  }

  .cmn-ttl .jp-txt {
    font-size: 6.933vw;
  }

  /* Common Block */
  .cmn-blk {
    display: block;
    padding-top: 4.8vw;
  }

  .cmn-blk .cmn-txt-blk {
    display: block;
    width: 100%;
    margin-top: 4vw;
    margin-left: 0;
  }

  .cmn-blk .txt-blk {
    width: 100%;
    padding: 0 6.4% 0 7.6%;
  }

  .cmn-blk .cmn-sub-ttl {
    line-height: 1.76;
    margin-bottom: 3.7vw;
    font-size: 4.8vw;
  }

  .cmn-blk .cmn-txt {
    line-height: 2.2;
    padding-left: 0;
    font-size: 3.67vw;
  }

  /* Header */
  .scroll-prevent body {
    overflow: hidden;
  }

  .header {
    padding: 6.133vw 6.667vw;
    max-width: 100%;
  }

  .header.bg-blur {
    backdrop-filter: blur(1.867vw) brightness(100%);
    -webkit-backdrop-filter: blur(1.867vw) brightness(100%);
  }

  .header .header-logo {
    width: 21.867vw;
  }

  .header .gnav {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    height: 100svh;
    opacity: 0;
    visibility: hidden;
    padding: 22.933vw 6.667vw;
    background-color: rgba(0, 0, 0, 0.2);
    text-align: right;
    transition: all 0.5s ease-in-out;
    backdrop-filter: blur(1.867vw) brightness(100%);
    -webkit-backdrop-filter: blur(1.867vw) brightness(100%);
  }

  .header .gnav.active {
    opacity: 1;
    visibility: visible;
  }

  .header .gnav ul {
    display: block;
  }

  .header .gnav ul li+li {
    margin-top: 11.2vw;
    margin-left: 0;
  }

  .header .gnav ul li a.en-link {
    font-size: 4.8vw;
  }

  .header .gnav ul li a.jp-link {
    font-size: 4vw;
  }

  .header .menu-toggle {
    position: relative;
    width: 12.267vw;
    height: 4vw;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .header .menu-toggle span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 0.35vw;
    background-color: #ffffff;
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
  }

  .header.bg-white .menu-toggle span {
    background-color: #000f3e;
  }

  .header.bg-white .menu-toggle.active span {
    background-color: #ffffff;
  }

  .header.bg-white .gnav ul li a {
    color: #ffffff;
  }

  .header .menu-toggle span:nth-child(1) {
    top: 0;
  }

  .header .menu-toggle span:nth-child(2) {
    top: 4vw;
  }

  .header .menu-toggle.active span:nth-child(1) {
    top: 1.733vw;
    -webkit-transform: rotate(17deg);
    transform: rotate(17deg);
  }

  .header .menu-toggle.active span:nth-child(2) {
    top: 1.733vw;
    -webkit-transform: rotate(-17deg);
    transform: rotate(-17deg);
  }

  /* Background Fixed */
  .bg-fixed {
    max-width: 100%;
  }

  /* Mainvisual Section */
  .sec-mv .sec-mv-inner {
    display: block;
    width: 100%;
  }

  .sec-mv .cmn-ttl span {
    width: 24.6vh;
  }

  .sec-mv .cmn-ttl .en-txt {
    font-size: 4.467vh;
  }

  .sec-mv .mv-txt-blk {
    width: auto;
    margin-top: 2.8vh;
    margin-left: 4.35vh;
    margin-top: 2.8svh;
    margin-left: 4.35svh;
  }

  .sec-mv .mv-ttl {
    padding-bottom: 2.867vh;
    padding-bottom: 2.867svh;
    font-size: 2.4vh;
  }

  .sec-mv .mv-txt {
    line-height: 2.17;
    padding-left: 0;
    font-size: 1.653vh;
  }

  .sec-mv .mv-txt+.mv-txt {
    padding-top: 3.767vh;
    padding-top: 3.767vh;
    padding-top: 3.767svh;
    padding-top: 3.767svh;
  }

  /* Contents */
  .sec-contents {
    padding: 30.533vw 0 56.067vw;
  }

  .sec-contents .sign-right {
    top: 25.2%;
  }

  .js-animation.active.sign-right {
    animation: sign-move2 2s ease forwards;
  }

  .sec-contents .sign-left::before {
    width: 50.133vw;
    height: 97.067vw;
    background: url("../img/img_sign02_sp.png") no-repeat center/contain;
  }

  .sec-contents .sign-right::after {
    width: 48.8vw;
    height: 110.933vw;
    background: url("../img/img_sign01_sp.png") no-repeat center/contain;
  }

  .sec-contents .mission-blk {
    padding-bottom: 0;
  }

  .sec-contents .mission-img {
    width: 44.267vw;
    height: 44.267vw;
    margin-top: 11.2vw;
    margin-left: 42.8%;
    min-width: auto;
  }

  .sec-contents .vision-blk {
    padding-bottom: 55.467vw;
  }

  .sec-contents .vision-blk .cmn-ttl span {
    width: 32.533vw;
  }

  .sec-contents .vision-img {
    display: none;
  }

  .sec-contents .value-blk {
    padding-bottom: 10.133vw;
  }

  .sec-contents .value-blk .cmn-ttl span {
    width: 29.333vw;
  }

  .sec-contents .value-img {
    position: relative;
    width: 44.267vw;
    height: 44.267vw;
    overflow: hidden;
    margin-top: 11.467vw;
    margin-left: 17%;
    border-radius: 50%;
  }

  .sec-contents .principles-blk {
    padding-bottom: 9.6vw;
  }

  .sec-contents .principles-blk .cmn-ttl span {
    width: 57.067vw;
  }

  .sec-contents .principles-img {
    width: 45.333vw;
    height: 45.333vw;
    margin-top: 10.133vw;
    margin-left: 39%;
    min-width: auto;
  }

  .sec-contents .principles-blk .cmn-txt-blk {
    margin-top: 10.133vw;
  }

  .sec-contents .principles-list {
    width: 100%;
  }

  .sec-contents .principles-list dt {
    width: 47%;
    margin-bottom: 7.2vw;
  }

  .sec-contents .principles-list dt strong {
    font-size: 6.933vw;
    letter-spacing: 1.2vw;
  }

  .sec-contents .principles-list dt span {
    font-size: 4.533vw;
  }

  .sec-contents .principles-list dt .line {
    height: 0.267vw;
    margin-left: 2.667vw;
  }

  .sec-contents .principles-list dd {
    width: 50%;
    margin-bottom: 6.633vw;
    font-size: 4.267vw;
  }

  .sec-contents .msg-blk .cmn-ttl span {
    width: 56.267vw;
  }

  .sec-contents .msg-blk .cmn-txt-blk {
    margin-top: 5vw;
  }

  /* Business Intro Section */
  .sec-business-intro {
    padding: 18.133vw 0 1.333vw;
  }

  .sec-business-intro .sec-intro-inner {
    display: block;
    margin-bottom: 0;
  }

  .sec-business-intro .cmn-ttl {
    padding-top: 0;
  }

  .sec-business-intro .cmn-ttl span {
    width: 37.933vw;
  }

  .sec-business-intro .cmn-ttl .jp-txt {
    letter-spacing: 0.72vw;
  }

  .sec-business-intro .intro-txt {
    line-height: 2.15;
    margin-left: 0;
    padding: 7.233vw 7.4% 10.967vw;
    font-size: 3.67vw;
    max-width: none;
  }
  .sec-business-intro .intro-topics {
    flex-direction: column;
    padding-left: 0;
    padding-right: 0;
    max-width: 85vw;
    margin-bottom: 10.3vw;
  }
  .sec-business-intro .intro-topics-txt {
    padding: 11.525vw 5.4vw 4.4vw;
  }
  .sec-business-intro .intro-topics-txt h3 {
    margin-bottom: 5.7vw;
    font-size: 4.28vw;
    line-height: 1.75;
  }
  .sec-business-intro .intro-topics-txt h3 span {
    font-size: 4.5vw;
  }
  .sec-business-intro .intro-topics-photo {
    width: 100%;
  }
  .sec-business-intro .intro-topics-photo img {
    width: 100%;
    height: auto;
  }
  .sec-business-intro .intro-button {
    width: 256px;
    height: 60px;
    line-height: 57px;
    margin: 8vw auto 10vw;
  }
  .sec-business-intro .intro-button.sp {
    display: block;
  }
  .sec-business-intro .intro-button.pc {
    display: none;
  }
  .sec-business-intro .intro-button::after {
    right: 20px;
  }

  .sec-business-intro .schedule-txt {
    margin-bottom: 5.333vw;
    padding: 0 6.933vw;
    font-size: 3.67vw;
  }

  .sec-business-intro .img-list {
    display: block;
    padding: 0 0 0 6.933vw;
  }

  .sec-business-intro .img-list p {
    width: 85.333vw;
    margin-right: 2.667vw;
  }

  /* Company Overview Section */
  .sec-company-overview {
    padding: 32.267vw 0 29.8vw;
  }

  .sec-company-overview .sign-right01::after {
    width: 30.391vw;
    height: 51.563vw;
    background: url("../img/img_sign03_sp.png") no-repeat center/contain;
  }

  .sec-company-overview .l-inner {
    padding: 0 1% 0 7.4%;
    max-width: 100%;
  }

  .sec-company-overview .overview-ttl {
    font-size: 5.333vw;
    letter-spacing: 0.267vw;
  }

  .sec-company-overview .overview-tbl {
    margin-top: 8.467vw;
  }

  .sec-company-overview .overview-tbl th {
    width: 18.667vw;
    padding: 2.367vw 0;
    letter-spacing: 0.88vw;
  }

  .sec-company-overview .overview-tbl th::before,
  .sec-company-overview .overview-tbl th::after {
    height: 0.267vw;
  }

  .sec-company-overview .overview-tbl td {
    line-height: 2.15;
    padding: 2.367vw 0 3.267vw 4.533vw;
    letter-spacing: 0.287vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(2) th {
    padding: 1.9vw 0 10.133vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(2) td {
    padding: 1.6vw 0 0 4.533vw
  }
  .sec-company-overview .overview-tbl tr:nth-child(2) td p {
    line-height: 1.78;
  }
  .sec-company-overview .overview-tbl td .address_box + .address_box {
    margin-top: 6.6vw;
  }
  .sec-company-overview .overview-tbl td .tel_box + .tel_box {
    margin-left: 0;
  }

  .sec-company-overview .overview-tbl tr:nth-child(2) th::before {
    display: block;
    top: 11.267vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(2) th::after {
    bottom: -4vw;
  }
  .sec-company-overview .overview-tbl tr:nth-child(3) th {
    padding: 5.133vw 0 22.133vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(3) td {
    padding: 6.133vw 0 0 4.533vw;
  }
  .sec-company-overview .overview-tbl tr:nth-child(3) th::after {
    bottom: 13.8vw;
  }
  .sec-company-overview .overview-tbl tr:nth-child(4) th::before {
    content: "";
    display: block;
    bottom: 12.8vw;
  }
  .sec-company-overview .overview-tbl tr:nth-child(6) th {
    padding: 1.6vw 0 10.133vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(6) td {
    padding: 1.6vw 0 0 4.533vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(7) th {
    padding: 6.133vw 0 10.133vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(7) td {
    padding: 6.133vw 0 0 4.533vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(6) th::before {
    display: block;
    top: 12.267vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(6) th::after {
    bottom: -4vw;
  }

  .sec-company-overview .overview-tbl tr:nth-child(7) th::after {
    bottom: 12.8vw;
  }

  .sec-company-overview .overview-tbl td a {
    cursor: pointer;
    pointer-events: auto;
    text-decoration: underline;
  }

  /* Contact Us Section */
  .sec-contactus {
    padding: 15.467vw 0 14.4vw;
  }

  .sec-contactus .contactus-ttl {
    font-size: 3.2vw;
    letter-spacing: 0.267vw;
  }

  .sec-contactus .mail {
    width: 48vw;
    margin: 4.267vw auto 0;
    padding: 3.267vw 0;
    font-size: 3.67vw;
    border-top: 0.267vw solid #c9c9c9;
    border-bottom: 0.267vw solid #c9c9c9;
  }

  /* Footer */
  .footer {
    padding: 13.333vw 0 3.2vw;
  }

  .footer .footer-logo {
    width: 60.533vw;
  }

  .footer .copyright-txt {
    padding-top: 8.5vw;
    font-size: 2.133vw;
    letter-spacing: 0.213vw;
  }
}

@keyframes sign-move2 {
  0% {
    top: 25.2%;
  }

  100% {
    top: 23.2%;
  }
}

@media (hover: hover) and (pointer: fine) {
  .sec-contactus .mail a:hover {
    opacity: 0.7;
  }

  .link-txt {
    text-decoration: underline;
  }

  @media (hover: hover) and (pointer: fine) {
    .link-txt :hover {
      text-decoration: none;
    }