@charset "utf-8";

.company {
  margin: 226px 15% 232px 28%;
  max-width: 1124px;
}
.company__container {
  display: flex;
  justify-content: space-between;
  gap: 14%;
}
.company__container--left {
  width: 80%;
}
.company__catchphrase {
  margin-bottom: 8%;
}
.company__text {
  font-size: clamp(0.875rem, 0.775rem + 0.5vw, 1.375rem);
  /* 1920vw:22px 320vw:14px */
  letter-spacing: 0.02em;
  line-height: 1.7;
}
.company__text:first-of-type {
  margin-bottom: 7%;
}
.company__container--right {
  width: 40%;
  position: relative;
}
.company__image--top,
.company__image--bottom {
  max-width: 205px;
  width: 100%;
  object-fit: contain;
}
.company__image--top {
  position: absolute;
  top: -50px;
  right: 76px;
}
.company__image--bottom {
  position: absolute;
  top: 200px;
  right: 0;
  z-index: -1;
}

@media (max-width: 1280px) {
  .company__image--top {
    position: absolute;
    top: 50%;
    transform: translateY(-99%);
    right: 45px;
  }
  .company__image--bottom {
    position: absolute;
    top: 45%;
    right: 0;
    z-index: -1;
  }
}

@media (max-width: 767px) {
  .company {
    margin: 132px 10% 450px 10%;
  }
  .company__container {
    display: block;
    margin: 37px 5% 0;
  }
  .company__container--left {
    width: 100%;
  }
  .company__text:first-of-type {
    margin-bottom: 18px;
  }
  .company__container--right {
    width: 100%;
  }
  .company__image--top,
  .company__image--bottom {
    max-width: clamp(7.125rem, 2.929rem + 20.98vw, 13rem);
    /* 768vw:208px 320vw:114px */
  }
  .company__image--top {
    top: 37px;
    right: 0;
    left: 35%;
    transform: translateX(-50%);
  }
  .company__image--bottom {
    top: 158px;
    right: 35%;
    transform: translateX(50%);
    z-index: -1;
  }
}

/* ********** Envision the Future. **************** */
.image-container {
  max-width: 1060px;
  text-align: right;
  margin: 0 90px 46px 28%;
}
.company-envision-the-future__img {
  width: 28%;
}

@media (max-width: 767px) {
  .image-container {
    width: 140px;
    margin: 0 10% 43px auto;
  }
  .company-envision-the-future__img {
    width: 100%;
  }
}

/* ********** MESSAGE-section **************** */
.message {
  margin: 0 90px 218px 28%;
  max-width: 936px;
}
.section__title {
  margin-bottom: 6px;
}
.section__ja-title {
  margin-bottom: 62px;
}
.message__text {
  font-size: clamp(0.875rem, 0.735rem + 0.54vw, 1.375rem);
  /* 1920vw:22px 420vw:14px */
  letter-spacing: 0.04em;
  line-height: 1.7;
  padding-right: 80px;
}
.message__text--content {
  margin-bottom: 3%;
}
.message__sign--wrap {
  text-align: right;
  padding-right: 80px;
  margin-top: 40px;
}
.message__sign {
  display: inline-block;
  position: relative;
}
.message__sign::after {
  content: " ";
  display: block;
  width: 100%;
  position: absolute;
  bottom: 42px;
  left: 0;
  height: 1px;
  background-color: #676767;
}
.message__sign--text {
  font-family: "altivo", sans-serif;
  font-weight: 400;
  font-style: italic;
  font-size: clamp(0.75rem, 0.61rem + 0.53vw, 1.25rem);
  /* 1920vw:20px 420px:12px */
  letter-spacing: 0.03em;
  text-align: right;
  color: #626262;
}

@media (max-width: 767px) {
  .message {
    margin: 0 10% 93px 10%;
  }
  .section__ja-title {
    margin-bottom: 0;
  }

  .message__text {
    padding: 0 5%;
    margin-top: 43px;
  }
  .message__sign--wrap {
    padding-right: 0;
    margin-top: 30px;
  }
  .message__sign--image {
    width: 180px;
  }
  .message__sign::after {
    bottom: 23px;
  }
  .message__sign--text {
    font-size: clamp(0.75rem, 0.65rem + 0.5vw, 1.25rem);
    /* 1920vw:20px 320vw:20px */
  }
}

/* ********** overview-section **************** */
.overview {
  margin: 0 90px 110px 28%;
}
.overview__container {
  max-width: 768px;
  display: flex;
  margin: 81px auto 0 auto;
}
.overview__left {
  width: 90%;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
.overview__list--wrap1 {
  position: relative;
  padding-bottom: 74px;
}
.overview__list--wrap2 {
  padding-top: 99px;
}
.overview__list--wrap1::before {
  content: " ";
  width: 98px;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #000;
}
.overview__list--content,
.overview__list--bottom {
  display: flex;
  margin-bottom: 6%;
}
dt {
  width: 100px;
  font-size: 17px;
}
dd {
  font-size: clamp(0.75rem, 0.645rem + 0.4vw, 1.125rem);
  /* 1920vw:18px 420vw:12px */
}
.overview__content--br dd {
  margin-bottom: 10px;
}

.overview__right {
  width: 50%;
  position: relative;
}
.overview__image {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-75%);
}
.sp-overview__right {
  display: none;
}

@media (max-width: 767px) {
  .overview {
    margin: 0 10% 110px 10%;
  }
  .overview__container {
    display: block;
    padding-left: 9%;
    margin-top: 43px;
  }
  .overview__left {
    width: 100%;
    line-height: 1.4;
    letter-spacing: 0.03em;
  }
  .overview__right {
    display: none;
  }
  .sp-overview__right {
    display: block;
    width: 60%;
    margin: 0 0 0 auto;
  }
  .sp-overview__image {
    position: static;
  }
  .overview__list--wrap1 {
    padding-bottom: 37px;
  }
  .overview__list--wrap2 {
    padding-top: 27px;
  }
  .overview__list--content {
    margin-bottom: 14px;
  }
  .overview__list--bottom {
    display: block;
    margin-bottom: 20px;
  }
  dt {
    width: 76px;
    font-size: 14px;
  }
  .overview__list--bottom-title {
    font-size: 12px;
    margin-bottom: 7.5px;
  }
  .overview__list--bottom-inner {
    font-size: 12px;
  }
}

/* ********** ACCESS-section **************** */
.access {
  margin: 0 90px 214px 18%;
}
.access-wrap {
  max-width: 1300px;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.access__ja-title {
  margin-bottom: 41px;
}
.google-map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}
.google-map {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 ratio (h/w = 9/16 = 0.5625) */
  height: 0;
  overflow: hidden;
}

@media (max-width: 767px) {
  .access {
    margin: 0 0 105px 0;
  }
  .access__title {
    margin-left: 10%;
  }
  .access__ja-title {
    margin: 0 auto 18px 10%;
  }
}
