/*
 * 共通
 * フェードアニメーション
 * 大枠
 * ヘッダー
 * 下部のボタン
 * フォーム共通
 * フリーワード
 * LMKタブ
 * ○○から探す共通
 * ○○から探す共通 - 第2階層
 * アコーディオン
 * こだわり条件から探す
 * ブランドから探す
 * カラーから探す
 * 価格・割引率から探す
 * 販売状況（通常販売、セールなど）
 * アイコン、入荷状況、在庫状況
 * ページに設置するボタン
 * トーストメッセージ
 * ZETAサジェスト
 * PC用css
 */

body.is-fixed {
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

/* =========================================================
共通
========================================================= */
.search-module *,
.search-module *::before,
.search-module *::after {
  box-sizing: border-box;
}

.search-module a {
  text-decoration: none;
}

/* カスタムモード(カスタムボタンでオープン時) */
.search-module.mode-custom {
  .z-contents,
  .sm-group-kodawari,
  .sm-group-color,
  .sm-group-price,
  .sm-group-stock,
  .sm-block {
    display: none;
  }
}

/* =========================================================
フェードアニメーション
========================================================= */
.fade-out-active {
  opacity: 0;
  transition: 250ms;
  position: relative;
}
.fade-in {
  opacity: 0;
}
.fade-in-active {
  transition: 250ms;
  opacity: 1;
}

/* =========================================================
大枠
========================================================= */
.search-module {
  --gray-100: #eee;
  --gray-200: #ddd;
  --gray-300: #9e9e9e;
  --gray-400: #424242;

  width: 95%;
  height: 80vh;
  background-color: white;
  overflow: hidden;
  position: relative;

  /* 初期状態（非表示） */
  opacity: 0;
  transition: all 0.3s ease;
  pointer-events: none;
  display: flex;
  flex-direction: column;

  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 63;
}
.search-module.is-active {
  opacity: 1;
  pointer-events: auto;
}

.sm-overlay {
  width: 100vw;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  position: fixed;
  top: 0;
  left: 0;
  display: none;
  pointer-events: none;
  transition: opacity 0.2s;
  z-index: 62;
}
.sm-overlay.is-active {
  pointer-events: auto;
  display: block;
}

.sm-contents {
  width: 100%;
  height: 100vh;
  background: white;
  position: relative;
  padding: 72px 0 90px;
  -ms-overflow-style: none;
  overflow-y: auto;
  transition: 0.3s;
}
.sm-contents::-webkit-scrollbar {
  display: none;
}

/* =========================================================
ヘッダー
========================================================= */
.sm-header {
  z-index: 7;
  position: fixed;
  top: 2px;
  left: 0;
  width: 100%;
  height: 60px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: white;
  user-select: none;
  padding: 0 16px;
}
.sm-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sm-header-title {
  font-size: 15px;
  font-weight: 500;
  color: #666;
}
.sm-filter-icon {
  width: 14px;
  height: auto;
}
.sm-header-right {
  display: flex;
  align-items: center;
}
.sm-header-close {
  cursor: pointer;
  width: 20px;
  height: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.sm-back {
  width: max-content;
  height: 50px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  padding: 0 11px;
  line-height: 1;
  position: absolute;
  top: 0;
  left: 0;
  cursor: pointer;
}
.sm-back::before {
  content: "";
  display: block;
  width: 7px;
  height: 14px;
  background: url(/res/p/img/search/2026/chevron_right.svg) no-repeat;
  background-size: contain;
  cursor: pointer;
  rotate: 180deg;
  margin-bottom: 2px;
  margin-right: 6px;
}

.sm-heading {
  position: relative;
  font-size: 14px;
  font-weight: bold;
}

/* .sm-close {
  width: 64px;
  height: 50px;
  display: block;
  background: url(/res/s/img/search/icn_modeal_close.svg)
    no-repeat center;
  background-size: 20px;
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 0;
} */

/* =========================================================
下部のボタン
========================================================= */
.sm-fix-buttons {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0 10px;
  /* z-index: 3; */
  padding: 15px;
  background-color: #dfdfdf;
  transition: 0.4s;
  transition-delay: 0.4s;
  translate: 0 calc(20px + 100%);
  opacity: 0;
  pointer-events: none;
}
.sm-card + .sm-fix-buttons {
  z-index: 5;
}

.sm-fix-buttons.is-active {
  translate: 0;
  opacity: 1;
  pointer-events: auto;
}
.sm-fix-buttons button {
  font-size: 13px;
  font-weight: bold;
  height: 48px;
  border-radius: 4px;
  color: inherit;
}
.sm-button-normal {
  width: calc(88 * (100% / 375));
  border: 1px solid #dfdfdf;
  background-color: white;
}
.sm-button-primary {
  width: calc(200 * (100% / 375));
  width: calc(160 * (100% / 375));
  background-color: #373737;
  color: white !important;
}

.sm-count {
  width: 30%;
  font-size: 22px;
  font-weight: bold;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 3px;
  letter-spacing: -0.05em;
  pointer-events: none;
  user-select: none;
  color: #444;
}
.sm-count span {
  font-size: 13px;
}

/* =========================================================
フォーム共通
========================================================= */
/* text input */
.sm-form-control {
  width: 100%;
  border-radius: 50px;
  padding: 10px 15px;
  line-height: 1.4 !important;
  height: 48px !important;
  border: 1px solid var(--gray-300) !important;
  text-indent: 0 !important;
}

/* radio, checkbox */
.sm-form-label-group {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: -1px;
}

.sm-form-label-thick,
.sm-form-label-thick-half {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-right: 1px solid var(--gray-100);
  border-bottom: 1px solid var(--gray-100);
  cursor: pointer;
}

.sm-form-label-thick {
  flex-basis: 100%;
  border-right: none;
  padding: 13px 0 13px 10px;
}
.sm-brand-list .sm-form-label-thick {
  padding: 13px 0;
  gap: 0 8px;
}

.sm-form-label-thick-half {
  flex-basis: 50%;
  padding: 20px 15px;
}

.sm-form-label-thick-half:nth-child(even) {
  border-right: none;
}

.sm-form-label {
  width: max-content;
  height: 16px;
  line-height: 16px;
  display: flex;
  align-items: center;
  gap: 1em;
  padding: 5px 0;
  cursor: pointer;
}

.sm-form-checkbox,
.sm-form-radio {
  width: 16px !important;
  height: 16px !important;
  background: transparent !important;
  appearance: none;
  display: grid;
  place-items: center;
  position: relative;
}

.sm-form-checkbox::before,
.sm-form-checkbox::after,
.sm-form-radio::before,
.sm-form-radio::after {
  content: "";
  display: block;
  position: absolute;
  margin-top: 1px;
}
.sm-form-radio::before,
.sm-form-radio::after {
  border-radius: 50%;
}

.sm-form-checkbox::before,
.sm-form-radio::before {
  width: 16px;
  height: 16px;
  border: 1px solid var(--gray-300);
  top: 0;
  left: 0;
}
.sm-form-checkbox:checked::after,
.sm-form-radio:checked::after {
  width: 10px;
  height: 10px;
  background-color: #f8a796;
  top: 3px;
  left: 3px;
}

/* select */
.sm-form-select {
  width: 100%;
  height: auto !important;
  padding: 10px;
  background: white;
  border: 1px solid #ccc;
  border-radius: 3px;
  color: var(--gray-400);
}
.sm-form-select:disabled {
  opacity: 0.3;
  background: lightgray;
}

/* =========================================================
フリーワード
========================================================= */
.sm-fr {
  width: calc(100% - 30px);
  height: 48px;
  margin: 0 15px;
  border: 1px solid var(--gray-300);
  border-radius: 50px;
  padding-right: 45px;
  background: url(/res/p/img/search/2026/search.svg) no-repeat right 20px center;
  background-size: 16px;
}
.sm-fr input {
  width: 100%;
  height: 100%;
  font-size: 16px;
  padding: 0 15px;
  border: none;
  appearance: none;
  border-radius: 50px;
  outline: none;
}

/* =========================================================
LMKタブ
========================================================= */
.sm-lm {
  width: 100%;
  overflow-x: scroll;
  -ms-overflow-style: none;
  scrollbar-width: none;
  margin-bottom: 10px;
}
.sm-lm-inr {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 00;
  border-bottom: 1px solid #dfdfdf;
}
.sm-lm::-webkit-scrollbar {
  display: none;
}

.lm-label {
  flex: 1;
  text-align: center;
  padding: 0 0 10px;
  font-size: 14px;
  color: #666;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-bottom: -2px;
  border-bottom: 3px solid transparent;
  position: relative;
}
.lm-label input {
  position: absolute;
  top: 0;
  left: 0;
  visibility: hidden;
}
.lm-label:has(input:checked) {
  font-weight: 700;
}
.lm-label:has(input:checked)::before {
  content: "";
  width: 100%;
  height: 3px;
  position: absolute;
  bottom: -2px;
  left: 0;
  background-color: #444;
}
.lm-label span {
  user-select: none;
}

/* =========================================================
○○から探す共通
========================================================= */
.sm-group {
  padding: 0 30px;
}
.sm-card-button {
  display: flex;
  justify-content: space-between;
  padding: 15px 0;
  background: white;
  border-bottom: 1px solid var(--gray-100);
  background: url(/res/p/img/search/2026/chevron_right.svg) no-repeat center
    right 5px;
  background-size: 6px;
  cursor: pointer;
  font-weight: bold;
  color: #444;
}
.sm-selected.no-selection {
  opacity: 0.3;
}

/* =========================================================
○○から探す共通 - 第2階層
========================================================= */
.sm-card {
  width: 100%;
  /* height: 100vh; */
  /* background-color: white;
  position: fixed;
  top: 0;
  left: 100%;
  z-index: 4; */
  transition: 0.3s;
}
.sm-card.is-active {
  /* translate: -100%; */
}

.sm-card-contents {
  width: 100%;
  /* min-height: 100%;
  height: 100vh; */
  position: relative;
  padding: 0;
  -ms-overflow-style: none;
  overflow-y: auto;
  /* overscroll-behavior: contain; */
}
.sm-card-contents::-webkit-scrollbar {
  display: none;
}

/* =========================================================
アコーディオン
========================================================= */
.sm-accordion {
  margin: 0 0 10px;
  display: flex;
  flex-direction: column;
}
.sm-accordion-button {
  padding: 15px 0;
  border-bottom: 1px solid #dfdfdf;
  cursor: pointer;
  position: relative;
  background-image: none;
  background-repeat: no-repeat;
  background-position: left 10px center;
  background-size: 20px;
  font-weight: bold;
  color: 666;
}
.sm-accordion-button::after {
  content: "";
  width: 12px;
  height: 12px;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url(/res/p/img/search/2026/plus.svg);
  background-size: contain;
  position: absolute;
  right: 8px;
  top: 24px;
}
/* 開閉 */
.sm-accordion-button.is-active::after {
  background-image: url(/res/p/img/search/2026/minus.svg);
}

.sm-accordion-child {
  flex-direction: column;
  margin-left: 15px;
  display: none;
}
.sm-accordion-child label {
  padding: 21px 0;
  border-bottom: 1px solid var(--gray-100);
  background: url(/res/p/img/search/2026/chevron_right.svg) no-repeat center
    right 10px;
  background-size: 6px;
  cursor: pointer;
}
.sm-accordion-child label.is-selected {
  background-color: rgb(248 167 150 / 10%);
}
.sm-accordion-child input {
  display: none;
}
/* 開閉 */
.sm-accordion-child.is-open {
  display: flex;
}

/* アウター */
.sm-accordion-icon-CA,
.sm-accordion-icon-EA,
.sm-accordion-icon-AA {
  background-image: url(/res/s/2025/img/category/icon_AA.svg) !important;
}
/* トップス */
.sm-accordion-icon-CB,
.sm-accordion-icon-EB,
.sm-accordion-icon-AB {
  background-image: url(/res/s/2025/img/category/icon_AB.svg) !important;
}
/* ワンピース/ドレス */
.sm-accordion-icon-CC,
.sm-accordion-icon-EC,
.sm-accordion-icon-AC {
  background-image: url(/res/s/2025/img/category/icon_AC.svg) !important;
}
/* スカート */
.sm-accordion-icon-CD,
.sm-accordion-icon-AD {
  background-image: url(/res/s/2025/img/category/icon_AD.svg) !important;
}
/* パンツ */
.sm-accordion-icon-CE,
.sm-accordion-icon-EC,
.sm-accordion-icon-AE {
  background-image: url(/res/s/2025/img/category/icon_AE.svg) !important;
}
/* 部屋着/ルームウェア */
.sm-accordion-icon-CF,
.sm-accordion-icon-ED,
.sm-accordion-icon-AF {
  background-image: url(/res/s/2025/img/category/icon_AF.svg) !important;
}
/* スポーツ */
.sm-accordion-icon-AG {
  background-image: url(/res/s/2025/img/category/icon_AG.svg) !important;
}
/* シューズ */
.sm-accordion-icon-CG,
.sm-accordion-icon-EH,
.sm-accordion-icon-AH {
  background-image: url(/res/s/2025/img/category/icon_AH.svg) !important;
}
/* バッグ */
.sm-accordion-icon-EI,
.sm-accordion-icon-AI {
  background-image: url(/res/s/2025/img/category/icon_AI.svg) !important;
}
/* 帽子 */
.sm-accordion-icon-CH,
.sm-accordion-icon-EJ,
.sm-accordion-icon-AJ {
  background-image: url(/res/s/2025/img/category/icon_AJ.svg) !important;
}
/* アクセサリー */
.sm-accordion-icon-AK {
  background-image: url(/res/s/2025/img/category/icon_AK.svg) !important;
}
/* ファッション雑貨 */
.sm-accordion-icon-CI,
.sm-accordion-icon-EK,
.sm-accordion-icon-AL {
  background-image: url(/res/s/2025/img/category/icon_AL.svg) !important;
}
/* インナー/ランジェリー */
.sm-accordion-icon-AM {
  background-image: url(/res/s/2025/img/category/icon_AM.svg) !important;
}
/* レッグウェア */
.sm-accordion-icon-AN {
  background-image: url(/res/s/2025/img/category/icon_AN.svg) !important;
}
/* 水着/浴衣 */
.sm-accordion-icon-AO {
  background-image: url(/res/s/2025/img/category/icon_AO.svg) !important;
}
/* スーツ */
.sm-accordion-icon-EG {
  background-image: url(/res/s/2025/img/category/icon_EG.svg) !important;
}
/* ベビー/マタニティ */
.sm-accordion-icon-DA {
  background-image: url(/res/s/2025/img/category/icon_DA.svg) !important;
}
/* スキンケア */
.sm-accordion-icon-BA {
  background-image: url(/res/s/2025/img/category/icon_BA.svg) !important;
}
/* ボディケア */
.sm-accordion-icon-BB {
  background-image: url(/res/s/2025/img/category/icon_BB.svg) !important;
}
/* ヘアケア */
.sm-accordion-icon-BC {
  background-image: url(/res/s/2025/img/category/icon_BC.svg) !important;
}
/* エチケット */
.sm-accordion-icon-BH {
  background-image: url(/res/s/2025/img/category/icon_BH.svg) !important;
}
/* バス */
.sm-accordion-icon-BE {
  background-image: url(/res/s/2025/img/category/icon_BE.svg) !important;
}
/* メイク */
.sm-accordion-icon-BF {
  background-image: url(/res/s/2025/img/category/icon_BF.svg) !important;
}
/* キット */
.sm-accordion-icon-BG {
  background-image: url(/res/s/2025/img/category/icon_BG.svg) !important;
}

/* 福袋 */
.sm-accordion-icon-FK {
  background-image: url(/res/s/2025/img/category/icon_FK.svg) !important;
}
/* インテリア */
.sm-accordion-icon-FB {
  background-image: url(/res/s/2025/img/category/icon_FB.svg) !important;
}
/* 雑貨 */
.sm-accordion-icon-FC {
  background-image: url(/res/s/2025/img/category/icon_FC.svg) !important;
}
/* 食器/キッチン */
.sm-accordion-icon-FD {
  background-image: url(/res/s/2025/img/category/icon_FD.svg) !important;
}
/* 本/ギャラリー */
.sm-accordion-icon-FE {
  background-image: url(/res/s/2025/img/category/icon_FE.svg) !important;
}
/* 文房具/ステーショナリー */
.sm-accordion-icon-FF {
  background-image: url(/res/s/2025/img/category/icon_FF.svg) !important;
}
/* 食品 */
.sm-accordion-icon-FH {
  background-image: url(/res/s/2025/img/category/icon_FH.svg) !important;
}
/* ペット */
.sm-accordion-icon-HA {
  background-image: url(/res/s/2025/img/category/icon_HA.svg) !important;
}
/* ギフトラッピング */
.sm-accordion-icon-GF {
  background-image: url(/res/s/2025/img/category/icon_GF.svg) !important;
}

/* =========================================================
こだわり条件から探す
========================================================= */
.sm-kodawari-list-heading {
  background-color: #f6f6f6;
  padding: 8px 15px;
  position: relative;
}

/* =========================================================
ブランドから探す
========================================================= */
/* テキストボックス */
.sm-brand-input {
  width: 290px !important;
  border: 1px solid #ccc !important;
  padding: 0 10px !important;
  height: 40px !important;
  line-height: 40px !important;
  outline: none;
  display: block;
  margin: 0 auto 15px;
}

/* アルファベット ボタン */
.sm-alpha-grid {
  width: max-content;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  margin: 0 auto 15px;
}

.sm-cell {
  box-sizing: border-box;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid #ccc;
  font-size: 16px;

  &:not(:is(.span2)) {
    font-family: "Poppins", sans-serif;
  }

  &.span2 {
    width: 80px;
    grid-column: span 2;
    font-size: 12px;
    font-weight: 500;
  }

  &.active {
    background-color: var(--pink-300);
  }

  &.disabled {
    opacity: 0.2;
    background-color: #ccc;
    cursor: not-allowed;
    pointer-events: none;
  }
}

.sm-brand-index-header {
  font-size: 13px;
  line-height: 1;
  display: flex;
  align-items: center;
  height: 33px;
  border-top: 1px solid var(--gray-100);
  border-bottom: 1px solid var(--gray-100);
  padding: 0 10px;
  background-color: #f5f5f5;
}

.sm-brand-list {
  margin: 0 15px;
}

.sm-brand-logo {
  width: 78px;
  img {
    width: 100%;
    height: auto;
    vertical-align: top;
  }
}
.sm-brand-name {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.sm-brand-kana {
  font-size: 11px;
  color: #747474;
}

/* =========================================================
カラーから探す
========================================================= */
.sm-colors {
  /* width: max-content; */
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
  margin: 10px auto 10px
}

[class*="sm-color-"] {
  width: max-content;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  position: relative;
  font-size: 12px;
  cursor: pointer;
}
[class*="sm-color-"] span {
  width: 55px;
  height: 55px;
  border-radius: 50%;
  background-size: cover;
  position: relative;
  display: grid;
  place-items: center;
}
[class*="sm-color-"] input {
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
}
[class*="sm-color-"] input:checked + span::after {
  content: "";
  border-right: 2px solid white;
  border-bottom: 2px solid white;
  transform: rotate(55deg);
  width: 7px;
  height: 12px;
  margin-bottom: 0;
}

/* SP */
@media screen and (max-width: 750px) {
  .sm-colorlist {
    gap: calc(20 * (100vw / 375));
  }
  [class*="sm-color-"] {
    gap: calc(9 * (100vw / 375));
    font-size: calc(12 * (100vw / 375));
  }
  [class*="sm-color-"] span {
    width: calc(40 * (100vw / 375));
    height: calc(40 * (100vw / 375));
  }
  [class*="sm-color-"] input:checked + span::after {
    border-right: calc(3 * (100vw / 375)) solid white;
    border-bottom: calc(3 * (100vw / 375)) solid white;
    width: calc(7 * (100vw / 375));
    height: calc(11 * (100vw / 375));
    margin-bottom: calc(5 * (100vw / 375));
  }
  .search-module-button {
    position: fixed;
    bottom: 20px;
    right: 150px;
    z-index: 9;
    box-sizing: border-box;
    height: 36px;
    line-height: 36px;
    display: inline-block;
    border-radius: 18px;
    margin: 0 3px;
    padding: 0 13px;
    background-color: #4a4a4a;
    color: #fff;
    font-size: 11px;
    font-weight: bold;
    width: 110px;
    text-align: right;
    cursor: pointer;
  }

  .search-module-button:before {
    content: "";
    width: 16px;
    height: 16px;
    background: url(/res/s/img/search/icn_footer_search.svg) no-repeat;
    background-size: contain;
    display: inline-block;
    position: absolute;
    margin: -8px 0 0 0;
    top: 50%;
    left: 10%;
  }
    .search-condition__item-or-fku {
    display: flex;
    font-size: 0;
  }

  .search-condition__item-or-fku a {
    padding: 3px 15px 5px 15px;
    border: 1px solid #dfdfdf;
    text-align: center;
    font-size: 12px;
    color: #666;
  }

  .search-condition__item-or-fku li:first-child a {
    border-right: none;
  }

  .search-condition__item-or-fku li a:not([href]){
    background: #dfdfdf;
  }
}
.sm-color-0 span::after,
.sm-color-3 span::after,
.sm-color-Z span::after {
  border-color: #000 !important;
}

/* ホワイト */
.sm-color-0 span {
  background-color: white;
  border: 1px solid #ddd;
}
/* グレー */
.sm-color-1 span {
  background-color: #959595;
}
/* グリーン */
.sm-color-2 span {
  background-color: #48a700;
}
/* イエロー */
.sm-color-3 span {
  background-color: #f6e400;
}
/* ブラウン */
.sm-color-4 span {
  background-color: #864824;
}
/* ベージュ */
.sm-color-5 span {
  background-color: #f4cdaf;
}
/* レッド */
.sm-color-6 span {
  background-color: #e40000;
}
/* ピンク */
.sm-color-7 span {
  background-color: #ff9d9d;
}
/* パープル */
.sm-color-8 span {
  background-color: #c754c5;
}
/* ブルー */
.sm-color-9 span {
  background-color: #0068bc;
}
/* ブラック */
.sm-color-B span {
  background-color: #000;
}
/* カーキ */
.sm-color-C span {
  background-color: #a6a11f;
}
/* オレンジ */
.sm-color-D span {
  background-color: #ffa000;
}
/* シルバー */
.sm-color-F span {
  background-image: url(/res/p/img/search/2026/bg-silver.svg);
}
/* ゴールド */
.sm-color-G span {
  background-image: url(/res/p/img/search/2026/bg-gold.svg);
}
/* ネイビー */
.sm-color-I span {
  background-color: #0c2374;
}
/* カラーなし */
.sm-color-Z span {
  background-image: url(/res/p/img/search/2026/bg-none-color.svg);
}
/* Etc(Mix) */
.sm-color-E span {
  background-image: url(/res/p/img/search/2026/bg-multi-color.svg);
}
/* レオパード */
/* .sm-color-H span {
  background-image: url(/res/p/img/brand/2026/bg-leopard.png);
} */

/* =========================================================
価格・割引率から探す
========================================================= */
.sm-price-group + .sm-price-group {
  margin-top: 20px;
}
.sm-price-heading {
  font-size: 13px;
  margin-bottom: 7px;
}

.sm-form-select-group {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 3em 1fr;
}
.sm-form-select-group span {
  display: flex;
  justify-content: center;
  align-items: center;
}

/* =========================================================
販売状況（通常販売、セールなど）
========================================================= */
.sm-stock-list {
  margin: 0 15px;
}

/* =========================================================
アイコン、入荷状況、在庫状況
========================================================= */
.sm-block {
  padding: 20px 0;
  margin: 0 15px;
}
.sm-block + .sm-block {
  border-top: 1px solid var(--gray-100);
}

.sm-block-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.sm-clear-button {
  font-size: 10px;
  font-weight: bold;
  appearance: none;
  border: none;
  background-color: transparent;
  padding: 1px 5px;
  color: #f8a796;
}

.sm-block-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 0;
  padding: 0 15px;
}

/* =========================================================
ページに設置するボタン
========================================================= */

/* =========================================================
トーストメッセージ
========================================================= */
.sm-toast {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  position: fixed;
  top: 0;
  left: 0;
  background-color: rgba(0 0 0 / 0.1);
  z-index: 10;
}
.sm-toast-contents {
  background-color: white;
  padding: 20px;
  border-radius: 5px;
}

/* =========================================================
ZETAサジェスト
========================================================= */
.z-contents {
  display: flex;
  flex-direction: column;
  gap: 15px;
  position: relative;
  padding-top: 75px;
  /* border: 4px solid red; */
}

.z-suggest {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 15px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  height: auto;
  z-index: 4;
  background-color: white;
}

.z-suggest-scroll {
  display: flex;
  flex-direction: column;
  gap: 30px;
  height: 100%;
  -ms-overflow-style: none;
  overflow-x: hidden;
  overflow-y: scroll;
  display: none;
}
.z-suggest-scroll::-webkit-scrollbar {
  display: none;
}

.z-freeword {
  width: 100%;
  height: 47px;
  border: 1px solid #dfdfdf;
  border-radius: 50px;
  padding-right: 45px;
  background: url(/res/p/img/search/2026/search.svg) no-repeat right 15px center;
  background-size: 26px;
  position: relative;
}
.z-freeword .z-freeword-input {
  width: 100%;
  height: 45px;
  font-size: 14px;
  padding: 0 15px;
  border: none;
  appearance: none;
  border-radius: 50px;
  outline: none;
}
.z-suggest-close {
  appearance: none;
  border: none;
  background: white url(/res/s/img/search/icn_modeal_close.svg) no-repeat center;
  background-size: 16px;
  border-radius: 0 50px 50px 0;
  position: absolute;
  top: 0;
  right: 0;
  width: 45px;
  height: 46px;
  display: none;
}

/* active */
.z-suggest.is-active {
  height: calc(100vh - 50px);
}
.z-suggest.is-active .z-suggest-scroll {
  display: flex;
}
.z-suggest.is-active .z-suggest-close {
  display: block;
}
.sm-contents:has(.z-suggest.is-active) {
  overflow: hidden !important;
}

.z-item-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px 15px;
  padding-bottom: 50px;
}
.z-item-brand-name {
  font-size: 10px;
  margin-top: 10px;
}
.z-item-price {
  font-size: 13px;
}
.z-item img {
  width: 100%;
  height: auto;
  vertical-align: top;
}

.z-blocks {
  background-color: #f5f5f5;
  margin: 0 0 20px;
  padding: 25px 15px;
  display: flex;
  flex-direction: column;
  gap: 25px;
}
.z-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.z-blocks {
  display: none;
}

.z-heading {
  display: flex;
  justify-content: space-between;
}
.z-delete-button {
  text-decoration: underline !important;
}

.z-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 4px;
}
.z-tag {
  text-decoration: none;
  padding: 7px 10px;
  background-color: #e0e0e0;
  border-radius: 40px;
}
.z-popular-keyword .z-tag {
  background-color: #ffe6de;
}

/* =========================================================
ソートボタン
========================================================= */
.sort-button {
  border-top: 1px solid #dfdfdf;
  border-bottom: 1px solid #dfdfdf;
  background-color: #fff;
}
.sort-button ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
}
.sort-button li {
  flex: 1;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #666;
  position: relative;
}
.sort-button-narrow {
  border-right: 1px solid #dfdfdf;
}
.sort-button li span {
  display: flex;
  align-items: center;
}
.sort-button li span::after {
  content: "";
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin-left: 15px;
}
.sort-button-narrow span::after {
  width: 21px;
  height: 28px;
  background-image: url(/res/s/img/search/icn_filter.svg);
}
.sort-button-order span::after {
  width: 19px;
  height: 16px;
  background-image: url(/res/s/img/search/icn_sort.svg);
}
.sort-button-page {
  display: none;
}

.result-count-wrap {
  margin: 20px 10px 25px;
  display: flex;
  justify-content: space-between;
}
.result-count {
  font-size: 13px;
  font-weight: 500;
  color: #aaa;
}

/* =========================================================
PC用css
========================================================= */
@media screen and (min-width: 750px) {
  .sm-contents {
    padding: 30px 0 90px;
  }
  .sm-contents-title {
    font-size: 16px;
    color: #777;
    margin: 30px 0 0;
    text-align: center;
  }
  .sm-header {
    height: 30px;
    top: 30px;
    justify-content: flex-end;
    background: none;
    padding: 0 30px;
  }
  .search-module {
    width: 990px;
    height: 90vh;
    overflow: hidden;
    border-radius: 8px;
  }
  .search-module.is-active {
    translate: 0;
  }
  .sm-fix-buttons {
    justify-content: center;
    background-color: #fff;
    padding: 43px;
  }
  .sm-count{
    width: 10%;
  }
  .sm-lm {
    margin-top: 20px;
    padding: 0 30px;
  }
  .sm-header-left {
    display: none;
  }
  .sm-main-layout {
    display: flex;
    justify-content: center;
    gap: 0;
    padding: 20px 30px;
  }
  .sm-group {
    padding: 0;
  }
  .sm-column.sm-col-left {
    width: 207px;
  }
  .sm-column.sm-col-right {
    width: 458px;
  }
  .sm-column.sm-col-center {
    width: 264px;
    padding: 0 20px;
  }
  .sm-group-color {
    margin: 0 0 30px;
  }
  .sm-checkbox-label {
    padding: 0 0 12px !important;
  }
  .sm-col-left .sm-checkbox-label,
  .sm-col-right .sm-checkbox-label {
    padding: 0 0 24px !important;
  }
  .sm-col-label {
    height: 30px;
    font-size: 16px;
    color: #777;
    margin-bottom: 20px;
    display: block;
    border-bottom: 1px dotted #ccc;
  }
  .sm-label-text {
    font-size: 14.5px !important;
    font-weight: 400 !important;
  }
  .sm-scroll-area {
    max-height: 520px;
    overflow-y: auto;
    padding-right: 10px;
    scrollbar-width: thin;
    scrollbar-color: #e3e3e3 #f8f8f8;
  }
  .sm-scroll-area::-webkit-scrollbar {
    width: 6px;
  }
  .sm-scroll-area::-webkit-scrollbar-track {
    background-color: #f8f8f8;
  }
  .sm-scroll-area::-webkit-scrollbar-thumb {
    background-color: #e3e3e3;
  }
  .sm-card {
    border: none !important;
    background: transparent !important;
    margin: 0 0 20px;
  }
  .sm-accordion-header {
    pointer-events: none;
    padding-top: 0 !important;
    border: none !important;
  }
  .sm-accordion-header::after {
    content: none !important;
  }
  .sm-accordion-body {
    display: block !important;
  }

  .sm-checkbox-list-vertical {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0 10px;
  }

  [class*="sm-color-"] span {
    width: 40px;
    height: 40px;
  }
  .sm-colors {
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  .sm-contents {
    overscroll-behavior: none;
  }

  .search-module-button {
    width: 250px;
    height: 54px;
    margin: 0 auto 0;
    font-size: 16px;
    font-weight: 500;
    color: #666;
    border: 1px solid #e9e9e9;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    cursor: pointer;
  }
  .search-module-button::after {
    width: 16px;
    height: 16px;
    content: "";
    display: inline-block;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-left: 15px;
    background-image: url(/res/s/img/search/icn_filter.svg);
  }
  .search-module-button:hover {
    opacity: 0.7;
  }

  .z-suggest {
    padding: 0 30px;
  }
  .z-contents {
    padding: 75px 30px 0;
  }
  .z-freeword {
    width: 350px;
    height: 58px;
    z-index: 50;
  }
  .z-freeword .z-freeword-input {
    height: 55px;
    font-size: 16px;
  }
  .z-suggest.is-active {
    height: calc(65vh - 50px);
  }
  .sm-fix-buttons {
    gap: 0 25px;
  }
  .sm-button-normal {
    width: 134px;
  }
  .sm-button-primary {
    width: 210px;
    border: none;
  }
}

/* =========================================================
アコーディオンのヘッダー（見出し部分）
========================================================= */
.sm-accordion-header {
  position: relative;
  padding: 15px 0;
  cursor: pointer;
  border-bottom: 1px solid #eee;
  user-select: none; /* テキスト選択を無効化 */
}
.sm-accordion-header.is-open {
  padding-bottom: 15px;
  border-bottom: none;
}

.sm-header-text {
  font-size: 14px;
  font-weight: bold;
  color: #666;
}

/* アコーディオンの開閉矢印（∧/∨） */
.sm-accordion-header::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 15px;
  width: 16px;
  height: 14px;
  transform: translateY(-50%);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23666' fill='none'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  transition: transform 0.3s ease; /* アニメーション */
}

/* 開いている時は矢印を上に向ける */
.sm-accordion-header.is-open::after {
  transform: translateY(-50%) rotate(180deg);
}

/* =========================================================
チェックボックスリストのデザイン
========================================================= */
.sm-accordion-body {
  overflow: hidden;
  transition: all 0.3s ease;
}
.sm-checkbox-list {
  padding: 0;
}
.sm-checkbox-label {
  display: flex;
  align-items: flex-start;
  padding: 12px 0; /* 上下に余白 */
  width: 100%;
  cursor: pointer;
}
.sm-checkbox-label input[type="checkbox"] {
  display: none;
}
.sm-custom-checkbox {
  width: 20px;
  height: 20px;
  border: 1px solid #ccc;
  border-radius: 4px;
  margin: 3px 12px 0 0;
  background-color: #fff;
  position: relative;
  flex-shrink: 0;
}

.sm-checkbox-label input[type="checkbox"]:checked + .sm-custom-checkbox::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background-color: #666;
  border-radius: 3px;
}
.sm-label-text {
  font-size: 16px;
  font-weight: 500;
  color: #777;
  display: flex;
  flex-direction: column;
}
.sm-col-left .sm-label-text,
.sm-col-right .sm-label-text {
  display: inline-block;
}

.sm-label-text span {
  font-size: 10px;
  color: #999;
}
.sm-col-left .sm-label-text span,
.sm-col-right .sm-label-text span {
  font-size: 13px;
}

/* =========================================================
表示順のレイアウト
========================================================= */
.sm-order-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.sm-order-modal.is-active ~ .search-module {
  pointer-events: none;
}
.sm-order-modal.is-active {
  opacity: 1;
  pointer-events: auto;
}

.sm-order-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}

.sm-order-content {
  position: relative;
  width: 90%;
  max-width: 340px;
  background: #fff;
  overflow: hidden;
}

.sm-order-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
}

.sm-order-title {
  font-size: 16px;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 5px;
}

.sm-sort-icon {
  width: 14px;
}

.sm-order-close img {
  width: 24px;
  cursor: pointer;
}

.sm-order-list ul {
  padding: 0 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sm-order-item-link {
  width: 100%;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  border: 1px solid #dfdfdf;
  color: #666;
  font-size: 15px;
  font-weight: 500;
  transition: background 0.2s;
}

/* 選択されている項目のスタイル（画像のようなグレー背景） */
.sm-order-item-link.is-selected {
  background: #dfdfdf;
  border-color: #dfdfdf;
  color: #666;
}
.sm-price-label {
  font-size: 14px;
  color: #666;
  margin-bottom: 5px;
}

/* ラジオボタン用の簡易スタイル */
.sm-radio-list {
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 0;
}

.sm-radio-label {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 14px;
}

.sm-custom-radio {
  width: 16px;
  height: 16px;
  border: 1px solid #ccc;
  border-radius: 50%;
  margin-right: 8px;
  position: relative;
}

input[type="radio"]:checked + .sm-custom-radio::after {
  content: "";
  width: 8px;
  height: 8px;
  background: #666;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.sm-radio-list input[type="radio"] {
  display: none;
}
.sm-form-input {
  width: 45%;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  box-sizing: border-box;
}

.sm-form-input-group {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sm-range-separator {
  margin: 0 10px;
}

/* Chrome, Safari, Edge の入力矢印を消す（任意） */
.sm-form-input::-webkit-outer-spin-button,
.sm-form-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}