@charset "utf-8";
.m_main__contents {
	padding: 0;
	
}
.m_header__main,.m_header_nav {
	max-width: 1280px;	
	margin: 0 auto;
}
.m_header--bt3 {
	width: 100%;
	background:rgba( 0, 0, 0, 0.5 );

}
.m_header__search__keyword {

    font-size: 1.2rem;
}
.m_header_nav {
	background-color: inherit;
}
.m_header_nav__menu {
	display: none;
}
.m_header_nav__categories {
	background: linear-gradient(135deg, rgba(255, 242, 58, 1), rgba(224, 162, 8, 1) 80%);
	border-radius: 5px 30px 5px;
    margin-right: 10px;
}

/* ハンバーガーアイコン */
.hamburger {
  display: none;
}

.hamburger-label {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 1001;
  cursor: pointer;
	background:rgba( 0, 0, 0, 0.5 );
	border-radius: 50%;
}

.hamburger-label .icon {
  width: 32px;
  height: 32px;
  display: block;
	filter: invert(100%);
	margin: 10px;
}

/* 閉じるアイコンはデフォルトで非表示 */
.hamburger-label .close-icon {
  display: none;
}

/* メニューが開いている時、アイコンを切り替え */
#menu-toggle:checked + .hamburger-label .open-icon {
  display: none;
}

#menu-toggle:checked + .hamburger-label .close-icon {
  display: block;
}

    /* メニュー本体 */
    .nav {
      position: fixed;
      bottom: -100%;
      width: 100%;
      height: 100%;
      background: rgba( 255, 255, 255, 0.9 );
      transition: 0.3s;
      padding-top: 60px;
      z-index: 1000;
    }

    .nav ul {
      list-style: none;
      padding: 0;
    }

    .nav li {
		padding: 40px 20px;
      border-bottom: 1px solid #ccc;
		text-align: center;
		font-size: clamp(1.2rem, calc(0.2vw + 1.2rem), 1.8rem);
    }
    .nav a {
      padding: 30px 10px;
		text-decoration: none;
		color: #222;
}
	.nav li:first-child a {
	  font-weight: bold;
	  color: #d4af37;
	}

    /* オーバーレイ */
    .overlay {
      position: fixed;
      top: 0;

      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.5);
      opacity: 0;
      pointer-events: none;
      transition: 0.3s;
      z-index: 999;
    }

    /* メニューON時のスタイル */
    #menu-toggle:checked ~ .nav {
      bottom: 0;
    }
    #menu-toggle:checked ~ .nav ul {
      width: 100%;
    }
    #menu-toggle:checked ~ .overlay {
      opacity: 1;
      pointer-events: auto;
    }

    /* ハンバーガー開閉アニメーション（任意） */
    #menu-toggle:checked + .hamburger-label span:nth-child(1) {
      transform: rotate(45deg) translate(5px, 5px);
    }
    #menu-toggle:checked + .hamburger-label span:nth-child(2) {
      opacity: 0;
    }
    #menu-toggle:checked + .hamburger-label span:nth-child(3) {
      transform: rotate(-45deg) translate(6px, -6px);
    }

/*top-img*/
.top-img_box {
  max-width: 1280px;
  margin: 20px auto;
  text-align: center;
	border: 2px solid #d4af37; /* ゴールド */
	width: 100%;
	background: rgba(0,0,0,0.4);
}

.seint-buttons {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  margin: 2px 0;
}

.seint-button {
  padding: 5px;
  margin: 5px auto;
	border: 2px solid #d4af37; /* ゴールド */
	width: 90%;
	background: rgba(0,0,0,0.7);
}


.seint-button a {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
	transition: all .3s ease-in-out;
}
.seint-button a:hover,.seint-button a:active {
transform: scale(1.1);
}

.seint-button img {
  max-width: 150px;
	width: 100%;	
  height: auto;
}

.text_mincho {
  font-family: "Noto Serif JP", serif;
  font-size: 14px;
	color: #FFF;
  margin-top: 5px;
}

.top-text {
  margin: 25px 0;
	padding: 0 30px;
}

.top-text h2 {
  font-family: "M PLUS 2", serif;
	color: #d4af37;
  font-size: 28px;
}

.top-text h3 {
  font-family: "Noto Serif JP", sans-serif;
		color: #FFF;
  font-size: 18px;
  margin-top: 10px;
}

	/* スマホ対応 */
	@media screen and (max-width: 768px) {
	  .seint-buttons {
		grid-template-columns: repeat(3, 1fr);
	  }
	}

.star-sign {
  max-width: 1280px;
  margin: 20px auto;
  text-align: center;
	border: 2px solid #d4af37; /* ゴールド */
	width: 95%;
	background: rgba(0,0,0,0.4);
}

/* 震えるアニメーション */
@keyframes shake {
  0% { transform: translate(0, 0) rotate(0deg); }
  2% { transform: translate(-2px, 0) rotate(-3deg); }
  4% { transform: translate(2px, 0) rotate(3deg); }
  6% { transform: translate(-2px, 0) rotate(-3deg); }
  8% { transform: translate(2px, 0) rotate(3deg); }
  10% { transform: translate(0, 0) rotate(0deg); }
  100% { transform: translate(0, 0) rotate(0deg); } /* 残りは静止 */
}

/* 全ボタン共通 */
.seint-button img {
  max-width: 100%;
  height: auto;
  display: inline-block;
  animation: shake 12s linear infinite; /* 1サイクル12秒 */
  animation-delay: calc(var(--order) * 1s);
}

/* 個別に遅延を設定 → 各1秒ずつ震える */
.seint-button:nth-child(1) img  { animation-delay: 0s; }
.seint-button:nth-child(2) img  { animation-delay: 1s; }
.seint-button:nth-child(3) img  { animation-delay: 2s; }
.seint-button:nth-child(4) img  { animation-delay: 3s; }
.seint-button:nth-child(5) img  { animation-delay: 4s; }
.seint-button:nth-child(6) img  { animation-delay: 5s; }
.seint-button:nth-child(7) img  { animation-delay: 6s; }
.seint-button:nth-child(8) img  { animation-delay: 7s; }
.seint-button:nth-child(9) img  { animation-delay: 8s; }
.seint-button:nth-child(10) img { animation-delay: 9s; }
.seint-button:nth-child(11) img { animation-delay: 10s; }
.seint-button:nth-child(12) img { animation-delay: 11s; }


/* フェード用 */
.fader {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

.fader.hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.fader.show {
  opacity: 1;
  visibility: visible;
}

.content-wrapper {
  position: relative;
  width: 100%;
	min-height: 435px;
	max-width: 1280px;
  overflow: hidden;
	margin: 0 auto;
  transition: height 0.6s ease; 
}

.star-sign {
  position: relative;  
  margin: 0 auto;
  width: 95%;
  max-width: 1280px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

.star-sign.show {
  visibility: visible;
  opacity: 1;
}

/* 内部レイアウト */
.star-sign .content-inner {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  flex-wrap: wrap;
  box-sizing: border-box;
  padding: 10px;
}

/* 画像ブロック */
.star-sign .content-image {
  flex: 1 1 40%;
  box-sizing: border-box;
}
.star-sign .content-image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}


/* PC: content-text を縦方向中央揃え */
.star-sign .content-inner {
  display: flex;
  gap: 20px;
  align-items: center; /* ← 縦方向中央 */
  flex-wrap: wrap;
  box-sizing: border-box;
  padding: 10px;
}

/* 画像ブロック */
.star-sign .content-image {
  flex: 1 1 40%;
  box-sizing: border-box;
}

/* スマホ対応（768px以下） */
@media (max-width: 768px) {
  .star-sign .content-inner {
    flex-direction: column;
    align-items: center; /* ← 画像とテキストを中央寄せ */
  }
  .star-sign .content-image,
  .star-sign .content-text {
    flex: 1 1 100%;
    text-align: center; /* 画像ブロック内も中央寄せ */
  }

  .star-sign .content-text {
    justify-content: center; /* テキスト縦方向も中央 */
  }
}



/* 文章ブロック */
.star-sign .content-text {
  flex: 1 1 55%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  box-sizing: border-box;
}

/* タイトル */
.star-sign .content-title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(30px, 3vw, 36px);
  color: #d4af37;
  margin: 0 0 10px 0;
}

/* 説明文 */
.star-sign .content-description {
  color: #ffffff;
  font-size: clamp(15px, 1.9vw, 20px);
  line-height: 2;
  margin-bottom: 20px;
}
/* アイテムボックスのコンテナ */
.star-sign .star_item_container {
  display: flex;
  gap: 15px; /* アイテム間の余白 */
  justify-content: center; /* 中央揃え */
  align-items: flex-start;
  margin-top: 10px; /* タイトルとの間隔 */
}

/* アイテムボックス */
.star-sign .content-box.star_item {
  width: 48%; /* 2つのアイテムがほぼ均等になるように */
  max-width: 250px; /* 大きすぎるのを防ぐ */
  box-sizing: border-box;
}

.star-sign .content-box.star_item img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 18px;
	margin: 0 auto;
	padding: 10px;
}
.star_item a {
	text-decoration: none;
}
.star_item a:hover,.star_item a:active {
	opacity: 0.8;
}
.star_item p {
	border-radius: 2rem;
	margin: 3px 10px;
	padding: 5px;
    background-color: #d5ca85;
    color: #393939;	
}

/* アニメーションの定義 */
@keyframes glow-text {
  0% {
    opacity: 0.2; /* 開始時は少し透明 */
  }
  50% {
    opacity: 1; /* 中間点で完全に表示（輝き） */
  }
  100% {
    opacity: 0.2; /* 終了時は再び少し透明に戻る */
  }
}

/* アニメーションを適用する要素 */
.item-title {
	    font-family: "Noto Serif JP", serif;
    font-size: clamp(20px, 2vw, 20px);
  color: #d4af37;
	margin-bottom: 15px;
  text-shadow: 0 0 10px #fff; /* 文字の影（より輝いているように見せる） */
  animation: glow-text 2s ease-in-out infinite; /* アニメーションの適用 */
}

/* 戻るボタン */
.star-sign .back-button {
  align-self: center;
  padding: 8px 16px;
  margin: 10px 0;
  border: none;
  border-radius: 4px;
  background-color: #444444;
  color: #ffffff;
  cursor: pointer;
  font-size: clamp(16px, 1.9vw, 20px);
	transition: background-color 0.3s ease;
}

.star-sign .back-button:hover {
  background-color: #666666;
}

/* SP対応（768px以下） */
@media (max-width: 768px) {
  .star-sign .content-inner {
    flex-direction: column;
  }
  .star-sign .content-image,
  .star-sign .content-text {
    flex: 1 1 100%;
  }
}



/* 切替対象共通 */
.fader {
  position: absolute;
  top: 0;
  left: 0px;
  width: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

/* 表示中のみ通常フローに戻す */
.fader.show {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
	width: 100%;
	margin: 10px 10px 0;
}

/* 非表示 */
.fader.hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.m_header__main {
    align-items: inherit;
    }

.app_container {
	width: 100%;
}
.m_header--bt3 .m_header__functional_nav__link {
		color: #e6e6e6;
}
.m_header__functional_nav__items__group.links {
    border: 3px solid #e6e6e6;
}

@media screen and (max-width: 1199px) {
	.m_header_nav__categories {
	margin-left: 10px;	
}
	.m_header__functional_nav__link {
		font-size: 1.2rem;
		padding: 1rem 2rem;
	}
    .m_header__search {
        margin: 0 10px;
	}}

@media screen and (max-width: 599px) {
	.m_header__site_logo {
		margin: 1rem 0 1rem 2rem;
	}
	.m_header__logout {
        position: absolute;
        right: 8rem;
        top: 2.8rem;
    }
}

.m_header__search  {
    background-color: #d4af37;
    border: 5px solid #d4af37;
    border-radius: 1rem;
}
.m_header__logout a {
    background-color: #C93033;
}
/*point_login*/
.kkp_dev {
	background-color: transparent;
	padding: 0;
}
.kkp_dev .m_point_number_login_form__header {
    border-bottom: 1px solid #d4af37;
    color: #EEE;
    font-size: 1.4rem;
    font-weight: 700;
    margin: 3rem auto;
    padding: 0 0 1rem;
}
.kkp_dev .m_point_number_login_form button[type=submit], .kkp_dev .m_point_number_login_form input[type=submit] {
    background: linear-gradient(135deg, rgba(255, 242, 58, 1), rgba(224, 162, 8, 1) 80%);
    border: none;
    border-radius: 3px;
    color: #fff;
    display: block;
    margin: 2rem auto;
    padding: 1.5rem 4rem;
}
.kkp_dev .m_point_number_login_form__point_number input[type=text] {
    letter-spacing: .2rem;
    width: 25%;
    max-width: 100px;
}

.kkp_dev .m_point_number_login_form label {
    color: #EEE;
}
.kkp_dev .m_point_number_login_form input[type=email], .kkp_dev .m_point_number_login_form input[type=password], .kkp_dev .m_point_number_login_form input[type=text] {
    border: 1px solid #d4af37;
    border-radius: 3px;
    font-size: 1.8rem;
    margin: 0 .3rem;
    padding: 0 0.5rem;
    text-align: center;
}

/*footer*/
.c_debug {
	opacity:0;
	display: none;
}

