/* ═══════════════════════════════════════════════════════════
   商品詳細ページ 専用スタイル
   ───────────────────────────────────────────────────────────
   ・すべて body.itm-page の内側に閉じています。
     商品詳細ページの <body> に class="itm-page" を付けてください。
     付けなければ他のページには一切影響しません。
   ・使用セレクタの接頭辞：.itm-  ／ #item- ／ #plan-
     kyoten.css に取り込む際は、この2つで grep して重複がないか
     確認してください。
   ・色は :root のトークンか --fe21-* の共通変数を参照しています。
   ═══════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════
   商品ページ デザイントークン
   会場のレイアウト図（方眼・寸法線・数値）を主題にした設計
   ═══════════════════════════════════════════════ */
:root{
  --itm-ink:    #0F2B3D;  /* 濃紺：見出し・強調 */
  --itm-body:   #46606F;  /* 本文 */
  --itm-mute:   #8AA0AE;  /* 補足 */
  --itm-line:   #DCE7EE;  /* 罫線 */
  --itm-grid:   #E9F2F8;  /* 方眼 */
  --itm-paper:  #F4F8FB;  /* 背景 */
  --itm-tint:   #FFFFFF;  /* ページ内ナビの帯（白）・バッジの縁取り */
  --itm-header: 76px;     /* 固定ヘッダーの高さ（ズレる場合はここを調整） */
}
@media (min-width:768px){ :root{ --itm-header:104px; } }

/* ═══════════════════════════════════════════════
   ページの地色（拠点ごと）
   ───────────────────────────────────────────────
   集約ページの <body> は bg-corporate-pale、つまり
   --fe21-pale です。商品ページでも同じ変数を参照するので、
   集約ページと完全に同じ背景色になります。

   値は kyotentop.css が拠点ごとに持っています。
     福岡 #fff8f0 ／ 熊本 #fff5f4 ／ 千葉 #f9f4ff
     埼玉 #f4ffff ／ 大阪 #f4ffff ／ 京都 #f4ffff
     北海道 #f2fbff ／ 愛知 #fff4fc
   拠点が増えても、こちらに書き足す必要はありません。

   ※ ページ内ナビの帯は白（--itm-tint）です。地色とは
     ナビ下端の罫線（--itm-line）で区切られます。
     方眼（--itm-grid）は従来どおりの固定色です。
   ═══════════════════════════════════════════════ */
body.itm-page{
  /* 変数が読めなかった場合だけ、従来の色に戻る */
  --itm-paper: var(--fe21-pale, #F4F8FB);
}

/* ページ下部のお問い合わせ欄。真っ黒だと重いので、
   拠点カラーを少し含んだ濃色にする。 */
.itm-cta-box{ background:var(--itm-ink); }
@supports (background: color-mix(in srgb, red 50%, white)){
  .itm-cta-box{
    background:color-mix(in srgb, var(--fe21-concept, #2E86C1) 18%, #1B2733);
  }
}

/* 罫線も拠点の色に寄せる。
   --itm-line は北海道の青を前提にした固定値だったため、
   他拠点では枠だけ青みが残っていた。
   拠点カラーをそのまま使うと濃すぎるので、白で薄めて線らしくする。 */
@supports (border-color: color-mix(in srgb, red 50%, white)){
  body.itm-page{
    --itm-line: color-mix(in srgb, var(--fe21-concept, #2E86C1) 22%, #ffffff);
    --itm-grid: color-mix(in srgb, var(--fe21-concept, #2E86C1) 12%, #ffffff);
  }
}

/* 千葉の集約ページだけ --fe21-pale を使わず、Tailwind設定に
   #faf5ff を直書きしている（corporate.light）。
   kyotentop.css の #f9f4ff とは1段階しか違わず見分けはつかないが、
   集約ページに厳密に合わせるためここで指定している。
   千葉を他拠点と同じ構造に作り直したら、この2行は削除してよい。 */
body.itm-page.chiba-page{ --itm-paper:#faf5ff; }

.itm-page #item-main{ scroll-margin-top:calc(var(--itm-header) + 12px); }

body.itm-page{
  background:var(--itm-paper);
  font-feature-settings:"palt";
  letter-spacing:.1rem;
}

/* 方眼パネル（レイアウト図のメタファー） */
.itm-blueprint{
  background-color:#fff;
  background-image:
    linear-gradient(var(--itm-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--itm-grid) 1px, transparent 1px);
  background-size:28px 28px;
  background-position:center center;
}


/* 寸法線 */
.itm-dim{ position:absolute; color:var(--itm-ink); pointer-events:none; }
.itm-dim span{
  display:inline-block; background:#fff; padding:1px 6px;
  font-size:11px; font-weight:700; letter-spacing:.04em;
  border:1px solid var(--itm-line); border-radius:3px; white-space:nowrap;
}
.itm-dim-v{ border-right:1px dashed var(--fe21-concept, #2E86C1); }
.itm-dim-h{ border-top:1px dashed var(--fe21-concept, #2E86C1); }

/* 見出し：短い下線を1本だけ引く */
.itm-h2{
  font-weight:900; color:var(--itm-ink); line-height:1.35;
  letter-spacing:.01em;
}
.itm-h2::after{
  content:""; display:block; width:44px; height:3px; margin-top:14px;
  background:var(--fe21-concept, #2E86C1);
}

/* 数値バンド */
.itm-figs dt{ font-size:11px; color:var(--itm-mute); font-weight:600; }
.itm-figs dd{ font-weight:900; color:var(--itm-ink); line-height:1.15; font-variant-numeric:tabular-nums; }

/* 仕様シート */
.itm-sheet{ border-top:1px solid var(--itm-line); }
.itm-sheet > div{ border-bottom:1px solid var(--itm-line); }
.itm-sheet dt{ color:var(--itm-mute); font-weight:600; }
.itm-sheet dd{ color:var(--itm-ink); font-weight:600; font-variant-numeric:tabular-nums; }

/* 関連商品：枠を持たせず、下罫線と余白で並びを作る */
/* カードの写真の下地は白。商品写真は背景が白いものが多く、
   地色を敷くと切り抜きの境目が見えてしまう。 */
.itm-thumbcard figure{ background:#fff; border:1px solid var(--itm-line); }
.itm-thumbcard:hover figure{ border-color:var(--fe21-concept, #2E86C1); }
.itm-thumbcard:hover .itm-thumbcard-name{ color:var(--fe21-concept, #2E86C1); }

/* FAQ：カードにせず罫線のリストにする */
.itm-qa{ border-top:1px solid var(--itm-line); }
.itm-qa details{ border-bottom:1px solid var(--itm-line); }
.itm-qa summary{ list-style:none; cursor:pointer; }
.itm-qa summary::-webkit-details-marker{ display:none; }
.itm-qa summary .itm-qa-mark::before{ content:"＋"; }
.itm-qa details[open] summary .itm-qa-mark::before{ content:"−"; }

/* 入力欄 */
.itm-input{
  width:100%; padding:10px 12px; font-size:14px; color:var(--itm-ink);
  background:#fff; border:1px solid var(--itm-line); border-radius:8px;
  font-variant-numeric:tabular-nums;
}
.itm-input:focus{ outline:2px solid var(--fe21-concept, #2E86C1); outline-offset:1px; border-color:transparent; }

/* モーダルは表示しません（カート連携のためDOMのみ残しています） */
.itm-page #product-modal-overlay{visibility:hidden!important;opacity:0!important;pointer-events:none!important;}

/* スマホ用アクションバー：入力欄が見えている間は出さない */
.itm-actionbar{
  transform:translateY(120%);
  transition:transform .25s ease;
  padding-bottom:calc(12px + env(safe-area-inset-bottom));
}
.itm-actionbar.is-visible{ transform:none; }
/* スマホのアクションバーと重ならないよう、トップへ戻るボタンを上げる */
.itm-page #itm-totop{ transition:opacity .25s ease, transform .25s ease, bottom .25s ease; }
body.itm-page.has-actionbar #itm-totop{ bottom:6.5rem; }
@media (min-width:1024px){ body.itm-page.has-actionbar #itm-totop{ bottom:1.5rem; } }
.itm-page #plan-panel{ scroll-margin-top:calc(var(--itm-header) + 76px); }

/* フッター（地図・問い合わせ）に差しかかったら追従要素を隠す
   ※PCではカートがナビ内にあるため、隠す対象はスマホのアクションバーだけ */
body.at-footer .itm-actionbar{ transform:translateY(120%); }
@media (max-width:1023px){
  body.itm-page.at-footer #itm-totop{ opacity:0; visibility:hidden; pointer-events:none; }
}

/* 数値バンド：ラベルを1行に固定して、ラベル・数字とも高さを揃える */
.itm-figs{ align-items:stretch; }
.itm-figs > div{
  border-color:var(--itm-line);
  display:flex; flex-direction:column;
  padding-left:12px; padding-right:12px;
}
.itm-figs > div:first-child{ padding-left:0; }
.itm-figs dt{
  font-size:10px;
  line-height:1.4;
  white-space:nowrap;      /* 折り返させない＝ラベルの高さが必ず揃う */
  letter-spacing:0;
}
.itm-figs dd{ margin-top:6px; display:flex; align-items:baseline; min-height:1.6em; }

@media (min-width:768px){
  .itm-figs dt{ font-size:11px; }
}
/* スマホは2列2段。下段だけ余白を足し、上段には区切り線を引く */
@media (max-width:767px){
  .itm-figs > div{ padding-left:14px; padding-right:14px; }
  .itm-figs > div:first-child{ padding-left:14px; }
  .itm-figs > div:nth-child(2n){ border-right:0; }
  .itm-figs > div:nth-child(-n+2){ border-bottom:1px solid var(--itm-line); padding-bottom:14px; }
  .itm-figs > div:nth-child(n+3){ padding-top:14px; }
}

/* PCは4列。上下のズレが出ないよう余白をリセットする */
@media (min-width:768px){
  .itm-figs > div{ padding-top:0; padding-bottom:0; border-bottom:0; }
  .itm-figs > div:nth-child(4){ border-right:0; }
}

/* 本文：文章は読みやすい幅で止め、図版だけカラム幅いっぱいに広げる */
.itm-prose > p,
.itm-prose > h3,
.itm-prose > ul{ max-width:68ch; }

/* ═══════════════════════════════════════════════
   商品画像を貼り付ける（PCのみ）
   ───────────────────────────────────────────────
   右の列（商品名・タグ・製品仕様）のほうが縦に長いので、
   左の画像だけ先に終わって余白ができていました。
   画像を画面に貼り付けて、右が読み終わるまで見えるようにします。

   ご利用プランの入力（#plan-panel）と同じ考え方です。

   ※ スマホ・タブレットでは縦に積まれるため、貼り付けません。
     画面が画像で埋まってしまいます。
   ═══════════════════════════════════════════════ */
@media (min-width:1024px){
  /* 外側の列を中央の仕様欄と同じ高さに伸ばし、内側の画像に追従できる範囲を確保する。 */
  .itm-page #item-main .lg\:col-span-5{ align-self:stretch; min-width:0; }

  /* 画像・説明文・チェック項目をまとめて画面に貼り付ける。
     中央のスペックを読み終えるまで、ここは動かない。 */
  .itm-page .itm-visual{
    position:sticky;
    /* 2段のページ内ナビ（約72px）と余白20pxの下で追従する。 */
    top:calc(var(--itm-header) + 92px);
  }

  /* 画面より背が高いと、貼り付く前にスクロールが終わってしまう。
     画面に収まる高さに抑える。 */
  .itm-page .itm-visual .itm-slides,
  .itm-page .itm-visual .itm-slide img,
  .itm-page #item-thumbs{
    max-height:calc(100vh - var(--itm-header) - 332px);
  }
  .itm-page .itm-visual .itm-slide{
    display:flex; align-items:center; justify-content:center;
  }
  .itm-page .itm-visual .itm-slide img{
    width:auto; margin-inline:auto; object-fit:contain;
  }
  .itm-page #item-thumbs{ overflow-y:auto; scrollbar-width:none; }
  .itm-page #item-thumbs::-webkit-scrollbar{ display:none; }
}

/* 理由・注意事項・地域紹介：左の見出しと補足文を各セクション内で追従 */
@media (min-width:1024px){
  .itm-page .itm-section-heading-column{ align-self:stretch; min-width:0; }
  .itm-page .itm-section-heading{
    position:sticky;
    top:calc(var(--itm-header) + 92px);
  }
}

/* ═══════════════════════════════════════════════
   チャット（Chamo）の色を拠点に合わせる
   ───────────────────────────────────────────────
   Chamo は帯の色を要素の style 属性に直接書き込みます。

     <div class="chamo-titlebar" style="background-color: rgb(127,186,0)">

   style 属性はCSSファイルより優先されるため、!important が
   ないと上書きできません。ここだけは例外的に使っています。

   アカウントは全拠点で共通（2966）なので、管理画面では
   拠点ごとに色を変えられません。ページ側で変えます。

   ※ body.itm-page の内側だけの指定です。
     商品ページ以外のチャットは今までどおりの色のままです。
   ═══════════════════════════════════════════════ */
body.itm-page #chamo-window .chamo-titlebar{
  background-color:var(--fe21-concept) !important;
}

/* 最小化ボタン（×）と帯の文字を白のままに保つ */
body.itm-page #chamo-window .chamo-titlebar,
body.itm-page #chamo-window .chamo-titlebar *{
  color:#fff !important;
}

/* 顔写真が帯と重なるので下げる。
   この写真だけ position:absolute; top:10px で置かれていて、
   高さ24pxの帯の下に潜り込んでいる。
   位置も style 属性に書かれるため !important が要る。 */
body.itm-page #chamo-window #chamo-image{
  top:34px !important;
}

/* 写真を下げた分、横の文章も下げて高さをそろえる */
body.itm-page #chamo-window .chamo_main > div:first-child,
body.itm-page #chamo-window .chamo-main > div:first-child{
  margin-top:24px !important;
}

/* 閉じているときの呼び出し窓も同じ色にする */
body.itm-page #chamo-waiting .chamo-titlebar{
  background-color:var(--fe21-concept) !important;
}

/* ═══════════════════════════════════════════════
   スマホメニューの開き方
   ───────────────────────────────────────────────
   共通CSS（kyotentop.css）は display:none / block の
   切り替えなので、そのままでは動きを付けられません。

   ただし display:block にして透明にしておくと、
   閉じているあいだも要素が残り、場所を取ったり
   ページに重なったりします。
   そこで display の切り替えは共通CSSのまま触らず、
   「開いた瞬間だけ」アニメーションを1回再生します。
   閉じるときは今までどおり即座に消えます。

   商品ページの中（body.itm-page）だけの指定です。
   共通CSSは触っていないので、他のページには影響しません。
   ═══════════════════════════════════════════════ */
@keyframes itm-menu-in{
  from{ opacity:0; transform:translateY(-10px); }
  to  { opacity:1; transform:none; }
}
@keyframes itm-menu-item-in{
  from{ opacity:0; transform:translateY(-6px); }
  to  { opacity:1; transform:none; }
}

body.itm-page .mobile-menu.open{
  animation:itm-menu-in .26s ease both;
}

/* 中の項目は、少し遅れて順に入ってくる */
body.itm-page .mobile-menu.open .mobile-nav-item{
  animation:itm-menu-item-in .22s ease both;
}
body.itm-page .mobile-menu.open .mobile-nav-item:nth-child(1){ animation-delay:.05s; }
body.itm-page .mobile-menu.open .mobile-nav-item:nth-child(2){ animation-delay:.08s; }
body.itm-page .mobile-menu.open .mobile-nav-item:nth-child(3){ animation-delay:.11s; }
body.itm-page .mobile-menu.open .mobile-nav-item:nth-child(4){ animation-delay:.14s; }
body.itm-page .mobile-menu.open .mobile-nav-item:nth-child(5){ animation-delay:.17s; }
body.itm-page .mobile-menu.open .mobile-nav-item:nth-child(n+6){ animation-delay:.20s; }

/* 小項目も開くときだけ動かす。
   open が付くのは .mobile-dropdown ではなく親の .mobile-nav-item のほうで、
   共通CSS側が .mobile-nav-item.open .mobile-dropdown{ display:block } で
   出し分けているので、そこに合わせる。 */
body.itm-page .mobile-menu .mobile-nav-item.open .mobile-dropdown{
  animation:itm-menu-item-in .2s ease both;
}

/* ═══════════════════════════════════════════════
   ページ内ナビ（上段：パンくず／下段：目次＋カート）
   ・パンくずは固定。長い商品名は末尾を省略する
   ・目次は PC・スマホとも横スクロール。スクロールバーは隠す
   ・現在地は拠点色（--fe21-concept）で示す
   ═══════════════════════════════════════════════ */

/* --- 上段：パンくず --- */
body.itm-page .itm-nav .itm-nav-crumb{
  display:flex; align-items:baseline;
  white-space:nowrap;
  overflow:hidden;
}
body.itm-page .itm-nav .itm-nav-crumb a{
  flex:0 0 auto;
  color:inherit;
  transition:color .18s ease;
}
body.itm-page .itm-nav .itm-nav-crumb a:hover{ color:var(--fe21-concept); }
body.itm-page .itm-nav .itm-crumb-current{
  flex:1 1 auto; min-width:0;
  overflow:hidden; text-overflow:ellipsis;
}
@media (max-width:767px){
  body.itm-page .itm-nav .itm-nav-crumb{ font-size:10px; }
}

/* --- 下段：目次とカートの並び --- */
body.itm-page .itm-nav .itm-nav-row{
  display:flex;
  align-items:stretch;
  gap:12px;
}
@media (min-width:768px){
  body.itm-page .itm-nav .itm-nav-row{ gap:20px; }
}

/* --- 目次（横スクロール） --- */
body.itm-page .itm-nav .itm-nav-list{
  display:flex;
  align-items:stretch;
  flex:1 1 auto;
  min-width:0;
  margin:0;
  padding:0;
  gap:20px;
  list-style:none;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -ms-overflow-style:none;
  color:var(--itm-body);
  font-size:13px;
  font-weight:700;
}
@media (min-width:768px){
  body.itm-page .itm-nav .itm-nav-list{ gap:32px; font-size:16px; }
}
body.itm-page .itm-nav .itm-nav-list::-webkit-scrollbar{ display:none; }
body.itm-page .itm-nav .itm-nav-list > li{ flex:0 0 auto; display:flex; }

/* 横に続きがあることを示す。右端だけ薄くする */
@media (max-width:767px){
  body.itm-page .itm-nav .itm-nav-list{
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 20px),transparent 100%);
            mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 20px),transparent 100%);
  }
}

/* --- 目次の各項目：ホバーと現在地で拠点色にする --- */
body.itm-page .itm-nav .itm-nav-list a{
  position:relative;
  display:flex;
  align-items:center;
  padding:12px 0;
  white-space:nowrap;
  color:inherit;
  text-decoration:none;
  transition:color .18s ease;
}
@media (min-width:768px){
  body.itm-page .itm-nav .itm-nav-list a{ padding:16px 0; }
}
body.itm-page .itm-nav .itm-nav-list a:hover,
body.itm-page .itm-nav .itm-nav-list a:focus-visible{ color:var(--fe21-concept); }
body.itm-page .itm-nav .itm-nav-list a[aria-current="true"]{ color:var(--fe21-concept); }

/* 下線。ホバーで左から伸び、現在地では出したままにする */
body.itm-page .itm-nav .itm-nav-list a::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--fe21-concept);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .18s ease;
}
body.itm-page .itm-nav .itm-nav-list a:hover::after,
body.itm-page .itm-nav .itm-nav-list a:focus-visible::after,
body.itm-page .itm-nav .itm-nav-list a[aria-current="true"]::after{ transform:scaleX(1); }

/* --- ナビ内のお問い合わせ（カートの左・PCのみ） ---
   スマホは横幅が足りず、下部のアクションバーが同じ役割を持つため出しません。 */
body.itm-page .itm-nav .itm-nav-contact{
  flex:0 0 auto;
  align-self:center;
  display:none;
  align-items:center;
  gap:6px;
  /* PCのカートと同じ40pxに揃える */
  height:40px;
  padding:0 18px;
  border-radius:9999px;
  border:1px solid var(--fe21-midashi, #0F2B3D);
  background:var(--fe21-midashi, #0F2B3D);
  color:#fff;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
  text-decoration:none;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
}
@media (min-width:768px){
  body.itm-page .itm-nav .itm-nav-contact{ display:inline-flex; }
}
body.itm-page .itm-nav .itm-nav-contact:hover,
body.itm-page .itm-nav .itm-nav-contact:focus-visible{ opacity:.85; }
body.itm-page .itm-nav .itm-nav-contact svg{
  display:block; flex:0 0 auto; width:18px; height:18px;
}

/* --- ナビ内のカート --- */
body.itm-page .itm-nav #itm-nav-cart{
  position:relative;
  flex:0 0 auto;
  align-self:center;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  /* 指で押すスマホは44px（Appleの推奨44pt／Googleの推奨48dpに合わせる）。
     マウスで狙うPCは40pxで十分で、お問い合わせボタンとも高さが揃う。 */
  width:44px; height:44px;
  border-radius:9999px;
  /* ナビの帯が白になったので、カートは薄い拠点色で地を作る。
     白のままだと帯に溶けて見えなくなる。 */
  background:var(--fe21-pale2, #E7EFF5);
  border:1px solid var(--fe21-pale2, #E7EFF5);
  color:var(--fe21-concept);
  transition:background .18s ease, border-color .18s ease, color .18s ease;
}
@media (min-width:768px){
  body.itm-page .itm-nav #itm-nav-cart{ width:40px; height:40px; }
}
body.itm-page .itm-nav #itm-nav-cart:hover,
body.itm-page .itm-nav #itm-nav-cart:focus-visible{
  background:var(--fe21-concept);
  border-color:var(--fe21-concept);
  color:#fff;
}

/* アイコン。寸法を指定しないと flex の中で潰れる */
body.itm-page .itm-nav .itm-cart-icon{
  display:block;
  flex:0 0 auto;
  width:22px; height:22px;
}
@media (min-width:768px){
  body.itm-page .itm-nav .itm-cart-icon{ width:21px; height:21px; }
}

/* カート個数のバッジ。アイコンの右上に重ねる */
body.itm-page .itm-nav .itm-badge{
  position:absolute; top:-3px; right:-3px;
  display:none;
  align-items:center; justify-content:center;
  min-width:18px; height:18px; padding:0 5px;
  border-radius:9999px;
  border:2px solid var(--itm-tint);
  background:var(--fe21-midashi, #E4451E);
  color:#fff;
  font-size:10px; font-weight:700; line-height:1;
  font-variant-numeric:tabular-nums;
}
body.itm-page .itm-nav .itm-badge:not(.hidden){ display:flex; }

/* トップへ戻る（左下） */
.itm-page #itm-totop{
  opacity:0; visibility:hidden; pointer-events:none; transform:translateY(8px);
}
.itm-page #itm-totop.is-visible{
  opacity:1; visibility:visible; pointer-events:auto; transform:none;
}
.itm-page #itm-totop:hover{ background:var(--itm-paper); }

/* アンカー移動時にヘッダーとナビの下に隠れないように */
.itm-page section[id]{ scroll-margin-top:calc(var(--itm-header) + 64px); }

/* 拡大表示：hidden 属性を確実に効かせる（Tailwind の display 指定より優先） */
.itm-page #item-lightbox[hidden]{ display:none !important; }

/* 商品画像スライダー */
.itm-slides{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  border-radius:8px;
}
.itm-slides::-webkit-scrollbar{ display:none; }
.itm-slide{ flex:0 0 100%; scroll-snap-align:center; }

.itm-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px; border-radius:9999px;
  background:rgba(255,255,255,.92); border:1px solid var(--itm-line);
  display:none; align-items:center; justify-content:center;
  padding:0; line-height:0; color:var(--itm-ink);
  box-shadow:0 2px 10px rgba(15,43,61,.10);
}
/* 中身はSVG。文字（‹ ›）だとフォントの字幅と高さの差で丸の中心から
   ずれるため、図形で描いて確実に中央に置く。 */
.itm-arrow svg{ display:block; width:18px; height:18px; }
.itm-arrow:hover{ background:#fff; }
.itm-arrow[disabled]{ opacity:.35; cursor:default; }
@media (min-width:768px){ .itm-arrow{ display:flex; } }

.itm-dot{
  width:7px; height:7px; border-radius:9999px;
  background:var(--itm-line); transition:width .2s ease, background .2s ease;
}
.itm-dot[aria-current="true"]{ width:20px; background:var(--fe21-concept); }

/* 関連商品カード
   スマホ：横スクロール。1枚を大きく見せ、次の1枚を少しのぞかせて
           «横に続きがある» ことを伝える（Amazonのカルーセルと同じ考え方）
   PC   ：4列グリッド */
.itm-reco-grid{
  display:flex;
  gap:12px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  margin-left:-16px;
  margin-right:-16px;
  padding:2px 16px 6px;
  scrollbar-width:none;
}
.itm-reco-grid::-webkit-scrollbar{ display:none; }
.itm-reco-grid > *{
  flex:0 0 80%;
  scroll-snap-align:start;
}
@media (min-width:768px){
  .itm-reco-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px;
    overflow:visible;
    margin:0;
    padding:0;
  }
  .itm-reco-grid > *{ flex:none; }
}

/* 動画がない商品は動画枠だけ消す（右カラムには共通メッセージが残る） */
.itm-page #item-staff-video[data-has-video="false"] .itm-video-col{ display:none; }

/* 動画のサムネイル（クリックするまでYouTubeを読み込まない） */
.itm-video-facade{ cursor:pointer; }
.itm-video-facade:hover .itm-video-play{ transform:scale(1.08); }
.itm-video-play{ transition:transform .2s ease; }

@media (prefers-reduced-motion: reduce){ *{ transition:none!important; animation:none!important; } }
