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

img {
  width: 100%;
  height: auto;
  vertical-align: top;
}

/* ベース */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

body {
  width: 100%;
  margin: 0 auto;
  line-height: 1.5;
  font-size: 15px;
  font-family: "游ゴシック", "YuGothic", sans-serif;
  font-weight: 200;
}

/* 画像マップのエリアも指カーソルに */
area {
  cursor: pointer;
}

/* 全体ラッパー */
.product-main {
  width: 100%;
  background-color: #ffffff;
}

.product-flame {
  width: 50%;
  margin: 0 auto;
  background: #ffffff;
}

@media screen and (max-width:780px){
  .product-flame {
    width: 100%;
  }
}

/* ヘッダー（ガラス風） */
header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.fade-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease-out, transform .6s ease-out;
}

.fade-up.show {
  opacity: 1;
  transform: translateY(0);
}

/* ヘッダー内フェード */
.fade {
  visibility: hidden;
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity .6s ease, transform .6s ease;
  transition-delay: .15s; 
}

.fade.fadein {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

/* ステッカー付きブロック -------------------------- */
.product-wrap{
  position: relative;
  max-width: 455px;   /* アタリ画像の横幅に近づける */
  width: 100%;
  margin: 0 auto;
}

.product{
  width: 100%;
  display: block;
}

/* ステッカー共通 */
.sticker{
  position: absolute;
  width: 4%;          /* ドットの直径：画像幅の4% */
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .28s ease, transform .28s ease;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.25));
}

.sticker.is-on-top{
  opacity: 1;
  transform: translateY(0);
}

.sticker.is-on-bottom{
  opacity: 1;
  transform: translateY(0);
}

/* ステッカーの位置（実画面見ながら微調整OK） */
.s1{ top:  6%; left: 10%; }
.s2{ top:  12%; right:37%; }

.s3{ top: 20%; left: 20%; }
.s4{ top: 37%; left: 70%; }

.s5{ top: 41%; right:56%; }
.s6{ top: 61%; left: 85%; }

.s7{ top: 78%; left:43%; }
.s8{ top: 84%; right:32%; }

/* フッターコピーライト */
.footer_copyrights {
  color: #646262;
  text-align: center;
  font-size: 14px;
  margin: 15px 15px 0;
}

/* ページトップボタン（#pagetop がある前提） */
#pagetop {
  position: fixed;
  bottom: 20px;
  right: 31%;
}

#pagetop img{
  width: 60px;
}

@media screen and (max-width:780px){
  #pagetop {
    position: fixed;
    bottom: 15px;
    right: 10px;
  }

  #pagetop img{
    width: 50px;
  }
}

/* 左メニュー（ドロワー） -------------------------- */
nav {
  display: block;
  position: fixed;
  top: 0;
  left: -300px;
  bottom: 0;
  width: 300px;
  background: #fff6f9;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transition: all .5s;
  z-index: 3000;
  opacity: 0;
}

.open nav {
  left: 0;
  opacity: 1;
}

nav .inner {
  padding: 25px;
}

nav .inner ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

nav .inner ul li {
  position: relative;
  margin: 0;
  border-bottom: 1px solid #333;
}

nav .inner ul li a {
  display: block;
  color: #333;
  font-size: 14px;
  padding: 1em;
  text-decoration: none;
  transition-duration: 0.2s;
}

nav .inner ul li a:hover {
  background: #e4e4e4;
}

@media screen and (max-width: 767px) {
  nav {
    left: -220px;
    width: 220px;
  }
}

/* マスク */
#mask {
  display: none;
  transition: all .5s;
}

.open #mask {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: .8;
  z-index: 2500;   /* header(1000) より上 */
  cursor: pointer;
}