@charset "UTF-8";
/* main colors */
/* 私たちの使命 */
.our_mission {
  margin-top: 120px;
  padding-inline: 20px;
  position: relative;
}
@media (min-width: 920px) {
  .our_mission {
    margin-top: 17.1428571429vw;
    padding-inline: 7.8571428571vw;
  }
}
@media (max-width: 919px) {
  .our_mission .catch_text {
    right: 10px;
    top: -10px;
    writing-mode: vertical-rl;
    font-feature-settings: "pkna";
  }
}
@media (min-width: 920px) {
  .our_mission .catch_text {
    right: 0.3em;
    top: -0.5em;
  }
}
.our_mission-text {
  display: grid;
  align-items: end;
}
.our_mission-text h4 {
  font-size: 32px;
  line-height: 1.5;
}
.our_mission-text p {
  line-height: 2;
}
@media (max-width: 919px) {
  .our_mission-text {
    padding-right: 50px;
    gap: 30px;
  }
}
@media (min-width: 920px) {
  .our_mission-text {
    grid-template-columns: auto 35%;
  }
  .our_mission-text h4 {
    font-size: 5.7142857143vw;
  }
  .our_mission-text p {
    padding-bottom: 1.4em;
    font-size: 1.1428571429vw;
  }
}
.our_mission-images {
  position: relative;
  z-index: -1;
  margin-top: -70px;
  margin-left: -20px;
  margin-right: -20px;
}
@media (min-width: 920px) {
  .our_mission-images {
    margin-top: -5vw;
    margin-left: -7.8571428571vw;
    margin-right: -7.8571428571vw;
  }
}
.our_mission .swiper-wrapper {
  transition-timing-function: linear;
}
.our_mission .swiper-slide {
  width: 200px;
  height: 200px;
  border-radius: 4px;
  margin-right: 12px;
  overflow: hidden;
  opacity: 0.2;
}
@media (min-width: 920px) {
  .our_mission .swiper-slide {
    width: 21.4285714286vw;
    height: 21.4285714286vw;
    margin-right: 1.1428571429vw;
  }
}

/* 代表からのご挨拶 */
.top_message {
  position: relative;
  margin-top: 120px;
  padding-inline: 20px;
  padding-bottom: 70px;
}
@media (min-width: 920px) {
  .top_message {
    margin-top: 21.4285714286vw;
    padding-inline: 7.8571428571vw;
    padding-bottom: 14.2857142857vw;
    display: grid;
    grid-template-columns: 45% auto;
    gap: 17.8571428571vw;
  }
}
@media (max-width: 919px) {
  .top_message .catch_text {
    top: 55px;
    left: 10px;
    writing-mode: vertical-rl;
    font-feature-settings: "pkna";
  }
}
@media (min-width: 920px) {
  .top_message .catch_text {
    right: 0.3em;
    bottom: 5.7142857143vw;
  }
}
.top_message-text h4 {
  margin-bottom: 0.8em;
  font-size: 28px;
  line-height: 1.5;
}
.top_message-text p {
  display: grid;
  gap: 1em;
  line-height: 2;
}
@media (max-width: 919px) {
  .top_message-text h4 {
    padding-top: 210px;
  }
}
@media (min-width: 920px) {
  .top_message-text h4 {
    font-size: 2.8571428571vw;
  }
  .top_message-text p {
    font-size: 1.1428571429vw;
  }
}
.top_message-image img {
  border-radius: 4px;
}
.top_message-image figcaption {
  margin-top: 1.5em;
  text-align: right;
  font-size: 14px;
}
.top_message-image .name {
  font-size: 20px;
}
@media (max-width: 919px) {
  .top_message-image img {
    position: absolute;
    z-index: -1;
    top: 60px;
    right: 20px;
    width: 216px;
  }
}
@media (min-width: 920px) {
  .top_message-image figcaption {
    font-size: 1.1428571429vw;
  }
  .top_message-image .name {
    font-size: 1.7142857143vw;
  }
}

/* 会社概要 */
.overview {
  background-color: #ECECEC;
  border-top-left-radius: 40px;
  padding-inline: 20px;
  padding-top: 80px;
  color: #121212;
  position: relative;
}
@media (min-width: 920px) {
  .overview {
    border-top-left-radius: 5.7142857143vw;
    padding-inline: 7.8571428571vw;
    padding-block: 11.7142857143vw 4.5vw;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 16.7142857143vw;
  }
}
@media (max-width: 919px) {
  .overview .catch_text {
    right: 10px;
    top: 65px;
  }
}
@media (min-width: 920px) {
  .overview .catch_text {
    left: 6.7857142857vw;
    top: 18.4285714286vw;
    writing-mode: vertical-rl;
    font-feature-settings: "pkna";
  }
}
.overview-content dl {
  border-top: 1px solid #ccc;
}
.overview-content :is(dt, dd) {
  line-height: 1.5;
  font-size: 14px;
}
.overview-content dt {
  padding-top: 1.5em;
  padding-bottom: 0.5em;
  font-weight: 700;
}
.overview-content dd {
  padding-bottom: 1.5em;
  border-bottom: 1px solid #ccc;
}
@media (min-width: 920px) {
  .overview-content dl {
    display: grid;
    grid-template-columns: auto 1fr;
  }
  .overview-content :is(dt, dd) {
    padding-top: 1.6em;
    padding-bottom: 1.6em;
    font-size: 1.1428571429vw;
  }
  .overview-content dt {
    border-bottom: 1px solid #ccc;
    padding-right: 4em;
  }
}

/* アクセス */
.access {
  background-color: #ECECEC;
  padding-inline: 20px;
  padding-block: 80px;
  color: #121212;
  position: relative;
}
@media (min-width: 920px) {
  .access {
    padding-inline: 7.8571428571vw;
    padding-block: 9.2857142857vw 14.2857142857vw;
  }
}
@media (max-width: 919px) {
  .access .catch_text {
    right: 10px;
    top: 65px;
  }
}
@media (min-width: 920px) {
  .access .catch_text {
    right: 1.7857142857vw;
    top: 5vw;
  }
}
.access .gmap {
  position: relative;
  padding-top: 380px;
}
.access .gmap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
@media (min-width: 920px) {
  .access .gmap {
    aspect-ratio: 1180/460;
    padding-top: 0;
  }
}