/* =========================================================================
   monocosmelab  /shop_redesign1/  「カテゴリー別に探す」横スライダー（B-11）
   -------------------------------------------------------------------------
   既存のテキストナビ（4項目）を、正方形画像カードの横スライダーに置き換える。
   挙動・矢印は「おすすめ商品」（B-9）と同じ仕組み（scroll-snap + 矢印JS）。

   ◆ 適用方法
     functions.php の enqueue 配列に 'category' を追加して読み込む
     （css/shop-redesign1-category.css）。矢印JS は shop-redesign1-slider.js
     が汎用対応済みなので追加作業は不要。

   ◆ 前提マークアップ（「カテゴリー別に探す」見出しの直下に Custom HTML ブロックで配置）
     <div class="shop-category-slider">
       <div class="shop-cat-track">
         <a class="shop-cat-card" href="...">
           <span class="shop-cat-thumb" style="--cat-color:#xxxxxx"></span>   ← ダミー（後で画像に差替）
           <span class="shop-cat-name">カテゴリー名</span>
         </a>
         × 7
       </div>
     </div>

   ◆ 本画像への差し替え（後日）
     <span class="shop-cat-thumb" style="background-image:url('画像URL')"></span>
     正方形（1:1）でトリミングされるので 800×800px 目安。

   ◆ 変数（--kage-*）は B-7（product_cards.css）の .page-id-2784 で定義済み。
   ========================================================================= */

/* ---- 0. 矢印配置の基準。セクションを相対配置に ------------------------- */
.page-id-2784 .shop-category-slider {
  position: relative;
}

/* =========================================================================
   1. トラック（カード列）を横1列スクロールに
   ========================================================================= */
.page-id-2784 .shop-category-slider .shop-cat-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 1.2rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding: 0.4rem 0.25rem 1.2rem;
  margin: 0;
  scrollbar-width: thin;
  scrollbar-color: var(--kage-line, #E7DBCF) transparent;
}
.page-id-2784 .shop-category-slider .shop-cat-track::-webkit-scrollbar {
  height: 6px;
}
.page-id-2784 .shop-category-slider .shop-cat-track::-webkit-scrollbar-track {
  background: transparent;
}
.page-id-2784 .shop-category-slider .shop-cat-track::-webkit-scrollbar-thumb {
  background: var(--kage-line, #E7DBCF);
  border-radius: 999px;
}

/* =========================================================================
   2. カード（正方形サムネ＋カテゴリー名）。PC で 5〜6枚見え
   ========================================================================= */
.page-id-2784 .shop-category-slider .shop-cat-card {
  flex: 0 0 auto;
  width: clamp(140px, 16vw, 180px);
  scroll-snap-align: start;
  text-decoration: none;
  color: var(--kage-ink, #333333);
  display: block;
}

/* 正方形サムネ（ダミー＝--cat-color の単色 / 本番＝background-image） */
.page-id-2784 .shop-category-slider .shop-cat-thumb {
  display: block;
  aspect-ratio: 1 / 1;
  width: 100%;
  border-radius: 6px;
  border: 1px solid var(--kage-line, #E7DBCF);
  background-color: var(--cat-color, #EDE3D6);
  background-size: cover;
  background-position: center;
  transition: transform .5s ease, box-shadow .5s ease;
}

/* カテゴリー名（明朝で上品に） */
.page-id-2784 .shop-category-slider .shop-cat-name {
  display: block;
  text-align: center;
  margin-top: .7rem;
  font-family: var(--kage-serif, "Noto Serif JP", "游明朝", serif);
  font-size: .92rem;
  letter-spacing: .04em;
  line-height: 1.5;
  color: var(--kage-ink, #333333);
}

/* ホバー：おすすめカードと同じ「ふわり」演出 */
.page-id-2784 .shop-category-slider .shop-cat-card:hover .shop-cat-thumb {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px -18px rgba(51, 51, 51, .35);
}
.page-id-2784 .shop-category-slider .shop-cat-card:hover .shop-cat-name {
  color: var(--kage-amber, #A9762B);
}

/* =========================================================================
   3. 左右の矢印ボタン（JS が動的に append・おすすめと共通の見た目）
   ========================================================================= */
.page-id-2784 .shop-category-slider .shop-slider-arrow {
  position: absolute;
  top: 42%;                                 /* 正方形サムネ帯の中央付近（名前ぶん上寄せ）*/
  transform: translateY(-50%);
  z-index: 5;
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--kage-line, #E7DBCF);
  background: rgba(255, 255, 255, 0.92);
  color: var(--kage-ink, #333333);
  font-family: var(--kage-sans, "Montserrat", "Lato", sans-serif);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px -10px rgba(51, 51, 51, 0.4);
  transition: opacity .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}
.page-id-2784 .shop-category-slider .shop-slider-prev { left: -10px; }
.page-id-2784 .shop-category-slider .shop-slider-next { right: -10px; }
.page-id-2784 .shop-category-slider .shop-slider-arrow:hover {
  background: var(--kage-ink, #333333);
  color: var(--kage-beige, #FEF5EE);
  border-color: var(--kage-ink, #333333);
}
.page-id-2784 .shop-category-slider .shop-slider-arrow:focus-visible {
  outline: 2px solid var(--kage-amber, #A9762B);
  outline-offset: 2px;
}
/* 端では進めない方向の矢印を不可視化 */
.page-id-2784 .shop-category-slider.at-start .shop-slider-prev,
.page-id-2784 .shop-category-slider.at-end   .shop-slider-next {
  opacity: 0;
  pointer-events: none;
}

/* =========================================================================
   4. レスポンシブ（モバイルは矢印を隠し、スワイプ操作に委ねる）
   ========================================================================= */
@media (max-width: 781px) {
  .page-id-2784 .shop-category-slider .shop-cat-card {
    width: 36vw;                            /* 約2.5枚見せて「続きがある」と分かる */
  }
}
@media (max-width: 600px) {
  .page-id-2784 .shop-category-slider .shop-slider-arrow {
    display: none;                          /* タッチ端末はスワイプで操作 */
  }
  .page-id-2784 .shop-category-slider .shop-cat-card {
    width: 42vw;
  }
}

/* =========================================================================
   HOME AROMA 香りライン（爽 / 華 / 煌）カテゴリ画像 3枚 横並び（中央揃え・スライダー無し）
   -------------------------------------------------------------------------
   「空間を整える香り」の下の、爽/華/煌の商品表示を「カテゴリ画像3枚の横並び」に
   置き換えるための追加スタイル。商品情報は出さず、画像＋漢字ラベル＋リンクのみ。

   ◆ DOM（ページに「カスタムHTML」ブロックとして貼る。マークアップは別途提供）
     <div class="shop-line-cards">
       <a class="shop-line-card shop-line-card--sou" href="（爽の商品一覧URL）">
         <span class="shop-line-thumb"><span class="shop-line-thumb-kanji">爽</span></span>
         <span class="shop-line-name">爽<small>– SOU –</small></span>
       </a>   … 華(--hana) / 煌(--kira) も同様に計3枚
     </div>

   ◆ 本番画像への差し替え（プレースホルダ→実画像）
     各ラインの --line-grad を画像URLに変えるだけ。例:
       .page-id-2784 .shop-line-card--sou .shop-line-thumb {
         --line-grad: url("…/sou.jpg");
       }
     画像を入れたら、HTML側の <span class="shop-line-thumb-kanji">爽</span> は削除可。
   ========================================================================= */

/* カードを中央揃えで均等配置（スライダー無し）。Concept＋3ライン＝計4枚。
   Grid の repeat(4, minmax(0, 280px)) で「どの画面幅でも必ず4等分・はみ出さない」。
   flex(nowrap) ではモバイルでカードが縮みきらず横はみ出し＆幅不揃いになるため Grid 採用。 */
.page-id-2784 .shop-line-cards {
  display: grid;
  /* 1fr で常に「親幅いっぱいに4等分」。minmax(0,280px)+justify-content:center だと
     文脈によって幅計算が揺れて HOME/SKIN で差が出たため、決定論的な 1fr に変更。 */
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;                 /* shrink-to-fit を防ぎ、必ず親(コンテナ)幅へ伸ばす */
  box-sizing: border-box;
  gap: clamp(.7rem, 2.4vw, 1.8rem);
  max-width: 1100px;
  margin: 0 auto;
  padding: .5rem 0 1rem;
}

/* 各カード（リンク全体）。幅は Grid のカラムが決めるので flex/max-width は不要。 */
.page-id-2784 .shop-line-card {
  min-width: 0;
  display: block;
  text-decoration: none;
  color: var(--kage-ink, #333333);
}

/* 正方形サムネ（ダミー＝--line-grad のグラデ / 本番＝背景画像に差し替え） */
.page-id-2784 .shop-line-thumb {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  width: 100%;
  border-radius: 8px;
  border: 1px solid var(--kage-line, #E7DBCF);
  background-color: var(--line-color, #EDE3D6);
  background-image: var(--line-grad, linear-gradient(150deg, #eef0e6 0%, #e4ddcf 60%, #d8c7b3 100%));
  background-size: cover;
  background-position: center;
  overflow: hidden;
  transition: transform .5s ease, box-shadow .5s ease;
}

/* プレースホルダの漢字（本番画像をインラインstyleで入れると自動で隠れる） */
.page-id-2784 .shop-line-thumb-kanji {
  font-family: var(--kage-serif, "Noto Serif JP", "游明朝", serif);
  font-size: clamp(2.4rem, 7vw, 4rem);
  color: rgba(51, 51, 51, .22);
  letter-spacing: .1em;
  user-select: none;
}
.page-id-2784 .shop-line-thumb[style*="background-image"] .shop-line-thumb-kanji {
  display: none;
}

/* ライン別プレースホルダの色味（落ち着いた自然色） */
/* HOME AROMA */
.page-id-2784 .shop-line-card--concept .shop-line-thumb { --line-grad: linear-gradient(150deg, #ece5da 0%, #d3c6b6 100%); }
.page-id-2784 .shop-line-card--sou     .shop-line-thumb { --line-grad: linear-gradient(150deg, #e6efe1 0%, #cdd9c4 100%); }
.page-id-2784 .shop-line-card--hana    .shop-line-thumb { --line-grad: linear-gradient(150deg, #f3e6e0 0%, #e3ccc3 100%); }
.page-id-2784 .shop-line-card--kira    .shop-line-thumb { --line-grad: linear-gradient(150deg, #f1e7d2 0%, #e0caa4 100%); }
/* SKIN AROMA */
.page-id-2784 .shop-line-card--floral  .shop-line-thumb { --line-grad: linear-gradient(150deg, #f0e2e2 0%, #dcc4c6 100%); }
.page-id-2784 .shop-line-card--fruity  .shop-line-thumb { --line-grad: linear-gradient(150deg, #f4e8d8 0%, #e6ceb2 100%); }
.page-id-2784 .shop-line-card--herbal  .shop-line-thumb { --line-grad: linear-gradient(150deg, #e6ece0 0%, #ccd6c0 100%); }

/* 漢字以外（Concept / SKINの英字ライン名）のプレースホルダ文字は長いので小さめに */
.page-id-2784 .shop-line-card--concept .shop-line-thumb-kanji,
.page-id-2784 .shop-line-card--floral  .shop-line-thumb-kanji,
.page-id-2784 .shop-line-card--fruity  .shop-line-thumb-kanji,
.page-id-2784 .shop-line-card--herbal  .shop-line-thumb-kanji {
  font-size: clamp(1rem, 3.2vw, 1.6rem);
  letter-spacing: .18em;
}

/* ラベル（漢字＋ローマ字） */
.page-id-2784 .shop-line-name {
  display: block;
  text-align: center;
  margin-top: .8rem;
  font-family: var(--kage-serif, "Noto Serif JP", "游明朝", serif);
  font-size: clamp(1.1rem, 2.4vw, 1.5rem);
  letter-spacing: .12em;
  line-height: 1.4;
  color: var(--kage-ink, #333333);
}
.page-id-2784 .shop-line-name small {
  display: block;
  margin-top: .25rem;
  font-family: var(--kage-sans, "Montserrat", "Lato", sans-serif);
  font-size: .62em;
  letter-spacing: .28em;
  color: var(--kage-amber, #A9762B);
}

/* ホバー：おすすめ/カテゴリと同じ「ふわり」演出 */
.page-id-2784 .shop-line-card:hover .shop-line-thumb {
  transform: translateY(-5px);
  box-shadow: 0 16px 34px -18px rgba(51, 51, 51, .4);
}
.page-id-2784 .shop-line-card:hover .shop-line-name small {
  color: var(--kage-ink, #333333);
}

/* Concept はリンクではない（<div>）。クリック誘発のホバー演出・ポインタを無効化し、
   見た目（サイズ・配置・色）は他カードと揃えたまま静止させる。 */
.page-id-2784 .shop-line-card--concept {
  cursor: default;
}
.page-id-2784 .shop-line-card--concept:hover .shop-line-thumb {
  transform: none;
  box-shadow: none;
}
.page-id-2784 .shop-line-card--concept:hover .shop-line-name small {
  color: var(--kage-amber, #A9762B);
}

/* スマホ：3枚並びを維持しつつ余白・字間を詰める */
@media (max-width: 600px) {
  .page-id-2784 .shop-line-cards { gap: .6rem; }
  .page-id-2784 .shop-line-name { letter-spacing: .06em; }
}

/* =========================================================================
   HOME と SKIN の line-cards の「親の幅」差を吸収して横幅を揃える
   -------------------------------------------------------------------------
   HOMEの line-cards は .shop-fragrance（alignfull＝全幅）の中にあり全幅(例:400px)、
   SKINの line-cards は .shop-fragrance の外（通常コンテンツ幅＝左右padding分狭い・例:336px）
   にあるため、モバイルで幅が食い違う（PC幅は両者 max-width:1100 で一致）。
   SKIN側＝「.shop-fragrance の外にある line-cards」だけを、モバイルでビューポート幅へ
   広げて HOME と揃える。:not(.shop-fragrance *) で HOME(=fragrance内)は対象外。
   ※ 恒久対処はエディタで SKIN セクションを「Fragrance Line up」グループ内へ移すこと。
   ========================================================================= */
@media (max-width: 781px) {
  .page-id-2784 .shop-line-cards:not(.shop-fragrance *) {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
}

/* =========================================================================
   B-15  Fragrance Line up リニューアル（コンセプト画像＋展開アコーディオン）
   -------------------------------------------------------------------------
   旧「Concept＋3ライン＝4枚グリッド（小さく見づらい）」を廃し、
     1) HOME/SKIN ごとに「コンセプト画像（横長バナー・非リンク）」
     2) その下に「ライン画像3枚の横アコーディオン」
        … ホバー/タップで選んだ1枚が大きく展開（約2倍）し、他は縦長タブに畳む。
   画像は文字・香りピラミッドを内包した完成画像なので、重ね表示の見出し・
   サブコピー・プレースホルダ文字は使わず、画像のみを <img> で配置する。
   （旧 .shop-line-* / .shop-line-cards のCSSは新マークアップでは未使用＝休眠）

   ◆ マークアップ（カスタムHTMLブロック）
     <div class="shop-lineup shop-lineup--home">
       <div class="shop-lineup-concept"><img class="shop-lineup-concept-img" …></div>
       <div class="shop-lineup-accordion">
         <a class="shop-lineup-panel shop-lineup-panel--sou is-active" href="…">
           <img class="shop-lineup-panel-img" …>
           <span class="shop-lineup-panel-label">爽 <small>SOU</small></span>
         </a> … ×3（先頭に is-active を付けて既定で開いておく）
       </div>
     </div>
   ◆ 挙動は js/shop-redesign1-lineup.js（PCホバー / タップ / フォーカスで is-active 切替）。
     JSが無くても先頭パネルが開いた静的表示にフォールバックする。
   ◆ 変数（--kage-*）は B-7（product_cards.css）の .page-id-2784 で定義済み。
   ========================================================================= */

/* グループ（HOME / SKIN）。alignfull の .shop-fragrance 内でコンテンツ幅に収める */
.page-id-2784 .shop-lineup {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  box-sizing: border-box;
}
/* HOME と SKIN の間に余白を確保 */
.page-id-2784 .shop-lineup + .shop-lineup {
  margin-top: clamp(2.5rem, 6vw, 4.5rem);
}

/* コンセプト画像（横長3:2 バナー・非リンク） */
.page-id-2784 .shop-lineup-concept {
  margin: 0 auto clamp(1.2rem, 3vw, 2rem);
}
.page-id-2784 .shop-lineup-concept-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}

/* --- 横アコーディオン本体 --------------------------------------------- */
.page-id-2784 .shop-lineup-accordion {
  display: flex;
  gap: 10px;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  height: clamp(380px, 46vw, 600px);   /* 行の高さ＝畳んだタブの高さ */
  box-sizing: border-box;
}

/* 各パネル（既定は均等。is-active で大きく伸びる） */
.page-id-2784 .shop-lineup-panel {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  border-radius: 8px;
  display: block;
  text-decoration: none;
  color: var(--kage-ink, #333333);
  background: #EFE7DB;                  /* フォールバック地色 */
  cursor: pointer;
  transition: flex-grow 1.1s cubic-bezier(.22, .61, .36, 1);
}

/* 畳んだタブの地色（ライン別の落ち着いた自然色グラデ） */
.page-id-2784 .shop-lineup-panel--sou    { background: linear-gradient(160deg, #e6efe1 0%, #cdd9c4 100%); }
.page-id-2784 .shop-lineup-panel--hana   { background: linear-gradient(160deg, #f3e6e0 0%, #e3ccc3 100%); }
.page-id-2784 .shop-lineup-panel--kira   { background: linear-gradient(160deg, #eae6f2 0%, #c8c2dd 100%); }
.page-id-2784 .shop-lineup-panel--floral { background: linear-gradient(160deg, #f0e2e2 0%, #dcc4c6 100%); }
.page-id-2784 .shop-lineup-panel--fruity { background: linear-gradient(160deg, #f4e8d8 0%, #e6ceb2 100%); }
.page-id-2784 .shop-lineup-panel--herbal { background: linear-gradient(160deg, #e6ece0 0%, #ccd6c0 100%); }

/* 展開時：大きく伸び、地色は消してセクションのベージュに溶かし画像を主役に */
.page-id-2784 .shop-lineup-panel.is-active {
  flex-grow: 4;
  background: transparent;
}

/* ライン画像（展開時のみ表示・全体を見せる contain・中央寄せ） */
.page-id-2784 .shop-lineup-panel-img {
  position: absolute;
  inset: 0;
  margin: auto;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  opacity: 0;
  transition: opacity .85s ease .3s;     /* 幅が伸びきる頃にゆっくり出す */
}
.page-id-2784 .shop-lineup-panel.is-active .shop-lineup-panel-img {
  opacity: 1;
  border: 1px solid var(--kage-line, #E7DBCF);
  box-shadow: 0 16px 34px -20px rgba(51, 51, 51, .4);
}

/* タブのラベル（畳んでいる時のみ表示・縦長タブの中央） */
.page-id-2784 .shop-lineup-panel-label {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .3rem;
  padding: .6rem;
  text-align: center;
  font-family: var(--kage-serif, "Noto Serif JP", "游明朝", serif);
  font-size: clamp(1.2rem, 2.2vw, 1.8rem);
  letter-spacing: .12em;
  line-height: 1.3;
  color: var(--kage-ink, #333333);
  opacity: 1;
  transition: opacity .6s ease;
  pointer-events: none;                  /* クリックはパネル<a>に通す */
}
.page-id-2784 .shop-lineup-panel-label small {
  font-family: var(--kage-sans, "Montserrat", "Lato", sans-serif);
  font-size: .5em;
  letter-spacing: .26em;
  color: var(--kage-amber, #A9762B);
}
.page-id-2784 .shop-lineup-panel.is-active .shop-lineup-panel-label {
  opacity: 0;
}

/* フォーカス可視（キーボード操作） */
.page-id-2784 .shop-lineup-panel:focus-visible {
  outline: 2px solid var(--kage-amber, #A9762B);
  outline-offset: 2px;
}

/* モバイル：横アコーディオンを解除し、画像を縦に積む（タップ＝そのままリンク遷移）。
   タップでの誤展開・誤遷移を避けるため、JS側(shop-redesign1-lineup.js)でも
   max-width:781px ではタップ展開を無効化している。 */
@media (max-width: 781px) {
  .page-id-2784 .shop-lineup-accordion {
    flex-direction: column;
    height: auto;
    gap: clamp(1rem, 5vw, 1.6rem);
  }
  /* パネルは全幅の通常ブロックに。タブ地色・固定高さ・伸縮アニメを解除 */
  .page-id-2784 .shop-lineup-panel {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    overflow: visible;
    border-radius: 0;
    background: transparent !important;
    transition: none;
  }
  /* 画像を通常フローで全幅表示（absolute/contain・フェードを解除して常時表示） */
  .page-id-2784 .shop-lineup-panel-img {
    position: static;
    inset: auto;
    margin: 0;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    opacity: 1 !important;
    border: 1px solid var(--kage-line, #E7DBCF);
    border-radius: 8px;
    box-shadow: none;
    transition: none;
  }
  /* タブのラベルは縦積みでは不要 */
  .page-id-2784 .shop-lineup-panel-label {
    display: none;
  }
}

/* モーション軽減設定では伸縮アニメを無効化（即時切替） */
@media (prefers-reduced-motion: reduce) {
  .page-id-2784 .shop-lineup-panel,
  .page-id-2784 .shop-lineup-panel-img,
  .page-id-2784 .shop-lineup-panel-label {
    transition: none;
  }
}
