/* FVセクション全体 */
.fv {
  width: 100%;
  background: url("/img/fv_bk.png") no-repeat center top;
  background-size: cover;
  padding: 0;
  margin: 0;
  position: relative;
  overflow: hidden;
}

/* 流れるテキスト */
.fv-marquee {
  width: 100%;
  background-color: #dc143c;
  padding: 10px 0;
  overflow: hidden;
  white-space: nowrap;
}

.marquee-content {
  display: inline-block;
  animation: marquee 15s linear infinite;
}

.marquee-content span {
  color: #ffff00;
  font-size: 18px;
  font-weight: bold;
  margin-right: 100px;
}

@keyframes marquee {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}

/* ロゴ */
.fv-logo {
  text-align: center;
  padding: 0px 0 0px;
}

.fv-logo img {
  max-width: 730px;
  height: auto;
}

/* 注目実績ボックス */
.fv-result-box {
  max-width: 700px;
  margin: 40px auto 40px auto;
  padding: 0px 0px;
  position: relative;
  overflow: hidden;
}

  .result-box-inner::before {
    content: '';
    position: absolute;
    top: 0px;
    left: 50%;
    width: 30%;
    height: calc(100% - 0px);
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 100%);
    transform: skewX(-20deg);
    animation: shine 2.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) infinite;
    z-index: 999;
    pointer-events: none;
    border-radius: 15px;
    clip-path: inset(0 5% 0 5%);
  }

.result-box-inner {
  border: 6px solid #fbd200;
  border-radius: 25px;
  overflow: visible;
  display: flex;
  position: relative;
  padding: 0px;
  z-index: 1;
}

/* 左側ラベル */
.result-label {
  background-color: #ffff00;
  color: #dc143c;
  font-size: 40px;
  font-weight: bold;
  padding: 20px 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 160px;
  text-orientation: upright;
  border-top-left-radius: 19px;
  border-bottom-left-radius: 19px;
}

/* 右側コンテンツ */
.result-content {
  background-color: #ffffff;
  flex: 1;
  padding: 25px 20px 25px 10px;
  position: relative;
  overflow: visible;
  border-top-right-radius: 19px;
  border-bottom-right-radius: 19px;
}

/* 日付（オレンジ枠にかぶる） */
.result-date {
  border-radius: 8px;
  padding: 5px 0px;
  font-size: 22px;
  color: #333333;
  display: inline-block;
  position: absolute;
  top: -3px;
  left: 12px;
  z-index: 999;
  text-shadow: 1px 1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, -1px -1px 0 #fff;
}

/* 説明文 */
.result-description {
  font-size: 25px;
  color: #333333;
  margin: 6px 0 10px 0;
  font-weight: 500;
}

/* 金額 */
.result-amount {
  font-size: 46px;
  color: #dc143c;
  font-weight: bold;
  margin: 5px 0;
}

/* 下部：キャラクター + CTA */
.fv .fv-bottom {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0px 20px 20px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  clear: both !important;
  position: relative !important;
}

.fv .fv-character {
  flex: 1 1 50% !important;
  text-align: center !important;
  display: block !important;
  float: none !important;
  position: relative !important;
  width: 50% !important;
  margin-top: auto;
}

.fv .fv-character img {
  width: 100% !important;
  max-width: 450px !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
  float: none !important;
  position: relative !important;
}

.fv .fv-cta {
  flex: 1 1 50% !important;
  text-align: center !important;
  display: block !important;
  float: none !important;
  position: relative !important;
  width: 50% !important;
}

.fv .fv-cta img {
  width: 100% !important;
  max-width: 450px !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
  float: none !important;
  position: relative !important;
}

  /* PC/SP切り替え */
.fv .fv-cta .cta-sp {
  display: none !important;
}

.fv .fv-cta .cta-pc {
  display: block !important;
}

.fv .fv-cta img.cta-sp {
  display: none !important;
}

.fv .fv-cta img.cta-pc {
  display: block !important;
}

/* レスポンシブ対応 - 360pxあたり */
@media screen and (max-width: 365px) {
  .marquee-content span {
    font-size: 13px !important;
    margin-right: 35px !important;
  }

  .fv-logo img {
    max-width: 95% !important;
    width: 95% !important;
  }

  .fv-result-box {
    max-width: 95% !important;
    margin: 18px auto !important;
    padding: 0 0px !important;
  }

  .result-label {
    font-size: 14px !important;
    min-width: 55px !important;
    padding: 8px 6px !important;
  }

  .result-content {
    padding: 12px 8px 12px 6px !important;
  }

  .result-description {
    font-size: 14px !important;
    margin: 6px 0 4px 0 !important;
  }

  .result-amount {
    font-size: 24px !important;
  }

  .result-date {
    font-size: 11px !important;
    padding: 2px 0px !important;
    top: -7px !important;
    left: 6px !important;
  }

  .fv .fv-bottom {
    padding: 0px 8px 12px !important;
    gap: 8px !important;
  }

  .fv .fv-character img {
    max-width: 160px !important;
  }

  .fv .fv-cta img {
    max-width: 160px !important;
  }

  .fv .fv-cta .cta-pc {
    display: none !important;
  }

  .fv .fv-cta .cta-sp {
    display: block !important;
  }

  .fv .fv-cta img.cta-pc {
    display: none !important;
  }

  .fv .fv-cta img.cta-sp {
    display: block !important;
  }
}

/* レスポンシブ対応 - 375pxあたり */
@media screen and (min-width: 366px) and (max-width: 380px) {
  .marquee-content span {
    font-size: 13px !important;
    margin-right: 38px !important;
  }

  .fv-logo img {
    max-width: 95% !important;
    width: 95% !important;
  }

  .fv-result-box {
    max-width: 95% !important;
    margin: 19px auto !important;
    padding: 0 0px !important;
  }

  .result-label {
    font-size: 15px !important;
    min-width: 57px !important;
    padding: 9px 7px !important;
  }

  .result-content {
    padding: 13px 9px 13px 7px !important;
  }

  .result-description {
    font-size: 15px !important;
    margin: 7px 0 5px 0 !important;
  }

  .result-amount {
    font-size: 25px !important;
  }

  .result-date {
    font-size: 12px !important;
    padding: 2px 0px !important;
    top: -7px !important;
    left: 7px !important;
  }

  .fv .fv-bottom {
    padding: 0px 9px 13px !important;
    gap: 9px !important;
  }

  .fv .fv-character img {
    max-width: 180px !important;
  }

  .fv .fv-cta img {
    max-width: 180px !important;
  }

  .fv .fv-cta .cta-pc {
    display: none !important;
  }

  .fv .fv-cta .cta-sp {
    display: block !important;
  }

  .fv .fv-cta img.cta-pc {
    display: none !important;
  }

  .fv .fv-cta img.cta-sp {
    display: block !important;
  }
}

/* レスポンシブ対応 - 390pxあたり */
@media screen and (min-width: 381px) and (max-width: 395px) {
  .marquee-content span {
    font-size: 14px !important;
    margin-right: 40px !important;
  }

  .fv-logo img {
    max-width: 95% !important;
    width: 95% !important;
  }

  .fv-result-box {
    max-width: 95% !important;
    margin: 20px auto !important;
    padding: 0 0px !important;
  }

  .result-label {
    font-size: 16px !important;
    min-width: 60px !important;
    padding: 10px 8px !important;
  }

  .result-content {
    padding: 14px 0px 14px 8px !important;
  }

  .result-description {
    font-size: 16px !important;
    margin: 7px 0 6px 0 !important;
  }

  .result-amount {
    font-size: 26px !important;
  }

  .result-date {
    font-size: 12px !important;
    padding: 2px 0px !important;
    top: -8px !important;
    left: 8px !important;
  }

  .fv .fv-bottom {
    padding: 0px 10px 14px !important;
    gap: 10px !important;
  }

  .fv .fv-character img {
    max-width: 200px !important;
  }

  .fv .fv-cta img {
    max-width: 200px !important;
  }

  .fv .fv-cta .cta-pc {
    display: none !important;
  }

  .fv .fv-cta .cta-sp {
    display: block !important;
  }

  .fv .fv-cta img.cta-pc {
    display: none !important;
  }

  .fv .fv-cta img.cta-sp {
    display: block !important;
  }
}

/* レスポンシブ対応 - 410pxあたり */
@media screen and (min-width: 396px) and (max-width: 415px) {
  .marquee-content span {
    font-size: 14px !important;
    margin-right: 42px !important;
  }

  .fv-logo img {
    max-width: 95% !important;
    width: 95% !important;
  }

  .fv-result-box {
    max-width: 95% !important;
    margin: 22px auto !important;
    padding: 0 0px !important;
  }

  .result-label {
    font-size: 17px !important;
    min-width: 62px !important;
    padding: 11px 9px !important;
  }

  .result-content {
    padding: 16px 2px 16px 9px !important;
  }

  .result-description {
    font-size: 17px !important;
    margin: 8px 0 7px 0 !important;
  }

  .result-amount {
    font-size: 26px !important;
  }

  .result-date {
    font-size: 13px !important;
    padding: 3px 0px !important;
    top: -9px !important;
    left: 9px !important;
  }

  .fv .fv-bottom {
    padding: 0px 11px 16px !important;
    gap: 11px !important;
  }

  .fv .fv-character img {
    max-width: 220px !important;
  }

  .fv .fv-cta img {
    max-width: 220px !important;
  }

  .fv .fv-cta .cta-pc {
    display: none !important;
  }

  .fv .fv-cta .cta-sp {
    display: block !important;
  }

  .fv .fv-cta img.cta-pc {
    display: none !important;
  }

  .fv .fv-cta img.cta-sp {
    display: block !important;
  }
}

/* レスポンシブ対応 - 430pxあたり */
@media screen and (min-width: 416px) and (max-width: 435px) {
  .marquee-content span {
    font-size: 15px !important;
    margin-right: 45px !important;
  }

  .fv-logo img {
    max-width: 95% !important;
    width: 95% !important;
  }

  .fv-result-box {
    max-width: 95% !important;
    margin: 24px auto !important;
    padding: 0 0px !important;
  }

  .result-label {
    font-size: 18px !important;
    min-width: 65px !important;
    padding: 12px 10px !important;
  }

  .result-content {
    padding: 18px 0px 18px 10px !important;
  }

  .result-description {
    font-size: 18px !important;
    margin: 8px 0 8px 0 !important;
  }

  .result-amount {
    font-size: 28px !important;
  }

  .result-date {
    font-size: 14px !important;
    padding: 3px 0px !important;
    top: -8px !important;
    left: 10px !important;
  }

  .fv .fv-bottom {
    padding: 0px 12px 18px !important;
    gap: 12px !important;
  }

  .fv .fv-character img {
    max-width: 240px !important;
  }

  .fv .fv-cta img {
    max-width: 240px !important;
  }

  .fv .fv-cta .cta-pc {
    display: none !important;
  }

  .fv .fv-cta .cta-sp {
    display: block !important;
  }

  .fv .fv-cta img.cta-pc {
    display: none !important;
  }

  .fv .fv-cta img.cta-sp {
    display: block !important;
  }
}

/* レスポンシブ対応 - 431px〜410px */
@media screen and (min-width: 431px) and (max-width: 450px) {
  .marquee-content span {
    font-size: 15px !important;
    margin-right: 45px !important;
  }

  .fv-logo img {
    max-width: 95% !important;
    width: 95% !important;
  }

  .fv-result-box {
    max-width: 95% !important;
    margin: 25px auto !important;
    padding: 0 0px !important;
  }

  .result-label {
    font-size: 18px !important;
    min-width: 65px !important;
    padding: 12px 10px !important;
  }

  .result-content {
    padding: 18px 12px 18px 10px !important;
  }

  .result-description {
    font-size: 18px !important;
    margin: 8px 0 8px 0 !important;
  }

  .result-amount {
    font-size: 26px !important;
  }

  .result-date {
    font-size: 12px !important;
    padding: 3px 0px !important;
    top: -5px !important;
    left: 10px !important;
  }

  .fv .fv-bottom {
    padding: 0px 12px 18px !important;
    gap: 12px !important;
  }

  .fv .fv-character img {
    max-width: 200px !important;
  }

  .fv .fv-cta img {
    max-width: 200px !important;
  }

  .fv .fv-cta .cta-pc {
    display: none !important;
  }

  .fv .fv-cta .cta-sp {
    display: block !important;
  }

  .fv .fv-cta img.cta-pc {
    display: none !important;
  }

  .fv .fv-cta img.cta-sp {
    display: block !important;
  }
}

/* レスポンシブ対応 - 451px〜480px */
@media screen and (min-width: 451px) and (max-width: 480px) {
  .marquee-content span {
    font-size: 16px !important;
    margin-right: 50px !important;
  }

  .fv-logo img {
    max-width: 95% !important;
    width: 95% !important;
  }

  .fv-result-box {
    max-width: 95% !important;
    margin: 30px auto !important;
    padding: 0 0px !important;
  }

  .result-label {
    font-size: 20px !important;
    min-width: 70px !important;
    padding: 15px 12px !important;
  }

  .result-content {
    padding: 20px 15px 20px 12px !important;
  }

  .result-description {
    font-size: 20px !important;
    margin: 8px 0 10px 0 !important;
  }

  .result-amount {
    font-size: 28px !important;
  }

  .result-date {
    font-size: 14px !important;
    padding: 4px 0px !important;
    top: -8px !important;
    left: 12px !important;
  }

  .fv .fv-bottom {
    padding: 0px 15px 20px !important;
    gap: 15px !important;
  }

  .fv .fv-character img {
    max-width: 220px !important;
  }

  .fv .fv-cta img {
    max-width: 220px !important;
  }

  .fv .fv-cta .cta-pc {
    display: none !important;
  }

  .fv .fv-cta .cta-sp {
    display: block !important;
  }

  .fv .fv-cta img.cta-pc {
    display: none !important;
  }

  .fv .fv-cta img.cta-sp {
    display: block !important;
  }
}

/* タブレット対応 - 481px〜768px */
@media screen and (min-width: 481px) and (max-width: 768px) {
  .marquee-content span {
    font-size: 17px !important;
    margin-right: 60px !important;
  }

  .fv-logo img {
    max-width: 95% !important;
    width: 95% !important;
  }

  .fv-result-box {
    max-width: 90% !important;
    margin: 35px auto !important;
    padding: 0 0px !important;
  }

  .result-label {
    font-size: 24px !important;
    min-width: 80px !important;
    padding: 18px 15px !important;
  }

  .result-content {
    padding: 22px 18px 22px 15px !important;
  }

  .result-description {
    font-size: 22px !important;
    margin: 6px 0 10px 0 !important;
  }

  .result-amount {
    font-size: 27px !important;
  }

  .result-date {
    font-size: 16px !important;
    padding: 4px 0px !important;
    top: -6px !important;
    left: 12px !important;
  }

  .fv .fv-bottom {
    padding: 0px 20px 20px !important;
    gap: 20px !important;
  }

  .fv .fv-character img {
    max-width: 280px !important;
  }

  .fv .fv-cta img {
    max-width: 280px !important;
  }

  .fv .fv-cta .cta-pc {
    display: none !important;
  }

  .fv .fv-cta .cta-sp {
    display: block !important;
  }

  .fv .fv-cta img.cta-pc {
    display: none !important;
  }

  .fv .fv-cta img.cta-sp {
    display: block !important;
  }
}

/* SP版CTAの跳ねるアニメーション */
@keyframes ctaBounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-15px);
  }
  60% {
    transform: translateY(-8px);
  }
}

/* SP版CTAにアニメーションを適用（全てのメディアクエリ対象） */
@media screen and (max-width: 768px) {
  .fv .fv-cta img.cta-sp {
    animation: ctaBounce 2s ease-in-out infinite !important;
  }
}

/* 光が走るアニメーション */
@keyframes shine {
  0% {
    left: -30%;
  }
  50% {
    left: 90%;
  }
  100% {
    left: 90%;
  }
}

/* FV内のQRコード画像を非表示にする */
.fv .lp-qrcode {
  display: none !important;
}

.fv .lp-qr .lp-qrcode {
  display: none !important;
}

/* FV内のCTAボタンのカスタマイズ（新しいデザイン） */
.fv .fv-cta .lp-qr .cta-pc {
  content: url('/img/newcta_pc.png');
}

.fv .fv-cta .lp-cta__button .cta-mobile {
  content: url('/img/newcta_sp.png');
  animation: ctaBounce 2s ease-in-out infinite;
}

/* SP版CTAボタンの跳ねるアニメーション */
@keyframes ctaBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
