/* Homepage hero: the approved "仲間の風景" composition. */
.index-page-body .home-landscape-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 688px;
  padding: 56px 0 52px;
  background: #0a192f;
}

.index-page-body .home-landscape-hero .hero-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  opacity: 0.8;
  animation: none;
  pointer-events: none;
}

.index-page-body .home-landscape-hero .hero-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 65% center;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.index-page-body .home-landscape-hero::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  content: "";
  background:
    linear-gradient(90deg, #0a192ffb 0%, #0a192fee 31%, #0a192fdd 48%, #0a192f66 71%, #0a192f26 100%),
    linear-gradient(0deg, #0a192ff2 0%, #0a192f00 27%);
  pointer-events: none;
}

.index-page-body .home-landscape-hero .hero-container {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 30px;
  text-align: left;
}

.index-page-body .home-landscape-hero .hero-copy {
  width: 59%;
  max-width: none;
  min-width: 0;
  margin: 0;
  text-align: left;
}

.index-page-body .home-landscape-hero .hero-content {
  max-width: none;
  margin: 0;
  padding: 0;
  text-align: left;
  animation: none;
}

.index-page-body .home-landscape-hero .hero-content h1 {
  max-width: none;
  margin: 0 0 22px;
  color: #ffffff;
  font-weight: 700;
  line-height: 1.23;
  letter-spacing: -0.055em;
  word-break: normal;
  text-wrap: normal;
}

.index-page-body .home-landscape-hero .home-hero-name {
  display: block;
  margin-bottom: 24px;
  color: #c4d1e1;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.23;
  letter-spacing: 0.055em;
}

.index-page-body .home-landscape-hero .home-hero-premise {
  display: block;
  font-size: clamp(26px, 3.6vw, 56px);
  line-height: 1.45;
  letter-spacing: -0.045em;
}

.index-page-body .home-landscape-hero .home-hero-promise {
  display: block;
  margin-top: 8px;
  font-size: clamp(42px, 6.25vw, 90px);
  line-height: 1.2;
}

.index-page-body .home-landscape-hero .hero-content .hero-subtitle {
  max-width: none;
  margin: 0;
  color: #e5eaf2;
  font-size: clamp(14px, 1.4vw, 19px);
  font-weight: 600;
  line-height: 1.85;
}

.index-page-body .home-landscape-hero .hero-cta {
  align-items: flex-start;
  gap: 0;
  width: 100%;
  max-width: none;
  margin: 25px 0 0;
  padding: 0;
  text-align: left;
}

.index-page-body .home-landscape-hero .hero-schedule {
  max-width: 450px;
  margin: 0 0 17px;
  color: #c4d1e1;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.9;
}

.index-page-body .home-landscape-hero .hero-cta-button {
  align-self: flex-start;
}

.index-page-body .home-landscape-hero .hero-cta-note {
  margin: 15px 0 0;
  color: #b8c7da;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.9;
}

@media (min-width: 1200px) {
  .index-page-body .home-landscape-hero {
    min-height: 800px;
  }
}

@media (max-width: 650px) {
  .index-page-body .home-landscape-hero {
    min-height: 855px;
    padding: 32px 0;
  }

  .index-page-body .home-landscape-hero .hero-container {
    padding: 0 22px;
  }

  .index-page-body .home-landscape-hero .hero-copy {
    width: 100%;
  }

  .index-page-body .home-landscape-hero .hero-image {
    inset: auto 0 0;
    height: 340px;
  }

  .index-page-body .home-landscape-hero .hero-image img {
    object-position: 60% 40%;
  }

  .index-page-body .home-landscape-hero::before {
    background: linear-gradient(180deg, #0a192f 0%, #0a192f 56%, #0a192ffa 65%, #0a192f40 90%, #0a192f88 100%);
  }

  .index-page-body .home-landscape-hero .home-hero-name {
    margin-bottom: 17px;
    font-size: 14px;
  }

  .index-page-body .home-landscape-hero .home-hero-premise {
    font-size: clamp(23px, 6.1vw, 38px);
    line-height: 1.5;
  }

  .index-page-body .home-landscape-hero .home-hero-promise {
    margin-top: 9px;
    font-size: clamp(40px, 12.7vw, 68px);
    line-height: 1.25;
  }

  .index-page-body .home-landscape-hero .hero-content .hero-subtitle {
    font-size: 14px;
    line-height: 1.9;
  }

  .index-page-body .home-landscape-hero .hero-cta {
    margin-top: 22px;
  }

  .index-page-body .home-landscape-hero .hero-schedule {
    margin-bottom: 16px;
    font-size: 13px;
    line-height: 1.9;
  }

  .index-page-body .home-landscape-hero .hero-cta-note {
    margin-top: 14px;
    font-size: 13px;
    line-height: 1.9;
  }
}

@media (max-width: 360px) {
  .index-page-body .home-landscape-hero {
    min-height: 923px;
  }
}
