/* ==========================================================================
   1. メインビジュアルエリア (.main_visual)
   ========================================================================== */
.main_visual .main_visual__inner {
  position: relative;
}

.main_visual .main_visual__inner h2 {
  position: relative;
  z-index: 1;
  font-size: clamp(20px, calc(20px + 32 * ((var(--vw) * 100) - 320px) / 880), 52px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.1em;
  width: fit-content;
  margin-top: -0.76em;
  margin-bottom: 0;
  padding: 0.76em 1.73em 0 0;
  background-color: #fff;
  border-radius: 0 0.38em 0 0;
}

.main_visual .main_visual__inner h2 span {
  display: block;
  color: transparent;
  background-image: linear-gradient(45deg, #187042 0%, #7FBF65 100%);
  -webkit-background-clip: text;
  opacity: 0;
  -webkit-transform: translateY(15%);
  -moz-transform: translateY(15%);
  -ms-transform: translateY(15%);
  -o-transform: translateY(15%);
  transform: translateY(15%);
  -webkit-transition: 0.8s ease-in-out;
  -moz-transition: 0.8s ease-in-out;
  -ms-transition: 0.8s ease-in-out;
  -o-transition: 0.8s ease-in-out;
  transition: 0.8s ease-in-out;
}

@media screen and (min-width: 980px) {
  .main_visual .main_visual__inner h2 {
    position: absolute;
    bottom: 0;
    left: min(2.92%, 56px);
  }
}

.main_visual .main_visual__inner .main_visual__img {
  width: 83.07%;
  max-height: 600px;
  margin-right: calc(((var(--vw) * 50) - 50%) * -1);
  margin-left: auto;
  aspect-ratio: 16 / 9;
}

.main_visual .main_visual__inner .main_visual__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right min(1.886%, 20px);
}

/* Swiper プログレスバー */
.main_visual .main_visual__inner .main_visual__img .swiper-progressbar {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 5px;
  background-color: rgba(255, 255, 255, 0.8);
  overflow: hidden;
}

.main_visual .main_visual__inner .main_visual__img .swiper-progressbar span {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  display: inline-block;
  width: 100%;
  background-color: #019742;
  -webkit-transform: scaleX(0);
  -moz-transform: scaleX(0);
  -ms-transform: scaleX(0);
  -o-transform: scaleX(0);
  transform: scaleX(0);
  transform-origin: left center;
  transition-timing-function: linear;
}

/* アニメーション用クラス */
.main_visual.is-animated .main_visual__inner h2 span {
  opacity: 1.0;
  -webkit-transform: translateY(0);
  -moz-transform: translateY(0);
  -ms-transform: translateY(0);
  -o-transform: translateY(0);
  transform: translateY(0);
}

.main_visual.is-animated .main_visual__inner h2 span:nth-of-type(1) {
  transition-delay: 0s;
}

.main_visual.is-animated .main_visual__inner h2 span:nth-of-type(2) {
  transition-delay: .2s;
}


/* ==========================================================================
   2. アバウトエリア (.home_about)
   ========================================================================== */
.home_about {
  margin-top: calc(clamp(60px, calc(60px + 60 * ((var(--vw) * 100) - 320px) / 880), 120px) * 0.66);
}

.home_about .home_about__rows .home_about__img {
  width: min(38.46%, 525px);
  margin-left: min(5%, 60px);
  float: right;
}

.home_about .home_about__rows .home_about__text p {
  letter-spacing: 0.04em;
  line-height: 2.0;
}

.home_about .home_about__rows .home_about__text p:last-child {
  margin-bottom: 0;
}

.home_about .button {
  clear: both;
}

@media screen and (min-width: 980px) {
  .home_about {
    position: relative;
    z-index: 1;
  }
  .home_about .home_about__rows {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -ms-flex-direction: row-reverse;
    flex-direction: row-reverse;
    gap: min(5%, 60px);
  }
  .home_about .home_about__rows .home_about__img,
  .home_about .home_about__rows .home_about__text {
    flex-grow: 1;
    flex-basis: 525px;
  }
  .home_about .home_about__rows .home_about__img {
    margin-left: 0;
    float: none;
  }
}


/* ==========================================================================
   3. ビジネスエリア (.home_business)
   ========================================================================== */
.home_business {
  margin-top: clamp(60px, calc(60px + 60 * ((var(--vw) * 100) - 320px) / 880), 120px);
}

.home_business .business_list {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 15px min(1.35%, 15px);
}

.home_business .business_list li {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-align-content: flex-end;
  -ms-flex-line-pack: end;
  align-content: flex-end;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  position: relative;
  z-index: 1;
  flex-basis: calc(50% - (min(1.35%, 15px)));
  color: #fff;
  padding: min(11.11%, 40px) min(5%, 40px);
  aspect-ratio: 3 / 4;
  opacity: 0;
  -webkit-transform: translateY(15%);
  -moz-transform: translateY(15%);
  -ms-transform: translateY(15%);
  -o-transform: translateY(15%);
  transform: translateY(15%);
  -webkit-transition: 0.6s ease-in-out;
  -moz-transition: 0.6s ease-in-out;
  -ms-transition: 0.6s ease-in-out;
  -o-transition: 0.6s ease-in-out;
  transition: 0.6s ease-in-out;
}

.home_business .business_list li h4 {
  font-size: clamp(16px, calc(16px + 8 * ((var(--vw) * 100) - 320px) / 880), 24px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.1em;
  margin-bottom: 1.0em;
}

.home_business .business_list li h4 a {
  color: inherit;
  text-decoration: none;
}

.home_business .business_list li h4 a::after {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  content: '';
  width: 100%;
  height: 100%;
}

.home_business .business_list li p {
  flex-grow: 1;
  font-size: clamp(12px, calc(12px + 4 * ((var(--vw) * 100) - 320px) / 880), 16px);
  line-height: 2.0;
  letter-spacing: 0.04em;
}

.home_business .business_list li .business_list__img {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.home_business .business_list li .business_list__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  -webkit-transition: 0.4s ease-out;
  -moz-transition: 0.4s ease-out;
  -ms-transition: 0.4s ease-out;
  -o-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
}

.home_business .business_list li .business_list__img::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  content: '';
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to bottom, rgba(32, 32, 32, 0) 0%, #202020 100%);
}

.home_business .business_list li::after {
  content: '';
  display: block;
  width: 1.25em;
  height: 1.25em;
  margin-left: auto;
  background: url("../img/icon_arrow_white.svg") no-repeat 50% 50%/contain;
  -webkit-transition: 0.4s ease-out;
  -moz-transition: 0.4s ease-out;
  -ms-transition: 0.4s ease-out;
  -o-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
}

/* リストアイテムの角丸制御 (SP) */
.home_business .business_list li:nth-child(1) .business_list__img {
  border-radius: 1.25em 0 0 0;
}

.home_business .business_list li:nth-child(2) .business_list__img {
  border-radius: 0 1.25em 0 0;
}

.home_business .business_list li:nth-last-child(1) .business_list__img {
  border-radius: 0 0 1.25em 0;
}

.home_business .business_list li:nth-last-child(2) .business_list__img {
  border-radius: 0 0 0 1.25em;
}

/* ホバーエフェクト */
.home_business .business_list li:hover .business_list__img img {
  -webkit-transform: scale(1.2);
  -moz-transform: scale(1.2);
  -ms-transform: scale(1.2);
  -o-transform: scale(1.2);
  transform: scale(1.2);
}

.home_business .business_list li:hover::after {
  -webkit-transform: translateX(0.5em);
  -moz-transform: translateX(0.5em);
  -ms-transform: translateX(0.5em);
  -o-transform: translateX(0.5em);
  transform: translateX(0.5em);
}

@media screen and (min-width: 980px) {
  .home_business .business_list li {
    flex-basis: calc(33.33% - (min(1.35%, 15px) - (min(1.35%, 15px) / 3)));
  }
  /* リストアイテムの角丸制御 (PC: 3カラム) */
  .home_business .business_list li:nth-child(2) .business_list__img {
    border-radius: 0;
  }
  .home_business .business_list li:nth-child(3) .business_list__img {
    border-radius: 0 1.25em 0 0;
  }
  .home_business .business_list li:nth-last-child(2) .business_list__img {
    border-radius: 0;
  }
  .home_business .business_list li:nth-last-child(3) .business_list__img {
    border-radius: 0 0 0 1.25em;
  }
}

/* アニメーション用クラス */
.home_business .business_list.is-animated li {
  opacity: 1.0;
  -webkit-transform: translateY(0);
  -moz-transform: translateY(0);
  -ms-transform: translateY(0);
  -o-transform: translateY(0);
  transform: translateY(0);
}

.home_business .business_list.is-animated li:nth-child(1) { transition-delay: 0s; }
.home_business .business_list.is-animated li:nth-child(2) { transition-delay: .2s; }
.home_business .business_list.is-animated li:nth-child(3) { transition-delay: .4s; }
.home_business .business_list.is-animated li:nth-child(4) { transition-delay: .6s; }
.home_business .business_list.is-animated li:nth-child(5) { transition-delay: .8s; }
.home_business .business_list.is-animated li:nth-child(6) { transition-delay: 1s; }


/* ==========================================================================
   4. コンテンツ・下部リンク・マップエリア (.home_content / .google-map)
   ========================================================================== */
.home_content {
  position: relative;
  z-index: 1;
  margin-top: clamp(60px, calc(60px + 60 * ((var(--vw) * 100) - 320px) / 880), 120px);
  padding-top: 2.5em;
  overflow: hidden;
}

.home_content .home_link {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 1.5em min(7.2%, 80px);
  margin-bottom: calc(clamp(60px, calc(60px + 60 * ((var(--vw) * 100) - 320px) / 880), 120px) * 0.66);
}

.home_content .home_link .home_link__bnr {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-align-content: center;
  -ms-flex-line-pack: center;
  align-content: center;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  position: relative;
  flex-grow: 1;
  flex-basis: 408px;
  margin-bottom: 0;
  background-color: #fff;
  border: 1px solid #fff;
  border-radius: 1.25em;
  aspect-ratio: 103 / 40;
  -webkit-transition: 0.4s ease-out;
  -moz-transition: 0.4s ease-out;
  -ms-transition: 0.4s ease-out;
  -o-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
}

.home_content .home_link .home_link__bnr .home_link__icon {
  font-size: 2.75em;
  color: #019742;
}

.home_content .home_link .home_link__bnr a {
  font-size: clamp(16px, calc(16px + 8 * ((var(--vw) * 100) - 320px) / 880), 24px);
  font-weight: 500;
  color: #202020;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-align: center;
  margin-top: 1.0em;
}

.home_content .home_link .home_link__bnr a::before {
  position: absolute;
  top: 0;
  left: 0;
  content: '';
  width: 100%;
  height: 100%;
}

.home_content .home_link .home_link__bnr::after {
  position: absolute;
  right: 1.5em;
  bottom: 1.5em;
  content: '';
  width: 1.25em;
  height: 1.25em;
  background: url("../img/icon_arrow_green.svg") no-repeat 50% 50%/contain;
  -webkit-transition: 0.4s ease-out;
  -moz-transition: 0.4s ease-out;
  -ms-transition: 0.4s ease-out;
  -o-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
}

.home_content .home_link .home_link__bnr:hover {
  border-color: #7FBF65;
}

.home_content .home_link .home_link__bnr:hover::after {
  -webkit-transform: translateX(0.5em);
  -moz-transform: translateX(0.5em);
  -ms-transform: translateX(0.5em);
  -o-transform: translateX(0.5em);
  transform: translateX(0.5em);
}

.home_content .home_access .headline {
  text-align: center;
  margin-bottom: 0;
  padding-left: 0;
}

.home_content .home_access .headline::after {
  position: static;
  height: 5.0rem;
  margin: 2.5rem auto 0;
}

.home_content .home_content__img {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 73.42%;
  overflow: hidden;
  border-radius: 0 1.25em 0 0;
}

.home_content .home_content__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (min-width: 980px) {
  .home_content .home_content__img {
    width: calc(100% - min(5%, 96px));
  }
}

.home_content::after {
  position: absolute;
  top: 0;
  right: 0;
  z-index: -2;
  content: '';
  width: 100%;
  height: 100%;
  background-color: #e8f3e3;
  border-radius: 1.25em 0 0 0;
}

@media screen and (min-width: 980px) {
  .home_content::after {
    width: calc(100% - min(5%, 96px));
  }
}

.google-map {
  max-height: 420px;
}