@charset "UTF-8";
/* ========== ========== ==========
個別部
========== ========== ========== */
.realize {
  position: relative;
  padding-bottom: var(--margin-bottom1);
  margin-bottom: var(--margin-bottom1);
  border-bottom: solid 1px #AAA;
  overflow: hidden;
}
.realize_body {
  position: relative;
  margin-bottom: var(--margin-bottom1);
}
.realize_title {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(0, -50%);
  z-index: 10;
}
@media screen and (max-width: 768px) {
  .realize_title {
    top: initial;
    transform: none;
    bottom: 5px;
    left: 5px;
  }
}
.realize_title_row {
  display: block;
  background-color: white;
  font-weight: bold;
  letter-spacing: 0.05rem;
  line-height: 1.2;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.realize_title_row:nth-of-type(1) {
  font-size: clamp(20px, calc(36 / var(--base-width-pc) * 100vw), 36px);
  margin-bottom: 13px;
}
.realize_title_row:nth-of-type(2) {
  font-size: clamp(30px, calc(62 / var(--base-width-pc) * 100vw), 62px);
}
.realize_title_row_span1 {
  font-size: clamp(20px, calc(33 / var(--base-width-pc) * 100vw), 33px);
}
.realize_image {
  display: block;
  min-height: 250px;
  -o-object-position: top;
     object-position: top;
  width: 100%;
}
.realize_imageWrap {
  width: clamp(509px, calc(1018 / var(--base-width-pc) * 100vw), 1018px);
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  .realize_imageWrap {
    width: 100%;
  }
}
.realize_bottom_text {
  font-size: clamp(20px, calc(36 / var(--base-width-pc) * 100vw), 36px);
  font-weight: bold;
  line-height: 1.6666666667;
  letter-spacing: 0.03rem;
  text-align: center;
  margin-bottom: clamp(26.67px, calc(40 / var(--base-width-pc) * 100vw), 40px);
}
.realize_bottom_arrow {
  display: block;
  margin-inline: auto;
}
.realize_back {
  position: absolute;
  z-index: -1;
  display: block;
  left: 0;
  bottom: 0;
  transform: translate(-11%, 13%);
  width: clamp(166.67px, calc(500 / var(--base-width-pc) * 100vw), 500px);
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.realize_back path {
  fill: #EEE;
}

.service {
  padding-bottom: var(--margin-bottom1);
  margin-bottom: var(--margin-bottom1);
  border-bottom: solid 1px #AAA;
}
.service_li {
  display: flex;
  position: relative;
  counter-increment: number;
}
.service_li:where(:nth-of-type(2n-1)) {
  flex-direction: row-reverse;
}
.service_li:not(:last-of-type) {
  margin-bottom: 90px;
}
@media screen and (max-width: 768px) {
  .service_li {
    flex-direction: column;
  }
}
.service_li_image {
  width: 42.2727272727%;
  aspect-ratio: 530/500;
  -o-object-fit: contain;
     object-fit: contain;
  transform: translate(-7.5%, 0) scale(1.15);
  max-width: 460px;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .service_li_image {
    width: 100%;
    transform: none;
    flex-shrink: initial;
    max-width: initial;
  }
}
@media screen and (min-width: 769px) {
  .service_li:nth-of-type(2n-1) .service_li_image {
    transform: translate(7.5%, 0) scale(1.15);
  }
}
.service_li_texts {
  border: solid 1px #AAA;
  width: 100%;
  height: 100%;
  padding-block: clamp(32px, calc(64 / var(--base-width-pc) * 100vw), 64px);
  padding-inline: clamp(30px, calc(60 / var(--base-width-pc) * 100vw), 60px) clamp(60px, calc(120 / var(--base-width-pc) * 100vw), 120px);
  min-height: clamp(390px, calc(585 / var(--base-width-pc) * 100vw), 585px);
}
@media screen and (max-width: 768px) {
  .service_li_texts {
    padding-inline: 20px;
    min-height: initial;
  }
}
@media screen and (min-width: 769px) {
  .service_li:nth-of-type(2n-1) .service_li_texts {
    padding-inline: clamp(60px, calc(120 / var(--base-width-pc) * 100vw), 120px) clamp(30px, calc(60 / var(--base-width-pc) * 100vw), 60px);
  }
}
.service_li_title {
  font-size: clamp(24px, calc(32 / var(--base-width-pc) * 100vw), 32px);
  font-weight: bold;
  letter-spacing: 0.03rem;
}
.service_li_titleWrap {
  display: flex;
  margin-bottom: clamp(31.33px, calc(47 / var(--base-width-pc) * 100vw), 47px);
}
.service_li_titleWrap::before {
  content: "0" counter(number);
  margin-top: clamp(2px, calc(4 / var(--base-width-pc) * 100vw), 4px);
  font-size: clamp(22px, calc(30 / var(--base-width-pc) * 100vw), 30px);
  font-family: var(--font-sub1);
  margin-right: clamp(16px, calc(24 / var(--base-width-pc) * 100vw), 24px);
}
.service_li_title_en {
  display: flex;
  color: #AAA;
  font-size: clamp(14px, calc(16 / var(--base-width-pc) * 100vw), 16px);
  font-family: var(--font-sub1);
}
.service_li_text1 {
  font-size: clamp(20px, calc(28 / var(--base-width-pc) * 100vw), 28px);
  font-weight: bold;
  line-height: 1.5714285714;
  letter-spacing: 0.03rem;
  margin-bottom: 20px;
}
.service_li_text2 {
  font-size: 16px;
  line-height: 2;
  margin-bottom: clamp(40px, calc(60 / var(--base-width-pc) * 100vw), 60px);
}
@media screen and (min-width: 769px) {
  .service_li .btns {
    justify-content: flex-start;
  }
}

.customerVoice {
  padding-bottom: var(--margin-bottom1);
  margin-bottom: var(--margin-bottom1);
  border-bottom: solid 1px #AAA;
}

.pService_partner {
  padding-bottom: var(--margin-bottom1);
  margin-bottom: var(--margin-bottom1);
  border-bottom: solid 1px #AAA;
}
.pService_partner .sectionWrap {
  display: flex;
  gap: min(calc(108 / var(--base-width-pc) * 100vw), 108px);
}
@media screen and (max-width: 768px) {
  .pService_partner .sectionWrap {
    flex-direction: column-reverse;
    text-align: center;
  }
}
@media screen and (max-width: 768px) {
  .pService_partner .sectionTitle {
    justify-content: center;
  }
}
.pService_partner_image {
  width: 45.4545454545%;
  -o-object-fit: contain;
     object-fit: contain;
  flex-shrink: 0;
  transition: all 0.3s;
}
@media screen and (max-width: 768px) {
  .pService_partner_image {
    width: 100%;
    max-width: 450px;
    margin-inline: auto;
  }
}
.pService_partner:has(.btn:hover) .pService_partner_image {
  transform: scale(1.05);
}
.pService_partner_text1 {
  font-size: clamp(20px, calc(28 / var(--base-width-pc) * 100vw), 28px);
  font-weight: bold;
  line-height: 1.5714285714;
  letter-spacing: 0.03rem;
  margin-bottom: 20px;
}
.pService_partner_text2 {
  font-size: 16px;
  line-height: 2;
  margin-bottom: clamp(30px, calc(60 / var(--base-width-pc) * 100vw), 60px);
}
@media screen and (min-width: 769px) {
  .pService_partner .btns {
    justify-content: flex-start;
  }
}

/* 個別部ここまで
---------- ---------- */