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

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

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

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

.lp-sp-hero__bg-image {
  position: absolute;
  left: -1.5%;
  top: -21.42%;
  width: 181.8%;
  height: 113.8%;
  max-width: none;
  object-fit: cover;
}

.lp-sp-hero__bg-shadow {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(255, 255, 255, 1) 0%,
    rgba(255, 255, 255, 1) 23%,
    rgba(255, 255, 255, 0.85) 40%,
    rgba(255, 255, 255, 0.5) 70%,
    transparent 100%
  );
  pointer-events: none;
}

/* テキストコンテンツ */
.lp-sp-hero__content {
  position: absolute;
  left: clamp(22px, 5vw, 44px);
  bottom: calc(40px + clamp(170px, 38vw, 230px));
  width: calc(100% - clamp(10px, 4vw, 40px));
  max-width: 600px;
}

.lp-sp-hero__title {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: clamp(24px, 8vw, 32px);
  color: #0c62b2;
  text-shadow: 0 3px 4px #ffffff;
  margin: 0 0 10px 0;
  line-height: 1;
  letter-spacing: -0.5px;
  position: relative;
  z-index: 1;
}

.lp-sp-hero__subtitle {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: clamp(24px, 8vw, 32px);
  color: #0c62b2;
  text-shadow: 0 3px 4px #ffffff;
  margin: 0 0 17px 0;
  line-height: 1;
  letter-spacing: -0.5px;
  position: relative;
  z-index: 1;
  left: 0;
}

.lp-sp-hero__description {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: clamp(13px, 3.846vw, 18px);
  color: #424a51;
  text-shadow: 0 4px 4px #ffffff;
  line-height: 1;
  letter-spacing: -0.5px;
  position: relative;
  z-index: 1;
}

.lp-sp-hero__description p {
  margin: 0;
  white-space: pre-wrap;
}

/* サブテキスト（駅情報）モバイル調整 */
.lp-sp-hero .lp-hero__subtext {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1px !important;
  margin: 0 0 4px 0;
  max-width: 440px;
}

.lp-sp-hero .lp-hero__subtext-main {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-size: clamp(15px, 4.5vw, 19px);
  line-height: 1.35;
  color: #ff914d;
  text-shadow: 0 3px 4px rgba(0, 0, 0, 0.18) !important;
  margin: 0;
  padding: 0;
  text-align: left;
}

.lp-sp-hero .lp-hero__subtext-decoration {
  position: relative;
  top: 0;
  width: 10px !important;
  height: 2px !important;
  overflow: hidden;
  display: inline-block;
}

.lp-sp-hero .lp-hero__subtext-decoration--left {
  transform: rotate(53deg) scaleY(-1);
  left: 0 !important;
  right: auto !important;
}

.lp-sp-hero .lp-hero__subtext-decoration--right {
  transform: rotate(300deg) scaleY(-1);
  right: 0 !important;
  left: auto !important;
}

.lp-sp-hero .lp-hero__decoration-svg {
  display: block;
  width: 10px !important;
  height: auto !important;
  max-width: none;
}

/* POINTカード群 */
.lp-sp-hero__points {
  position: absolute;
  left: 50%;
  bottom: 60px;
  transform: translateX(-50%);
  display: flex;
  gap: clamp(12px, 3vw, 20px);
  width: calc(100% - clamp(20px, 5vw, 40px));
  max-width: 500px;
  justify-content: center;
}

.lp-sp-hero__point {
  position: relative;
  width: clamp(100px, 27vw, 145px);
  height: clamp(120px, 30vw, 160px);
  flex-shrink: 0;
}

/* POINTカード背景 */
.lp-sp-hero__point-card {
  position: absolute;
  left: 50%;
  top: clamp(10px, 2.5vw, 15px);
  transform: translateX(-50%);
  width: clamp(100px, 27vw, 145px);
  height: clamp(100px, 27vw, 145px);
}

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

/* POINTバッジ */
.lp-sp-hero__point-badge {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: clamp(90px, 24vw, 125px);
  height: clamp(24px, 6vw, 34px);
}

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

.lp-sp-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-sp-hero__point-badge-label {
  font-size: clamp(12px, 3.5vw, 16px);
}

.lp-sp-hero__point-badge-number {
  font-size: clamp(14px, 4vw, 19px);
}

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

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


/* 768px以上: 非表示（PC版表示） */
@media (min-width: 768px) {
  .lp-sp-hero {
    display: none;
  }
}
