*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background: #fff;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ========================
   HEADER
======================== */
.site-header {
  z-index: 200;
  display: flex;
  align-items: center;

}

.site-header img {
  height: 36px;
  width: auto;
  display: block;
  position: absolute;
  top: 23px;
  left: 20px;
}

/* ========================
   MAIN CONTENT
======================== */
.lp-main-content {
  width: 100%;
}

.lp-main-content img.lp-body{
  width: 100%;
}

.lp-main-content img {
  height: auto;
  display: block;
}

/* ========================
   FIXED BOTTOM BUTTON (SP・PC共通)
======================== */
.fixed-bottom-btn {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  padding: 10px 16px 16px;
  display: flex;
  justify-content: center;
}

.fixed-bottom-btn a {
  width: 100%;
  max-width: 460px;
  display: block;
}

.fixed-bottom-btn img {
  width: 100%;
  height: auto;
}


/* ========================
   FIXED SIDE (PC only) — SP非表示
======================== */
.fixed-side {
  display: none;
}

/* ========================
   FIXED SIDE LEFT LOGO (PC only) — SP非表示
======================== */
.fixed-side-left {
  display: none;
}

/* ========================
   PC STYLES (768px以上)
======================== */
@media (min-width: 768px) {

  body {
    background: url('../img/bg_white.png') center center / cover fixed;
  }

  /* ヘッダー */
  .site-header {
    width: 530px;
     position: absolute;
  margin: 0 auto; 
  }


  /* コンテンツ幅530px中央寄せ */
  .lp-main-content {
    max-width: 560px;
    margin: 0 auto;
  }


  /* 追従ボタン：PC中央寄せ */
  .fixed-bottom-btn {
    justify-content: center;
  }

  .fixed-bottom-btn a {
    max-width: 500px;
  }

  /* 左側固定ロゴ */
  .fixed-side-left {
    display: block;
    position: fixed;
    top:50%;
    left:18%;
    transform: translate(-50%, -18%);
    z-index: 999;
  }

  .fixed-side-left img {
    width: 80%;
    max-width:290px;
    height: auto;
  }

  /* 右側固定：キャラ＋ボタン重ね */
  .fixed-side {
    display: block;
    position: fixed;
    top:50%;
    left:69%;
    transform: translate(-5%, -50%);
    z-index: 999;
    width: 450px;
  }

  .fixed-side-character {
    width: 450px;
    height: auto;
    display: block;
    position: relative;
    z-index: 1;
  }

  /* ボタンをキャラの上に重ねる */
  .fixed-side-btn-wrap {
    position: absolute;
    top: 90px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    width: 280px;
  }

  .fixed-side-btn-wrap a {
    display: block;
  }

  .fixed-side-btn {
    width: 280px;
    height: auto;
    display: block;
    cursor: pointer;
    transition: transform 0.2s, filter 0.2s;
    filter: drop-shadow(0 4px 12px rgba(255,72,145,0.3));
  }

  .fixed-side-btn:hover {
    transform: scale(1.05);
    filter: drop-shadow(0 6px 18px rgba(255,72,145,0.5));
  }

  /* fixed-side を relative にして子要素を重ねる */
  .fixed-side-inner {
    position: relative;
    width: 450px;
  }
}



.shake-up {
    animation: shake-up 3s infinite ease-in-out;
}

@keyframes shake-up {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(15px);
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .fixed-side-left { display: none !important; }
  .fixed-side      { display: none !important; }
}