@charset "UTF-8";
.mv {
  position: relative;
  padding-block-end: clamp(4rem, 3.55rem + 1.94vw, 5rem);
  background-color: #d3d3d3;
}
.mv__inner {
  position: relative;
  z-index: 2;
}
.mv__bg {
  position: absolute;
  bottom: -29px;
}
.mv__flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  margin-right: calc(50% - 50vw);
  gap: 1.5rem;
  margin-left: calc(50% - 50vw);
  position: relative;
}
.mv__img {
  justify-self: end;
}
.mv__img img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  /* display: none; */
}
.mv__ttl {
  position: absolute;
  top: 50%;
  left: 10%;
  transform: translate(0, -50%);
  color: #fff;
}
@media screen and (max-width: 768px) {
  .mv__ttl {
    position: none;
  }
}
.mv__ttl span {
  display: block;
  text-align: center;
  margin-block-start: -5.5rem;
  font-size: clamp(1.5rem, 1.05rem + 1.94vw, 2.5rem);
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .mv__ttl span {
    position: absolute;
    margin-block-start: 1.5rem;
    width: 100%;
    white-space: nowrap;
  }
}

.top-strength {
  position: relative;
  padding-block-start: clamp(5rem, 4.09rem + 3.88vw, 7rem);
  padding-block-end: clamp(7.5rem, 1.14rem + 27.15vw, 21.5rem);
}
.top-strength__ttl {
  color: #0c719f;
  font-size: clamp(5rem, 2.73rem + 9.7vw, 10rem);
  white-space: nowrap;
  writing-mode: vertical-rl;
  position: absolute;
  left: 0;
  opacity: 0.2;
  top: 2rem;
}
@media screen and (max-width: 768px) {
  .top-strength__ttl {
    opacity: 0.2;
  }
}
.top-strength__inner {
  position: relative;
}
.top-strength__flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: nowrap;
  margin-block-end: clamp(2.5rem, 0.23rem + 9.7vw, 7.5rem);
}
@media screen and (max-width: 768px) {
  .top-strength__flex {
    flex-direction: column;
  }
}
.top-strength__left {
  flex-basis: 55%;
}
@media screen and (max-width: 768px) {
  .top-strength__left {
    margin-block-end: 1.5rem;
  }
}
.top-strength__right {
  flex-basis: 40%;
}
.top-strength__cp {
  font-size: clamp(1.125rem, 0.84rem + 1.21vw, 1.75rem);
  letter-spacing: normal;
  border-left: 4px solid #0c719f;
  padding-inline-start: 1.125rem;
  margin-block-end: clamp(1.5rem, 0.82rem + 2.91vw, 3rem);
}
.top-strength__txt {
  padding-inline-start: 1.5rem;
}
.top-strength__btn {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline-start: auto;
}
@media screen and (max-width: 768px) {
  .top-strength__btn {
    margin-inline: auto;
  }
}

.top-service {
  padding-block-start: clamp(4rem, 2.86rem + 4.85vw, 6.5rem);
  padding-block-end: clamp(4.5rem, 3.36rem + 4.85vw, 7rem);
  background-color: #d3d3d3;
}
.top-service__flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: nowrap;
  margin-block-end: clamp(3rem, 2.55rem + 1.94vw, 4rem);
}
@media screen and (max-width: 768px) {
  .top-service__flex {
    flex-direction: column;
  }
}
.top-service__img {
  flex-basis: 48%;
}
@media screen and (max-width: 768px) {
  .top-service__img {
    margin-block-end: 1.5rem;
  }
}
.top-service__box {
  flex-basis: 48%;
}
.top-service__h3 {
  font-size: clamp(1.125rem, 0.84rem + 1.21vw, 1.75rem);
  margin-block-end: clamp(1.125rem, 0.05rem + 4.61vw, 3.5rem);
}
.top-service__txt {
  max-width: 760px;
  margin-inline: auto;
  padding-block-start: clamp(2rem, 1.09rem + 3.88vw, 4rem);
  margin-block-end: clamp(2rem, 0.86rem + 4.85vw, 4.5rem);
}
.top-service__btn {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

.top-works {
  padding-block-start: clamp(4rem, 2.86rem + 4.85vw, 6.5rem);
  padding-block-end: clamp(4.5rem, 3.36rem + 4.85vw, 7rem);
}
.top-works__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* grid-template-rows: repeat(3, 1fr); */
  gap: 0.75rem;
}
.top-works__grid.sub-works {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
}
.top-works .center {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  border: 2px solid #333333;
}
.top-works__h3 {
  font-size: clamp(1.125rem, 0.84rem + 1.21vw, 1.75rem);
}

.top-company {
  padding-block-start: clamp(4rem, 2.86rem + 4.85vw, 6.5rem);
  padding-block-end: clamp(4.5rem, 3.36rem + 4.85vw, 7rem);
}
.top-company__flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
}
@media screen and (max-width: 768px) {
  .top-company__flex {
    flex-direction: column;
  }
}
.top-company__box {
  flex-basis: 50%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: nowrap;
  flex-direction: column;
  gap: 1.5rem;
  aspect-ratio: 1;
}
@media screen and (max-width: 768px) {
  .top-company__box {
    aspect-ratio: unset;
    margin-block-end: 1.5rem;
    align-items: center;
  }
}
.top-company__ttl {
  margin-block-end: 0;
}
.top-company__txt {
  font-size: 1.0625rem;
  line-height: 2.3529411765;
}
@media screen and (max-width: 768px) {
  .top-company__txt {
    font-size: 0.9375rem;
    line-height: 1.8;
  }
}
.top-company__map {
  flex-basis: 50%;
  width: 100%;
}
.top-company__map iframe {
  width: min(100%, 600px);
  aspect-ratio: 1;
}

.sub-mv {
  padding-block-end: 0;
  background-color: #ffffff;
}
.sub-mv__inner {
  position: relative;
}
.sub-mv__flex {
  padding-block: 6rem;
}
@media screen and (max-width: 768px) {
  .sub-mv__flex {
    padding-block: 3rem;
  }
}
.sub-mv__ttl {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(0, -50%);
  font-size: clamp(2rem, 1.83rem + 0.73vw, 2.375rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.75;
  z-index: 3;
}
.sub-mv__ttl .ja {
  position: relative;
  z-index: 4;
}
.sub-mv__ttl .en {
  color: #0c719f;
  font-size: clamp(3.5rem, 2.72rem + 3.31vw, 5rem);
  position: absolute;
  left: 0;
  top: 50%;
  opacity: 0.5;
  text-transform: uppercase;
}
.sub-mv__img {
  position: relative;
  height: 30rem;
  width: 75vw;
  margin: 0 0 0 25%;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .sub-mv__img {
    height: 15rem;
  }
}
.sub-mv__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.service {
  padding-block: clamp(4.5rem, 3.36rem + 4.85vw, 7rem);
}
.service__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(370px, 1fr));
  gap: 2.5rem;
}
@media screen and (max-width: 768px) {
  .service__grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}
.service__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 1.5rem;
  background-color: #0c719f;
  padding: 2rem;
  color: #ffffff;
  filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
}
.service__img {
  width: 100px;
  filter: brightness(0) invert(1);
}
@media screen and (max-width: 768px) {
  .service__img {
    width: 80px;
  }
}
.service__h3 {
  font-size: 1.25rem;
}

.reason {
  padding-block: clamp(4.5rem, 3.36rem + 4.85vw, 7rem);
}
.reason__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(370px, 1fr));
  gap: 4.5rem 2.5rem;
}
@media screen and (max-width: 768px) {
  .reason__grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}
.reason__h3 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  font-size: 1.125rem;
  margin-bottom: 1.5rem;
  font-weight: 700;
  border-bottom: 1px solid #0c719f;
  position: relative;
}
.reason__h3::after {
  position: absolute;
  content: "";
  right: 0;
  bottom: -1px;
  height: 1px;
  width: 20px;
  background-color: #0c719f;
  transform: rotate(45deg);
  transform-origin: right;
}
.reason__h3 span {
  background-color: #0c719f;
  color: #ffffff;
  padding-inline: 0.5rem;
  margin-inline-end: 1.125rem;
}
.flow {
  padding-block: clamp(4.5rem, 3.36rem + 4.85vw, 7rem);
}
.flow__content {
  max-width: 830px;
  margin-left: auto;
  margin-right: auto;
}
.flow__list {
  border-left: 8px solid #8fb2bb;
}
.flow__item {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.375rem 0.875rem;
  margin-bottom: 1.75rem;
}
.flow__num {
  grid-area: 1/1/2/2;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
}
.flow__num span {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  width: clamp(2.1875rem, 1.8rem + 1.66vw, 2.9375rem);
  height: clamp(2.1875rem, 1.8rem + 1.66vw, 2.9375rem);
  font-family: "Zen Kaku Gothic New", serif;
  font-weight: 300;
  font-style: normal;
  font-size: clamp(1.25rem, 0.93rem + 1.38vw, 1.875rem);
  line-height: 1;
  color: #ffffff;
  background-color: #0c719f;
}
.flow__num::before {
  content: "";
  width: 27px;
  height: 3px;
  background-color: #8fb2bb;
}
.flow__h4 {
  grid-area: 1/2/2/3;
  font-family: "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  font-weight: bold;
  font-style: normal;
  letter-spacing: 0px;
  color: #0c719f;
  position: relative;
  font-size: 1.125rem;
}
@media screen and (max-width: 768px) {
  .flow__h4 {
    font-size: 1rem;
  }
}
.flow__txt {
  grid-area: 2/2/3/3;
  font-family: "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 0.9375rem;
  line-height: 1.7142857143;
  letter-spacing: 0px;
}
@media screen and (max-width: 768px) {
  .flow__txt {
    font-size: 0.8125rem;
    line-height: 24/13 21;
  }
}

.importance {
  padding-block: clamp(4.5rem, 3.36rem + 4.85vw, 7rem);
}
.importance__flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  gap: 3.5rem;
  margin-bottom: 3.5rem;
}
@media screen and (max-width: 768px) {
  .importance__flex {
    flex-direction: column;
  }
}
@media screen and (max-width: 768px) {
  .importance__flex {
    gap: 1.5rem;
  }
}
.importance__flex:nth-child(odd) {
  flex-direction: row-reverse;
}
@media screen and (max-width: 768px) {
  .importance__flex:nth-child(odd) {
    flex-direction: column;
  }
}
.importance__img {
  flex-basis: 50%;
}
.importance__box {
  flex-basis: 50%;
}
.importance__h3 {
  font-size: clamp(2rem, 1.22rem + 3.31vw, 3.5rem);
  margin-bottom: 1.5rem;
  font-weight: 700;
  position: relative;
  -webkit-text-stroke: 1px #f77f00;
  color: rgba(0, 0, 0, 0);
}
@media screen and (max-width: 768px) {
  .importance__h3 {
    margin-bottom: 0.0625rem;
  }
}
.importance__h3 span {
  font-size: 1.125rem;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  color: #0c719f;
  -webkit-text-stroke: #0c719f;
  padding-inline-start: 0.5rem;
}

.company {
  padding-block: clamp(4.5rem, 3.36rem + 4.85vw, 7rem);
}
.company__tbl {
  width: 100%;
}
.company__tbl th,
.company__tbl td {
  border: 1px solid #d3d3d3;
  padding-block: 1rem;
  padding-inline: 1.25rem;
}
.company__tbl th {
  background-color: #bbb;
}

@media screen and (max-width: 768px) {
  .top-works__grid.archive {
    grid-template-columns: repeat(2, 1fr);
  }
}

.pagination > ul {
  margin-inline: auto;
  margin-block-start: 3.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}
.pagination a,
.pagination span {
  position: relative;
  font-size: 1.25rem;
  background-color: hsl(0, 0%, 100%);
  border: 1px solid #0c719f;
  width: 44px;
  height: 44px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  color: #0c719f;
}
@media screen and (max-width: 768px) {
  .pagination a,
  .pagination span {
    font-size: 0.8125rem;
  }
}
.pagination a:hover,
.pagination span:hover {
  color: hsl(0, 0%, 100%);
  background-color: #0c719f;
}
.pagination .current {
  color: hsl(0, 0%, 100%);
  background-color: #0c719f;
}
.pagination .disabled a {
  width: -moz-fit-content;
  width: fit-content;
  padding-inline: 0.5em;
}

.top-blog__ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: 3.75rem;
}
@media screen and (max-width: 768px) {
  .top-blog__ul {
    grid-template-columns: 1fr;
    margin-block-end: 2.5rem;
  }
}
.top-blog__ul > li {
  overflow: hidden;
  background-color: hsl(0, 0%, 100%);
  padding-block-end: 1.5rem;
  filter: drop-shadow(0px 0px 6px rgba(0, 0, 0, 0.2));
}
.top-blog__ul > li > img {
  display: block;
  width: 100%;
  margin-block-end: 1.5rem;
}
.top-blog__ul > li time {
  padding-inline: 3.125rem;
}
.top-blog__ul > li h3 {
  padding-inline: 3.125rem;
}
.top-blog__ul > li > div {
  padding-inline: 3.125rem;
}
