@charset "UTF-8";
.ff-en {
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.mv {
  --slider-ratio: 477 / 616;
}

.message {
  color: #fff;
  background-color: #6D7A8B;
  padding: 53px 0 56px;
}
.message__contents {
  display: grid;
}
.message__body {
  display: grid;
  justify-content: center;
  align-content: center;
}
.message__txt {
  width: -moz-fit-content;
  width: fit-content;
  font-weight: 400;
  line-height: 2.5;
  margin-inline: auto;
}
.message__ttl {
  font-weight: 300;
  font-size: 2.2rem;
  letter-spacing: 0.02em;
  line-height: 1.5;
  margin-bottom: 40px;
}
.message__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden;
}

.technology {
  color: #fff;
  padding: 45px 0 90px;
  position: relative;
}
.technology__bg {
  position: absolute;
  inset: 0;
}
.technology__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden;
  -o-object-position: top;
  object-position: top;
}
.technology__contents {
  position: relative;
}
.technology__block {
  font-weight: 400;
}
.technology__block-lead {
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 500;
  font-size: 3rem;
  line-height: 1.5;
  text-align: left;
  color: #fff;
}
.technology__block-ttl {
  font-weight: 400;
  font-size: 2rem;
  line-height: 1.59;
}
.technology__block-txt {
  font-weight: 400;
}
.technology__block .is-note {
  font-size: 80%;
}
.technology__block-link {
  display: grid;
  grid-template-columns: auto 24px;
  align-items: center;
  gap: 16px;
  width: -moz-fit-content;
  width: fit-content;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #fff;
  background-color: #8E854D;
  border: none;
  border-radius: 3px;
  padding: 8px 20px;
}
.technology__block-link::after {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 2/1;
  background-color: #fff;
  -webkit-mask: url(/assets/img/common/icon_arrow_01.svg) no-repeat center/contain;
  mask: url(/assets/img/common/icon_arrow_01.svg) no-repeat center/contain;
}
.technology__block-link sup {
  vertical-align: baseline;
}

.products {
  color: #fff;
  background-color: #6D7A8B;
  padding: 66px 0 110px;
}
.products__txt {
  text-align: center;
  margin-inline: auto;
}
.products__lead {
  display: grid;
  grid-template-columns: auto auto auto;
  justify-content: center;
  gap: 1em;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.5;
  text-align: center;
}
.products__lead::before, .products__lead::after {
  content: "";
  width: 0.4em;
  height: 100%;
  border: 1px solid #fff;
}
.products__lead::before {
  border-right: none;
}
.products__lead::after {
  border-left: none;
}
.products__lead .is-txt {
  display: block;
  padding: 2px 0;
}
.products__tag {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.5rem;
  line-height: 1.4;
  text-align: center;
  color: #fff;
  border: 1px solid #fff;
  padding: 3px 12px 5px;
  margin-inline: auto;
}
.products__block {
  font-weight: 400;
}
.products__block-head {
  display: flex;
  justify-content: space-between;
  gap: 5px 8px;
  border-bottom: 1px solid #fff;
  padding-bottom: 8px;
  margin-bottom: 20px;
}
.products__block-ttl {
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 1.5rem;
  letter-spacing: 0.005em;
  line-height: 1.5;
}
.products__block-link {
  display: grid;
  grid-template-columns: auto 14px;
  align-items: center;
  gap: 3px;
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-style: italic;
  font-size: 1.2rem;
  line-height: 1.5;
  color: #fff;
}
.products__block-link::after {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 2/1;
  background-color: #fff;
  -webkit-mask: url(/assets/img/common/icon_arrow_01.svg) no-repeat center/contain;
  mask: url(/assets/img/common/icon_arrow_01.svg) no-repeat center/contain;
}
.products__block-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, max-content));
  justify-content: space-between;
  gap: 120px;
}
.products__block-list.is-col-3 {
  grid-template-columns: repeat(auto-fill, minmax(200px, max-content));
  gap: 80px 24px;
}
.products__block-list.is-col-3 .products__block-group {
  border-bottom: none;
  padding-bottom: 0;
}
.products__block-list.is-col-3 .products__block-en {
  font-size: 1.9rem;
}
.products__block-list.is-col-3 .products__block-price {
  margin-bottom: 12px;
}
.products__block-item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 20px;
}
.products__block-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden;
}
.products__block-cat {
  width: -moz-fit-content;
  width: fit-content;
  font-weight: 500;
  font-size: 1.3rem;
  line-height: 1.2;
  color: #f5f5f7;
  background-color: #004A70;
  border-radius: 4px;
  padding: 3px 8px;
}
.products__block-cat.is-color-01 {
  background-color: #1D6E80;
}
.products__block-group {
  border-bottom: 1px solid currentColor;
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.products__block-en {
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 500;
  font-size: 2rem;
  line-height: 1.25;
  margin-bottom: 5px;
}
.products__block-jp {
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.6;
}
.products__block-desc {
  font-weight: 500;
  font-size: 1.5rem;
  margin-bottom: 18px;
}
.products__block-price {
  margin-bottom: 24px;
}
.products__block-price .is-price {
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 300;
  font-size: 1.3rem;
  letter-spacing: 0.02em;
}
.products__block-price .is-tax {
  display: inline;
  font-size: 1.1rem;
  margin-left: -0.25em;
}
.products__block-btn {
  display: block;
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  font-style: italic;
  font-size: 1.4rem;
  line-height: 1.5;
  text-align: center;
  color: #fff;
  background-color: #8E854D;
  border-radius: 5px;
  padding: 4px 16px;
}

.gallery {
  --slider-ratio: 750 / 825;
}

.faq {
  color: #fff;
  padding: 50px 0 40px;
  background-color: #6D7A8B;
}
.faq .m-faq {
  border-color: #fff;
  margin-bottom: 40px;
}
.faq .m-faq__head {
  border-color: #fff;
}
.faq .m-faq__mark {
  color: #fff;
}
.faq .m-faq__icon::before, .faq .m-faq__icon::after {
  content: "";
  background-color: #fff;
}
.faq .m-faq__body-txt {
  color: #fff;
}
.faq__link {
  display: grid;
  grid-template-columns: auto 14px;
  align-items: center;
  gap: 5px;
  width: -moz-fit-content;
  width: fit-content;
  font-weight: 500;
  font-style: italic;
  font-size: 1.3rem;
  line-height: 1.5;
  color: #fff;
  margin-left: auto;
}
.faq__link::after {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 2/1;
  background-color: #fff;
  -webkit-mask: url(/assets/img/common/icon_arrow_01.svg) no-repeat center/contain;
  mask: url(/assets/img/common/icon_arrow_01.svg) no-repeat center/contain;
  margin-top: 2px;
}

.about {
  background-color: #eee;
  padding-top: 65px;
}
.about__block.is-block01 {
  position: relative;
}
.about__block.is-block01 .about__block-body {
  color: #fff;
  position: absolute;
}
.about__block.is-block01 .about__block-inr {
  display: grid;
}
.about__block.is-block02 {
  display: grid;
}
.about__block-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden;
}
.about__block-ttl01 {
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  font-size: 4rem;
  line-height: 1;
  margin-bottom: 18px;
}
.about__block-ttl02 {
  width: -moz-fit-content;
  width: fit-content;
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 500;
  font-size: 2.8rem;
  letter-spacing: 0.02em;
  line-height: 1;
  text-align: right;
  margin-bottom: 16px;
}
.about__block-ttl02 .is-small {
  font-size: 2.1rem;
}
.about__block-lead {
  font-weight: 500;
  font-size: 1.6rem;
  margin-bottom: 12px;
}
.about__block-txt {
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.7;
}
.about__block-txt sup {
  font-size: 50%;
}
.about__block-sub {
  display: flex;
  align-items: center;
  gap: 5px;
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  font-size: 1.2rem;
  letter-spacing: 0.02em;
  line-height: 1;
  color: #404040;
  margin-bottom: 16px;
}
.about__block-sub::after {
  content: "";
  display: block;
  width: 28px;
  height: 1px;
  background-color: currentColor;
}

.instagram {
  background-color: #eee;
  padding: 60px 0 90px;
}
.instagram__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.instagram__list:empty {
  aspect-ratio: 3/2;
}
.instagram__link {
  display: block;
  aspect-ratio: 3/4;
  overflow: hidden;
}
.instagram__img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden;
}

.bf {
  --_inner: 1164px;
  --_gutter: 6%;
  font-weight: 400;
}
.bf__head {
  display: grid;
  align-items: center;
  justify-content: center;
  height: 50px;
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 1.3rem;
  line-height: 1;
  text-align: center;
  background-color: #D3D1CD;
}
.bf__block01 {
  background: url(/assets/img/top/bg_modal_01_sp.jpg) no-repeat top center/cover;
}
.bf__block01-contents {
  display: grid;
  place-content: center;
  padding: 40px 20px;
}
.bf__block01-head {
  margin-bottom: 30px;
}
.bf__block01-head::after {
  content: "";
  display: block;
  width: 58px;
  height: 1px;
  background-color: currentColor;
  margin-top: 20px;
}
.bf__block01-lead {
  font-weight: 500;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-bottom: 8px;
}
.bf__block01-ttl {
  font-weight: 400;
  font-size: 3.4rem;
  letter-spacing: 0.12em;
  line-height: 1.2;
}
.bf__block01-subttl {
  font-weight: 500;
  font-size: 1.6rem;
  letter-spacing: 0.02em;
  line-height: 1.2;
  margin-bottom: 25px;
}
.bf__block01-subttl sup {
  display: inline-block;
  font-size: 50%;
}
.bf__block01-txt {
  line-height: 2;
}
.bf__block01-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden;
}
.bf__block02 {
  color: #fff;
  background: url(/assets/img/top/bg_modal_02_sp.jpg) no-repeat center/cover;
  padding: 45px 0 55px;
}
.bf__block02-inr {
  width: calc(100% - var(--_gutter) * 2);
  max-width: var(--_inner);
  margin-inline: auto;
}
.bf__block02-contents {
  display: grid;
  gap: 25px;
  margin-bottom: 40px;
}
.bf__block02-group {
  display: grid;
  justify-content: center;
}
.bf__block02-logo {
  display: grid;
  justify-content: end;
  padding: 5%;
}
.bf__block02-ttl {
  font-weight: 500;
  font-size: 1.7rem;
  letter-spacing: 0.02em;
  line-height: 1.5;
  margin-bottom: 12px;
}
.bf__block02-ttl sup {
  display: inline-block;
  font-size: 80%;
  transform: translateY(0.4em);
}
.bf__block02-subtxt {
  font-weight: 500;
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  margin-bottom: 12px;
}
.bf__block02-box {
  color: #000;
  background-color: rgba(255, 255, 255, 0.75);
  border-radius: 6px;
  padding: 30px 20px 25px;
}
.bf__block02-lead {
  display: grid;
  grid-template-columns: auto auto auto;
  justify-content: center;
  gap: 0.8em;
  line-height: 1.2;
  color: #213C53;
  margin-bottom: 30px;
}
.bf__block02-lead::before, .bf__block02-lead::after {
  content: "";
  width: 0.4em;
  height: 100%;
  border: 1px solid currentColor;
}
.bf__block02-lead::before {
  border-right: none;
}
.bf__block02-lead::after {
  border-left: none;
}
.bf__block02-lead > span {
  display: flex;
  justify-content: center;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.2em 0.8em;
  font-size: 1.3rem;
  letter-spacing: 0.02em;
}
.bf__block02-lead .is-en {
  font-family: "Roboto Condensed", "Zen Kaku Gothic New", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", 游ゴシック体, "Yu Gothic", YuGothic, メイリオ, Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
}
.bf__block02-row {
  display: grid;
  gap: 20px;
}
.bf__block02-row + .bf__block02-row {
  margin-top: 40px;
}
.bf__block02-img img {
  width: 100%;
}
.bf__block02-note01 {
  font-size: 1rem;
  letter-spacing: 0.02em;
  padding-left: 30px;
  margin-top: 6px;
}
.bf__block02-head {
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 1.5;
  color: #2F5071;
  margin-bottom: 6px;
}
.bf__block02-head.is-color-01 {
  color: #1D6E80;
}
.bf__block02-unit {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
}
.bf__block02-subttl {
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #004A70;
}
.bf__block02-subttl.is-color-01 {
  color: #1D6E80;
}
.bf__block02-subttl .is-large {
  font-weight: 500;
  font-size: 1.8rem;
}
.bf__block02-subttl sup {
  display: inline-block;
  font-size: 60%;
  transform: translateY(0.4em);
}
.bf__block02-subttl sup.is-note {
  vertical-align: text-top;
  font-size: 1rem;
  transition: revert;
}
.bf__block02-note02 {
  font-size: 1rem;
  text-align: right;
  white-space: nowrap;
  margin-top: 8px;
}
.bf__block02-txt {
  line-height: 2;
}
.bf__block02-btn {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.1;
  letter-spacing: 0.02em;
  color: #606060;
  background-color: rgba(255, 255, 255, 0.72);
  border: none;
  border-radius: 3px;
  padding: 4px 16px;
  margin: 35px auto 0;
  transition: opacity 0.3s ease;
  cursor: pointer;
}
@media screen and (min-width: 768px){
  .mv {
    --slider-ratio: 1280 / 616;
  }
  .message {
    padding: 124px 0 136px;
  }
  .message__contents {
    grid-template-columns: 1fr 1fr;
  }
  .message__body {
    grid-column: 2/3;
    padding: 30px 0 30px 15%;
  }
  .message__ttl {
    font-size: 3.6rem;
    margin-bottom: 65px;
  }
  .message__img:nth-child(2) {
    order: -1;
  }
  .message__img.is-wide {
    grid-column: 1/3;
  }
  .technology {
    padding: 50px 0 85px;
  }
  .technology__body {
    display: grid;
    justify-content: end;
  }
  .technology__block-lead {
    font-size: 3.6rem;
  }
  .technology__block-ttl {
    font-size: 2.2rem;
  }
  .technology__block-link {
    grid-template-columns: auto 28px;
    gap: 10px;
    font-size: 1.6rem;
    padding: 7px 12px 5px;
  }
  .products {
    padding: 145px 0 135px;
  }
  .products__lead {
    gap: 0.5em;
    line-height: 1.1;
    font-size: 2.4rem;
  }
  .products__lead::before, .products__lead::after {
    width: 0.25em;
  }
  .products__block-head {
    gap: 10px 16px;
    padding-bottom: 10px;
    margin-bottom: 30px;
  }
  .products__block-ttl {
    font-size: 2.4rem;
    letter-spacing: 0.01em;
  }
  .products__block-link {
    grid-template-columns: auto 28px;
    gap: 6px;
    font-size: 1.9rem;
  }
  .products__block-list {
    grid-template-columns: repeat(auto-fill, minmax(360px, max-content));
    gap: 40px;
  }
  .products__block-list.is-col-3 {
    grid-template-columns: repeat(auto-fill, minmax(240px, max-content));
    gap: 30px;
  }
  .products__block-list.is-col-3 .products__block-en {
    font-size: 2.2rem;
  }
  .products__block-list.is-col-3 .products__block-jp {
    min-height: 62px;
  }
  .products__block-item {
    gap: 30px;
  }
  .products__block-group {
    margin-bottom: 20px;
  }
  .products__block-en {
    font-size: 3.2rem;
  }
  .products__block-jp {
    font-size: 1.8rem;
  }
  .products__block-desc {
    font-size: 2rem;
    margin-bottom: 30px;
  }
  .products__block-price {
    margin-bottom: 30px;
  }
  .products__block-price .is-price {
    font-size: 2rem;
  }
  .products__block-price .is-tax {
    font-size: 1.6rem;
  }
  .products__block-btn {
    font-size: 1.9rem;
  }
  .gallery {
    --slider-ratio: 1280 / 600;
  }
  .faq {
    padding: 100px 0 80px;
  }
  .faq .m-faq {
    margin-bottom: 60px;
  }
  .faq__link {
    grid-template-columns: auto 28px;
    gap: 10px;
    font-size: 1.9rem;
  }
  .faq__link::after {
    margin-top: 4px;
  }
  .about {
    padding-top: 108px;
  }
  .about__block.is-block01 {
    max-height: 880px;
    overflow: hidden;
  }
  .about__block.is-block01 .about__block-body {
    display: grid;
    align-content: center;
    width: 100%;
    max-width: 1080px;
    height: 100%;
    padding: 0 20px;
    top: 0;
    left: 50%;
    z-index: 1;
  }
  .about__block.is-block01 .about__block-inr {
    justify-items: start;
  }
  .about__block.is-block02 {
    grid-template-columns: 1fr 1fr;
  }
  .about__block.is-block02 .about__block-body {
    display: grid;
    justify-items: center;
    align-content: center;
    padding: 24px;
  }
  .about__block.is-block02 .about__block-inr {
    max-width: 455px;
    margin-inline: auto;
  }
  .about__block-ttl01 {
    font-size: 6.7rem;
    margin-bottom: 51px;
  }
  .about__block-ttl02 {
    font-size: 4rem;
    margin-bottom: 7px;
  }
  .about__block-ttl02 .is-small {
    font-size: 2.7rem;
  }
  .about__block-lead {
    font-size: 2.8rem;
    margin-bottom: 20px;
  }
  .about__block-txt {
    font-size: 1.7rem;
    line-height: 2.235;
  }
  .about__block-sub {
    margin-bottom: 23px;
  }
  .instagram {
    padding: 127px 0 180px;
  }
  .instagram__list {
    gap: 20px;
  }
  .bf {
    --_gutter: 40px;
  }
  .bf__head {
    height: 90px;
    font-size: 2.5rem;
  }
  .bf__block01 {
    background-image: url(/assets/img/top/bg_modal_01_pc.jpg);
  }
  .bf__block01-inr {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .bf__block01-head {
    grid-column: 1;
    margin-bottom: min(55px, 5.5vw);
  }
  .bf__block01-head::after {
    margin-top: min(26px, 2.6vw);
  }
  .bf__block01-lead {
    font-size: min(2.2rem, 2.2vw);
    margin-bottom: min(16px, 1.6vw);
  }
  .bf__block01-ttl {
    font-size: min(6.2rem, 5.4vw);
  }
  .bf__block01-body {
    grid-column: 1;
  }
  .bf__block01-subttl {
    font-size: min(2.5rem, 2.5vw);
    margin-bottom: min(30px, 3vw);
  }
  .bf__block01-txt {
    font-size: min(1.6rem, 1.6vw);
  }
  .bf__block02 {
    background-image: url(/assets/img/top/bg_modal_02_pc.jpg);
    padding: 130px 0 80px;
  }
  .bf__block02-contents {
    grid-template-columns: 1fr 1.6fr;
    align-items: center;
    gap: 40px;
    width: 100%;
    margin-bottom: min(120px, 10vw);
    margin-inline: auto;
  }
  .bf__block02-ttl {
    font-size: min(2.8rem, 2.4vw);
    margin-bottom: 32px;
  }
  .bf__block02-subtxt {
    max-width: 570px;
    font-size: min(1.8rem, 1.8vw);
  }
  .bf__block02-box {
    padding: 60px 0;
  }
  .bf__block02-lead {
    margin-bottom: 45px;
  }
  .bf__block02-lead > span {
    font-size: 2.2rem;
  }
  .bf__block02-lead .is-en {
    font-size: 2.1rem;
  }
  .bf__block02-row {
    grid-template-columns: 1.3fr 1fr;
    align-items: start;
    gap: min(50px, 5vw);
  }
  .bf__block02-row + .bf__block02-row {
    margin-top: 80px;
  }
  .bf__block02-body {
    padding-right: 57px;
  }
  .bf__block02-note01 {
    font-size: 1.1rem;
    margin-top: 10px;
  }
  .bf__block02-head {
    font-size: min(2.4rem, 2.4vw);
    margin-bottom: 10px;
  }
  .bf__block02-unit {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    margin-bottom: 20px;
  }
  .bf__block02-subttl {
    font-size: min(1.9rem, 1.9vw);
  }
  .bf__block02-subttl .is-large {
    font-size: 2.5rem;
  }
  .bf__block02-subttl sup.is-note {
    font-size: 1.2rem;
  }
  .bf__block02-note02 {
    font-size: 1.2rem;
  }
  .bf__block02-btn {
    font-size: 2rem;
    padding: 6px 60px;
    margin-top: 83px;
  }
}
@media screen and (max-width: 767px){
  .message__body {
    margin-bottom: 42px;
  }
  .technology__body {
    margin-top: 325px;
  }
  .technology__block-txt {
    font-size: 1.4rem;
  }
  .technology__block-link {
    margin-inline: auto;
  }
  .products__txt {
    max-width: 525px;
  }
  .about__block.is-block01 .about__block-body {
    inset: 0;
    padding-top: 121.8666666667cqw;
  }
  .about__block.is-block01 .about__block-inr {
    place-content: center;
    height: 100%;
  }
  .about__block.is-block02 .about__block-body {
    order: -1;
  }
  .about__block-inr {
    padding: 50px 6%;
  }
  .bf__block01-head {
    text-align: center;
  }
  .bf__block01-head::after {
    margin-inline: auto;
  }
  .bf__block02-contents {
    justify-items: center;
  }
  .bf__block02-logo {
    width: 70%;
  }
  .bf__block02-ttl {
    text-align: center;
  }
  .bf__block02-box {
    margin-inline: -10px;
  }
  .bf__block02-head {
    text-align: center;
  }
  .bf__block02-subttl {
    text-align: center;
  }
}