/* ============================================================
   ショップ（WooCommerce 商品一覧・詳細） ms-shop-*
   ------------------------------------------------------------
   サイト全体のLP的デザイン（暖色背景・Zen Maru Gothic見出し）とは
   意図的に分離。白背景＋Noto Sans JP（システマチック）で「別の店に
   来た」印象を作る。WooCommerce標準スタイルは functions.php 側で
   dequeueし、ここだけでデザインを完結させる。
   トークン（--accent 等）は theme.css の :root（.ms-lp）を流用。
   ============================================================ */
.ms-shop{background:#fff;color:var(--ink);}
.ms-shop *{box-sizing:border-box;}
.ms-shopwrap{max-width:1180px;margin:0 auto;padding:0 20px 80px;}

/* パンくず行：カテゴリページでは右にもう一方への切替リンクを並べる */
.ms-shopHead{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;}
.ms-shopSwitch{display:inline-flex;align-items:center;gap:4px;margin-top:14px;font-size:13px;font-weight:700;color:var(--accent);text-decoration:none;white-space:nowrap;}
.ms-shopSwitch:hover{text-decoration:underline;}
.ms-shopSwitch svg{width:14px;height:14px;}

/* ---------- ヒーローバナー：横幅フルワイド写真の上に文字を重ねる ---------- */
.ms-shophero{position:relative;border-bottom:1px solid var(--line);background:#f7f5f2;overflow:hidden;}
.ms-shophero__bgimg{display:block;width:100%;height:clamp(300px,36vw,460px);object-fit:cover;object-position:76% center;}
.ms-shophero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.85) 20%,rgba(255,255,255,.35) 36%,rgba(255,255,255,0) 48%);}
.ms-shophero__inner{position:absolute;inset:0;max-width:1180px;margin:0 auto;left:50%;transform:translateX(-50%);width:100%;display:flex;align-items:center;padding:0 20px;}
.ms-shophero__text{max-width:480px;}
.ms-shophero__eyebrow{display:block;color:var(--accent);font-weight:800;font-size:12px;letter-spacing:.1em;margin-bottom:10px;}
.ms-shophero__title{font-weight:800;font-size:clamp(26px,4vw,38px);line-height:1.35;margin:0 0 14px;color:var(--ink);}
.ms-shophero__hl{border-bottom:4px solid var(--accent);padding-bottom:2px;}
.ms-shophero__lead{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 22px;font-weight:500;}
.ms-shophero__badges{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:20px;}
.ms-shophero__badges li{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ink);text-align:center;width:74px;}
.ms-shophero__badges .ic{width:44px;height:44px;border-radius:14px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--accent);box-shadow:0 8px 18px -10px rgba(70,34,12,.25);}
.ms-shophero__badges .ic svg{width:20px;height:20px;}
.ms-shophero__guide{display:inline-flex;align-items:center;gap:6px;margin-top:22px;font-size:13px;font-weight:700;color:var(--accent);text-decoration:none;}
.ms-shophero__guide:hover{text-decoration:underline;}
.ms-shophero__guide svg{width:14px;height:14px;}
@media(max-width:860px){
  .ms-shophero__bgimg{height:clamp(420px,140vw,560px);object-position:82% center;}
  .ms-shophero__scrim{background:linear-gradient(180deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.9) 24%,rgba(255,255,255,.4) 42%,rgba(255,255,255,0) 56%);}
  .ms-shophero__inner{align-items:flex-start;padding-top:32px;}
  .ms-shophero__text{max-width:100%;}
}

/* ---------- カテゴリタイル ---------- */
.ms-shoptiles{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:36px 0;}
.ms-shoptile{position:relative;display:block;border-radius:var(--radius);text-decoration:none;overflow:hidden;transition:box-shadow .18s ease,transform .18s ease;height:clamp(140px,16vw,190px);}
.ms-shoptile:hover{transform:translateY(-3px);box-shadow:0 18px 36px -20px rgba(70,34,12,.35);}
.ms-shoptile__bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% center;}
.ms-shoptile__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.78) 28%,rgba(255,255,255,.2) 46%,rgba(255,255,255,0) 58%);}
.ms-shoptile__body{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 24px;}
.ms-shoptile__body h2{margin:0 0 6px;font-size:24px;font-weight:800;color:var(--ink);}
.ms-shoptile__body p{margin:0 0 14px;font-size:13px;color:var(--muted);font-weight:600;}
.ms-shoptile__btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;}
.ms-shoptile__btn svg{width:18px;height:18px;}
@media(max-width:640px){
  .ms-shoptiles{grid-template-columns:1fr;}
  .ms-shoptile{height:clamp(120px,32vw,160px);}
  .ms-shoptile__bgimg{object-position:80% center;}
}

/* ---------- 検索・絞り込みバー ---------- */
.ms-shopfilter{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;box-shadow:0 16px 36px -24px rgba(70,34,12,.3);margin-bottom:28px;}
.ms-shopfilter__search{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:6px 6px 6px 16px;margin-bottom:16px;}
.ms-shopfilter__searchic{flex:none;color:var(--muted);display:flex;}
.ms-shopfilter__searchic svg{width:18px;height:18px;}
.ms-shopfilter__search input{flex:1;border:none;outline:none;font-size:14px;font-family:inherit;padding:8px 0;min-width:0;}
.ms-shopfilter__search button{flex:none;background:var(--accent);color:#fff;border:none;border-radius:calc(var(--radius-sm) - 4px);padding:11px 22px;font-weight:700;font-size:13.5px;cursor:pointer;}
.ms-shopfilter__row{display:flex;flex-wrap:wrap;gap:14px;}
.ms-shopfilter__field{flex:1;min-width:130px;}
.ms-shopfilter__field label{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px;}
.ms-shopfilter__field select{width:100%;appearance:none;-webkit-appearance:none;padding:10px 30px 10px 12px;border:1.5px solid var(--line);border-radius:10px;font-size:13.5px;font-weight:600;background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%238A7B6D" stroke-width="2.4"><path d="M6 9l6 6 6-6"/></svg>') no-repeat right 8px center/16px 16px;color:var(--ink);font-family:inherit;cursor:pointer;}

/* ---------- 一覧見出し ---------- */
.ms-shoplist__head{margin-bottom:18px;scroll-margin-top:100px;}
.ms-shoplist__head h2{font-size:17px;font-weight:800;color:var(--ink);margin:0;}
.ms-shoplist__head span{color:var(--accent);}

/* ---------- 商品カードグリッド ---------- */
.ms-shop__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.ms-shop__card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 10px 24px -18px rgba(70,34,12,.25);transition:transform .18s ease,box-shadow .18s ease;display:flex;flex-direction:column;}
.ms-shop__card:hover{transform:translateY(-3px);box-shadow:0 16px 32px -18px rgba(70,34,12,.32);}
.ms-shop__card.is-hidden{display:none;}
.ms-shop__fig{position:relative;display:block;aspect-ratio:1/1;background:var(--soft);}
.ms-shop__img{width:100%;height:100%;object-fit:cover;display:block;}
.ms-shop__fig .ms-ph{position:absolute;inset:0;border-radius:0;border:none;}
.ms-shop__rank{position:absolute;top:10px;left:10px;color:#fff;font-weight:700;font-size:11px;padding:4px 10px;border-radius:999px;}
.ms-shop__rank--a{background:var(--accent);}
.ms-shop__rank--b{background:#3B82F6;}
.ms-shop__rank--c{background:#6B7280;}
.ms-shop__rank--d{background:#1F2937;}
.ms-shop__fav{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;padding:0;}
.ms-shop__fav svg{width:15px;height:15px;}
.ms-shop__fav.is-active{color:var(--accent);}
.ms-shop__fav.is-active svg{fill:var(--accent);}
.ms-shop__body{padding:14px 16px 18px;display:flex;flex-direction:column;flex:1;}
.ms-shop__name{margin:0 0 6px;font-size:14.5px;line-height:1.5;font-weight:700;}
.ms-shop__name a{color:var(--ink);text-decoration:none;}
.ms-shop__name a:hover{color:var(--accent);}
.ms-shop__spec{font-size:11.5px;color:var(--muted);line-height:1.6;margin:0 0 10px;}
.ms-shop__price{font-weight:800;font-size:19px;color:var(--accent);margin:auto 0 12px;}
.ms-shop__price del{color:var(--muted);font-weight:500;font-size:12px;margin-right:6px;opacity:.7;}
.ms-shop__price ins{text-decoration:none;}
.ms-shop__detail{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:10px;font-weight:700;font-size:13px;text-decoration:none;background:transparent;color:var(--accent);border:1.5px solid var(--accent);white-space:nowrap;}
.ms-shop__detail:hover{background:var(--soft);}
.ms-shop__detail svg{width:14px;height:14px;}
.ms-shop__empty{text-align:center;color:var(--muted);padding:60px 20px;font-size:14px;}

@media(max-width:900px){.ms-shop__grid{grid-template-columns:repeat(2,1fr);gap:16px;}}
@media(max-width:480px){
  .ms-shop__grid{gap:10px;}
  .ms-shop__body{padding:10px 12px 14px;}
  .ms-shop__name{font-size:13px;}
  .ms-shop__spec{font-size:10.5px;margin-bottom:8px;}
  .ms-shop__price{font-size:16px;margin-bottom:10px;}
  .ms-shop__detail{padding:9px 10px;font-size:12px;}
}

/* ---------- ページネーション（the_posts_pagination() 標準出力） ---------- */
.ms-shopwrap .pagination,
.ms-shopwrap .woocommerce-pagination{margin-top:36px;}
.ms-shopwrap nav.navigation ul,
.ms-shopwrap .page-numbers{list-style:none;}
.ms-shopwrap nav.navigation{display:flex;justify-content:center;}
.ms-shopwrap .nav-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ms-shopwrap .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border-radius:10px;border:1.5px solid var(--line);color:var(--ink);text-decoration:none;font-weight:700;font-size:13.5px;}
.ms-shopwrap .page-numbers.current{background:var(--accent);border-color:var(--accent);color:#fff;}
.ms-shopwrap .page-numbers.dots{border:none;}
.ms-shopwrap a.page-numbers:hover{border-color:var(--accent);color:var(--accent);}

/* ============================================================
   商品詳細ページ（woocommerce/single-product.php） ms-sp*
   ============================================================ */
.ms-shop--single .ms-shopwrap{padding-top:20px;}

/* ---------- 上段：ギャラリー＋商品情報 ---------- */
.ms-spTop{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);margin-top:16px;}
@media(max-width:860px){.ms-spTop{grid-template-columns:1fr;}}

.ms-spGallery{display:flex;gap:14px;}
.ms-spGallery__thumbs{flex:none;width:76px;display:flex;flex-direction:column;gap:10px;max-height:520px;overflow-y:auto;}
.ms-spGallery__thumb{padding:0;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;cursor:pointer;aspect-ratio:1/1;}
.ms-spGallery__thumb.is-active{border-color:var(--accent);}
.ms-spGallery__thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.ms-spGallery__main{position:relative;flex:1;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:1/1;background:var(--soft);}
.ms-spGallery__main .ms-ph{position:absolute;}

/* 売り切れスタンプ：メイン画像に重ねる大きな斜めリボン */
.ms-spSold{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;background:rgba(255,255,255,.18);}
.ms-spSold span{transform:rotate(-18deg);display:inline-block;padding:10px 46px;background:#dc2626;color:#fff;font-size:clamp(22px,4vw,34px);font-weight:800;letter-spacing:.12em;border:3px solid #fff;box-shadow:0 10px 30px -8px rgba(0,0,0,.45);}

/* 一覧カードのサムネイル用：ヒーローより小さいカードなのでスタンプも縮小 */
.ms-shop__sold span{padding:6px 22px;font-size:clamp(14px,3vw,18px);border-width:2px;}
.ms-spGallery__img{width:100%;height:100%;object-fit:contain;display:block;}

/* スマホ幅：サムネ縦列＋メイン画像の横並びだと両方窮屈になるため、
   メイン画像を上に大きく、サムネは下の横スクロール帯に変更する。
   DOM順は thumbs→main のため column-reverse で見た目だけ入れ替える。 */
@media(max-width:640px){
  .ms-spGallery{flex-direction:column-reverse;gap:10px;min-width:0;}
  .ms-spGallery__thumbs{width:100%;min-width:0;flex-direction:row;max-height:none;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:2px;}
  .ms-spGallery__thumb{flex:0 0 64px;width:64px;}
}

.ms-spInfo__badges{display:flex;gap:8px;margin-bottom:14px;}
.ms-spInfo__sold{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:#dc2626;color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;}
.ms-spInfo__rank{position:static;padding:6px 14px;font-size:12.5px;}
.ms-spInfo__carrier{display:inline-flex;align-items:center;background:var(--soft);color:var(--muted);font-weight:700;font-size:12.5px;padding:6px 14px;border-radius:999px;}
.ms-spInfo__title{font-size:clamp(22px,3vw,28px);font-weight:800;color:var(--ink);margin:0 0 12px;line-height:1.4;}
.ms-spInfo__price{font-size:clamp(24px,3vw,30px);font-weight:800;color:var(--accent);margin-bottom:16px;}
.ms-spInfo__tax{font-size:13px;font-weight:600;color:var(--muted);margin-left:6px;}
.ms-spInfo__trust{list-style:none;margin:16px 0 22px;padding:16px;display:flex;flex-wrap:wrap;gap:16px;background:var(--soft);border-radius:var(--radius-sm);}
.ms-spInfo__trust li{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--ink);}
.ms-spInfo__trust .ic{flex:none;width:30px;height:30px;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--accent);}
.ms-spInfo__trust .ic svg{width:16px;height:16px;}

.ms-spInfo__cart{margin-bottom:12px;}
.ms-spInfo__cart form.cart{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch;}
.ms-spInfo__cart .quantity{display:none;} /* 中古1点物のため個数入力は不要 */
.ms-spInfo__cart .single_add_to_cart_button{flex:1;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:16px;font-weight:800;font-size:15.5px;cursor:pointer;box-shadow:0 14px 28px -14px var(--accent);}
.ms-spInfo__cart .single_add_to_cart_button:hover{opacity:.92;color:#fff;}

/* バッテリー交換オプション（iPhone商品限定、functions.php mobilestreet_is_iphone_product） */
.ms-battopt{flex:0 0 100%;order:-1;display:flex;flex-direction:column;gap:8px;}
.ms-battopt__label{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--soft);border:1.5px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink);transition:border-color .15s ease,background .15s ease;}
.ms-battopt__label:has(.ms-battopt__cb:checked){border-color:var(--accent);background:#fff;}
.ms-battopt__cb{width:18px;height:18px;accent-color:var(--accent);flex:none;cursor:pointer;}
.ms-spInfo__fav{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:15px;margin-bottom:16px;border-radius:var(--radius-sm);border:1.5px solid var(--accent);background:#fff;color:var(--accent);font-weight:800;font-size:14.5px;cursor:pointer;}
.ms-spInfo__fav svg{width:16px;height:16px;}
.ms-spInfo__fav.is-active svg{fill:var(--accent);}
.ms-spInfo__note{font-size:11.5px;line-height:1.8;color:var(--muted);margin:0;}

/* ---------- 下段：商品情報テーブル＋商品の状態 ---------- */
.ms-spDetail{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:56px;align-items:start;}
@media(max-width:860px){.ms-spDetail{grid-template-columns:1fr;}}
.ms-spDetail h2{font-size:16px;font-weight:800;color:var(--ink);margin:0 0 16px;}
.ms-spSpecTable{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;font-size:13.5px;}
.ms-spSpecTable tr:not(:last-child){border-bottom:1px solid var(--line);}
.ms-spSpecTable th,.ms-spSpecTable td{padding:13px 16px;text-align:left;font-weight:500;}
.ms-spSpecTable th{width:38%;background:var(--soft);color:var(--muted);font-weight:700;}
.ms-spSpecTable td{color:var(--ink);}

.ms-spDetail__desc{background:var(--soft);border-radius:var(--radius-sm);padding:20px;}
.ms-spDesc__head{display:flex;align-items:flex-start;gap:12px;}
.ms-spDesc__head .ms-shop__rank{position:static;flex:none;margin-top:2px;}
.ms-spDesc__head p{margin:0;font-size:13.5px;line-height:1.9;color:var(--ink);}
.ms-spDesc__empty{margin:0;font-size:13px;color:var(--muted);}
.ms-spDesc__comment{margin-top:14px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);}
.ms-spDesc__comment p{margin:0;font-size:13.5px;line-height:1.8;color:var(--ink);}
.ms-spDesc__comment p.is-empty{color:var(--muted);}

/* ---------- 機種スペック・OSアップデート対応（機種単位の共通データ） ---------- */
.ms-spModelSpecs{margin-top:40px;border:1px solid var(--line);border-radius:var(--radius);padding:28px;}
.ms-spModelSpecs h2{font-size:16px;font-weight:800;color:var(--ink);margin:0 0 18px;}
.ms-spModelSpecs__grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;}
@media(max-width:760px){.ms-spModelSpecs__grid{grid-template-columns:1fr;}}
.ms-spModelSpecs__os{background:var(--soft);border-radius:var(--radius-sm);padding:18px 20px;}
.ms-spModelSpecs__os h3{margin:0 0 10px;font-size:13px;font-weight:800;color:var(--accent);}
.ms-spModelSpecs__os p.ms-spModelSpecs__forecast{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink);}
.ms-spModelSpecs__forecast strong{font-size:20px;font-weight:800;color:var(--accent);}
.ms-spModelSpecs__forecast span{flex-basis:100%;font-size:11px;color:var(--muted);}
.ms-spModelSpecs__os p{margin:0;font-size:13px;line-height:1.8;color:var(--ink);}
.ms-spModelSpecs__os p.ms-spModelSpecs__disclaimer{margin-top:10px;font-size:11.5px;color:#dc2626;font-weight:700;line-height:1.7;}
.ms-spModelSpecs__updated{margin:18px 0 0;font-size:11px;color:var(--muted);}

/* ---------- この機種に向いている使い方（チップ世代ベースのティア表示） ---------- */
.ms-spUseTier{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);}
.ms-spUseTier h3{margin:0 0 14px;font-size:14px;font-weight:800;color:var(--ink);}
.ms-useTier{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.ms-useTier li{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--soft);}
.ms-useTier li.is-over{background:transparent;border:1px dashed var(--line);opacity:.55;}
.ms-useTier__ic{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.ms-useTier__ic svg{width:13px;height:13px;}
.is-ok .ms-useTier__ic{background:var(--accent);color:#fff;}
.is-over .ms-useTier__ic{background:var(--line);color:var(--muted);}
.ms-useTier__body{display:flex;flex-direction:column;gap:2px;}
.ms-useTier__body strong{font-size:13.5px;font-weight:700;color:var(--ink);}
.is-over .ms-useTier__body strong{color:var(--muted);}
.ms-useTier__body span{font-size:11.5px;color:var(--muted);line-height:1.6;}
.ms-spModelSpecs__disclaimer2{margin:12px 0 0;font-size:11px;color:var(--muted);line-height:1.7;}

/* ---------- 関連商品 ---------- */
.ms-spRelated{margin-top:56px;}
.ms-spRelated h2{font-size:17px;font-weight:800;color:var(--ink);margin:0 0 18px;}

/* ============================================================
   カートページ ms-cart*
   ============================================================ */
.ms-shop--cart .ms-shopwrap{padding-top:28px;}

/* ---------- ヘッダー行（見出し＋ステップ表示） ---------- */
.ms-cartHead{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:32px;}
.ms-cartHead__title{display:flex;align-items:flex-start;gap:14px;}
.ms-cartHead__icon{flex:none;width:52px;height:52px;border-radius:14px;background:var(--soft);color:var(--accent);display:flex;align-items:center;justify-content:center;}
.ms-cartHead__title h1{margin:0 0 4px;font-size:26px;font-weight:800;color:var(--ink);}
.ms-cartHead__title p{margin:0;font-size:13px;color:var(--muted);font-weight:500;}

.ms-cartSteps{list-style:none;display:flex;align-items:center;gap:10px;margin:8px 0 0;padding:0;}
.ms-cartSteps__item{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--muted);}
.ms-cartSteps__item:not(:last-child)::after{content:"";width:26px;height:1.5px;background:var(--line);margin-left:10px;}
.ms-cartSteps__num{width:26px;height:26px;border-radius:50%;background:var(--soft);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;}
.ms-cartSteps__item.is-active .ms-cartSteps__num{background:var(--accent);color:#fff;}
.ms-cartSteps__item.is-active .ms-cartSteps__label{color:var(--ink);}
.ms-cartSteps__item.is-done .ms-cartSteps__num{background:var(--accent);color:#fff;}
.ms-cartSteps__item.is-done .ms-cartSteps__label{color:var(--ink);}
@media(max-width:640px){ .ms-cartSteps__label{display:none;} }

/* ---------- カート空表示 ---------- */
.ms-cartEmpty{text-align:center;padding:80px 20px;color:var(--muted);}
.ms-cartEmpty__icon{display:inline-flex;color:var(--line);margin-bottom:14px;}
.ms-cartEmpty p{margin:0 0 20px;font-size:15px;font-weight:600;}
.ms-cartEmpty__btn{display:inline-flex;align-items:center;background:var(--accent);color:#fff;padding:13px 28px;border-radius:999px;font-weight:800;font-size:14px;text-decoration:none;}

/* ---------- 全体グリッド（商品リスト＋ご注文内容） ---------- */
.ms-cartGrid{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start;}
@media(max-width:960px){ .ms-cartGrid{grid-template-columns:1fr;} }

/* ---------- 商品リスト ---------- */
.ms-cartItems{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.ms-cartItems__head{display:grid;grid-template-columns:1fr 90px 140px 90px;gap:12px;padding:14px 20px;background:var(--soft);font-size:12px;font-weight:700;color:var(--muted);}
.ms-cartRow{display:grid;grid-template-columns:1fr 90px 140px 90px;gap:12px;align-items:center;padding:20px;}
.ms-cartRow:not(:last-child){border-bottom:1px solid var(--line);}
.ms-cartRow__product{display:flex;gap:14px;align-items:stretch;}
.ms-cartRow__fig{flex:none;width:104px;border-radius:14px;overflow:hidden;display:block;align-self:stretch;}
.ms-cartRow__fig img,.ms-cartRow__fig .ms-ph{width:100%;height:100%;object-fit:cover;font-size:11px;}
.ms-cartRow__rank{position:static;display:inline-flex;margin-bottom:6px;}
.ms-cartRow__name{margin:0 0 2px;font-size:14.5px;font-weight:700;line-height:1.5;}
.ms-cartRow__name a{color:var(--ink);text-decoration:none;}
.ms-cartRow__name a:hover{color:var(--accent);}
.ms-cartRow__meta{margin:0 0 2px;font-size:12px;color:var(--muted);}
.ms-cartRow__options{list-style:none;margin:4px 0 2px;padding:0;font-size:12px;color:var(--accent);font-weight:600;}
.ms-cartRow__options li{line-height:1.7;}
.ms-cartRow__remove{display:inline-block;margin-top:6px;font-size:12px;color:var(--muted);text-decoration:none;}
.ms-cartRow__remove:hover{color:#dc2626;}
.ms-cartRow__price,.ms-cartRow__subtotal{font-size:14px;font-weight:700;color:var(--ink);}
.ms-cartRow__qty{font-size:12.5px;color:var(--muted);font-weight:600;}
.ms-cartRow__subtotal{font-weight:800;}
@media(max-width:760px){
  .ms-cartItems__head{display:none;}
  .ms-cartRow{grid-template-columns:1fr;gap:10px;}
  .ms-cartRow__price,.ms-cartRow__qty,.ms-cartRow__subtotal{padding-left:118px;}
  .ms-cartRow__price::before{content:"単価：";color:var(--muted);font-weight:600;}
  .ms-cartRow__subtotal::before{content:"小計：";color:var(--muted);font-weight:600;}
}

/* ---------- ご注文内容サマリー ---------- */
.ms-cartSummary{background:var(--soft);border-radius:var(--radius);padding:24px;position:sticky;top:20px;}
.ms-cartSummary h2{margin:0 0 18px;font-size:16px;font-weight:800;color:var(--ink);}
.ms-cartSummary__row{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;font-weight:600;color:var(--ink);padding:10px 0;}
.ms-cartSummary__items{margin-bottom:6px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.ms-cartSummary__item{padding:8px 0;}
.ms-cartSummary__item + .ms-cartSummary__item{border-top:1px dashed var(--line);}
.ms-cartSummary__itemHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:13px;font-weight:700;color:var(--ink);}
.ms-cartSummary__itemPrice{flex:none;white-space:nowrap;}
.ms-cartSummary__itemOpt{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--accent);font-weight:600;padding:2px 0 0 8px;}
.ms-cartSummary__coupon{padding:6px 0 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:2px 0;}
.ms-cartSummary__couponToggle{width:100%;padding:11px;background:#fff;border:1.5px solid var(--line);border-radius:var(--radius-sm);font-family:inherit;font-size:12.5px;font-weight:700;color:var(--accent);cursor:pointer;margin:10px 0;}
.ms-cartSummary__couponBox{display:flex;gap:8px;margin:10px 0;}
.ms-cartSummary__couponBox input{flex:1;min-width:0;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--radius-sm);font-family:inherit;font-size:13px;}
.ms-cartSummary__couponApply{flex:none;padding:0 16px;background:var(--ink);color:#fff;border:none;border-radius:var(--radius-sm);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;}
.ms-cartSummary__couponList{list-style:none;margin:10px 0;padding:0;}
.ms-cartSummary__couponList li{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;font-size:12.5px;font-weight:700;color:var(--ink);}
.ms-cartSummary__couponList a{color:var(--muted);text-decoration:none;font-weight:800;padding:0 4px;}
.ms-cartSummary__total{display:flex;justify-content:space-between;align-items:center;padding-top:14px;margin-top:4px;border-top:1.5px solid var(--line);}
.ms-cartSummary__total>span:first-child{font-size:14px;font-weight:800;color:var(--ink);}
.ms-cartSummary__totalPrice{font-size:22px;font-weight:800;color:var(--accent);}
.ms-cartSummary__totalPrice small{display:block;font-size:11px;font-weight:600;color:var(--muted);text-align:right;}
.ms-cartSummary__checkout{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:18px;padding:16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:800;font-size:15.5px;text-decoration:none;box-shadow:0 14px 28px -14px var(--accent);}
.ms-cartSummary__checkout:hover{opacity:.92;color:#fff;}
.ms-cartSummary__note{font-size:11px;line-height:1.7;color:var(--muted);margin:12px 0 0;}
.ms-cartSummary__trust{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--line);}
.ms-cartSummary__trust li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:var(--ink);text-align:center;}
.ms-cartSummary__trust .ic{width:32px;height:32px;border-radius:10px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--accent);}
.ms-cartSummary__trust .ic svg{width:15px;height:15px;}

/* ---------- 下部アクション（買い物を続ける／カゴを空にする） ---------- */
.ms-cartActions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;flex-wrap:wrap;}
.ms-cartActions__back{font-size:13.5px;font-weight:700;color:var(--ink);text-decoration:none;padding:13px 22px;border:1.5px solid var(--line);border-radius:var(--radius-sm);}
.ms-cartActions__back:hover{border-color:var(--accent);color:var(--accent);}
.ms-cartActions__empty{font-size:13px;font-weight:700;color:var(--muted);text-decoration:none;padding:13px 22px;}
.ms-cartActions__empty:hover{color:#dc2626;}

/* ============================================================
   支払いページ ms-checkout*
   ------------------------------------------------------------
   WooCommerce標準のフォーム構造（form-row・#order_review・#payment等）は
   そのまま残し、見た目だけこのブロックで再デザインする。
   #order_review は theme override 側で display:contents にしてあるので、
   中身（.ms-checkoutSummaryCard と #payment）をここでそれぞれ左右の
   カラムへ配置している。
   ============================================================ */
.ms-shop--checkout .ms-shopwrap{padding-top:28px;}

.ms-checkoutGrid{display:grid;grid-template-columns:1fr 380px;gap:28px;align-items:start;margin-top:24px;}
.ms-checkoutMain{grid-column:1;min-width:0;}
#order_review{display:contents;}
.ms-checkoutSummaryCard{grid-column:2;background:var(--soft);border-radius:var(--radius);padding:24px;position:sticky;top:20px;}
#payment.ms-checkoutCard{grid-column:1;}
@media(max-width:960px){
  .ms-checkoutGrid{grid-template-columns:1fr;}
  .ms-checkoutMain,.ms-checkoutSummaryCard,#payment.ms-checkoutCard{grid-column:1;}
  .ms-checkoutSummaryCard{position:static;}
}

/* ---------- カード共通 ---------- */
.ms-checkoutCard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:20px;}
.ms-checkoutCard h2,.ms-checkoutSummaryCard h2{display:flex;align-items:center;gap:8px;margin:0 0 18px;font-size:15.5px;font-weight:800;color:var(--ink);}
.ms-checkoutCard h2 svg,.ms-checkoutSummaryCard h2 svg{color:var(--accent);flex:none;}
.ms-checkoutSummaryCard__count{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--muted);}

/* ---------- フォーム項目（WooCommerce標準の.form-row構造を再スタイル） ---------- */
.ms-checkoutCard .form-row{margin:0 0 16px;}
.ms-checkoutCard .form-row:last-child{margin-bottom:0;}
.ms-checkoutCard label{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:var(--ink);}
.ms-checkoutCard label .required{color:#dc2626;text-decoration:none;margin-left:2px;}
.ms-checkoutCard .woocommerce-input-wrapper{display:block;}
.ms-checkoutCard input.input-text,
.ms-checkoutCard select,
.ms-checkoutCard textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--radius-sm);font-family:inherit;font-size:14px;color:var(--ink);background:#fff;}
.ms-checkoutCard select{appearance:none;-webkit-appearance:none;background:#fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%238A7B6D" stroke-width="2.4"><path d="M6 9l6 6 6-6"/></svg>') no-repeat right 12px center/16px 16px;}
.ms-checkoutCard input:focus,.ms-checkoutCard select:focus,.ms-checkoutCard textarea:focus{outline:none;border-color:var(--accent);}
.ms-checkoutCard .woocommerce-invalid input.input-text,
.ms-checkoutCard .woocommerce-invalid select{border-color:#dc2626;}
.ms-formRow2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:600px){.ms-formRow2{grid-template-columns:1fr;}}

/* ---------- 配送オプション ---------- */
.ms-shipMethods{display:flex;flex-direction:column;gap:10px;}
.ms-shipMethod{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;}
.ms-shipMethod.is-selected{border-color:var(--accent);background:var(--soft);}
.ms-shipMethod input[type=radio]{width:18px;height:18px;flex:none;accent-color:var(--accent);margin:0;}
.ms-shipMethod__dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--accent);flex:none;position:relative;}
.ms-shipMethod__dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent);}
.ms-shipMethod__body{flex:1;}
.ms-shipMethod__title{display:block;font-weight:700;font-size:14px;color:var(--ink);}
.ms-shipMethod__desc{display:block;font-size:12px;color:var(--muted);margin-top:2px;}
.ms-shipMethod__price{font-weight:800;font-size:14px;color:var(--ink);flex:none;}

/* ---------- 支払い方法 ---------- */
.ms-payMethods{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:10px;}
.ms-payMethod{border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;position:relative;}
.ms-payMethod.is-selected{border-color:var(--accent);background:var(--soft);}
.ms-payMethod input[type=radio]{position:absolute;top:16px;left:16px;width:18px;height:18px;accent-color:var(--accent);margin:0;}
.ms-payMethod label{display:flex;align-items:flex-start;gap:12px;padding-left:26px;cursor:pointer;margin:0;font-weight:400;}
.ms-payMethod__title{display:block;font-weight:700;font-size:14px;color:var(--ink);}
.ms-payMethod__desc{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.6;}
.ms-payMethod .payment_box{margin:12px 0 0 26px;padding:12px;background:#fff;border-radius:10px;font-size:12.5px;color:var(--muted);}

/* ---------- 注文メモ ---------- */
.ms-checkoutNotes{margin:4px 0 18px;}
.ms-checkoutNotes__toggle{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;margin:0;}
.ms-checkoutNotes__toggle input{width:16px;height:16px;accent-color:var(--accent);}
.ms-checkoutNotes__box{margin-top:10px;}
.ms-checkoutNotes__box textarea{width:100%;min-height:80px;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--radius-sm);font-family:inherit;font-size:13px;resize:vertical;}

/* ---------- 規約・確定ボタン ---------- */
.ms-checkoutTerms{font-size:11.5px;line-height:1.7;color:var(--muted);margin:0 0 16px;}
.ms-checkoutTerms a{color:var(--accent);text-decoration:underline;}
.form-row.place-order{margin:0;}
.ms-checkoutSubmit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:17px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-family:inherit;font-weight:800;font-size:15.5px;cursor:pointer;box-shadow:0 14px 28px -14px var(--accent);}
.ms-checkoutSubmit:hover{opacity:.92;}
.ms-checkoutSubmit:disabled{opacity:.6;cursor:not-allowed;}

/* ---------- 注文概要（右カラム） ---------- */
.ms-checkoutItems{margin:14px 0;padding-bottom:6px;border-bottom:1px solid var(--line);}
.ms-checkoutItem{display:flex;align-items:center;gap:10px;padding:10px 0;}
.ms-checkoutItem__fig{flex:none;width:52px;height:52px;border-radius:10px;overflow:hidden;}
.ms-checkoutItem__fig img,.ms-checkoutItem__fig .ms-ph{width:52px;height:52px;object-fit:cover;font-size:9px;}
.ms-checkoutItem__body{flex:1;min-width:0;}
.ms-checkoutItem__name{font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.4;}
.ms-checkoutItem__qty{font-size:11px;color:var(--muted);margin-top:2px;}
.ms-checkoutItem__options{list-style:none;margin:4px 0 0;padding:0;font-size:11px;color:var(--accent);font-weight:600;}
.ms-checkoutItem__options li{line-height:1.6;}
.ms-checkoutItem__price{flex:none;font-size:13px;font-weight:800;color:var(--ink);}

/* ---------- クーポン（WooCommerce標準の.showcoupon開閉JSをそのまま利用） ---------- */
.ms-checkoutCoupon{margin:6px 0 16px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.ms-checkoutCoupon .woocommerce-info{list-style:none;margin:0;padding:0;font-size:13px;color:var(--ink);display:flex;align-items:center;justify-content:space-between;}
.ms-checkoutCoupon .showcoupon{color:var(--accent);font-weight:700;text-decoration:none;}
.ms-checkoutCoupon .woocommerce-form-coupon{display:flex;gap:8px;margin-top:10px;}
.ms-checkoutCoupon .woocommerce-form-coupon .form-row{margin:0;flex:1;}
.ms-checkoutCoupon .woocommerce-form-coupon .form-row-last{flex:none;}
.ms-checkoutCoupon .woocommerce-form-coupon input[type=text]{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--radius-sm);font-family:inherit;font-size:13px;}
.ms-checkoutCoupon .woocommerce-form-coupon button{padding:0 16px;height:100%;background:var(--ink);color:#fff;border:none;border-radius:var(--radius-sm);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;}
.ms-checkoutCoupon__list{list-style:none;margin:0;padding:0;}
.ms-checkoutCoupon__list li{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;font-size:12.5px;font-weight:700;}
.ms-checkoutCoupon__list a{color:var(--muted);text-decoration:none;font-weight:800;padding:0 4px;}

/* ---------- 合計 ---------- */
.ms-checkoutTotals__row{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--ink);padding:6px 0;}
.ms-checkoutTotals__grand{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:14px;border-top:1.5px solid var(--line);}
.ms-checkoutTotals__grand>span:first-child{font-size:14px;font-weight:800;color:var(--ink);}
.ms-checkoutTotals__grandPrice{font-size:20px;font-weight:800;color:var(--accent);}

/* ---------- 安心バッジ ---------- */
.ms-checkoutTrust{list-style:none;margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:14px;}
.ms-checkoutTrust li{display:flex;align-items:flex-start;gap:10px;}
.ms-checkoutTrust .ic{flex:none;width:32px;height:32px;border-radius:10px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--accent);}
.ms-checkoutTrust .ic svg{width:15px;height:15px;}
.ms-checkoutTrust strong{display:block;font-size:12.5px;font-weight:700;color:var(--ink);}
.ms-checkoutTrust p{margin:2px 0 0;font-size:11px;color:var(--muted);}
