/* ==============================================
社長メッセージ
============================================== */

.section_message01_img {
  display: block;
  margin-bottom: 42px;
}

.section_message01_img img {
  width: 100%;
}

.section_message01_text {
  line-height: 2.2;
}

.section_message01_name {
  font-size: 2rem;
  font-weight: 700;
  text-align: right;
}

@media (max-width : 767px) {

  .section_message01_img {
    margin-bottom: calc(30 / 400 * 100vw);
  }

  .section_message01_name {
    font-size: calc(18 / 400 * 100vw);
  }
}

/* ==============================================
拠点
============================================== */

.branch_list {
  display: flex;
  flex-direction: column;
  gap: 69px;
  margin-bottom: 60px;
}

.branch_item {
  display: grid;
  grid-template-columns: 50% auto;
  grid-template-rows: auto auto;
  gap: 0 48px;
}

.branch_item_title {
  grid-row: 1/2;
  grid-column: 1/3;
}

.branch_item_map {
  grid-row: 2/3;
  grid-column: 1/2;
  max-width: 600px;
  width: 100%;
  aspect-ratio: 600/360;
  border-radius: 20px;
  overflow: hidden;
}

.branch_item_map iframe {
  width: 100%;
  height: 100%;
}

.branch_item_address {
  grid-row: 2/3;
  grid-column: 2/3;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.branch_item_address_text {
  color: #2f2f2f;
  font-size: 1.6rem;
  font-weight: 500;
}

.branch_item_address_icon {
  padding-left: 32px;
  position: relative;
}

.branch_item_address_icon::before {
  content: '';
  width: 26px;
  aspect-ratio: 1;
  border-radius: 50%;
  position: absolute;
  top: 3px;
  left: 0;
}

.branch_item_address_icon_tel::before {
  background: url(../img/common/tel_icon.svg) no-repeat center center / contain var(--main-color);
  background-size: 14px;
}

.branch_item_address_icon_fax::before {
  background: url(../img/common/fax_icon.svg) no-repeat center center / contain var(--main-color);
  background-size: 14px;
}

.branch_item_address_icon_tel a,
.branch_item_address_icon_fax a {
  color: inherit;
  pointer-events: none;
}

@media (max-width : 767px) {

  .branch_list {
    gap: calc(69 / 400 * 100vw);
    margin-bottom: calc(60 / 400 * 100vw);
  }

  .branch_item {
    grid-template-columns: 1fr;
  }

  .branch_item_title {
    grid-column: auto;
    grid-row: auto;
  }

  .branch_item_map {
    grid-column: auto;
    grid-row: auto;
    max-width: 100%;
    border-radius: calc(20 / 400 * 100vw);
    margin-top: calc(20 / 400 * 100vw);
  }

  .branch_item_address {
    grid-column: auto;
    grid-row: auto;
    gap: calc(12 / 400 * 100vw);
  }

  .branch_item_address_text {
    font-size: calc(16 / 400 * 100vw);
  }

  .branch_item_address_icon {
    padding-left: calc(32 / 400 * 100vw);
  }

  .branch_item_address_icon::before {
    width: calc(26 / 400 * 100vw);
    top: calc(3 / 400 * 100vw);
  }

  .branch_item_address_icon_tel::before {
    background-size: calc(14 / 400 * 100vw);
  }

  .branch_item_address_icon_fax::before {
    background-size: calc(14 / 400 * 100vw);
  }

  .branch_item_address_icon_tel a {
    pointer-events: auto;
  }
}

/* ==============================================
役員紹介・組織図
============================================== */

.oc_img {
  max-width: 717px;
  width: 100%;
  margin-inline: auto;
}

.page-en .oc_img {
  max-width: 1184px;
}

/* ==============================================
受賞歴・認証
============================================== */

.awards_list_wrap:not(:last-child) {
  margin-bottom: 60px;
}

.awards_list {
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.awards_item {
  display: flex;
  align-items: flex-start;
  gap: 28px;
}

.awards_item_img_area {
  max-width: 260px;
  width: 100%;
  aspect-ratio: 260/224;
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.awards_item_text_area {
  flex: 1;
}

.awards_item_text_area p {
  font-size: 1.6rem;
  color: #2f2f2f;
}

@media (max-width : 767px) {

  .awards_list_wrap:not(:last-child) {
    margin-bottom: calc(60 / 400 * 100vw);
  }

  .awards_list {
    gap: calc(26 / 400 * 100vw);
  }

  .awards_item {
    flex-direction: column;
    gap: calc(28 / 400 * 100vw);
  }

  .awards_item_img_area {
    max-width: 100%;
    aspect-ratio: 260 / 160;
    border-radius: calc(20 / 400 * 100vw);
  }

  .awards_item_img_area img {
    max-width: min(100%, calc(228 / 400 * 100vw));
    max-height: min(100%, calc(182 / 400 * 100vw));
    width: auto;
    height: auto;
  }

  .awards_item_text_area p {
    font-size: calc(16 / 400 * 100vw);
  }
}