/* Header: ロゴ左・CTA右配置 */
#main .fv .header {
  background: #fff;
  padding: min(20px, 2.4vw) 0;
}
#main .fv .header .logo__img {
  width: min(156px, 20vw);
}

#main .fv .header .header_cta .logo__cta {
  width: min(230px, 27.6666666667vw);
  aspect-ratio: 800 / 240;
  height: auto;
}

/* ヒーロー全体をヘッダー高さ分だけ押し下げ（初期描画から反映） */
#main .fv {
  padding-top: calc(min(230px, 27.6666666667vw) * 0.3 + min(20px, 2.4vw) * 2);
}

.fv .header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
  box-sizing: border-box;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
}

.fv .header .logo__img,
.fv .header .header_cta .logo__cta {
  display: block;
}

.fv .header .logo__img {
  margin-left: 30px;
}

.fv .header .header_cta {
  margin-right: 30px;
}

.fv .header .header_cta { 
  margin-left: auto; 
}

.fv_cta .fv_cta_text {
  width: 60%;
  margin: 2rem auto;
  margin-bottom: 1rem;
}

.fv_cta .fv_cta_btn {
  width: 80%;
  margin:0 auto;
  margin-bottom: 1rem;
}

.fv_cta_btn {
  width: 300px;
  color: #fff;
  position: relative;
  overflow: hidden;
}

.fv_cta_btn::before {
  content: "";
  width: 30px;
  height: 100%;
  background-color: #fff;
  animation: shine 3s ease-in-out infinite;
  position: absolute;
  top: -180px;
  left: 0;
  opacity: 0;
  transform: rotate(45deg);
}

@keyframes shine {
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}

/* ====== NAV CTA（Tailwind置き換え） ====== */
.lp-cta-in-nav {
  /* 画面幅いっぱいに拡張 */
  width: 100vw;
  max-width: none;
  margin-left: 50%;
  transform: translateX(-50%);
}

/* 初期表示でナビの一部（リボン画像の上端）が見切れるため、
   スライド前のオフセット量を少し増やして完全に非表示にする */
.lp-l-nav {
  transform: translateY(calc(100% + 3.5rem));
}

.lp-cta-btn {
  display: block;
  position: relative;
}

.lp-cta-btn-box {
  position: relative;
  width: 100%;
  max-width: none; /* 親（100vw）に追従 */
  margin: 0 auto;
}

.lp-cta-grid img {
  display: block;
  width: 100%;
  height: auto;
}

.lp-cta-ribbon-wrap {
  position: absolute;
  top: -2rem;
  left: 43%;
  transform: translateX(-50%);
  width: 75%;
  z-index: 10;
  /* リボンに対する相対フォント基準（比率維持） */
  font-size: clamp(8px, 1.6vw, 18px);
}

.lp-cta-ribbon-img {
  display: block;
  width: 120%;
  height: auto;
}

.lp-cta-ribbon-wrap .lp-cta-timer {
  position: absolute;
  top: 48%;
  right: -14%;
  transform: translateY(-50%);
  font-size: 1em; /* 基準サイズ（比率は子要素で制御） */
  font-weight: 700;
  color: #FF0004;
  z-index: 20;
  white-space: nowrap;
}

.lp-cta-timer__big { font-size: 2.8em; }
.lp-cta-timer__small { font-size: 1.9em; }

@media screen and (min-width: 768px) {
  .lp-cta-btn:hover { filter: brightness(1.05); }
}

/* iPhone SE(375px幅)での文字サイズ微調整 */
@media screen and (max-width: 380px) {
  .lp-cta-ribbon-wrap .lp-cta-timer {
      top: 46%;
  }
  .lp-cta-ribbon-wrap {
    font-size: 7px; /* 既定(約8px)からやや縮小 */
  }
}

/* PCビュー(>=1024px)での文字サイズ拡大 */
@media screen and (min-width: 1024px) {
  .lp-cta-ribbon-wrap {
    top: -4rem;
    left: 44%;
  }
  .lp-cta-ribbon-wrap .lp-cta-timer {
    top: 48%;
    right: -14%;
  }
  .lp-p-cta__inner {
    padding: 0;
  }
  .lp-cta-timer__big { font-size: 2.2em; }
  .lp-cta-timer__small { font-size: 1.4em; }
  .lp-cta-in-nav {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    transform: none;
  }
  .lp-cta-btn-box {
    max-width: 100%;
  }
  /* PC幅ではリボンのはみ出しが大きいため、隠れる量も増やす */
  .lp-l-nav {
    transform: translateY(calc(100% + 7rem));
  }
}

.force-recommend__text {
  text-align: center;
  font-size: 1.2rem;
  font-weight: 700;
  font-family: serif;
  color: #c01919;
  line-height: 1.625;
}

.force-recommend__text .force-recommend__sub {
  font-size: 1.1rem;
  color: #404040;
}
