@charset "UTF-8";
/* ============================================
   ページ固有スタイル（トップ以外）
   ============================================ */

.fs-c-breadcrumb {
  margin-top: 10px;
}

/* 2個目: 非表示 */
.fs-c-breadcrumb + .fs-c-breadcrumb {
  display: none;
}

/* JS: 不要なol */
.fs-c-breadcrumb__list.is-hidden {
  display: none;
}

/*********************************************************** 

カテゴリー一覧ページ

***********************************************************/

.c-inner {
  margin-bottom: 0;
}

.fs-body-category-delivery #oisogi,
.fs-body-category-delivery #kisei,
.fs-body-category-delivery #orederhin,
.fs-body-category-delivery #days,
.fs-body-category-delivery #oisogi-semi,
.fs-body-category-delivery #calendar,
.fs-body-category-guide #sec001_con,
.fs-body-category-guide #sec002_con,
.fs-body-category-guide #sec003_con,
.fs-body-category-guide #sec004_con,
.fs-body-category-guide #sec005_con,
.fs-body-category-guide #sec006_con,
.fs-body-category-guide #sec007_con,
.fs-body-category-company #kodawari,
.fs-body-category-company #kodawari02,
.fs-body-category-company #kodawari03,
.fs-body-category-company #kodawari04,
.fs-body-category-company #kodawari05,
.fs-body-category-company #company,
.fs-body-category-company #access,
.fs-body-category-order-flow #standard,
.fs-body-category-order-flow #order,
.fs-body-category-engraving-plate #medal,
.fs-body-category-engraving-plate #trophy,
.fs-body-category-engraving-plate #cup,
.fs-body-category-engraving-plate #plaque,
.fs-body-category-original-logo #original_logo,
.fs-body-category-original-logo #color_printing,
.fs-body-category-certificatetemplate-original #sports,
.fs-body-category-certificatetemplate-original #contest,
.fs-body-category-certificatetemplate-original #years,
.fs-body-category-certificatetemplate-original #sales,
.fs-body-category-certificatetemplate-original #sales_agent,
.fs-body-category-certificatetemplate-original #safety,
.fs-body-category-carving #carving_price,
.fs-body-category-carving #carving_input,
.fs-body-category-carving #carving_commitment,
.fs-body-category-emblem-company #craftsman01,
.fs-body-category-emblem-company #craftsman02,
.fs-body-category-emblem-company #craftsman03,
.fs-body-category-emblem-company #craftsman04,
.fs-body-category-emblem-company #craftsman05,
.fs-body-category-emblem-company #craftsman06,
.fs-body-category-emblem-company #craftsman07,
.fs-body-category-emblem-company #craftsman08,
.fs-body-category-category-all #medal,
.fs-body-category-category-all #trophy,
.fs-body-category-category-all #cup,
.fs-body-category-category-all #plaque,
.fs-body-category-category-all #certificate,
.fs-body-category-category-all #photoframe,
.fs-body-category-category-all #order,
.fs-body-category-category-all #acrylic,
.fs-body-category-category-all #clock,
.fs-body-category-category-all #nigaoe,
.fs-body-category-category-all #emblem,
.fs-body-category-category-all #emblem-company,
.fs-body-category-category-all #nameplate,
.fs-body-category-category-all #kids,
.fs-body-category-category-all #character,
.fs-body-category-category-all #memorial,
.fs-body-category-category-all #ceremony,
.fs-body-category-category-all #sculpture,
.fs-body-category-data #id_make,
.fs-body-category-data #id_com {
  padding: 0 0 0 0;
}

/* 即日配送: 基本は「表示」のまま、JSで対象を非表示に */
/* → CSS側は何もしない */

/* スケジュール納期: 基本非表示、JSで対象のみ表示 */

#fs_ProductDetails .cat-faq__answer a {
  display: contents;
}

/* ========================================
   カテゴリーページ共通見出し
   ======================================== */

/* パターン1: 中央揃え＋下線（54px） */
.cat-heading-lined,
.c-inner .cat-heading-lined,
.fs-c-wishlistProduct__title {
  text-align: center;
  font-size: 22px;
  font-family: var(--font-base);
  padding-bottom: 20px;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="54" height="1"><rect width="54" height="1" fill="%23b5b5b5"/></svg>') no-repeat center bottom;
  margin: 0 0 30px;
  position: relative;
}

/* 旧CSS擬似要素リセット */
.cat-heading-lined::before,
.cat-heading-lined::after,
.c-inner .cat-heading-lined::before,
.c-inner .cat-heading-lined::after,
.fs-c-wishlistProduct__title::before,
.fs-c-wishlistProduct__title::after {
  content: none;
}

/* cat-heading-lined 内バッジ（span先頭）? ダーク背景のカテゴリラベル */
.fs-body-category .cat-heading-lined > span:first-child,
.fs-body-category .c-inner .cat-heading-lined > span:first-child {
  display: block;
  max-width: max-content;
  margin: 0 auto 0.6em;
  background: #696969;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.05em;
  padding: 0.4em 1.4em;
  line-height: 1.4;
}

/* パターン1b: 左揃え＋下線 */
.cat-heading-lined.--left,
.c-inner .cat-heading-lined.--left {
  text-align: left;
  font-size: 20px;
  background-position: left bottom;
}

.cat-heading-lined.--left:first-child {
  margin-top: 0;
}

.--left {
  text-align: left !important;
}

/* --left見出し直後のテキスト・リストの余白調整 */
.cat-heading-lined.--left + .cat-lead {
  margin-bottom: 1.5em;
}

.cat-heading-lined.--left + .cat-lead + .cat-content__list {
  margin-top: -0.5em;
}

.cat-heading-lined.--left + .cat-content__list {
  margin-top: -1em;
}

.cat-heading-lined.--left + .cat-content__table-wrap {
  margin-top: -1em;
}

/* パターン2: 中央揃え＋サブタイトル付き */
.cat-heading-decorated {
  text-align: center;
  margin-bottom: 30px;
}

.cat-heading-decorated__title,
.c-inner .cat-heading-decorated__title {
  font-size: 21px;
  font-family: var(--font-base);
  margin: 0;
}

.cat-heading-decorated__sub,
.c-inner .cat-heading-decorated__sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  font-size: 14px;
  font-family: var(--font-base);
  font-weight: normal;
  margin-top: 9px;
}

.cat-heading-decorated__line {
  display: block;
  width: 30px;
  height: 1px;
  background-color: #b5b5b5;
}

/* ========================================
   カテゴリーコンテンツ共通
   ======================================== */

.cat-content__inner {
  width: 100%;
  margin-inline: auto;
}

/* cat-content__inner内の要素間余白（lobotomized owl） */
.cat-content__inner > * + * {
  margin-top: 1.5em;
}

/* cat-content__inner内段落の余白 */
.cat-content__inner p {
  margin: 0 0 1em 0;
  line-height: 1.8;
}

.cat-content__inner p:last-child {
  margin-bottom: 0;
}

/* 画像ブロック */
.cat-content__image {
  margin-bottom: 20px;
  text-align: center;
}

.cat-content__image img {
  max-width: 100%;
  height: auto;
  display: inline-block;
}

.cat-heading-movie + .cat-content__image {
  margin-top: 0 !important;
}

/* --full: 全幅（親コンテナ幅いっぱいまで拡大）モディファイア */
.cat-content__image.--full img {
  width: 100%;
  max-width: 100%;
}

.cat-lead {
  font-size: 15px;
  line-height: 1.8;
  margin: 0 0 4em;
}

.cat-lead span {
  color: #e94738;
}

/* お知らせ・告知ボックス */
.cat-notice {
  background: #fafafa;
  border: 1px solid #e0e0e0;
  border-radius: 0;
  padding: 2.5em 3em;
  margin: 2em 0;
  text-align: center;
}

.cat-notice__title,
.c-inner .cat-notice__title {
  font-size: 20px;
  font-family: var(--font-base);
  font-weight: bold;
  text-align: center;
  margin: 0 0 0.8em;
}

.cat-notice__period {
  display: inline-block;
  font-size: 20px;
  font-weight: bold;
  font-family: var(--font-base);
  color: #e94738;
  padding-bottom: 40px;
  margin: 0.5em 0 1.5em;
}

.cat-notice__body {
  font-size: 16px;
  line-height: 1.5;
  text-align: left;
  max-width: 700px;
  margin: 0 auto;
}

.cat-notice__body span {
  color: #e94738;
}

.cat-notice__resume {
  display: inline-block;
  font-size: 16px;
  font-weight: bold;
  font-family: var(--font-base);
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  padding: 0.6em 1.5em;
  margin: 0 0 1.5em;
}

/* 注意事項ボックス */
.cat-caution {
  border: none;
  border-radius: 0;
  margin: 2em 0;
}

.cat-caution__title,
.c-inner .cat-caution__title {
  font-size: 16px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: center;
  color: #fff;
  background: #e94738;
  padding: 6px 1em;
  margin: 0 0 0.8em;
  border: none;
  display: inline-block;
}

.cat-caution__sub {
  font-size: 14px;
  font-weight: bold;
  color: #e94738;
  background: #fff;
  border: 1px solid #e94738;
  border-radius: 0;
  display: block;
  width: 100%;
  text-align: center;
  padding: 0.4em 1em;
  margin: 0 0 1.5em;
}

.cat-caution__list {
  font-size: 14px;
  line-height: 1.8;
  list-style: disc;
  padding-left: 1.5em;
  margin: 0 0 2em;
}

.cat-caution__list li {
  margin-bottom: 0.2em;
  padding-left: 0.3em;
}

.cat-caution__list li span {
  color: #e94738;
}

.cat-caution__numbers {
  margin-top: 20px !important;
}

.cat-caution__numbers li {
  list-style: none;
  padding-left: 2em;
}

.cat-caution__numbers li:first-child {
  background: url(https://prize.itembox.cloud/item/assets/img/delivery/icon_001.png) no-repeat 0 4px;
}

.cat-caution__numbers li:nth-child(2) {
  background: url(https://prize.itembox.cloud/item/assets/img/delivery/icon_002.png) no-repeat 0 4px;
}

.cat-caution__numbers li:nth-child(3) {
  background: url(https://prize.itembox.cloud/item/assets/img/delivery/icon_003.png) no-repeat 0 4px;
}

.cat-caution__numbers li:nth-child(4) {
  background: url(https://prize.itembox.cloud/item/assets/img/delivery/icon_004.png) no-repeat 0 4px;
}

.cat-caution__numbers li:nth-child(5) {
  background: url(https://prize.itembox.cloud/item/assets/img/delivery/icon_005.png) no-repeat 0 4px;
}

.cat-caution__numbers li:not(:last-child) {
  margin-bottom: 2em;
}

.fs-c-productOption__comment {
  font-size: 14px;
}

/* ダウンロードカード */
.cat-download {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 360px));
  justify-content: center;
  gap: 20px 40px;
  margin: 2em 0;
}

.cat-download__card {
  flex: 1;
  border-radius: 0;
  text-align: center;
}

.cat-download__card img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto 1em;
}

.cat-download__card p {
  font-size: 13px;
  line-height: 1.6;
  text-align: left;
  margin: 0;
}

/* 番号付きステップリスト（記入ガイド等） */
.cat-content__numbered-dl {
  margin: 2em 0;
}

.cat-content__numbered-dl dt {
  display: block;
  font-size: 18px;
  font-weight: bold;
  font-family: var(--font-base);
  line-height: 1.6;
  margin-top: 50px;
  text-align: left;
}

@media (max-width: 900px) {
  .cat-content__numbered-dl dt {
    font-size: 16px;
    margin-top: 30px;
  }

  .cat-content__inner {
    width: 100%;
    max-width: min(calc(100% - 20px), 1140px);
    margin-inline: auto;
  }

  .pc-only {
    display: none;
  }

  .cat-download {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px 0;
  }
}

.cat-content__numbered-dl dt:first-child {
  padding-top: 0;
  margin-top: 0;
  border-top: none;
}

.cat-content__numbered-dl dt::before {
  content: "";
}

.cat-content__numbered-dl dt span {
  display: inline-grid;
  place-items: center;
  background: #696969;
  color: #fff;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.05em;
  line-height: 1;
  padding: 0.6em 0.9em;
  min-width: 0;
  width: auto;
  height: auto;
  margin-right: 0.8em;
  vertical-align: middle;
  white-space: nowrap;
}

.cat-content__numbered-dl dd {
  font-size: 14px;
  line-height: 1.8;
  margin: 20px 0 0;
}

.cat-content__numbered-dl dd span {
  color: #e94738;
  background: none;
  width: auto;
  height: auto;
  border-radius: 0;
  display: inline;
}

/* --grid2 モディファイア: 2カラムgridレイアウト */
.cat-content__numbered-dl.--grid2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin: 2em 0;
}

.cat-content__numbered-dl.--grid2 .cat-content__numbered-dl__item {
  border: 1px solid #ccc;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 0.8em;
}

.cat-content__numbered-dl.--grid2 dt {
  padding: 0;
  margin: 0;
  border: none;
  font-size: 18px;
  font-weight: bold;
}

.cat-content__numbered-dl.--grid2 dt:first-child {
  padding: 0;
  margin: 0;
  border: none;
}

.cat-content__numbered-dl.--grid2 dd {
  padding: 0;
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
}

/* SP: 1カラムに切り替え */
@media (max-width: 900px) {
  .cat-content__numbered-dl.--grid2 {
    grid-template-columns: 1fr;
  }

  .cat-content__numbered-dl.--grid2 dt {
    font-size: 16px;
  }
}

/* タイムラインSTEP */
.cat-timeline {
  margin: 2em 0;
  counter-reset: step;
}

.cat-timeline__item {
  display: flex;
  align-items: stretch;
  counter-increment: step;
}

.cat-timeline__step {
  flex-shrink: 0;
  width: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.cat-timeline__step::before {
  content: "STEP";
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  padding: 6px 0 2px;
  background: #696969;
  color: #fff;
  font-size: 10px;
  font-weight: bold;
  letter-spacing: 0.05em;
  border-radius: 4px 4px 0 0;
  box-sizing: border-box;
}

.cat-timeline__step::after {
  content: counter(step);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  padding: 0 0 6px;
  background: #696969;
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  border-radius: 0 0 4px 4px;
  box-sizing: border-box;
}

.cat-timeline__connector {
  flex: 1;
  width: 2px;
  background: #d0d0d0;
  margin: 4px auto 0;
  min-height: 20px;
}

.cat-timeline__item:last-child .cat-timeline__connector {
  visibility: hidden;
}

.cat-timeline__content {
  flex: 1;
  padding: 0 0 2em 1.5em;
  border-bottom: 1px solid #eee;
}

.cat-timeline__item:last-child .cat-timeline__content {
  border-bottom: none;
  padding-bottom: 0;
}

.cat-timeline__title {
  font-size: 16px;
  font-weight: bold;
  font-family: var(--font-base);
  margin: 0 0 0.8em;
}

.cat-timeline__body {
  font-size: 14px;
  line-height: 1.8;
}

.cat-timeline__body span {
  color: #e94738;
}

/* 商品比較カード（社章仕上げ等の2列テーブル代替） */
.cat-compare-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5em;
  margin: 2em 0;
}

.cat-compare-grid__item {
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  padding: 1.5em;
  text-align: center;
}

.cat-compare-grid__title {
  font-size: 15px;
  font-weight: bold;
  font-family: var(--font-base);
  background: #f5f5f5;
  padding: 0.5em;
  margin: 0 -1.5em 1em;
  border-radius: 6px 6px 0 0;
}

.cat-compare-grid__image {
  margin-bottom: 1em;
}

.cat-compare-grid__image img {
  max-width: 100%;
  height: auto;
  display: inline-block;
}

.cat-compare-grid__desc {
  font-size: 13px;
  line-height: 1.6;
  text-align: left;
  margin: 0;
}

.cat-compare-grid__link {
  display: inline-block;
  margin-top: 0.8em;
  font-size: 13px;
}

/* 仕上げ方法 比較テーブル（emblem系・2列固定）
   モディファイアで画像・文字サイズを調整可能:
     --img-100/120/150/180/200/220/250/280/300/340  : 画像最大幅
     --fs-13/14/15/16                                : 本文フォントサイズ
     --title-14/16/18/20                             : 見出し(th)フォントサイズ
   使用例: <table class="cat-finish-table --img-250 --fs-16">
*/
.cat-finish-table {
  --img-max: 150px;
  --desc-size: 14px;
  --title-size: 16px;
  width: 100%;
  border-collapse: collapse;
  margin: 2em 0;
  font-family: var(--font-base);
  font-size: var(--desc-size);
  line-height: 1.7;
}

/* 画像最大幅モディファイア */
.cat-finish-table.--img-100 {
  --img-max: 100px;
}

.cat-finish-table.--img-120 {
  --img-max: 120px;
}

.cat-finish-table.--img-150 {
  --img-max: 150px;
}

.cat-finish-table.--img-180 {
  --img-max: 180px;
}

.cat-finish-table.--img-200 {
  --img-max: 200px;
}

.cat-finish-table.--img-220 {
  --img-max: 220px;
}

.cat-finish-table.--img-250 {
  --img-max: 250px;
}

.cat-finish-table.--img-280 {
  --img-max: 280px;
}

.cat-finish-table.--img-300 {
  --img-max: 300px;
}

.cat-finish-table.--img-340 {
  --img-max: 340px;
}

/* 本文フォントサイズ モディファイア */
.cat-finish-table.--fs-13 {
  --desc-size: 13px;
}

.cat-finish-table.--fs-14 {
  --desc-size: 14px;
}

.cat-finish-table.--fs-15 {
  --desc-size: 15px;
}

.cat-finish-table.--fs-16 {
  --desc-size: 16px;
}

/* 見出し(th)フォントサイズ モディファイア */
.cat-finish-table.--title-14 {
  --title-size: 14px;
}

.cat-finish-table.--title-16 {
  --title-size: 16px;
}

.cat-finish-table.--title-18 {
  --title-size: 18px;
}

.cat-finish-table.--title-20 {
  --title-size: 20px;
}

.cat-finish-table th,
.cat-finish-table td {
  border: 1px solid #eee;
  padding: 20px;
  vertical-align: top;
  width: 50%;
  box-sizing: border-box;
}

.cat-finish-table th {
  padding: 10px 20px;
}

.cat-finish-table th,
.c-inner .cat-finish-table th {
  background: #f7f7f7;
  font-size: var(--title-size);
  font-weight: bold;
  text-align: center;
  color: #111;
  font-family: var(--font-base);
}

.cat-finish-table__figure {
  margin: 0 0 1em;
  text-align: center;
}

.cat-finish-table__figure img {
  max-width: var(--img-max);
  width: 100%;
  height: auto;
  display: inline-block;
}

.cat-finish-table__link {
  display: inline-block;
  margin-top: 0.8em;
  font-size: 13px;
}

@media (max-width: 900px) {
  .cat-finish-table th,
  .cat-finish-table td {
    padding: 12px 10px;
    font-size: 13px;
  }

  .cat-finish-table th {
    font-size: 14px;
  }

  .cat-finish-table__figure img {
    max-width: 120px;
  }
}

/* スポーツカテゴリ一覧（3列グリッド） */
.cat-sport-grid {
  margin: 1.5em 0 2em;
}

.cat-sport-grid__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5em;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cat-sport-grid__link {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  text-decoration: none;
  color: inherit;
  padding: 12px;
  border: 1px solid #eee;
  border-radius: 6px;
  transition:
    box-shadow 0.3s,
    border-color 0.3s;
  height: 100%;
  box-sizing: border-box;
}

.cat-sport-grid__link:hover {
  opacity: 0.8;
}

.cat-sport-grid__image {
  flex-shrink: 0;
  width: 168px;
  overflow: hidden;
}

.cat-sport-grid__image img {
  width: 100%;
  height: auto;
  display: block;
}

.cat-sport-grid__name,
.c-inner .cat-sport-grid__name {
  font-size: 14px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: left;
  margin: 0 0 0.3em;
}

.cat-sport-grid.--name-ruled .cat-sport-grid__name,
.c-inner .cat-sport-grid.--name-ruled .cat-sport-grid__name {
  font-weight: normal;
  text-align: center;
  border-bottom: 1px solid #ccc;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.cat-sport-grid__desc {
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
  flex: 1;
}

/* cat-sport-grid --stack モディファイア（縦積み・罫線なし・広めgap） */
.cat-sport-grid.--stack .cat-sport-grid__list {
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
}

.cat-sport-grid.--stack.--col3 .cat-sport-grid__list {
  grid-template-columns: repeat(3, minmax(0, 240px));
  justify-content: center;
}

.cat-sport-grid.--stack .cat-sport-grid__link {
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  padding: 0;
  border: none;
  border-radius: 0;
}

.cat-sport-grid.--stack .cat-sport-grid__image {
  width: 100%;
}

.cat-sport-grid.--stack .cat-sport-grid__desc {
  flex: none;
}

.cat-allsport-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 168px));
  justify-content: center;
  gap: 60px;
  margin: 2em 0;
}

.cat-allsport-grid--img {
  margin-bottom: 10px;
}

.cat-allsport-grid--desc {
  font-size: 12px;
  line-height: 1.4;
}

@media (max-width: 900px) {
  .cat-allsport-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

/* cat-sport-grid 内は auto-phrase 解除（body共通の word-break 打ち消し） */
.cat-sport-grid,
.cat-sport-grid * {
  word-break: normal;
}

/* サイトマップ */
.cat-sitemap {
  display: block;
  margin: 2em 0;
}

.cat-sitemap__section {
  break-inside: avoid;
}

.cat-sitemap__title,
.c-inner .cat-sitemap__title {
  font-size: 16px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: left;
  color: #fff;
  background: #696969;
  padding: 0.6em 1em;
  border-radius: 4px;
  margin: 0 0 1em;
}

.cat-sitemap__list {
  list-style: none;
  padding: 0;
  margin: 0 0 2.5em;
}

.cat-sitemap__list > li {
  border-bottom: 1px solid #eee;
  padding: 0.7em 0;
  font-size: 14px;
}

.cat-sitemap__list > li > h3 {
  text-align: left;
  font-family: var(--font-base);
  font-size: 14px;
}

.cat-sitemap__list > li > a,
.cat-sitemap__list > li > h3 > a {
  display: block;
  font-size: 14px;
  color: #333;
  text-decoration: none;
}

#fs_ProductDetails .cat-sitemap__list > li > a,
#fs_ProductCategory .cat-sitemap__list > li > a,
#fs_ProductDetails .cat-sitemap__child a,
#fs_ProductCategory .cat-sitemap__child a,
#fs_ProductDetails .cat-sitemap__list > li > h3 > a,
#fs_ProductCategory .cat-sitemap__list > li > h3 > a {
  color: #333 !important;
}

.cat-sitemap__list > li > a:hover,
.cat-sitemap__list > li > h3 > a:hover {
  color: #696969;
}

.cat-sitemap__child {
  list-style: none;
  padding: 0.5em 0 0 1.2em;
  margin: 0;
}

.cat-sitemap__child li {
  padding: 0.3em 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.5;
}

.cat-sitemap__child li::before {
  content: "\251C\2500\a0";
  color: #ccc;
}

.cat-sitemap__child li:last-child::before {
  content: "\2514\2500\a0";
}

.cat-sitemap__child a {
  color: #333 !important;
  text-decoration: none;
}

.cat-sitemap__child a:hover {
  text-decoration: underline;
}

/* スケジュール表（納期ページ用） */
.cat-schedule-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 2em 0;
}

.cat-schedule {
  width: 740px;
  text-align: center;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 11px;
  margin: 0 auto;
  background: url(https://www.joy-tas.com/img/common/bg_tbl01.png) repeat-y;
}

.cat-schedule.--col11 {
  background: url(https://www.joy-tas.com/img/common/bg_tbl02.png) repeat-y;
}

.cat-schedule.--col11 th,
.cat-schedule.--col11 td {
  width: 9.09091%;
}

.cat-schedule caption {
  padding: 5px;
  color: #fff;
  background: #666;
  font-size: 16px;
  font-weight: 600;
}

.cat-schedule th,
.cat-schedule td {
  width: 10%;
  padding: 5px;
  vertical-align: middle;
  border: none;
  border-bottom: 3px solid #fff;
  text-align: center;
}

.cat-schedule th {
  color: #fff;
  background: #a0a0a0;
  font-size: 16px;
  font-weight: bold;
}

.cat-schedule th:nth-child(2n) {
  background: #bfbfbf;
}

.cat-schedule th.sat {
  background: #61a8d9;
}

.cat-schedule th.sun {
  background: #ea849a;
}

.cat-schedule p {
  margin: 0;
  padding: 0;
  font-size: 12px;
  line-height: inherit;
}

.cat-schedule .order {
  margin-bottom: 5px;
  padding: 5px;
  border: 2px solid #999;
  border-radius: 4px;
  background: #fff;
  letter-spacing: 0;
}

.cat-schedule .confirm {
  margin-bottom: 5px;
  padding: 5px 2px;
  border: 2px solid #696969;
  border-radius: 4px;
  background: #696969;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0;
}

.cat-schedule .shipping {
  position: relative;
  margin-bottom: 5px;
  padding: 5px;
  border: 2px solid #e94738;
  border-radius: 4px;
  background: #fff79a;
  color: #e94738;
  font-size: 14px;
  font-weight: 600;
}

.cat-schedule .draft {
  margin-bottom: 5px;
  padding: 5px;
  border: 2px solid #e8a032;
  border-radius: 4px;
  background: #fff8ee;
  color: #c68a1e;
  font-weight: bold;
}

.cat-schedule .create {
  margin-bottom: 5px;
  padding: 5px;
  border: 2px solid #5ba85b;
  border-radius: 4px;
  background: #f0faf0;
  color: #3d7a3d;
  font-weight: bold;
}

.cat-schedule .shipping.is-arrow::before {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 32px;
  width: 0;
  height: 0;
  transform: translateX(-50%);
  border: 8px solid transparent;
  border-bottom: 8px solid #e94738;
}

.cat-schedule .arrow {
  position: relative;
  width: 100%;
  height: 6px;
  background: #666;
}

.cat-schedule .arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  width: 0;
  height: 0;
  margin-top: -6px;
  border: 6px solid transparent;
  border-left: 5px solid #666;
}

.cat-schedule .bdn th,
.cat-schedule .bdn td {
  border-bottom: none;
}

/* PC/SPカレンダー切替 */
.pc-cal {
  display: block;
}

.sp-cal {
  display: none;
}

/* リスト */
.cat-content__list {
  font-size: 14px;
  line-height: 1.8;
  list-style: disc;
  padding-left: 1.5em;
  margin: 0 0 2em;
}

.cat-content__list li {
  margin-bottom: 0.2em;
  padding-left: 0.3em;
}

/* テーブル */
.cat-content__table-wrap {
  overflow-x: auto;
  margin: 2em 0;
  -webkit-overflow-scrolling: touch;
}

/* 付属品・サンプルカード（2列グリッド、背景付き） */
.cat-card-grid {
  background: #f7f7f7;
  border-radius: 8px;
  padding: 1.5em 1.5em 0;
  margin: 2em 0;
}

.cat-card-grid__list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 1.5em;
}

.cat-card-grid__item {
  width: calc(50% - 0.75em);
  box-sizing: border-box;
  margin-bottom: 1.5em;
}

.cat-card-grid.--width167 {
  --card-gap: 20px;
  --card-max-width: 167px;
}

/* 3列グリッド */
.cat-card-grid.--col3 .cat-card-grid__item {
  width: calc(33.333% - 1em);
}

/* 4列グリッド */
.cat-card-grid.--col4 .cat-card-grid__item {
  width: calc(25% - 1.125em);
}

/* SP時1カラムモディファイア */
@media (max-width: 900px) {
  .cat-card-grid.--sp-col1 .cat-card-grid__item {
    width: 100%;
  }
}

/* gap半分モディファイア（certificate用） */
.cat-card-grid.--gap-small .cat-card-grid__list {
  gap: 0.75em;
}

.cat-card-grid__image {
  margin-bottom: 0.5em;
}

.cat-card-grid__image img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
  margin: 0 auto;
}

.cat-card-grid__title {
  font-size: 15px;
  text-align: left;
  margin: 0.5em 0 0.2em;
}

.cat-card-grid.--text-center .cat-card-grid__title,
.cat-card-grid.--text-center .cat-card-grid__desc {
  text-align: center;
}

.cat-card-grid__tag {
  font-size: 13px;
  color: #e94738;
  line-height: 1.5;
  text-align: center;
  margin: 0.3em 0 0.5em;
}

.cat-card-grid__desc {
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
  margin: 0.5em 0 0;
}

/* セール価格表示 */
.cat-card-grid__price {
  text-align: right;
  margin: 0.5em 0 0;
}

.cat-card-grid__price-original {
  font-size: 14px;
  color: #666;
  margin: 0 0 0.3em;
}

.cat-card-grid__price-sale {
  font-size: 14px;
  font-weight: bold;
  color: #e94738;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4em;
}

.cat-card-grid__price-badge {
  display: inline-block;
  background: #e94738;
  color: #fff;
  font-size: 13px;
  font-weight: bold;
  padding: 0.3em 0.6em;
  border-radius: 3px;
  flex-shrink: 0;
}

/* 2列画像（価格帯・デザインバリエーション） */
.cat-content__image-pair {
  display: flex;
  gap: 4%;
  margin: 1.5em 0;
}

.cat-content__image-pair > * {
  flex: 1;
}

.cat-content__image-pair img {
  width: 100%;
  height: auto;
  display: block;
}

/* 画像リンクグリッド（関連商品等） */
.cat-content__image-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* 中央配置 */
  gap: 40px;
  margin-top: 24px;
}

.cat-content__image-links-row {
  display: flex;
  justify-content: center;
  /* 中央配置 */
  gap: 60px;
}

.cat-content__image-links-row > a {
  flex: 1;
  display: block;
  max-width: 370px;
  /* 画像340px + gap余裕分 */
  transition: opacity 0.2s;
}

.cat-content__image-links-row > a:hover {
  opacity: 0.8;
}

.cat-content__image-links > a {
  display: block;
  max-width: 740px;
  /* 画像740pxを超えない */
  transition: opacity 0.2s;
}

.cat-content__image-links > a:hover {
  opacity: 0.8;
}

.cat-content__image-links img {
  max-width: 100%;
  /* 親要素より大きくならない */
  height: auto;
  display: block;
}

@media (max-width: 900px) {
  .cat-content__image-links-row {
    flex-direction: column;
    gap: 40px;
  }
}

/* 画像+テキスト横並び（コンテンツ説明用） */
.cat-content__media {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  margin: 1.5em 0;
}

.cat-content__media-image {
  flex-shrink: 0;
  max-width: 42%;
}

.cat-content__media-image img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

.cat-content__media-body {
  flex: 1;
  font-size: 14px;
  line-height: 2;
  min-width: 0;
}

.cat-content__media-body span {
  color: #e94738;
  font-weight: bold;
}

.cat-content__media-body .cat-content__table-wrap {
  margin: 1em 0 0;
}

/* 反転（テキスト左・画像右） */
.cat-content__media.--reverse {
  flex-direction: row-reverse;
}

/* 画像+テーブル横並び（dl内で使用） */
.cat-content__media-row {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  margin: 1em 0;
}

.cat-content__media-row .cat-img--left {
  flex-shrink: 0;
  max-width: 233px;
}

.cat-content__media-row .cat-img--left img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

.cat-content__media-row .cat-content__table-wrap {
  flex: 1;
  min-width: 0;
  margin: 0;
}

/* メリット・デメリット比較 */
.cat-merit-demerit {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 1.5em 0;
}

.cat-merit-demerit__item {
  padding: 1.5em;
  border: 1px solid #e0e0e0;
  border-radius: 0;
}

.cat-merit-demerit__item h3,
.cat-merit-demerit__item h4,
.c-inner .cat-merit-demerit__item h3,
.c-inner .cat-merit-demerit__item h4 {
  font-size: 16px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: left;
  margin: 0 0 1em;
  padding: 0 0 0.5em;
  border-bottom: 1px solid #ccc;
}

.cat-merit-demerit__item p {
  font-size: 14px;
  line-height: 2;
  text-align: left;
}

/* ボタンリスト（横並び） */
.cat-content__btn-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  /* 中央配置 */
  gap: 10px;
  list-style: none;
  margin: 40px auto 20px;
  padding: 0;
}

.cat-content__btn-list li {
  flex: 0 1 340px;
  /* 幅を固定（最大340px、縮小可能） */
  max-width: 340px;
}

.cat-content__btn-list .btn-bordered {
  width: 100%;
  box-sizing: border-box;
  text-align: center;
}

/* 特徴リスト（2列グリッド・パーツ紹介等） */
.cat-content__feature-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 30px;
  list-style: none;
  margin: 2em 0;
  padding: 0;
}

.cat-content__feature-list > li {
  padding: 1.5em 0;
  border-top: 1px solid #e0e0e0;
}

.cat-content__feature-list > li:nth-child(1),
.cat-content__feature-list > li:nth-child(2) {
  border-top: none;
  padding-top: 0;
}

.cat-content__feature-list h3 {
  font-size: 16px;
  font-family: var(--font-base);
  text-align: left;
  margin: 0 0 0.8em;
}

.cat-content__feature-list p {
  font-size: 14px;
  line-height: 1.8;
  margin: 0;
}

/* お問い合わせボックス */
.cat-contact {
  background: #f5f5f5;
  border-radius: 8px;
  padding: 3em;
  text-align: center;
  margin: 2em 0;
  font-family: var(--font-base);
}

.cat-contact__title,
.c-inner .cat-contact__title {
  font-size: 24px;
  font-family: var(--font-base);
  font-weight: bold;
  margin: 0 0 1em;
}

.cat-contact__desc {
  font-size: 14px;
  line-height: 1.8;
  max-width: 80%;
  margin: 0 auto 1.5em;
}

.cat-contact__tel {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.3em;
  margin: 0 0 1.5em;
}

.cat-contact__tel-number {
  font-size: 32px;
  font-weight: bold;
  font-family: var(--font-base);
}

.cat-contact__tel-hours {
  font-size: 14px;
}

.cat-contact__buttons {
  display: flex;
  justify-content: center;
  gap: 1em;
  flex-wrap: wrap;
}

.cat-contact__btn,
.cat-contact__btn:link,
.cat-contact__btn:visited {
  display: inline-block;
  width: 50%;
  max-width: 360px;
  background: #696969;
  border: 1px solid #696969;
  color: #fff !important;
  text-align: center;
  text-decoration: none;
  padding: 1em;
  border-radius: 0.5em;
  line-height: 1.5;
  transition: 0.3s;
}

.cat-contact__btn:hover {
  background: #fff;
  color: #696969 !important;
}

/* 横並び説明カード（テキスト右・画像左、罫線区切り） */
.cat-content__detail-list {
  margin: 2em 0;
}

.cat-content__detail-item {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  padding: 30px 0;
  border-top: 1px solid #ccc;
}

.cat-content__detail-item:first-child {
  border-top: none;
  padding-top: 0;
}

.cat-content__detail-item-image {
  flex-shrink: 0;
}

.cat-content__detail-item-image img {
  max-width: 100%;
  height: auto;
  display: block;
}

.cat-content__detail-item-body {
  flex: 1;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.cat-content__detail-item-body p span {
  color: #e94738;
}

.cat-content__detail-item-body h3,
.c-inner .cat-content__detail-item-body h3 {
  font-size: 18px;
  font-family: var(--font-base);
  text-align: left;
  margin: 0 0 15px;
}

/* シーン一覧グリッド（4列→SP2列） */
.cat-scene-grid {
  margin: 2em 0;
}

.cat-scene-grid__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 60px 30px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cat-scene-grid__link {
  display: block;
  text-decoration: none;
  color: inherit;
  text-align: center;
}

.cat-scene-grid__image {
  margin-bottom: 4px;
}

.cat-scene-grid__image img {
  width: 100%;
  max-width: 200px;
  height: auto;
  display: block;
  margin: 0 auto;
}

.cat-scene-grid__title,
.c-inner .cat-scene-grid__title {
  font-family: var(--font-base);
  font-size: 13px;
  font-weight: bold;
  text-align: center;
  background: #f1f1f1;
  margin: 0 0 4px;
  padding: 4px 0;
}

.cat-scene-grid__desc {
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin: 10px auto 0 !important;
}

/* 中央画像+4象限テキスト（メダル彫刻解説） */
.cat-content__quad {
  position: relative;
  width: 740px;
  height: 680px;
  margin: 2em auto 60px;
  font-size: 13px;
  line-height: 1.7;
}

.cat-content__quad-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 740px;
  height: 680px;
  z-index: 0;
  pointer-events: none;
}

.cat-content__quad-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cat-content__quad-item {
  position: absolute;
  z-index: 1;
}

.cat-content__quad-item:nth-child(1) {
  top: 10px;
  left: 10px;
  width: 330px;
}

.cat-content__quad-item:nth-child(3) {
  top: 10px;
  left: 450px;
  width: 280px;
}

.cat-content__quad-item:nth-child(4) {
  top: 475px;
  left: 10px;
  width: 400px;
}

.cat-content__quad-item:nth-child(5) {
  top: 475px;
  left: 440px;
  width: 300px;
}

.cat-content__quad-item dt,
.c-inner .cat-content__quad-item dt {
  font-size: 112%;
  font-weight: bold;
  font-family: var(--font-base);
  margin: 0 0 0.3em;
  text-align: center;
  background: #696969;
  color: #fff;
  width: max-content;
  margin: 0 auto 10px;
  padding: 0 10px;
}

.cat-content__quad-item dd {
  margin: 0;
}

/* ========================================
   カテゴリーh1
   ======================================== */
.c-inner h1.cat-h1 {
  font-family: var(--font-base);
  text-align: right;
  font-size: 14px;
  color: #696969;
  margin: 0px 0 10px;
  font-weight: normal;
}

/* ========================================
   カテゴリーヒーロー
   ======================================== */
.cat-hero {
  background-image: url(../img/cat-hero__bg.png);
  background-size: cover;
  background-position: center;
  margin-top: 0;
}

.cat-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 0 40px;
  align-items: end;
  padding: 45px 0 20px 58px;
}

.cat-hero__text {
  grid-column: 1;
  grid-row: 1;
}

.cat-hero__en {
  font-family: var(--font-heading);
  font-size: 18px;
  color: #bababa;
}

.section.cat-hero .cat-hero__heading {
  font-family: var(--font-base);
  font-size: 28px;
  margin: 4px 0 0;
  text-align: left;
}

.cat-hero__image {
  grid-column: 2;
  grid-row: 1 / 3;
}

.cat-hero__desc {
  grid-column: 1;
  grid-row: 2;
  font-size: 14px;
  margin: 25px 0 0;
}

/* 画像なしの場合、descが全幅に広がる */
.cat-hero__inner:not(:has(.cat-hero__image)) .cat-hero__desc {
  grid-column: 1 / -1;
}

/* ========================================
   カテゴリー紹介
   ======================================== */
.cat-intro__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}

.cat-intro__en {
  font-family: var(--font-heading);
  font-size: 16px;
  color: #bababa;
}

.cat-intro__name,
.c-inner .cat-intro__name {
  font-size: 28px;
  margin: 0;
  font-family: var(--font-base);
}

.cat-intro__body {
  display: flex;
  flex-direction: column;
  gap: 17px;
  margin: 40px auto 0;
  max-width: 900px;
}

.cat-intro__heading,
.c-inner .cat-intro__heading {
  font-size: 16px;
  padding-bottom: 11px;
  font-family: var(--font-base);
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="1"><rect width="40" height="1" fill="%23b5b5b5"/></svg>') no-repeat center bottom;
}

.cat-intro__desc {
  font-size: 14px;
}

.cat-intro__desc span {
  color: #e94738;
}

/* ==========================================================
   マイページ
   ========================================================== */

.fs-p-accountInfo__header {
  margin-bottom: 10px;
}

.fs-c-accountService__page:not(.fs-c-accountService__page--accountDelete) .fs-c-accountService__pageLink {
  box-shadow: none;
  border-radius: 0;
}

.fs-c-button--primary {
  background: #696969;
  border-radius: 0;
}

.fs-body-my-wishlist .fs-c-aggregateRating__rating::before {
  display: none;
}

.fs-body-my-wishlist .fs-c-rating__stars.fs-c-reviewStars {
  font-size: 14px;
}

/* ========================================
   AIレコメンド
   ======================================== */
.cat-recommend__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 41px;
  margin-top: 40px;
}

/* バッジ共通 */
.cat-recommend__badge {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-family: var(--font-accent);
  font-size: 26px;
  color: #fff;
  flex-shrink: 0;
  background-color: #8d8d8d;
  text-indent: 2px;
}

.cat-recommend__badge--1st {
  background-color: #d7bb79;
}

/* 1位（メイン） */
.cat-recommend__main {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 70px;
  text-decoration: none;
  align-items: center;
  color: var(--color-text);
}

.cat-recommend__main-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.cat-recommend__main-info {
  display: flex;
  flex-direction: column;
  gap: 37px;
  flex: 1;
}

.cat-recommend__main-detail {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cat-recommend__main-label {
  display: inline-block;
  align-self: flex-start;
  font-size: 14px;
  padding: 0 4px 5px;
  border-bottom: 1px solid var(--color-border);
}

.cat-recommend__main-name {
  font-size: 27px;
}

.cat-recommend__main-price {
  margin-top: -13px;
}

.cat-recommend__main-price-num {
  font-family: var(--font-heading);
  font-size: 23px;
}

.cat-recommend__main-price-wave {
  font-family: var(--font-heading);
  font-size: 20px;
}

.cat-recommend__main-price-tax {
  font-size: 14px;
}

/* 2?5位 */
.cat-recommend__sub {
  display: flex;
  justify-content: space-evenly;
  gap: 20px;
  width: 100%;
  counter-reset: recommend 1;
}

.cat-recommend__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 21px;
  flex: 1;
  min-width: 0;
  text-decoration: none;
  color: var(--color-text);
  counter-increment: recommend;
  max-width: 170px;
}

.cat-recommend__item::before,
.cat-recommend__main-info::before {
  content: counter(recommend);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-family: var(--font-accent);
  font-size: 26px;
  line-height: 1;
  color: #fff;
  background-color: #8d8d8d;
  text-indent: 2px;
  flex-shrink: 0;
}

.cat-recommend__main-info::before {
  counter-set: recommend 1;
  content: counter(recommend);
  /* → 1 */
  background-color: #d7bb79;
}

.cat-recommend__item:nth-child(1)::before {
  background-color: #bdbdbd;
}

.cat-recommend__item:nth-child(2)::before {
  background-color: #cf9758;
}

.cat-recommend__item-image img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.cat-recommend__item-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: 100%;
}

.cat-recommend__item-name {
  font-size: 15px;
}

.cat-recommend__item-price {
  text-align: right;
}

.cat-recommend__item-price-num {
  font-family: var(--font-heading);
  font-size: 14px;
}

.cat-recommend__item-price-tax {
  font-size: 12px;
}

/* ========================================
   閲覧履歴（チェック履歴・関連商品）
   ======================================== */
.cat-history__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 40px;
  margin: auto;
}

@media (max-width: 600px) {
  .cat-history__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 40px;
  }
}

.cat-history__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--color-text);
}

.cat-history__image img {
  width: 100%;
  height: auto;
}

.cat-history__info {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 3px;
}

/* ========================================
   商品リスト（チェック履歴・関連商品）
   ======================================== */
.cat-products__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px;
  max-width: 830px;
  margin: auto;
}

.cat-products__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--color-text);
}

.cat-products__image img {
  width: 150px;
  height: 150px;
  object-fit: cover;
}

.cat-products__info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: 150px;
}

.cat-products__name {
  font-size: 16px;
  line-height: 1.5;
  text-align: left;
}

.cat-products__price {
  font-size: 14px;
  text-align: right;
}

/* ========================================
   即日配送
   ======================================== */
.cat-sameday__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 45px;
}

/* POINTリスト */
.cat-sameday__points {
  display: flex;
  flex-direction: column;
  gap: 30px 16px;
  width: 100%;
  max-width: 830px;
  margin: auto;
}

.cat-sameday__point {
  display: grid;
  grid-template-columns: 100px 260px 1fr;
  align-items: center;
  gap: 39px;
  min-height: 170px;
}

.cat-sameday__point-number {
  background: #bccae7;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 40px;
  font-weight: 500;
  height: 100%;
}

.cat-sameday__point-label {
  display: block;
  font-size: 16px;
}

.cat-sameday__point-image {
  display: flex;
  align-items: center;
  justify-content: center;
}

.cat-sameday__point.--01 .cat-sameday__point-image img {
  max-width: 91px;
}

.cat-sameday__point-body {
  flex: 1;
}

.cat-sameday__point-heading,
.c-inner .cat-sameday__point-heading {
  font-size: 18px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  font-family: var(--font-base);
}

.cat-sameday__point-list {
  list-style: none;
  padding-left: 1.5em;
  margin: 13px 0 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.cat-sameday__point-list li {
  font-size: 14px;
  list-style: disc;
}

.cat-sameday__point-red {
  color: #e94738;
}

.cat-sameday__notes {
  margin-top: 10px;
  padding-left: 11px;
  font-size: 12px;
  color: #676767;
}

.cat-sameday__notes p {
  margin: 0;
}

/* 配送マップ */
.cat-sameday__map {
  width: 100%;
}

.cat-sameday__map-legend {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.cat-sameday__map-legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}

.cat-sameday__map-legend-color {
  display: block;
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

.cat-sameday__map-legend-color--next {
  background: #7c7979;
}

.cat-sameday__map-legend-color--after {
  background: #bebebe;
}

.cat-sameday__map-image {
  margin-top: 18px;
}

.cat-sameday__map-image img {
  width: 100%;
  height: auto;
}

.cat-sameday__map-notes {
  margin-top: 18px;
  font-size: 10px;
  color: #676767;
}

.cat-sameday__map-notes p {
  margin: 0;
}

/* ========================================
   メダルサイズ比較
   ======================================== */
.cat-size__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 240px));
  grid-template-rows: repeat(6, auto);
  gap: 0 20px;
  justify-content: space-around;
}

.cat-size__item {
  display: grid;
  grid-row: span 6;
  grid-template-rows: subgrid;
  justify-items: center;
  text-align: center;
}

.cat-size__label {
  background-color: var(--color-bg-gray);
  padding: 6px 20px;
  width: 100%;
}

.cat-size__label-name {
  font-size: 18px;
  font-weight: 500;
}

.cat-size__label-spec {
  font-size: 13px;
}

.cat-size__image {
  margin-top: 19px;
  display: flex;
  align-items: end;
  justify-content: center;
}

.cat-size__name {
  font-size: 16px;
  padding-bottom: 3px;
  border-bottom: 1px solid #b5b5b5;
  width: 200px;
  margin-top: 9px;
}

.cat-size__desc {
  margin-top: 9px;
}

.cat-size__price {
  margin-top: 3px;
  margin: 3px auto 10px;
}

.cat-size__btn,
.cat-size__btn:hover,
.cat-size__btn:visited {
  padding: 10px 25px 10px 20px;
  text-align: center;
  justify-content: center;
  align-self: end;
}

/* ========================================
   カテゴリから探す
   ======================================== */
.cat-category__lead {
  font-size: 14px;
  text-align: center;
  margin-top: 21px;
}

.cat-category__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(max(150px, calc((100% - 90px) / 4)), 1fr));
  gap: 20px 30px;
  max-width: 830px;
  margin: 30px auto 0;
}

.cat-category__list.--col3 {
  grid-template-columns: repeat(auto-fill, minmax(max(150px, calc((100% - 60px) / 3)), 1fr));
}

.cat-category__item {
  display: flex;
  align-items: center;
  padding: 15px 25px 15px 5px;
  border-bottom: 1px solid var(--color-border);
  font-size: 14px;
  background: url(../img/icon_arrow.svg) no-repeat right 8px center;
  width: 100%;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

/* ========================================
   ランキング（よく選ばれています）
   ======================================== */
.cat-ranking__list {
  display: flex;
  gap: 66px;
  justify-content: center;
}

.cat-ranking__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 190px;
  text-decoration: none;
  color: var(--color-text);
}

.cat-ranking__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-family: var(--font-accent);
  font-size: 28px;
  color: #fff;
}

.cat-ranking__badge--1st {
  background: linear-gradient(135deg, #d4a84b, #c49a3c);
}

.cat-ranking__badge--2nd {
  background: linear-gradient(135deg, #b0b0b0, #969696);
}

.cat-ranking__badge--3rd {
  background: linear-gradient(135deg, #c07840, #a06030);
}

.cat-ranking__badge--4th {
  background: linear-gradient(135deg, #888, #707070);
}

.cat-ranking__product {
  margin-top: 26px;
}

.cat-ranking__info {
  margin-top: 15px;
}

.cat-ranking__name {
  font-size: 15px;
}

.cat-ranking__price {
  font-size: 13px;
  text-align: right;
  margin-top: 3px;
}

/* ========================================
   相談セクション
   ======================================== */
.cat-consult__desc {
  font-size: 14px;
  margin-top: 24px;
}

.cat-consult__visual {
  position: relative;
  margin-top: 26px;

  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 40px;
  background: linear-gradient(360deg, #c5d1e6 36.25%, rgba(205, 217, 238, 0.03) 60.5%);
}

.cat-consult__visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url(../img/cat-consult__bg.jpg) no-repeat center / contain;
  background-size: 60%;
  background-position: top right;
}

.cat-consult__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(to right, #f4f5f7 50%, transparent 80%);
}

.cat-consult__message {
  margin: 0 auto 20px 20px;
}

.cat-consult__message-title {
  font-size: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(193, 193, 193, 0.8);
  width: 380px;
}

.cat-consult__checklist {
  margin-top: 15px;
}

.cat-consult__checklist-label {
  font-size: 15px;
}

.cat-consult__checklist-list {
  list-style: none;
  padding: 0;
  margin: 6px 0 0 2px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.cat-consult__checklist-list li {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 14px;
}

.cat-consult__checklist-list li::before {
  content: "";
  display: block;
  width: 19px;
  height: 17px;
  flex-shrink: 0;
  background: url(../img/icon_checkbox.svg) no-repeat center / contain;
}

/* ========================================
   大口注文バナー
   ======================================== */

.cat-bulk__inner {
  position: relative;
  max-width: 670px;
  margin: auto;
}

.cat-bulk__bg-img {
  position: absolute;
  right: 0;
  width: 50%;
  height: 100%;
  object-fit: cover;
}

.cat-bulk__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(92deg, #f4f5f7 34%, rgba(244, 245, 247, 0) 83%);
}

.cat-bulk__content {
  position: relative;
  display: flex;
  gap: 20px;
  padding: 40px 40px 30px 40px;
  align-items: flex-end;
  justify-content: space-between;
}

.cat-bulk__left {
  flex: 1;
  max-width: 335px;
}

.cat-bulk__title {
  font-size: 21px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(193, 193, 193, 0.8);
  margin-bottom: 10px;
}

.cat-bulk__desc {
  font-size: 14px;
}

.cat-bulk__btn {
  margin-top: 20px;
}

.cat-bulk__badge {
  right: 39px;
  bottom: 12px;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background-color: #5d5d5d;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 18px;
  font-weight: 500;
  box-shadow: 0 0 26px rgba(0, 0, 0, 0.03);
}

.cat-bulk__badge-small {
  font-size: 15px;
}

/* ========================================
   お役立ちコンテンツ
   ======================================== */
.cat-column__slider {
  position: relative;
  margin-top: 30px;
  padding: 0 36px;
}

.cat-column__swiper {
  overflow: hidden;
}

.cat-column__swiper .swiper-slide {
  width: 220px;
}

.cat-column__item {
  display: block;
  text-decoration: none;
  color: var(--color-text);
}

.cat-column__thumb {
  border: 1px solid #c1c1c1;
  /* aspect-ratio: 4 / 3; */
  /* aspect-ratio: 283 / 176; */
  aspect-ratio: 253 / 176;
  /* または 16 / 10 */
  object-fit: contain;
  padding: 10px;
}

.cat-column__title {
  font-size: 14px;
  letter-spacing: 0.7px;
  line-height: 1.65;
  margin-top: 13px;
}

.cat-column__nav {
  position: absolute;
  top: 83px;
  z-index: 2;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  background-repeat: no-repeat;
  background-size: 16px;
  background-position: center;
}

.cat-column__nav--prev {
  left: 0;
  background-image: url(../img/icon_arrow_left.svg);
}

.cat-column__nav--next {
  right: 0;
  background-image: url(../img/icon_arrow.svg);
}

.cat-column__nav.swiper-button-disabled {
  opacity: 0.3;
  cursor: default;
}

.cat-column__swiper.is-locked .swiper-wrapper {
  justify-content: center;
}

.cat-column__swiper.is-locked .swiper-slide:last-of-type {
  margin-right: 0 !important;
}

.cat-column__swiper.is-locked ~ .cat-column__nav {
  display: none;
}

/* ========================================
   よくある質問（FAQ）
   ======================================== */
.cat-faq__list {
  max-width: 830px;
  margin: auto;
}

.cat-faq__question {
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
  padding: 18px 15px;
  border: none;
  border-bottom: 1px solid var(--color-border);
  background: none;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
}

.cat-faq__q-label {
  font-family: var(--font-heading);
  font-size: 25px;
  color: var(--color-text-muted);
  flex-shrink: 0;
}

.cat-faq__q-text {
  font-size: 16px;
  flex: 1;
}

.cat-faq__icon {
  position: relative;
  width: 21px;
  height: 21px;
  flex-shrink: 0;
  margin-left: auto;
}

.cat-faq__icon::before,
.cat-faq__icon::after {
  content: "";
  position: absolute;
  background-color: #999;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease;
}

.cat-faq__icon::before {
  width: 21px;
  height: 1px;
}

.cat-faq__icon::after {
  width: 1px;
  height: 21px;
}

.cat-faq__question[aria-expanded="true"] .cat-faq__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.cat-faq__answer-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}

.cat-faq__answer-wrap.is-open {
  grid-template-rows: 1fr;
}

.cat-faq__answer {
  overflow: hidden;
  display: flex;
  gap: 20px;
  padding: 0 15px;
  transition: padding 0.3s ease;
}

.cat-faq__answer-wrap.is-open .cat-faq__answer {
  padding: 14px 15px 22px;
}

.cat-faq__a-label {
  font-family: var(--font-heading);
  font-size: 25px;
  color: var(--color-text-muted);
  flex-shrink: 0;
}

.cat-faq__a-text {
  font-size: 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* cat-faq__a-text内の要素間余白（lobotomized owl） */
.cat-faq__a-text > * + * {
  margin-top: 1.5em;
}

/* FAQ内段落の余白 */
.cat-faq__a-text p {
  margin: 0 0 1em 0;
  line-height: 1.8;
}

.cat-faq__a-text p:last-child {
  margin-bottom: 0;
}

.cat-faq__a-text a[href^="tel:"] {
  color: #e94738;
}

/* FAQ内テーブル */
.cat-faq__a-text table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  line-height: 1.5;
  font-size: 14px;
  margin: 1em 0;
}

.cat-faq__a-text table th {
  background: #f5f5f5;
  padding: 0.8em 1em;
  font-weight: normal;
  vertical-align: top;
  border: 1px solid #e0e0e0;
  white-space: nowrap;
}

.cat-faq__a-text table td {
  padding: 0.8em 1em;
  vertical-align: top;
  border: 1px solid #e0e0e0;
}

/* FAQ内テーブル レスポンシブ */
@media (max-width: 900px) {
  .cat-faq__a-text table {
    font-size: 13px;
  }

  .cat-faq__a-text table th,
  .cat-faq__a-text table td {
    padding: 0.6em 0.8em;
  }
}

/* ========================================
   商品一覧
   ======================================== */

#fs_ProductCategory .fs-c-productList {
  display: block;
  margin: 100px 0 0;
}

/* 商品一覧非表示ページ */
/* .fs-body-category-close .fs-c-productList,
.fs-body-category-order-tel .fs-c-productList,
.fs-body-category-corp-memorial .fs-c-productList,
.fs-body-category-guide .fs-c-productList,
.fs-body-category-emblem .fs-c-productList,
.fs-body-category-trophy .fs-c-productList,
.fs-body-category-cup .fs-c-productList,
.fs-body-category-plaque .fs-c-productList,
.fs-body-category-order .fs-c-productList,
.fs-body-category-flag .fs-c-productList,
.fs-body-category-character .fs-c-productList,
.fs-body-category-memorial .fs-c-productList,
.fs-body-category-ceremony .fs-c-productList,
.fs-body-category-sculpture .fs-c-productList,
.fs-body-category-order-flow .fs-c-productList {
  display: none !important;
} */

.fs-c-productList__controller:first-of-type .fs-c-pagination {
  display: none;
}

.fs-c-sortItems__list__item.is-active {
  background-color: #333333;
}

.fs-c-sortItems__label {
  border: 1px solid #b5b5b5;
}

.fs-c-pagination__item.is-active {
  background-color: #696969;
}

.fs-c-productListItem__productName,
.c-inner .fs-c-productListItem__productName {
  margin: 10px 0;
  font-size: 16px;
  font-family: var(--font-base);
  text-align: left;
}

.fs-c-productName__name {
  font-weight: 500;
}

.productList-price {
  text-align: right;
}

.productList-price__regular {
  font-size: 12px;
}

.productList-price__regular.--red {
  color: #e94738;
}

.productList-price__price-box {
  margin-left: 6px;
  font-size: 1.1em;
}

.productList-price__price-box::before,
.productList-price__number::before {
  content: "\00A5";
  /* U+00A5 YEN SIGN: CSS経由で注入しCSVエスケープの影響を受けない */
}

.productList-price__number {
  margin-left: 6px;
  font-size: 1.1em;
}

.productList-price__price-box span {
  font-family: var(--font-heading);
}

.productList-price__sale {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.productList-price__sale--tag {
  background-color: #e94738;
  padding: 2px 6px;
  color: #fff;
  font-weight: 500;
  font-size: 12px;
}

.productList-price__sale .productList-price__price-box {
  color: #e94738;
  font-weight: 500;
  font-size: 14px;
  margin-left: 15px;
}

.productList-price__sale .productList-price__number,
.productList-price__red,
.productList-price__sale--regular {
  color: #e94738;
}

.productList-price__sale--regular {
  font-size: 12px;
}

.productList-price__comment {
  font-size: 12px;
  color: #6a6a6a;
  margin-top: 10px;
  text-align: left;
}

.fs-c-productList__list__item .fs-c-productListItem__control {
  display: block;
}

.fs-c-productList__list__item .fs-c-button--particular {
  color: #888182;
}

.fs-c-productList__list__item .productRating {
  display: flex;
}

.fs-c-productList__list__item .fs-c-rating {
  display: flex;
  align-items: center;
}

.productList-under {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.fs-c-productList__list__item .fs-c-reviewStars::before {
  color: #333333;
}

.fs-c-productList__list__item .fs-c-rating__value {
  color: #333333;
}

.fs-c-productList__list__item .productRating.ratingcount-0 {
  opacity: 0;
  pointer-events: none;
}

.fs-c-sortItems__list {
  margin-left: 10px;
}

.productList-under .fs-c-reviewStars::before,
.fs-c-productList__list__item .fs-c-rating__value,
.productList-under div {
  font-size: 12px;
}

.fs-c-productList__list {
  list-style-type: none;
  display: grid;
  grid-template-columns: repeat(auto-fill, 180px);
  gap: clamp(12px, 5vw, 60px);
  justify-content: center;
  margin: 0;
}

.fs-c-productList__list > * {
  margin: 0;
  width: 100%;
}

.fs-c-productList__list__item {
  padding: 0;
}

.option-note {
  color: #e94738;
  font-size: 12px;
  margin-top: 6px;
}

@media (max-width: 900px) {
  .fs-c-productList__list {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    padding: 0 10px;
    gap: 20px;
  }

  article.fs-c-productList__list__item.fs-c-productListItem {
    margin: 0;
  }
}

/* ========================================
   データ入稿
   ======================================== */

.data-submit__inner {
  max-width: 825px;
  margin: 0 auto;
  background: #fff url(../img/data-submit_bg.png) center / cover no-repeat;
  padding: 60px 66px 55px;
  text-align: center;
}

.data-submit__caution {
  font-size: 13px;
  font-weight: 500;
  color: #e94738;
  line-height: 1.7;
  margin-top: 20px;
}

.data-submit__download {
  margin-top: 15px;
  text-align: left;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}

.data-submit__dl-btn,
.data-submit__dl-btn:hover,
.data-submit__dl-btn:active {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  max-width: 500px;
  width: 100%;
  height: 63px;
  background-color: #5d5d5d;
  border: 1px solid #5d5d5d;
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  position: relative;
  background-image: url(../img/icon_arrow_white.svg);
  background-position-x: right 10px;
  background-position-y: center;
  background-repeat: no-repeat;
}

.data-submit__dl-btn span {
  color: #fff !important;
}

.data-submit__dl-icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}

.data-submit__dl-note {
  font-size: 12px;
  line-height: 1.45;
  margin-top: 11px;
}

.data-submit__links {
  margin-top: 38px;
}

.data-submit__links-heading,
h3.data-submit__links-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: 16px;
  font-weight: 500;
  font-family: var(--font-base);
}

.data-submit__links-line {
  display: block;
  width: 30px;
  height: 1px;
  background-color: #b5b5b5;
}

.data-submit__links-grid {
  margin-top: 25px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  justify-items: center;
}

.data-submit__link-card,
.data-submit__link-card:hover,
.data-submit__link-card:visited {
  padding: 13px 25px 12px 20px;
  min-height: 75px;
}

/* ========================================
   レスポンシブ（max-width: 900px）
   ======================================== */
@media (max-width: 900px) {
  #fs_ProductCategory .fs-l-main {
    margin-top: 30px;
  }

  /* --- カテゴリーヒーロー --- */
  .cat-hero {
    background-size: 100% auto;
    background-position: top;
  }

  .cat-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 47px 0 0;
    gap: 20px;
  }

  .cat-hero__text {
    width: 100%;
    text-align: center;
  }

  .cat-hero__en {
    font-size: 18px;
  }

  .section.cat-hero .cat-hero__heading {
    font-size: 24px;
    margin: 4px 0 0;
    text-align: center;
  }

  .cat-hero__image {
    width: 100%;
  }

  .cat-hero__image img {
    margin: auto;
  }

  .cat-hero__desc {
    width: 100%;
    font-size: 14px;
    margin: 0;
  }

  /* --- カテゴリー紹介 --- */
  .cat-intro {
    margin-top: 40px;
  }

  .cat-intro__name,
  .c-inner .cat-intro__name {
    font-size: 24px;
  }

  .cat-intro__body {
    gap: 15px;
    margin-top: 40px;
  }

  .cat-intro__desc {
    font-size: 14px;
  }

  /* --- 共通見出し --- */
  .cat-heading-lined,
  .c-inner .cat-heading-lined {
    font-size: 18px;
    padding-bottom: 14px;
    background-size: 46px 1px;
  }

  .cat-heading-decorated__title,
  .c-inner .cat-heading-decorated__title {
    font-size: 18px;
  }

  .cat-heading-decorated__sub {
    font-size: 14px;
    margin-top: 7px;
  }

  .cat-heading-decorated__line {
    width: 16px;
  }

  /* --- 付属品カードグリッド --- */
  .cat-card-grid {
    padding: 1em 1em 0;
  }

  .cat-card-grid__list {
    gap: 1em;
  }

  .cat-card-grid__item,
  .cat-card-grid.--col3 .cat-card-grid__item,
  .cat-card-grid.--col4 .cat-card-grid__item {
    width: calc(50% - 0.5em);
  }

  .cat-card-grid__image {
    text-align: center;
  }

  /* --- 画像+テキスト横並び --- */
  .cat-content__media,
  .cat-content__media.--reverse {
    flex-direction: column;
    gap: 15px;
  }

  /* --- 画像+テーブル横並び（dl内） --- */
  .cat-content__media-row {
    flex-direction: column;
    gap: 15px;
  }

  .cat-content__media-row .cat-img--left {
    max-width: 100%;
    text-align: center;
  }

  /* --- メリット・デメリット比較 --- */
  .cat-merit-demerit {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  /* --- シーン一覧グリッド --- */
  .cat-scene-grid__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px 20px;
  }

  .cat-scene-grid__title,
  .c-inner .cat-scene-grid__title {
    font-size: 14px;
    padding: 2px 0;
  }

  /* --- 中央画像+4象限テキスト --- */
  .cat-content__quad {
    position: static;
    width: auto;
    height: auto;
    display: none;
  }

  .cat-content__quad-image {
    display: none;
  }

  .cat-content__quad-item {
    position: static;
    width: auto !important;
    margin-bottom: 2em;
  }

  /* --- 商品比較カード --- */
  .cat-compare-grid {
    grid-template-columns: 1fr;
  }

  /* SPでも2列維持したい時用モディファイア */
  .cat-compare-grid.--sp-col2 {
    grid-template-columns: repeat(2, 1fr);
    gap: 1em;
  }

  /* --table-style: SPも2列＋罫線レイアウト */
  .cat-compare-grid.--table-style {
    grid-template-columns: repeat(2, 1fr);
  }

  .cat-compare-grid.--table-style .cat-compare-grid__item {
    padding: 16px;
  }

  /* --- タイムライン --- */
  .cat-timeline__step {
    width: 48px;
  }

  .cat-timeline__step::before {
    width: 44px;
    font-size: 9px;
  }

  .cat-timeline__step::after {
    width: 44px;
    font-size: 16px;
  }

  .cat-timeline__content {
    padding-left: 1em;
  }

  .cat-timeline__title {
    font-size: 15px;
  }

  /* --- サイトマップ --- */
  .cat-sitemap {
    grid-template-columns: 1fr;
  }

  /* --- スポーツカテゴリ一覧 --- */
  .cat-sport-grid__list {
    grid-template-columns: 1fr;
    gap: 1em;
  }

  .cat-sport-grid__image {
    width: 100px;
  }

  /* --stack: SPは2列 */
  .cat-sport-grid.--stack .cat-sport-grid__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 14px;
  }

  .cat-sport-grid.--stack .cat-sport-grid__link {
    gap: 10px;
  }

  .cat-sport-grid.--stack .cat-sport-grid__image {
    width: 100%;
  }

  /* --stack.--col3: SPは2列・左右20px gap */
  .cat-sport-grid.--stack.--col3 .cat-sport-grid__list {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 20px;
    row-gap: 24px;
    justify-content: stretch;
  }

  /* --- スケジュール表 --- */

  .cat-schedule th,
  .cat-schedule td {
    font-size: 10px;
    padding: 3px;
  }

  .cat-schedule th {
    font-size: 12px;
  }

  .pc-cal {
    display: none;
  }

  .sp-cal {
    display: block;
  }

  /* --- ダウンロードカード --- */
  .cat-download {
    flex-direction: column;
  }

  /* --- お知らせボックス --- */
  .cat-notice {
    padding: 2em 1.5em;
  }

  .cat-notice__period {
    font-size: 18px;
  }

  .cat-notice__title,
  .c-inner .cat-notice__title {
    font-size: 18px;
  }

  /* --- ボタンリスト --- */
  .cat-content__btn-list {
    flex-direction: column;
  }

  .cat-content__btn-list li {
    flex: 1 1 auto;
    /* SP版は全幅 */
    max-width: none;
  }

  /* --- 特徴リスト --- */
  .cat-content__feature-list {
    grid-template-columns: 1fr;
  }

  .cat-content__feature-list > li:nth-child(2) {
    border-top: 1px solid #e0e0e0;
    padding-top: 1.5em;
  }

  /* --- お問い合わせ --- */
  .cat-contact {
    padding: 2em 1.5em;
  }

  .cat-contact__desc {
    max-width: 100%;
  }

  .cat-contact__tel {
    display: block;
  }

  .cat-contact__tel-hours {
    display: block;
    margin-top: 0.5em;
  }

  .cat-contact__buttons {
    flex-direction: column;
    align-items: center;
  }

  .cat-contact__btn {
    width: 80%;
  }

  /* --- 横並び説明カード --- */
  .cat-content__detail-item {
    flex-direction: column;
    gap: 15px;
  }

  .cat-content__detail-item-image {
    width: 100%;
    text-align: center;
  }

  .cat-content__detail-item-image img {
    max-width: 100%;
  }

  .cat-content__detail-item-body h3 {
    font-size: 16px;
  }

  .cat-content__media-image {
    width: 100%;
    max-width: none;
    text-align: center;
  }

  /* --- 2列画像ペア --- */
  .cat-content__image-pair {
    flex-direction: column;
    gap: 1em;
  }

  /* --- メダルサイズ比較 --- */

  .cat-size__list {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 20px;
    margin-top: 20px;
  }

  .cat-size__item {
    width: 100%;
    max-width: unset;
    grid-row: span 1;
    grid-template-columns: 150px 1fr;
    grid-template-rows: auto repeat(4, auto);
    gap: 0 10px;
    text-align: left;
    justify-items: start;
    align-items: start;
  }

  .cat-size__label {
    grid-column: 1 / -1;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 5px 16px;
  }

  .cat-size__label-name {
    font-size: 16px;
    font-weight: 500;
  }

  .cat-size__label-spec {
    font-size: 14px;
  }

  .cat-size__image {
    grid-column: 1;
    grid-row: 2 / 6;
    margin-top: 0;
    height: 100%;
    display: flex;
    align-items: center;
    padding-top: 10px;
  }

  .cat-size__image img {
    flex: 1;
  }

  .cat-size__name {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
  }

  .cat-size__desc {
    grid-column: 2;
    grid-row: 3;
  }

  .cat-size__price {
    grid-column: 2;
    grid-row: 4;
    text-align: left;
    width: 100%;
  }

  .cat-size__btn,
  .cat-size__btn:hover,
  .cat-size__btn:active {
    width: 100%;
  }

  /* --- カテゴリから探す --- */

  .cat-category__lead {
    font-size: 14px;
    margin-top: 19px;
  }

  .cat-category__list {
    gap: 10px;
    grid-template-columns: repeat(2, 1fr);
  }

  .cat-category__list.--col3 {
    grid-template-columns: 1fr;
  }

  /* --- ランキング（よく選ばれています） --- */

  .cat-ranking__list {
    gap: 20px;
    margin-top: 23px;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 15px;
    justify-content: flex-start;
  }

  .cat-ranking__item {
    width: 144px;
    flex-shrink: 0;
  }

  .cat-ranking__badge {
    width: 28px;
    height: 28px;
    font-size: 16px;
  }

  .cat-ranking__product {
    margin-top: 14px;
  }

  .cat-ranking__product img {
    width: 140px;
    height: 140px;
  }

  .cat-ranking__info {
    margin-top: 12px;
  }

  .cat-ranking__name {
    font-size: 14px;
  }

  .cat-ranking__price {
    font-size: 14px;
  }

  /* --- 相談セクション --- */

  .cat-consult__desc {
    font-size: 14px;
    margin-top: 16px;
  }

  .cat-consult__visual {
    margin-top: 16px;
    padding: 0 0 20px;
    background: linear-gradient(360deg, #c5d1e6 50%, rgba(205, 217, 238, 0.03) 70%);
  }

  .cat-consult__visual::after {
    background: linear-gradient(to right, #f4f5f76e 100%);
  }

  .cat-consult__visual::before {
    background-size: auto 270px;
    background-position: top right -100px;
  }

  .cat-consult__bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  .cat-consult__overlay {
    position: relative;
    padding: 23px 15px 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 30%, rgba(255, 255, 255, 0.95) 50%);
  }

  .cat-consult__message {
    margin: 25px 20px 15px;
  }

  .cat-consult__message-title {
    font-size: 16px;
    width: fit-content;
    padding-bottom: 10px;
  }

  .cat-consult__checklist {
    margin-top: 15px;
  }

  .cat-consult__checklist-label {
    font-size: 14px;
  }

  .cat-consult__checklist-list {
    gap: 2px;
    margin-top: 6px;
  }

  .cat-consult__checklist-list li {
    font-size: 14px;
    gap: 7px;
  }

  .cat-consult__checklist-list li::before {
    width: 16px;
    height: 14px;
  }

  .cat-consult__cards {
    flex-direction: column;
    gap: 8px;
    margin-top: 18px;
  }

  .cat-consult__card {
    padding: 25px 20px;
    height: auto;
  }

  .cat-consult__card-title {
    font-size: 16px;
    justify-content: center;
    padding-bottom: 8px;
    width: 265px;
    margin: 0 auto;
    padding-right: 19px;
  }

  .cat-consult__tel {
    gap: 6px;
    margin-top: 12px;
  }

  .cat-consult__tel-prefix {
    font-size: 19px;
  }

  .cat-consult__tel-num {
    font-size: 30px;
    letter-spacing: -0.6px;
  }

  .cat-consult__tel-hours {
    font-size: 12px;
  }

  .cat-consult__mail-btn {
    width: 265px;
    height: 47px;
    font-size: 14px;
    margin: 20px auto 0;
  }

  /* --- 大口注文バナー --- */

  .cat-bulk__inner {
    width: 100%;
    height: 200px;
    border-radius: 4px;
    overflow: hidden;
  }

  .cat-bulk__overlay {
    background: linear-gradient(92deg, #f4f5f7fc 40%, #f4f5f79c 100%);
  }

  .cat-bulk__content {
    padding: 20px;
  }

  .cat-bulk__title {
    font-size: 16px;
    padding-bottom: 8px;
    width: 252px;
  }

  .cat-bulk__desc {
    font-size: 14px;
  }

  .cat-bulk__btn,
  .cat-bulk__btn:hover,
  .cat-bulk__btn:visited {
    width: 100%;
    margin-top: 10px;
  }

  .cat-bulk__bg-img {
    width: 70%;
  }

  .cat-bulk__badge {
    width: 75px;
    height: 75px;
    font-size: 12px;
    position: absolute;
    right: 20px;
    bottom: 90px;
  }

  .cat-bulk__badge-small {
    font-size: 10px;
  }

  /* --- お役立ちコンテンツ --- */
  .cat-column__slider {
    padding: 0;
  }

  /* SP時はSwiperを使わないためoverflowをvisibleにしてカスタムbarを表示可能にする */
  .cat-column__swiper {
    overflow: visible;
  }

  .cat-column__slider .swiper-wrapper {
    display: flex;
    justify-content: flex-start;
    gap: 20px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0 10px;
    box-sizing: border-box;
  }

  .cat-column__nav {
    display: none;
  }

  /* --- よくある質問（FAQ） --- */

  .cat-faq__list {
    margin-top: 20px;
  }

  .cat-faq__question {
    gap: 8px;
    padding: 14px 0;
  }

  .cat-faq__q-label {
    font-size: 20px;
  }

  .cat-faq__q-text {
    font-size: 16px;
  }

  .cat-faq__icon {
    width: 17px;
    height: 17px;
  }

  .cat-faq__icon::before {
    width: 17px;
  }

  .cat-faq__icon::after {
    height: 17px;
  }

  .cat-faq__answer {
    gap: 8px;
    padding-inline: 0px;
  }

  .cat-faq__answer-wrap.is-open .cat-faq__answer {
    padding-inline: 0px;
  }

  .cat-faq__a-label {
    font-size: 20px;
  }

  .cat-faq__a-text {
    font-size: 14px;
  }

  /* --- 商品一覧 --- */

  #fs_ProductCategory .fs-c-productList {
    margin: 80px 0 0;
  }

  .fs-c-sortItems {
    display: flex;
    border: none;
  }

  .fs-c-sortItems__list {
    border-left: none;
  }

  .fs-c-productList__controller {
    margin: 0 10px;
  }

  .fs-c-productList__controller:first-of-type .fs-c-listControl {
    align-items: flex-start;
    margin-top: 0;
  }

  .fs-c-productName__name {
    font-size: 14px;
  }

  .fs-c-listControl__status {
    font-size: 12px;
  }

  .fs-c-reviewStars::before {
    font-size: 18px;
  }

  .fs-c-rating__value {
    margin-left: 3px;
  }

  .fs-c-productList__list__item .productRating {
    font-size: 10px;
  }

  .fs-c-productList__list__item .fs-c-reviewStars::before {
    font-size: 16px;
  }

  .fs-c-productList__list__item .fs-c-rating__value {
    font-size: 10px;
  }

  .fs-c-productList__controller:last-of-type .fs-c-sortItems {
    display: none;
  }
  /* 
  .fs-c-productList__controller:last-of-type .fs-c-listControl {
    flex-direction: row;
    justify-content: center;
    gap: 15px;
    align-items: baseline;
  } */

  /* --- AIレコメンド --- */

  .cat-recommend__content {
    gap: 25px;
    margin-top: 25px;
  }

  .cat-recommend__badge {
    width: 28px;
    height: 28px;
    font-size: 16px;
  }

  .cat-recommend__main {
    grid-template-columns: repeat(1, 1fr);
    justify-items: center;
  }

  .cat-recommend__main-image {
    width: 100%;
    order: 2;
  }

  .cat-recommend__main-detail {
    order: 3;
    width: 100%;
    align-items: center;
  }

  .cat-recommend__main-price {
    order: 4;
    margin-top: 0;
  }

  .cat-recommend__main-info {
    display: contents;
  }

  .cat-recommend__main .cat-recommend__badge--1st {
    order: 1;
    width: 38px;
    height: 38px;
    font-size: 25px;
  }

  .cat-recommend__main-name {
    font-size: 20px;
    text-align: center;
  }

  .cat-recommend__sub {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 10px;
    justify-items: center;
  }

  .cat-recommend__item {
    gap: 14px;
  }

  .cat-recommend__item::before {
    width: 28px;
    height: 28px;
    font-size: 16px;
  }

  .cat-recommend__item-name {
    font-size: 14px;
  }

  .cat-recommend__item-price-num {
    font-size: 14px;
  }

  .cat-recommend__main-label {
    width: 100%;
    text-align: center;
  }

  .cat-recommend__main-price-num {
    font-size: 20px;
  }

  .cat-recommend__main-price-wave {
    font-size: 20px;
  }

  .cat-recommend__main-price-tax {
    font-size: 12px;
  }

  /* --- 商品リスト（チェック履歴・関連商品） --- */

  .cat-products__list {
    display: flex;
    gap: 15px;
    margin-top: 25px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0 10px 10px;
    flex-wrap: nowrap;
    justify-content: flex-start;
  }

  .cat-products__item {
    flex-shrink: 0;
    scroll-snap-align: start;
  }

  .cat-products__image img {
    width: 120px;
    height: 120px;
  }

  .cat-products__info {
    width: 120px;
  }

  .cat-products__name {
    font-size: 12px;
  }

  .cat-products__price {
    font-size: 10px;
  }

  /* --- 即日配送 --- */

  .cat-sameday__content {
    gap: 30px;
  }

  .cat-sameday__point {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 0;
  }

  .cat-sameday__point-body {
    display: contents;
  }

  .cat-sameday__point-number {
    order: 1;
    font-size: 24px;
    width: 54px;
    height: 54px;
    line-height: 1;
  }

  .cat-sameday__point-label {
    font-size: 10px;
  }

  .cat-sameday__point-heading,
  .c-inner .cat-sameday__point-heading {
    order: 2;
    width: calc(100% - 54px);
    min-height: 54px;
    display: flex;
    align-items: center;
    padding: 0 0 0 10px;
  }

  .cat-sameday__point-image {
    order: 3;
    width: 100%;
  }

  .cat-sameday__point:first-of-type .cat-sameday__point-image img {
    width: 94px;
    margin: 10px;
  }

  .cat-sameday__point-list {
    order: 4;
    margin-top: 0;
  }

  .cat-sameday__notes {
    order: 5;
    margin-top: 0;
    padding-left: 1.5em;
  }

  .cat-sameday__map-container img {
    max-width: 500px;
    margin: auto;
  }
}

/*********************************************************** 

商品詳細ページ

***********************************************************/

/* ========================================
   商品詳細 h1
   ======================================== */
.c-inner h1.product-h1 {
  font-size: 24px;
  font-weight: 400;
  text-align: center;
  margin: 0 0 37px;
  font-family: var(--font-base);
}

/* ========================================
   商品画像ギャラリー
   ======================================== */

#fs_ProductDetails .c-inner {
  overflow: unset;
}

.product-gallery {
  margin-top: 0;
}

.product-gallery__main {
  position: relative;
}

.product-gallery__zoom {
  position: absolute;
  bottom: 16px;
  left: 16px;
  z-index: 2;
  width: 36px;
  height: 36px;
  background: url(../img/icon-thum_zoom.svg) no-repeat center / contain;
  pointer-events: none;
  transition: opacity 0.3s;
}

.product-gallery__zoom.is-hidden {
  opacity: 0;
}

/* 旧Swiper CSS（style.css 内に Swiper v6 系が同梱されている）との競合対策。
   v6 の打ち消しセレクタは .swiper-container-autoheight だが、
   Swiper 11 が付けるクラスは .swiper-autoheight のため一致せず、
   .swiper-slide { width:100%; height:100% } が残って遷移中にサイズが揺れる。
   ギャラリー内で明示的に上書きする。 */
.product-gallery__slider .swiper-wrapper {
  height: auto;
  box-sizing: border-box;
}

.product-gallery__slider .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: auto;
}

.product-gallery__slider img {
  width: auto; /* ← これ */
  max-width: 100%;
  height: auto; /* width属性から高さが予約される */
  min-height: 0;
  display: block;
  cursor: zoom-in;
}

.product-gallery__slider iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  position: relative;
  z-index: 0;
}

.product-gallery__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.8);
  border: none;
  cursor: pointer;
  padding: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 23px;
}

.product-gallery__arrow--prev {
  left: -35px;
  background-image: url(../img/icon_arrow_left.svg);
}

.product-gallery__arrow--next {
  right: -35px;
  background-image: url(../img/icon_arrow.svg);
}

.product-gallery__arrow.swiper-button-disabled {
  opacity: 0.3;
  cursor: default;
}

.product-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-top: 16px;
}

.product-gallery__thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid transparent;
  background: #f5f5f5;
  padding: 0;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  opacity: 0.6;
  transition: opacity 0.2s;
  aspect-ratio: 9 / 6;
}

.product-gallery__thumb:hover,
.product-gallery__thumb--active {
  opacity: 1;
}

.product-gallery__thumb img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.product-gallery__thumb--video::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(133, 133, 133, 0.38);
}

/* ========================================
   納期・販売価格テーブル
   ======================================== */

.product-price {
  text-align: center;
}

.product-price__heading-small {
  font-size: 15px;
}

.product-price__delivery {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #5d5d5d;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  padding: 0 30px;
  height: 50px;
}

.product-price__delivery-icon {
  flex-shrink: 0;
}

.product-price__table-wrap {
  margin-top: 22px;
  max-width: 850px;
  margin-left: auto;
  margin-right: auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 10px;
}

.product-price__table-wrap .product-price__table {
  position: relative;
}

@media (max-width: 900px) {
  .product-price__table-wrap::before {
    content: "スクロールできます";
    display: block;
    color: #e94738;
    font-size: 14px;
    text-align: left;
    margin-bottom: 6px;
  }
}

.product-price__table {
  min-width: 700px;
  width: 100%;
  table-layout: auto;
  border-collapse: collapse;
  font-size: 14px;
}

.product-price__table th,
.product-price__table td {
  border: 1px solid #c1c1c1;
  padding: 7px 8px;
  text-align: center;
  vertical-align: middle;
  min-width: 80px;
  word-break: break-word;
  overflow-wrap: break-word;
}

.product-price__table th {
  background: #f4f5f7;
  font-weight: bold;
}

/* ハイライト列（販売価格）は折返しなしで可読性確保 */
.product-price__table th.product-price__table-highlight,
.product-price__table td.product-price__table-highlight {
  white-space: nowrap;
}

.product-price__table-highlight {
  color: #e94738;
  font-weight: 700;
}

/* theadなし価格表のフォールバック: 最終列を価格列としてハイライト */
.product-price__table:not(:has(thead)) td:last-child {
  color: #e94738;
  font-weight: 700;
  white-space: nowrap;
}

/* ========================================
   商品説明テーブル
   ======================================== */

.product-spec__table {
  max-width: 830px;
  margin: 0 auto;
}

.product-spec__row {
  display: flex;
  border-bottom: 1px solid #c1c1c1;
}

.product-spec__label {
  flex-shrink: 0;
  width: 230px;
  padding: 15px 22px;
  font-size: 14px;
  margin: 0;
  font-weight: bold;
}

.product-spec__value {
  flex: 1;
  padding: 15px 22px;
  font-size: 14px;
  margin: 0;
}

.product-spec__value strong,
.product-spec__value span,
.product-spec__value a[href^="tel:"] {
  color: #e94738;
}

/* ============================================
   営業日について
   ============================================ */

.business-calendar__desc {
  text-align: center;
  font-size: 14px;
}

.business-calendar__desc--red {
  color: #e94738;
  font-weight: 500;
}

.business-calendar__body {
  display: flex;
  justify-content: center;
  gap: 20px 30px;
  margin-top: 25px;
  flex-wrap: wrap;
}

.business-calendar__month {
  flex: 1 1 290px;
  max-width: 400px;
  min-width: 290px;
}

.business-calendar__month-title {
  text-align: center;
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 10px;
}

.business-calendar__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.business-calendar__table th,
.business-calendar__table td {
  text-align: center;
  font-size: 14px;
  font-family: var(--font-heading);
  padding: 5px;
}

.business-calendar__table th {
  font-family: var(--font-base);
  font-weight: 400;
  background-color: var(--color-bg-gray);
}

.business-calendar__table th:first-child,
.business-calendar__table th:last-child {
  background-color: #b5b8bd;
}

.business-calendar__table td {
  background-color: #fff;
}

.business-calendar__table td.is-holiday {
  background-color: #e2e2e2;
}

.business-calendar__table td.is-outside {
  color: var(--color-border);
}

.business-calendar__footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 27px;
  max-width: 880px;
  width: 100%;
  margin-inline: auto;
}

.business-calendar__notes {
  font-size: 12px;
  line-height: 1.65;
}

.business-calendar__notes p span {
  color: #e2e2e2;
}

.business-calendar__legend {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 90px;
}

.business-calendar__legend-box {
  display: block;
  width: 22px;
  height: 22px;
  background-color: #e2e2e2;
}

.business-calendar__legend-label {
  font-size: 14px;
}

/* ========================================
   スケジュール・納期の目安
   ======================================== */

.schedule__cards {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  justify-content: center;
  max-width: 860px;
  margin: 0 auto;
}

.schedule__card {
  display: flex;
  flex-direction: column;
  flex: 1 1 345px;
  max-width: 410px;
  min-width: 345px;
}

.schedule__card-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  background-color: var(--color-bg-gray);
  height: 73px;
  padding: 8px 0;
}

.schedule__card-title {
  display: flex;
  flex-direction: column;
}

.schedule__card-subtitle {
  font-size: 14px;
  font-weight: 500;
}

.schedule__card-main {
  font-weight: 500;
  font-size: 16px;
}

.schedule__card-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  margin-top: 24px;
}

.schedule__lead {
  font-size: 16px;
}

.schedule__lead-underline {
  text-decoration: underline;
}

.schedule__lead strong {
  font-weight: 700;
}

.schedule__steps {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 4px;
}

.schedule__card--customer .schedule__steps {
  max-width: 280px;
}

.schedule__card--provider .schedule__steps {
  max-width: 360px;
}

.schedule__step {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 74px;
  height: 74px;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  font-size: 12px;
  text-align: center;
  line-height: 1.45;
}

.schedule__arrow {
  display: block;
  position: relative;
  width: 7px;
  height: 19px;
}

.schedule__arrow::before,
.schedule__arrow::after {
  content: "";
  position: absolute;
  width: 1px;
  height: 11px;
  background: #494949;
  left: 3px;
}

.schedule__arrow::before {
  top: 0;
  transform: rotate(-30deg);
}

.schedule__arrow::after {
  bottom: 0;
  transform: rotate(30deg);
}

.schedule__notes {
  font-size: 12px;
  line-height: 1.45;
  align-self: flex-start;
}

.schedule__notes p + p {
  margin-top: 5px;
}

.schedule__notes-link {
  font-weight: 500;
  text-decoration: underline;
}

.schedule__card .btn-bordered {
  max-width: 100%;
  margin: 15px auto 0;
  color: #5d5d5d;
}

/* ========================================
   スタッフスナップ
   ======================================== */

.staff-snap__slider-wrap {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
}

.staff-snap__slider {
  overflow: hidden;
}

.staff-snap__slider .swiper-slide {
  width: 180px;
}

.staff-snap__slide {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-decoration: none;
  color: inherit;
}

.staff-snap__img-wrap img {
  width: 100%;
  height: auto;
  aspect-ratio: 180 / 230;
  object-fit: cover;
}

.staff-snap__text {
  font-size: 13px;
  line-height: 1.65;
  margin: 0;
}

.staff-snap__arrow {
  position: absolute;
  top: 115px;
  transform: translateY(-50%);
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.8);
  border: none;
  cursor: pointer;
  padding: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 23px;
}

.staff-snap__arrow--prev {
  left: -31px;
  background-image: url(../img/icon_arrow_left.svg);
}

.staff-snap__arrow--next {
  right: -28px;
  background-image: url(../img/icon_arrow.svg);
}

.staff-snap__arrow.swiper-button-disabled {
  opacity: 0.3;
  cursor: default;
}

.staff-snap__arrow.swiper-button-lock {
  display: none;
}

.staff-snap__slider.is-locked .swiper-wrapper {
  justify-content: center;
}

.staff-snap__slider.is-locked .swiper-slide:last-of-type {
  margin-right: 0 !important;
}

/* ========================================
   お客様の声
   ======================================== */

.fs-c-productReview__aggregateRating {
  padding-bottom: 10px;
  border-bottom: 1px solid #c1c1c1;
}

.fs-c-aggregateRating__rating {
  flex-wrap: nowrap;
  flex-basis: unset;
}

.fs-c-aggregateRating__rating::before {
  font-size: 16px;
  flex-basis: unset;
  margin-right: 20px;
}

.fs-c-productReview .fs-c-reviewStars {
  margin-top: 0;
}

.fs-c-productReview .fs-c-reviewStars::before {
  color: #deb32e;
}

.fs-c-productReview .fs-c-reviewInfo__stars::before {
  color: #efdb92;
}

.fs-c-productReview .fs-c-rating__value {
  color: inherit;
  font-size: 23px;
}

.fs-c-aggregateRating__count {
  flex-grow: unset;
}

.fs-c-aggregateRating__count {
  display: none;
}

.fs-c-productReview__reviewList {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.fs-c-reviewList__item:first-child {
  border-top: none;
}

.fs-c-productReview {
  max-width: 850px;
  margin: auto;
  justify-content: center;
}

.fs-c-reviewInfo__reviewer {
  padding-left: 60px;
  background: url(../img/icon_customer-voice.svg) no-repeat left top;
  min-height: 50px;
}

.fs-c-reviewer__name {
  width: 100%;
}

.fs-c-productReview .fs-c-reviewerStatus {
  background: #5d5d5d;
  border-radius: 0;
  min-width: unset;
  padding: 5px 8px;
  font-size: 12px;
  margin-left: 0;
}

.fs-c-reviewer__profile span::after {
  content: " / ";
}

.fs-c-reviewer__profile span:last-child::after {
  content: "";
}

.fs-c-reviewer__profile {
  margin-left: 5px;
}

.fs-c-reviewList__item__info {
  display: contents;
}

.fs-c-reviewList__item__body {
  padding: 0;
  border: 0;
  font-size: 12px;
}

.fs-c-reviewList__item .fs-c-reviewStars {
  margin-top: 10px;
}

.fs-c-reviewInfo__date {
  justify-content: flex-end;
  order: 1;
}

.fs-c-productReview .fs-c-button--plain {
  background-color: #fff;
  color: #333 !important;
  border: 1px solid #c1c1c1;
  background-image: url(../img/icon_arrow.svg);
  background-position-x: right 10px;
  background-position-y: center;
  background-repeat: no-repeat;
  width: 350px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 auto;
}

.fs-c-productReview__addReview.fs-c-buttonContainer.fs-c-buttonContainer--addReview--detail {
  order: 5;
  margin: 0;
  padding: 0;
}

.fs-c-button--plain.fs-c-button--viewAllReviews::before {
  content: "";
  display: block;
  width: 42px;
  height: 32px;
  background-image: url(../img/icon-review.svg);
  background-repeat: no-repeat;
  background-position: center;
}

.fs-c-button--plain.fs-c-button--addReview--detail::before {
  content: "";
  display: block;
  width: 30px;
  height: 32px;
  background-image: url(../img/icon-review-wright.svg);
  background-repeat: no-repeat;
  background-position: center;
}

.fs-body-my-orders .fs-c-button--plain.fs-c-button--addReview--detail::before {
  width: 16px;
  height: 16px;
  background-size: cover;
  display: inline-block;
}

.fs-body-my-orders .fs-c-orderHistoryItem__button a {
  color: #252525;
}

.oh-product .fs-c-button--plain.fs-c-button--addReview--detail::before {
  width: 16px;
  height: 17px;
  background-size: 100% auto;
}

.oh-product .oh-review-link {
  display: flex;
  gap: 10px;
}

/* ========================================
   オプション選択とカート
   ======================================== */

#fs_form {
  max-width: 830px;
  margin: auto;
}

#fs_form .fs-c-productNameHeading {
  margin: 90px 0 0;
  text-align: left;
}

.fs-c-productNameHeading__name {
  font-size: 24px;
  font-family: var(--font-base);
}

.fs-c-productNumber {
  border-color: #c1c1c1;
  padding: 5px 10px;
  margin: 10px 0 0;
}

.fs-c-productNumber__number {
  font-weight: normal;
}

.fs-c-productPointDisplay {
  color: #e94738;
}

.fs-c-requiredMark::before {
  content: "※";
  font-size: 10px;
}

.fs-c-productOption .fs-c-productOption__name {
  width: 100%;
  background-color: unset;
  padding: 8px 0;
  font-size: inherit;
}

.jt-product_cart-option .fs-c-variationAndActions {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 2em;
}

.jt-product_cart-option .fs-c-variationAndActions__variationLabel {
  background-color: unset;
  padding: 8px 0;
  font-size: inherit;
  width: 180px;
  margin: 0 2em 20px 0;
  font-weight: normal;
}

.fs-body-product .fs-c-dropdown {
  margin-bottom: 0;
}

.fs-body-product .fs-c-dropdown__menu {
  border-color: #c1c1c1;
  /* font-size: inherit; */
  border-radius: 0;
}

.fs-c-dropdown__menu:has(option[value=""]:checked) {
  color: #888888;
}

@media (min-width: 900px) {
  .fs-c-productOption {
    grid-template-columns: 180px 1fr;
    gap: 20px 2em;
  }

  .jt-product_cart-option .fs-c-variationAndActions .fs-c-variationAndActions__variation {
    /* width: calc(100% - 210px); */
    width: 100%;
    margin-bottom: 20px;
  }
}

@media (max-width: 900px) {
  .jt-product_cart-option .fs-c-variationAndActions {
    gap: 0;
    grid-template-columns: 1fr;
  }

  .fs-c-productOption__comment,
  .fs-c-productOption__name,
  .fs-c-productOption__option {
    font-size: unset;
  }
}

.fs-c-productOption__label {
  font-weight: normal;
  /* font-size: inherit; */
}

dl.fs-c-productOption {
  font-size: 14px;
}

.fs-c-button--addToCart--detail {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: none;
  border-radius: 2px;
  background-color: #e94738;
  padding: 24px 25px 24px 20px;
  width: 100%;
  max-width: 420px;
  background-image: url(../img/icon_arrow_white.svg);
  background-position-x: right 10px;
  background-position-y: center;
  background-repeat: no-repeat;
}

.template-download__block {
  display: none;
  /* CLS回避: デフォルト非表示。JSが is-visible を付与した場合のみ表示 */
  flex-direction: column;
  align-items: center;
  margin-top: 16px;
}

.template-download__block.is-visible {
  display: flex;
}

.template-download__p {
  margin-bottom: 5px;
}

.item-btn-buy {
  width: unset;
  margin: 0;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}

.item-btn-buy[style*="visible"] {
  height: auto;
  margin: 25px auto 0;
}

.item-btn-buy__re {
  width: unset;
  display: flex;
  justify-content: center;
  margin: 0;
  height: 0;
  overflow: hidden;
  visibility: hidden;
}

.item-btn-buy__re.is-visible {
  height: auto;
  margin: 25px auto 0;
  visibility: visible;
}

.guide-block {
  display: flex;
  justify-content: center;
  margin: 10px auto 20px;
}

.guide-block .btn-bordered__dark {
  max-width: 330px;
}

.fs-body-product .fs-c-dropdown__menu {
  padding: 15px 10px;
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-base);
  font-size: 14px;
}

/* .fs-c-productOption__option textarea {
    padding: 10px !important;
    min-height: calc(1em + 20px) !important;
    height: calc(1em * 1.4 + 20px) !important;
} */

input {
  padding: 10px !important;
  min-height: calc(1em + 20px);
  height: calc(1em * 1.4 + 20px);
}

.fs-c-productQuantityAndWishlist__wishlist:has(.fs-c-button--addToWishList--detail) {
  align-items: flex-end;
  flex-direction: column;
  align-self: flex-end;
}

.fs-c-productQuantityAndWishlist__wishlist:has(.fs-c-button--addToWishList--detail.is-disabled)::after {
  content: "選択項目をお選びいただくと、お気に入り登録が可能です";
  font-size: 12px;
  margin-top: 5px;
}

.fs-c-productQuantityAndWishlist {
  display: flex;
  flex-direction: column-reverse;
}

.fs-c-productQuantityAndWishlist__quantity {
  padding-left: 208px;
  position: relative;
  max-width: 6em;
  min-width: 110px;
  margin: 0 auto 0 0;
}

.fs-c-productQuantityAndWishlist__quantity::after {
  position: absolute;
  content: "数量";
  display: block;
  width: 180px;
  height: auto;
  left: 0;
  top: 5px;
  bottom: auto;
}

.fs-c-productQuantityAndWishlist__quantity .fs-c-quantity__number {
  width: 110px;
}

/* ========================================
   お支払い方法
   ======================================== */
.payment__content {
  max-width: 690px;
  margin: 0 auto;
}

.payment__groups {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.payment__category {
  text-align: center;
  font-size: 16px;
  line-height: 1.81;
  color: #292929;
  background-color: var(--color-bg-gray);
}

.payment__group--credit .payment__logos {
  padding: 5px 0 0;
}

.payment__group--smartphone .payment__logos {
  padding: 13px 0 0;
}

.payment__logos {
  display: flex;
  justify-content: center;
  align-items: center;
}

/* .payment__logos img {
  width: 100%;
  height: auto;
} */

.payment__methods {
  display: flex;
  justify-content: space-between;
  margin-top: 29px;
}

.payment__method {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 219px;
  height: 40px;
  font-size: 16px;
  color: #292929;
  background-color: var(--color-bg-gray);
}

#fs_Register #fs_form,
#fs_CustomerDetails #fs_form {
  max-width: 900px;
}

#fs_CustomerDetails #fs_form .fs-c-inputInformation__field {
  max-width: 100%;
}

#fs_Register #fs_form .fs-c-memberInfoField {
  padding: 0;
}

.pageback {
  margin: 60px auto 0;
  text-align: center;
}

.pageback--link a {
  text-decoration: underline;
}

/* ========================================
   あなたの声をお聞かせください
   ======================================== */

.cat-consult + .promo-cards__card--review {
  max-width: 600px;
  margin: 60px auto 0;
}

.cat-consult + .promo-cards__card--review .promo-cards__review-body {
  display: flex;
  align-items: baseline;
  gap: 0.5em;
}

.cat-consult + .promo-cards__card--review .promo-cards__link {
  max-width: 250px;
  width: 100%;
  text-align: center;
  border: 1px solid #c8c8c8;
  padding: 10px;
  justify-content: center;
  position: relative;
}

.cat-consult + .promo-cards__card--review .promo-cards__link::after {
  position: absolute;
  right: 10px;
}

/* ========================================
   商品ご注文方法
   ======================================== */

.order-guide-video__iframe {
  max-width: 670px;
  margin: auto;
}

.order-guide-video__iframe iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
}

/* ========================================
   レスポンシブ（max-width: 900px）
   ======================================== */
@media (max-width: 900px) {
  /* 商品画像ギャラリー */

  .product-gallery__thumbs {
    display: flex;
    overflow-x: scroll;
    margin-top: 4px;
  }

  .product-gallery__thumb {
    width: 100px;
    flex-shrink: 0;
  }

  .product-gallery__arrow {
    width: 40px;
    height: 40px;
    background-size: 13px;
  }

  .product-gallery__arrow--prev {
    left: -10px;
  }

  .product-gallery__arrow--next {
    right: -10px;
  }

  /* 商品説明 */

  .product-spec__row {
    flex-wrap: wrap;
    padding-bottom: 10px;
    margin-bottom: 10px;
  }

  .product-spec__row:first-of-type {
    border-top: 1px solid #c1c1c1;
    padding-top: 10px;
  }

  .product-spec__label {
    width: 100%;
    font-weight: 500;
    padding: 0 0 2px;
  }

  .product-spec__value {
    padding: 0;
    flex-basis: 100%;
  }

  /* --- お支払い方法 --- */

  .payment__logos {
    padding: 10px 0;
  }

  .payment__group--credit .payment__logos,
  .payment__group--smartphone .payment__logos {
    padding: 10px 0;
  }

  .payment__methods {
    gap: 8px;
    margin-top: 20px;
  }

  .payment__method {
    width: auto;
    flex: 1;
    font-size: 14px;
  }

  /* スケジュール・納期 */

  .schedule__card {
    min-width: 0;
  }

  /* スタッフスナップ: 横スクロール */

  .staff-snap__slider {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .staff-snap__slider .swiper-wrapper {
    display: flex;
    gap: 10px;
    width: fit-content;
    padding: 0 10px;
    margin: 0 auto;
    box-sizing: border-box;
  }

  .staff-snap__slider .swiper-slide {
    flex-shrink: 0;
    width: 140px;
  }

  .staff-snap__arrow {
    display: none;
  }

  /* 営業日について */

  .business-calendar__footer {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 15px;
  }

  /* お客様の声 */

  .fs-c-productReview__reviewList {
    grid-template-columns: repeat(1, 1fr);
  }

  .fs-c-rating__value {
    font-size: 20px;
  }

  /* オプション選択とカート */

  #fs_form .fs-c-productNameHeading {
    font-size: 20px;
    margin: 60px 0 0;
  }

  .jt-product_cart-option .fs-c-variationAndActions__variationLabel {
    margin: 0;
  }

  .fs-c-productOption {
    gap: 0;
  }

  .fs-c-productOption .fs-c-productOption__option {
    margin-bottom: 0;
  }

  .jt-product_cart-option .fs-c-variationAndActions__variation {
    margin-bottom: 0;
  }

  .jt-product_cart-option .fs-c-productOption {
    margin-bottom: 20px;
  }

  .fs-c-productQuantityAndWishlist__quantity {
    padding-left: 0;
    padding-top: calc(1em * 1.4 + 15px);
  }

  .btn-bordered.template-download__btn,
  .btn-bordered.template-download__btn:hover,
  .btn-bordered.template-download__btn:visited {
    width: 100%;
  }

  .item-btn-buy__re .btn-bordered,
  .item-btn-buy__re .btn-bordered:hover,
  .item-btn-buy__re .btn-bordered:visited {
    width: 100%;
  }

  /* データ入稿 */

  .data-submit__links-grid {
    grid-template-columns: 1fr;
  }

  .data-submit__link-card {
    width: 100% !important;
  }

  .data-submit__inner {
    padding: 30px 0;
  }

  .data-submit__links-heading,
  h3.data-submit__links-heading {
    gap: 5px;
  }

  .data-submit__links-line {
    width: 15px;
  }

  /* あなたの声をお聞かせください */

  .cat-consult + .promo-cards__card--review {
    margin: 60px 10px 0;
    max-width: calc(100% - 20px);
  }
}

/* ========================================
   リボンスペックカード（画像+テーブル横並び）
   ======================================== */

.cat-ribbon-spec {
  margin: 3em 0;
}

.cat-ribbon-spec__title,
.c-inner .cat-ribbon-spec__title {
  font-size: 18px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: left;
  margin: 0 0 1em;
}

.cat-ribbon-spec__detail .cat-compare-table {
  margin-top: 0;
}

.--bg_white {
  background: #fff !important;
}

/* section 上マージン打消しモディファイア（前sectionと連結したい時用） */
.section.--no-gap {
  margin-top: 0;
}

/* 赤文字ユーティリティ（インライン強調用） */
.c-inner .u-text-red,
.u-text-red {
  color: #e94738;
}

/* 黒文字ユーティリティ（インライン強調用） */
#fs_ProductDetails .fs-l-pageMain a.u-text-black:not(:has(img)):not(:has(p)):not(.btn-bordered):not(.btn-bordered--small):not(.btn-bordered__dark):not([href^="tel:"]),
#fs_ProductCategory .fs-l-pageMain a.u-text-black:not(:has(img)):not(:has(p)):not(.btn-bordered):not(.btn-bordered--small):not(.btn-bordered__dark):not([href^="tel:"]) {
  color: #111 !important;
}

/* 白文字ユーティリティ（インライン強調用） */
#fs_ProductDetails .fs-l-pageMain a.u-text-white:not(:has(img)):not(:has(p)):not(.btn-bordered):not(.btn-bordered--small):not(.btn-bordered__dark):not([href^="tel:"]),
#fs_ProductCategory .fs-l-pageMain a.u-text-white:not(:has(img)):not(:has(p)):not(.btn-bordered):not(.btn-bordered--small):not(.btn-bordered__dark):not([href^="tel:"]) {
  color: #fff !important;
}

/* テキスト中央揃えユーティリティ */
.u-text-center {
  text-align: center !important;
}

/* テキストsmallユーティリティ */
.u-text-small {
  font-size: 12px !important;
}

/* 赤バッジユーティリティ（インラインラベル、pointと同形状で背景赤） */
.u-badge-red {
  display: inline-block;
  background: #e94738;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.1em;
  padding: 0.3em 0.7em;
  margin-right: 0.6em;
}

/* 罫線囲みボックス（汎用） */
.cat-framed-box {
  border: 5px solid #eee;
  padding: 40px;
  margin: 2em 0;
  text-align: center;
}

.cat-framed-box > :first-child {
  margin-top: 0;
}

.cat-framed-box > :last-child {
  margin-bottom: 0;
}

@media (max-width: 900px) {
  .cat-framed-box {
    padding: 20px;
  }
}

/* ポイントブロック（cat-notice代替・背景/罫線/padding無しのおすすめ領域） */
.cat-point-block {
  margin: 2em 0;
}

.cat-point-block__title,
h3.cat-point-block__title,
h4.cat-point-block__title,
.c-inner h3.cat-point-block__title,
.c-inner h4.cat-point-block__title {
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  color: #111;
  text-align: center;
  margin: 0 0 1em;
  line-height: 1.6;
}

.cat-point-block__body {
  font-size: 15px;
  line-height: 1.8;
  margin: 0;
  text-align: center;
}

/* cat-content__subtitle（本文中の小見出し・ゴシック明示） */
.cat-content__subtitle,
h3.cat-content__subtitle,
h4.cat-content__subtitle,
.c-inner .cat-content__subtitle,
.c-inner h3.cat-content__subtitle,
.c-inner h4.cat-content__subtitle {
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  color: #111;
  text-align: left;
  letter-spacing: 0.05em;
  margin: 40px 0 16px;
  line-height: 1.6;
}

/* cat-content__list 注釈モディファイア（赤文字＋※マーカー） */
.cat-content__list.--note,
.c-inner .cat-content__list.--note {
  list-style: none;
  padding-left: 0;
}

.cat-content__list.--note > li,
.c-inner .cat-content__list.--note > li {
  color: #e94738;
  padding-left: 1.2em;
  position: relative;
}

.cat-content__list.--note > li::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
}

/* バッジ付き見出し（ダークラベル＋テキスト） */
.cat-heading-badge,
.c-inner .cat-heading-badge {
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  color: #111;
  text-align: left;
  margin: 50px 0 1em;
  line-height: 1.6;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8em;
}

.cat-heading-badge > span:first-child,
.c-inner .cat-heading-badge > span:first-child,
h3.cat-heading-badge > span:first-child,
.c-inner h3.cat-heading-badge > span:first-child {
  display: inline-block;
  background: #696969;
  color: #fff;
  padding: 0.4em 1em;
  font-size: 14px;
  font-weight: bold;
  font-family: var(--font-base);
  letter-spacing: 0.05em;
  line-height: 1.4;
}

.cat-ribbon-spec .cat-lead {
  margin-bottom: 1.5em;
}

.cat-ribbon-spec__detail {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  margin: 1.5em 0;
}

.cat-ribbon-spec__image {
  flex-shrink: 0;
  width: 233px;
}

.cat-ribbon-spec__image img {
  max-width: 233px;
  width: 100%;
  height: auto;
  display: block;
}

.cat-ribbon-spec__detail .cat-content__table-wrap {
  flex: 1;
  min-width: 0;
  margin: 0;
  width: 100%;
}

.cat-ribbon-spec .cat-ribbon-spec__notes {
  font-size: 14px;
  line-height: 2;
  margin: 0;
}

.cat-ribbon-spec__notes span {
  color: #e94738;
}

/* ========================================
   CTAバナー（2列横並び）
   ======================================== */

.cat-cta-banner {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin: 2em 0 3em;
}

.cat-cta-banner__item {
  flex-shrink: 0;
}

.cat-cta-banner__item img {
  max-width: 350px;
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 900px) {
  .cat-point-block .cat-point-block__title .u-badge-red {
    display: block;
    width: max-content;
    margin: 0 auto 10px;
  }
}

/* ========================================
   リボンスペック・CTAバナー レスポンシブ
   ======================================== */

@media (max-width: 900px) {
  .cat-ribbon-spec__detail {
    flex-direction: column;
    align-items: center;
  }

  .cat-ribbon-spec__image {
    width: 100%;
    text-align: center;
  }

  .cat-ribbon-spec__image img {
    margin: 0 auto;
  }

  .cat-cta-banner {
    flex-direction: column;
    align-items: center;
  }

  .cat-cta-banner__item img {
    max-width: 100%;
  }
}

/* ========================================
   フィーチャー定義リスト（番号付き・リッチdd）
   ======================================== */

.cat-feature-dl {
  margin: 2em 0;
}

.cat-feature-dl dt {
  display: flex;
  align-items: center;
  gap: 0.8em;
  font-size: 18px;
  font-weight: bold;
  font-family: var(--font-base);
  margin-top: 0;
  margin-bottom: 20px;
}

.cat-feature-dl dt > span {
  display: inline-grid;
  place-items: center;
  background: #696969;
  color: #fff;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 0.6em 0.9em;
  border-radius: 0;
  flex-shrink: 0;
  min-width: 0;
  width: auto;
}

.cat-feature-dl dt > span.--caution {
  background: #e94738;
}

.cat-feature-dl dd {
  margin-top: 0;
  margin-bottom: 60px;
}

.cat-feature-dl .cat-lead {
  margin-bottom: 1.5em;
}

.cat-feature-dl__tag {
  display: flex;
  align-items: center;
  gap: 0.6em;
  font-size: 15px;
  font-weight: bold;
  font-family: var(--font-base);
  margin: 0 0 0.5em;
  flex-wrap: wrap;
}

.cat-feature-dl__tag.--nomal {
  font-weight: normal;
}

.iconcoutin {
  display: inline;
}

/* センター配置モディファイア */
.cat-feature-dl__tag.--center {
  justify-content: center;
}

.cat-feature-dl__tag span {
  display: inline-block;
  background: #696969;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.1em;
  padding: 0.3em 0.7em;
  border-radius: 0;
  flex-shrink: 0;
}

.cat-feature-dl__subheading,
h3.cat-feature-dl__subheading,
h4.cat-feature-dl__subheading,
.c-inner h3.cat-feature-dl__subheading,
.c-inner h4.cat-feature-dl__subheading {
  font-size: 18px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: center;
  letter-spacing: 0.1em;
  margin: 50px 0 2em;
}

.--blbox {
  background: #696969;
  color: #fff;
  padding: 6px 10px;
  width: max-content;
}

.cat-feature-dl__annotation {
  font-size: 13px;
  line-height: 1.8;
  margin: 1em 0 0;
  text-align: right;
}

.cat-feature-dl__annotation span {
  color: #e94738;
}

@media (max-width: 900px) {
  .cat-feature-dl__subheading,
  h3.cat-feature-dl__subheading,
  h4.cat-feature-dl__subheading,
  .c-inner h3.cat-feature-dl__subheading,
  .c-inner h4.cat-feature-dl__subheading {
    font-size: 16px;
  }
}

/* 注意ラベル（インライン） */
.cat-notice-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  background: #e94738;
  border-radius: 0;
  color: #fff;
  font-size: 14px;
  font-weight: bold !important;
  font-family: var(--font-base) !important;
  padding: 0.3em 0.7em;
  margin: 2em 0 0.8em;
}

/* カードグリッド：左揃え統一 */
.cat-card-grid.--text-left .cat-card-grid__title,
.cat-card-grid.--text-left .cat-card-grid__desc {
  text-align: left;
}

.cat-card-grid.--text-left .cat-card-grid__title {
  font-weight: bold;
  font-family: var(--font-base);
  padding-bottom: 0.4em;
  border-bottom: 1px solid #e0e0e0;
}

.cat-feature-dl .cat-content__image {
  margin: 1em 0;
}

/* 工程見出し（テキスト貫通横線） */
.cat-heading-through,
.c-inner .cat-heading-through {
  position: relative;
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  font-family: var(--font-base);
  margin: 60px 0;
}

.cat-heading-through::before {
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 1;
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: #c1c1c1;
}

.cat-heading-through span {
  position: relative;
  z-index: 2;
  display: inline-block;
  padding: 0 1em;
  background-color: #fff;
}

/* 工程サブ見出し（先頭文字拡大） */
.cat-process-title,
.c-inner .cat-process-title {
  font-size: 16px;
  font-family: var(--font-base);
  font-weight: bold;
  margin: 0 0 0.8em;
  line-height: 1.5;
}

.cat-process-title,
.cat-process-title span {
  color: var(--color-text);
}

.cat-process-title span {
  font-size: 150%;
}

.cat-feature-dl .cat-content__table-wrap {
  margin: 1em 0;
}

/* ========================================
   商品リンクグリッド
   ======================================== */

.cat-product-grid {
  margin: 1.5em 0 2em;
}

.cat-product-grid__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cat-product-grid__list.--s220 {
  grid-template-columns: repeat(3, minmax(0, 220px));
  gap: 20px 60px;
  justify-content: center;
}

@media (max-width: 900px) {
  .cat-product-grid__list.--s220 {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

.cat-product-grid__item {
  text-align: center;
}

.cat-product-grid__image {
  margin-bottom: 0.5em;
}

.cat-product-grid__image img {
  max-width: 240px;
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
  margin: 0 auto;
}

.cat-product-grid__name {
  font-size: 13px;
  line-height: 1.5;
  margin: 1em 0;
}

.cat-product-grid__name.--left {
  text-align: left;
}

.cat-product-grid .btn-bordered {
  width: 100%;
  max-width: 100%;
  margin: 0 0 2em;
  box-sizing: border-box;
}

/* ========================================
   フィーチャーDL・商品グリッド レスポンシブ
   ======================================== */

/* ========================================
   おすすめグリッド（画像左+テキスト右カード）
   ======================================== */

.cat-recommend-grid {
  margin: 2em 0;
}

.cat-recommend-grid__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5em;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cat-recommend-grid__link,
.cat-recommend-grid__link:visited {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  text-decoration: none;
  color: inherit;
  padding: 15px;
  border: 1px solid #eee;
  border-radius: 0;
  height: 100%;
  box-sizing: border-box;
  transition:
    box-shadow 0.3s,
    border-color 0.3s;
}

.cat-recommend-grid__link:hover {
  opacity: 0.8;
}

.cat-recommend-grid__image {
  flex-shrink: 0;
  width: 160px;
}

.cat-recommend-grid__image img {
  max-width: 160px;
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0;
}

.cat-recommend-grid__title,
.c-inner .cat-recommend-grid__title {
  font-size: 14px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: left;
  margin: 0 0 0.5em;
}

.cat-recommend-grid__desc {
  font-size: 13px;
  line-height: 1.6;
  margin: 0;
}

.bord--title {
  font-weight: bold;
  font-size: 16px;
  text-align: center;
  border-bottom: 1px solid #ccc;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

/* 余白・罫線なしモディファイア（medal-column03用） */
.cat-recommend-grid.--spacious {
  margin: 4em 0;
}

.cat-recommend-grid.--spacious .cat-recommend-grid__list {
  gap: 3em;
}

.cat-recommend-grid.--spacious .cat-recommend-grid__link,
.cat-recommend-grid.--spacious .cat-recommend-grid__link:visited,
.cat-recommend-grid.--spacious .cat-recommend-grid__link:hover {
  border: none;
  padding: 0;
}

/* 罫線なしモディファイア（emblem-column02用） */
.cat-recommend-grid.--no-border .cat-recommend-grid__link,
.cat-recommend-grid.--no-border .cat-recommend-grid__link:visited,
.cat-recommend-grid.--no-border .cat-recommend-grid__link:hover {
  border: none;
  padding: 0;
}

.emblem_scp {
  text-align: center;
  font-size: 20px;
}

@media (max-width: 900px) {
  .emblem_scp {
    font-size: 16px;
  }
}

/* ========================================
   フィーチャーDL・商品グリッド・おすすめ レスポンシブ
   ======================================== */

@media (max-width: 900px) {
  /* .cat-feature-dl,
  .cat-product-grid,
  .cat-recommend-grid {
    padding-left: 15px;
    padding-right: 15px;
  } */

  .cat-product-grid__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }

  .cat-feature-dl dt {
    font-size: 16px;
    margin-bottom: 20px;
  }

  .cat-feature-dl dd {
    margin-bottom: 40px;
  }

  .cat-recommend-grid__list {
    grid-template-columns: 1fr;
  }

  .cat-recommend-grid__image {
    width: 120px;
  }

  .cat-recommend-grid__image img {
    max-width: 120px;
  }

  /* --no-border: SP時2カラム、縦並び（emblem-column02用） */
  .cat-recommend-grid.--no-border .cat-recommend-grid__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1em;
  }

  .cat-recommend-grid.--no-border .cat-recommend-grid__link,
  .cat-recommend-grid.--no-border .cat-recommend-grid__link:visited {
    flex-direction: column;
    align-items: center;
    gap: 10px;
  }

  .cat-recommend-grid.--no-border .cat-recommend-grid__image {
    width: 160px;
  }

  .cat-recommend-grid.--no-border .cat-recommend-grid__image img {
    max-width: 160px;
  }

  .cat-recommend-grid.--no-border .cat-recommend-grid__title,
  .c-inner .cat-recommend-grid.--no-border .cat-recommend-grid__title {
    text-align: center;
    font-size: 13px;
  }

  .cat-recommend-grid.--no-border .cat-recommend-grid__desc {
    font-size: 12px;
  }
}

.fs-body-category-emblem .fs-c-productList,
.fs-body-category-corp-memorial .fs-c-productList {
  display: none !important;
}

/* @media (max-width: 900px) {
  .fs-body-category-sculpture-cut .fs-c-sortItems,
  .fs-body-category-nameplate-column04 .fs-c-sortItems {
    display: none !important;
  }

  .fs-body-category-sculpture-cut .fs-c-listControl__status,
  .fs-body-category-nameplate-column04 .fs-c-listControl__status {
    margin: 20px auto;
  }
} */

/* ========================================
   賞状テンプレート
   ======================================== */

/* アンカーリンクボタンリスト */
.cat-anchor-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  list-style: none;
  margin: 0 0 60px;
  padding: 0;
}

/* 手動で3列指定する場合のモディファイア */
.cat-anchor-list.--col3,
.cat-anchor-list.--col3--spone {
  grid-template-columns: repeat(3, 1fr);
}

.cat-anchor-list li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1em 1.2em;
  border: 1px solid var(--color-border);
  border-radius: 0;
  font-size: 14px;
  color: var(--color-text);
  text-decoration: none;
  background-image: url(../img/icon_arrow_anchor-link.svg?1);
  background-position: right 10px center;
  background-repeat: no-repeat;
  transition: 0.3s;
  letter-spacing: 0;
}

.cat-anchor-list li a:hover {
  opacity: 0.6;
}

/* 賞状テンプレート（アイテム単位でbg＋container query） */
.cat-certificate {
  display: grid;
  gap: 20px;
  width: 740px;
  max-width: 100%;
  margin: 2em auto;
}

.cat-certificate.--6box {
  grid-template-columns: repeat(2, 1fr);
}

.cat-certificate.--4box {
  grid-template-columns: repeat(2, 1fr);
}

.cat-certificate__item {
  position: relative;
  aspect-ratio: 360 / 520;
  background: url(https://prize.itembox.cloud/item/assets/img/category/certificate/certificatetemplate-made.jpg) no-repeat;
  background-position: 6.4% 7%;
  background-size: contain;
  container-type: inline-size;
  padding: 23.1% 18.2% 14.4% 20.8%;
  box-sizing: border-box;
}

.cat-certificate__title {
  font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif;
  font-size: 13.5cqi;
  text-align: center;
  margin: 0 0 0.3em !important;
  font-weight: bold;
  line-height: 1.2 !important;
}

.cat-certificate__rank {
  font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif;
  font-size: 7cqi;
  text-align: left;
  padding-left: 0.3em;
  margin: 0 0 0.2em !important;
  font-weight: bold;
  line-height: 1.2 !important;
}

.cat-certificate__rank:empty {
  display: none;
}

.cat-certificate__name {
  font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif;
  font-size: 7cqi;
  text-align: right;
  padding-right: 0.35em;
  margin: 0 0 0.4em !important;
  font-weight: bold;
  line-height: 1.3 !important;
}

.cat-certificate__body {
  font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif;
  font-size: 6.6cqi;
  line-height: 1.8;
  text-align: left;
  letter-spacing: 0;
  padding-left: 0;
  margin: 0 0 0.5em !important;
  font-weight: bold;
  word-break: normal;
}

.cat-certificate__footer {
  font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif;
  font-size: 5.5cqi;
  text-align: center;
  margin: 0 !important;
  font-weight: bold;
  line-height: 1.6 !important;
}

/* 賞状テンプレート レスポンシブ */
@media (max-width: 900px) {
  .cat-anchor-list {
    grid-template-columns: 1fr;
    padding: 0;
  }

  .cat-certificate.--6box,
  .cat-certificate.--4box {
    grid-template-columns: 1fr;
    max-width: 360px;
    margin-inline: auto;
    width: 100%;
  }

  .cat-anchor-list.--col3--spone {
    grid-template-columns: 1fr;
  }
}

/* ========================================
   既製賞状テンプレートカード
   ======================================== */

.cat-certificate-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 360px));
  justify-content: center;
  gap: 20px;
  margin: 2em 0;
}

.cat-certificate-card {
  container-type: inline-size;
}

.cat-certificate-card__label {
  font-size: 16px;
  width: 80%;
  text-align: center;
  background: #252525;
  color: #fff;
  font-weight: bold;
  margin: 0 auto 20px !important;
  padding: 0.3em 0;
}

.cat-certificate-card__bg {
  position: relative;
  width: 100%;
  aspect-ratio: 360 / 520;
  background: url(https://prize.itembox.cloud/item/assets/img/category/certificate/certificatetemplate-made.jpg) no-repeat;
  background-position: 6.4% 7%;
  background-size: contain;
}

.cat-certificate-card__inner {
  position: absolute;
  width: 61%;
  top: 16%;
  left: 20.8%;
  font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif;
}

.cat-certificate-card__title {
  /* font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif; */
  font-size: 8.5cqi;
  text-align: center;
  margin: 0 0 0.3em;
  font-weight: bold;
}

.cat-certificate-card__name {
  /* font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif; */
  font-size: 5cqi;
  text-align: right;
  padding-right: 0.35em;
  margin: 0 0 0.3em;
  font-weight: bold;
}

.cat-certificate-card__body {
  /* font-family: "HG正楷書体-PRO", "ヒラギノ明朝 Pro", "MS P明朝", serif; */
  font-size: 4.2cqi;
  line-height: 1.8;
  text-align: left;
  letter-spacing: 0.1em;
  padding-left: 0em;
  margin: 0;
  font-weight: bold;
  word-break: normal;
}

@media (max-width: 900px) {
  .cat-certificate-cards {
    grid-template-columns: 1fr;
    max-width: 360px;
    margin-inline: auto;
    padding: 0 15px;
  }

  .cat-certificate-card__body {
    padding-left: 0;
  }
}

/* ========================================
   タブ切替（CSS only）
   ======================================== */

.cat-tabs {
  margin: 2em 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto 1fr;
}

.cat-tabs__input {
  display: none;
}

.cat-tabs__label {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1em 0.5em;
  font-size: 14px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: center;
  cursor: pointer;
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
  border-bottom: 2px solid #696969;
  border-radius: 6px 6px 0 0;
  margin-right: -1px;
  transition:
    background 0.3s,
    color 0.3s;
  color: var(--color-text);
  grid-row: 1;
}

.cat-tabs__input:checked + .cat-tabs__label {
  background: #696969;
  color: #fff;
  border-color: #696969;
  border-bottom-color: #696969;
}

.cat-tabs__panel {
  display: none;
  padding: 1.5em 0;
  grid-column: 1 / -1;
  grid-row: 2;
}

.cat-tabs__input:nth-of-type(1):checked ~ .cat-tabs__panel:nth-of-type(1),
.cat-tabs__input:nth-of-type(2):checked ~ .cat-tabs__panel:nth-of-type(2),
.cat-tabs__input:nth-of-type(3):checked ~ .cat-tabs__panel:nth-of-type(3) {
  display: block;
}

@media (max-width: 900px) {
  .cat-tabs {
    padding: 0;
  }

  .cat-tabs__label {
    font-size: 12px;
    padding: 0.8em 0.3em;
  }
}

/* ========================================
   背景画像+テキストオーバーレイカード
   ======================================== */

.cat-overlay-card {
  position: relative;
  width: 100%;
  max-width: 740px;
  aspect-ratio: 740 / 390;
  margin: 0 auto 2em;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: 0 0;
}

.cat-overlay-card__body {
  position: absolute;
  width: 48.6%;
  top: 65.4%;
  left: 50%;
  font-size: 14px;
  line-height: 1.8;
}

@media (max-width: 900px) {
  .cat-overlay-card {
    aspect-ratio: auto;
    padding-top: 53%;
    max-width: 100%;
  }

  .cat-overlay-card__body {
    position: static;
    width: auto;
    padding: 1em 15px 0;
    font-size: 13px;
  }
}

/* ========================================
   インタビュー・Q&A
   ======================================== */

.cat-interview {
  margin: 2em 0;
}

.cat-interview__header {
  font-size: 15px;
  font-weight: bold;
  font-family: var(--font-base);
}

.cat-interview__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cat-interview__item {
  padding: 1.5em 0;
  border-bottom: 1px solid #e0e0e0;
}

.cat-interview__item:last-child {
  border-bottom: none;
}

.cat-interview__q {
  display: flex;
  align-items: flex-start;
  gap: 0.8em;
  font-size: 15px;
  font-weight: bold;
  font-family: var(--font-base);
  margin: 0 0 1em;
}

.cat-interview__q-icon {
  flex-shrink: 0;
  width: 40px;
}

.cat-interview__q-icon img {
  max-width: 40px;
  width: 100%;
  height: auto;
  display: block;
}

.cat-interview__a {
  font-size: 14px;
  line-height: 2;
  margin: 0;
  padding-left: calc(40px + 0.8em);
}

@media (max-width: 900px) {
  .cat-interview__a {
    padding-left: 0;
  }
}

/* ========================================
   商品ギャラリー モーダル（lightbox）
   ======================================== */

.product-gallery-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.92);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s,
    visibility 0.3s;
}

.product-gallery-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.product-gallery-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 10;
  width: 44px;
  height: 44px;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
}

.product-gallery-modal__close::before,
.product-gallery-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 2px;
  background: #fff;
}

.product-gallery-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.product-gallery-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.product-gallery-modal__body {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-gallery-modal__slider {
  width: 100%;
  height: 100%;
}

.product-gallery-modal__slider .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-gallery-modal__slider .swiper-slide img {
  max-width: 100vw;
  max-height: 100vh;
  width: auto;
  height: auto;
  object-fit: contain;
  padding: 60px 50px;
  box-sizing: border-box;
}

.product-gallery-modal__slider .swiper-slide iframe {
  width: 80vw;
  max-width: 1200px;
  aspect-ratio: 16 / 9;
  height: auto;
}

.product-gallery-modal__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 50px;
  height: 50px;
  border: none;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.15);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px;
  cursor: pointer;
  transition: background-color 0.2s;
  padding: 0;
}

.product-gallery-modal__arrow:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

.product-gallery-modal__arrow--prev {
  left: 16px;
  background-image: url(../img/icon_arrow_left_white.svg);
}

.product-gallery-modal__arrow--next {
  right: 16px;
  background-image: url(../img/icon_arrow_white.svg);
}

.product-gallery-modal__arrow.swiper-button-disabled {
  opacity: 0.2;
  cursor: default;
}

.product-gallery-modal__counter {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  font-family: var(--font-heading);
  z-index: 10;
}

/* サムネイル動画再生アイコン */
.product-gallery__thumb-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  width: 24px;
  height: 24px;
  background: url(../img/icon-thum_video.svg) no-repeat center / contain;
}

@media (max-width: 900px) {
  .product-gallery-modal__slider .swiper-slide img {
    padding: 50px 10px;
  }

  .product-gallery-modal__slider .swiper-slide iframe {
    width: 95vw;
  }

  .product-gallery-modal__arrow {
    width: 36px;
    height: 36px;
    background-size: 14px;
  }

  .product-gallery-modal__arrow--prev {
    left: 8px;
  }

  .product-gallery-modal__arrow--next {
    right: 8px;
  }
}

/* ========================================
   商品詳細：残りコンテンツ（product-detail-content）
   ======================================== */

.product-detail-content {
  margin-top: 80px;
}

.product-detail-content .cat-content__inner > section {
  margin-bottom: 60px;
}

.product-detail-content .cat-content__inner > section:last-child {
  margin-bottom: 0;
}

.product-detail-content .cat-content__image {
  margin-bottom: 1.5em;
}

.product-detail-content .cat-content__image img {
  max-width: 100%;
  height: auto;
}

/* SP: 余白・フォント・レイアウト調整（900px以下） */
@media (max-width: 900px) {
  .product-detail-content {
    padding: 0 0;
    margin-top: 60px;
  }

  .product-detail-content .cat-content__media,
  .product-detail-content .cat-content__media.--reverse {
    flex-direction: column;
  }

  .product-detail-content .cat-content__media-image {
    max-width: 100%;
    width: 100%;
    margin-bottom: 1em;
  }

  .product-detail-content .cat-content__media-image img {
    max-width: 300px;
    margin: 0 auto;
    display: block;
  }

  .product-detail-content .cat-heading-lined,
  .product-detail-content .cat-heading-lined.--left {
    font-size: 18px;
    margin-bottom: 20px;
  }

  .product-detail-content .cat-content__image {
    margin-bottom: 1em;
  }

  .product-detail-content .cat-lead {
    font-size: 14px;
    margin-bottom: 2em;
  }

  .product-detail-content .cat-content__media-body {
    font-size: 14px;
    line-height: 1.8;
  }
}

/* ==========================================================
   シンプルlightbox（certificate等の画像拡大表示用）
   ========================================================== */
.simple-lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.85);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.3s ease,
    visibility 0.3s ease;
}

.simple-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.simple-lightbox__body {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
  text-align: center;
}

.simple-lightbox__image {
  max-width: 90vw;
  max-height: 80vh;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}

.simple-lightbox__caption {
  color: #fff;
  margin-top: 16px;
  font-size: 14px;
}

.simple-lightbox__close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 44px;
  height: 44px;
  border: none;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  cursor: pointer;
  z-index: 2;
}

.simple-lightbox__close::before,
.simple-lightbox__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 2px;
  background: #fff;
  transform-origin: center;
}

.simple-lightbox__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.simple-lightbox__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.simple-lightbox__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border: none;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 50%;
  cursor: pointer;
  z-index: 2;
}

.simple-lightbox__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform-origin: center;
}

.simple-lightbox__arrow--prev {
  left: 20px;
}

.simple-lightbox__arrow--prev::before {
  transform: translate(-30%, -50%) rotate(-135deg);
}

.simple-lightbox__arrow--next {
  right: 20px;
}

.simple-lightbox__arrow--next::before {
  transform: translate(-70%, -50%) rotate(45deg);
}

@media screen and (max-width: 900px) {
  .simple-lightbox__close {
    top: 10px;
    right: 10px;
    width: 40px;
    height: 40px;
  }

  .simple-lightbox__arrow {
    width: 40px;
    height: 40px;
  }

  .simple-lightbox__arrow--prev {
    left: 10px;
  }

  .simple-lightbox__arrow--next {
    right: 10px;
  }
}

/* ==========================================================
   cat-lead モディファイア（中央寄せ）
   ========================================================== */
.cat-lead.--center {
  text-align: center;
}

.--center {
  text-align: center !important;
}

/* ==========================================================
   cat-content__media-heading
   media-body内の見出し（h2）。装飾は控えめ、本文より少し大きめ、
   本文との間に適切な余白を確保する。
   ========================================================== */
h2.cat-content__media-heading,
h3.cat-content__media-heading,
h4.cat-content__media-heading {
  font-family: var(--font-base, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif);
  font-size: 1.25em;
  font-weight: 600;
  text-align: left;
  line-height: 1.5;
  margin: 0 0 0.8em 0;
  padding: 0;
  border: none;
  color: inherit;
}

@media screen and (max-width: 900px) {
  h2.cat-content__media-heading,
  h3.cat-content__media-heading,
  h4.cat-content__media-heading {
    font-size: 1.15em;
    margin-bottom: 0.6em;
  }
}

/* ==========================================================
   cat-content__video
   iframe動画埋め込みコンテナ（レスポンシブ対応）
   ========================================================== */
.cat-content__video {
  width: 100%;
  max-width: 800px;
  margin: 40px auto;
  aspect-ratio: 16 / 10;
}

@media (max-width: 900px) {
  .cat-content__video {
    margin: 28px auto;
  }
}

.cat-content__video iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ==========================================================
   cat-card-grid（__list無しで __item を直接子に持つパターン用）
   descBox分割型の商品詳細で使用
   ========================================================== */
.cat-card-grid:not(:has(.cat-card-grid__list)) {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5em;
  background: #f7f7f7;
  border-radius: 8px;
  padding: 1.5em;
  margin: 2em 0;
  box-sizing: border-box;
}

.cat-card-grid:not(:has(.cat-card-grid__list)) > .cat-card-grid__item {
  width: calc(50% - 0.75em);
  margin-bottom: 0;
  box-sizing: border-box;
}

.cat-card-grid.--col3:not(:has(.cat-card-grid__list)) > .cat-card-grid__item {
  width: calc(33.333% - 1em);
}

.cat-card-grid.--col4:not(:has(.cat-card-grid__list)) > .cat-card-grid__item {
  width: calc(25% - 1.125em);
}

.cat-card-grid:not(:has(.cat-card-grid__list)) > .cat-card-grid__item img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto 0.5em;
  border-radius: 4px;
}

.cat-card-grid:not(:has(.cat-card-grid__list)) > .cat-card-grid__item p {
  font-size: 13px;
  line-height: 1.6;
  text-align: left;
  margin: 0.5em 0 0;
}

@media screen and (max-width: 900px) {
  .cat-card-grid:not(:has(.cat-card-grid__list)) > .cat-card-grid__item,
  .cat-card-grid.--col3:not(:has(.cat-card-grid__list)) > .cat-card-grid__item,
  .cat-card-grid.--col4:not(:has(.cat-card-grid__list)) > .cat-card-grid__item {
    width: 100%;
  }
}

/* ==========================================================
   余白調整ユーティリティ
   要素間の余白が詰まってしまう箇所でスポット的に適用
   ========================================================== */

/* 上に余白を追加（小・中・大） */
.--mt-sm {
  margin-top: 1em !important;
}

.--mt-md {
  margin-top: 2em !important;
}

.--mt-lg {
  margin-top: 3em !important;
}

/* 下に余白を追加（小・中・大） */
.--mb-sm {
  margin-bottom: 1em !important;
}

.--mb-md {
  margin-bottom: 2em !important;
}

.--mb-lg {
  margin-bottom: 3em !important;
}

/* product-price 内の複数テーブル間の余白 */
.product-price .product-price__table-wrap + h2,
.product-price .product-price__table-wrap + .cat-heading-lined,
.product-price .product-price__table-wrap + .cat-content__image {
  margin-top: 60px;
}

/* product-spec の後に続く要素（画像・バナー等）の余白 */
.product-spec .product-spec__table + .cat-content__image,
.product-spec .product-spec__table + .cat-content__video {
  margin-top: 60px;
}

@media screen and (max-width: 900px) {
  .product-price .product-price__table-wrap + h2,
  .product-price .product-price__table-wrap + .cat-heading-lined {
    margin-top: 1.5em;
  }

  .product-spec .product-spec__table + .cat-content__image,
  .product-spec .product-spec__table + .cat-content__video {
    margin-top: 1.5em;
  }
}

/* ==========================================================
   product-spec-pre（お急ぎ便の営業日カレンダー/スケジュール/バナー）
   product-spec（商品情報）の上に配置するセクション
   ========================================================== */
.product-spec-pre {
  padding: 0 0 1em;
}

.product-spec-pre > .-base > section {
  margin-bottom: 2em;
}

/* カレンダーiframe */
.product-spec__calendar {
  margin: 1em auto;
  max-width: 740px;
}

.product-spec__calendar iframe {
  display: block;
  width: 100%;
  border: 0;
}

.product-spec__calendar.--pc {
  display: block;
}

.product-spec__calendar.--sp {
  display: none;
}

@media screen and (max-width: 900px) {
  .product-spec__calendar.--pc {
    display: none;
  }

  .product-spec__calendar.--sp {
    display: block;
  }
}

/* business-calendar__footer 内の注意文（cat-lead）のマージン調整 */
.business-calendar__footer .cat-lead {
  margin: 0;
  flex: 1;
  min-width: 0;
}

/* オーダーバナー（データ入稿/デザイン作成の2カラム） */
.product-spec__order-bnr {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 360px));
  justify-content: center;
  gap: 20px;
  margin: 1em 0;
}

.product-spec__order-bnr .cat-content__image {
  margin: 0;
  min-width: 0;
}

@media screen and (max-width: 900px) {
  .product-spec__order-bnr {
    grid-template-columns: minmax(0, 360px);
  }
}

.product-spec__order-bnr .cat-content__image a {
  display: block;
  transition: opacity 0.2s;
}

.product-spec__order-bnr .cat-content__image a:hover {
  opacity: 0.8;
}

@media screen and (max-width: 900px) {
  .product-spec__order-bnr {
    gap: 12px;
  }
}

/* ==========================================================
   product-price__table-wrap 横スクロール示唆（SP）
   - カスタムスクロールバーを常時表示（iOS Safari対応）
   ========================================================== */
@media screen and (max-width: 900px) {
  /* ネイティブスクロールバーを非表示（カスタムに置き換え） */
  .product-price__table-wrap {
    position: relative;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
  }

  .product-price__table-wrap::-webkit-scrollbar {
    display: none;
  }

  /* カスタムスクロールバー（JS注入、常時表示） */
  .price-table-scrollbar {
    height: 6px;
    background: #f4f5f7;
    border-radius: 3px;
    position: relative;
    margin-top: 6px;
    cursor: pointer;
  }

  .price-table-scrollbar__thumb {
    height: 6px;
    background: #c1c1c1;
    border-radius: 3px;
    position: absolute;
    top: 0;
    left: 0;
    cursor: grab;
    transition: background 0.15s;
    min-width: 24px;
  }

  .price-table-scrollbar__thumb:active {
    cursor: grabbing;
    background: #999;
  }
}

/* ==========================================================
   cat-content__inner--spaced
   イレギュラー商品向け: h2セクション間の余白（PC 100px / SP 60px）
   ========================================================== */
.cat-content__inner--spaced > .cat-heading-lined {
  margin-top: 100px;
}

@media (max-width: 900px) {
  .cat-content__inner--spaced > .cat-heading-lined {
    margin-top: 60px;
  }
}

/* ==========================================================
   cat-feature-list（dl非依存の2カラム特徴リスト）
   - 左: テキスト（見出し + 説明）
   - 右: 画像
   - gap: 40px
   - 各項目間の余白: 56px (SP: 32px)
   - 見出し上端と画像上端を揃える（align-items: start）
   ========================================================== */
.cat-feature-list {
  margin: 2em 0;
  padding: 0;
  list-style: none;
}

.cat-feature-list__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 240px;
  column-gap: 40px;
  row-gap: 16px;
  align-items: start;
  margin: 0 0 56px;
  padding: 0;
}

.cat-feature-list__item:last-child {
  margin-bottom: 0;
}

.cat-feature-list__item--text-only {
  grid-template-columns: 1fr;
}

/* 左テキスト領域 */
.cat-feature-list__body {
  min-width: 0;
}

.cat-feature-list__title,
.c-inner .cat-feature-list__title {
  display: block;
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #111;
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  text-align: left;
}

.cat-feature-list__title.--center {
  text-align: center;
}

.cat-feature-list__title > span {
  display: inline-grid;
  place-items: center;
  background: #696969;
  color: #fff;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 0.6em 0.9em;
  min-width: 0;
  width: auto;
  height: auto;
  margin-right: 0.8em;
  vertical-align: middle;
  border-radius: 0;
  white-space: nowrap;
}

.cat-feature-list__title > span.--caution {
  background: #e94738;
}

.cat-feature-list__text {
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.03em;
  color: #333;
  margin: 0;
  padding: 0;
}

.cat-feature-list__text > p {
  margin: 0 0 1em;
}

.cat-feature-list__text > p:last-child {
  margin-bottom: 0;
}

/* 右画像領域 */
.cat-feature-list__figure {
  margin: 0;
  padding: 0;
  text-align: center;
}

.cat-feature-list__figure img {
  width: auto;
  height: auto;
  display: block;
  max-width: 100%;
  margin: 0 auto;
}

@media (max-width: 900px) {
  .cat-feature-list__item {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 0;
    margin-bottom: 60px;
  }

  /* SP時は h3 → 画像 → テキスト の順に並べ替え */
  .cat-feature-list__body {
    display: contents;
  }

  .cat-feature-list__title {
    order: 1;
  }

  .cat-feature-list__figure {
    order: 2;
  }

  .cat-feature-list__text {
    order: 3;
  }

  .cat-feature-list__title,
  .c-inner .cat-feature-list__title {
    font-size: 16px;
  }

  .cat-feature-list__text {
    font-size: 14px;
  }
}

/* ==========================================================
   cat-cards（画像＋タイトル＋説明のグリッドカード）
   - gridベース、radiusなし、装飾なし
   - col2/col3/col4 モディファイア対応
   - original-acrylic_block の代替
   ========================================================== */
.cat-cards {
  --card-max-width: 340px;
  /* デフォルト。モディファイアで上書き */
  --card-gap: 32px;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--card-gap);
  margin: 2em auto;
  /* 中央寄せ */
  padding: 0;
}

.cat-cards.--col2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: calc(var(--card-max-width) * 2 + var(--card-gap));
}

.cat-cards.--col3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: calc(var(--card-max-width) * 3 + var(--card-gap) * 2);
}

.cat-cards.--col4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: calc(var(--card-max-width) * 4 + var(--card-gap) * 3);
}

/* 画像幅モディファイア（必要に応じて追加可能） */
.cat-cards.--card-240 {
  --card-max-width: 240px;
}

.cat-cards.--card-260 {
  --card-max-width: 260px;
}

.cat-cards.--card-280 {
  --card-max-width: 280px;
}

.cat-cards.--card-300 {
  --card-max-width: 300px;
}

.cat-cards.--card-320 {
  --card-max-width: 320px;
}

.cat-cards.--card-340 {
  --card-max-width: 340px;
}

.cat-cards.--card-360 {
  --card-max-width: 360px;
}

.cat-cards.--card-400 {
  --card-max-width: 400px;
}

/* gapモディファイア */
.cat-cards.--gap-16,
.cat-card-grid__list.--gap-16,
.--gap-16 {
  --card-gap: 16px;
  gap: 16px;
}

.cat-cards.--gap-20,
.cat-card-grid__list.--gap-20,
.--gap-20 {
  --card-gap: 20px;
  gap: 20px;
}

.cat-cards.--gap-24,
.cat-card-grid__list.--gap-24,
.--gap-24 {
  --card-gap: 24px;
  gap: 24px;
}

.cat-cards.--gap-32,
.cat-card-grid__list.--gap-32,
.--gap-32 {
  --card-gap: 32px;
  gap: 32px;
}

.cat-cards.--gap-40,
.cat-card-grid__list.--gap-40,
.--gap-40 {
  --card-gap: 40px;
  gap: 40px;
}

.cat-cards.--gap-48,
.cat-card-grid__list.--gap-48,
.--gap-48 {
  --card-gap: 48px;
  gap: 48px;
}

.cat-cards.--gap-64,
.cat-card-grid__list.--gap-64,
.--gap-64 {
  --card-gap: 64px;
  gap: 64px;
}

@media (max-width: 900px) {
  .acrylic--is .--gap-64 {
    gap: 40px 20px;
  }

  .acrylic--is h3.cat-cards__title,
  .c-inner .acrylic--is h3.cat-cards__title {
    font-size: 16px;
  }

  .cat-cards.--col2.--spcol1 {
    grid-template-columns: 1fr;
  }
}

/* PC時のみgap調整モディファイア */
@media (min-width: 901px) {
  .cat-cards.--gap-64-pc {
    --card-gap: 64px;
  }

  .cat-cards.--gap-48-pc {
    --card-gap: 48px;
  }
}

/* 2列レイアウトで最後の要素が1つだけ余る場合に中央配置（PC時のみ） */
@media (min-width: 901px) {
  .cat-cards.--col2.--center-last-odd .cat-cards__item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: center;
  }
}

.cat-card-grid__list.--medal_glay .cat-card-grid__title {
  text-align: center;
  background: #696969;
  color: #fff;
  margin: 10px 0 0;
}

.cat-cards__item {
  display: grid;
  grid-auto-rows: auto;
  align-content: start;
  gap: 12px;
  margin: 0;
  padding: 0;
}

.cat-cards__image {
  margin: 0;
  padding: 0;
}

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

.cat-cards__title,
.c-inner .cat-cards__title {
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: bold;
  line-height: 1.55;
  letter-spacing: 0.03em;
  color: #111;
  margin: 0;
  padding: 0;
  border: 0;
  text-align: left;
}

.cat-cards__desc {
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.02em;
  color: #333;
  margin: 0;
}

.cat-cards__desc > p {
  margin: 0 0 0.8em;
}

.cat-cards__desc > p:last-child {
  margin-bottom: 0;
}

.cat-cards__desc .--caution {
  color: #e94738;
  font-size: 12px;
}

.cat-cards__desc .--caution-unsize {
  color: #e94738;
}

.cat-bgtit,
.c-inner .cat-bgtit {
  font-family: var(--font-base);
  font-size: 16px;
  font-weight: bold;
  line-height: 1.55;
  color: #fff;
  background: #696969;
  margin: 10px auto 0;
  padding: 6px;
  border: 0;
  width: 100%;
  text-align: center;
}

.lazor {
  font-family: var(--font-base) !important;
  text-align: center;
  font-size: 16px;
  font-weight: normal;
  margin: 0px auto 0;
}

/* 横並びレイアウトモディファイア（nameplate-column01用） */
.cat-cards.--horizontal {
  grid-template-columns: 1fr;
  max-width: 100%;
}

.cat-cards.--horizontal .cat-cards__item {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 24px;
  align-items: start;
}

.cat-cards.--horizontal .cat-cards__image {
  width: 300px;
}

.cat-cards.--horizontal .cat-cards__content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (max-width: 900px) {
  .cat-cards {
    --card-gap: 20px;
  }

  .cat-cards.--col2,
  .cat-cards.--col3,
  .cat-cards.--col4 {
    max-width: 100%;
    /* SP は全幅 */
  }

  .cat-cards.--col3,
  .cat-cards.--col4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cat-cards__title,
  .c-inner .cat-cards__title {
    font-size: 14px;
  }

  .cat-cards__desc {
    font-size: 14px;
  }

  /* 横並びレイアウトのSP時：テキスト上・画像下 */
  .cat-cards.--horizontal .cat-cards__item {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .cat-cards.--horizontal {
    gap: 0;
  }

  .cat-cards.--horizontal .cat-cards__image {
    grid-row: 2;
    width: 100%;
  }

  .cat-cards.--horizontal .cat-cards__content {
    grid-row: 1;
  }

  /* --sp-image-first: SP時に画像上・テキスト下 */
  .cat-cards.--horizontal.--sp-image-first .cat-cards__image {
    grid-row: 1;
  }

  .cat-cards.--horizontal.--sp-image-first .cat-cards__content {
    grid-row: 2;
  }

  .cat-bgtit,
  .c-inner .cat-bgtit {
    font-size: 14px;
  }
}

/* ==========================================================
   cat-icon-cards（アイコン画像＋タイトル＋説明の3列）
   - original-acrylic_many の代替
   ========================================================== */
.cat-icon-cards {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin: 2em 0;
  padding: 0;
}

.cat-icon-cards__item {
  display: grid;
  grid-template-columns: 72px 1fr;
  grid-template-rows: auto 1fr;
  column-gap: 20px;
  row-gap: 6px;
  align-items: start;
  margin: 0;
  padding: 0;
}

.cat-icon-cards__image {
  grid-row: 1 / span 2;
  margin: 0;
  padding: 0;
}

.cat-icon-cards__image img {
  width: 72px;
  height: 72px;
  display: block;
  max-width: 100%;
}

.cat-icon-cards__title,
.c-inner .cat-icon-cards__title {
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.03em;
  color: #111;
  margin: 0;
  padding: 0;
  border: 0;
  text-align: left;
}

.cat-icon-cards__desc {
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: #333;
  margin: 0;
}

.cat-icon-cards__desc > p {
  margin: 0;
}

@media (max-width: 900px) {
  .cat-icon-cards {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .cat-icon-cards__item {
    grid-template-columns: 64px 1fr;
    column-gap: 16px;
  }

  .cat-icon-cards__image img {
    width: 64px;
    height: 64px;
  }
}

/* ==========================================================
   cat-showcase（画像＋タイトル＋説明＋スペック表のセット）
   - 商品バリエーション紹介
   ========================================================== */
.cat-showcase {
  list-style: none;
  display: grid;
  gap: 56px;
  margin: 2em 0;
  padding: 0;
}

.cat-showcase__item {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  column-gap: 40px;
  row-gap: 20px;
  align-items: start;
  margin: 0;
  padding: 0;
}

.cat-showcase__image {
  margin: 0;
  padding: 0;
}

.cat-showcase__image img,
.cat-showcase__image a img {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100%;
}

.cat-showcase__image a {
  display: block;
  transition: opacity 0.2s ease;
}

.cat-showcase__image a:hover {
  opacity: 0.8;
}

.cat-showcase__body {
  min-width: 0;
  display: grid;
  gap: 16px;
}

.cat-showcase__body .cat-heading-h3 {
  margin: 0 auto 10px !important;
}

.cat-showcase__title,
.c-inner .cat-showcase__title {
  font-family: var(--font-base);
  font-size: 16px;
  font-weight: bold;
  line-height: 1.55;
  letter-spacing: 0.04em;
  color: #111;
  margin: 0;
  padding: 0;
  border: 0;
  text-align: left;
}

.cat-showcase__desc {
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.03em;
  color: #333;
  margin: 0;
}

.cat-showcase__desc > p {
  margin: 0 0 0.8em;
}

.cat-showcase__desc > p:last-child {
  margin-bottom: 0;
}

.cat-showcase__desc .--caution {
  color: #e94738;
  font-size: 14px;
}

.cat-showcase__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}

.cat-showcase__table th,
.cat-showcase__table td {
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
  text-align: left;
  vertical-align: top;
  font-weight: 400;
  background: transparent;
}

.cat-showcase__table th {
  width: 40%;
  font-weight: 500;
  color: #666;
}

.cat-showcase__table tr:first-child th,
.cat-showcase__table tr:first-child td {
  border-top: 1px solid #111;
}

@media (max-width: 900px) {
  .cat-showcase {
    gap: 40px;
  }

  .cat-showcase__item {
    grid-template-columns: 1fr;
    row-gap: 16px;
  }

  .cat-showcase__title,
  .c-inner .cat-showcase__title {
    font-size: 14px;
  }

  .cat-showcase__desc {
    font-size: 14px;
  }
}

/* ==========================================================
   cat-size-showcase（サイズ紹介: 画像＋説明＋スクロールテーブル）
   ========================================================== */
.cat-size-showcase {
  display: grid;
  gap: 40px;
  margin: 2em 0;
  padding: 0;
}

.cat-size-showcase__row {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  column-gap: 40px;
  row-gap: 16px;
  align-items: start;
}

.cat-size-showcase__row.--stacked {
  grid-template-columns: 1fr;
}

.cat-size-showcase__image {
  margin: 0 auto;
  padding: 0;
}

.cat-size-showcase__image img {
  height: auto;
  display: block;
  max-width: 100%;
}

.cat-size-showcase__body {
  min-width: 0;
  display: grid;
  gap: 16px;
}

.cat-size-showcase__subtitle,
.c-inner .cat-size-showcase__subtitle {
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #111;
  margin: 0;
  padding: 0;
  border: 0;
  text-align: left;
}

.cat-size-showcase__text {
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.03em;
  color: #333;
  margin: 0;
}

.cat-size-showcase__table-wrap {
  overflow-x: auto;
  max-width: 100%;
}

.cat-size-showcase__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}

.cat-size-showcase__table caption {
  caption-side: bottom;
  text-align: left;
  line-height: 1.7;
  margin-top: 10px;
  padding: 0;
}

.cat-size-showcase__table thead th {
  border-bottom: 1px solid #e5e5e5;
  padding: 12px 14px;
  vertical-align: top;
  font-weight: normal;
  text-align: center;
  font-size: 14px;
}

.cat-size-showcase__table tbody th,
.cat-size-showcase__table tbody td {
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
  text-align: center;
  vertical-align: top;
  font-weight: 400;
  background: transparent;
}

.cat-size-showcase__table tbody th {
  white-space: nowrap;
  font-weight: normal;
}

.--bg-showc {
  background: #696969;
  color: #fff !important;
  padding: 6px 10px !important;
  width: max-content !important;
}

@media (max-width: 900px) {
  .cat-size-showcase {
    gap: 32px;
  }

  .cat-size-showcase__row {
    grid-template-columns: 1fr;
    row-gap: 16px;
  }

  .cat-size-showcase__subtitle,
  .c-inner .cat-size-showcase__subtitle {
    font-size: 14px;
  }
}

/* ==========================================================
   cat-content__inner--spaced 内の画像余白（倍）
   ========================================================== */
.cat-content__inner--spaced > .cat-content__image,
.cat-content__inner--spaced .cat-content__image {
  margin-top: 40px;
  margin-bottom: 40px;
}

@media (max-width: 900px) {
  .cat-content__inner--spaced > .cat-content__image,
  .cat-content__inner--spaced .cat-content__image {
    margin-top: 28px;
    margin-bottom: 28px;
  }
}

/* ==========================================================
   cat-heading-lined 内のインライン画像
   - 装飾画像はセンタリング
   - 下の見出しテキストとの間に 30px
   ========================================================== */
.cat-heading-lined .cat-content__inline-img {
  display: block;
  margin: 0 auto 30px;
  text-align: center;
}

.cat-heading-lined .cat-content__inline-img img {
  display: inline-block;
  max-width: 100%;
  height: auto;
}

/* ==========================================================
   cat-showcase__item --stacked（縦落とし）
   ========================================================== */
.cat-showcase__item.--stacked {
  grid-template-columns: 1fr;
  row-gap: 24px;
}

.cat-showcase__item.--stacked .cat-showcase__image {
  display: grid;
  place-items: center;
}

.cat-showcase__item.--stacked .cat-showcase__image img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
}

/* ==========================================================
   cat-cards 画像の最大幅制限（引き伸ばし抑制）
   - 元画像 340x250 を上限に、コンテンツ幅より大きくしない
   ========================================================== */
.cat-cards__image {
  display: grid;
  place-items: center;
}

.cat-cards__image img {
  width: 100%;
  max-width: 340px;
  height: auto;
  display: block;
}

/* ==========================================================
   cat-icon-cards 縦落としレイアウト（上書き）
   - アイコン中央
   - 見出し中央
   - 説明文は左寄せ
   ========================================================== */
.cat-icon-cards__item {
  grid-template-columns: 1fr;
  grid-template-rows: auto auto 1fr;
  row-gap: 14px;
  text-align: left;
}

.cat-icon-cards__image {
  grid-row: auto;
  grid-column: 1;
  display: grid;
  place-items: center;
}

.cat-icon-cards__image img {
  width: 72px;
  height: 72px;
  display: block;
}

.cat-icon-cards__title,
.c-inner .cat-icon-cards__title {
  text-align: center;
  font-size: 16px;
  font-weight: bold;
}

.cat-icon-cards__desc {
  text-align: left;
}

@media (max-width: 900px) {
  .cat-icon-cards__title,
  .c-inner .cat-icon-cards__title {
    font-size: 14px;
  }
}

/* ==========================================================
   cat-subheading（バッジ風サブ見出し h3/h4 用）
   - cat-feature-list__title > span と同じあしらい
   - 灰色背景 + 白文字 + 小フォント + 四角
   ========================================================== */
.cat-subheading,
.c-inner .cat-subheading {
  display: inline-grid;
  place-items: center;
  background: #696969;
  color: #fff;
  font-family: var(--font-base);
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 0.6em 0.9em;
  margin: 0 0 16px;
  min-width: 0;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  white-space: nowrap;
  text-align: left;
}

/* cat-subheading --center（センター・装飾なし・通常見出しスタイル） */
.cat-subheading.--center,
.c-inner .cat-subheading.--center {
  display: block;
  background: transparent;
  color: #111;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.04em;
  padding: 0;
  margin: 0 0 30px;
  white-space: normal;
  text-align: center;
}

@media (max-width: 900px) {
  .cat-subheading.--center,
  .c-inner .cat-subheading.--center {
    font-size: 16px;
    margin-bottom: 20px;
  }
}

/* ==========================================================
   cat-card-group（カードグリッドをまとめる背景付きラッパー）
   ========================================================== */
.cat-card-group {
  background: #f7f7f7;
  padding: 40px;
  margin: 24px 0;
}

.cat-card-group > :first-child {
  margin-top: 0;
}

.cat-card-group > :last-child {
  margin-bottom: 0;
}

.cat-card-group > p {
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.03em;
  color: #333;
  margin: 0 0 20px;
}

@media (max-width: 900px) {
  .cat-card-group {
    padding: 20px;
    margin: 20px 0;
  }

  .cat-card-group > p {
    font-size: 14px;
  }
}

/* ==========================================================
   cat-heading-lined --caution（注意見出しモディファイア）
   - テキスト赤 + 下線赤で通常h2と区別
   ========================================================== */
.cat-heading-lined.--caution,
.c-inner .cat-heading-lined.--caution {
  color: #e94738;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="54" height="1"><rect width="54" height="1" fill="%23E94738"/></svg>');
}

/* ==========================================================
   cat-note-box --caution（注意枠モディファイア）
   ========================================================== */
.cat-note-box.--caution {
  background: #fef7f6;
}

.cat-note-box.--caution > p {
  color: #e94738;
}

.cat-note-box.--caution .--caution {
  color: #e94738;
}

/* ==========================================================
   cat-note-box（注意・補足ボックス）
   ========================================================== */
.cat-note-box {
  margin: 1.5em 0;
  padding: 24px 28px;
  background: #bccae7;
  border: 0;
}

.cat-note-box > p {
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.03em;
  color: #fff;
  margin: 0 0 0.8em;
}

.cat-note-box > p:last-child {
  margin-bottom: 0;
}

.cat-note-box .--caution {
  color: #e94738;
  font-size: 14px;
}

@media (max-width: 900px) {
  .cat-note-box {
    padding: 18px 20px;
  }

  .cat-note-box > p {
    font-size: 14px;
  }
}

/* アイコン付き情報ブロック（背景なし） */
.cat-info-block {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin: 2em 0;
}

.cat-info-block__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
}

.cat-info-block__icon img {
  width: 100%;
  height: auto;
  display: block;
}

.cat-info-block__content {
  flex: 1;
}

.cat-info-block__title {
  font-family: var(--font-base);
  font-size: 16px;
  font-weight: bold;
  margin: 0 0 0.5em;
  color: #111;
}

.cat-info-block__content > p {
  font-family: var(--font-base);
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: 0.03em;
  color: #333;
  margin: 0 0 0.8em;
  padding-top: 8px;
}

.cat-info-block__content > p:last-child {
  margin-bottom: 0;
}

@media (max-width: 900px) {
  .cat-info-block {
    gap: 12px;
  }

  .cat-info-block__icon {
    width: 32px;
    height: 32px;
  }

  .cat-info-block__title {
    font-size: 15px;
  }
}

/* ==========================================================
   cat-cards 追加モディファイア
   ========================================================== */
.cat-cards.--card-170 {
  --card-max-width: 170px;
}

.cat-cards.--card-200 {
  --card-max-width: 200px;
}

.cat-cards.--card-220 {
  --card-max-width: 220px;
}

/* cat-cards の行設定は grid-auto-rows: auto に統一済みのため、:has() 派生ルールは削除 */

/* cat-cards 追加幅モディファイア */
.cat-cards.--card-350 {
  --card-max-width: 350px;
}

.cat-cards.--card-380 {
  --card-max-width: 380px;
}

/* cat-cards__tagline（素材名・サブタイトル用、赤字） */
.cat-cards__tagline,
.c-inner .cat-cards__tagline {
  font-family: var(--font-base);
  font-size: 12px;
  line-height: 1.55;
  letter-spacing: 0.03em;
  color: #e94738;
  margin: 0;
  padding: 0;
  text-align: left;
}

.cat-cards__tagline .--caution {
  color: #e94738;
}

/* ==========================================================
   cat-compare-table（仕様比較テーブル：Aセット vs Bセット等）
   ========================================================== */
.cat-compare-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0.02em;
  color: #333;
  margin: 24px 0;
}

.cat-compare-table thead th {
  padding: 14px 16px;
  background: #f7f7f7;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  border: 1px solid #e5e5e5;
}

.cat-compare-table tbody th,
.cat-compare-table tbody td {
  padding: 14px 16px;
  border: 1px solid #e5e5e5;
  text-align: left;
  vertical-align: middle;
  font-weight: 400;
  background: transparent;
}

/* --align-left モディファイアは縦揃え中央 */
.cat-compare-table.--align-left tbody th,
.cat-compare-table.--align-left tbody td {
  vertical-align: middle;
}

/* --th-nowrap モディファイア：th を折り返さない（PC/SP共通） */
.cat-compare-table.--th-nowrap tbody th {
  white-space: nowrap;
}

.--width100 {
  width: 100px;
}

.--width140 {
  width: 140px;
}

.--width150 {
  width: 150px;
}

/* --th-nowrap-sp モディファイア：SP時のみtbodyのthを折り返さない */
@media (max-width: 900px) {
  .cat-compare-table.--th-nowrap-sp tbody th {
    white-space: nowrap !important;
  }
}

.cat-compare-table tbody th {
  background: #f7f7f7;
  color: #111;
  white-space: nowrap;
  width: 28%;
}

.cat-compare-table tbody td {
  text-align: center;
}

@media (max-width: 900px) {
  .cat-compare-table {
    font-size: 14px;
    width: 100%;
    table-layout: auto;
    word-break: break-word;
  }

  .cat-compare-table thead th,
  .cat-compare-table tbody th,
  .cat-compare-table tbody td {
    padding: 10px 10px;
    white-space: normal;
  }

  .cat-compare-table tbody th {
    width: auto;
    min-width: 0;
  }
}

/* cat-showcase --reverse（テキスト左・画像右） */
.cat-showcase__item.--reverse {
  grid-template-columns: minmax(0, 1fr) 320px;
}

@media (max-width: 900px) {
  .cat-showcase__item.--reverse {
    grid-template-columns: 1fr;
  }
}

/* cat-heading-lined__sub（h2 内のサブタイトル） */
.cat-heading-lined__sub,
.c-inner .cat-heading-lined__sub {
  display: block;
  margin-top: 10px;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: normal;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #666;
}

@media (max-width: 900px) {
  .cat-heading-lined__sub,
  .c-inner .cat-heading-lined__sub {
    font-size: 12px;
  }
}

/* cat-content__inner--spaced 内の cat-content__media の下余白 */
.cat-content__inner--spaced .cat-content__media {
  margin-bottom: 40px;
}

@media (max-width: 900px) {
  .cat-content__inner--spaced .cat-content__media {
    margin-bottom: 28px;
  }
}

/* ==========================================================
   cat-section（h2 ごとのラッパーで上下余白を取る）
   ========================================================== */
.cat-content__inner--spaced .cat-section {
  margin-top: 100px;
}

.cat-content__inner--spaced .cat-section:first-of-type {
  margin-top: 0;
}

.cat-content__inner--spaced .cat-section > .cat-heading-lined {
  margin-top: 0;
}

@media (max-width: 900px) {
  .cat-content__inner--spaced .cat-section {
    margin-top: 60px;
  }
}

/* ==========================================================
   cat-heading-h3（h3 専用装飾：左に赤縦線、左寄せ、ゴシック）
   - .c-inner h3 の明朝・center 継承を打ち消す
   - h2（center + 下線）と視覚的に区別
   ========================================================== */
.cat-heading-h3,
.c-inner .cat-heading-h3 {
  position: static;
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #111;
  margin: 40px 0 20px;
  padding: 0;
  border: 0;
  text-align: center;
}

.cat-heading-h3::before,
.c-inner .cat-heading-h3::before,
.cat-heading-h3::after,
.c-inner .cat-heading-h3::after {
  content: none;
}

.cat-heading-h3-red,
.c-inner .cat-heading-h3-red {
  position: static;
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #e94738;
  margin: 40px 0 20px;
  padding: 0;
  border: 0;
  text-align: center;
}

/* cat-heading-h3 直後の要素余白 */
.cat-heading-h3 + * {
  margin-top: 0;
}

.cont__mmtit,
.c-inner .cont__mmtit {
  position: static;
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #111;
  margin: 0px 0 30px;
  padding: 0;
  border: 0;
  text-align: center;
}

@media (max-width: 900px) {
  .cat-heading-h3,
  .c-inner .cat-heading-h3,
  .cat-heading-h3-red,
  .c-inner .cat-heading-h3-red {
    margin: 32px 0;
  }

  .cont__mmtit,
  .c-inner .cont__mmtit {
    font-size: 16px;
  }
}

.--asps {
  margin: 0 auto 20px !important;
  text-align: left !important;
}

/* ========================================
   お役立ち情報
   ======================================== */
.column--casebox {
  display: grid;
  gap: 40px 80px;
  justify-content: center;
  grid-template-columns: repeat(3, minmax(0, 216px));
}

.column--casebox figure {
  margin-bottom: 10px;
}

@media (max-width: 900px) {
  .column--casebox {
    gap: 28px 40px;
  }
}

@media (max-width: 568px) {
  .column--casebox {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

/* ==========================================================
   cat-content__inner--spaced 内の要素間余白調整（40px標準）
   ========================================================== */
.cat-content__inner--spaced .cat-heading-h3 {
  margin-top: 40px;
}

@media (max-width: 900px) {
  .cat-content__inner--spaced .cat-heading-h3 {
    margin-top: 28px;
  }
}

/* ==========================================================
   cat-cards__title の h3/h4 別対応
   - h3: 18px（メインタイトル）
   - h4: 16px + センター + 下罫線（サブアイテムタイトル）
   ========================================================== */
h3.cat-cards__title,
.c-inner h3.cat-cards__title {
  font-size: 18px;
}

h4.cat-cards__title,
.c-inner h4.cat-cards__title {
  font-size: 16px;
  text-align: center;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid #ccc;
}

@media (max-width: 900px) {
  h3.cat-cards__title,
  .c-inner h3.cat-cards__title {
    font-size: 18px;
  }

  h4.cat-cards__title,
  .c-inner h4.cat-cards__title {
    font-size: 14px;
  }
}

/* ==========================================================
   cat-cards --text-center モディファイア
   - h3 title / tagline をセンター寄せ（descは左寄せ維持）
   ========================================================== */
.cat-cards.--text-center .cat-cards__title,
.cat-cards.--text-center .cat-cards__tagline {
  text-align: center;
}

/* ---------- cat-card-grid: flex→grid + radius 0 + max-width方式 ---------- */
.cat-card-grid {
  --card-max-width: 240px;
  /* デフォルト。モディファイアで上書き */
  --card-gap: 70px;
  background: transparent;
  padding: 0;
  margin: 24px auto;
  /* 中央寄せ */
  border-radius: 0;
}

/* 列数モディファイア + max-width */
.cat-card-grid.--col2 {
  max-width: calc(var(--card-max-width) * 2 + var(--card-gap));
}

.cat-card-grid.--col3 {
  max-width: calc(var(--card-max-width) * 3 + var(--card-gap) * 2);
}

.cat-card-grid.--col4 {
  max-width: calc(var(--card-max-width) * 4 + var(--card-gap) * 3);
}

/* 画像幅モディファイア */
.cat-card-grid.--card-167 {
  --card-max-width: 167px;
}

.cat-card-grid.--card-170 {
  --card-max-width: 170px;
}

.cat-card-grid.--card-190 {
  --card-max-width: 190px;
}

.cat-card-grid.--card-216 {
  --card-max-width: 216px;
}

.cat-card-grid.--card-240 {
  --card-max-width: 240px;
}

.cat-card-grid.--card-280 {
  --card-max-width: 280px;
}

.cat-card-grid.--card-300 {
  --card-max-width: 300px;
}

.cat-card-grid.--card-340 {
  --card-max-width: 340px;
}

.cat-card-grid__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--card-gap);
  list-style: none;
  margin: 0;
  padding: 0;
}

.cat-card-grid.--col3 .cat-card-grid__list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cat-card-grid.--col4 .cat-card-grid__list {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cat-card-grid__item,
.cat-card-grid.--col3 .cat-card-grid__item,
.cat-card-grid.--col4 .cat-card-grid__item {
  width: auto;
  margin: 0;
  padding: 0;
  display: grid;
  grid-auto-rows: auto;
  align-content: start;
  gap: 6px;
}

.cat-card-grid__image {
  margin: 0;
  display: grid;
  place-items: center;
}

.cat-card-grid__image img {
  width: auto;
  /* 実寸優先（引き延ばし防止） */
  max-width: 100%;
  /* 親より大きい場合のみ縮小 */
  height: auto;
  display: block;
  border-radius: 0;
  margin: 0 auto;
}

.cat-card-grid__title {
  font-size: 16px;
  line-height: 1.55;
  text-align: left;
  margin: 4px 0 0;
  word-break: normal;
}

.cat-card-grid__desc {
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
  margin: 0;
  word-break: normal;
}

.cat-card-grid__tag {
  font-size: 12px;
  text-align: left;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  border-radius: 0;
}

.cat-card-grid__price {
  margin: 0;
  text-align: left;
}

.cat-card-grid__title:has(+ .cat-card-grid__price) {
  line-height: 1.4 !important;
  margin: 10px 0 0 !important;
}

.cat-card-grid__price-original {
  font-size: 12px;
  color: #888;
  margin: 0 !important;
  text-align: right;
}

.cat-card-grid__price-sale {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: bold;
  margin: 0;
}

.cat-card-grid__price-badge {
  display: inline-grid;
  place-items: center;
  font-size: 12px;
  font-weight: bold;
  padding: 0.3em 0.6em;
  border-radius: 0;
  line-height: 1;
  letter-spacing: 0.04em;
}

@media (max-width: 900px) {
  .cat-card-grid {
    --card-gap: 16px;
  }

  .cat-card-grid.--col2,
  .cat-card-grid.--col3,
  .cat-card-grid.--col4 {
    max-width: 100%;
  }

  .cat-card-grid__list,
  .cat-card-grid.--col3 .cat-card-grid__list,
  .cat-card-grid.--col4 .cat-card-grid__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cat-card-grid.--col3.--sp-col3 .cat-card-grid__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
}

@media (max-width: 900px) {
}

/* ---------- cat-content__media: flex→grid（商品詳細と統一） ---------- */
.cat-content__media {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  column-gap: 40px;
  row-gap: 16px;
  align-items: start;
}

.cat-content__media.--w370 {
  grid-template-columns: 370px minmax(0, 1fr);
}

/* .cat-content__media.--reverse {
  grid-template-columns: minmax(0, 1fr) 320px;
} */

.cat-content__media-image {
  flex-shrink: unset;
  max-width: none;
  margin: 0;
}

.cat-content__media-image img {
  width: auto;
  /* 実寸優先（引き延ばし防止） */
  max-width: 100%;
  /* 親セルより大きい場合のみ縮小 */
  height: auto;
  display: block;
  border-radius: 0;
}

.cat-content__media-body {
  min-width: 0;
  font-size: 14px;
  line-height: 1.9;
}

@media (max-width: 900px) {
  .cat-content__media,
  .cat-content__media.--reverse,
  .cat-content__media.--w370 {
    grid-template-columns: 1fr;
    row-gap: 16px;
  }
}

@media (max-width: 900px) {
}

/* ==========================================================
   cat-staff-pick（スタッフおすすめ：横並び2列カード）
   - 画像左160px ＋ テキスト右（name / tag / desc）
   - デザインルール: grid, even px, radius 0
   ========================================================== */
.cat-staff-pick {
  margin: 2em 0;
}

.cat-staff-pick__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 24px;
}

.cat-staff-pick__item {
  margin: 0;
  padding: 0;
}

.cat-staff-pick__link {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  text-decoration: none;
  color: inherit;
}

.cat-staff-pick__image {
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.cat-staff-pick__image img {
  width: 100%;
  height: auto;
  display: block;
}

.cat-staff-pick__link:hover .cat-staff-pick__image img {
  opacity: 0.8;
}

.cat-staff-pick__body {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.cat-staff-pick__name,
.c-inner .cat-staff-pick__name {
  display: block;
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: #111;
  margin: 0;
}

.cat-staff-pick__tag,
.c-inner .cat-staff-pick__tag {
  display: block;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
  color: #111;
  margin: 0;
}

.cat-staff-pick__desc,
.c-inner .cat-staff-pick__desc {
  display: block;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: #333;
  margin: 0;
  word-break: normal;
}

@media (max-width: 900px) {
  .cat-staff-pick__list {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .cat-staff-pick__link {
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 16px;
  }
}

/* ==========================================================
   cat-media-row（汎用：画像右・テキスト左・gap 40px）
   - grid: [text 1fr | image auto（画像のmaxサイズに合わせる）]
   - --image-left で反転
   - SPは1列化
   ========================================================== */
.cat-media-row,
.c-inner .cat-media-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: start;
  margin: 0 0 60px;
}

.cat-media-row.--image-left,
.c-inner .cat-media-row.--image-left {
  grid-template-columns: auto minmax(0, 1fr);
}

.--sendan .cat-media-row.--image-left,
.c-inner .--sendan .cat-media-row.--image-left {
  gap: 40px 80px;
}

.cat-media-row__body {
  min-width: 0;
}

.cat-media-row__body > :first-child {
  margin-top: 0;
}

.cat-media-row__body > :last-child {
  margin-bottom: 0;
}

.cat-media-row__image,
.cat-media-row__image--sen {
  margin: 0;
  padding: 0;
  text-align: center;
  max-width: max-content;
}

.cat-media-row__image img,
.cat-media-row__image--sen img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

.cat-media-row__title,
.c-inner .cat-media-row__title {
  display: block;
  font-family: var(--font-base);
  font-size: 18px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: #111;
  text-align: left;
  margin: 0 0 16px;
}

/* 赤背景モディファイア（carving用） */
.cat-media-row__title.--bg-red,
.c-inner .cat-media-row__title.--bg-red {
  background: #e94738;
  color: #fff;
  padding: 10px 16px;
  margin: 0 0 20px;
  font-size: 16px;
  width: max-content;
}

@media (max-width: 900px) {
  .cat-media-row__title.--bg-red,
  .c-inner .cat-media-row__title.--bg-red {
    padding: 8px 12px;
    font-size: 16px;
  }
}

.cat-media-row__body strong {
  display: block;
  font-size: 18px;
}

/* cat-media-row直下の見出しを全幅表示（nameplate-column02用） */
.cat-media-row > .cat-point-list__heading,
.c-inner .cat-media-row > .cat-point-list__heading {
  grid-column: 1 / -1;
  margin-bottom: 16px;
}

/* --sp-float-image-right: PC時はDOM順が逆でも text左・image右を維持 */
.cat-media-row.--sp-float-image-right .cat-media-row__image,
.c-inner .cat-media-row.--sp-float-image-right .cat-media-row__image {
  grid-column: 2;
  grid-row: 1;
}

.cat-media-row.--sp-float-image-right .cat-media-row__body,
.c-inner .cat-media-row.--sp-float-image-right .cat-media-row__body {
  grid-column: 1;
  grid-row: 1;
}

.cat-media-row.--keep-columns-sp,
.c-inner .cat-media-row.--keep-columns-sp {
  gap: 10px 40px;
}

@media (max-width: 900px) {
  .cat-media-row,
  .cat-media-row.--image-left,
  .c-inner .cat-media-row,
  .c-inner .cat-media-row.--image-left,
  .--sendan .cat-media-row.--image-left,
  .c-inner .--sendan .cat-media-row.--image-left {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  /* SP時は 見出し → 画像 → テキスト/表 の順に並べ替え */
  .cat-media-row__body {
    display: contents;
  }

  .cat-media-row__title {
    order: 1;
  }

  .cat-media-row__image {
    order: 2;
    margin-inline: auto;
  }

  .cat-media-row__image--sen {
    margin-inline: auto;
  }

  .cat-media-row__body > p,
  .cat-media-row__body > div,
  .cat-media-row__body > table,
  .cat-media-row__body > ul,
  .cat-media-row__body > ol {
    order: 3;
  }

  .cat-media-row__title,
  .c-inner .cat-media-row__title {
    font-size: 16px;
  }

  /* SP時も2カラムレイアウトを維持するモディファイア */
  .cat-media-row.--keep-columns-sp,
  .c-inner .cat-media-row.--keep-columns-sp {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
  }

  .cat-media-row.--keep-columns-sp.--image-left,
  .c-inner .cat-media-row.--keep-columns-sp.--image-left {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .cat-media-row.--keep-columns-sp .cat-media-row__body {
    display: block;
  }

  /* SP時に画像を右floatしテキストが左?下に回り込むモディファイア */
  .cat-media-row.--sp-float-image-right,
  .c-inner .cat-media-row.--sp-float-image-right {
    display: block;
  }

  .cat-media-row.--sp-float-image-right::after,
  .c-inner .cat-media-row.--sp-float-image-right::after {
    content: "";
    display: table;
    clear: both;
  }

  .cat-media-row.--sp-float-image-right .cat-media-row__body,
  .c-inner .cat-media-row.--sp-float-image-right .cat-media-row__body {
    display: block;
  }

  .cat-media-row.--sp-float-image-right .cat-media-row__image,
  .c-inner .cat-media-row.--sp-float-image-right .cat-media-row__image {
    float: right;
    width: 42%;
    margin: 0 0 12px 16px;
    max-width: none;
  }

  /* SP時に画像を左floatしテキストが右?下に回り込むモディファイア */
  .cat-media-row.--sp-float-image-left,
  .c-inner .cat-media-row.--sp-float-image-left {
    display: block;
  }

  .cat-media-row.--sp-float-image-left::after,
  .c-inner .cat-media-row.--sp-float-image-left::after {
    content: "";
    display: table;
    clear: both;
  }

  .cat-media-row.--sp-float-image-left .cat-media-row__body,
  .c-inner .cat-media-row.--sp-float-image-left .cat-media-row__body {
    display: block;
  }

  .cat-media-row.--sp-float-image-left .cat-media-row__image,
  .c-inner .cat-media-row.--sp-float-image-left .cat-media-row__image {
    float: left;
    width: 100px;
    margin: 0 16px 12px 0;
    max-width: none;
  }

  .cat-media-row.--keep-columns-sp .cat-media-row__title {
    order: 0;
  }

  .cat-media-row.--keep-columns-sp .cat-media-row__image {
    order: 0;
  }

  .cat-media-row.--keep-columns-sp .cat-media-row__body > p,
  .cat-media-row.--keep-columns-sp .cat-media-row__body > div,
  .cat-media-row.--keep-columns-sp .cat-media-row__body > table,
  .cat-media-row.--keep-columns-sp .cat-media-row__body > ul,
  .cat-media-row.--keep-columns-sp .cat-media-row__body > ol {
    order: 0;
  }

  /* SP時: 見出し → テキスト → 画像 の順序にするモディファイア */
  .cat-media-row.--image-last .cat-media-row__image {
    order: 3;
  }

  .cat-media-row.--image-last .cat-media-row__body > p,
  .cat-media-row.--image-last .cat-media-row__body > div,
  .cat-media-row.--image-last .cat-media-row__body > table,
  .cat-media-row.--image-last .cat-media-row__body > ul,
  .cat-media-row.--image-last .cat-media-row__body > ol {
    order: 2;
  }
}

/* ==========================================================
   cat-column-cards（お役立ちコラム：タイトル非太字・画像 + 説明）
   ========================================================== */
.cat-column-cards {
  margin: 24px 0;
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.cat-column-cards.--col3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cat-column-cards.--colmedal {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px 60px;
}

.cat-column-cards__item {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
  align-content: start;
}

.cat-column-cards__item a {
  display: grid;
  gap: 12px;
  text-decoration: none;
  color: inherit;
}

.cat-column-cards__image {
  margin: 0;
  padding: 0;
}

.cat-column-cards__image img {
  max-width: 100%;
  width: 100%;
  height: auto;
  display: block;
}

.cat-column-cards__title,
.c-inner .cat-column-cards__title {
  display: block;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #333;
  text-align: left;
  margin: 0;
}

@media (max-width: 900px) {
  .cat-column-cards,
  .cat-column-cards.--colmedal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .cat-column-cards.--sp-col3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
}

.cat-column-cards.--col3-wide {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px 60px;
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 900px) {
  .cat-column-cards.--col3-wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: none;
    gap: 20px;
  }

  .cat-column-cards.--col3-wide.--sp-col3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
}

/* ==========================================================
   cat-card-grid モディファイア追加
   - .--gap-40: gap を 40px に拡大（セール/ポイント等で使用）
   - .--title-badge: タイトルをセンター＋グレー背景バッジ化
   ========================================================== */
.cat-card-grid.--gap-40 {
  --card-gap: 40px;
}

.cat-card-grid.--title-badge .cat-card-grid__title,
.c-inner .cat-card-grid.--title-badge .cat-card-grid__title {
  text-align: center;
  background: #353e46;
  color: #fff;
  padding: 8px 12px;
  margin: 0;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

@media (max-width: 900px) {
  .cat-card-grid.--title-badge .cat-card-grid__title,
  .c-inner .cat-card-grid.--title-badge .cat-card-grid__title {
    font-size: 14px;
  }
}

/* ==========================================================
   cat-engrave-count（彫刻文字数目安：ダークバー強調）
   ========================================================== */
.cat-engrave-count,
.c-inner .cat-engrave-count {
  text-align: center;
  font-size: 18px;
  margin: 40px;
  background: #696969;
  padding: 10px;
  color: #fff;
}

/* ==========================================================
   cat-engrave-layout（彫刻レイアウト例：背景画像に対して4テキストを絶対配置）
   - 既存サイトの #trophy-p2 を BEM 化
   - 背景: trophy-p02.jpg @ 320px 145px
   ========================================================== */
.cat-engrave-layout {
  position: relative;
  background: url(https://prize.itembox.cloud/item/assets/img/category/trophy/trophy-p02.jpg) no-repeat 140% 95px;
  background-size: 70%;
  width: 100%;
  max-width: 100%;
  height: 640px;
  margin: 24px auto;
  font-family: var(--font-base);
  font-size: 14px;
  line-height: 1.7;
  color: #333;
}

.cat-engrave-layout__item {
  position: absolute;
  margin: 0;
}

.cat-engrave-layout__item p {
  margin: 0;
  text-align: left;
}

.cat-engrave-layout__label {
  display: inline-block;
  padding: 4px 10px;
  margin: 0 8px 6px 0;
  background: #353e46;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.cat-engrave-layout__item.--top {
  top: 0;
  width: 100%;
}

.cat-engrave-layout__item.--mid-upper {
  top: 140px;
  width: 400px;
}

.cat-engrave-layout__item.--mid-lower {
  top: 320px;
  width: 400px;
}

.cat-engrave-layout__item.--bottom {
  top: 500px;
  width: 100%;
}

@media (max-width: 900px) {
  .cat-engrave-layout {
    background-position: bottom center;
    background-size: auto 180px;
    height: auto;
    padding-bottom: 200px;
    max-width: 100%;
  }

  .cat-engrave-layout__item {
    position: static;
    width: 100%;
    margin-bottom: 20px;
    left: 0;
    top: 0;
  }
}

/* ==========================================================
   SP 追加調整
   ========================================================== */
@media (max-width: 900px) {
  /* cat-lead: 下余白を縮小 */
  .cat-lead {
    margin: 0 0 20px;
  }

  .cat-content__inner .cat-lead {
    margin: 0 0 40px;
  }

  /* cat-card-grid: カード間 gap 20px（--gap-40 等のモディファイアより優先） */
  .cat-card-grid,
  .cat-card-grid.--gap-40 {
    --card-gap: 20px;
  }
}

/* ==========================================================
   追加モディファイア
   ========================================================== */
/* cat-card-grid 下余白 60px */
.cat-card-grid.--mb-60 {
  margin-bottom: 60px;
}

/* cat-feature-list__title のテキスト部分のみ赤字化（spanバッジの背景・色は維持） */
.cat-feature-list__title.--caution,
.c-inner .cat-feature-list__title.--caution {
  color: #e94738;
}

/* spanバッジの背景/文字色は既存（#696969 / #fff）を維持 */

/* 段落内 赤字スパン（汎用） */
p > span.--caution,
p .--caution,
.cat-media-row__body .--caution,
.cat-feature-list__text .--caution {
  color: #e94738;
}

/* cat-compare-table 左寄せモディファイア */
.cat-compare-table.--align-left tbody td,
.c-inner .cat-compare-table.--align-left tbody td {
  text-align: left;
}

/* cat-compare-table --align-center（th/td 両方中央揃え） */
.cat-compare-table.--align-center tbody th,
.cat-compare-table.--align-center tbody td,
.c-inner .cat-compare-table.--align-center tbody th,
.c-inner .cat-compare-table.--align-center tbody td {
  text-align: center;
}

/* cat-compare-table --col2（2列テーブル用：50/50等幅） */
.cat-compare-table.--col2 {
  table-layout: fixed;
}

.cat-compare-table.--col2 tbody th {
  width: 50%;
}

.cat-media-row.--align-cp {
  align-items: center;
}

/* cat-compare-table --stack-sp（SP時に縦落としレイアウト） */
@media (max-width: 900px) {
  .cat-compare-table.--stack-sp,
  .cat-compare-table.--stack-sp thead,
  .cat-compare-table.--stack-sp tbody,
  .cat-compare-table.--stack-sp tr {
    display: block;
    width: 100%;
  }

  .cat-compare-table.--stack-sp thead {
    display: none;
    /* thead は非表示（通常は使わないため） */
  }

  .cat-compare-table.--stack-sp tbody tr {
    margin-bottom: 0px;
    border: 1px solid #ddd;
    border-radius: 0;
  }

  .cat-compare-table.--stack-sp tbody tr:last-child {
    margin-bottom: 0;
  }

  .cat-compare-table.--stack-sp th,
  .cat-compare-table.--stack-sp td {
    display: block;
    width: 100%;
    border: none;
    text-align: left;
  }

  .cat-compare-table.--stack-sp tbody th {
    background: #f5f5f5;
    padding: 12px 16px;
    font-weight: bold;
    border-bottom: 1px solid #ddd;
  }

  .cat-compare-table.--stack-sp tbody td {
    padding: 12px 16px;
  }

  .--sp-width-600 {
    width: 600px;
  }
}

/*qa img*/
.abreast {
  display: flex;
  justify-content: center;
  gap: 40px;
}

.cat-faq .qa_sleeve {
  margin: 0 auto;
}

@media (max-width: 900px) {
  .abreast {
    gap: 20px;
  }
}

/* cat-compare-table --stack-pairs（SP時にth+tdペアを横並びで縦積み） */
@media (max-width: 900px) {
  .cat-compare-table.--stack-pairs,
  .cat-compare-table.--stack-pairs thead,
  .cat-compare-table.--stack-pairs tbody {
    display: block;
    width: 100%;
  }

  .cat-compare-table.--stack-pairs thead {
    display: none;
  }

  .cat-compare-table.--stack-pairs tr {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0;
  }

  .cat-compare-table.--stack-pairs th,
  .cat-compare-table.--stack-pairs td {
    display: block;
    padding: 10px 12px;
    text-align: left;
    border: 1px solid #ddd;
  }

  /* th は常に1列目（左）に配置 */
  .cat-compare-table.--stack-pairs th {
    grid-column: 1;
    background: #f5f5f5;
    width: 150px;
  }

  /* td は常に2列目（右）に配置 */
  .cat-compare-table.--stack-pairs td {
    grid-column: 2;
    background: #fff;
  }
}

/* cat-content__list 番号付きモディファイア (1)(2)(3) 形式 */
.cat-content__list.--numbered,
.c-inner .cat-content__list.--numbered {
  list-style: none;
  counter-reset: cat-numlist;
  padding-left: 0;
}

.cat-content__list.--numbered > li,
.c-inner .cat-content__list.--numbered > li {
  counter-increment: cat-numlist;
  position: relative;
  padding-left: 3em;
}

.cat-content__list.--numbered > li::before {
  content: "(" counter(cat-numlist) ")";
  position: absolute;
  left: 0;
  color: var(--color-text);
}

.cutsize--cout {
  padding: 1rem;
  background: url(https://prize.itembox.cloud/item/img/sizecut-plate/sizecut.jpg) no-repeat center / cover;
  text-align: center;
}

.cutsize--cout--inner {
  padding: 3rem 1rem;
  background: rgb(255 255 255 / 90%);
}

.cutsize--cout-tit {
  text-align: center;
  font-size: 18px;
  font-family: var(--font-base);
  margin: 0 auto 25px;
}

.cutsize--cout--text {
  color: #e94738;
}

.cutsize--cout--text p:not(:last-child) {
  margin-bottom: 20px;
}

/* ==========================================================
   guide ページ専用調整
   ========================================================== */
/* contents2.css の .fs-body-category-guide h2 { margin: 4em 0 4em 0 !important } を打ち消し */
.fs-body-category-guide .c-inner h2.cat-heading-lined,
.fs-body-category-guide h2.cat-heading-lined {
  margin: 0 0 1em !important;
}

/* guide 内の cat-content__list span を赤字（強調用） */
.fs-body-category-guide .cat-content__list span {
  color: #e94738;
}

/* cat-content__btn-list 2列グリッドモディファイア（PC: 2列 / SP: 1列） */
.cat-content__btn-list.--col2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  flex-wrap: initial;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.cat-content__btn-list.--col2 > li {
  flex: unset;
  min-width: 0;
}

@media (max-width: 900px) {
  .cat-content__btn-list.--col2 {
    grid-template-columns: 1fr;
    max-width: 100%;
  }
}

/* cat-compare-table --align-left 内の span を赤字（強調用） */
.cat-compare-table.--align-left span,
.c-inner .cat-compare-table.--align-left span {
  color: #e94738;
}

/* ご注文の流れ STEPブロック（独立コンポーネント） */
.cat-order-step {
  margin-bottom: 60px;
}

.cat-order-step:last-child {
  margin-bottom: 0;
}

.cat-order-step .cat-content__image {
  margin-top: 40px;
}

/* 連続する画像同士は詰める（2枚連続のケース） */
.cat-order-step .cat-content__image + .cat-content__image {
  margin-top: 16px;
}

/* cat-content__image 上下60px余白モディファイア */
.cat-content__image.--spaced-60 {
  margin-top: 60px;
  margin-bottom: 60px;
}

/* cat-content__btn-list / cat-content__image 下余白 60px モディファイア（他に影響なし） */
.cat-content__btn-list.--mb-60 {
  margin-bottom: 60px;
}

.cat-content__image.--mb-60 {
  margin-bottom: 60px;
}

/* cat-media-row__image 幅モディファイア（元画像が大きすぎる場合のキャップ） */
.cat-media-row__image.--w-340 {
  max-width: 340px;
}

.cat-media-row__image.--w-160 {
  max-width: 160px;
}

.cat-media-row__image.--w-240 {
  max-width: 240px;
}

.cat-media-row__image.--w-260 {
  max-width: 260px;
}

.cat-media-row__image.--w-280 {
  max-width: 280px;
}

.cat-media-row__image.--w-300 {
  max-width: 300px;
}

.cat-media-row__image.--w-320 {
  max-width: 320px;
}

.cat-media-row__image.--w-350 {
  max-width: 350px;
}

.cat-media-row__image.--w-360 {
  max-width: 360px;
}

.cat-media-row__image.--w-400 {
  max-width: 400px;
}

/* img側も追従して縮小 */
.cat-media-row__image[class*="--w-"] img {
  width: 100%;
  height: auto;
}

/* --w-XXX モディファイア SP時は中央寄せ */
@media (max-width: 900px) {
  .cat-media-row__image[class*="--w-"] {
    margin-left: auto;
    margin-right: auto;
  }
}

/* cat-compare-table 「おすすめ列」背景モディファイア（薄いくすみベージュ） */
.cat-compare-table.--hl-col2 thead th:nth-child(2),
.cat-compare-table.--hl-col2 tbody td:nth-child(2) {
  background: #ffffcc;
}

/* cat-heading-h3 上余白 50px モディファイア */
.cat-heading-h3.--mt-50,
.c-inner .cat-heading-h3.--mt-50 {
  margin-top: 50px;
}

/* cat-compare-table 横スクロールラッパー（SP時） */
.cat-compare-table-wrap {
  max-width: 100%;
}

@media (max-width: 900px) {
  .cat-compare-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .cat-compare-table-wrap .cat-compare-table {
    min-width: 560px;
    /* 4列時の最小幅。以下に縮小せずスクロール */
  }
}

/* cat-cards タイトル 16px モディファイア（h3.cat-cards__title の18pxを打ち消し） */
.cat-cards.--title-16 h3.cat-cards__title,
.c-inner .cat-cards.--title-16 h3.cat-cards__title {
  font-size: 16px;
}

@media (max-width: 900px) {
  .cat-cards.--title-16 h3.cat-cards__title,
  .c-inner .cat-cards.--title-16 h3.cat-cards__title {
    font-size: 16px;
  }
}

/* cat-subheading サイズ拡大モディファイア */
.cat-subheading.--size-16,
.c-inner .cat-subheading.--size-16 {
  font-size: 16px;
  padding: 10px;
}

/* cat-feature-block: POINT 単位のセクション区切り */
.cat-feature-block {
  margin-bottom: 80px;
}

.cat-feature-block:last-child {
  margin-bottom: 0;
}

/* 背景グレーモディファイア（carving おすすめ文字数の目安用） */
.cat-feature-block.--bg-gray {
  background: #f4f4f4;
  padding: 40px;
}

.--bg-graypad {
  background: #f4f4f4;
  padding: 40px;
}

/* --bg-gray内の直接子要素（div）間の余白 */
.cat-feature-block.--bg-gray > div + div {
  margin-top: 60px;
}

.fax__script {
  display: grid;
  grid-template-columns: 50px auto;
  gap: 20px;
  align-items: flex-start;
}

.fax__script--num {
  background: #696969;
  padding: 6px 10px;
  width: 40px;
  height: auto;
  color: #fff;
  text-align: center;
  font-size: 16px;
  font-weight: bold;
}

@media (max-width: 900px) {
  .cat-feature-block {
    margin-bottom: 60px;
  }

  .cat-feature-block.--bg-gray {
    padding: 20px;
  }

  .cat-feature-block.--bg-gray > div + div {
    margin-top: 40px;
  }

  .--bg-graypad {
    background: #f4f4f4;
    padding: 20px;
  }
}

/* cat-feature-block 内の section 間余白 */
.cat-feature-block > section + section {
  margin-top: 60px;
}

@media (max-width: 900px) {
  .cat-feature-block > section + section {
    margin-top: 60px;
  }
}

/* cat-media-row__image 90px モディファイア（注意アイコン等） */
.cat-media-row__image.--w-90 {
  max-width: 90px;
}

/* cat-feature-block 内の p と cat-content__image の間余白 */
.cat-feature-block p + .cat-content__image,
.cat-feature-block .cat-content__image + p {
  margin-top: 40px;
}

/* cat-recommend-grid 画像を右に（--image-right） */
.cat-recommend-grid.--image-right .cat-recommend-grid__link {
  flex-direction: row-reverse;
}

/* --mb-60 で下余白 */
.cat-recommend-grid.--mb-60 {
  margin-bottom: 60px;
}

/* cat-feature-dl__subheading プレーン16pxモディファイア（ゴシック・bold のみ） */
.cat-feature-dl__subheading.--plain,
h3.cat-feature-dl__subheading.--plain,
h4.cat-feature-dl__subheading.--plain,
.c-inner h3.cat-feature-dl__subheading.--plain,
.c-inner h4.cat-feature-dl__subheading.--plain {
  font-size: 16px;
  font-weight: bold;
  font-family: var(--font-base);
  text-align: left;
  letter-spacing: normal;
  margin: 2em 0 1em;
}

/* cat-note-box 下余白モディファイア */
.cat-note-box.--mb-60 {
  margin-bottom: 60px;
}

/* cat-feature-block内 STEP ブロック間余白（cat-feature-block 単独利用時のフォールバック） */

/* cat-media-row__image 160px モディファイア */
.cat-media-row__image.--w-160 {
  max-width: 160px;
}

/* cat-feature-block 直下 p の下余白 */
.cat-feature-block > p {
  margin-bottom: 40px;
}

.cat-feature-block > p:last-child {
  margin-bottom: 0;
}

/* cat-content__inner 直下で p の後に cat-feature-block が続く場合の余白 */
.cat-content__inner > p + .cat-feature-block {
  margin-top: 60px;
}

/* ==========================================================
   cat-heading-h4（シンプルな左寄せ見出し・罫線なし）
   ========================================================== */
.cat-heading-h4,
.c-inner .cat-heading-h4 {
  font-family: var(--font-base);
  font-size: 16px;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.03em;
  color: #111;
  text-align: left;
  margin: 0 0 12px;
  padding: 0;
  border: 0;
}

@media (max-width: 900px) {
  .cat-heading-h4,
  .c-inner .cat-heading-h4 {
    font-size: 15px;
  }
}

/* 取り付け例などのグレー背景ラッパー（nameplate用） */
.cat-examples-wrap {
  background: #f4f4f4;
  padding: 40px;
  margin-top: 2em;
}

@media (max-width: 900px) {
  .cat-examples-wrap {
    padding: 20px;
  }
}

.cat--recomm_tgs--title {
  background: #696969;
  color: #fff;
  text-align: left;
  padding: 6px 1em;
  font-family: var(--font-base) !important;
  font-size: 16px;
  width: max-content;
}

.cat--recomm_tgs--inner {
  border: 1px solid #ccc;
  padding: 20px;
}

.cat--recomm_tgs--title.--reverse {
  margin-left: auto;
}

.acrylic__itembox {
  display: grid;
  grid-template-columns: repeat(2, minmax(300px, auto));
  gap: 30px 60px;
}

.acrylic__itembox__table {
  grid-column: 1 / 3;
}

.acrylic__itembox__table th,
.acrylic__itembox__table td {
  border: 1px solid #ddd;
  padding: 10px;
}

.acrylic__itembox__table th {
  background: #f7f7f7;
  font-weight: normal;
}

.acrylic__itembox--single__image {
  max-width: 740px;
  margin: 0 auto 30px;
}

@media (max-width: 900px) {
  .acrylic__itembox {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .acrylic__itembox__table {
    grid-column: 1;
  }

  .acrylic__itembox__image {
    margin: 0 auto 30px;
  }
}

@media screen and (min-width: 768px) {
  .fs-body-category-original-logo article.fs-c-productList__list__item.fs-c-productListItem,
  .fs-body-category-flag-countries_tabletop-tabletop article.fs-c-productList__list__item.fs-c-productListItem,
  .fs-body-category-nameplate-column04 article.fs-c-productList__list__item.fs-c-productListItem,
  .fs-body-category-sculpture-cut article.fs-c-productList__list__item.fs-c-productListItem {
    width: 100%;
  }
}

/* ==========================================================
   ユーティリティ: margin-top / margin-bottom
   使用例: <p class="u-mb-60">...</p>
   ========================================================== */
.u-mt-0 {
  margin-top: 0 !important;
}

.u-mt-8 {
  margin-top: 8px !important;
}

.u-mt-16 {
  margin-top: 16px !important;
}

.u-mt-24 {
  margin-top: 24px !important;
}

.u-mt-32 {
  margin-top: 32px !important;
}

.u-mt-40 {
  margin-top: 40px !important;
}

.u-mt-48 {
  margin-top: 48px !important;
}

.u-mt-60 {
  margin-top: 60px !important;
}

.u-mt-80 {
  margin-top: 80px !important;
}

.u-mt-100 {
  margin-top: 100px !important;
}

.u-mb-0 {
  margin-bottom: 0 !important;
}

.u-mb-8 {
  margin-bottom: 8px !important;
}

.u-mb-16 {
  margin-bottom: 16px !important;
}

.u-mb-24 {
  margin-bottom: 24px !important;
}

.u-mb-32 {
  margin-bottom: 32px !important;
}

.u-mb-40 {
  margin-bottom: 40px !important;
}

.u-mb-48 {
  margin-bottom: 48px !important;
}

.u-mb-60 {
  margin-bottom: 60px !important;
}

.u-mb-80 {
  margin-bottom: 80px !important;
}

.u-mb-100 {
  margin-bottom: 100px !important;
}

/* cat-subheading ラベル風（16px・padding 6px 10px） */
.cat-subheading.--label-16,
.c-inner .cat-subheading.--label-16 {
  font-size: 16px;
  padding: 6px 10px;
}

/* cat-card-grid 1列モディファイア（単独アイテム中央配置） */
.cat-card-grid.--col1 {
  max-width: var(--card-max-width);
  margin-left: auto;
  margin-right: auto;
}

.cat-card-grid.--col1 .cat-card-grid__list {
  grid-template-columns: minmax(0, 1fr);
}

.cat-card-grid.--col1 .cat-card-grid__item {
  width: 100%;
}

/* cat-recommend-grid 罫線なしモディファイア */
.cat-recommend-grid.--no-border .cat-recommend-grid__link,
.cat-recommend-grid.--no-border .cat-recommend-grid__link:visited,
.cat-recommend-grid.--no-border .cat-recommend-grid__link:hover {
  border: none;
  padding: 0;
}

/* cat-recommend-grid --stack モディファイア（画像上・テキスト下の縦積み、2列max340px） */
.cat-recommend-grid.--stack .cat-recommend-grid__list {
  grid-template-columns: repeat(2, minmax(0, 340px));
  justify-content: center;
  gap: 40px;
}

.cat-recommend-grid.--stack .cat-recommend-grid__link {
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
}

.cat-recommend-grid.--stack .cat-recommend-grid__image {
  width: 100%;
}

.cat-recommend-grid.--stack .cat-recommend-grid__image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 900px) {
  .cat-recommend-grid.--stack .cat-recommend-grid__list {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 20px;
    row-gap: 24px;
  }
}

.flow__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 167px));
  gap: 20px;
  justify-content: center;
}

.flow__grid--four {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 167px));
  gap: 20px;
  justify-content: center;
}

.cat__single--blk--item {
  width: 100%;
  max-width: 100%;
  text-align: center;
  margin: 0 auto 40px !important;
  display: flex;
  justify-content: center;
}

.cat__harf--blk {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 340px));
  justify-content: center;
  gap: 20px;
}

.cat__harf--blk .cat__harf--blk__item p {
  margin-top: 10px;
  text-align: center;
}

@media (max-width: 900px) {
  .flow__grid {
    grid-template-columns: repeat(2, minmax(0, 167px));
    gap: 20px;
  }

  .--spcentral {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - 24px) / 2);
  }

  .flow__grid--four {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 167px));
    gap: 20px;
  }

  .--no-gaps .cat-media-row {
    gap: 0px;
  }

  .--no-gaps .cat-media-row .cat-media-row__image {
    margin-bottom: 20px;
  }
}

@media (max-width: 768px) {
  .cat__harf--blk {
    grid-template-columns: 1fr;
  }

  .cat__harf--blk img {
    margin: 0 auto;
  }
}

/* タグ付き注釈（<strong>を #696969 ダークバッジ化、下マージン20px） */
.cat-tagged-note {
  margin: 0 0 0px;
}

.cat-tagged-note strong {
  display: inline-block;
  background: #696969;
  color: #fff;
  padding: 0.3em 1em;
  margin-right: 0.8em;
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.05em;
}

/* cat-feature-dl__subheading ダークバー（#696969 背景・白文字・中央・フル幅） */
.cat-feature-dl__subheading.--dark-bar,
h3.cat-feature-dl__subheading.--dark-bar,
h4.cat-feature-dl__subheading.--dark-bar,
h5.cat-feature-dl__subheading.--dark-bar,
.c-inner h3.cat-feature-dl__subheading.--dark-bar,
.c-inner h4.cat-feature-dl__subheading.--dark-bar,
.c-inner h5.cat-feature-dl__subheading.--dark-bar {
  background: #696969;
  color: #fff;
  width: 100%;
  text-align: center;
  padding: 5px;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: normal;
  margin: 0 0 20px;
}

/* cat-recommend-points（おすすめ項目ボックス） */
.cat-recommend-points {
  background: #f7f7f7;
  padding: 20px;
}

.cat-recommend-points > p + p {
  margin-top: 20px;
}

/* 目安となる日数ラベル（ダークバッジ） */
.cat-day-label {
  display: block;
  width: max-content;
  background: #696969;
  color: #fff;
  padding: 5px;
  margin-top: 20px;
  font-family: var(--font-base);
  font-weight: bold;
}

/* cat-media-row__image 330px モディファイア */
.cat-media-row__image.--w-330 {
  max-width: 330px;
}

/* cat-media-row__image 370px モディファイア */
.cat-media-row__image.--w-370 {
  max-width: 370px;
}

/* cat-notice 背景なしモディファイア（罫線・背景・パディングのみ除去、中央揃えは維持） */
.cat-notice.--no-bg {
  background: transparent;
}

/* cat-notice フラットモディファイア（罫線・背景なし） */
.cat-notice.--flat {
  background: transparent;
  border: none;
  padding: 0;
  text-align: left;
}

.cat-notice.--flat .cat-notice__title,
.c-inner .cat-notice.--flat .cat-notice__title {
  text-align: left;
}

.cat-notice.--flat .cat-notice__body {
  max-width: none;
  width: 100%;
  margin: 0;
}

/* cat-notice__title の行別スタイル（dark badge + 赤文字） */
.cat-notice__title .cat-notice__badge {
  display: inline-block;
  background: #696969;
  color: #fff;
  padding: 5px 10px;
  font-size: 16px;
  font-weight: bold;
  margin-right: 0.5em;
}

.cat-notice__title .cat-notice__lead-text {
  color: #e94738;
  font-weight: bold;
  font-size: 16px;
  display: inline-block;
  margin-top: 10px;
}

.--reprica {
  border-color: #e94738;
}

.--reprica .cat-notice__title {
  color: #e94738;
  font-weight: normal;
}

/* ==========================================================
   cat-lightbox（画像クリックで拡大モーダル）
   ========================================================== */
.cat-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  cursor: zoom-out;
}

.cat-lightbox.is-open {
  display: flex;
}

.cat-lightbox__image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  cursor: default;
}

.cat-lightbox__close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #fff;
  font-size: 32px;
  line-height: 1;
  padding: 0;
}

.cat-lightbox__close::before,
.cat-lightbox__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 2px;
  background: #fff;
  transform-origin: center;
}

.cat-lightbox__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.cat-lightbox__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.cat-lightbox__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  background: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cat-lightbox__arrow:hover {
  background: rgba(255, 255, 255, 0.35);
}

.cat-lightbox__arrow--prev {
  left: 20px;
}

.cat-lightbox__arrow--next {
  right: 20px;
}

.cat-lightbox__arrow[disabled] {
  opacity: 0.3;
  cursor: default;
}

/* クリッカブル画像リンクのカーソル */
a[rel^="lightbox"] {
  cursor: zoom-in;
}

.cat-heading-lined__sub.--packs {
  color: #333333 !important;
  background: none !important;
  font-weight: normal !important;
}

/* ============================================
   商品グループページ：セクション間余白の統一
   ============================================ */

/* PC: セクション間余白 100px */
#fs_ItemGroup .section {
  margin-top: 100px;
}

/* 最初のsectionは余白なし */
#fs_ItemGroup .fs-l-pageMain > .section:first-child,
#fs_ItemGroup .section:first-child {
  margin-top: 0;
}

/* セクション連結用モディファイア（前のsectionと繋げたい時） */
#fs_ItemGroup .section.--no-gap {
  margin-top: 0;
}

/* SP: セクション間余白 60px */
@media (max-width: 900px) {
  #fs_ItemGroup .section {
    margin-top: 80px;
  }
}

/* ============================================
   商品グループページ：cat-content__inner 内の余白管理
   ============================================ */

/* 基本原則: 要素間の余白を統一 (40px) */
#fs_ItemGroup .cat-content__inner > * + * {
  margin-top: 60px;
}

/* section間は広めに (80px) */
#fs_ItemGroup .cat-content__inner > section {
  margin-top: 80px;
  margin-bottom: 0;
  /* 下余白は次の要素の margin-top で管理 */
}

/* 最初のsectionは上余白を半分に */
#fs_ItemGroup .cat-content__inner > section:first-child {
  margin-top: 40px;
}

/* section内の最初の要素は上余白なし */
#fs_ItemGroup .cat-content__inner > section > *:first-child {
  margin-top: 0;
}

/* 既存の余白をリセット（商品グループのみ影響） */
#fs_ItemGroup .cat-content__inner .cat-lead {
  margin-bottom: 0;
}

#fs_ItemGroup .cat-content__inner .btn-wrap {
  margin-top: 40px;
}

#fs_ItemGroup .cat-content__inner .cat-feature-dl__subheading {
  margin-top: 0;
  margin-bottom: 1.5em;
}

/* SP版: 余白を少し狭く */
@media (max-width: 900px) {
  #fs_ItemGroup .cat-content__inner > * + * {
    margin-top: 30px;
  }

  #fs_ItemGroup .cat-content__inner > section {
    margin-top: 60px;
  }

  #fs_ItemGroup .cat-content__inner > section:first-child {
    margin-top: 30px;
    /* section間の半分 */
  }

  #fs_ItemGroup .cat-content__inner .btn-wrap {
    margin-top: 30px;
  }
}

/* ============================================

/* ============================================
   商品グループページ：guideページのテーブルをモバイル対応
   ============================================ */

/* SP版: guideページの cat-compare-table --align-left を縦積みレイアウトに変換 */
@media (max-width: 900px) {
  /* テーブル全体をブロック化（guide専用セクション内のみ） */
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left,
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left thead,
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left tbody,
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left tr,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left thead,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left tbody,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left tr,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left thead,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left tbody,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left tr,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left thead,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left tbody,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left tr {
    display: block;
    width: 100%;
  }

  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left thead th,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left thead th,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left thead th,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left thead th {
    display: block;
    width: 100%;
    text-align: center;
    padding: 12px;
    font-weight: bold;
  }

  /* tbody内の各行を独立したブロックとして表示 */
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left tbody tr,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left tbody tr,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left tbody tr,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left tbody tr {
    margin-bottom: 0;
    border-radius: 0;
    overflow: hidden;
  }

  /* th（項目名）とtd（内容）を縦に並べる */
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left th,
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left td,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left th,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left td,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left th,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left td,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left th,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left td {
    display: block;
    width: 100%;
    text-align: left;
    padding: 12px 16px;
  }

  /* th（項目名）のスタイル */
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left tbody th,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left tbody th,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left tbody th,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left tbody th {
    border-bottom: 1px solid #ddd;
  }

  /* td（内容）のスタイル */
  #fs_ItemGroup #sec002_con .cat-compare-table.--align-left tbody td,
  #fs_ItemGroup #sec003_con .cat-compare-table.--align-left tbody td,
  #fs_ItemGroup #sec004_con .cat-compare-table.--align-left tbody td,
  #fs_ItemGroup #sec006_con .cat-compare-table.--align-left tbody td {
    background-color: #fff;
  }
}

/* ============================================
   cat-caution ボックス型モディファイア
   ============================================ */

/* ボックス型の注意書き（背景・padding付き） */
.cat-caution.--boxed {
  background: #f7f7f7;
  padding: 20px;
}

.cat-caution.--boxed .cat-caution__title {
  display: block;
  width: 100%;
  text-align: center;
  margin-bottom: 1em;
}

/* SP版 */
@media (max-width: 900px) {
  .cat-caution.--boxed {
    padding: 15px;
  }
}

/* ============================================
   cat-media-row SP時のテキスト優先表示モディファイア
   ============================================ */

/* SP時: テキスト全体が上、画像が下 */
@media (max-width: 900px) {
  .cat-media-row.--sp-text-first .cat-media-row__title {
    order: 1;
  }

  .cat-media-row.--sp-text-first .cat-media-row__body > p,
  .cat-media-row.--sp-text-first .cat-media-row__body > div,
  .cat-media-row.--sp-text-first .cat-media-row__body > table,
  .cat-media-row.--sp-text-first .cat-media-row__body > ul,
  .cat-media-row.--sp-text-first .cat-media-row__body > ol {
    order: 2;
  }

  .cat-media-row.--sp-text-first .cat-media-row__image {
    order: 3;
  }
}

/* ============================================
   cat-content__inner ボックス型モディファイア
   ============================================ */

/* 背景色・padding付きコンテナ */
.--boxed {
  background: #f7f7f7;
  padding: 40px;
}

/* SP版 */
@media (max-width: 900px) {
  .--boxed {
    padding: 20px;
  }
}

/* ============================================
   cat-heading-h3 追加モディファイア
   ============================================ */

/* 中央寄せモディファイア */
.cat-heading-h3.--center,
.c-inner .cat-heading-h3.--center {
  text-align: center;
}

.cat-heading-h3.--center::before {
  display: none;
  /* 赤縦線を非表示 */
}

/* 赤文字モディファイア（POINT等の強調用） */
.cat-heading-h3.--red,
.c-inner .cat-heading-h3.--red {
  color: #e94738;
}

/* 左寄せモディファイア */
.cat-heading-h3.--left,
.c-inner .cat-heading-h3.--left {
  text-align: left;
}

/* 標準太さモディファイア（太字解除） */
.cat-heading-h3.--normal,
.c-inner .cat-heading-h3.--normal {
  font-weight: normal;
}

/* 背景色付き左寄せモディファイア（medal-column03の素材見出し用） */
.cat-heading-h3.--bg-dark,
.c-inner .cat-heading-h3.--bg-dark {
  background: #696969;
  color: #fff;
  padding: 6px 1.2em;
  text-align: center;
  margin-left: 0;
  margin-right: auto;
  max-width: max-content;
  font-size: 16px;
}

@media (max-width: 900px) {
  .cat-heading-h3.--bg-dark,
  .c-inner .cat-heading-h3.--bg-dark {
    padding: 0.5em 1.2em;
  }
}

/* 素材ラベルモディファイア（trophy-column03等の素材見出し用） */
.cat-heading-h3.--material,
.c-inner .cat-heading-h3.--material {
  display: inline-block;
  width: 200px;
  padding: 6px 16px;
  background: #696969;
  color: #fff;
  text-align: left;
  font-weight: normal;
  margin-bottom: 16px;
}

/* 素材ラベルモディファイア（trophy-column03等の素材見出し用） */
.cat-heading-h3.--material-red,
.c-inner .cat-heading-h3.--material-red {
  display: inline-block;
  width: max-content;
  padding: 6px 16px;
  background: #e94738;
  color: #fff;
  font-weight: normal;
  text-align: left;
  margin-bottom: 16px;
}

.cat-heading-h3.--material::before,
.c-inner .cat-heading-h3.--material::before {
  display: none;
  /* 赤縦線を非表示 */
}

@media (max-width: 900px) {
  .cat-heading-h3.--material,
  .c-inner .cat-heading-h3.--material {
    width: 200px;
    /* SP時も200px固定 */
    font-size: 16px;
    padding: 6px 12px;
  }
}

/* ==========================================================
   cat-heading-movie（動画セクション用ユニーク見出し）
   - YouTube 動画埋め込みセクションの見出し専用
   - 左に YouTube アイコン画像を配置
   ========================================================== */
.cat-heading-movie,
.c-inner .cat-heading-movie {
  position: relative;
  margin: 3em 0 0 0;
  padding: 10px 0;
  background: #f7f7f7;
  color: #333;
  font-family: var(--font-base);
  font-weight: bold;
  font-size: 20px;
  text-align: center;
}

.cat-heading-movie::before,
.c-inner .cat-heading-movie::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  width: 100px;
  height: 50px;
  background: url(https://prize.itembox.cloud/item/assets/img/youtube/youtube-ttl.png) center/contain no-repeat;
}

/* 既存の ::before, ::after 無効化 */
.cat-heading-movie::after,
.c-inner .cat-heading-movie::after {
  content: none;
}

@media (max-width: 900px) {
  .cat-heading-movie,
  .c-inner .cat-heading-movie {
    font-size: 16px;
    margin: 2em 0 1em 0;
    padding: 8px 0;
  }

  .cat-heading-movie::before,
  .c-inner .cat-heading-movie::before {
    left: 10px;
    width: 60px;
    height: 30px;
  }
}

/* ============================================
   cat-sport-grid 追加モディファイア
   ============================================ */

/* gap調整モディファイア */
.cat-sport-grid.--gap-40 .cat-sport-grid__list {
  gap: 40px;
}

.cat-sport-grid.--gap-20 .cat-sport-grid__list {
  gap: 20px;
}

.cat-sport-grid.--stack.--gap-wide .cat-sport-grid__list {
  gap: 40px 70px;
}

/* ============================================
   cat-media-row 追加モディファイア
   ============================================ */

/* gap調整モディファイア */
.cat-media-row.--gap-24,
.c-inner .cat-media-row.--gap-24 {
  gap: 24px;
}

.cat-media-row.--gap-30,
.c-inner .cat-media-row.--gap-30 {
  gap: 30px;
}

.cat-media-row.--gap-60,
.c-inner .cat-media-row.--gap-60 {
  gap: 60px;
}

/* SP版 */
@media (max-width: 900px) {
  .cat-sport-grid.--gap-40 .cat-sport-grid__list {
    gap: 20px;
  }

  .cat-media-row.--gap-24,
  .c-inner .cat-media-row.--gap-24,
  .cat-media-row.--gap-30,
  .c-inner .cat-media-row.--gap-30,
  .cat-media-row.--gap-60,
  .c-inner .cat-media-row.--gap-60 {
    gap: 20px;
  }

  .cat-sport-grid.--stack.--gap-wide .cat-sport-grid__list {
    gap: 20px;
  }
}

/* ============================================
   cat-point-list（POINT/STEPリスト - div構造）
   ============================================ */

.cat-point-list,
.c-inner .cat-point-list {
  margin: 0;
  padding: 0;
}

.cat-point-list__item,
.c-inner .cat-point-list__item {
  margin: 0 0 60px 0;
  padding: 0;
}

.cat-point-list__item:last-child,
.c-inner .cat-point-list__item:last-child {
  margin-bottom: 0;
}

.cat-point-list__heading,
.c-inner .cat-point-list__heading {
  display: flex;
  align-items: center;
  gap: 0.8em;
  font-size: 18px;
  font-weight: bold;
  font-family: var(--font-base);
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #111;
  margin: 0 0 40px 0;
  padding: 0;
  text-align: left;
}

.cat-point-list__heading > span:first-child,
.c-inner .cat-point-list__heading > span:first-child {
  display: inline-grid;
  place-items: center;
  background: #696969;
  color: #fff;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 0.6em 0.9em;
  border-radius: 0;
  flex-shrink: 0;
}

/* 赤背景バッジモディファイア（carving用） */
.cat-point-list__heading.--badge-red > span:first-child,
.c-inner .cat-point-list__heading.--badge-red > span:first-child {
  background: #e94738;
}

/* 中央揃えバッジモディファイア（spanなし、見出し全体が背景付き） */
.cat-point-list__heading.--center-badge,
.c-inner .cat-point-list__heading.--center-badge,
.cat-point-list__heading.--center-badge--red,
.c-inner .cat-point-list__heading.--center-badge--red {
  background: #696969;
  color: #fff;
  padding: 6px 16px;
  margin: 0 auto 40px;
  max-width: max-content;
  text-align: center;
  justify-content: center;
  font-size: 16px;
}

.cat-point-list__heading.--center-badge--red,
.c-inner .cat-point-list__heading.--center-badge--red {
  background: #e94738;
}

.--longs .cat-point-list__heading.--center-badge,
.c-inner .--longs .cat-point-list__heading.--center-badg {
  max-width: 100%;
}

.order-tel__caution__title {
  background: #e94738;
  color: #fff;
  font-size: 16px;
  text-align: center;
  padding: 6px 1em;
  font-family: var(--font-base) !important;
}

.order-tel__caution--inner {
  background: #f4f4f4;
  padding: 40px;
}

.order-tel__caution__sub {
  text-align: center;
  font-weight: bold;
  margin-bottom: 30px !important;
}

.order-tel__caution__list li:not(:last-child) {
  margin-bottom: 2em;
}

/* 縦並び中央揃え見出し（carving おすすめ文字数の目安用） */
.cat-heading-badge-vertical,
.c-inner .cat-heading-badge-vertical {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  justify-items: center;
  font-size: 18px;
  font-weight: bold;
  font-family: var(--font-base);
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #111;
  margin: 0 auto 40px;
  padding: 0;
  text-align: center;
}

.cat-heading-badge-vertical > span:first-child,
.c-inner .cat-heading-badge-vertical > span:first-child {
  display: inline-grid;
  place-items: center;
  background: #e94738;
  color: #fff;
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 0.6em 0.9em;
  border-radius: 0;
}

.c-inner .cat-heading-badge-vertical.u-mb-16 > span:first-child {
  font-size: 16px;
}

@media (max-width: 900px) {
  .cat-point-list__heading.--center-badge,
  .c-inner .cat-point-list__heading.--center-badge {
    padding: 8px 12px;
    font-size: 16px;
  }

  .cat-heading-badge-vertical,
  .c-inner .cat-heading-badge-vertical {
    gap: 8px;
    font-size: 16px;
  }

  .order-tel__caution--inner {
    padding: 20px;
  }
}

@media (max-width: 480px) {
  .cat-heading-badge.--spaces {
    letter-spacing: -0.5px;
  }
}

.cat-point-list__body,
.c-inner .cat-point-list__body {
  margin: 0;
  padding: 0;
}

/* cat-point-list__body内の要素間余白（lobotomized owl） */
.cat-point-list__body > * + *,
.c-inner .cat-point-list__body > * + * {
  margin-top: 1.5em;
}

/* 段落のデフォルト余白 */
.cat-point-list__body p,
.c-inner .cat-point-list__body p {
  margin: 0 0 1em 0;
  line-height: 1.8;
}

.cat-point-list__body p:last-child,
.c-inner .cat-point-list__body p:last-child {
  margin-bottom: 0;
}

/* SP版 */
@media (max-width: 900px) {
  /* .cat-point-list__item,
  .c-inner .cat-point-list__item {
    margin-bottom: 80px;
  } */

  .cat-point-list__heading,
  .c-inner .cat-point-list__heading {
    font-size: 18px;
    margin-bottom: 20px;
  }

  .cat-media-row__body .cat-point-list__heading,
  .c-inner .cat-media-row__body .cat-point-list__heading {
    margin-bottom: 0;
  }

  .--sp-onecolumn {
    grid-template-columns: 1fr !important;
  }

  .--sp-no-gap {
    gap: 0 !important;
  }
}

.quick_ttl_points {
  background: #e94738;
  padding: 6px 10px;
  text-align: center;
}

.quick_ttl_points p {
  margin: 0 auto;
  font-size: 16px;
  font-weight: bold;
  color: #fff;
  text-align: center;
  width: fit-content;
  display: block;
}

.quick_ttl_points__h {
  background: #e94738;
  padding: 6px 10px;
  text-align: center;
  margin: 0 auto;
  font-size: 16px;
  font-weight: bold;
  color: #fff !important;
  text-align: center;
  font-family: var(--font-base) !important;
}

.cat_attent--inner {
  padding: 40px;
  background: #f4f4f4;
}

.cat_attent--list li:not(:last-child) {
  margin-bottom: 2em;
}

.cat_attent--disc li:not(:last-child) {
  margin-bottom: 2em;
  border-bottom: 1px solid #e94738;
  padding-bottom: 2em;
}

.cat_attent--disc li {
  list-style: none;
  margin-left: 0;
  position: relative;
  padding-left: 20px;
}

.cat_attent--disc li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 10px;
  height: 10px;
  background: #e94738;
  border-radius: 50%;
}

.cat_attent--big {
  font-weight: bold;
  text-align: center;
  font-size: 16px;
}

.--border_red {
  border: 1px solid #e94738;
}

@media (max-width: 900px) {
  .cat_attent--inner {
    padding: 20px;
  }
}

/* ============================================
   連続br対策（全体）
   ============================================ */

/* 連続brの2つ目以降を非表示（念のための安全策） */
/* .cat-point-list__body br + br,
.c-inner .cat-point-list__body br + br,
.cat-content__inner br + br,
.c-inner br + br {
  display: none;
} */

/***********************************************************

ジョイタスとは（About）ページ

***********************************************************/
@media (min-width: 900px) {
  .fs-body-category-company aside.fs-l-pageSub {
    display: block;
  }
}

@media (max-width: 900px) {
  .fs-body-category-company .fs-l-pageMain {
    margin: 0;
  }
}

.fs-body-category-company .fs-l-pageMain h2.section-heading {
  line-height: 1;
  text-align: center;
  margin-bottom: 35px;
}

#fs_ProductCategory .fs-c-productList:not(:has(*)) {
  margin: 0;
}

/* ========================================
   About: イントロ＋ページ内ナビ
   ======================================== */
.about-intro {
  text-align: center;
}

.about-intro__lead {
  font-size: 14px;
  line-height: 1.9;
  margin-top: 16px;
}

/* --- ページ内ナビ --- */
.about-nav {
  max-width: 830px;
  margin: 33px auto 0;
}

.about-nav__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px 0;
  list-style: none;
  padding: 0;
  margin: 0;
}

.about-nav__item {
  width: 245px;
  border-bottom: 1px solid #c1c1c1;
}

.about-nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  padding: 15px 8px 15px 15px;
  font-size: 14px;
  text-align: left;
  color: var(--color-text) !important;
}

.about-nav__link::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1px solid var(--color-text-muted);
  border-bottom: 1px solid var(--color-text-muted);
  transform: rotate(45deg);
  flex-shrink: 0;
}

/* --- About共通: セクション見出し --- */
.about-section-heading {
  margin-bottom: 40px;
}

.about-section-heading__title-row {
  display: flex;
  flex-wrap: wrap;
  column-gap: 16px;
  row-gap: 14px;
  align-items: flex-end;
}

.about-section-heading__en,
.fs-body-category-company .fs-l-pageMain h2.about-section-heading__en {
  font-family: var(--font-heading);
  font-size: 60px;
  font-weight: 300;
  color: #818688;
  letter-spacing: 1.2px;
  line-height: 1;
  margin: 0;
}

.about-section-heading__ja {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 1.3px;
  padding-bottom: 5px;
}

.about-section-heading__sub {
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 300;
  color: #b1b1b1;
  line-height: 1.2;
  margin-top: 8px;
}

/* --- About共通: コンテンツ見出し --- */
.about-content-heading {
  font-size: 22px;
  color: #5b7fc7;
  line-height: 2.2;
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-color: #b1b1b1;
  text-decoration-thickness: 1px;
  text-underline-offset: 14px;
}

.about-content-heading:last-of-type {
  margin-bottom: 20px;
}

.about-content-text {
  font-size: 14px;
  line-height: 1.9;
}

.about-content-text p {
  margin-top: 10px;
}

.about-content-text p:first-child {
  margin-top: 0;
}

/* ========================================
   About: ヒーロー
   ======================================== */
.about-hero__tagline {
  font-size: 24px;
  color: #5b7fc7;
  line-height: 2.2;
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-color: #b1b1b1;
  text-decoration-thickness: 1px;
  text-underline-offset: 14px;
}

.about-hero__tagline-wrap {
  text-align: center;
}

.about-hero__desc {
  text-align: center;
  font-size: 14px;
  line-height: 1.9;
  margin-top: 25px;
}

.about-hero__image {
  margin-top: 27px;
}

.about-hero__image img {
  width: 100%;
  height: auto;
}

/* ========================================
   About: ジョイタスについて
   ======================================== */
.about-us__block {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

.about-us__block + .about-us__block {
  margin-top: 50px;
}

.about-us__block--reverse {
  flex-direction: row-reverse;
  align-items: center;
}

.about-us__block-text {
  width: calc(50% - 40px);
}

.about-us__block-images {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 50%;
  min-height: 370px;
}

.about-us__img {
  height: auto;
}

.about-us__img--small {
  width: calc(40% - 10px);
  align-self: flex-end;
}

.about-us__img--large {
  width: 60%;
  margin-bottom: 30px;
}

/* ========================================
   About: Our Philosophy
   ======================================== */

.fs-l-page:has(.about-philosophy) {
  overflow: hidden;
}

.about-philosophy {
  position: relative;
  padding: 100px 0;
}

.about-philosophy::before {
  content: "";
  position: absolute;
  inset: 0 -100vw 0 20%;
  background: url("../img/about-philosophy_bg.png") no-repeat top left;
  background-size: auto 100%;
  z-index: -1;
  pointer-events: none;
}

.about-philosophy__block {
  /* display: flex;
  gap: 40px;
  align-items: flex-start; */
  display: grid;

  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}

.about-philosophy__block + .about-philosophy__block {
  margin-top: 40px;
}

.about-philosophy__block--reverse {
  grid-template-columns: 1fr 2fr;
  align-items: center;
}

/* ========================================
   About: Award Advisor
   ======================================== */
.about-advisor__block {
  min-height: 320px;
}

.about-advisor__block.--top {
  position: relative;
}

.about-advisor__block + .about-advisor__block {
  margin-top: 40px;
}

.about-advisor__block--reverse {
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 40px;
  min-height: auto;
}

.about-advisor__block-text {
  width: 100%;
  max-width: 55%;
  position: relative;
}

.about-advisor__block--reverse .about-advisor__block-text {
  flex: 1;
  width: auto;
  max-width: none;
}

.about-advisor__block.--top .about-advisor__block-img {
  position: absolute;
  top: 0;
  right: 0;
  width: 41%;
  z-index: -1;
}

.about-advisor__block--reverse .about-advisor__block-img {
  position: static;
  flex-shrink: 0;
  width: 364px;
}

.about-advisor__block-img img {
  width: 100%;
  height: auto;
}

.about-advisor__cta {
  width: 470px;
  max-width: 100%;
  margin: 42px auto 0;
  padding: 8px;
  background: #f5f5f5;
}

.about-advisor__cta-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  padding: 16px 30px;
  border: 1px solid #c1c1c1;
}

.about-advisor__cta-label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  letter-spacing: 0.84px;
}

.about-advisor__cta-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.about-advisor__cta-tel {
  font-family: var(--font-accent);
  line-height: 1;
}

.about-advisor__cta-prefix {
  font-size: 15px;
}

.about-advisor__cta-num {
  font-size: 24px;
}

.about-advisor__cta-hours {
  font-size: 10px;
  letter-spacing: 0.3px;
}

/* ========================================
   About: Why Choose JOYTAS
   ======================================== */
.about-reason__list {
  display: flex;
  flex-direction: column;
  gap: 29px;
}

.about-reason__item {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.about-reason__item-header {
  display: flex;
  align-items: flex-end;
  gap: 2px;
}

.about-reason__badge {
  flex-shrink: 0;
  width: 57px;
  height: 57px;
  background: #bccae7;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 11px;
  font-family: var(--font-heading);
  line-height: 1;
}

.about-reason__badge-num {
  font-size: 27px;
  font-weight: 500;
}

.about-reason__item-body {
  flex: 1;
}

.about-reason__item-title {
  flex: 1;
  font-size: 24px;
  color: #5b7fc7;
  margin: 0;
  line-height: 1.5;
  border-bottom: 1px dashed #b1b1b1;
  padding-bottom: 10px;
  padding-left: 17px;
  font-weight: 400;
}

.about-reason__item-text {
  font-size: 14px;
  line-height: 1.9;
}

.about-reason__closing {
  display: grid;
  grid-template-columns: 4fr 3fr;
  gap: 40px;
  margin-top: 60px;
}

.about-reason__closing-body {
  margin-top: 16px;
}

.about-reason__closing-img img {
  width: 100%;
  height: auto;
}

/* ========================================
   About: 画像ギャラリー
   ======================================== */
.about-gallery {
  position: relative;
  margin: 80px 0 0;
}

.about-gallery__img.--1 {
  width: 36%;
  padding-bottom: 20%;
}

.about-gallery__img.--2 {
  position: absolute;
  bottom: 0;
  left: 28%;
  width: 33%;
}

.about-gallery__img.--3 {
  position: absolute;
  top: 5%;
  right: 24%;
  width: 24%;
  z-index: 1;
}

.about-gallery__img.--4 {
  position: absolute;
  bottom: 23%;
  right: 0;
  width: 27%;
}

/* ========================================
   About: Let's Talk
   ======================================== */
.about-talk__desc {
  line-height: 1.8;
  margin-bottom: 25px;
}

.about-talk__cards-wrap {
  background: #bccae7;
  padding: 33px 0;
}

/* ========================================
   About: Company Activity
   ======================================== */
.about-activity__content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}

.about-activity__image img {
  width: 100%;
  height: auto;
}

.about-activity__image img {
  width: 100%;
  height: auto;
}

/* ========================================
   About: Company Profile
   ======================================== */
.about-profile__table {
  width: 100%;
  border-collapse: collapse;
}

.about-profile__table th,
.about-profile__table td {
  padding: 15px 22px;
  border-bottom: 1px solid var(--color-border-light);
  line-height: 1.6;
  vertical-align: top;
  text-align: left;
}

.about-profile__table th {
  width: 230px;
  font-weight: 500;
}

.about-profile__note {
  color: #e94738;
  font-size: 13px;
}

.about-profile__business-list {
  list-style: disc;
  padding-left: 1.5em;
  margin: 0;
}

.about-profile__business-list li {
  margin-bottom: 5px;
}

.about-profile__business-list li:last-child {
  margin-bottom: 0;
}

/* ========================================
   About: Access
   ======================================== */
.about-access__info {
  margin-bottom: 42px;
}

.about-access__info p {
  line-height: 1.5;
  margin-top: 4px;
}

.about-access__info p:first-child {
  margin-top: 0;
}

.about-access__station-icon {
  display: inline-block;
  width: 12px;
  height: 12px;
  background: #c1c1c1;
  vertical-align: middle;
  margin-right: 9px;
}

.about-access__directions-title {
  font-size: 22px;
  font-weight: 500;
  text-align: center;
  margin: 0 0 28px;
  padding-bottom: 18px;
  position: relative;
  font-weight: 400;
}

.about-access__directions-title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 54px;
  height: 1px;
  background: #c1c1c1;
}

.about-access__tabs {
  display: flex;
  margin-bottom: 35px;
}

.about-access__tab {
  flex: 1;
  padding: 0 20px;
  text-align: center;
  border: none;
  background: #f5f5f5;
  cursor: pointer;
  font-family: inherit;
  color: #818688;
  min-height: 64px;
}

.about-access__tab--active {
  background: #bccae7;
  color: #3e5481;
}

.about-access__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 250px));
  justify-content: center;
  gap: 35px;
}

.about-access__step-img {
  position: relative;
  margin-bottom: 10px;
}

.about-access__step-num {
  position: absolute;
  top: -7px;
  left: -7px;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #bccae7;
  color: #fff;
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 500;
  z-index: 1;
}

.about-access__step-img img {
  display: block;
  width: 100%;
  height: auto;
}

.about-access__step-text {
  line-height: 1.6;
}

.about-access__steps-more {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.5s ease;
}

.about-access__steps-more.is-open {
  grid-template-rows: 1fr;
}

.about-access__steps-more-inner {
  overflow: hidden;
  min-height: 0;
}

.about-access__steps-more .about-access__steps {
  margin-top: 35px;
}

.about-access__more-btn,
.about-access__more-btn:hover,
.about-access__more-btn:visited {
  position: relative;
  margin: 37px auto 0;
  height: 63px;
  background-image: none;
}

.about-access__more-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 11px;
  height: 8px;
  background: url(../img/icon_arrow_anchor-link.svg) no-repeat center / contain;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}

.about-access__more-btn.is-open::after {
  transform: translateY(-50%) rotate(180deg);
}

.about-access__map {
  max-width: 830px;
  margin: 70px auto 0;
  aspect-ratio: 830 / 320;
}

.about-access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
}

/* ========================================
   About: はじめてのお客様へ
   ======================================== */
.about-first__inner,
.joytas-link__inner {
  position: relative;
  max-width: 670px;
  margin: auto;
}

.about-first__bg-img,
.joytas-link__bg-img {
  position: absolute;
  right: 0;
  width: 70%;
  height: 100%;
  object-fit: cover;
}

.about-first__overlay,
.joytas-link__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(92deg, #f4f5f7 34%, rgba(244, 245, 247, 0) 83%);
}

.about-first__content,
.joytas-link__content {
  position: relative;
  display: flex;
  gap: 20px;
  padding: 40px 40px 30px 40px;
  align-items: flex-end;
  justify-content: space-between;
}

.about-first__left,
.joytas-link__left {
  flex: 1;
  max-width: 335px;
}

.about-first__title,
.joytas-link__title {
  font-size: 21px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(193, 193, 193, 0.8);
  margin-bottom: 10px;
}

.about-first__desc,
.joytas-link__desc {
  font-size: 14px;
}

.about-first__btn,
.joytas-link__btn {
  margin-top: 20px;
}

/* ========================================
   About: レスポンシブ（1200px以上）
   ======================================== */
@media (min-width: 1200px) {
  .about-philosophy__block.--bres {
    align-items: center;
  }
}

/* ========================================
   About: レスポンシブ（900px以下）
   ======================================== */
@media (max-width: 900px) {
  /* --- 共通：セクション見出し（EN + JA を縦積み） --- */
  .about-section-heading__title-row {
    display: block;
  }

  .about-section-heading__en,
  .fs-body-category-company .fs-l-pageMain h2.about-section-heading__en {
    font-size: 40px;
    line-height: 1.1;
  }

  .about-section-heading__ja {
    display: block;
    margin-top: 4px;
  }

  .about-section-heading__sub {
    font-size: 14px;
    margin-top: 10px;
  }

  /* --- Intro：ページ内ナビ --- */
  .about-nav {
    margin-top: 25px;
  }

  .about-nav__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 20px;
  }

  .about-nav__item {
    width: auto;
  }

  .about-nav__link {
    font-size: 13px;
    padding: 14px 10px 14px 8px;
  }

  /* --- Hero --- */
  .about-hero__tagline {
    font-size: 20px;
  }

  .about-hero__desc {
    font-size: 14px;
  }

  /* --- About：テキスト + 画像を縦積み。画像は横並びのまま縮小 --- */
  .about-us__block,
  .about-us__block--reverse {
    flex-direction: column;
    gap: 20px;
  }

  .about-us__block-text {
    width: 100%;
  }

  .about-us__block-images,
  .about-us__block--reverse .about-us__block-images {
    width: 100%;
    min-height: 0;
    justify-content: flex-end;
  }

  .about-us__img--small,
  .about-us__block--reverse .about-us__img--small {
    width: 38%;
    height: auto;
  }

  .about-us__img--large,
  .about-us__block--reverse .about-us__img--large {
    width: 55%;
    height: auto;
  }

  .about-content-heading {
    font-size: 18px;
    text-underline-offset: 12px;
  }

  .about-us__block--reverse .about-us__block-images {
    justify-content: flex-start;
  }

  /* --- Philosophy --- */
  .about-philosophy {
    padding: 60px 0;
  }

  .about-philosophy::before {
    background-position-x: 20%;
    left: 0;
  }

  .about-philosophy__block,
  .about-philosophy__block--reverse {
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
  }

  .about-philosophy__block + .about-philosophy__block {
    margin-top: 20px;
  }

  .about-philosophy__block--reverse .about-philosophy__block-text {
    order: -1;
  }

  .about-philosophy__block-img,
  .about-philosophy__block--reverse .about-philosophy__block-img {
    width: 100%;
  }

  .about-philosophy__block-img img {
    width: 100%;
    height: auto;
  }

  /* --- Advisor --- */
  .about-advisor__block,
  .about-advisor__block--reverse {
    flex-direction: column;
    gap: 20px;
  }

  .about-advisor__block.--top {
    display: flex;
  }

  .about-advisor__block-img,
  .about-advisor__block--reverse .about-advisor__block-img {
    width: 100%;
  }

  .about-advisor__block.--top .about-advisor__block-img {
    position: relative;
  }

  .about-advisor__block-text {
    max-width: unset;
  }

  .about-advisor__block.--top .about-advisor__block-img {
    width: 100%;
  }

  .about-advisor__block-img img {
    width: 100%;
    height: auto;
  }

  .about-advisor__cta-inner {
    flex-direction: column;
    gap: 10px;
    padding: 20px;
  }

  .about-advisor__cta-tel {
    font-size: 24px;
  }

  .about-advisor__cta-num {
    font-size: 26px;
  }

  .about-advisor__cta-hours {
    font-size: 12px;
  }

  /* --- Why Choose JOYTAS --- */
  .fs-body-category-company .fs-l-pageMain .about-reason h2.about-section-heading__en {
    font-size: 30px;
  }

  .about-reason__badge {
    width: 54px;
    height: 62px;
    font-size: 10px;
  }

  .about-reason__badge-num {
    font-size: 27px;
    margin-top: 4px;
  }

  .about-reason__item-title {
    font-size: 18px;
    padding: 5px 0 5px 10px;
    min-height: 62px;
    display: flex;
    align-items: center;
  }

  .about-reason__closing {
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
    margin-top: 40px;
  }

  .about-reason__closing-img {
    width: 100%;
  }

  .about-reason__closing-img img {
    width: 100%;
    height: auto;
  }

  /* --- ギャラリー --- */
  .about-gallery {
    flex-wrap: wrap;
    gap: 16px;
    margin: 50px 0;
  }

  .about-gallery__img {
    width: calc(50% - 8px);
    height: auto;
  }

  /* --- Let's Talk：カードを縦積み --- */
  .about-talk__desc {
    font-size: 14px;
  }

  .about-talk__cards-wrap {
    padding: 20px;
  }

  .about-talk .contact__cards {
    flex-direction: column;
    gap: 16px;
  }

  .about-talk .contact__card {
    flex: 0 0 auto;
  }

  /* --- はじめてのお客様へ / ジョイタスとは（共通） --- */
  .about-first__inner,
  .joytas-link__inner {
    width: 100%;
    height: 200px;
    border-radius: 4px;
    overflow: hidden;
  }

  .joytas-link__overlay {
    background: linear-gradient(92deg, #f4f5f7fc 40%, #f4f5f79c 100%);
  }

  .about-first__content,
  .joytas-link__content {
    padding: 20px;
  }

  .about-first__title,
  .joytas-link__title {
    font-size: 16px;
    padding-bottom: 8px;
    width: 252px;
  }

  .about-first__desc,
  .joytas-link__desc {
    font-size: 14px;
  }

  .about-first__btn,
  .about-first__btn:hover,
  .about-first__btn:visited,
  .joytas-link__btn,
  .joytas-link__btn:hover,
  .joytas-link__btn:visited {
    width: 100%;
    margin-top: 10px;
  }

  .about-first__bg-img,
  .joytas-link__bg-img {
    width: 70%;
  }

  /* --- Company Activity --- */
  .fs-body-category-company .fs-l-pageMain .about-activity h2.about-section-heading__en {
    font-size: 38px;
  }

  .about-activity__content {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .about-activity__image img {
    width: 100%;
    height: auto;
  }

  /* --- Company Profile：テーブルを縦積み（th上・td下） --- */
  .about-profile__table,
  .about-profile__table tbody,
  .about-profile__table tr,
  .about-profile__table th,
  .about-profile__table td {
    display: block;
    width: auto;
  }

  .about-profile__table tr {
    padding: 16px 0;
    border-bottom: 1px solid #e0e0e0;
  }

  .about-profile__table tr:first-child {
    border-top: 1px solid #e0e0e0;
  }

  .about-profile__table th {
    padding: 0 0 6px;
    font-size: 14px;
    font-weight: 600;
    background: none;
    border: none;
  }

  .about-profile__table td {
    padding: 0;
    font-size: 14px;
    border: none;
  }

  /* --- Access --- */
  .about-access__steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 0 20px;
  }

  .about-access__tab {
    font-size: 16px;
    padding: 12px 10px;
    line-height: 1.4;
  }

  .about-access__steps-more .about-access__steps {
    margin-top: 30px;
  }

  .about-access__more-btn {
    height: 54px;
  }

  .about-access__map {
    aspect-ratio: 16 / 9;
  }

  /* --- 閲覧履歴：SP横スクロール対応（他ページのsp-slide__wrapperパターンに追随） --- */
  .cat-products {
    overflow: hidden;
  }
}

/***********************************************************

ご注文完了ページ

***********************************************************/

.fs-l-main:not(:has(.fs-l-pageSub)) {
  justify-content: center;
}

/* ========================================
   カートステップ
   ======================================== */

.cart-out #quoteSystemButton {
  display: none;
}

.cart-step {
  max-width: 1140px;
  margin: 0 auto 40px;
  padding: 0 10px;
}

.cart-step__list {
  display: flex;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 10px;
}

.cart-step__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 196px;
  height: 80px;
  background: #f5f5f5;
  color: #8e8e8e;
}

.cart-step__item:not(:last-child) {
  margin-right: 22px;
}

.cart-step__item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0;
  width: 0;
  height: 0;
  border-top: 40px solid transparent;
  border-bottom: 40px solid transparent;
  border-left: 22px solid #f5f5f5;
}

.cart-step__item.is-active {
  background: #bccae7;
  color: #fff;
  width: 231px;
}

.cart-step__item.is-active:not(:last-child)::after {
  border-left-color: #bccae7;
}

.cart-step__num {
  font-family: var(--font-heading);
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}

.cart-step__label {
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
}

/* ======================================
   公式SNSセクション（シンプル版ページ用 / 通常SNSとは独立）
   ====================================== */
.sns-simple {
  padding: 80px 20px 0;
  text-align: center;
}

.sns-simple__title {
  font-size: 20px;
  font-weight: 500;
  margin: 0;
}

.sns-simple__title::after {
  content: "";
  display: block;
  width: 54px;
  height: 1px;
  background: var(--color-border);
  margin: 12px auto 20px;
}

.sns-simple__desc {
  font-size: 14px;
  line-height: 2;
  margin: 0;
}

.sns-simple__list {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
}

.sns-simple__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #f4f5f7;
}

/* ======================================
   ご注文完了（サンクスページ）
   ====================================== */

.order-complete {
  font-size: 14px;
}

.order-complete__box {
  max-width: 900px;
  margin: 0 auto;
  padding: 46px 85px 53px;
  border: 1px solid #8da2cb;
  text-align: left;
}

.fs-c-checkoutSuccess h2 {
  width: fit-content;
  margin: 0 auto;
  padding-bottom: 12px;
  border-bottom: 1px dashed #b1b1b1;
  color: #5b7fc7;
  font-size: 22px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 1.76px;
}

.fs-c-checkoutSuccess b {
  font-weight: normal;
}

.order-complete__lead {
  margin: 31px 0 0;
  line-height: 1.7;
}

.order-complete__notes {
  list-style: none;
  margin: 19px 0 0;
  padding: 0;
}

.order-complete__notes-item {
  position: relative;
  padding-left: 18px;
  line-height: 1.6;
}

.order-complete__notes-item + .order-complete__notes-item {
  margin-top: 19px;
}

.order-complete__notes-item::before {
  content: "※";
  position: absolute;
  left: 0;
}

.fs-c-checkoutSuccess b:nth-of-type(2) {
  color: #e94738;
}

.order-complete__closing-note {
  margin: 19px 0 0;
  line-height: 1.7;
}

.order-complete__flow {
  margin-top: 24px;
}

.order-complete__flow-title {
  display: inline-block;
  margin: 0;
  padding: 3px 14px;
  background: #f4f5f7;
  font-size: 15px;
  font-weight: 500;
}

.order-complete__flow-list {
  list-style: disc;
  margin: 8px 0 0;
  padding-left: 21px;
}

.order-complete__flow-item {
  line-height: 1.7;
}

.order-complete__thanks {
  margin-top: 60px;
  text-align: center;
}

.order-complete__thanks-text {
  font-size: 22px;
  color: #5b7fc7;
  line-height: 2.2;
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-color: #b1b1b1;
  text-decoration-thickness: 1px;
  text-underline-offset: 14px;
}

.order-complete__thanks-illust {
  margin: 27px 0 0;
}

.order-complete__thanks-illust img {
  display: block;
  max-width: 624px;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

/* ======================================
   商品レビュー（サンクスページ）
   ====================================== */

.review-intro {
  text-align: center;
}

.review-intro__desc {
  font-size: 14px;
  line-height: 1.9;
  margin: 23px 0 0;
}

.review-intro__card {
  position: relative;
  max-width: 670px;
  margin: 27px auto 0;
}

.review-intro__bg-img {
  position: absolute;
  right: 0;
  width: 50%;
  height: 100%;
  object-fit: cover;
}

.review-intro__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(92deg, #f4f5f7 55%, rgba(244, 245, 247, 0) 85%);
}

.review-intro__content {
  position: relative;
  padding: 39px 0 39px 37px;
  text-align: left;
}

.review-intro__title {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 335px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(193, 193, 193, 0.8);
}

.review-intro__title-text {
  font-size: 21px;
  line-height: 1.5;
  letter-spacing: 1.05px;
}

.review-intro__text {
  font-size: 14px;
  line-height: 1.65;
  letter-spacing: 0.7px;
  margin: 10px 0 0;
}

.review-intro__btn,
.review-intro__btn:hover,
.review-intro__btn:visited {
  width: 335px;
  max-width: 335px;
  height: 60px;
  padding: 0 10px 0 20px;
  margin-top: 21px;
  font-size: 16px;
  letter-spacing: 1.6px;
}

/* ======================================
   Support & Guide（サンクスページ）
   ====================================== */

.support-guide {
  background: #f4f5f7;
  padding: 75px 100px 80px;
}

.support-guide__inner {
  max-width: 1000px;
  margin: 0 auto;
}

.support-guide__header {
  margin-bottom: 53px;
}

.support-guide .section-heading {
  font-family: var(--font-heading);
  font-size: 32px;
  letter-spacing: 0.96px;
  color: #818688;
  margin-bottom: 0;
}

.support-guide .section-heading__sub {
  font-size: 13px;
  letter-spacing: 0.65px;
  color: var(--color-text);
  margin-top: 10px;
}

.support-guide__desc {
  margin: 25px 0 0;
  font-size: 14px;
  line-height: 1.9;
  text-align: center;
}

.support-guide__blocks {
  display: flex;
  flex-direction: column;
  gap: 45px;
}

.support-guide__block {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.support-guide__title {
  margin: 0;
  padding: 0 6px 6px;
  border-bottom: 1px solid #a6a6a6;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 1.1px;
  line-height: 1.8;
}

.support-guide__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 21px;
  padding: 0 9px;
}

.support-guide__text {
  width: 100%;
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.7px;
}

.support-guide__btn,
.support-guide__btn:hover,
.support-guide__btn:visited {
  width: 335px;
  max-width: 335px;
  height: 60px;
  padding: 0 10px 0 20px;
  font-size: 16px;
  letter-spacing: 1.6px;
}

.support-guide__cards {
  margin-top: 17px;
}

.support-guide__row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
}

.support-guide__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 21px;
  flex: 1;
  padding: 0 9px;
}

.support-guide__figure {
  margin: 0;
  flex-shrink: 0;
}

.support-guide__figure img {
  display: block;
  width: 390px;
  height: auto;
}

.support-guide__text-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.support-guide__condition {
  width: 100%;
}

.support-guide__label {
  display: inline-block;
  margin: 0 0 5px;
  padding: 2px 10px;
  background: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
}

.support-guide__list {
  margin: 0;
  padding-left: 21px;
  list-style: disc;
}

.support-guide__list-item {
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.7px;
}

.support-guide__case {
  width: 100%;
}

.support-guide__case-title {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
}

.support-guide__case .support-guide__text {
  margin-top: 0;
}

/* --- サンクスページ（order-complete / review-intro / support-guide）：レスポンシブ --- */
@media (max-width: 900px) {
  /* cart-step__num */
  .cart-step__num {
    font-size: 10px;
  }

  .cart-step__label {
    font-size: 14px;
    line-height: 1.2;
    text-align: center;
  }

  .cart-step__item:not(:last-child)::after {
    border-left: 12px solid #f5f5f5;
  }

  .cart-step__item:not(:last-child) {
    margin-right: 12px;
  }

  .cart-step__list {
    gap: 4px;
  }

  /* order-complete */
  .order-complete__box {
    max-width: 100%;
    padding: 33px 10px;
  }

  .order-complete__title,
  .order-complete__thanks-text {
    font-size: 20px;
    letter-spacing: 1.2px;
  }

  .order-complete__thanks {
    margin-top: 48px;
  }

  .order-complete__thanks-illust {
    margin-top: 20px;
  }

  /* review-intro */
  .review-intro__card {
    max-width: 100%;
  }

  .review-intro__bg-img {
    width: 60%;
  }

  .review-intro__overlay {
    background: linear-gradient(90deg, rgba(244, 245, 247, 0.95) 45%, rgba(244, 245, 247, 0.3) 100%);
  }

  .review-intro__content {
    padding: 26px 23px;
  }

  .review-intro__title {
    width: 100%;
  }

  .review-intro__title-text {
    font-size: 20px;
  }

  .review-intro__btn,
  .review-intro__btn:hover,
  .review-intro__btn:visited {
    width: 100%;
    max-width: 100%;
  }

  /* support-guide */
  .support-guide {
    padding: 40px 15px 50px;
  }

  .support-guide__header {
    margin-bottom: 30px;
  }

  .support-guide .section-heading {
    font-size: 24px;
  }

  .support-guide__blocks {
    gap: 30px;
  }

  .support-guide__title {
    font-size: 18px;
    letter-spacing: 0.9px;
  }

  .support-guide__body {
    padding: 0;
  }

  .support-guide__row {
    flex-direction: column;
    align-items: stretch;
    gap: 15px;
  }

  .support-guide__col {
    padding: 0;
    display: contents;
  }

  .support-guide__figure img {
    width: 100%;
  }

  .support-guide__btn,
  .support-guide__btn:hover,
  .support-guide__btn:visited {
    width: 100%;
    max-width: 100%;
    order: 100;
  }
}

/* ======================================
   FAQ: JOYTAS DAY バナー
   ====================================== */
.joytas-day__banner {
  display: block;
  max-width: 670px;
  margin: 0 auto;
}

.joytas-day__banner img {
  display: block;
  width: 100%;
  height: auto;
}

/* --- JOYTAS DAY バナー：レスポンシブ --- */
@media (max-width: 900px) {
  .joytas-day__banner {
    max-width: 343px;
  }
}

/* ======================================
   FAQ: アドバイザー案内
   ====================================== */
.advisor__intro {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5px;
  align-items: center;
  margin-bottom: 28px;
}

.advisor__desc {
  font-size: 14px;
  line-height: 2;
  padding: 0 0 0 30px;
}

.advisor__image img {
  width: 100%;
  height: auto;
}

.advisor__cards-wrap {
  background: #bccae7;
  padding: 33px 0;
}

/* ======================================
   FAQ: カテゴリーから探す
   ====================================== */
.category-search__tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 13px;
  max-width: 830px;
  margin: 0 auto 40px;
}

.category-search__tab {
  height: 50px;
  padding: 0 10px;
  border: none;
  background: #f5f5f5;
  color: var(--color-text-muted);
  font-family: inherit;
  font-size: 16px;
  letter-spacing: 0.32px;
  cursor: pointer;
}

.category-search__tab.is-active {
  background: #696969;
  color: #fff;
}

/* ======================================
   FAQ ページ：レスポンシブ
   ====================================== */
@media (max-width: 900px) {
  .advisor__intro {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .advisor__desc {
    padding: 0;
    font-size: 13px;
  }

  .advisor__cards-wrap {
    padding: 20px;
  }

  .advisor .contact__cards {
    flex-direction: column;
    gap: 16px;
  }

  .advisor .contact__card {
    flex: 0 0 auto;
  }

  .category-search__tabs {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .category-search__tab {
    font-size: 14px;
    height: 40px;
  }
}

/* ======================================
   はじめてのお客様へ：イントロ（画像＋テキスト）
   ====================================== */
.first-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 48px;
  margin-top: 40px;
}

.first-intro__image img {
  width: 100%;
  height: auto;
}

.first-intro__text {
  font-size: 14px;
  line-height: 1.9;
}

.first-intro__text p {
  margin: 0;
  text-align: left;
}

/* ======================================
   下線ダッシュ見出し
   ====================================== */
.heading-dashed {
  text-align: center;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.5;
  padding-bottom: 10px;
  border-bottom: 1px dashed #b1b1b1;
  margin: 0 auto 60px;
  width: fit-content;
}

/* ======================================
   ジョイタスが選ばれる理由
   ====================================== */
.first-reason__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 21px;
  margin-bottom: 58px;
}

.first-reason__lead-title {
  font-size: 20px;
  font-weight: 500;
  margin: 0;
  text-align: center;
}

.first-reason__points {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
  width: 422px;
}

.first-reason__points li {
  background: #f4f5f7;
  color: #5b7fc7;
  font-weight: 500;
  font-size: 16px;
  padding: 4px 10px;
  text-align: center;
}

.first-reason__block {
  display: grid;
  grid-template-columns: 1fr minmax(0, 370px);
  align-items: flex-start;
  gap: 50px;
}

.first-reason__block-text {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.first-reason__block-text p {
  font-size: 14px;
  line-height: 1.9;
  margin: 0;
}

.first-reason__note {
  margin-top: 10px;
}

.first-reason__note p {
  font-size: 14px;
  line-height: 1.9;
  margin: 0 0 10px;
}

.first-reason__note p:last-child {
  margin-bottom: 0;
}

.first-reason__subheading {
  text-align: center;
  font-size: 20px;
  font-weight: 500;
  margin: 40px 0 22px;
}

.first-reason__cards-wrap {
  margin-top: 60px;
}

/* --- p-first：レスポンシブ --- */
@media (max-width: 900px) {
  .first-intro {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .first-intro__image {
    order: 2;
  }

  .first-intro__text {
    text-align: left;
  }

  .first-reason .-base {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }

  .first-reason__lead {
    margin-bottom: 0;
  }

  .first-reason__block {
    display: contents;
  }

  .first-reason__lead + .first-reason__block .first-reason__block-image {
    order: 1;
  }

  .first-reason__subheading,
  .first-reason__subheading + .first-reason__block .first-reason__block-text,
  .first-reason__subheading + .first-reason__block .first-reason__block-image,
  .first-reason__cards-wrap {
    order: 2;
  }

  .first-reason__note {
    margin-top: 0;
  }

  .first-reason__block-text,
  .first-reason__points {
    width: 100%;
  }

  .first-reason__block-image img {
    width: 100%;
    max-width: none;
    height: auto;
    aspect-ratio: 345 / 231;
  }

  .heading-dashed {
    font-size: 20px;
    margin-bottom: 20px;
  }

  .first-reason__lead-title,
  .first-reason__subheading {
    font-size: 18px;
    text-align: center;
  }

  .first-reason__cards-wrap {
    padding: 20px;
  }
}

/* ======================================
   どんなシーンでお探しですか？
   ====================================== */
.scene-finder__title {
  font-size: 24px;
  line-height: 2;
  margin-bottom: 80px;
  padding-bottom: 0;
  border-bottom: none;
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-color: #b1b1b1;
  text-decoration-thickness: 1px;
  text-underline-offset: 12px;
}

.scene-finder__group + .scene-finder__group {
  margin-top: 60px;
}

/* --- カード一覧 --- */
.scene-cards {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 10px;
}

/* 詳細カード（表彰アイテム）を含む場合は subgrid で各行の高さを揃える */
.scene-cards:has(.scene-card--detailed) {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 268px;
  grid-template-rows: repeat(6, auto);
  column-gap: 10px;
  row-gap: 14px;
}

.scene-cards:has(.scene-card--detailed) .scene-card--detailed {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: 1 / -1;
}

.scene-cards::-webkit-scrollbar {
  height: 6px;
}

.scene-cards::-webkit-scrollbar-thumb {
  background: #d0d0d0;
  border-radius: 3px;
}

/* --- 個別カード --- */
.scene-card {
  width: 268px;
  flex-shrink: 0;
  padding: 22px 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.scene-card__head {
  text-align: center;
  margin-bottom: 0;
}

.scene-card__title {
  font-size: 18px;
  font-weight: 400;
  margin: 0 0 14px;
  line-height: 1.5;
}

.scene-card__img {
  width: 150px;
  height: 150px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.scene-card__img img {
  max-width: 100%;
  height: auto;
}

.scene-card__lead {
  text-align: left;
}

.scene-card__block {
  font-size: 14px;
  line-height: 1.7;
}

.scene-card__label {
  display: block;
  background: #f4f5f7;
  font-size: 14px;
  font-weight: 400;
  padding: 1px 8px;
  margin: 0 0 4px;
  line-height: 1.6;
}

.scene-card__list {
  list-style: disc;
  padding-left: 1.2em;
  margin: 0;
}

.scene-card__list li {
  font-size: 14px;
  line-height: 1.6;
}

.scene-card__price {
  font-size: 14px;
  margin: 0;
}

.scene-card__btn,
.scene-card__btn:hover,
.scene-card__btn:visited {
  width: 100%;
  max-width: 100%;
  padding: 12px 25px 12px 20px;
  font-size: 15px;
  margin-top: auto;
}

/* --- シーン：レスポンシブ --- */
@media (max-width: 900px) {
  .scene-finder {
    padding-inline: 10px;
  }

  .scene-finder__title {
    font-size: 18px;
    margin-bottom: 40px;
    line-height: 2.2;
  }

  .scene-finder .scene-cards {
    margin-inline: -10px;
    padding-inline: 10px;
  }

  .scene-card {
    width: 268px;
  }
}

/* ======================================
   みんなの笑顔集（お客様の声）
   ====================================== */
.testimonials__head {
  text-align: center;
  margin-bottom: 42px;
}

.testimonials__title {
  margin-bottom: 14px;
}

.testimonials__sub {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.9;
  margin: 0;
}

/* --- Instagram風ギャラリー（Swiper） --- */
.testimonials__gallery {
  padding: 9px 0;
}

.testimonials__gallery .swiper-wrapper {
  /* Swiperのタイミング関数を等速に（マーキー表現） */
  transition-timing-function: linear !important;
}

.testimonials__post {
  width: 190px;
  padding: 9px 9px 10px;
  background: #fff;
  box-shadow: 0 0 11px 0 rgba(0, 0, 0, 0.11);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: auto;
}

.testimonials__post-img {
  line-height: 0;
}

.testimonials__post-img img {
  width: 170px;
  height: 200px;
  object-fit: cover;
  display: block;
}

.testimonials__post-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
}

.testimonials__post-icon {
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.testimonials__post-icon--heart {
  width: 11px;
  height: 10px;
  background-image: url(../img/icon-heart.svg);
}

.testimonials__post-icon--comment {
  width: 10px;
  height: 10px;
  background-image: url(../img/icon-comment.svg);
}

.testimonials__post-icon--send {
  width: 11px;
  height: 11px;
  background-image: url(../img/icon-send.svg);
}

.testimonials__post-caption {
  font-size: 10px;
  line-height: 1.6;
  margin: 6px 0 0;
  max-width: 156px;
}

/* --- レビュー --- */
.testimonials__reviews {
  display: flex;
  flex-direction: column;
  gap: 22px;
  max-width: 780px;
  margin: 60px auto 0;
}

.testimonials__review {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  padding: 20px 33px;
  background: #fff;
  border: 1px solid #8da2cb;
}

.testimonials__review-image {
  width: 227px;
  height: auto;
  flex-shrink: 0;
}

.testimonials__review-image img {
  max-width: 100%;
  height: auto;
}

.testimonials__review-body {
  width: 440px;
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.testimonials__review-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 20px;
  padding-bottom: 13px;
  border-bottom: 1px solid #ccc;
}

.testimonials__review-name {
  font-size: 17px;
  font-weight: 500;
  margin: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 14px;
}

.testimonials__review-meta {
  font-size: 12px;
  font-weight: 400;
}

.testimonials__review-stars {
  margin: 0;
  color: #e2b94b;
  font-size: 17px;
  letter-spacing: 3px;
  line-height: 1;
}

.testimonials__review-text {
  font-size: 13px;
  line-height: 1.5;
  margin: 0;
}

/* --- みんなの笑顔集：レスポンシブ --- */
@media (max-width: 900px) {
  .testimonials__head {
    margin-bottom: 12px;
  }

  .testimonials__title {
    font-size: 22px;
  }

  .testimonials__sub {
    font-size: 14px;
  }

  .testimonials__reviews {
    margin-top: 20px;
  }

  .testimonials__review {
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 20px;
  }

  .testimonials__review-image {
    width: 160px;
    height: auto;
    margin: 0 auto;
  }

  .testimonials__review-body {
    width: 100%;
    padding-top: 0;
  }

  .testimonials__review-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .testimonials__review-name {
    font-size: 16px;
  }
}

/* ======================================
   導入事例
   ====================================== */
.case-studies__head {
  text-align: center;
}

.case-studies__cards[hidden] {
  display: none;
}

.case-studies__desc {
  font-size: 14px;
  line-height: 1.9;
  margin: 38px 0 0;
}

.case-studies__tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 40px;
}

.case-studies__tab {
  height: 64px;
  border: none;
  background: #f5f5f5;
  color: var(--color-text-muted);
  font-family: inherit;
  font-size: 20px;
  cursor: pointer;
}

.case-studies__tab.is-active {
  background: #696969;
  color: #fff;
}

.case-studies__cards {
  display: flex;
  align-items: flex-start;
  gap: 29px;
  overflow-x: auto;
  overflow-y: hidden;
  margin-top: 40px;
  padding-bottom: 10px;
  /* JSで算出した分だけ右側に拡張（画面右端まで） */
  width: calc(100% + var(--bleed-right, 0px));
}

/* 一番右までスクロールした時に右側に 30px 余白が見えるようスペーサ */
.case-studies__cards::after {
  content: "";
  flex: 0 0 30px;
  margin-inline-start: -29px;
  /* 直前の flex gap (29px) を相殺 */
}

.case-studies__card {
  flex-shrink: 0;
  width: 589px;
  border: 1px solid #8da2cb;
  padding: 37px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: #fff;
}

.case-studies__card[hidden] {
  display: none;
}

.case-studies__card-title {
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  line-height: 1.5;
  margin: 0;
  padding-bottom: 20px;
  border-bottom: 1px solid #e0e0e0;
}

.case-studies__card-body {
  display: grid;
  grid-template-columns: 1fr 195px;
  gap: 30px;
  align-items: start;
}

.case-studies__card-text {
  font-size: 14px;
  line-height: 1.9;
  margin: 0;
}

.case-studies__card-image img {
  width: 100%;
  height: auto;
}

.case-studies__card-btn,
.case-studies__card-btn:hover,
.case-studies__card-btn:visited {
  align-self: center;
}

/* --- 導入事例：レスポンシブ --- */
@media (max-width: 900px) {
  .case-studies__desc {
    font-size: 13px;
    text-align: left;
  }

  .case-studies__tab {
    font-size: 16px;
    height: 48px;
  }

  .case-studies__card {
    width: 320px;
    padding: 24px 16px;
  }

  .case-studies__card-title {
    font-size: 16px;
  }

  .case-studies__card-body {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* ======================================
   ご注文方法（4ステップ）
   ====================================== */
/* ステップ列のみ横スクロール（ボタンはスクロール対象外） */
.order-flow__scroll {
  overflow-x: auto;
  margin-top: 40px;
}

.order-flow__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 23px;
  min-width: 900px;
  /* 常に900px幅を保持 */
}

.order-flow__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  position: relative;
}

/* ステップ間の矢印（>） */
.order-flow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 115px;
  /* head(47) + gap(15) + icon 160 の縦中央 = 142 ± 26 = アイコン円上部付近 */
  right: -19px;
  width: 14px;
  height: 52px;
  background: url(../img/icon-chevron-right.svg) no-repeat center;
}

.order-flow__head {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.order-flow__num {
  font-family: var(--font-heading);
  font-size: 14px;
  font-weight: 500;
  color: #5b7fc7;
  letter-spacing: 0.6px;
  line-height: 1;
}

.order-flow__title {
  font-size: 18px;
  font-weight: 400;
  margin: 0;
  line-height: 1.5;
}

.order-flow__icon {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: #f4f5f7;
  display: flex;
  align-items: center;
  justify-content: center;
}

.order-flow__icon img {
  width: auto;
  height: auto;
  max-width: 50%;
  max-height: 50%;
}

.order-flow__desc {
  font-size: 14px;
  line-height: 1.5;
  margin: 0;
  text-align: center;
}

/* ======================================
   商品リスト（ランキング / カテゴリ別共通）
   ====================================== */
.product-list__head {
  text-align: center;
  margin-bottom: 40px;
}

.product-list__desc {
  font-size: 14px;
  line-height: 1.9;
  margin: 38px 0 0;
}

.product-list__tabs {
  display: flex;
  gap: 1px;
  margin-top: 40px;
}

.product-list__tab {
  flex: 1;
  height: 47px;
  border: none;
  border-bottom: 1px solid #c1c1c1;
  background: #fff;
  color: #333;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  cursor: pointer;
  padding: 0 4px;
  transition:
    background 0.2s,
    color 0.2s;
}

.product-list__tab:hover {
  background: #f4f5f7;
}

.product-list__tab.is-active {
  background: #696969;
  border-bottom-color: #696969;
  color: #fff;
  font-weight: 500;
}

.product-list__tab.is-active:hover {
  background: #696969;
}

.product-list__panels {
  margin-top: 40px;
}

.product-list__panel--hidden {
  display: none;
}

/* --- 商品リスト：レスポンシブ --- */
@media (max-width: 900px) {
  .product-list__desc {
    font-size: 13px;
  }

  .product-list__tabs {
    overflow-x: auto;
    scrollbar-width: none;
    border-bottom: 1px solid #c1c1c1;
  }

  .product-list__tabs::-webkit-scrollbar {
    display: none;
  }

  .product-list__tab {
    flex: 0 0 auto;
    min-width: 135px;
    font-size: 14px;
    height: 40px;
    border-bottom: none;
    position: relative;
  }

  .product-list__tab::after {
    content: "";
    position: absolute;
    right: 0;
    top: 10px;
    bottom: 10px;
    width: 1px;
    background: #c1c1c1;
  }

  .product-list__tab:last-child::after {
    display: none;
  }
}

/* ======================================
   初めての方からよくいただくご質問
   ====================================== */
.first-faq__btn,
.first-faq__btn:hover,
.first-faq__btn:visited {
  max-width: 417px;
  margin: 40px auto 0;
  padding: 18px 25px 18px 20px;
  font-size: 16px;
}

/* ===== 通信欄インフォメーション ===== */
.fs-c-checkout-communicationInfo__message .jt-comm {
  --jt-red: #e94738;
  --jt-text: #333;
  --jt-badge: #353e46;
  --jt-line: #666;
  --jt-gap: 1.5em; /* 空行1行分 */

  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--jt-text);
  text-align: left;
}
.fs-c-checkout-communicationInfo__message .jt-comm p,
.fs-c-checkout-communicationInfo__message .jt-comm dl,
.fs-c-checkout-communicationInfo__message .jt-comm dd,
.fs-c-checkout-communicationInfo__message .jt-comm dt {
  margin: 0;
}
.fs-c-checkout-communicationInfo__message .jt-comm ul,
.fs-c-checkout-communicationInfo__message .jt-comm ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* --- 番号付きの案内 --- */
.jt-comm__steps {
  padding-left: 12px;
}
.jt-comm__steps > li {
  position: relative;
  padding-left: 34px;
  margin-bottom: 14px;
}
.jt-comm__steps > li:last-child {
  margin-bottom: 0;
}
.jt-comm__steps > li::before {
  counter-increment: jtStep;
  content: counter(jtStep);
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: var(--jt-badge);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}
.jt-comm__steps {
  counter-reset: jtStep;
}

/* 赤字の注意（1行下げて表示） */
.jt-comm__alert {
  display: block;
  color: var(--jt-red);
  font-weight: 700;
}
.jt-comm__alert::before {
  content: "※";
}

/* --- セクション --- */
.jt-comm__section {
  margin-top: 3.4em;
}
.jt-comm__section + .jt-comm__section {
  margin-top: var(--jt-gap);
}
.jt-comm__heading {
  margin: 0 0 var(--jt-gap);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--jt-text);
}
.jt-comm__heading::before {
  content: "【";
}
.jt-comm__heading::after {
  content: "】";
}

/* --- 注意書き（※はCSSで付与・ぶら下げインデント） --- */
.jt-comm__notes > li,
.jt-comm__note {
  position: relative;
  padding-left: 1em;
}
.jt-comm__notes {
  margin-bottom: 20px !important;
}
.jt-comm__notes > li::before,
.jt-comm__note::before {
  content: "※";
  position: absolute;
  left: 0;
}
.jt-comm__note--strong {
  font-weight: 700;
}
.jt-comm__note--alert {
  color: var(--jt-red);
  font-weight: 700;
  margin-bottom: 20px !important;
}

/* --- 破線の区切り --- */
.jt-comm__separator {
  width: 244px;
  max-width: 100%;
  height: 1px;
  margin: 0;
  border: 0;
  background-image: repeating-linear-gradient(to right, var(--jt-line) 0 4px, transparent 4px 8px);
}

/* --- 記入例 --- */
.jt-comm__example {
  margin: 20px 0 0;
}
.jt-comm__exampleTitle {
  margin: 0 0 var(--jt-gap);
}
.jt-comm__exampleTitle::before {
  content: "≪";
}
.jt-comm__exampleTitle::after {
  content: "≫";
}
.jt-comm__exampleRow {
  margin-bottom: var(--jt-gap);
}
.jt-comm__exampleRow:last-child {
  margin-bottom: 0;
}
.jt-comm__exampleList dt {
  font-weight: 400;
}
.jt-comm__exampleList dt::before {
  content: "【";
}
.jt-comm__exampleList dt::after {
  content: "】";
}

.jt-comm__itemName::before {
  content: "・";
}
.jt-comm__memo::before {
  content: "←";
}
.jt-comm__total {
  margin: var(--jt-gap) 0 !important;
}

/* --- リンク --- */
.jt-comm__link {
  color: var(--jt-red) !important;
  font-weight: 700;
  text-decoration: none;
}
.jt-comm__link::before {
  content: ">>";
}
.jt-comm__link:hover {
  text-decoration: underline;
}

/* --- SP --- */
@media screen and (max-width: 767px) {
  .fs-c-checkout-communicationInfo__message .jt-comm {
    font-size: 13px;
    line-height: 1.6;
  }
  .jt-comm__steps {
    padding-left: 0;
  }
  .jt-comm__steps > li {
    padding-left: 30px;
  }
  .jt-comm__steps > li::before {
    width: 24px;
    height: 24px;
    font-size: 13px;
  }
  .jt-comm__heading {
    font-size: 13px;
  }
  .jt-comm__separator {
    width: 100%;
  }
}
