/* =========================================================
 * HERAcules Common Assets — foundation / shared-ui.css
 * 本店（junyu-fuku.com）特集ページ用 共通ヘッダー・フッター スタイル
 *
 * 構成:
 *   1. CSS変数（本店 tmp-common.css の :root を継承）
 *   2. ヘッダー/フッターのデザイン本体（milktea-mm参照デザインをベースに新規作成）
 *   3. tmp-common.cssから移植した不足パーツ（スマホ固定フッターナビ #fixedBtnSpArea）
 *   4. 補助スタイル（このチャットで新規追加）
 *
 * 【重要】既存の common/css/*.css・page.css 等には依存しません（新規独立ファイル）。
 * ========================================================= */
/* ---------------------------------------------------------
 * 1. CSS変数（本店 tmp-common.css :root より）
 * --------------------------------------------------------- */
:root {
  --main-color: #333;
  --text-color: #333;
  --text-hover-color: #B59978;
  --text-white-color: #fff;
  --bg-color: #F8F8F8;
  --bg-color2: #F5F5F5;
  --bg-white-color: #fff;
  --accent-color: #B59978;
  --sub-color: #8B8B8B;
  --font-2: "Shippori Mincho", serif;
  --alert-color: #A32F36;
  --text-red-color: #D2000E;
}

/* ---------------------------------------------------------
 * 2. ヘッダー/フッター デザイン本体
 * --------------------------------------------------------- */
/* === 共通リセット === */
/* style.css の body セレクタの最終形 */
body {
  margin-top: 0px;
  /* 本店実サイト（tmp-common.css）と同じフォント指定 */
  font-family: "Noto Serif JP", "游明朝体", "YuMincho", "游明朝", "Yu Mincho",
    "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3",
    serif;
  line-height: 1.4;
  color: #222;
  background-color: #fff;
  font-size: 16px;
  overflow-x: hidden; /* 横はみ出しの応急処置（原因未特定の残存分をここで抑える） */
}

header .main-nav .nav-link {
  text-decoration: none;
}

/* 以下の汎用要素セレクタ（img/a/ul,ol/h1-h6/p）は、かつて body 直下のグローバル指定だったが、
   ホスト側テンプレート（例: campaign-content内のページタイトルや商品カード）にまで
   意図せず適用されてしまう問題が確認されたため、Foundation自身のルート要素
   （.top-slider / .site-header / #footer-area）にスコープを絞る。
   （2026-07-15 honten.html検証: .top-payment-bnr の中央揃え崩れ、.page-title の
   text-align:center 打ち消しを確認。詳細はDECISION_LOG.md参照予定。） */
.top-slider img,
.site-header img,
#footer-area img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

.top-slider a,
.site-header a,
#footer-area a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.top-slider ul, .top-slider ol,
.site-header ul, .site-header ol,
#footer-area ul, #footer-area ol {
  list-style: none;
}

.top-slider h1, .top-slider h2, .top-slider h3, .top-slider h4, .top-slider h5, .top-slider h6,
.site-header h1, .site-header h2, .site-header h3, .site-header h4, .site-header h5, .site-header h6,
#footer-area h1, #footer-area h2, #footer-area h3, #footer-area h4, #footer-area h5, #footer-area h6 {
  font-weight: normal;
  font-size: 100%;
  margin: 0;
}

.top-slider p,
.site-header p,
#footer-area p {
  margin-top: 0;
  text-align: justify;
}

/* === アクセシビリティ用クラス === */
/* 画面上からは非表示だが、スクリーンリーダーには読み上げさせる */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  border: 0;
  padding: 0;
  white-space: nowrap;
  clip-path: inset(100%);
  clip: rect(0 0 0 0);
  /* 互換性のため */
  overflow: hidden;
}

.wrapper {
  max-width: 1320px;
  margin: 0 auto;
}

/* .sp-delete {
  display: none;
} */
/* ?★★★★★★★★ top細いスライダー ★★★★★★★★  */
/* ?★★★★★★★★ top細いスライダー ★★★★★★★★  */
/* ?★★★★★★★★ ヘッダー ★★★★★★★★  */
/* ?★★★★★★★★ ヘッダー ★★★★★★★★  */
/* === ヘッダー構造 === */
.site-header {
  margin-top: 0px;
  position: sticky;
  top: 0;
  background: #fff;
  /* border-bottom: 1px solid #e6e6e6; */
  z-index: 60;
  overflow: visible;
}

.header-top {
  position: relative;
  height: 60px;
  padding: 15px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  margin-top: 20px;
  /* margin-bottom: 10px; */
}

.header-top #logo {
    width: 179px;
    position: absolute;
    top: 57%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}
.header-top #logo img,
.header-top #logo picture {
    display: block;
    width: 100%;
    height: auto;
}

@media screen and (max-width: 767px) {
    .header-top #logo {
        width: 116px;
    }
}

.search-icon {
  position: absolute;
  top: 50%;
  right: 60px;
  transform: translateY(-50%);
}

/* 検索オーバーレイ全体 */
.search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s ease;
  z-index: 2000;
}

/* 表示時のクラス */
.search-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* 検索ボックス */
.search-box {
  background: #fff;
  border-radius: 10px;
  padding: 20px;
  width: 80%;
  max-width: 400px;
  text-align: center;
  position: relative;
  animation: slideDown 0.4s ease;
}

/* 入力欄 */
.search-box input[type="text"] {
  width: 80%;
  padding: 10px;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 5px;
}

/* ボタン */
.search-box button {
  background-color: #222;
  color: #fff;
  border: none;
  padding: 10px 15px;
  border-radius: 5px;
  cursor: pointer;
  margin-left: 5px;
}

/* 閉じるボタン */
.close-search {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 1.5rem;
  cursor: pointer;
  color: #333;
}

.top-payment-bnr {
    display: block;
    text-align: center;
    margin-bottom: 0;
    background-color: #fff;
}
.top-payment-bnr img {
    max-width: 100%;
    height: auto;
}





.header-nav-wrap ul {
  margin-bottom: 10px;
}

.cart {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}

/* snsWrap（メールアイコン/SNSアイコン列）：ヘッダー・フッター共通で使用。
   幅の条件なしで常に横並びにする（以前は1200px以上限定になっていて、
   それ未満の幅ではヘッダーは非表示、フッターは縦積みになってしまっていた） */
.snsWrap {
  display: flex;
  gap: 25px;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.hamburger {
  position: absolute;
  top: 50%;
  left: 16px;
  transform: translateY(-50%);
  /* <button>要素の標準装飾（枠線・背景・パディング）をリセットし、三本線のみのシンプルな見た目にする */
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.hamburger:focus {
  outline: none;
}

.hamburger:focus-visible {
  outline: 2px solid var(--main-color, #333);
  outline-offset: 2px;
}

.hamburger-bar {
  display: block;
  width: 22px;
  height: 2px;
  background: #222;
  margin: 5px 0;
}

.hamburger-sns {
  width: 80%;
  margin: 0 auto;
  padding: 10px 0 10px 0;
}

.hamburger-sns ul {
  padding: 0px;
  display: flex;
}

.hamburger-sns li {
  float: left;
  width: 20%;
  margin: 0;
  padding: 5px 0px 5px 10px;
  border: 0;
  box-sizing: border-box;
}

.hamburger-footer li {
  font-size: 15px;
  padding: 14px;
}

/* === ナビ（スマホベース） === */
.main-nav {
  position: fixed;
  top: 0px;
  left: 0;
  width: 70%;
  background: #fff;
  transform: translateX(-110%);
  transition: transform 0.36s ease;
  padding: 18px 0;
  box-shadow: 2px 0 14px rgba(0, 0, 0, 0.12);
  bottom: 0;
  overflow-y: auto;
}

body.mobile-open .main-nav {
  transform: translateX(0);
}

.drawer-quicklinks {
  list-style: none;
  margin: 40px 0 24px;
  padding: 0 16px;
  border-bottom: 6px solid #f0f0f0;
}

.drawer-quicklink {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid #eee;
  color: #333;
  font-size: 14px;
  text-decoration: none;
}

.top-category2 {
  margin: 40px 0 0 0;
  padding-left: 16px;
  font-size: 20px;
}

/* シーン別に探す／ギフトにおすすめ（新規追加分） */
.parentCategory {
  list-style: none;
  margin: 0;
  padding: 0 16px;
}

.parentCategory > li > a {
  display: block;
  padding: 14px 0 14px 10px;
  border-bottom: 1px solid #eee;
  color: #333;
  font-size: 14px;
  text-decoration: none;
}

.childCategory {
  list-style: none;
  margin: 0;
  padding: 0 0 0 16px;
}

.childCategory li a {
  display: block;
  padding: 10px 16px 10px 30px;
  border-bottom: 1px solid #f5f5f5;
  color: #666;
  font-size: 13px;
  text-decoration: none;
}

/* LINEお友だち追加バナー・SNSアイコン（ドロワー最下部）
   デバイス幅に依らず中央寄せするため、固定marginではなくflexで中央揃えする */
#drawer_others2 {
  margin-top: 24px;
  padding: 0 16px;
  text-align: center;
}

#drawer_others2 img {
  max-width: 100%;
  height: auto;
}

/* お知らせ系バナー4枚（2×2グリッド） */
#drawer_others {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 16px;
  padding: 0 16px;
}

#drawer_others img {
  display: block;
  width: 100%;
  height: auto;
}

#drawer_snsIcon {
  margin-top: 45px;
  padding: 0 16px 24px;
}

#drawer_snsIcon .drawer-sns-list {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}

#drawer_snsIcon .drawer-sns-list img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

/* フッターリンク一覧
   class="clearfix"は既存の汎用.clearfix（display:flex等）と衝突するため
   使用しない。#drawer_footer専用にすべて明示指定する。 */
#drawer_footer {
  display: block;
  list-style: none;
  margin: 24px 0 0;
  padding: 16px;
  border-top: #000 solid 1px;
}

#drawer_footer li a {
  display: block;
  padding: 4px 5px;
  color: #333;
  font-size: 13px;
  text-decoration: none;
}

.nav-close {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 30px;
  height: 30px;
  background: none;
  cursor: pointer;
}

.nav-close::before,
.nav-close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: #333;
}

.nav-close::before {
  transform: rotate(45deg);
}

.nav-close::after {
  transform: rotate(-45deg);
}

.overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.36s ease;
  z-index: 10000;
}

body.mobile-open .overlay {
  opacity: 1;
  pointer-events: auto;
  left: 70%;
  width: 30%;
}

.nav-list {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}

.nav-item {
  position: relative;
}

.nav-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 16px 16px 26px;
  background: #fff;
  color: #333;
  border-radius: 4px;
}

/* ▼ ミニマル矢印 */
.arrow {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 2px solid #999;
  border-bottom: 2px solid #999;
  transform: rotate(45deg);
  margin-left: 6px;
  transition: transform 0.3s ease;
}

.parent-link-disabled {
  /* リンクのクリックイベント（pointer events）をすべて無効化 */
  pointer-events: none;
  /* (任意) 無効化されたことが分かるように見た目を変更 */
  cursor: default;
  /* マウスオーバー時にカーソルを通常に戻す */
  opacity: 0.7;
  /* 不透明度を下げて無効化されている感を出す */
}

/* 初期状態：下向き */
.nav-item.has-children .arrow {
  transform: rotate(45deg);
  transition: transform 0.3s ease;
}

/* 開いた状態：上向き */
.nav-item.has-children.open .arrow {
  transform: rotate(225deg);
}

/* ▼ サブメニュー（共通） */
.sub-menu {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
  background: #f9f9f9;
  border-radius: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sub-menu li {
  padding: 10px 14px;
}

.sub-menu li a {
  font-size: 13px;
  padding: 10px 14px;
}

.arrow-background {
  background-color: #000;
}

.nav-item.open .sub-menu {
  max-height: 600px;
  padding: 8px 16px;
  opacity: 1;
  visibility: visible;
}

/* ?★★★★★★★★ スマホ 独自ヘッダー ★★★★★★★★  */
/* ?★★★★★★★★ スマホ 独自ヘッダー ★★★★★★★★  */
.header-sp-nav {
  width: 100%;
}

.header-sp-nav ul {
  background-color: #f8f8f8;
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.header-sp-nav ul li {
  flex: 1;
  position: relative;
}

.header-sp-nav ul li a {
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}

/* style000.css の任意の場所（モバイルで適用される場所）に追加 */
/* 💥 メインメニューが開いた時、透けて見えるクイックリンクを非表示にする */
body.mobile-open .header-sp-nav {
  display: none;
}

/* ?★★★★★★★★ スマホ フルブリード ★★★★★★★★  */
/* ?★★★★★★★★ スマホ フルブリード ★★★★★★★★  */
.hero {
  position: relative;
  /* 子要素 (overlay) を重ねるための基準 */
  width: 100%;
}

.hero picture img {
  width: 100%;
  height: auto;
  display: block;
  /* 画像下の余分な隙間を消す */
}

.hero::before {
  /* <-- この疑似要素を追加 */
  content: "";
  /* 必須 */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  /* <-- 黒（0,0,0）を30%（0.3）透明で重ねる */
  z-index: 1;
  /* 画像 (z-indexなし) の上、テキスト (z-index: 2) の下になるように */
}

.hero picture img {
  width: 100%;
  height: auto;
  display: block;
  position: relative;
  /* z-index が効くように */
  z-index: 0;
  /* 必要であれば */
}

.main-visual {
  position: relative;
  width: 100%;
  aspect-ratio: 750 / 744;
  /* SP画像の比率 */
  overflow: hidden;
  background-color: #fff;
}

/* 共通のアニメーション設定 */
.fade-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  animation: fadeChange4 12s infinite;
}

/* SPの時はPC用を消す */
.pc-only {
  display: none !important;
}

/* SP用の4枚（5〜8番目）にディレイをかける */
.sp-only:nth-of-type(5) {
  animation-delay: 0s;
}

.sp-only:nth-of-type(6) {
  animation-delay: 3s;
}

.sp-only:nth-of-type(7) {
  animation-delay: 6s;
}

.sp-only:nth-of-type(8) {
  animation-delay: 9s;
}

/* アニメーションの中身（共通） */
@keyframes fadeChange4 {
  0% {
    opacity: 0;
    z-index: 2;
  }

  8% {
    opacity: 1;
    z-index: 2;
  }

  /* 約1秒かけて表示 */
  25% {
    opacity: 1;
    z-index: 2;
  }

  /* 表示を維持（3秒付近まで） */
  33% {
    opacity: 0;
    z-index: 1;
  }

  /* 次の画像が出るタイミングで消える */
  100% {
    opacity: 0;
  }
}

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

.main-ccWrap {
  padding-top: 30%;
  justify-content: flex-start;
  position: absolute;
  z-index: 2;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.main-ccWrap .cc-text {
  font-weight: 400;
  font-size: 6vw;
  /* font-size: 32px; */
  margin: 0 0 20px;
  color: white;
  text-align: center;
  line-height: 1.2;
}

.btnWrap {
  width: 100%;
}

.btn._white {
  background-color: transparent;
  border: 1px solid white;
  color: white;
}

.btn {
  background-color: transparent;
  border: 1px solid black;
  color: black;
  max-width: 280px;
  width: 100%;
  height: 60px;
  font-size: 14px;
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  position: relative;
  transition: all ease 0.1s;
  margin: 0 auto;
}

.btn-section {
  background-color: transparent;
  border: 1px solid black;
  color: black;
  max-width: 280px;
  width: 100%;
  height: 60px;
  font-size: 14px;
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  position: relative;
  transition: all ease 0.1s;
  margin: 0 auto;
}

.btn2 {
  background-color: transparent;
  border: 1px solid black;
  color: black;
  max-width: 280px;
  width: 100%;
  height: 60px;
  font-size: 14px;
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  position: relative;
  transition: all ease 0.1s;
  margin: 0 auto;
  margin-top: 40px;
}

.btn-section-zone {
  padding: 15px 0 60px 0;
}

.btn-section-zone2 {
  padding: 30px 0 0px 0;
  margin-top: 0px;
}

.sp {
  display: block;
}

/* ?★★★★★★★★ 送料について ★★★★★★★★  */
/* ?★★★★★★★★ 送料について ★★★★★★★★  */
.b-main-text {
  position: relative;
  color: #fff;
  background-color: rgba(93, 93, 93, 1);
  padding: 7px 15px 11px;
  font-size: 14px;
  width: 100%;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 11px;
  line-height: 1.3;
  z-index: 5;
}

/* ?★★★★★★★★ お知らせ ★★★★★★★★  */
/* ?★★★★★★★★ お知らせ ★★★★★★★★  */
.top-newsArea {
  margin: 20px 0;
  padding-left: 15px;
  padding-right: 15px;
}

.top-newsArea-item {
  border: 1px solid #333;
  padding: 20px 15px;
  background-image: linear-gradient(225deg, #333 30px, transparent 0);
}

.top-newsArea-item .title {
  font-size: 20px;
  margin-bottom: 20px;
}

.container-background {
  background-color: #ffffff;
  /* margin-bottom: 40px; */
}

.container-background-gray {
  background-color: #F8F8F8;
  /* margin-bottom: 40px; */
}

.background-gray {
  background-color: #F8F8F8;
}

.container {
  max-width: 1170px;
  padding-left: 15px;
  padding-right: 15px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  transition: ease-in 0.1s;
  box-sizing: border-box;
}

.container222 {
  max-width: 750px;
  margin-top: 60px;
  padding-left: 15px;
  padding-right: 15px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  transition: ease-in 0.1s;
}

.top-newsArea-item .title {
  font-size: 18px;
  margin-bottom: 15px;
}

.textCenter {
  text-align: center;
}

.mb10 {
  margin-bottom: 10px;
}

.underline {
  text-decoration: underline;
}

.alert-color {
  color: #a32f36;
}

/* ?★★★★★★★★ 5のつく日バナー ★★★★★★★★  */
/* ?★★★★★★★★ 5のつく日バナー ★★★★★★★★  */
.five-days {
  margin: 10px auto;
  max-width: 100%;
  height: auto;
}

/* ?★★★★★★★★ タイマー ★★★★★★★★  */
/* ?★★★★★★★★ タイマー ★★★★★★★★  */
.timer {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 1100px;
  width: 100%;
  /* 修正: 親要素(wrapper)の幅を最大限利用 */
  margin: 10px auto;
}

.timer img {
  /* 💡 追加: 中の画像が親要素からはみ出ないように設定 */
  max-width: 100%;
  height: auto;
}

.timer a {
  display: block;
  width: fit-content;
  /* 💡 子要素(aタグ)の幅をコンテンツの幅に合わせる */
  margin: 0 auto;
  /* 💡 ブロック要素として中央寄せ */
  width: 100%;
  max-width: 100%;
  /* レスポンシブ対応 */
}

.timer a img {
  /* 画像が親の幅を絶対に超えないように */
  max-width: 100%;
  width: 100%;
  height: auto;
}

.timer-list li {
  margin-bottom: 20px;
}

/* ?★★★★★★★★ スライダー ★★★★★★★★  */
/* ?★★★★★★★★ スライダー ★★★★★★★★  */
.slider {
  width: 100%;
}

.slick-slider2 {
  align-items: center;
  margin: 0 auto;
  margin-top: 20px;
  margin-bottom: 0px;
  padding: 0;
}

.slider img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
}

.slick-slide {
  /* 💥 修正：上下マージン0、左右マージン15pxを追加 */
  margin: 0 15px;
}

.slick-dots {
  text-align: center;
  padding: 30px 0;
  margin: 0;
  display: flex;
  justify-content: center;
  list-style: none;
}

.slick-dots li {
  margin: 0 6px;
  padding: 0;
}

.slick-dots li button {
  font-size: 0;
  /* 文字を消す */
  line-height: 0;
  display: block;
  width: 12px;
  /* 丸の幅 */
  height: 12px;
  /* 丸の高さ */
  padding: 0;
  border: 1px solid #333;
  /* 枠線 */
  background: #fff;
  /* 通常時の色 */
  border-radius: 50%;
  /* 真ん丸にする */
  cursor: pointer;
  outline: none;
  transition: all 0.3s ease;
}

.slick-dots li.slick-active button {
  background: #333;
  /* アクティブ時の色 */
}

/* ?★★★★★★★★ 特集まとめ ★★★★★★★★  */
/* ?★★★★★★★★ 特集まとめ ★★★★★★★★  */
.mt60 {
  margin-top: 60px;
}

.parts-cat-box {
  position: relative;
  max-height: 380px;
  overflow: hidden;
  transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.specialpage-list ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 0;
  list-style: none;
}

.specialpage-list li {
  box-sizing: border-box;
  width: 48%;
  margin: 0.6%;
  padding: 12px;
}

.specialpage-list ul li a {
  display: block;
}

.js-more-btn:hover {
  transform: translateY(3px);
  opacity: 0.6;
}

.js-more-btn {
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
  max-width: 150px;
  height: 40px;
  transition: transform 0.3s ease;
}

.parts-cat-box::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 120px;
  background: linear-gradient(to top, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.7) 50%, rgba(255, 255, 255, 0) 100%);
  transition: opacity 0.4s;
  pointer-events: none;
  z-index: 2;
}

.parts-cat-box.is-open {
  max-height: 4000px;
  /* 高さを全開にする（大きな数値を入れる） */
}

.parts-cat-box.is-open::after {
  opacity: 0;
}

.more-btn-wrapper {
  margin-bottom: 40px;
}

.specialpage-list li:nth-child(n + 7) {
  display: none;
}

/* ?★★★★★★★★ 新作アイテム ★★★★★★★★  */
/* ?★★★★★★★★ 新作アイテム ★★★★★★★★  */
.item-list-headline {
  margin-bottom: 15px;
  position: relative;
  text-align: center;
}

.item-list-headline h2 {
  display: inline-block;
  position: relative;
  margin-top: 40px;
  margin-bottom: 15px;
  /* padding: 15px 20px 0 20px; */
  z-index: 1;
  background: #fff;
  font-family: "Shippori Mincho", serif;
}

.item-list-headline h2 .big-Word {
  font-size: 24px;
}

.item-list-headline h2 .small-Word {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.8);
}

.item-list {
  margin: 15px auto 30px auto;
}

.item-list ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 0;
  list-style: none;
}

.item-list li {
  box-sizing: border-box;
  width: 48%;
  margin: 1%;
  padding: 0;
}

.item-list li:nth-child(n + 5) {
  width: 32%;
  margin: 0.6%;
  padding-bottom: 0;
}

.item-list li:nth-child(n + 11) {
  display: none;
}

.item-name {
  margin: 5px 0 3px 3px;
  font-size: 0.8rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  display: box;
  box-orient: vertical;
  line-clamp: 2;
}

.price {
  font-size: 0.8rem;
  margin-bottom: 5px;
}

/* ?★★★★★★★★ 再入荷アイテム ★★★★★★★★  */
/* ?★★★★★★★★ 再入荷アイテム ★★★★★★★★  */
.restock {
  width: 100%;
  margin: 15px auto 30px auto;
  overflow-x: auto;
  white-space: nowrap;
  /* 横スクロールのための設定 */
}

.restock_html {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}

.restock_html li {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  min-width: 40%;
  padding: 5px;
  font-size: 0.7em;
  text-align: left;
  flex-wrap: wrap;
  overflow: hidden;
  /* Flexboxレイアウトのみ */
}

/* テキスト省略はテキスト要素にだけ */
.restock_html li .restock-text {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  /* 標準プロパティも追加 */
  display: box;
  box-orient: vertical;
  line-clamp: 3;
}

.restock_html img {
  max-width: 100%;
  /* 画像の幅を親要素に収める */
  height: auto;
  /* 画像の高さを自動調整 */
  display: block;
  /* 画像のブロック要素化 */
}

/* ?★★★★★★★★ ランキング ★★★★★★★★  */
/* ?★★★★★★★★ ランキング ★★★★★★★★  */
/* ?★★★★★★★★ ランキング ★★★★★★★★  */
/* ?★★★★★★★★ ランキング ★★★★★★★★  */
.rankingItems {
  margin-bottom: 30px;
}

.content_area {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  box-sizing: border-box;
}

#rankingItems {
  margin-top: 30px;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  list-style: none;
  /* リストの点（黒丸）を消す */
  padding: 0;
  padding-left: 15px;
  padding-right: 15px;
}

.rankingItems .content_area {
  width: 100%;
}

.rankingItems .content_area li div {
  font-size: 0.9em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  /* 最大2行に制限 */
  overflow: hidden;
  text-overflow: ellipsis;
  /* テキストが溢れた場合に省略記号を表示 */
  line-clamp: 2;
}

.item-thumb {
  width: 100%;
  height: auto;
}

#rankingItems li a {
  /* 絶対配置の基準にするため、これを設定する！ */
  position: relative;
  /* リンク全体が基準になるように、display:block; にしておくのが安全だが、 */
  /* 通常リンクはインライン要素なので、レイアウトによっては必要になる */
  display: block;
}

#rankingItems li p {
  line-height: 1.4em;
  /* 基準となる行の高さ */
  margin: 0;
  padding: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  display: box;
  box-orient: vertical;
  line-clamp: 2;
}

/* 2. 最初の <p> のみ（順位バッジ）を左上に固定 */
#rankingItems li a>p:nth-of-type(1) {
  width: 25px;
  position: absolute;
  top: 22px;
  left: 0;
  z-index: 10;
  margin: 0;
}

/* 2. 商品名：最大2行 (line-height 1.4em * 2 = 2.8em) */
/* div内の最初のp、つまり商品名をターゲット */
#rankingItems li div>p:nth-of-type(2) {
  max-height: 2.8em;
  overflow: hidden;
}

/* 3. 価格：1行 (line-height 1.4em) */
#rankingItems li p.price {
  max-height: 1.4em;
  overflow: hidden;
  margin-top: 2px;
  /* 商品名と価格の間に少し間隔をあける */
}

.clearfix {
  display: flex;
  flex-wrap: wrap;
  gap: 6.5px 28px;
}

.clearfix li.is-active {
  /* アクティブなタブには下線と文字色を設定 */
  color: #000000;
  cursor: pointer;
  border-bottom: 1px solid #000000;
  /* 下線の色も黒で指定 */
}

.content_blocky ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 0;
  list-style: none;
}

.content_blocky li {
  box-sizing: border-box;
  width: 48%;
  margin: 1%;
  margin-bottom: 20px;
  padding: 0;
}

.content_blocky li:nth-child(n + 5) {
  width: 32%;
  margin: 0.6%;
  padding-bottom: 0;
}

.item-visual {
  position: relative;
  /* 子要素（No1）の基準点にする */
}

.rank-icon {
  position: absolute;
  /* 親（item-visual）に対して自由に配置 */
  top: 0;
  left: 0;
  z-index: 10;
  /* 商品画像より上に表示 */
  width: 15px;
  /* サイズは適宜調整 */
}

#rankingItems00 {
  margin-top: 30px;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  list-style: none;
  /* リストの点（黒丸）を消す */
  padding: 0;
  margin: 0;
}

#rankingItems00 li {
  box-sizing: border-box;
  width: 46%;
  margin: 1%;
  padding: 12px;
}

#rankingItems00 li:nth-child(n + 3) {
  width: 32%;
  margin: 0.6%;
  padding-bottom: 0;
}

#rankingItems00 li:nth-child(n + 6) {
  display: none;
}

/* ?★★★★★★★★ コーディネート ★★★★★★★★  */
/* ?★★★★★★★★ コーディネート ★★★★★★★★  */
/* 1. 親要素 (<ul>) を Flexbox コンテナにする */
.coordinate ul {
  display: flex;
  /* 子要素を横並びにする */
  list-style: none;
  /* リストの点（・）を非表示にする */
  padding: 0;
  /* ulにデフォルトで設定されている内側の余白をリセット */
  margin: 0;
  /* ulにデフォルトで設定されている外側の余白をリセット */
  width: 100%;
  /* 親要素の幅いっぱいに広げる */
  margin-bottom: 50px;
}

/* 2. 子要素 (<li>) を均等に配置する */
.coordinate ul li {
  /* flex-basis: 0; */
  flex-grow: 1;
  /* すべての li が残りのスペースを均等に占めるようにする */
  flex-shrink: 1;
  /* 必要に応じて縮小できるようにする */
  text-align: center;
  /* 画像を中央に寄せる（liの内側で） */
  margin: 0;
  /* li間の余白をリセット */
}

/* 3. 画像 (<img>) のスタイル調整 */
.coordinate ul li img {
  display: block;
  /* 画像がインライン要素として持っている隙間をなくす */
  width: 100%;
  /* liの幅いっぱいに画像を広げる */
  height: auto;
}

/* 4. リンク (<a>) のスタイル調整 */
.coordinate ul li a {
  display: block;
  /* li全体をクリック可能にするためブロック要素にする */
}

/* ?★★★★★★★★ 画像 ＋ テキスト ★★★★★★★★  */
/* ?★★★★★★★★ 画像 ＋ テキスト ★★★★★★★★  */
.column2-2l-wrap {
  display: grid;
}

.column2-2l-box {
  grid-template-columns: 1fr;
}

.column2-2l-box {
  display: grid;
  background-color: #fff;
}

.column2-2l-box .img {
  position: relative;
  z-index: 0;
}

.column2-2l-box img {
  aspect-ratio: 1.4;
  object-fit: cover;
}

.column2-2l-box .txt-box {
  padding: 20px 15px 40px;
  flex-direction: column;
  display: flex;
  flex-wrap: wrap;
}

.top-titleh2._left,
.top-titleh2._left .title {
  text-align: left;
}

.fs14 {
  font-size: 14px;
}

.top-titleh2 .en {
  font-weight: 500;
  font-size: 24px;
  font-family: "Shippori Mincho", serif;
  line-height: 1.2;
  margin: 0;
}

.top-titleh2 .title {
  font-size: 16px;
  margin: 20px 0 0;
  text-align: center;
  font-weight: 400;
}

.mt20 {
  margin-top: 20px;
}

.fs16 {
  font-size: 16px;
}

/* ?★★★★★★★★ ギフト + 新作 ★★★★★★★★  */
/* ?★★★★★★★★ ギフト + 新作 ★★★★★★★★  */
.column2btn-wrap {
  grid-template-columns: 1fr;
}

.column2btn-box._1 {
  background: linear-gradient(rgba(0, 0, 0, .3)), url(https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/link-bc-gift.webp) no-repeat center / cover;
}

.column2btn-box {
  padding: 36px 15px 40px;
  display: flex;
  flex-direction: column;
}

.column2btn-box .top-titleh2_2 {
  margin-bottom: 30px;
}

.column2btn-box .top-titleh2_2 .en {
  font-size: 32px;
  margin-bottom: 16px;
}

.column2btn-box .top-titleh2_2 .title {
  font-size: 14px;
}

.top-titleh2_2._white {
  color: white;
}

.top-titleh2_2 {
  margin: 0 0 40px;
  text-align: center;
}

.column2btn-box._2 {
  background: linear-gradient(rgba(0, 0, 0, .3)), url(https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/link-bc-rentalService.webp) no-repeat center / cover;
}

/* ?★★★★★★★★ 下段カテゴリー ★★★★★★★★  */
/* ?★★★★★★★★ 下段カテゴリー ★★★★★★★★  */
.cont {
  margin-top: 30px;
}

.parts-cat-main {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
}

.parts-cat-mainBox {
  height: 330px;
  padding: 27px 30px;
}

.parts-cat-mainBox._1 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-cat-bg01.webp');
}

.parts-cat-mainBox._2 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-cat-bg02.webp');
}

.parts-cat-mainBox._3 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-cat-bg03.webp');
}

.parts-cat-mainBox._4 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-cat-bg04.webp');
}

.parts-cat-mainBox._5 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-cat-bg05.webp');
}

.parts-cat-mainBox._6 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-cat-bg06.webp');
}

.parts-cat-mainBox a {
  color: #fff;
}

.parts-cat-mainBox .cat-name {
  font-size: 24px;
  margin-bottom: 6px;
}

.parts-cat-mainBox .cat-name-child {
  font-size: 14px;
  margin-bottom: 7px;
}

.parts-cat-mainBox .link {
  position: absolute;
}

.parts-cat-sceneBox {
  height: 148px;
}

.parts-cat-sceneBox._1 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-catscene-bg01.webp');
}

.parts-cat-sceneBox._2 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-catscene-bg02.webp');
}

.parts-cat-sceneBox._3 {
  background-image: url('https://shopping.geocities.jp/milktea-mm/tmp-parts/img/top/categories/top-catscene-bg03.webp');
}

.parts-cat-sceneBox a {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
}

.parts-cat-sceneBox a p {
  color: #fff;
}

.brand-5Wrap .logo {
  border: 1px solid var(--main-color);
  margin-bottom: 10px;
}

.brand-5Wrap p {
  text-align: center;
}

.bg-m-Box {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  z-index: 0;
}

.bg-m-Box::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background-color: rgba(0, 0, 0, .3);
}

@media screen and (max-width: 967px) {
  .parts-cat-main {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (max-width: 767px) {
  .parts-cat-main {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .parts-cat-mainBox {
    height: 160px;
  }

  .parts-cat-mainBox .link {
    inset: 0;
    z-index: 1;
  }

  .parts-cat-mainBox .cat-name-child {
    display: none;
  }
}

/* ?★★★★★★★★ コンセプトからインフォメーションまで ★★★★★★★★  */
/* ?★★★★★★★★ コンセプトからインフォメーションまで ★★★★★★★★  */
/* #★★ コンセプト ★★  */
/* #★★ コンセプト ★★  */
.parts-n-wrap {
  display: grid;
  row-gap: 30px;
  max-width: 720px;
  margin: 0 auto;
}

.parts-n-box {
  display: flex;
  gap: 9px 60px;
  font-size: 14px;
  flex-direction: column;
}

.parts-n-box time {
  flex-shrink: 0;
}

.parts-n-box .title {
  margin: 0;
  font-weight: 400;
}

/*.parts-mm*/
.parts-mm {
  margin-bottom: 20px;
}

.parts-mm-Wrap {
  padding: 60px 30px;
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
  align-items: center;
  text-align: center
}

.parts-mm-Wrap .top-titleh2 {
  flex-shrink: 0;
}

.parts-mm-Wrap .btn {
  width: 280px;
}

/*.parts-mc*/
#parts-mc {
  margin: 20px 0 60px;
}

.parts-mc-Wrap {
  border: 1px solid #707070;
  padding: 60px 30px;
  display: flex;
  align-items: center;
  flex-direction: column-reverse;
  row-gap: 35px;
}

/*.greeting-bnr-area*/
.greeting-bnr-area {
  margin-top: 60px;
}

.parts-mm-Wrap .top-titleh2._left,
.parts-mm-Wrap .top-titleh2._left>p {
  text-align: center;
}

.parts-mc-Wrap .top-titleh2._left {
  text-align: center;
}

.parts-mm-Wrap .top-titleh2._left .title,
.parts-mc-Wrap .top-titleh2._left .title {
  text-align: center;
  margin-top: 10px;
}

/*.greeting-bnr-area*/
.greeting-bnr-area {
  margin-top: 40px;
}

@media screen and (max-width: 767px) {
  #parts-c p {
    font-size: 14px;
  }
}

.top-titleh3._center {
  text-align: center;
}

.top-titleh3 {
  margin: 0 0 40px;
  line-height: 1.2;
  font-weight: 400;
}

.top-parts-p {
  padding: 0px 0 60px 0;
}

.btnWrap-concept {
  width: 100%;
  margin-top: 40px;
}

/* #★★ ミルクティーが出来るまで ★★  */
/* #★★ ミルクティーが出来るまで ★★  */
.greeting-bnr-area {
  margin-top: 40px;
}

/* #★★ 下段 news お知らせ  ★★  */
/* #★★ 下段 news お知らせ  ★★  */
.top-parts-m {
  margin: 60px 0;
}

.parts-n-box2 {
  flex-direction: column;
  display: flex;
  gap: 9px 60px;
  font-size: 14px;
}

/* #★★ MAIL MAGAZINE  ★★  */
/* #★★ MAIL MAGAZINE  ★★  */
.mail {
  margin-top: 10px;
}

.bg-color2 {
  background-color: #F8F8F8;
  margin: 60px 0 0px 0;
}

.en {
  font-weight: 500;
  font-size: 24px;
  font-family: "Shippori Mincho", serif;
  line-height: 1.2;
  margin: 0;
}

.item-list-headline {
  margin-bottom: 15px;
  position: relative;
  text-align: center;
}

/* #★★ INFOMATION  ★★  */
/* #★★ INFOMATION  ★★  */
.top-btn-column3pc-wrap,
.btn-column3pc-wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.top-btn-column3pc-wrap .btn,
.btn-column3pc-wrap .btn {
  max-width: initial;
  background-image: url(https://shopping.geocities.jp/milktea-mm/tmp-parts/img/common/icon-arrow.svg);
  background-repeat: no-repeat;
  background-position: center right 15px;
  background-size: 8px 14px;
  text-align: center;
}

/* ?★★★★★★★★ フッター ★★★★★★★★  */
/* ?★★★★★★★★ フッター ★★★★★★★★  */
footer {
  min-width: 100%;
  width: 100%;
}

#footer-AreaWrap {
  padding: 42px 0 100px;
  background-color: #333;
  color: white;
  font-size: 14px;
}

#footerNaviWrap .footerNavi {
  display: none;
  gap: 60px;
  /* margin-bottom: 60px; */
}

#footerNaviWrap .footerNavi dl:not(:last-child) {
  border-right: 1px solid #707070;
}

#footerNaviWrap .footerNavi dl dt:first-child {
  font-size: 18px;
  margin-bottom: 19px;
}

#footer-AreaWrap nav a {
  color: white;
}

.footer-links {
  flex-direction: column;
  margin-bottom: 40px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 15px 50px;
}

.footer-links2 {
  flex-direction: column;
  /* margin-bottom: 40px; */
  display: flex;
  flex-wrap: wrap;
  gap: 15px 50px;
}

#footer-AreaWrap nav a {
  color: white;
}

.footer-m-Wrap {
  display: flex;
  gap: 20px 50px;
  /* margin-bottom: 40px; */
  flex-wrap: wrap;
}

.footer-m-Wrap .footer-m-box .logo2 {
  width: 166px;
}

.footer-m-Wrap .footer-m-box.flex-column {
  width: 100%;
  margin-bottom: 20px;
}

.mb40 {
  margin-bottom: 40px;
}

.pageTopBtn {
  padding: 20px 0 0;
  border-bottom: none;
  border-top: 1px solid #707070;
  text-align: right;
}

.footer-b-Wrap {
  align-content: center;
  flex-direction: column;
  text-align: center;
}

.footer-b-Wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
  gap: 40px 55px;
  margin-top: 30px;
}

.pageTopBtn2.fixed {
  bottom: 10px;
  opacity: 1;
  transition: 0.6s;
}

.pageTopBtn2 {
  position: fixed;
  right: 5px;
  bottom: -60px;
  opacity: 0;
  transition: 0.6s;
  z-index: 5;
}

@media screen and (min-width: 890px) and (max-width: 1219px) {
  #footerNaviWrap .footerNavi {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ?★★★★★★★★ テキスト ★★★★★★★★  */
/* ?★★★★★★★★ テキスト ★★★★★★★★  */
/* ?★★★★★★★★ テキスト ★★★★★★★★  */
@media (min-width: 1000px) {

  /* ========================================= */
  /* ★★★ 背景画像を無限スクロールさせるアニメーション定義 ★★★ */
  /* ========================================= */
  @keyframes slide-banner {

    /* アニメーション開始時（0%） */
    from {
      /* 背景の位置を初期位置 (左端) に設定 */
      background-position: 0 0;
    }

    /* アニメーション終了時（100%） */
    to {
      /* 背景の位置を左に大きくずらす (例: 画像2枚分の幅) */
      /* ここでは 200vw (ビューポート幅の2倍) を使用しますが、
       画像の幅が固定ならその幅に合わせて調整すると滑らかになります。
       例: バナー幅が 500px の場合、-1000px 0 に設定 */
      background-position: -200vw 0;
    }
  }

  /* ========================================= */
  /* ★★★ #timer-top 要素の横リピート設定 (アニメーションとリンク対応) ★★★ */
  /* ========================================= */
  #timer-top {
    /* background-image はJS(runHeaderTimer)が動的に設定する。CSS側には書かない */
    background-repeat: repeat-x;
    background-size: auto 100%;
    /* 2. 高さの確保 */
    height: 47px;
    /* 確定した高さ */
    /* 3. アニメーションの適用 */
    animation: slide-banner 70s linear infinite;
    /* 4. 表示と配置の設定 */
    width: 100%;
    position: relative;
    /* リンク要素の基点とする */
    overflow: hidden;
    /* 背景アニメーションの移動範囲を制限 */
  }

  /* !======================   timer-top   =================== */
  /* 6. ★★★ <a> タグを親要素 (#timer-top) 全体に広げる ★★★ */
  #timer-top a {
    position: absolute;
    /* 親要素を基点に配置 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    /* 他の要素より手前に配置 */
    cursor: pointer;
  }

  /* 7. 元の img タグは完全に非表示にする */
  #timer-top img {
    display: none !important;
  }

  /* 8. 元の .top-header-bnr img の設定は削除または上書きする */
  /* 既存のCSSと競合するため、これは削除するかコメントアウト推奨 */
  /* .top-header-bnr img {
   width: 500px;
   height: auto;
   flex-shrink: 0;
} */
  /* !======================   timer-top2   =================== */
  #timer-top2 {
    /* background-image はJS(runHeaderTimer)が動的に設定する。CSS側には書かない */
    background-repeat: repeat-x;
    background-size: auto 100%;
    /* 2. 高さの確保 */
    height: 47px;
    /* 確定した高さ */
    /* 3. アニメーションの適用 */
    animation: slide-banner 70s linear infinite;
    /* 4. 表示と配置の設定 */
    width: 100%;
    position: relative;
    /* リンク要素の基点とする */
    overflow: hidden;
    /* 背景アニメーションの移動範囲を制限 */
  }

  /* 6. ★★★ <a> タグを親要素 (#timer-top) 全体に広げる ★★★ */
  #timer-top2 a {
    position: absolute;
    /* 親要素を基点に配置 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    /* 他の要素より手前に配置 */
    cursor: pointer;
  }

  /* 7. 元の img タグは完全に非表示にする */
  #timer-top2 img {
    display: none !important;
  }

  /* 8. 元の .top-header-bnr img の設定は削除または上書きする */
  /* 既存のCSSと競合するため、これは削除するかコメントアウト推奨 */
  /* .top-header-bnr img {
   width: 500px;
   height: auto;
   flex-shrink: 0;
} */
}

/* #================================================================== === */
/* #===               PC用（2000px以上）              === */
/* #================================================================== === */
@media (min-width: 1200px) {
  .pc-delete {
    display: none;
  }

  .sp-delete {
    display: block;
  }

  /* ?★★★★★★★★ 細いスライダー ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .top-slider {
    display: block !important;
    /* 親を強制表示 */
    width: 100%;
  }

  .top-header-bnr img {
    width: 500px;
    height: auto;
    flex-shrink: 0;
  }

  /* ?★★★★★★★★ ヘッダー ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .header-top {
    position: relative;
    height: 60px;
    padding: 15px 16px;
    padding-left: 70px;
    padding-right: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 1170px;
    margin: 20px auto 0;
  }

  .site-header {
    width: 100%;
    text-align: center;
  }



  #logo img,
  #logo picture {
    max-width: 150px;
    /* 任意：ロゴの最大幅を制限 */
    height: auto;
  }

  .cart img {
    width: 20px;
    height: 25px;
  }

  .search-icon img {
    width: 20px;
    height: 25px;
  }

  /* 検索オーバーレイ全体 */
  .search-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
    z-index: 2000;
  }

  /* 表示時のクラス */
  .search-overlay.active {
    opacity: 1;
    visibility: visible;
  }

  /* 検索ボックス */
  .search-box {
    background: #fff;
    border-radius: 10px;
    padding: 20px;
    width: 80%;
    max-width: 700px;
    text-align: center;
    position: relative;
    animation: slideDown 0.4s ease;
  }

  /* スライドインアニメーション */
  @keyframes slideDown {
    from {
      transform: translateY(-20px);
      opacity: 0;
    }

    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

  /* 入力欄 */
  .search-box input[type="text"] {
    width: 80%;
    padding: 10px;
    font-size: 1rem;
    border: 1px solid #ccc;
    border-radius: 5px;
  }

  /* ボタン */
  .search-box button {
    background-color: #222;
    color: #fff;
    border: none;
    padding: 10px 15px;
    border-radius: 5px;
    cursor: pointer;
    margin-left: 5px;
  }

  /* 閉じるボタン */
  .close-search {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: 1.5rem;
    cursor: pointer;
    color: #333;
  }

  .top-category2 {
    display: none;
  }

  /* .header-nav-wrap {
    background: #f7f7f7;
  } */
  .nav-item {
    padding-bottom: 0px;
  }

  .main-nav {
    position: relative;
    width: 100%;
    height: 40px;
    transform: none;
    box-shadow: none;
    padding: 5px 0;
    margin-top: 0px;
    background: #f7f7f7;
    overflow: visible;
    box-sizing: border-box;
  }

  #header-nav-drawer,
  .nav-close,
  .overlay,
  .header-sp-nav,
  .drawer-quicklinks,
  .parentCategory,
  #drawer_others2,
  #drawer_others,
  #drawer_snsIcon,
  #drawer_footer {
    display: none;
  }

  .nav-list {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin: 0 auto;
    padding-left: 0;
    padding-right: 0;
    font-size: 0.8rem;
    max-width: 1200px;
    box-sizing: border-box;
  }

  .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 0;
    background: transparent;
  }

  .arrow {
    transform: rotate(45deg);
  }

  .nav-item:hover .arrow {
    transform: rotate(225deg);
  }

  .nav-item:hover .sub-menu,
  .nav-item:focus-within .sub-menu {
    max-height: 600px;
    opacity: 1;
    visibility: visible;
    padding: 12px 0;
    background: rgba(247, 247, 247, 0.9);
  }

  .sub-menu {
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    min-width: 200px;
    background: #fff;
    /* border: 1px solid #eee;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); */
    padding: 12px 0;
    z-index: 1000;
    text-align: left;
    left: -20px;
  }

  .sub-menu li a {
    padding: 15px 24px;
    display: block;
    color: #666;
    text-decoration: none;
  }

  .sub-menu li a:hover {
    background: #f5f5f5;
    color: #000;
  }

  /* ?★★★★★★★★ PCフルブリード ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  /* style000.css の PC用（1200px以上）メディアクエリ内 */
  .full-bleed {
    /* または .main-visual など、フル幅にしたいコンテナ */
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
    /* 中央寄せを確保するためにマージンをリセット */
    margin-right: 0;
    /* (その他のスタイル) */
  }

  .hero {
    width: 100vw;
    position: relative;
    /* 親要素の幅制限から脱出して中央に配置するコマンド */
    left: 50%;
    transform: translateX(-50%);
    /* 不要なマージンをリセット */
    margin-left: 0;
    margin-right: 0;
  }

  /* ヒーローセクション (PC) */
  .hero-overlay-content {
    /* 本店サイトではPC時、テキストとアワードが離れている */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 30px;
    /* テキストとアワードの間の隙間 */
  }

  .hero-text h2 {
    font-size: 2.8rem;
    /* PC用のフォントサイズ */
  }

  .hero-btn {
    padding: 12px 45px;
    margin-top: 25px;
    font-size: 1rem;
    width: 40%;
    height: 60px;
  }

  .main-visual {
    aspect-ratio: 3556 / 1722;
    /* PC画像の比率に書き換え */
  }

  .sp-only {
    display: none !important;
  }

  /* SP用を消す */
  .pc-only {
    display: block !important;
  }

  /* 消していたPC用を出す */
  /* PC用の4枚（1〜4番目）にディレイをかける */
  .pc-only:nth-of-type(1) {
    animation-delay: 0s;
  }

  .pc-only:nth-of-type(2) {
    animation-delay: 3s;
  }

  .pc-only:nth-of-type(3) {
    animation-delay: 6s;
  }

  .pc-only:nth-of-type(4) {
    animation-delay: 9s;
  }

  /* ?★★★★★★★★ 送料について ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .b-main-text {
    /* position: absolute; */
    bottom: 0;
    left: 0;
    z-index: 2;
    color: #fff;
    background-color: rgba(93, 93, 93, 0.8);
    padding: 7px 15px 11px;
    font-size: 14px;
    width: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 11px;
    line-height: 1.2;
  }

  /* ?★★★★★★★★ お知らせ ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .top-newsArea {
    margin: 40px 0;
  }

  .top-newsArea-item {
    border: 1px solid #333;
    padding: 20px 15px;
    background-image: linear-gradient(225deg, #333 30px, transparent 0);
  }

  .top-newsArea-item .title {
    font-size: 18px;
    margin-bottom: 15px;
  }

  .container-background {
    background-color: #ffffff;
  }

  .container-notice {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-left: 70px;
    padding-right: 70px;
    transition: ease-in 0.1s;
    max-width: 1100px;
  }

  .container {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-left: 40px;
    padding-right: 40px;
    transition: ease-in 0.1s;
    max-width: 1320px;
    box-sizing: border-box;
  }

  .container222 {
    width: 100%;
    margin-top: 120px;
    margin-right: auto;
    margin-left: auto;
    padding-left: 70px;
    padding-right: 70px;
    transition: ease-in 0.1s;
    max-width: 1320px;
  }

  .item-list-headline h2 {
    display: inline-block;
    position: relative;
    margin-top: 100px;
    margin-bottom: 30px;
    /* padding: 15px 20px 0 20px; */
    z-index: 1;
    background: #fff;
  }

  .item-list-headline h2 .big-Word {
    font-size: 2rem;
  }

  .item-list-headline h2 .small-Word {
    font-size: 0.9rem;
  }

  /* ?★★★★★★★★ スライダー ★★★★★★★★  */
  /* ?★★★★★★★★ スライダー ★★★★★★★★  */
  .slider {
    width: 100%;
  }

  .slick-slider2 {
    width: 100%;
    overflow: hidden;
    align-items: center;
    padding: 0;
    margin: 0 auto;
    margin-top: 20px;
    margin-bottom: 0px;
  }

  .slider img {
    width: 100%;
    height: auto;
    display: block;
    /* スライダーの幅を調整 */
  }

  .slick-dots {
    text-align: center;
    padding: 30px;
    margin: 20px auto;
    display: flex;
    /* ここに追加 */
    justify-content: center;
    /* ここに追加 */
  }

  .custom-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    background: #ffffff;
    border: solid 1px #000;
    border-radius: 50%;
    margin: 0 10px;
    cursor: pointer;
  }

  .custom-dot.slick-active {
    background-color: #000;
  }

  /* ?★★★★★★★★ 特集まとめ ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .mt60 {
    margin-top: 0px;
  }

  .parts-cat-box {
    position: relative;
    max-height: none;
    overflow: visible;
    transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .specialpage-list ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0;
    list-style: none;
  }

  .specialpage-list li {
    box-sizing: border-box;
    width: 32%;
    margin: 0.6%;
    padding: 15px;
  }

  .specialpage-list li:nth-of-type(n+7) {
    display: none;
  }

  .specialpage-list ul li a {
    display: block;
  }

  .more-btn-wrapper {
    display: none;
  }

  /* ?★★★★★★★★ 新作アイテム ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .item-list {
    margin: 15px auto 30px auto;
  }

  .item-list ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0;
    list-style: none;
  }

  .item-list li {
    box-sizing: border-box;
    width: 22%;
    margin: 1% 0.2% 1% 0.2%;
    padding: 0;
  }

  .item-list li:nth-child(n + 5) {
    box-sizing: border-box;
    width: 22%;
    margin: 1% 0.2% 1% 0.2%;
    padding: 0;
  }

  .item-list li:nth-child(n + 11) {
    display: block;
  }

  .item-list li:nth-child(n + 13) {
    display: none;
  }

  .item-name {
    margin: 10px 0px 3px 0px;
    padding: 0 5px;
    font-size: 0.8rem;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    display: box;
    box-orient: vertical;
    line-clamp: 2;
  }

  .price {
    font-size: 0.8rem;
    margin: 0px 0px 5px 3px;
    padding: 0 5px;
  }

  /* ?★★★★★★★★ 再入荷アイテム ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .restock {
    width: 100%;
    margin: 15px auto 30px auto;
    overflow-x: auto;
    white-space: nowrap;
    /* overflow: hidden; */
    /* スクロールを無効化 */
    scrollbar-width: thin;
    scrollbar-color: #ccc transparent;
    cursor: grab;
  }

  .restock_html {
    display: flex;
    flex-wrap: nowrap;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .restock_html li {
    display: flex;
    flex-direction: column;
    /* 中身は縦積み */
    align-items: flex-start;
    justify-content: flex-start;
    min-width: calc(25% - 14px);
    width: calc(25% - 14px);
    /* min-width: 29%; */
    padding: 5px;
    font-size: 0.7em;
    text-align: left;
    flex-wrap: wrap;
    overflow: hidden;
    margin-right: 80px;
    /* Flexboxレイアウトのみ */
    scroll-snap-align: start;
  }

  .restock_html li:last-child {
    margin-right: 0;
  }

  /* ?★★★★★★★★ ランキングアイテム ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .rankingItems {
    margin-bottom: 30px;
  }

  .rankingItems a {
    text-decoration: none;
    outline: none;
    color: black;
  }

  .rankingItems .tab_area ul li {
    display: block;
    font-size: 0.8rem;
    text-align: center;
    /* display: block;
    float: left;
    width: 25%;
    height: 40px;
    padding-top: 6px;
    border: 1px solid #fff;
    background-color: #f8f8f8;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    font-size: 0.8rem;
    text-align: center; */
  }

  /* .rankingItems .tab_area ul li.even {
    background: #999;
    color: #fff;
  }

  .rankingItems .tab_area ul li:hover {
        color: #000000;
        cursor: pointer;
        border-bottom: 1px solid;
  } */
  .content_area {
    width: 100%;
    /* 親要素に合わせて幅を最大に広げる */
    max-width: 1320px;
    /* 例: 最大幅を設定して中央に寄せる（任意） */
    margin: 0 auto;
    /* 中央揃えにする */
    box-sizing: border-box;
  }

  .rank-icon {
    position: absolute;
    /* 親（item-visual）に対して自由に配置 */
    top: 0;
    left: 0;
    z-index: 10;
    /* 商品画像より上に表示 */
    width: 20px;
    /* サイズは適宜調整 */
  }

  #rankingItems {
    width: 100%;
    /* 親のcontent_areaいっぱいに広げる */
    /* ここにdisplay:flex;など、リストアイテムを並べるためのレイアウトが必要 */
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    /* リストの点（黒丸）を消す */
    padding: 0;
    margin: 0;
    justify-content: space-around;
  }

  .rankingItems .content_area {
    width: 100%;
  }

  .rankingItems .content_area ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .rankingItems .content_area li {
    margin: 1%;
    /* padding: 3px; */
    font-size: 0.7em;
    box-sizing: border-box;
  }

  .rankingItems .content_area li {
    margin: 5px 0 0 0;
    font-size: 0.9em;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    /* 最大2行に制限 */
    overflow: hidden;
    text-overflow: ellipsis;
    /* テキストが溢れた場合に省略記号を表示 */
    line-clamp: 2;
  }

  .rankingItems .content_area li div {
    font-size: 0.9em;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    /* 最大2行に制限 */
    overflow: hidden;
    text-overflow: ellipsis;
    /* テキストが溢れた場合に省略記号を表示 */
    line-clamp: 2;
  }

  .rankingItems .content_area li.top-row {
    width: 18%;
  }

  .rankingItems .content_area li.bottom-row {
    width: 18%;
  }

  #rankingItems li a {
    /* 絶対配置の基準にするため、これを設定する！ */
    position: relative;
    /* リンク全体が基準になるように、display:block; にしておくのが安全だが、 */
    /* 通常リンクはインライン要素なので、レイアウトによっては必要になる */
    display: block;
  }

  /* 2. 最初の <p> のみ（順位バッジ）を左上に固定 */
  #rankingItems li a>p:first-of-type {
    width: 35px;
    position: absolute;
    top: 22px;
    left: 0;
    z-index: 10;
    margin: 0;
  }

  .clearfix {
    justify-content: center;
    gap: 20px 40px;
    margin: 0 0 20px;
  }

  .clearfix li.is-active {
    /* アクティブなタブには下線と文字色を設定 */
    color: #000000;
    cursor: pointer;
    border-bottom: 1px solid #000000;
    /* 下線の色も黒で指定 */
  }

  /* 2. 非アクティブなタブの色をリセット (重要) */
  /* 通常のタブのリンク色をデフォルトに戻す（active時だけ色を変えるため） */
  .clearfix li a {
    color: inherit;
    /* 通常は親要素の色を引き継ぐ */
  }

  #rankingItems00 {
    margin-top: 30px;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    list-style: none;
    /* リストの点（黒丸）を消す */
    padding: 0;
    margin: 0;
  }

  #rankingItems00 li {
    box-sizing: border-box;
    width: 20%;
    margin: 0;
    margin-bottom: 20px;
    padding: 10px;
  }

  #rankingItems00 li:nth-child(n + 3) {
    width: 20%;
    margin: 0;
    margin-bottom: 20px;
    padding: 10px;
  }

  #rankingItems00 li:nth-child(n + 6) {
    display: none;
  }

  /* ?★★★★★★★★ PC画像 ＋ テキスト ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .parts-2l-area img {
    width: 100%;
  }

  .column2-2l-wrap {
    margin-bottom: 120px;
    display: grid;
  }

  .column2-2l-box {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    background-color: #fff;
  }

  .column2-2l-box:nth-child(odd) .img-box {
    order: 1;
  }

  .column2-2l-box .img {
    position: relative;
    z-index: 0;
  }

  .column2-2l-box img {
    object-fit: cover;
    aspect-ratio: 1.6;
  }

  .column2-2l-box:nth-child(odd) .txt-box {
    width: 580px;
    margin: 0 0 0 auto;
    order: 0;
  }

  .column2-2l-box .txt-box {
    padding: 52px 60px 60px;
    flex-direction: column;
    display: flex;
    flex-wrap: wrap;
  }

  .top-titleh2._left,
  .top-titleh2._left .title {
    text-align: left;
  }

  .top-titleh2 .en {
    font-weight: 500;
    font-size: 32px;
    font-family: "Shippori Mincho", serif;
    line-height: 1.2;
    margin: 0;
  }

  .top-titleh2 .title {
    font-size: 16px;
    margin: 6px 0 0;
    text-align: center;
    font-weight: 400;
  }

  .column2-2l-box .txt-box .btn {
    margin: 50px auto 0 0;
  }

  /* ?★★★★★★★★ ギフト ＋ 新作 ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  .column2btn-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .column2btn-box {
    padding: 80px 15px 60px;
    display: flex;
    flex-direction: column;
  }

  .column2btn-box .top-titleh2_2 {
    margin-bottom: 65px;
  }

  .top-titleh2_2._white {
    color: white;
  }

  .column2btn-box .top-titleh2_2 .en {
    font-size: 48px;
    margin-bottom: 16px;
  }

  .top-titleh2_2 {
    margin: 0 0 40px;
    text-align: center;
  }

  .column2btn-box .top-titleh2 .title {
    font-size: 16px;
  }

  /* ?★★★★★★★★ 下段カテゴリー ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  @media screen and (min-width: 768px) {
    .parts-cat-mainBox .cat-name-child::before {
      content: "";
      width: 11px;
      height: 7px;
      background: url(https://shopping.geocities.jp/milktea-mm/tmp-parts/img/common/icon-arrow2-w.svg) no-repeat center / cover;
      margin-right: 7.5px;
      display: inline-block;
    }

    .parts-cat-mainBox a:hover {
      opacity: .8;
    }

    .parts-cat-scene .bg-m-Box:hover::before {
      background-color: rgba(0, 0, 0, .1);
    }

    .parts-cat-scene .bg-m-Box a:hover p {
      color: #fff;
    }
  }

  /* ?★★★★★★★★ コンセプトからインフォメーションまで ★★★★★★★★  */
  /* ?★★★★★★★★ コンセプトからインフォメーションまで ★★★★★★★★  */
  /* #★★ コンセプト ★★  */
  /* #★★ コンセプト ★★  */
  /*.parts-i-area*/
  .parts-n-wrap {
    display: grid;
    row-gap: 35px;
    max-width: 720px;
    margin: 0 auto;
  }

  .parts-n-box {
    display: flex;
    gap: 9px 60px;
    font-size: 14px;
  }

  .parts-n-box time {
    flex-shrink: 0;
  }

  .parts-n-box .title {
    margin: 0;
    font-weight: 400;
  }

  /*.parts-mm*/
  .parts-mm {
    margin-bottom: 60px;
  }

  .parts-mm-Wrap {
    padding: 40px 60px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
  }

  .parts-mm-Wrap .top-titleh2 {
    flex-shrink: 0;
  }

  .parts-mm-Wrap .btn {
    width: 280px;
  }

  /*.parts-mc*/
  #parts-mc {
    margin: 60px 0 120px;
  }

  .parts-mc-Wrap {
    border: 1px solid #707070;
    padding: 40px 60px;
    display: flex;
    align-items: center;
  }

  /*.greeting-bnr-area*/
  .greeting-bnr-area {
    margin-top: 60px;
  }

  .top-parts-p {
    padding: 20px 0 140px 0;
  }

  .top-titleh2 {
    margin: 0 0 40px;
    text-align: center;
  }

  .top-titleh3 {
    font-size: 24px;
    margin: 0 0 40px;
    line-height: 1.2;
    font-weight: 400;
  }

  .btnWrap-concept {
    width: 100%;
    margin-top: 80px;
  }

  /* #★★ ミルクティーが出来るまで ★★  */
  /* #★★ ミルクティーが出来るまで ★★  */
  .greeting-bnr-area {
    margin-top: 60px;
  }

  /* #★★ 下段 news お知らせ  ★★  */
  /* #★★ 下段 news お知らせ  ★★  */
  .top-parts-m {
    margin: 20px 0 120px 0;
  }

  .parts-n-box2 {
    display: flex;
    flex-direction: column;
    gap: 9px 60px;
    font-size: 14px;
  }

  .parts-n-box time {
    flex-shrink: 0;
  }

  .parts-n-box .title {
    margin: 0;
    font-weight: 400;
  }

  /* #★★ MAIL MAGAZINE  ★★  */
  /* #★★ MAIL MAGAZINE  ★★  */
  .parts-mm-Wrap2 {
    padding: 40px 60px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
  }

  .parts-mm-Wrap .top-titleh2 {
    flex-shrink: 0;
  }

  .bg-color2 {
    background-color: #F8F8F8;
    margin: 120px 0 40px 0;
  }

  .en {
    font-weight: 500;
    font-size: 32px;
    font-family: "Shippori Mincho", serif;
    line-height: 1.2;
    margin: 0;
  }

  .item-list-headline {
    margin-bottom: 0px;
    position: relative;
    text-align: center;
  }

  /* #★★ INFOMATION  ★★  */
  /* #★★ INFOMATION  ★★  */
  .top-btn-column3pc-wrap,
  .btn-column3pc-wrap {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }

  .top-btn-column3pc-wrap .btn,
  .btn-column3pc-wrap .btn {
    max-width: initial;
    background-image: url(https://shopping.geocities.jp/milktea-mm/tmp-parts/img/common/icon-arrow.svg);
    background-repeat: no-repeat;
    background-position: center right 20px;
    background-size: 8px 14px;
    text-align: center;
  }

  /* ?★★★★★★★★ フッター ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  #footer-AreaWrap {
    padding: 102px 0 200px;
    background-color: #333;
    color: white;
    font-size: 14px;
  }

  #footerNaviWrap {
    margin-bottom: 90px;
  }

  #footerNaviWrap .footerNavi {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    display: grid;
    gap: 60px;
    margin-bottom: 60px;
  }

  #footerNaviWrap .footerNavi dl:not(:last-child) {
    border-right: 1px solid #707070;
  }

  #footerNaviWrap .footerNavi dl dt:first-child {
    font-size: 18px;
    margin-bottom: 19px;
  }

  .footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 50px;
    margin-bottom: 20px;
    flex-direction: row;
  }

  .footer-links2 {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 50px;
    margin-bottom: 20px;
    flex-direction: row;
  }

  #footer-AreaWrap nav a {
    color: var(--text-white-color);
  }

  .mb0 {
    margin-bottom: 0;
  }

  .footer-m-Wrap {
    display: flex;
    gap: 20px 50px;
    margin-bottom: 40px;
    flex-wrap: nowrap;
  }

  .footer-m-Wrap .footer-m-box .logo {
    width: 166px;
  }

  .footer-m-Wrap .footer-m-box.flex-column {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .mb40 {
    margin-bottom: 40px;
  }


  .pageTopBtn {
    text-align: right;
    padding: 0 0 40px;
    border-top: none;
    border-bottom: 1px solid #707070;
  }

  .footer-b-Wrap {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
    gap: 40px 55px;
    margin-top: 30px;
    flex-direction: row;
  }

  .pageTopBtn2.fixed {
    bottom: 20px;
    opacity: 1;
    transition: 0.6s;
    position: fixed;
    right: 20px;
  }

  /* ?★★★★★★★★  ★★★★★★★★  */
  /* ?★★★★★★★★ min-width: 1200px ★★★★★★★★  */
  /* レスポンシブ・レイアウト (PC上書き) */
  .responsive-layout {
    flex-direction: row;
    /* PC：横並びにする */
    align-items: center;
    /* 垂直方向中央揃え */
  }

  /* PCでは各アイテムの幅を50%にする */
  .layout-item {
    flex-basis: 50%;
  }

  .sp {
    display: none;
  }

  .sp_br {
    display: none;
  }

  .main-ccWrap {
    position: absolute;
    padding-top: 0px;
    margin-bottom: 110px;
    z-index: 2;
    inset: 0;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
  }

  .main-ccWrap .cc-text {
    font-size: 50px;
    font-weight: 400;
    margin: 0 0 30px;
    color: white;
    text-align: center;
    line-height: 1.2;
  }

  .btnWrap {
    width: 100%;
  }

  .btn._white {
    background-color: transparent;
    border: 1px solid white;
    color: white;
  }

  .btn {
    background-color: transparent;
    border: 1px solid black;
    color: black;
    max-width: 280px;
    width: 100%;
    height: 60px;
    font-size: 14px;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    position: relative;
    transition: all ease 0.1s;
  }

  .btn-section {
    background-color: transparent;
    border: 1px solid black;
    color: black;
    max-width: 280px;
    width: 100%;
    height: 60px;
    font-size: 14px;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    position: relative;
    transition: all ease 0.1s;
    margin: 0 auto;
    margin-top: 30px;
  }

  .btn2 {
    background-color: transparent;
    border: 1px solid black;
    color: black;
    max-width: 280px;
    width: 100%;
    height: 60px;
    font-size: 14px;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    position: relative;
    transition: all ease 0.1s;
    margin: 0;
    margin-top: 40px;
  }

  .btn:hover {
    transition: all ease 0.1s;
    color: white;
    background-color: rgb(0, 0, 0);
    border: none;
  }

  .btn-section:hover {
    transition: all ease 0.1s;
    color: white;
    background-color: rgb(0, 0, 0);
  }

  .btn-section-zone-first {
    padding: 15px 0 100px 0;
  }

  .btn-section-zone {
    padding: 15px 0 100px 0;
  }
}

.special-title {
  text-align: center;
  margin: 20px
}

#item-list {
  max-width: 1320px;
  padding-left: 15px;
  padding-right: 15px;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  transition: ease-in 0.1s;
}

.special-item-list ul {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  list-style: none;
  justify-content: flex-start;
}

.special-item-list li {
  box-sizing: border-box;
  width: 48%;
  margin: 0.6%;
  padding: 12px;
}

.cat-name-child {
  margin: 7px;
}

.annotation {
  font-size: 11px;
  color: #000000;
  font-weight: 400;
  line-height: 1.5;
  margin-top: 20px;
}

@media (min-width: 1200px) {
  .special-item-list li {
    padding: 35px;
    width: 25%;
  }

  .special-item-list li {
    box-sizing: border-box;
    width: 25%;
    margin: 0;
    margin-top: 20px;
    padding: 15px;
  }

  .annotation {
    font-size: 12px;
    color: #000000;
    font-weight: 400;
    line-height: 1.5;
    margin-top: 20px;
  }
}

/* ---------------------------------------------------------
 * 3. スマホ固定フッターナビ（本店 tmp-common.css より移植）
 * --------------------------------------------------------- */
/* CTA固定ボタン */
#fixedBtnSpArea {
  width: 100%;
  opacity: 0;
  z-index: 10;
  position: fixed;
  bottom: -50px;
  transition: 0.6s;
  background-color: #D3D3D3
}

#fixedBtnSpArea.fixed {
  opacity: 1;
  transition: 0.6s;
  bottom: 0;
}

#fixedBtnSpArea #fixedBtnSp {
  display: block;
}

#fixedBtnSpArea #fixedBtnSp ul {
  height: 55px;
  width: 100%;
  overflow: hidden;
  display: flex;
  gap: 1px;
  margin: 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}

#fixedBtnSpArea #fixedBtnSp ul li {
  flex-basis: 100%;
  background-color: var(--bg-color);
}

#fixedBtnSpArea #fixedBtnSp ul li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  color: var(--main-color) !important;
  margin: 0;
  font-size: 14px;
  text-decoration: none;
  gap: 7px;
  padding-bottom: 5px;
}

@media screen and (min-width: 1025px) {
  #fixedBtnSpArea #fixedBtnSp {
    display: none;
  }
}

/* ---------------------------------------------------------
 * 4. 補助スタイル（このチャットで新規追加）
 * --------------------------------------------------------- */
/* header-sns（logo左のSNSアイコン群）：指定いただいたCSSをそのまま反映 */
@media (min-width: 1200px) {
  .header-left {
    position: absolute;
    top: 45%;
    left: 110px;
    transform: translateY(-50%);
  }
  #_hNav {
    position: absolute;
    top: 45%;
    right: 110px;
    transform: translateY(-50%);
  }
}

/* ---------------------------------------------------------
 * 1200px未満（スマホ・タブレット）：ここに統一する（A案）
 * 768〜1199pxと767px以下で基準がバラバラだったのを1つにまとめた
 * --------------------------------------------------------- */
@media (max-width: 1199px) {
  .header-left {
    display: none;
  }
  #header-nav-favorite,
  #header-nav-info {
    display: none;
  }
  #header-nav-drawer {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 16px;
    cursor: pointer;
  }
  #header-nav-drawer span {
    display: block;
    position: absolute;
    top: 7px;
    left: 0;
    width: 24px;
    height: 2px;
    background: var(--main-color);
    transition: .3s;
  }
  #header-nav-drawer span::before,
  #header-nav-drawer span::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    width: 24px;
    height: 2px;
    background: var(--main-color);
    transition: .3s;
  }
  #header-nav-drawer span::before {
    top: -6px;
  }
  #header-nav-drawer span::after {
    top: 6px;
  }
  #header-nav-mypage {
    position: absolute;
    left: 74px;
    top: 50%;
    transform: translateY(-50%);
  }
  #header-nav-cart {
    position: absolute;
    right: 69.5px;
    top: 50%;
    transform: translateY(-50%);
  }
  #searchbox_wrap {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
  }
}

/* #_hNav / #fl-header-nav 一式：本店実CSS（開発モード確認分）をそのまま移植
   ※提供いただいたCSSに重複記述があったため1つにまとめてある */
#fl-header-nav {
  display: flex;
  gap: 25px;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

#fl-header-nav li a {
  display: flex;
  align-items: center;
}

/* アイコンの大きさがHTML属性ごとにバラバラ（19.5x24, 34x20, 19x24, 20x20等）
   だったため、snsWrap（左側SNSアイコン、高さ20〜24px前後で統一）に合わせて
   高さを揃える。幅はautoにしてアスペクト比を保ち、歪ませない。 */
#fl-header-nav img {
  height: 22px;
  width: auto;
}

/* カート個数バッジ（.item_cnt）：静的に"0"を表示（ShopServeのリアルタイム連携は無し） */
.member_info_cart_info .header-cart {
  position: relative;
}

.member_info_cart_info .header-cart .item_cnt {
  border-radius: 13px;
  min-width: 16px;
  min-height: 16px;
  padding: 0px 4px;
  border: 1px solid #333;
  background-color: #333;
  font-size: 10px;
  color: #FFFFFF;
  margin: 5px 0;
  position: absolute;
  top: -5px;
  left: 15px;
  text-align: center;
}

/* スクロール時の表示制御
   PC：payment-bnrだけ隠す（隠れることで隙間も自動的に詰まる）
   スマホ：payment-bnrとheader-sp-nav（新着商品/授乳服/マタニティ/ランキングの行）を隠し、header-topだけ残す
   ※display:noneの瞬時切り替えではなく、max-height+opacityでフェード/収縮させて滑らかに見せる */
.top-payment-bnr,
.header-sp-nav {
  overflow: hidden;
  opacity: 1;
  transition: max-height 0.3s ease, opacity 0.25s ease;
}
@media (min-width: 1200px) {
  .top-payment-bnr {
    max-height: 150px;
  }
  /* PCでは、上スクロールで復帰させない。一番上(scrollY=0)に戻った時だけ再表示する */
  .site-header.not-at-top .top-payment-bnr {
    max-height: 0;
    opacity: 0;
  }
}
@media (max-width: 1199px) {
  .top-payment-bnr {
    max-height: 150px;
  }
  .header-sp-nav {
    max-height: 60px;
  }
  .site-header.is-hidden .top-payment-bnr,
  .site-header.is-hidden .header-sp-nav {
    max-height: 0;
    opacity: 0;
  }
}

/* フッター著作権表示（tmp-common.css / style.css どちらにも定義が無かったため追加） */
#copyright {
  text-align: center;
  font-size: 12px;
  color: var(--sub-color, #8B8B8B);
  padding: 16px 0;
}

/* お知らせ用カレンダー枠（外部ウィジェット想定・今回はプレースホルダーのみ） */
#top-calendar {
  min-height: 0;
}

/* フッター最下部（個人情報/特商法/サイトマップ）の横並び */
.footer-b-Wrap .footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  justify-content: center;
}
