/* =============================================
   WA-BI be | style.css
   Mobile First → Responsive
   ============================================= */

/* ---------- Google Fonts ---------- */
/* ZEN Old Mincho は <head> 内で読み込み済み */

/* ---------- CSS Variables ---------- */
:root {
    /*--col-bg:        #F5EFE8;*/
    --col-bg:         #ffffff;
    --col-surface:    #EEDAD0;
    --col-terracotta: #C8664A;
    --col-ember:      #A84E35;
    --col-ink:        #251e1c;
    --col-mid:        #7A6560;
    --col-pale:       #D4C4BC;
    --col-white:      #ffffff;

    --font-mincho: 'Zen Old Mincho', "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", "游明朝", YuMincho, serif;
    --font-gothic: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3",
                   "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;

    --sp-xs:  4px;
    --sp-sm:  8px;
    --sp-md:  10px;
    --sp-lg:  20px;
    --sp-xl:  20px;
    --sp-2xl: 64px;

    --ease: cubic-bezier(0.4, 0, 0.2, 1);

    /* フローティングバーの高さ（他の要素のpadding-bottomに使う） */
    --floating-bar-h: 56px;
}

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

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    overflow-x: hidden;
}

body {
    background-color: var(--col-bg);
    color: var(--col-ink);
    font-family: var(--font-gothic);
    line-height: 1.8;
    min-height: 100vh;
    padding-bottom: var(--floating-bar-h);
    overflow-x: hidden;
}

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

a {
    color: inherit;
    text-decoration: none;
}

ul {
    list-style: none;
}

/* ---------- Site Header ---------- */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--col-bg);
}

.site-header__inner {
    display: flex;
    align-items: center;
    padding: var(--sp-md) var(--sp-lg);
    max-width: 1200px;
    margin: 0 auto;
}

.site-header__logo {
    font-family: var(--font-mincho);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--col-ink);
    display: flex;
    align-items: center;
    gap: var(--sp-xs);
}

.logo-wabi {
    font-size: 0.65rem;
    border-radius: 50%;
    padding: 2px 5px;
    font-weight: 400;
    letter-spacing: 0.08em;
}

/* =============================================
   フローティングバー（画面下部固定）
   ============================================= */
.floating-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: var(--floating-bar-h);
    background-color: #231815;
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--sp-lg);
}

/* CONTENTS ボタン */
.floating-bar__contents {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    display: flex;
    align-items: center;
}

.floating-bar__btn-img {
    height: 26px;
    width: auto;
    display: block;
}

/* アイコン群 */
.floating-bar__icons {
    display: flex;
    align-items: center;
    gap: var(--sp-xl);
}

.floating-bar__icon {
    display: flex;
    align-items: center;
    -webkit-tap-highlight-color: transparent;
}

.floating-bar__icon-img {
    height: 26px;
    width: auto;
    display: block;
}

.home-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 1000;

  width: 52px;
  height: 52px;
  border-radius: 50%;

  background: #1a1a1a;
  color: #ffffff;

  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}


.home-fab:active {
  transform: scale(0.96);
}

/* =============================================
   吹き出しメニュー（CONTENTSの上に出る）
   ============================================= */
.contents-popup {
    position: fixed;
    bottom: var(--floating-bar-h);
    left: 0;
    z-index: 999;
    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
    transition: opacity 0.28s var(--ease), transform 0.28s var(--ease);
}

.contents-popup.is-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

/* 吹き出し本体 */
.contents-popup__body {
    position: relative;
    background: #fafafa;
    width: min(300px, 72vw);
    max-height: 80vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* 三角しっぽ：.contents-popupの左下角から出す
   ※ bodyにoverflow-y:autoがあるため、bodyの::afterはクリップされる
      → overflow制限のない親(.contents-popup)の::afterで代替 */
.contents-popup::after {
    content: '';
    position: absolute;
    bottom: -16px;
    left: 50px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 16px 15px 5px 0px;
    border-color: #fafafa transparent transparent transparent;
}

/* 閉じるボタン（右上×） */
.contents-popup__close {
    position: sticky;
    top: 0;
    float: right;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--col-mid);
    font-size: 2rem;
    line-height: 1;
    padding: var(--sp-md);
    z-index: 1;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.2s var(--ease);
}

.contents-popup__close:hover {
    color: var(--col-ink);
}

/* リスト */
.contents-popup__list {
    padding: 20px 20px;
}

.contents-popup__link {
    display: block;
    font-family: var(--font-mincho);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: #000000;
    padding: 2px var(--sp-lg);
    transition: background 0.15s var(--ease), color 0.15s var(--ease);
}

/* =============================================
   HERO
   ============================================= */
.hero {
    width: 100%;
}

.hero__image-wrap {
    width: 100%;
    line-height: 0;  /* imgタグ下の余白をなくす */
}

.hero__image {
    width: 100%;
    height: auto;    /* ← 縦横比そのまま、横幅100% */
    display: block;
}

.hero__text {
    font-size: 15px;
    font-weight: bold;
    font-family: var(--font-mincho);
    color: #231815;
    position: absolute;
    top: 70px;
    left: 19%;
    letter-spacing: 3px;
}

.hero__image_logo {
    display: block;
    position: absolute;
    top: 370px;
    
    /* 左右の中央に配置 */
    left: 50%;
    transform: translateX(-50%);
    
    width: 200px;
}

/* =============================================
   商品ページ共通
   ============================================= */
.product-page {
    padding-top: 15px;
    padding-bottom: 50px;
    background-color: #ffffff;
}

.product-hero {
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--col-surface);
}

.product-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-body {
    padding: var(--sp-xl) var(--sp-lg);
    max-width: 720px;
    margin: 0 auto;
}

.product-title__series {
    display: block;
    font-size: 0.5em;
    font-weight: 400;
    letter-spacing: 0.12em;
    color: var(--col-mid);
    margin-bottom: 0.3em;
}

.product-desc {
    font-size: 0.9rem;
    line-height: 2;
    color: var(--col-mid);
    margin-bottom: var(--sp-xl);
}

.product-spec {
    border-collapse: collapse;
    width: 100%;
    font-size: 0.85rem;
    margin-bottom: var(--sp-xl);
}

.product-spec th,
.product-spec td {
    padding: var(--sp-sm) var(--sp-md);
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--col-pale);
}

.product-spec th {
    font-family: var(--font-gothic);
    font-weight: 400;
    color: var(--col-mid);
    width: 30%;
    white-space: nowrap;
}

.product-spec td {
    color: var(--col-ink);
}

.product-gallery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-sm);
    margin-bottom: var(--sp-xl);
}

.product-gallery img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    background: var(--col-surface);
}

.product-nav {
    display: flex;
    justify-content: flex-start;
    padding-top: var(--sp-lg);
    border-top: 1px solid var(--col-pale);
}

.product-nav__back {
    font-family: var(--font-mincho);
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    color: var(--col-mid);
    transition: color 0.2s var(--ease);
}

.product-nav__back:hover {
    color: var(--col-terracotta);
}

/* =============================================
   Site Footer
   ============================================= */
.site-footer {
    background: #dcdcdc;
    color: #000000;
    padding: 40px var(--sp-lg); /* 上下の余白を少し広めに調整 */
}

/* ─── 上の段 ─── */
.site-footer__top {
    display: flex;
    flex-direction: column; /* スマホ時は縦並び */
    align-items: center;
    gap: var(--sp-lg);      /* 要素間の余白 */
    max-width: 1200px;
    margin: 0 auto 5px;    /* 下の段との間に余白をあける */
    padding-bottom: 20px;
}

.site-footer__top p {
    display: flex;
    align-items: center;
    font-size: 14px;
}

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

/* バナーをまとめるグループのスタイル */
.footer-banner-group {
    display: flex;
    flex-direction: column; /* スマホ時は縦並び */
    align-items: center;
    gap: 20px;              /* バナー間の余白を20px固定 */
}

/* ─── 下の段 ─── */
.site-footer__bottom {
    display: flex;
    flex-direction: column; /* スマホ時は縦並び */
    align-items: center;
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
}

.footer-note {
    font-size: 13px;
    text-align: right;
}

.footer-copy {
    font-size: 9px;
    letter-spacing: 0.06em;
    text-align: left;
}

.footer_hr{
	border-top:dotted #000000 1px;
}

.product_footer{
    padding: 20px;
    font-size: 10px;
}

/* =============================================
   Contents Links（フッター上 コンテンツ一覧）
   Mobile First: 1列
   ============================================= */
.contents-links {
    background-color: var(--col-bg);
    padding: 50px 50px 30px;
}

.contents-links__inner {
    max-width: 980px;
    margin: 0 auto;
}

.contents-links__badge {
    display: flex;
    justify-content: center;
    margin-bottom: 24px;
    width: 152px;
    margin: 0 auto 35px;
}

.contents-links__badge span {
    display: inline-block;
    border: 1px solid var(--col-ink);
    border-radius: 3px;
    padding: 4px 18px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--col-ink);
}

.contents-links__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px 40px;
}

.contents-links__item a {
    display: flex;
    align-items: center;
    padding: 4px 0;
    -webkit-tap-highlight-color: transparent;
}

.contents-links__label {
    font-family: var(--font-mincho);
    font-size:20px;
    letter-spacing: 0.03em;
    color: var(--col-ink);
    white-space: nowrap;
    flex-shrink: 0;
    transition: color 0.2s var(--ease);
}

.contents-links__line {
    flex: 1 1 auto;
    height: 1px;
    min-width: 16px;
    margin: 0 10px;
    background-color: #251e1c;
    transition: background-color 0.2s var(--ease);
}

.contents-links__icon {
    flex-shrink: 0;
    width: 45px;
    height: 45px;
    overflow: hidden;
}

.contents-links__icon img {
    width: 100%;
    height: 100%;
    /* 元画像のサイズ・縦横比がバラバラでも中心基準でトリミングして統一表示 */
    object-fit: cover;
    object-position: center center;
    display: block;
}



.contents-links__note {
   font-size: 12px;
    padding: 0 5px 20px;
    color: #000000;
    text-align: center;
    letter-spacing: 0.02em;
}

/* =============================================
   Utilities
   ============================================= */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
}

/* =============================================
   Responsive: Tablet (≥ 640px)
   ============================================= */
@media (min-width: 640px) {
    .hero__content {
        padding: var(--sp-xl) var(--sp-2xl);
    }

    .contents-popup__body {
        width: 320px;
    }

    .product-gallery {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* =============================================
   Responsive: Desktop (≥ 1024px)
   ============================================= */
@media (min-width: 1024px) {
    .site-header__inner {
        padding: var(--sp-md) var(--sp-xl);
    }

    .hero__content {
        padding: var(--sp-2xl) var(--sp-2xl);
        max-width: 680px;
    }

    .product-body {
        padding: var(--sp-2xl) var(--sp-xl);
    }

    .product-gallery {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* =============================================
   Reduced Motion
   ============================================= */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        transition: none !important;
        animation: none !important;
    }
}

/* =============================================
   メイン画像（1枚・スライダーなし）
   ============================================= */
.main-image {
    width: 100%;
    margin-bottom: 25px;
}

.main-image img {
    width: 100%;
    height: auto;
    display: block;
}
.ion_image {
    max-width: 170px;
    margin: 20px auto 0px;
}


.sub_image {
    width: 100%;
    margin-top: 30px;
    margin-bottom: 40px;
}

.sub_image img {
    width: 100%;
    height: auto;
    display: block;
    max-width: 170px;
    margin: 0 auto;
}

/* =============================================
   商品セクション
   ============================================= */
.product-header {
    padding: 20px 15px 15px;
}

.product-title {
    font-family: var(--font-mincho);
    font-size: 32px;
    font-weight: 700;
    /*letter-spacing: 0.06em;*/
    color: var(--col-ink);
    text-align: center;
}
.short-title{
	letter-spacing: -0.03em;
}
.product-title__ja {
    font-family: var(--font-mincho);
    font-size: 13px;
    letter-spacing: 0.12em;
    color: var(--col-ink);
    margin-top: 0px;
    margin-bottom: 15px;
    text-align: center;
    line-height: 5px;
}

.discription {
    font-family: var(--font-mincho);
	max-width:330px;
    font-size: 19px;
    line-height: 1.8;
    color: #231815;
    margin: 0 auto;
    text-align:center;
}
.ion_discription{
	margin-top: 25px;
    margin-bottom: 25px;
    max-width: 360px;
    font-size: 18px;
    line-height: 1.7;
}

.detailed_description {
	max-width:330px;
    font-size: 15px;
    line-height: 2;
    color: #231815;
    margin: 0 auto 20px;
    text-align: justify;
    text-justify: inter-ideograph; 
}

.section-title-area{
	max-width:330px;
    margin: 10px auto 20px;
    font-family: var(--font-mincho);
}
.section-title-area h2{
    font-size: 25px;
    text-align:center;
}
.section-notice{
    font-size: 11px;
    text-align:center;
}
.section-notice2{
    font-size: 16px;
    margin-top: 20px;
    margin-bottom: 30px;
}
.section-notice3{
    font-size: 13px;
    margin-bottom: 40px;
}


/* ---- 商品アイテムセクション ---- */
.item-section {
    padding-bottom: var(--sp-xl);
}
.item-copy {
    font-family: var(--font-mincho);
    margin-bottom: 10px;
    font-size: 13px;
    color: #231815;
    max-width: 250px;
    display: block;
    margin: 20px auto 10px;
}
.detail-gallery--customize{
	max-width:195px;
	margin: 10px auto 0;
}

/* -----たぬきセクション ---- */
/* 全体のコンテナ（中央寄せのベース） */
.tanutanu-title-area {
  max-width: 600px;      /* コンテンツの最大幅（デザインに合わせて調整してください） */
  margin: 0 auto;        /* 画面中央に配置 */
  padding: 20px;
  box-sizing: border-box;
}

/* 1. 上の画像2枚を横並びにする */
.tanutanu-main-images {
  display: flex;
  justify-content: space-between; /* 2枚の画像を両端にフィット（均等配置） */
  gap: 15px;                      /* 画像と画像の間の隙間 */
  margin-bottom: 30px;            /* 下テキストとの余白 */
}

.tanutanu-main-images img {
  width: calc(50% - 7.5px);       /* 2枚をきれいに50%ずつに割る */
  height: auto;                   /* 縦横比を維持 */
  object-fit: cover;
}

/* 2. 中央の説明文 */
.tanutanu-section-notice {
  font-size: 16px;
  line-height: 1.8;
  color: #000000;
  text-align: left;               /* テキスト自体は左揃え */
  margin-bottom: 10px;            /* 下の箱エリアとの余白 */
  padding: 0 10px;                /* ほんの少し内側に余裕を持たせる */
}

/* 3. 下の箱画像と「専用箱入」を中央寄せにする */
.tanutanu-box-area {
  display: flex;
  flex-direction: column;         /* 縦並びにする */
  align-items: center;            /* 中央寄せ */
  justify-content: center;
}

.tanutanu-box-area img {
  max-width: 134px;               /* 箱画像の大きさを制限（お好みで調整） */
  width: 100%;
  height: auto;
  margin-bottom: 10px;            /* 画像と「専用箱入」の隙間 */
}

.tanutanu-box-text {
  font-size: 13px;
  color: #000000;
  text-align: center;
}

/* -----Giftセクション ---- */

/* 全体のベース設定 */
.gift-section {
  padding: 0px 20px 40px;
  color: #000000;
}

.gift-container {
  max-width: 500px; /* 縦長で綺麗に収まるサイズに制限 */
  margin: 0 auto;
  text-align: center;
}

/* タイトルと見出し */
.gift-title {
  font-family: var(--font-mincho);
  font-size: 22px;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

.gift-lead {
  font-family: var(--font-mincho);
  font-size: 14px;
  letter-spacing: 0.02em;
  margin-bottom: 20px;
}

/* メインの箱画像 */
.gift-main-img {
  margin-bottom: 35px;
}

.gift-main-img img {
  max-width: 260px;
  height: auto;
  margin:0 auto;
}

/* 飾り紐の4連横並び */
.gift-color-options {
  display: flex;
  justify-content: center;
  gap: 15px; /* 丸画像同士の隙間 */
  margin-bottom: 25px;
}

.color-item {
  width: 70px; /* 丸画像のサイズに合わせて調整してください */
  text-align: center;
}

.color-item img {
  width: 100%;
  height: auto;
  border-radius: 50%; /* 元画像が丸くなければここで丸に切り抜くことも可能です */
  display: block;
  margin-bottom: 8px;
}

.color-item p {
  font-size: 14px;
  margin: 0;
}

/* ※飾り紐の色が選べます */
.gift-notice-sm {
  font-size: 15px;
  color: #333;
  margin-bottom: 40px;
}

/* 下部の説明長文 */
.gift-description {
  font-size: 16px;
  line-height: 2;
  text-align: left; /* テキストは左揃えにして読みやすく */
  letter-spacing: 0.03em;
  margin-bottom: 35px;
  padding: 0 10px;  /* 左右に少し余白を作る */
}

/* 一番下のリボンマーク */
.gift-mark-area {
  display: flex;
  justify-content: center;
  margin-top: 20px;
}

.gift-mark-area img {
  max-width: 260px; /* マーク画像のサイズ制限（バランスを見て調整） */
  width: 100%;
  height: auto;
}

/* =============================================
    detail画像ギャラリー（Swiperスライダー仕様）
   ============================================= */

/* スライダー全体のコンテナ */
.detail-gallery--slidable.swiper {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    list-style: none;
    padding: 0;
    z-index: 1;
    display: block;
}

/* 画像が並ぶトラック */
.detail-gallery__track.swiper-wrapper {
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    z-index: 1;
    box-sizing: content-box;
    transition-property: transform;
    will-change: transform;
}

/* スライダー内の画像 */
.detail-gallery__cell img {
    width: 100%;
    height: auto;
    display: block;
    
    /* iOSでの画像の長押し保存やドラッグ、テキスト選択を無効化 */
    -webkit-user-drag: none;
    user-select: none;
    -webkit-user-select: none;
}

/* 非表示クラスの対応（必要に応じて） */
.detail-gallery__cell.is-hidden {
    display: none !important;
}

/* ─── 矢印ボタン（アローアイコン） ─── */
.detail-gallery__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10; /* 画像より上に必ず配置 */
    background: transparent;
    color: var(--col-mid);
    border: none;
    width: 33px;
    height: 33px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent; /* スマホタップ時の青い背景を消す */
    
    /* 変更：初期状態から100%表示（見える状態）にする */
    opacity: 1;
    pointer-events: auto; /* 最初からクリック可能にする */
    
    /* 色がふわっと変わるアニメーションだけ残す */
    transition: color 0.2s var(--ease);
}

/* 矢印（SVG）自体のサイズ */
.detail-gallery__arrow svg {
    width: 24px;
    height: 24px;
}

/* ホバー・タップ時に色をブランドカラーや濃い色（ink）にして目立たせる */
.detail-gallery__arrow:hover,
.detail-gallery__arrow:active {
    color: var(--col-ink);
}

.detail-gallery__arrow--prev { left: 12px; }
.detail-gallery__arrow--next { right: 12px; }

/* 3枚以下のときは、スライドできないので「最初から完全に消す」 */
.detail-gallery__arrow.swiper-button-lock {
    display: none !important;
}
/* スライドが1個、または2個のとき、親要素を中央寄せにする */
.detail-gallery__track:has(.swiper-slide:last-child:nth-child(-n+2)) {
    justify-content: center;
}

/*===========================*/
/* Swiperの基本機能（これがないと動かないので必須） */
.swiper {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
    display: block;
}

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    box-sizing: content-box;
}

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
}

/* 既存のスタイルをSwiper用に微調整 */
.detail-gallery--slidable {
    width: 100%;
}

.detail-gallery__cell {
    box-sizing: border-box;
}

/* ---- 商品情報 ---- */
.item-info {
    border-left: 10px solid #eaece8;
    margin-left: 20px;
    margin-top: 20px;
    padding-left: 15px;
}

.item-name {
    font-family: var(--font-gothic);
    font-size: 13px;
    font-weight: 700;

    /* 横並びにして、上下中央で揃える */
    display: flex;
    align-items: flex-start;
    gap: 10px; /* 文字とリボンの間のすき間 */

    line-height: 1.3;
    margin-top: -2px;
    margin-bottom: 5px;
}

/* リボンアイコンのスタイル定義 */
.item-name__ribbon {
    display: inline-block;
    height: 1.2em; /* 文字の大きさに合わせて自動で縮尺されます */
    width: auto;   /* 横幅は比率を維持 */
    vertical-align: middle;
}

.item-price {
    font-size: 11px;
    line-height: 1.4;
    margin-bottom: 8px;
}

.item-price__tax {
    font-size: 11px;
}

.item-spec {
    font-size: 0.78rem;
    color: var(--col-mid);
    margin-bottom: var(--sp-sm);
    letter-spacing: 0.02em;
}

.item-note {
    font-size: 11px;
    margin-bottom: var(--sp-sm);
    line-height: 1.4;
    margin-bottom: 8px;
}

/* カラー展開 */
.item-colors {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-sm) var(--sp-lg);
    margin-top: var(--sp-sm);
}

.item-color {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.item-color__label {
    font-size: 0.72rem;
    color: var(--col-mid);
    letter-spacing: 0.04em;
}

.item-color__code {
    font-size: 0.72rem;
    color: var(--col-ink);
    letter-spacing: 0.04em;
}

/* ==================== レスポンシブ ==================== */
@media (max-width: 1024px) {
    .site-header {
        display: none;
    }
    .home-fab {
      bottom: 65px;
    }

    .site-footer {
        /* スマホ向けに左右・上下の余白を適切に調整 */
        padding: 40px 20px; 
    }

    /* ─── 上の段 ─── */
    .site-footer__top {
        gap: 5px;            /* ロゴと住所、住所とバナーの間の余白 */
        margin-bottom: 5px;  /* コピーライトとの間の余白 */
        padding-bottom: 0;
    }
    .site-footer__top img {
        width: 100%;
    }
    .footer-logo {
        max-width: 320px;     /* ロゴが大きくなりすぎないように制限（必要に応じて調整） */
        width: 100%;
        margin: 0 auto;
    }

    .footer-address {
        font-size: 15px;      /* 画像を元に、文字を少し読みやすい大きさに微調整 */
        letter-spacing: 0.05em;
        text-align: center;
        border-bottom: 1px dashed #000000;
        padding-bottom: 0px;
        margin-bottom: 5px;
    }

    /* バナーをまとめるグループ */
    .footer-banner-group {
        width: 100%;
        max-width: 268px;     /* バナーの最大幅（画像のボタン幅に合わせる） */
        gap: 12px;            /* OFFICIAL SITE と ONLINE SHOP の間の余白 */
        margin-top: 5px;
    }

    .footer-banner {
        width: 100%;
    }

    .footer-banner a,
    .footer-banner img {
        width: 100%;
        display: block;
        height: auto;
    }

    /* ─── 下の段 ─── */
    .site-footer__bottom {
        gap: 0;
    }

    /* 画像に「※商品は手作りのため〜」の文言がないため非表示に */
    /* もし表示したい場合は、この display: none; を削除してください */
    .footer-note {
        display: none; 
    }

    .footer-copy {
        font-size: 11px;      /* スマホでも視認できるサイズに調整 */
        color: #333333;       /* 文字色 */
        text-align: center;   /* 中央揃えに */
        margin-top: 15px;
    }
}

@media (min-width: 1025px) {
    body {
        padding-bottom: 0;
    }

    .floating-bar {
        position: fixed;
        top: 0;
        height: var(--floating-bar-h);
        width: 414px;
        padding: 0 42px;
    }

    .hero__text {
        font-size: 18px;
        line-height: 43px;
        /* 上からの位置（お好みで調整してください） */
        top: 230px; 
        letter-spacing: 5px;
        /* 左右の中央に配置 */
        left: 35%;
        transform: translateX(-37%);
    }

    .hero__image_logo {
        display: block;
        position: absolute;
        /* 上からの位置（お好みで調整してください） */
        top: 355px;
        
        /* 左右の中央に配置 */
        left: 65%;
        transform: translateX(-65%);
    }

    .floating-bar__icons {
        gap: 25px;
    }

    /* ─── 吹き出しポップアップ（PC用アニメーション修正） ─── */
    .contents-popup__list {
        padding: 17px 40px;
    }

    .contents-popup {
        top: 56px;
        bottom: auto; /* スマホ用の bottom: 56px をリセット */
        
        /* 上から下にふわっと出すため、初期位置を「少し上(-10px)」に設定 */
        transform: translateY(-10px); 
    }

    .contents-popup__body {
        max-height: 90vh;
    }

    /* 開いたとき（is-open）の動き */
    .contents-popup.is-open {
        transform: translateY(0);
    }

    /* 三角しっぽの調整（既存のコード通りでOKです） */
    .contents-popup::after {
        /* 下側のリセット */
        bottom: auto; 
        
        /* 上側に配置 */
        top: -16px; 
        left: 55px; 
        
        /* 三角の向きを「上向き（下が白）」に変形 */
        border-width: 0px 15px 16px 0px;
        border-color: transparent transparent #fafafa transparent;
    }

    /* 既存の display: none; を上書きして表示させる */
    .site-footer {
        display: block !important; 
    }

    /* 上の段を横並びに */
    .site-footer__top {
        flex-direction: row;
        justify-content: space-between; /* 両端にバランスよく分散配置 */
        align-items: center;
        text-align: left;
    }

    .footer-banner-group {
        flex-direction: row;  /* PC時は横並び */
        gap: 20px;            /* PC時もバナー間の余白は20px固定 */
        padding-top: 8px;
    }

    /* 住所テキストが他と馴染むように微調整 */
    .footer-address {
        font-size: 0.85rem;
        letter-spacing: 0.1em;
        padding-top: 12px;
    }

    /* ─── 下の段の配置修正 ─── */
    .site-footer__bottom {
        flex-direction: row;       /* 左：注釈、右：コピーライトの通常順に戻す */
        justify-content: center;   /* ★両端ではなく、全体を画面の「中央」に集める */
        align-items: center;
        gap: 30px;                 /* ★2つの要素の間を「30px」に固定する */
        width: 100%;
    }

    /* テキスト自体の配置（中央に集まるので、基本は自動で綺麗に並びます） */
    .footer-note {
        text-align: left;
    }

    .footer-copy {
        text-align: left;
    }
    .product_footer{
        text-align:center;
        font-size: 14px;
    }
    .footer_hr{
		display:none;
	}

    /* =============================================
       商品セクション
       ============================================= */
    .product-page {
        max-width: 1200px;
        margin: 0 auto;
        padding-top: 50px;
    }

    .product-header {
        padding-bottom: 20px;
    }

    .product-title {
        font-size: 48px;
    }

    .product-title__ja {
        font-size: 15px;
    }

    .main-image {
		max-width:900px;
        margin: 0 auto 60px;
    }

    .sub_image {
        margin-top: 50px;
        margin-bottom: 50px;
    }
    
    .ion_image{
		max-width:340px;
    }
    .sub_image img {
		max-width:340px;
    }
    .discription {
    	max-width:900px;
	    font-size: 22px;
    }
    .detailed_description {
    	max-width:900px;
	    font-size: 18px;
        margin-bottom: 50px;
    }



    /* 1. 全体を囲むコンテナ */
    .detail-gallery--slidable.swiper {
        overflow: visible !important; /* はみ出しを許可 */
        display: flex !important;
        justify-content: center; /* 横方向の中央寄せ */
        align-items: center;
        width: 100% !important;
        margin: 0 auto 50px !important;
    }

    /* 2. トラック（親要素）のSwiper移動を止めて、隙間20pxで中央寄せ */
    .detail-gallery__track.swiper-wrapper {
        transform: none !important; /* Swiperの勝手な移動を強制停止 */
        display: flex !important;
        flex-wrap: wrap; /* 枚数が多くて画面幅を超えたら自動で下段に折り返す */
        justify-content: center; /* 中央寄せ */
        gap: 20px !important; /* PC時の隙間を20pxに固定 */
        width: auto !important; /* コンテンツに合わせて幅を自動にする */
    }

    /* 3. 各セルの幅を 185px に完全固定 */
    .detail-gallery__cell.swiper-slide {
        flex: 0 0 185px !important; /* 縮んだり伸びたりさせない */
        width: 185px !important;    /* 横幅を185pxに固定 */
        height: auto !important;
    }

    /* 4. PCではスライドしないため、矢印ボタンを完全に非表示 */
    .detail-gallery__arrow {
        display: none !important;
    }

    .item-info {
        max-width: 800px;
        margin: 0 auto;
        border-left: 16px solid #eaece8;
        padding-left: 30px;
    }

    .item-name {
        font-size: 16px;
        margin-bottom: 10px;
    }

    .item-price, .item-price__tax {
        font-size: 14px;
        margin-bottom: 15px;
    }

    .item-section {
        padding-bottom: 60px;
    }

.section-title-area{
	max-width:600px;
}
.section-title-area h2{
    font-size: 28px;
}
.section-notice{
    font-size: 13px;
}
.section-notice2{
    font-size: 16px;
}
.section-notice3{
    font-size: 15px;
}
.item-copy {
    font-size: 15px;
    max-width: 320px;
    margin-bottom:30px;
}
.detail-gallery--customize{
	max-width:390px;
}
.tanuki_image{
	max-width: 920px;
}
/* -----たぬきセクション ---- */
/* 全体のコンテナ（中央寄せのベース） */
.tanutanu-title-area {
  max-width: 630px;      /* コンテンツの最大幅（デザインに合わせて調整してください） */
}

/* 2. 中央の説明文 */
.tanutanu-section-notice {
  font-size: 18px;
}

.tanutanu-box-area img {
  max-width: 268px;               /* 箱画像の大きさを制限（お好みで調整） */
}

.tanutanu-box-text {
  font-size: 16px;
}
/* -----Giftセクション ---- */
.gift-section {
	padding-top:50px;
}
.gift-container {
  max-width: 800px; /* 縦長で綺麗に収まるサイズに制限 */
}

/* タイトルと見出し */
.gift-title {
  font-size: 28px;
  margin-bottom: 15px;
}

.gift-lead {
  font-size: 18px;
  margin-bottom: 40px;
}
.gift-main-img img {
   max-width: 450px;
}
.gift-color-options {
    gap: 20px;
}
.color-item {
    width: 90px;
}

.color-item p {
  font-size: 15px;
}

/* ※飾り紐の色が選べます */
.gift-notice-sm {
  font-size: 18px;
}

/* 下部の説明長文 */
.gift-description {
  font-size: 18px;
}


.gift-mark-area img {
/*  max-width: 474px; */ /* マーク画像のサイズ制限（バランスを見て調整） */
}


}

/* タブレット縦 */
@media (min-width: 740px) and (max-width: 1024px) {
  /* ここにiPad mini縦向けの調整を書く */
.hero__text {
    font-size: 24px;
    top: 200px;
}
    .hero__image_logo {
        top: 755px;
        
    }

}
/* =============================================
   Contents Links — PC（3列×6行 / 縦詰め表示）
   ============================================= */
@media (min-width: 1025px) {
    .contents-links {
        padding: 64px var(--sp-lg) 40px;
    }

    .contents-links__badge {
        margin-bottom: 36px;
        margin-top: -90px;
    }

    .contents-links__grid {
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(6, auto);
        grid-auto-flow: column;
        column-gap: 45px;
        row-gap: 0px;
    }
    .contents-links__note{
		display:none;
	}

    .contents-links__label {
        font-size: 18px;
    }
}
