/* ===== PC版ヒーローセクション（Figma完全準拠・レスポンシブ対応） ===== */

.lp-hero {
  position: relative;
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
}

/* 背景画像コンテナ */
.lp-hero__bg-container {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.lp-hero__bg-wrapper {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.lp-hero__bg-image {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 120%;
  height: 120%;
  max-width: none;
  object-fit: cover;
}

.lp-hero__bg-shadow {
  position: absolute;
  inset: 0;
  box-shadow: inset 100px -400px 400px 0px #ffffff;
  pointer-events: none;
}

/* テキストコンテンツ */
.lp-hero__content {
  position: absolute;
  left: 50%;
  top: 22%;
  transform: translate(-50%, -50%);
  width: 95%;
  max-width: 1000px;
  text-align: center;
}

.lp-hero__title {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: clamp(32px, 3.2vw, 65px);
  color: #fff;
  text-shadow: 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b;
  margin: 0 0 clamp(15px, 2vw, 20px) 0;
  line-height: 1;
  position: relative;
  z-index: 1;
  display: inline-block;
}

.lp-hero__title::before {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: 40px;
  background: repeating-linear-gradient(
    -45deg,
    rgba(96, 102, 123, 0.4),
    rgba(96, 102, 123, 0.4) 3px,
    transparent 3px,
    transparent 6px
  );
  pointer-events: none;
  z-index: -1;
}

.lp-hero__subtitle {
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  font-size: clamp(32px, 3.2vw, 65px);
  color: #fff;
  text-shadow: 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b;
  margin: 0 0 clamp(20px, 3vw, 20px) 0;
  line-height: 1;
  position: relative;
  z-index: 1;
  display: inline-block;
}

.lp-hero__subtitle::before {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: 40px;
  background: repeating-linear-gradient(
    -45deg,
    rgba(96, 102, 123, 0.4),
    rgba(96, 102, 123, 0.4) 3px,
    transparent 3px,
    transparent 6px
  );
  pointer-events: none;
  z-index: -1;
}

.lp-hero__description {
  font-family: 'Noto Serif JP', serif;
  font-weight: 600;
  font-size: clamp(16px, 2vw, 22px);
  color: #fff;
  text-shadow: 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b, 0 0 15px #60667b;
  line-height: 1.6;
  position: relative;
  z-index: 1;
}

.lp-hero__description p {
  display: inline-block;
  position: relative;
  z-index: 1;
}

.lp-hero__description p::before {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 100%;
  height: 30px;
  background: repeating-linear-gradient(
    -45deg,
    rgba(96, 102, 123, 0.4),
    rgba(96, 102, 123, 0.4) 3px,
    transparent 3px,
    transparent 6px
  );
  pointer-events: none;
  z-index: -1;
}

.lp-hero__description p {
  margin: 0;
}

/* POINTカード群 */
.lp-hero__points {
  position: absolute;
  left: 50%;
  bottom: clamp(180px, 22vh, 280px);
  transform: translateX(-50%);
  display: flex;
  gap: clamp(20px, 3vw, 40px);
}

.lp-hero__point {
  position: relative;
  width: clamp(140px, 15vw, 200px);
  height: clamp(175px, 18vw, 230px);
}

/* POINTカード背景 */
.lp-hero__point-card {
  position: absolute;
  left: 50%;
  top: clamp(18px, 2vw, 24px);
  transform: translateX(-50%);
  width: clamp(140px, 15vw, 200px);
  height: clamp(140px, 15vw, 200px);
}

.lp-hero__point-bg {
  position: absolute;
  inset: -9.09%;
  width: 118.18%;
  height: 118.18%;
  max-width: none;
}

/* POINTバッジ */
.lp-hero__point-badge {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: clamp(110px, 12vw, 150px);
  height: clamp(30px, 3.5vw, 40px);
}

.lp-hero__point-badge-bg {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
}

.lp-hero__point-badge-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-family: 'Noto Serif JP', serif;
  font-weight: 700;
  color: #ffffff;
  white-space: nowrap;
  margin: 0;
  line-height: 1;
}

.lp-hero__point-badge-label {
  font-size: clamp(14px, 1.8vw, 20px);
}

.lp-hero__point-badge-number {
  font-size: clamp(17px, 2.2vw, 24px);
}

/* POINTテキスト */
.lp-hero__point-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-family: 'Noto Serif JP', serif;
  font-weight: 600;
  font-size: clamp(18px, 2.2vw, 26px);
  line-height: 1.4;
  color: #0c62b2;
  text-align: center;
  white-space: nowrap;
}

.lp-hero__point-text p {
  margin: 0;
}

/* POINT01特有の調整 */
.lp-hero__point:nth-child(1) .lp-hero__point-text {
  top: 50%;
}

/* POINT02特有の調整 */
.lp-hero__point:nth-child(2) .lp-hero__point-text {
  top: 50%;
}

/* 768px未満: 非表示（SP版表示） */
@media (max-width: 767px) {
  .lp-hero {
    display: none;
  }
}
