@charset "UTF-8";

/* =========================================
   Modern CSS Reset
   ========================================= */
:where(*, *::before, *::after) {
  box-sizing: border-box;
}

body {
  margin: 0;
  /* モダンなシステムフォントスタック */
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #ffffff;
  color: #840200;
}

/* 画像などの要素が親要素からはみ出ないようにする */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* フォーム要素のフォントを継承させる */
input,
button,
textarea,
select {
  font: inherit;
}

/* 見出しや段落のあふれ防止 */
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
  margin-top: 0;
}

/* =========================================
   Base Layout & Styles
   ========================================= */

body {
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #840200;
  color: #333333;
}

/* スマホ優先時の通常背景 / PC時の背景タイリング */
@media screen and (min-width: 401px) {
  body {
    background-image: url("../images/pc.png");
    background-repeat: repeat-y;
    background-position: top;
    background-size: cover;
  }
}

main {
  display: block;
  /* メインコンテンツは最大幅400px、画面中央に配置 */
  max-width: 400px;
  margin: 0 auto;
  background-color: #840200;
  /* PC時の背景から分離するため背景色を設定 */
  overflow: hidden;
}

/* 各セクションの共通設定 */
main section {
  width: 100%;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-position: center top;
  position: relative;
  /* コンテンツを適度にセンタリング */
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 画像の縦横比等に合わせてアスペクト比を設定、背景画像を割り当て */
.fv {
  background-image: url("../images/fv.png");
  aspect-ratio: 375 / 636;
  justify-content: space-between;
  position: relative;
}

.fv h1 {
  position: absolute;
  top: 25px;
  left: 15px;
  width: 100%;
  max-width: 106.43px;
}

.fv h1 img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 106.43 /85.54;
}

@keyframes floating {

  0%,
  100% {
    transform: translate(-50%, 0);
  }

  50% {
    transform: translate(-50%, -10px);
  }
}

.download {
  position: absolute;
  bottom: 137.89px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 345px;
  animation: floating 2.5s ease-in-out infinite;
}

.download.download--if {
  bottom: 155.69px;
}

.download.download--howto {
  bottom: 152.08px;
}

.download img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 345 / 85;
}

.action-btn {
  position: absolute;
  bottom: 48.92px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 345px;
  display: block;
  animation: actionBtnScale 1.5s ease-in-out infinite;
  transition: opacity 0.3s;
}

.action-btn:hover {
  opacity: 0.8;
}

.action-btn.action-btn--if {
  bottom: 54.53px;
}

.action-btn.action-btn--howto {
  bottom: 46.34px;
}

@keyframes actionBtnScale {

  0%,
  100% {
    transform: translateX(-50%) scale(1);
  }

  50% {
    transform: translateX(-50%) scale(1.05);
    /* 拡大縮小するアニメーション */
  }
}

.gold {
  background-image: url("../images/gold.png");
  aspect-ratio: 1500 / 1852;
  margin-top: -41px;
}

.big {
  background-image: url("../images/big.png");
  aspect-ratio: 1500 / 1584;
}

.if {
  background-image: url("../images/if.png");
  aspect-ratio: 375 / 464;
  justify-content: flex-end;
  padding-bottom: 25%;
  margin-top: -1px;
}

.howto {
  background-image: url("../images/howto.png");
  aspect-ratio: 375 / 1499;
  justify-content: flex-end;
  margin-top: -30px;
}

.sns {
  background-image: url("../images/sns.png");
  aspect-ratio: 1500 / 1704;
  margin-top: -1px;
  position: relative;
}

.sns .x {
  position: absolute;
  top: 130px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 70px;
}

.sns .x img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 70 / 70;
}

.sns .instagram {
  position: absolute;
  bottom: 70px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 70px;
}

.sns .instagram img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 70 / 70;
}

.poricy {
  padding: 48px 21px;
  background-color: #fff;
  width: 100%;
  max-width: 357px;
  margin-left: auto;
  margin-right: auto;
}

.poricy h2 {
  font-size: 16px;
  font-weight: 700;
  color: #4C4C4C;
  letter-spacing: 0.03em;
  line-height: 1.48;
  margin-bottom: 32px;
}

.poricy h3 {
  font-size: 12px;
  font-weight: 700;
  color: #4C4C4C;
  letter-spacing: 0.03em;
  line-height: 1.48;
  margin-bottom: 8px;
}

.poricy-text,
.poricy-content p {
  font-size: 12px;
  font-weight: 400;
  color: #4C4C4C;
  letter-spacing: 0.03em;
  line-height: 1.48;
  margin-bottom: 24px;
}

footer {
  margin-top: 47.64px;
  margin-bottom: 96.36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

footer p small {
  font-size: 12px;
  color: #fff;
  letter-spacing: 0.03em;
  line-height: 1.48;
}