@charset "UTF-8";
.fv {
  background-color: #FFF5ED;
  padding: 24px;
  color: #000;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* 上下の余白を最小化 */
  box-sizing: border-box;
}

.fv-header {
  position: relative;
  z-index: 10;
}

.fv-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.fv-logo {
  text-align: left;
}

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

.fv-copy {
  font-size: 7vw;
  position: relative;
  z-index: -1;
  line-height: 1.2;
  margin-top: -20px;
  margin-bottom: 20px;
  font-weight: 700;
  text-align: center;
  opacity: 0;
  transform: scale(0.8) rotate(-180deg);
  animation: spinFadeIn 1.5s ease-out forwards, pulseZoom 2s ease-in-out 1.6s infinite;
}

@keyframes spinFadeIn {
  0% {
    opacity: 0;
    transform: scale(0.5) rotate(0deg);
  }
  40% {
    opacity: 1;
    transform: scale(1.2) rotate(1080deg); /* 3回転 */
  }
  70% {
    transform: scale(0.95) rotate(1080deg);
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(1080deg);
  }
}
@keyframes pulseZoom {
  0%, 100% {
    transform: scale(1);
  }
  10% {
    transform: scale(1.11);
  }
  20% {
    transform: scale(1);
  }
  30% {
    transform: scale(1.11);
  }
  40% {
    transform: scale(1);
  }
}
/* グラデーション文字 */
.fv-copy .highlight-text {
  display: inline-block;
  background: linear-gradient(to right, #0F87FF, #003366);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 「10」だけオレンジで独立 */
.fv-copy .number {
  display: inline-block;
  color: #F36A3A;
  font-size: 1.4em;
  font-weight: 900;
  background: none;
  -webkit-text-fill-color: #F36A3A;
}

/* 改行禁止ブロック */
.nowrap {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
}

.fv-logo-large {
  margin: 0 auto;
  text-align: center;
}
.fv-logo-large img {
  width: 50vw;
  max-width: 160px;
  height: auto;
  margin: 8px 0;
  animation: floatUpDown 3s ease-in-out infinite;
}

@keyframes floatUpDown {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px); /* 上に10px */
  }
}
.fv-subcopy {
  font-size: 3.5vw; /* 小さめに調整 */
  line-height: 2;
  font-weight: 700; /* 他の文字も太字 */
  color: #000; /* 通常文字は黒 */
  text-align: center;
}
.fv-subcopy .emphasize {
  background-color: #B7A058;
  color: #fff;
  font-weight: 700;
  padding: 2px 1px;
  font-size: 7vw;
}

/* FVカードエリア */
.fv-card-list {
  display: flex;
  justify-content: space-between;
  gap: 5px;
  margin-top: 25px;
  padding: 0;
  list-style: none;
  overflow-x: visible;
  -webkit-overflow-scrolling: touch;
  /* 横3列でも高さを揃える */
  align-items: stretch; /* ←ここ追加 */
}

.fv-card {
  flex: 0 0 calc((100% - 10px) / 3);
  box-sizing: border-box;
  display: flex; /* 子要素を縦方向に伸ばすために追加 */
}
.fv-card-inner {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05), 0 8px 20px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.4);
  padding: 8px;
  text-align: center;
  position: relative;
  border-bottom: 4px solid #F36A3A;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}
.fv-card-inner:hover {
  transform: translateY(-6px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08), 0 12px 28px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.fv-card-icon {
  width: 36px;
  height: auto;
  margin-bottom: 8px;
  flex-shrink: 0;
}
.fv-card-text {
  color: #000;
  font-weight: 700;
  font-size: 3vw;
  line-height: 1.6;
  text-align: center;
  margin-top: auto;
}
.fv-card-text .emphasize-number {
  color: #F36A3A;
  font-size: 1.5em;
  font-weight: 900;
}

.fv-cta {
  margin-top: 40px;
  text-align: center;
}

.cta-button {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  width: 18rem;
  margin: auto;
  padding: 1rem 4rem;
  font-weight: 700;
  font-size: 4vw;
  color: #fff; /* 文字色白 */
  border-radius: 50px; /* 丸ボタン */
  background: #FF7D02; /* 背景オレンジ */
  border: none;
  position: relative;
  box-shadow: 0 6px 0 rgb(204, 64, 0); /* ←濃くして立体感UP */
  transition: 0.4s ease;
  animation: bounce 2s infinite;
}
.cta-button:hover {
  color: #FF7D02; /* 文字色オレンジに変化 */
  background: #fff; /* 背景白に変更 */
  box-shadow: 0 4px 0 rgba(204, 64, 0, 0.8); /* 少し濃い影 */
  transform: translateY(-2px);
}

/* 上下にふわっと動くアニメーション */
@keyframes bounce {
  0% {
    box-shadow: 0 6px 0 rgb(204, 64, 0);
    top: 0px;
  }
  10% {
    box-shadow: 0 0 0 rgb(204, 64, 0);
    top: 5px;
  }
  20% {
    box-shadow: 0 6px 0 rgb(204, 64, 0);
    top: 0px;
  }
  30% {
    box-shadow: 0 0 0 rgb(204, 64, 0);
    top: 5px;
  }
  40% {
    box-shadow: 0 6px 0 rgb(204, 64, 0);
    top: 0px;
  }
  100% {
    box-shadow: 0 6px 0 rgb(204, 64, 0);
    top: 0px;
  }
}
@media (max-width: 350px) {
  .fv-card-text {
    font-size: 2.5vw;
  }
}
/* 画面幅が広い場合は文字サイズ調整 */
@media (min-width: 768px) {
  .cta-button {
    font-size: 1.7rem;
    padding: 35px 27px;
    width: 29rem;
  }
  .pc-present {
    max-width: 650px;
    margin: 0 auto;
  }
  .fv-logo-large {
    margin-top: 45px;
  }
  .fv-logo-large img {
    max-width: 286px;
  }
  .fv-card-inner {
    padding: 30px 0;
  }
  .cta-button {
    width: 21rem;
    font-size: 1.5rem;
    max-width: 368px;
    padding: 24px 16px;
  }
}
@media (min-width: 1024px) {
  main {
    background-color: #FFF5ED;
  }
  .fv-card {
    flex: 0 0 calc((100% - 30px) / 3);
  }
  .fv-wrapper {
    max-width: 1100px;
    padding-left: 0;
    padding-right: 0;
    margin: 0 auto;
  }
  .nowrap {
    display: block;
    white-space: normal;
  }
  .fv {
    padding: 20px 0 30px 0;
  }
  .fv-copy {
    font-size: 4rem;
  }
  .fv-logo img {
    width: 90px;
  }
  .fv-logo-subcopy {
    display: flex;
    align-items: center; /* 垂直方向を中央にそろえる */
    justify-content: center; /* 全体を中央寄せ */
    gap: 40px; /* ロゴとテキストの間隔 */
    flex-direction: row-reverse;
  }
  .fv-logo-large img {
    max-width: 290px;
    height: auto;
  }
  .fv-subcopy {
    font-size: 1.6rem;
    line-height: 1.8;
    text-align: left; /* PCでは左寄せに変更 */
  }
  .fv-subcopy .emphasize {
    font-size: 2rem;
  }
  .fv-subcopy .emphasize {
    font-size: 3.5rem;
  }
  .fv-copy {
    margin-top: -80px;
  }
  .fv-card-text {
    font-size: 1.6rem;
  }
  .fv-card-icon {
    width: 50px;
  }
  .fv-card-list {
    margin-top: 90px;
  }
  .fv-cta {
    margin-top: 90px;
  }
  .fv-header {
    margin-bottom: 33px;
  }
}/*# sourceMappingURL=fv.css.map */