/* PKSHA FAQ PC・SP統合版 全ページ共通CSS
   更新日時：2026-09-08 11:42（JST）
======================================================= */

/* =======================================================
   1. 基本設定
======================================================= */
html {
  /* PC・SP共通：1rem = 16px */
  font-size: 16px;
}

:root {
  --faq-icon-q-brand: url("/usr/file/attachment/faq-icon-q-brand.svg");
  --faq-icon-q-red: url("/usr/file/attachment/faq-icon-q-soft-red.svg");
  --faq-icon-q-warm: url("/usr/file/attachment/faq-icon-q-warm.svg");
  --faq-icon-a-warm: url("/usr/file/attachment/faq-icon-a-warm.svg");
  --faq-icon-enquete-yes: url("/usr/file/attachment/faq-icon-enquete-yes.svg");
  --faq-icon-enquete-no: url("/usr/file/attachment/faq-icon-enquete-no.svg");
  --faq-icon-enquete-unknown: url("/usr/file/attachment/faq-icon-enquete-unknown.svg");
}

/* =======================================================
   SP：親カテゴリーのサブカテゴリー開閉
   ※PC用「もっと見る」とクラス・表示制御を分離
======================================================= */
.okw_parts_category .cateList > .faq-category-accordion__toggle {
  display: none;
}

@media screen and (max-width: 767px),
       screen and (max-device-width: 767px) {
  .okw_parts_category .cateList:has(> .cate_small) {
    grid-template-rows: 4rem auto;
  }

  .okw_parts_category .cateList:has(> .cate_small)::after {
    display: none;
  }

  .okw_parts_category .cateList:has(> .cate_small) .cate_middle {
    padding-right: 3.75rem;
  }

  /* PC用「もっと見る」はSPでは使用しない */
  .okw_parts_category .cateList > .faq-subcategory-toggle {
    display: none !important;
  }

  .okw_parts_category .cateList > .faq-category-accordion__toggle {
    position: absolute;
    top: 0.625rem;
    right: 0.625rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    margin: 0;
    padding: 0;
    color: #b8000d;
    font-family: inherit;
    font-size: 0;
    appearance: none;
    cursor: pointer;
    background: #fff;
    border: 1px solid #d6000f;
    border-radius: 50%;
  }

  .okw_parts_category .cateList > .faq-category-accordion__toggle::before,
  .okw_parts_category .cateList > .faq-category-accordion__toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1rem;
    height: 2px;
    background: currentColor;
    border: 0;
    transform: translate(-50%, -50%);
  }

  .okw_parts_category .cateList > .faq-category-accordion__toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
  }

  .okw_parts_category
    .cateList
    > .faq-category-accordion__toggle[aria-expanded="true"]::after {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  .okw_parts_category .cateList > .faq-category-accordion__toggle:hover,
  .okw_parts_category .cateList > .faq-category-accordion__toggle:active {
    color: #fff;
    background: #d6000f;
  }

  .okw_parts_category .cateList > .faq-category-accordion__toggle:focus-visible {
    outline: 3px solid rgba(214, 0, 15, 0.24);
    outline-offset: 2px;
  }

  .okw_parts_category .cateList > .cate_small[hidden] {
    display: none !important;
  }

  .okw_parts_category
    .cateList
    > .faq-category-accordion__toggle
    .faq-category-accordion__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  /* FAQタグ：ベージュ枠内の余白をコンパクト化 */
  .okw_parts_faq_tag_search .faq_tag_search_attention_area {
    margin-top: 0.5rem;
    padding: 0.625rem 0.75rem;
  }

  .okw_parts_faq_tag_search
    .faq_tag_search_attention_area
    .faq_tags_area {
    margin: 0.5rem 0 0;
  }

  .okw_parts_faq_tag_search
    .faq_tag_search_attention_area
    .faq_tag_search_attention_message:empty {
    display: none;
  }

  .okw_parts_faq_tag_search
    .faq_tag_search_attention_area
    .faq_tag_search_attention_message:empty
    + .faq_tags_area {
    margin-top: 0;
  }
}

body,
input,
button {
  font-family:
    "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo,
    sans-serif;
}

body {
  min-width: 0;
  color: #333;
  font-size: 1rem;
  line-height: 1.7;
  background: #fff;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

a:link,
a:visited,
a:active {
  color: #333;
}

a:hover {
  color: #d6000f;
}

/* SP：リンク・ボタンのブラウザ標準の青いタップ表示を解除 */
a,
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
summary,
[role="button"] {
  -webkit-tap-highlight-color: transparent;
}

/* =======================================================
   2. PKSHA FAQ標準レイアウトの解除
======================================================= */
#okw_wrapper,
#okw_contents,
#okw_contents_base,
#okw_contents_inner {
  width: 100%;
  margin: 0;
  padding: 0;
  background: none;
}

#okw_wrapper,
#okw_contents_base {
  position: static;
}

#okw_contents_inner {
  position: relative;
}

#okw_sub_header,
#okw_footer_default,
.fixed_link {
  display: none;
}

#okw_contents_inner > .colArea {
  width: calc(100% - 64px);
  max-width: 1120px;
  margin: 0 auto;
}

.flo_l,
.flo_r {
  float: none;
}

.oneCol,
.twoCol {
  width: 100%;
}

/* ページトップに戻る：画面右下固定ボタン */
.topLink {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 1000000;
  display: block;
  float: none;
  clear: none;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
}

.topLink a,
.topLink a:link,
.topLink a:visited {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  color: transparent;
  font-size: 0;
  line-height: 0;
  text-decoration: none;
  background: rgba(214, 0, 15, 0.7);
  border: 0;
  border-radius: 50%;
  box-shadow: 0 0.1875rem 0.75rem rgba(0, 0, 0, 0.14);
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.topLink a::before {
  content: "";
  position: absolute;
  top: 54%;
  left: 50%;
  box-sizing: border-box;
  width: 0.75rem;
  height: 0.75rem;
  border-top: 0.125rem solid #fff;
  border-left: 0.125rem solid #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}

.topLink a:hover,
.topLink a:active {
  background: rgba(184, 0, 13, 0.8);
  box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.2);
  transform: translateY(-0.125rem);
}

.topLink a:focus-visible {
  outline: 0.1875rem solid rgba(214, 0, 15, 0.35);
  outline-offset: 0.1875rem;
}

/* ページ最上部では非表示、4rem以上スクロールしたら表示 */
@supports (animation-timeline: scroll()) {
  .topLink {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(0.5rem);
    animation: faq-page-top-visibility 1ms linear both;
    animation-timeline: scroll(root block);
    animation-range: 0 4rem;
  }
}

@keyframes faq-page-top-visibility {
  0%,
  99% {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(0.5rem);
  }

  100% {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
}

/* =======================================================
   3. 共通見出し
======================================================= */
.ttl_col,
.ttl_bg {
  height: auto;
  margin: 0;
  padding: 0;
  background: none;
}

.ttl_col h2 {
  margin: 0;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
}

.ttl_col h2 {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ttl_col h2::before {
  content: "";
  display: block;
  flex: 0 0 7px;
  width: 7px;
  height: 40px;
  background: #d6000f;
}

.icoKeyword,
.icoHot,
.icoQa,
.icoCate,
.icoNew,
.icoInf {
  display: block;
  height: auto;
  padding: 0;
  background: none;
}

/* =======================================================
   4. キーワード検索
======================================================= */
.okw_parts_search {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: 48px 32px 60px;
  background: #f7f7f7;
}

.okw_parts_search .ttl_col h2 {
  font-size: 0;
  text-align: center;
}

.okw_parts_search .icoKeyword::before {
  content: "キーワードで探す";
  display: block;
  color: #333;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.5;
}

.faq_search_frmArea {
  width: 720px;
  max-width: 100%;
  margin: 8px auto 0;
}

#faq_keyword_form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 104px;
  align-items: stretch;
}

.search_description {
  grid-column: 1 / -1;
  grid-row: 1;
  display: block;
  margin: 0 0 26px;
  color: #777;
  font-size: 15px;
  line-height: 1.7;
  text-align: center;
}

.keyword_frm {
  grid-column: 1;
  grid-row: 2;
  float: none;
  width: 100%;
  height: 64px;
  margin: 0;
  padding: 0 20px;
  color: #333;
  font-size: 16px;
  line-height: normal;
  letter-spacing: 0;
  background: #fff;
  border: 1px solid #d5d0c8;
  border-right: 0;
  border-radius: 10px 0 0 10px;
  outline: none;
}

.keyword_frm::placeholder {
  color: #777;
  opacity: 1;
}

.keyword_frm:focus {
  position: relative;
  z-index: 1;
  border-color: #d6000f;
  box-shadow: 0 0 0 3px rgba(214, 0, 15, 0.12);
}

.faq_search_frmArea .keyword_frmbtn {
  grid-column: 2;
  grid-row: 2;
  width: 104px;
  height: 64px;
  margin: 0;
  padding: 0;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  background: #d6000f;
  border: 1px solid #d6000f;
  border-radius: 0 10px 10px 0;
  cursor: pointer;
}

.faq_search_frmArea .keyword_frmbtn:hover {
  background: #b8000d;
  border-color: #b8000d;
}

.faq_search_frmArea .keyword_frmbtn:focus-visible {
  position: relative;
  z-index: 2;
  outline: 3px solid rgba(214, 0, 15, 0.3);
  outline-offset: 3px;
}

.faq_suggest_area {
  grid-column: 1 / -1;
  grid-row: 3;
}

/* =======================================================
   5. 注目のキーワード
======================================================= */
.okw_parts_attention_keyword {
  width: 100vw;
  margin: 0 0 0 calc(50% - 50vw);
  padding: 0 max(32px, calc((100vw - 1120px) / 2)) 56px;
}

.attention_keyword_list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.attention_keyword_list > li {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* PKSHA標準出力の区切り線「|」を非表示 */
.attention_keyword_list > li > span {
  display: none;
}

.attention_keyword_list > li > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 7px 15px;
  color: #555;
  font-size: 14px;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
  background: #fff;
  border: 1px solid #d5d0c8;
  border-radius: 999px;
}

.attention_keyword_list > li > a:hover,
.attention_keyword_list > li > a:focus-visible {
  color: #d6000f;
  background: #fff;
  border-color: #d6000f;
}

/* =======================================================
   6. 閲覧の多いFAQ・最新のFAQ
======================================================= */
.okw_parts_access_rank_faq {
  margin-top: 32px;
}

.okw_parts_new_faq {
  margin-top: 112px;
}

.qaList,
.faqList {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  border-top: 0;
}

.qaList > li,
.faqList > li {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 76px;
  margin: 0;
  padding: 15px 48px 15px 44px;
  word-break: break-word;
  list-style: none;
  background: none;
  border-bottom: 1px solid #d5d0c8;
  background-image: none !important;
}

.qaList > li::before,
.faqList > li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 8px;
  width: 24px;
  height: 24px;
  background: var(--faq-icon-q-red) center / contain no-repeat;
  transform: translateY(-50%);
}

.qaList > li::after,
.faqList > li::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 8px;
  display: block;
  visibility: visible;
  width: auto;
  height: auto;
  clear: none;
  color: #666;
  font-size: 20px;
  line-height: 1;
  transform: translateY(-52%);
}

.qaList > li > a,
.faqList > li > a {
  display: block;
  width: 100%;
  color: #333;
  font-size: 16px;
  line-height: 1.7;
  text-decoration: none;
}

.qaList > li:hover,
.faqList > li:hover {
  background: #faf9f6;
}

.qaList > li > a:hover,
.faqList > li > a:hover {
  color: #d6000f;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.spinner {
  display: block;
  margin: 24px auto;
}

/* =======================================================
   7. カテゴリ
======================================================= */
.okw_parts_category {
  margin-top: 48px;
}

.okw_parts_category .ttl_col h2 {
  font-size: 0;
}

.okw_parts_category .icoCate::before {
  content: "カテゴリから探す";
  display: block;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
}

.cateList_area {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 24px;
}

.cateList_box {
  display: contents;
  margin: 0;
}

/* PKSHA標準のclearfixをグリッド要素として残さない */
.cateList_box::before,
.cateList_box::after {
  content: none;
  display: none;
}

.okw_parts_category_tree .category_level_0 > li > .category_on,
.okw_parts_category_tree .category_level_0 > li > .category_none {
  position: relative;
  float: none;
  display: grid;
  align-items: center;
  width: auto;
  min-width: 0;
  min-height: 132px;
  margin: 0;
  padding: 20px 14px 20px 10px;
  background: #fff;
}

.cateList {
  position: relative;
  float: none;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  grid-template-areas:
    "category-icon category-name"
    "sub-category sub-category"
    "subcategory-toggle subcategory-toggle";
  grid-template-rows: 72px auto auto;
  column-gap: 0;
  align-content: start;
  align-items: start;
  width: auto;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #fff;
}

.cateList,
.okw_parts_category_tree .category_level_0 > li {
  background: #fff;
  border: 1px solid #d5d0c8;
  border-radius: 4px;
}

.cateList {
  --faq-category-heading-height: 72px;

  background: linear-gradient(
    to bottom,
    #f5f0e6 0,
    #f5f0e6 var(--faq-category-heading-height),
    #fff var(--faq-category-heading-height),
    #fff 100%
  );
}

.cateList:hover {
  background: linear-gradient(
    to bottom,
    #f2eadb 0,
    #f2eadb var(--faq-category-heading-height),
    #fff var(--faq-category-heading-height),
    #fff 100%
  );
}

.okw_parts_category_tree .category_level_0 > li > .category_on:hover,
.okw_parts_category_tree .category_level_0 > li > .category_none:hover {
  background: #faf9f6;
}

.cateList:hover,
.okw_parts_category_tree .category_level_0 > li:hover {
  border-color: #b9b2a8;
}

.cateList::after {
  content: "›";
  position: absolute;
  top: 36px;
  right: 14px;
  display: block;
  visibility: visible;
  width: auto;
  height: auto;
  clear: none;
  color: #666;
  font-size: 20px;
  line-height: 1;
  transform: translateY(-50%);
}

.okw_parts_category_tree .category_level_0 > li > .category_on::before,
.okw_parts_category_tree .category_level_0 > li > .category_none::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  margin: 0;
  padding: 0;
  color: #f5a02f;
  text-decoration: none;
  background-color: #f7f4ed;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 38px 38px;
  border-radius: 50%;
}

.cate_middle {
  grid-area: category-name;
  display: flex;
  align-items: center;
  min-width: 0;
  min-height: 72px;
  margin: 0;
  padding: 16px 48px 16px 0;
  line-height: 1.5;
}

.cate_middle > a,
.okw_parts_category_tree
  .category_level_0
  > li
  > .category_on
  > a:not(.pm_icon),
.okw_parts_category_tree .category_level_0 > li > .category_none > a {
  display: inline;
  color: #333;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  padding-left: 10px;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.cate_middle > a:hover,
.okw_parts_category_tree
  .category_level_0
  > li
  > .category_on
  > a:not(.pm_icon):hover,
.okw_parts_category_tree
  .category_level_0
  > li
  > .category_on
  > a:not(.pm_icon):focus-visible,
.okw_parts_category_tree .category_level_0 > li > .category_none > a:hover,
.okw_parts_category_tree
  .category_level_0
  > li
  > .category_none
  > a:focus-visible {
  color: #d6000f;
}

.cate_icon_link {
  grid-area: category-icon;
  float: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: 52px;
  height: 52px;
  margin: 10px 0 10px 16px;
  padding: 0;
  overflow: hidden;
  background: #fff;
  border-radius: 50%;
}

.cate_icon_link .cate_icon {
  display: block;
  width: 38px;
  height: 38px;
  margin: 0;
  object-fit: contain;
  opacity: 1;
}

/* サブカテゴリーのみアイコン画像と画像領域を非表示 */
.okw_parts_sub_category .cateList {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "category-name"
    "sub-category"
    "subcategory-toggle";
}

.okw_parts_sub_category .cate_icon_link {
  display: none;
}

.okw_parts_sub_category .cate_middle {
  padding-left: 16px;
}

.cateSepa {
  display: none;
}

/* カテゴリーカード内のサブカテゴリー */
.cate_small {
  grid-area: sub-category;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 0;
  min-width: 0;
  margin: 0;
  padding: 10px 16px 14px;
  list-style: none;
  background: #fff;
  border-top: 1px solid #eeeae4;
}

.cate_small::before,
.cate_small::after {
  content: none;
  display: none;
}

.cate_small > li,
.cate_small > li.cate_borR {
  float: none;
  display: block;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.cate_small > li > a {
  position: relative;
  display: block;
  min-width: 0;
  padding: 7px 8px 7px 18px;
  color: #333;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.cate_small > li > a::before {
  content: "›";
  position: absolute;
  top: 7px;
  left: 2px;
  color: #d6000f;
  font-size: 16px;
  line-height: 1.6;
}

.cate_small > li > a:hover,
.cate_small > li > a:focus-visible {
  color: #b8000d;
}

.cate_small > li > a:focus-visible {
  outline: 3px solid rgba(214, 0, 15, 0.2);
  outline-offset: 1px;
}

/* カスタムパーツが生成するサブカテゴリー開閉ボタン */
.cateList > .faq-subcategory-toggle {
  position: relative;
  grid-area: subcategory-toggle;
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100% - 32px);
  min-height: 44px;
  margin: 0 16px 16px;
  padding: 8px 48px 8px 20px;
  color: #b8000d;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  appearance: none;
  cursor: pointer;
  background: #fff;
  border: 1px solid #d6000f;
  border-radius: 4px;
}

.cateList > .faq-subcategory-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-70%) rotate(45deg);
}

.cateList > .faq-subcategory-toggle[aria-expanded="true"]::after {
  transform: translateY(-30%) rotate(225deg);
}

.cateList > .faq-subcategory-toggle:hover {
  color: #b8000d;
  background: #f5e8e8;
  border-color: #b8000d;
}

.cateList > .faq-subcategory-toggle:focus-visible {
  color: #b8000d;
  outline: 3px solid rgba(214, 0, 15, 0.24);
  outline-offset: 2px;
}

.cateList > .faq-subcategory-toggle:active {
  background: #eee8dc;
}

.cateList > .faq-subcategory-toggle .faq-subcategory-toggle__label {
  pointer-events: none;
}

/* =======================================================
   8. Info&News
======================================================= */
.okw_parts_info_and_news {
  margin-top: 56px;
}

.okw_parts_info_and_news > ul {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  border-top: 0;
}

.okw_parts_info_and_news > ul > li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 76px;
  margin: 0;
  padding: 15px 48px 15px 8px;
  color: #333;
  font-size: 16px;
  line-height: 1.7;
  list-style: none;
  background: none;
  border-bottom: 1px solid #d5d0c8;
}

.okw_parts_info_and_news > ul > li::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 8px;
  display: block;
  visibility: visible;
  width: auto;
  height: auto;
  clear: none;
  color: #666;
  font-size: 20px;
  line-height: 1;
  transform: translateY(-52%);
}

.okw_parts_info_and_news > ul > li a {
  color: #333;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.okw_parts_info_and_news > ul > li a:hover {
  color: #d6000f;
}

/* お知らせが0件の場合、Info&News全体を非表示 */
.okw_parts_info_and_news:not(:has(#info_and_news_list > li)) {
  display: none !important;
}

/* =======================================================
   9. お問い合わせ・フッターとの接続
======================================================= */
.faq-pc-footer {
  margin-top: 144px;
}

.faq-pc-footer__support {
  width: calc(100% - 64px);
  max-width: 720px;
  margin: 0 auto 72px;
  padding: 40px;
  background: #f7f4ed;
  border-radius: 12px;
}

.faq-pc-footer__support-link {
  color: #d6000f;
  background: #fff;
  border-color: #d6000f;
}

.faq-pc-footer__support-link:hover,
.faq-pc-footer__support-link:focus-visible {
  color: #fff;
  background: #d6000f;
  border-color: #d6000f;
}

.faq-pc-footer__main {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: #f7f7f7;
}

.faq-pc-footer__link,
.faq-pc-footer__copyright {
  color: #555;
}

/* =======================================================
   10. キーボード操作
======================================================= */
a:focus-visible {
  outline: 3px solid rgba(214, 0, 15, 0.28);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto;
    transition: none;
  }
}

/* 共通：HTMLに設定されている既存アイコンを非表示 */
.cate_icon_link .cate_icon {
  opacity: 0;
}

/* 共通：カテゴリーアイコンの表示設定 */
.cate_icon_link {
  background-repeat: no-repeat;
  background-position: center;
  background-size: 38px 38px;
}

/* カード */
.cate_icon_link[href*="/category/show/4?"] {
  background-image: url("/usr/file/attachment/icon-card.png");
}

/* ネットクラブ */
.cate_icon_link[href*="/category/show/10?"] {
  background-image: url("/usr/file/attachment/icon-netclub.png");
}

/* Pay */
.cate_icon_link[href*="/category/show/5?"] {
  background-image: url("/usr/file/attachment/icon-pay.png");
}

/* アプリ */
.cate_icon_link[href*="/category/show/6?"] {
  background-image: url("/usr/file/attachment/icon-app.png");
}

/* 店舗サービス */
.cate_icon_link[href*="/category/show/7?"] {
  background-image: url("/usr/file/attachment/icon-store.png");
}

/* ネットスーパー */
.cate_icon_link[href*="/category/show/8?"] {
  background-image: url("/usr/file/attachment/icon-netsuper.png");
}

/* 予約＆ギフト（ECショップ） */
.cate_icon_link[href*="/category/show/9?"] {
  background-image: url("/usr/file/attachment/icon-gift.png");
}

/* =======================================================
   11. 全ページ共通レイアウト
======================================================= */
#okw_contents_inner {
  padding-top: 32px;
}

/* TOP・検索結果・印刷用ページは先頭余白を設けない */
#category_index #okw_contents_inner,
#category_search #okw_contents_inner,
body:not([id]) #okw_contents_inner {
  padding-top: 0;
}

#okw_contents_inner > .colArea {
  margin-bottom: 32px;
}

.icoInfoNews,
.icoResult,
.icoHelpdesk,
.icoFavorite,
.icoPickup,
.icoFaq {
  display: block;
  height: auto;
  padding: 0;
  background: none;
}

.icoResult,
.icoInfoNews,
.icoHelpdesk,
.icoFavorite,
.icoPickup,
.icoFaq {
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="url"],
input[type="number"],
select,
textarea {
  max-width: 100%;
  color: #333;
  font: inherit;
  background: #fff;
  border: 1px solid #c9c4bc;
  border-radius: 6px;
  outline: none;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="url"],
input[type="number"],
select {
  min-height: 44px;
  padding: 8px 12px;
}

textarea {
  padding: 12px;
  line-height: 1.7;
  resize: vertical;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="number"]:focus,
select:focus,
textarea:focus {
  border-color: #d6000f;
  box-shadow: 0 0 0 3px rgba(214, 0, 15, 0.12);
}

/* =======================================================
   12. FAQ一覧パーツ共通
======================================================= */
.okw_main_category {
  padding: 40px 48px 48px;
  background: #fff;
  border: 1px solid #e3dfd8;
  border-radius: 12px;
}

.okw_main_category > .ttl_col {
  padding-bottom: 18px;
  border-bottom: 1px solid #d5d0c8;
}

.okw_main_category .icoResult {
  margin: 0;
  padding: 0;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  background: none;
}

.okw_main_category .pg_col_top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: 24px;
  min-height: 56px;
  margin: 20px 0;
  color: #666;
  font-size: 14px;
  line-height: 1.7;
}

.okw_main_category .pg_col_top > .pg_no,
.okw_main_category .pg_col_top > .pg_scr,
.okw_main_category .pg_col_top > .okw_sort_select {
  float: none !important;
  clear: none;
  width: auto;
  margin: 0;
}

.okw_main_category .pg_col_top > .pg_no {
  justify-self: start;
  white-space: nowrap;
}

.okw_main_category .pg_col_top > .pg_scr {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  gap: 18px;
  white-space: nowrap;
}

.okw_main_category .pg_col_top > .okw_sort_select {
  justify-self: end;
}

.okw_main_category .pg_col_top > .okw_sort_select form {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.okw_main_category .pg_col_top > .okw_sort_select .sort_arrow {
  flex: 0 0 auto;
  float: none !important;
  margin: 0;
}

.okw_main_category .search_list_bg1,
.okw_main_category .search_list_bg2 {
  position: relative;
  margin: 0;
  padding: 22px 52px 22px 24px;
  background: #fff;
  border-bottom: 1px solid #d5d0c8;
}

.okw_main_category .search_list_bg1:hover,
.okw_main_category .search_list_bg2:hover {
  background: #faf9f6;
}

.okw_main_category .search_list_bg1::after,
.okw_main_category .search_list_bg2::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 20px;
  color: #666;
  font-size: 22px;
  line-height: 1;
  transform: translateY(-50%);
}

.okw_main_category .icoQ_sml {
  position: relative;
  display: block;
  margin: 0 0 8px;
  padding: 0 0 0 40px;
  color: #333;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.6;
  background: none;
}

.okw_main_category .icoQ_sml::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 28px;
  height: 28px;
  margin: 0;
  background: var(--faq-icon-q-red) center / contain no-repeat;
}

.okw_main_category .icoA_sml {
  position: relative;
  display: block;
  margin: 0;
  padding: 0 0 0 40px;
  color: #555;
  font-size: 15px;
  line-height: 1.7;
  background: none;
}

.okw_main_category .icoA_sml::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 28px;
  height: 28px;
  margin: 0;
  background: var(--faq-icon-a-warm) center / contain no-repeat;
  border-radius: 50%;
}

.okw_main_category .icoQ_sml a,
.okw_main_category .icoA_sml a {
  color: inherit;
  text-decoration: none;
}

.okw_main_category .icoQ_sml a:hover,
.okw_main_category .icoA_sml a:hover {
  color: #d6000f;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.okw_main_category .search_date_area {
  margin: 12px 0 0 40px;
  color: #777;
  font-size: 13px;
  line-height: 1.6;
}

/* カテゴリー階層表示（カスタムパーツのJavaScript適用時） */
.okw_main_category .category_name--hierarchical .faq-category-path {
  display: inline;
}

.okw_main_category .category_name--hierarchical .faq-category-path__item {
  display: inline;
}

.okw_main_category .category_name--hierarchical .faq-category-path__item--ancestor {
  color: #666;
}

.okw_main_category .category_name--hierarchical .faq-category-path__separator {
  display: inline-block;
  margin: 0 0.45em;
  color: #acacac;
}

.okw_main_category .category_name--hierarchical .faq-category-path__link {
  color: #b8000d;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.okw_main_category .category_name--hierarchical .faq-category-path__link:hover,
.okw_main_category .category_name--hierarchical .faq-category-path__link:focus-visible {
  color: #d6000f;
}

.okw_main_category .category_name--hierarchical .faq-category-path__link:focus-visible {
  outline: 2px solid rgba(214, 0, 15, 0.25);
  outline-offset: 2px;
}

.okw_main_category .search_list {
  width: 100%;
  margin: 0;
  border: 0;
}

/* FAQ一覧：下部ページネーション共通 */
.okw_main_category .pg_col_down {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 24px;
  min-height: 40px;
  margin: 24px 0 0;
  font-family: inherit;
  font-size: 14px;
}

.okw_main_category .pg_col_down > .pg_no {
  grid-column: 1;
  justify-self: start;
  float: none !important;
  width: auto;
  margin: 0;
  color: #666;
  white-space: nowrap;
}

.okw_main_category .pagination {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  justify-self: end;
  gap: 4px;
  float: none !important;
  margin: 0;
  font-family: inherit;
  font-size: 14px;
  font-style: normal;
  white-space: normal;
}

.okw_main_category .pagination > a,
.okw_main_category .pagination > span,
.okw_main_category .pagination > em {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 36px;
  margin: 0;
  padding: 5px 8px;
  color: #333;
  font-style: normal;
  line-height: 1;
  text-decoration: none;
  background: #fff;
  border: 1px solid #d5d0c8;
  border-radius: 6px;
}

.okw_main_category .pagination > a:hover,
.okw_main_category .pagination > a:focus-visible,
.okw_main_category .pagination > .current,
.okw_main_category .pagination > .okw_current {
  color: #fff;
  background: #d6000f;
  border-color: #d6000f;
}

.okw_main_category .pagination > a:focus-visible {
  outline: 3px solid rgba(214, 0, 15, 0.2);
  outline-offset: 2px;
}

.okw_main_category .pagination > .disabled {
  color: #acacac;
  background: #f7f7f7;
  border-color: #e3dfd8;
}

.okw_parts_sub_category {
  margin-top: 32px;
}

/* =======================================================
   13. 検索結果パーツ
======================================================= */
.search_dateNo {
  margin: 0;
}

.search_dateNo li {
  color: #777;
  font-size: 13px;
  line-height: 1.6;
}

#kwd_none {
  margin: 24px 0 0;
  padding: 28px 32px;
  color: #333;
  font-size: 16px;
  line-height: 1.7;
  background: #f7f4ed;
  border: 1px solid #e3dfd8;
  border-radius: 8px;
}

.attr_search_kw_area,
.search_target_area,
.synonyms_kw_area {
  margin: 16px 0;
  padding: 12px 16px;
  font-family: inherit;
  font-size: 14px;
  background: #f7f7f7;
  border-radius: 6px;
}

/* =======================================================
   14. FAQ詳細パーツ共通
======================================================= */
.okw_main_faq {
  padding: 40px 48px 48px;
  background: #fff;
  border: 1px solid #e3dfd8;
  border-radius: 12px;
}

.faq_qstInf_col {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding: 0 0 16px;
  color: #777;
  border-bottom: 1px solid #e3dfd8;
}

.faq_qstInf_col .siteLink,
.faq_dateNo {
  float: none;
  margin: 0;
}

.faq_dateNo {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 20px;
}

.faq_dateNo li {
  display: block;
  margin: 0;
  color: #777;
  font-size: 13px;
}

.preLink {
  margin: 0;
  background: none;
}

.preLink a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 5px 12px;
  color: #555;
  text-decoration: none;
  background: #f7f7f7;
  border-radius: 6px;
}

.preLink a::before {
  content: "‹";
  margin-right: 6px;
  font-size: 20px;
  line-height: 1;
}

.preLink a:hover {
  color: #d6000f;
  background: #f7f4ed;
}

.icoPrint {
  background: none;
}

.icoPrint a {
  height: auto;
  padding: 0;
  color: #555;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.faq_qstCont_ttl {
  margin: 32px 0 0;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.6;
}

.icoQ,
.icoK {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: start;
  gap: 16px;
  padding: 0;
  background: none;
}

.icoQ::before,
.icoK::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  background: #d6000f;
  border-radius: 50%;
}

.icoQ::before {
  content: "";
  background: var(--faq-icon-q-brand) center / contain no-repeat;
}

.icoK::before {
  content: "K";
}

.faq_qstCont_col {
  margin: 22px 0 0 64px;
}

.faq_cate_col {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  margin: 0;
  padding: 12px 16px;
  color: #666 !important;
  font-size: 13px;
  line-height: 1.7;
  background: #f7f7f7;
  border: 0;
  border-radius: 6px;
}

.faq_cate_col dt,
.faq_cate_col dd,
.faq_cate_col dd span,
.faq_cate_col dd a {
  float: none;
}

.faq_cate_col dt {
  flex: 0 0 auto;
  margin: 0;
}

.faq_cate_col dd {
  min-width: 0;
}

.faq_cate_col a {
  color: #555 !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.faq_ans_bor,
.faq_ans_ttl {
  margin: 40px 0 0;
  padding: 0;
  color: #333;
  font-size: 20px;
  line-height: 1.5;
  background: none;
}

.icoA,
.icoKA {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  margin: 0;
  padding: 0;
  background: none;
}

.icoA::before,
.icoKA::before {
  content: "";
  display: block;
  width: 48px;
  height: 48px;
  background: var(--faq-icon-a-warm) center / contain no-repeat;
  border-radius: 50%;
}

.faq_ans_col {
  margin: 20px 0 0 64px;
  padding: 0 0 30px;
  word-wrap: break-word;
  border-bottom: 0;
}

.faq_ansCont_txt {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
}

#faq_answer_contents a,
#faq_question_contents a {
  color: #b8000d;
  text-decoration: underline;
  text-underline-offset: 3px;
  word-break: break-word;
}

.faq_addition_col {
  margin-top: 24px;
  padding: 0;
}

.faq_addition_list {
  margin: 0 0 12px;
  padding: 14px 16px;
  background: #f7f7f7;
  border: 0;
  border-radius: 6px;
}

.wzd_qstCont_col {
  margin: 20px 0 0 64px;
  padding: 18px 20px;
  background: #f7f4ed;
  border: 0;
  border-left: 4px solid #d6000f;
  border-radius: 0 6px 6px 0;
}

.wzd_slct_area {
  margin: 8px 0 24px 64px;
  padding: 16px 20px;
  background: #f7f7f7;
  border-radius: 6px;
}

.okw_parts_faq_relations {
  padding: 32px 48px;
  background: #f7f7f7;
  border-radius: 12px;
}

.okw_parts_faq_relations .faq_relate_list {
  margin: 16px 0 0;
}

.okw_parts_faq_relations .faq_relate_list li {
  position: relative;
  min-height: 52px;
  padding: 12px 40px 12px 40px;
  background-color: transparent;
  background-image: none;
  border-bottom: 1px solid #d5d0c8;
}

.okw_parts_faq_relations .faq_relate_list li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 4px;
  width: 24px;
  height: 24px;
  background: var(--faq-icon-q-red) center / contain no-repeat;
  transform: translateY(-50%);
}

.okw_parts_faq_relations .faq_relate_list li::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 8px;
  color: #666;
  font-size: 20px;
  line-height: 1;
  transform: translateY(-50%);
}

/* =======================================================
   15. Info&News詳細パーツ共通
======================================================= */
.okw_main_info_and_news {
  padding: 40px 48px 48px;
  background: #fff;
  border: 1px solid #e3dfd8;
  border-radius: 12px;
}

.infonews_col {
  margin: 0;
  padding: 0;
}

.infonews_datetime {
  margin-bottom: 12px;
  color: #777;
  font-size: 13px;
}

.infonewstitle_col {
  margin: 0 0 28px;
}

.infonews_ttl {
  padding: 6px 0;
  font-size: 26px;
  line-height: 1.6;
  background: none;
  border-left: 0;
}

.infonews_ttl_bor {
  display: block;
  padding: 0;
  background: none;
}

.infonews_txt {
  padding: 0;
  font-size: 16px;
  line-height: 1.9;
}

#info_news_contents a {
  color: #b8000d;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* =======================================================
   16. 注目FAQ・お気に入りFAQ共通共通
======================================================= */
.okw_parts_pickup_faq,
.okw_parts_favorite_faq {
  padding: 40px 48px 48px;
  background: #fff;
  border: 1px solid #e3dfd8;
  border-radius: 12px;
}

.okw_parts_pickup_faq .list,
.okw_parts_favorite_faq .list {
  float: none;
  margin: 8px 0 0;
}

.okw_parts_pickup_faq .faqList,
.okw_parts_favorite_faq .faqList {
  margin-top: 24px;
}

/* =======================================================
   17. お問い合わせパーツ共通
======================================================= */
.okw_hdq_contents {
  padding: 40px 48px 48px;
  background: #fff;
  border: 1px solid #e3dfd8;
  border-radius: 12px;
}

.hd_question_form {
  width: 100%;
  max-width: 800px;
  margin: 24px auto 0;
}

.hd_desc {
  margin: 0 0 24px;
  padding: 16px 18px;
  color: #555;
  font-size: 14px;
  line-height: 1.7;
  background: #f7f7f7;
  border: 0;
  border-radius: 6px;
}

.content {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  width: 100%;
  min-height: 56px;
  margin: 0;
  overflow: visible;
  background: #fff;
  border: 0;
  border-bottom: 1px solid #e3dfd8;
}

.column_0,
.column_end {
  float: none;
  margin: 0;
  padding: 16px;
  border: 0;
}

.column_head {
  width: auto;
  text-align: left;
  background: #f7f7f7;
  border: 0;
}

.column_form {
  width: auto;
}

.HDcontents_table {
  border: 1px solid #e3dfd8;
  border-radius: 8px;
  overflow: hidden;
}

.HDcontent dl {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  background: #fff;
}

.HDcontent dt,
.HDcontent dd {
  display: block;
}

.HDcolumn_left,
.HDcolumn_right {
  width: auto;
  max-width: none;
  padding: 14px 16px;
}

.HDcolumn_left {
  background: #f7f7f7;
}

.HDcolumn_right {
  border: 0;
}

.HDcolumn_right textarea {
  width: 100%;
  height: 180px;
}

.commit_button_block {
  margin: 24px 0 0;
  padding: 24px;
  background: #f7f7f7;
  border: 0;
  border-radius: 8px;
}

.hdq_confirm_btn_l,
.hdq_confirm_btn_r {
  display: none;
}

.hdq_confirm_btn_c {
  float: none;
  min-width: 160px;
  height: 48px;
  padding: 0 24px;
  color: #fff;
  font: inherit;
  font-weight: 700;
  background: #d6000f;
  border: 1px solid #d6000f;
  border-radius: 8px;
}

.hdq_confirm_btn_c:hover {
  background: #b8000d;
  border-color: #b8000d;
}

.hdq_confirm_btn_c a,
.hdq_confirm_btn_c a:hover {
  float: none;
  padding: 0;
  color: #fff;
}

.hdq_finish_msg_area {
  width: 100%;
  max-width: 720px;
  margin: 32px auto;
  padding: 28px 32px;
  background: #f7f4ed;
  border: 0;
  border-radius: 8px;
}

.hdq_finish_msg_text {
  margin: 0;
}

/* =======================================================
   19. 更新ガイド対応：共通レイアウト
======================================================= */
#okw_side,
#okw_center {
  float: none;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}

#okw_side {
  margin-bottom: 32px;
}

.icocate_tree,
.icoHelpdesk {
  display: block;
  height: auto;
  padding: 0;
  color: #333;
  background: none;
}

/* =======================================================
   20. 更新ガイド対応：カテゴリーツリー
   ※カードの共通デザインは「7. カテゴリ」に集約
   ※この章にはツリー固有の構造・開閉表示のみ記載
======================================================= */
.okw_parts_category_tree {
  width: 100%;
  margin: 0;
}

.okw_parts_category_tree .category_tree {
  width: 100%;
  margin: 0;
  padding: 0;
  color: #333;
  font-size: 16px;
  line-height: 1.7;
  word-break: normal;
  background: none;
}

.okw_parts_category_tree .category_tree .ttl_col,
.okw_parts_category_tree .category_tree .ttl_bg {
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
}

.okw_parts_category_tree .category_tree .ttl_bg {
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
}

.okw_parts_category_tree .category_tree .icocate_tree {
  font-size: inherit;
  line-height: inherit;
}

.okw_parts_category_tree .category_level_0,
.okw_parts_category_tree .category_level_1,
.okw_parts_category_tree .category_level_2 {
  margin: 0;
  padding: 0;
  list-style: none;
}

.okw_parts_category_tree .category_level_0 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 16px;
  margin-top: 24px;
  background: none;
}

.okw_parts_category_tree .category_level_0 > li {
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.okw_parts_category_tree .category_level_1,
.okw_parts_category_tree .category_level_2 {
  clear: both;
  background: #f7f7f7;
}

.okw_parts_category_tree .category_level_1 > li,
.okw_parts_category_tree .category_level_2 > li {
  margin: 0;
  padding: 0;
  border-top: 1px solid #eeeae4;
}

.okw_parts_category_tree .category_level_0 > li > .category_on {
  grid-template-columns: 52px minmax(0, 1fr) 32px;
  grid-template-areas: "category-icon category-name category-toggle";
  column-gap: 20px;
}

.okw_parts_category_tree .category_level_0 > li > .category_none {
  grid-template-columns: 52px minmax(0, 1fr) 20px;
  grid-template-areas: "category-icon category-name category-arrow";
  column-gap: 20px;
}

.okw_parts_category_tree .category_level_0 > li > .category_on::before,
.okw_parts_category_tree .category_level_0 > li > .category_none::before {
  content: "";
  grid-area: category-icon;
}

.okw_parts_category_tree
  .category_level_0
  > li
  > .category_on
  > a:not(.pm_icon),
.okw_parts_category_tree .category_level_0 > li > .category_none > a {
  grid-area: category-name;
  min-width: 0;
  overflow-wrap: anywhere;
}

.okw_parts_category_tree .category_level_0 > li > .category_none::after {
  content: "›";
  grid-area: category-arrow;
  color: #666;
  font-size: 20px;
  line-height: 1;
  text-align: center;
}

.okw_parts_category_tree .category_level_1 .category_on,
.okw_parts_category_tree .category_level_1 .category_none,
.okw_parts_category_tree .category_level_2 .category_on,
.okw_parts_category_tree .category_level_2 .category_none {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  margin: 0;
  background: none;
}

.okw_parts_category_tree .category_level_1 .category_none,
.okw_parts_category_tree .category_level_2 .category_none {
  grid-template-columns: minmax(0, 1fr);
}

.okw_parts_category_tree .category_level_1 .category_on > a:not(.pm_icon),
.okw_parts_category_tree .category_level_1 .category_none > a,
.okw_parts_category_tree .category_level_2 .category_on > a:not(.pm_icon),
.okw_parts_category_tree .category_level_2 .category_none > a,
.okw_parts_category_tree .category_nofaq {
  display: flex;
  align-items: center;
  align-self: stretch;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  padding: 0;
  overflow: visible;
  color: #333;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}

.okw_parts_category_tree .category_level_1 .category_on > a:not(.pm_icon):hover,
.okw_parts_category_tree
  .category_level_1
  .category_on
  > a:not(.pm_icon):focus-visible,
.okw_parts_category_tree .category_level_1 .category_none > a:hover,
.okw_parts_category_tree .category_level_1 .category_none > a:focus-visible,
.okw_parts_category_tree .category_level_2 .category_on > a:not(.pm_icon):hover,
.okw_parts_category_tree
  .category_level_2
  .category_on
  > a:not(.pm_icon):focus-visible,
.okw_parts_category_tree .category_level_2 .category_none > a:hover,
.okw_parts_category_tree .category_level_2 .category_none > a:focus-visible {
  color: #d6000f;
}

.okw_parts_category_tree .pm_icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  min-width: 32px;
  height: 32px;
  min-height: 32px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: #b8000d;
  font-size: 0;
  line-height: 1;
  text-indent: -9999px;
  text-decoration: none;
  background-image: none;
  background-color: #f7f4ed;
  border-radius: 50%;
}

.okw_parts_category_tree .category_level_0 > li > .category_on > .pm_icon {
  grid-area: category-toggle;
}

.okw_parts_category_tree .pm_icon::before {
  display: block;
  color: inherit;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  text-indent: 0;
}

.okw_parts_category_tree .category_close > .category_on .pm_icon::before {
  content: "+";
}

.okw_parts_category_tree .category_open > .category_on .pm_icon::before {
  content: "−";
}

.okw_parts_category_tree .pm_icon:hover,
.okw_parts_category_tree .pm_icon:focus-visible {
  color: #fff;
  background-color: #d6000f;
}

.okw_parts_category_tree .pm_icon:focus-visible,
.okw_parts_category_tree .category_on > a:not(.pm_icon):focus-visible,
.okw_parts_category_tree .category_none > a:focus-visible {
  outline: 3px solid rgba(214, 0, 15, 0.2);
  outline-offset: 2px;
}

.okw_parts_category_tree .category_level_1 .category_on,
.okw_parts_category_tree .category_level_1 .category_none {
  min-height: 56px;
  padding: 8px 14px 8px 24px;
}

.okw_parts_category_tree .category_level_2 .category_on,
.okw_parts_category_tree .category_level_2 .category_none {
  min-height: 52px;
  padding: 6px 14px 6px 40px;
}

.okw_parts_category_tree .category_select {
  background: #f7f4ed;
}

.okw_parts_category_tree .category_select a,
.okw_parts_category_tree .category_select a span {
  color: #333;
  font-weight: 700;
}

/* =======================================================
   21. 更新ガイド対応：Info&News一覧
======================================================= */
.okw_parts_info_and_news .newsList {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.okw_parts_info_and_news .newsList > li {
  position: relative;
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: 76px;
  margin: 0;
  padding: 15px 48px 15px 8px;
  background: none;
  border-bottom: 1px solid #d5d0c8;
}

.okw_parts_info_and_news .datetime {
  color: #777;
  font-size: 13px;
  line-height: 1.6;
  white-space: nowrap;
}

.okw_parts_info_and_news .infoTxt {
  min-width: 0;
  color: #333;
  font-size: 16px;
  line-height: 1.7;
}

/* =======================================================
   22. 更新ガイド対応：検索補助・詳細検索
======================================================= */
.okw_parts_search #advanced_search_form {
  width: 720px;
  max-width: 100%;
  margin: 24px auto 0;
  padding: 20px 24px;
  color: #333;
  background: #fff;
  border: 1px solid #e3dfd8;
  border-radius: 8px;
}

.okw_parts_search .search_category_wrapper {
  margin: 0;
  padding: 0;
}

.okw_parts_search .listTree {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.okw_parts_search .listTree li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.okw_parts_search .thumb {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  margin: 0;
  padding: 5px 10px;
  color: #555;
  background: #f7f7f7;
  border-radius: 6px;
}

.okw_parts_search .keyword_helpbtn_popup {
  width: 720px;
  max-width: 100%;
  margin: 12px auto 0;
  padding: 16px 18px;
  color: #555;
  font-size: 14px;
  line-height: 1.7;
  background: #fff;
  border: 1px solid #d5d0c8;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(51, 51, 51, 0.1);
}

/* 検索サジェスト */
.okw_parts_search .faq_suggest {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: #333;
  background-color: #fff;
  border: 1px solid #d5d0c8;
  border-top: 0;
  border-radius: 0 0 0.5rem 0.5rem;
  box-shadow: 0 0.625rem 1.5rem rgba(51, 51, 51, 0.12);
  list-style: none;
}

.okw_parts_search .faq_suggest > li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.okw_parts_search .faq_suggest > li + li {
  border-top: 1px solid #eeeae4;
}

.okw_parts_search .faq_suggest_link {
  display: block;
  margin: 0;
  padding: 1rem 1.25rem;
  color: #333;
  text-decoration: none;
  border: 0;
}

.okw_parts_search .faq_suggest_link:hover,
.okw_parts_search .faq_suggest_link:focus-visible {
  color: #c7000b;
  background-color: #f7f4ed;
}

.okw_parts_search .faq_suggest_content {
  display: block;
}

.okw_parts_search .faq_suggest_title {
  position: relative;
  display: block;
  min-width: 0;
  padding-left: 2rem !important;
  color: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
  background: none !important;
}

.okw_parts_search .faq_suggest_category {
  display: block;
  margin-top: 0.25rem;
  padding-left: 0 !important;
  color: #666;
  font-size: 0.875rem;
  line-height: 1.6;
  background: none !important;
  overflow-wrap: anywhere;
}

/* Qアイコン */
.okw_parts_search .faq_suggest_title::before {
  position: absolute;
  top: 0.05em;
  left: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  background: var(--faq-icon-q-red) center / contain no-repeat;
  content: "";
}

/* フォルダーアイコンのみ非表示 */
.okw_parts_search .faq_suggest_category::before {
  display: none !important;
  content: none !important;
}

/* 入力した検索語 */
.okw_parts_search .search_word {
  padding: 0;
  color: #c7000b;
  font-weight: 700;
  background-color: transparent !important;
}

/* =======================================================
   23. 更新ガイド対応：FAQタグ検索
======================================================= */
.okw_parts_faq_tag_search {
  width: 100%;
  margin-top: 48px;
  padding: 32px;
  color: #333;
  background: #f7f7f7;
  border-radius: 12px;
}

.okw_parts_faq_tag_search .icoKeyword {
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
}

.okw_parts_faq_tag_search .faq_tag_search_main_message {
  margin: 16px 0 0;
  color: #333;
  font-size: 16px;
  line-height: 1.7;
}

.okw_parts_faq_tag_search .faq_tag_search_attention_area {
  margin: 16px 0 0;
  padding: 14px 16px;
  color: #555;
  background: #f2ebdd;
  border-radius: 6px;
}

.okw_parts_faq_tag_search .faq_tag_search_attention_message {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
}

.okw_parts_faq_tag_search .faq_tag_search_input_area {
  margin: 20px 0 0;
}

.okw_parts_faq_tag_search #keyword_text_tag_field {
  width: 100%;
  min-height: 52px;
  padding: 10px 14px;
  background: #fff;
}

/* 全ページ共通：キーワード検索をコンパクト化 */
.okw_parts_faq_tag_search {
  margin-top: 24px;
  padding: 16px 24px;
  box-sizing: border-box;
}

/* 「キーワード検索」の見出しと、その空き領域を非表示 */
.okw_parts_faq_tag_search > .ttl_col {
  display: none;
}

.okw_parts_faq_tag_search .faq_tag_search_main {
  margin: 0;
  padding: 0;
  background: transparent !important;
}

.okw_parts_faq_tag_search .faq_tag_search_main_message {
  margin: 0 0 8px;
}

.okw_parts_faq_tag_search .faq_tag_search_input_area {
  margin: 0;
  background: transparent !important;
}

.okw_parts_faq_tag_search .faq_tag_search_attention_area:not(:has(*)) {
  display: none;
}

.okw_parts_faq_tag_search .faq_tags_area,
#faq_tag_search_overlay .faq_tags_area {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 0;
  padding: 0;
}

.okw_parts_faq_tag_search .keyword_tag,
#faq_tag_search_overlay .keyword_tag,
#faq_tag_search_overlay .tagify__tag {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  margin: 0;
  padding: 6px 12px;
  color: #555;
  font-size: 14px;
  line-height: 1.5;
  background: #fff;
  border: 1px solid #d5d0c8;
  border-radius: 999px;
}

/* FAQタグ：注目のキーワードとホバー色を統一 */
.okw_parts_faq_tag_search .faq_tags_area .keyword_tag:hover,
.okw_parts_faq_tag_search .faq_tags_area .keyword_tag:focus-visible,
.okw_parts_faq_tag_search .faq_tags_area .keyword_tag:active,
#faq_tag_search_overlay .faq_tags_area .keyword_tag:hover,
#faq_tag_search_overlay .faq_tags_area .keyword_tag:focus-visible,
#faq_tag_search_overlay .faq_tags_area .keyword_tag:active,
#faq_tag_search_overlay .keyword_tag.tagify__dropdown__item--active {
  color: #d6000f;
  background-color: #fff;
  border-color: #d6000f;
}

#faq_tag_search_overlay {
  color: #333;
  background-color: rgba(33, 33, 33, 0.48);
}

#faq_tag_search_overlay .faq_tag_search_overlay_inner {
  width: min(840px, calc(100% - 64px));
  max-height: calc(100vh - 64px);
  margin: 32px auto;
  padding: 32px;
  overflow: hidden;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(33, 33, 33, 0.22);
}

#faq_tag_search_overlay .faq_tag_search_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding: 0 0 18px;
  border-bottom: 1px solid #e3dfd8;
}

#faq_tag_search_overlay .faq_tag_search_search_area {
  margin: 20px 0 0;
}

#faq_tag_search_overlay .faq_tag_search_content {
  max-height: calc(100vh - 260px);
  margin: 20px 0 0;
  overflow-y: auto;
}

#faq_tag_search_overlay .faq_tag_search_icon,
#faq_tag_search_overlay .faq_tag_search_linksvg,
#faq_tag_search_overlay .icon-m {
  flex: 0 0 auto;
  color: #d6000f;
}

#faq_tag_search_overlay .faq_tag_search_icon {
  flex-basis: 44px;
  width: 44px;
  min-width: 44px;
  height: 44px;
  background: var(--faq-icon-q-red) center / contain no-repeat !important;
}

#faq_tag_search_overlay .faq_tag_search_icon::before,
#faq_tag_search_overlay .faq_tag_search_icon::after {
  display: none !important;
  content: none !important;
}

#faq_tag_search_overlay .faq_tag_search_link_texts {
  min-width: 0;
  color: #333;
  font-size: 15px;
  line-height: 1.6;
}

/* =======================================================
   24. 更新ガイド対応：FAQタグ検索モーダル
======================================================= */
.faq_tags_modal {
  color: #333;
}

.faq_tags_modal .faq_tags_modal_wrapper {
  width: min(920px, calc(100% - 64px));
  max-height: calc(100vh - 64px);
  margin: 32px auto;
  padding: 32px 40px 40px;
  overflow-y: auto;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(33, 33, 33, 0.22);
}

.faq_tags_modal .faq_tag_search_header {
  position: static !important;
  display: flex !important;
  flex-direction: row !important;
  width: 100%;
  align-items: center;
  justify-content: flex-end !important;
  min-height: 68px;
  margin: 0;
  padding: 0 0 16px;
  box-sizing: border-box;
  border-bottom: 1px solid #e3dfd8;
  float: none !important;
}

/* HTMLに中身がない左上の戻るボタンは非表示 */
.faq_tags_modal .faq_tag_search_cancel_button:empty {
  display: none !important;
}

.faq_tags_modal .faq_tags_modal_content {
  display: block;
  margin: 0;
  padding: 0 18px;
}

.faq_tags_modal .title_wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding: 20px 0 !important;
  border-bottom: 1px solid #e3dfd8;
}

.faq_tags_modal .title_wrapper--left {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 16px;
  min-width: 0;
  margin: 0;
  padding: 0;
  float: none;
}

.faq_tags_modal .faq_title {
  min-width: 0;
  color: #222;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.faq_tags_modal .faq_no {
  flex: 0 0 auto;
  margin: 0;
  color: #777;
  font-size: 14px;
  line-height: 1.6;
  white-space: nowrap;
  float: none;
}

.faq_tags_modal .question_icon,
.faq_tags_modal .answer_icon {
  position: relative;
  display: inline-flex;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 0;
  background: none !important;
  border: 0;
  border-radius: 50%;
  box-shadow: none !important;
  float: none;
}

.faq_tags_modal .question_icon::before,
.faq_tags_modal .answer_icon::before {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  border-radius: 50%;
}

.faq_tags_modal .question_icon::after,
.faq_tags_modal .answer_icon::after {
  display: none !important;
  content: none !important;
}

.faq_tags_modal .question_icon::before {
  content: "";
  background: var(--faq-icon-q-brand) center / contain no-repeat;
}

.faq_tags_modal .answer_icon::before {
  content: "";
  background: var(--faq-icon-a-warm) center / contain no-repeat;
}

.faq_tags_modal .question_contents > .content_wrapper {
  margin: 0;
  padding: 0;
}

.faq_tags_modal .faq_info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 28px 0 0;
  padding: 8px 16px;
  color: #666;
  font-size: 14px;
  line-height: 1.6;
  background: #f4f5f6;
  border-bottom: 1px solid #c9cfd3;
  border-radius: 6px 6px 0 0;
}

.faq_tags_modal .faq_info_left {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 24px;
  min-width: 0;
  margin: 0;
  padding: 0;
  float: none;
}

.faq_tags_modal .faq_info_right {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  float: none;
}

.faq_tags_modal .faq_info .category,
.faq_tags_modal .faq_info .date,
.faq_tags_modal .faq_print {
  margin: 0;
  padding: 0;
}

.faq_tags_modal .faq_print .icoPrint {
  display: inline-block;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  overflow: visible;
  background: none !important;
}

.faq_tags_modal .faq_print .icoPrint a {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 44px;
  margin: 0;
  padding: 0;
  color: #555;
  line-height: 1.6;
  white-space: nowrap;
  text-indent: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
  background: none !important;
}

.faq_tags_modal .faq_print .icoPrint a::before,
.faq_tags_modal .faq_print .icoPrint a::after {
  display: none !important;
  content: none !important;
}

.faq_tags_modal .answer_contents {
  margin: 0;
  padding: 0;
}

.faq_tags_modal .answer_data {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: flex-start !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 28px 0 0;
  box-sizing: border-box;
  clear: none !important;
  float: none !important;
}

.faq_tags_modal .answer_data > .answer_icon {
  position: relative !important;
  display: inline-flex !important;
  flex: 0 0 48px !important;
  width: 48px !important;
  min-width: 48px !important;
  height: 48px !important;
  margin: 0 16px 0 0 !important;
  padding: 0 !important;
  clear: none !important;
  float: none !important;
}

.faq_tags_modal .answer_data > .content_wrapper {
  position: static !important;
  display: block !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 3px 0 0 !important;
  font-size: 16px;
  line-height: 1.9;
  overflow-wrap: anywhere;
  clear: none !important;
  float: none !important;
}

/*
 * 閉じるボタンは検索画面と同じ共通クラスの標準スタイルを使用する。
 * モーダル専用の見た目は指定しない。
 */

.faq_tags_modal .faq_tag_modal_close_btn_wrapper {
  display: flex;
  justify-content: center;
  margin: 36px 0 0;
  padding: 0;
}

.faq_tags_modal .faq_tag_modal_close_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  min-height: 56px;
  margin: 0;
  padding: 8px 22px;
  color: #333;
  font: inherit;
  font-weight: 700;
  background: #fff;
  border: 1px solid #c9c4bc;
  border-radius: 8px;
  cursor: pointer;
}

.faq_tags_modal .faq_tag_modal_close_btn:hover,
.faq_tags_modal .faq_tag_modal_close_btn:focus-visible {
  color: #d6000f;
  background: #f7f4ed;
  border-color: #d6000f;
}

.faq_tags_modal .faq_tag_modal_back_btn {
  display: inline-flex;
  width: 1.25rem;
  margin-right: 8px;
  overflow: hidden;
  color: inherit;
  font-size: 0;
}

.faq_tags_modal .faq_tag_modal_back_btn::before {
  color: currentColor;
  font-size: 16px;
  line-height: 1;
  content: "←";
}

.faq_tags_modal .faq_popup_customize_area:empty {
  display: none;
}

.faq_tags_modal .okw_enquete_area {
  margin: 32px 0 0;
  padding: 24px;
  background: #f7f7f7;
  border-radius: 8px;
}

/* =======================================================
   25. 更新ガイド対応：FAQ一覧共通
======================================================= */
.okw_parts_new_faq .new_item_title,
.okw_parts_access_rank_faq .new_item_title,
.okw_parts_pickup_faq .new_item_title,
.okw_parts_favorite_faq .new_item_title {
  min-width: 0;
  color: #333;
  font-size: 16px;
  line-height: 1.7;
}

.okw_parts_new_faq .Q_sml,
.okw_parts_new_faq .K_sml,
.okw_parts_access_rank_faq .Q_sml,
.okw_parts_access_rank_faq .K_sml,
.okw_parts_pickup_faq .Q_sml,
.okw_parts_pickup_faq .K_sml,
.okw_parts_favorite_faq .Q_sml,
.okw_parts_favorite_faq .K_sml,
.okw_parts_faq_relations .Q_sml,
.okw_parts_faq_relations .K_sml {
  height: auto;
  padding: 0;
  background: none;
}

.okw_parts_helpdesk {
  margin-top: 64px;
  padding: 32px 40px;
  background: #f7f4ed;
  border-radius: 12px;
}

.okw_parts_helpdesk .icoHelpdesk {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}

/* =======================================================
   26. 更新ガイド対応：Info&News詳細
======================================================= */
.infonews_date_txt {
  margin: 0 8px 0 0;
  color: #777;
  font-size: 13px;
  line-height: 1.6;
}

.infonews_date_no {
  margin: 0;
  color: #777;
  font-size: 13px;
  line-height: 1.6;
}

.infonews_ttl_bor {
  color: #333;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.6;
}

/* =======================================================
   27. 更新ガイド対応：注目FAQ・お気に入りFAQ
======================================================= */
.okw_main_pickup_faq,
.okw_main_favorite_faq {
  padding: 40px 48px 48px;
  background: #fff;
  border: 1px solid #e3dfd8;
  border-radius: 12px;
}

.okw_main_pickup_faq .icoPickup,
.okw_main_favorite_faq .icoFavorite {
  margin: 0;
  padding: 0 0 18px;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  background: none;
  border-bottom: 1px solid #d5d0c8;
}

/* =======================================================
   28. 更新ガイド対応：FAQ詳細の属性・ウィザード・アンケート
======================================================= */
.faq_qstCont_txt {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
}

.faq_addition_list.not_html dt,
.faq_addition_list.html dt {
  margin: 0 0 6px;
  color: #555;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
}

.faq_addition_list.not_html dd,
.faq_addition_list.html dd,
.faq_addition_list.html > .faq_ansCont_txt {
  margin: 0;
  color: #333;
  font-size: 15px;
  line-height: 1.8;
}

#wizard_list {
  margin: 24px 0 0;
  padding: 0;
}

#wizard_list .wzd_slct_area {
  display: grid;
  gap: 10px;
}

#wizard_list .chckbx_off,
#wizard_list .chckbx_on {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 48px;
  margin: 0;
  padding: 10px 14px;
  color: #333;
  background: #fff;
  border: 1px solid #d5d0c8;
  border-radius: 6px;
}

#wizard_list .chckbx_on {
  background: #f7f4ed;
  border-color: #d6000f;
}

#wizard_list .selecttxt {
  min-width: 0;
  color: #333;
  font-size: 15px;
  line-height: 1.7;
}

#wizard_list .chckbx_off img,
#wizard_list .chckbx_on img {
  display: block;
  width: auto;
  max-width: 240px;
  height: auto;
  max-height: 180px;
  object-fit: contain;
  border-radius: 6px;
}

#wizard_list .wzd_bck {
  margin: 20px 0 0 64px;
}

#wizard_list .wzd_bck a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 6px 14px;
  color: #555;
  text-decoration: none;
  background: #f7f7f7;
  border: 1px solid #d5d0c8;
  border-radius: 6px;
}

#wizard_list .wzd_bck a::before {
  content: "‹";
  margin-right: 6px;
  font-size: 20px;
  line-height: 1;
}

#wizard_list .wzd_bck a:hover {
  color: #d6000f;
  border-color: #d6000f;
}

/* FAQ詳細アンケート：3択カード＋「？」選択時のコメント入力 */
.okw_enquete_area {
  display: flow-root !important;
  float: none !important;
  clear: both !important;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 32px 40px;
  color: #333;
  background: #f7f4ed;
  border: 0;
  border-radius: 12px;
}

.okw_enquete_area *,
.okw_enquete_area *::before,
.okw_enquete_area *::after {
  box-sizing: border-box;
}

.okw_enquete_area .questioner_ttl {
  display: block !important;
  float: none !important;
  clear: both !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 24px;
  padding: 0;
  color: #333;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  background: none;
  border: 0;
}

.okw_enquete_area .questioner_col,
.okw_enquete_area #enquete_form {
  display: block !important;
  float: none !important;
  clear: both !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.okw_enquete_area .faq_form_list {
  display: grid !important;
  float: none !important;
  clear: both !important;
  grid-template-columns: repeat(3, minmax(0, 220px)) !important;
  justify-content: center !important;
  align-items: stretch;
  gap: 12px;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.okw_enquete_area .faq_form_list > li {
  position: relative;
  display: flex !important;
  float: none !important;
  box-sizing: border-box !important;
  width: 220px !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.okw_enquete_area .faq_form_list input[type="radio"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.okw_enquete_area .faq_form_list label {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 88px;
  height: 100%;
  margin: 0;
  padding: 14px 18px;
  overflow: hidden;
  color: #333;
  font-size: 0;
  font-weight: 700;
  line-height: 1.5;
  text-align: left;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  writing-mode: horizontal-tb !important;
  background: #fff;
  border: 1px solid #8a8580;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgb(0 0 0 / 10%);
  cursor: pointer;
  transition:
    color 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.okw_enquete_area .faq_form_list label::before {
  display: block;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  background-color: #d6000f;
  content: "";
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.okw_enquete_area .faq_form_list label::after {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  color: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
  white-space: pre-line;
  word-break: keep-all;
}

.okw_enquete_area .faq_form_list > li:nth-of-type(1) label::before {
  -webkit-mask-image: var(--faq-icon-enquete-yes);
  mask-image: var(--faq-icon-enquete-yes);
}

.okw_enquete_area .faq_form_list > li:nth-of-type(1) label::after {
  content: "解決した";
}

.okw_enquete_area .faq_form_list > li:nth-of-type(2) label::before {
  -webkit-mask-image: var(--faq-icon-enquete-no);
  mask-image: var(--faq-icon-enquete-no);
}

.okw_enquete_area .faq_form_list > li:nth-of-type(2) label::after {
  content: "解決しなかった";
}

.okw_enquete_area .faq_form_list > li:nth-of-type(3) label::before {
  -webkit-mask-image: var(--faq-icon-enquete-unknown);
  mask-image: var(--faq-icon-enquete-unknown);
}

/* SP・共通：基本は1行、幅が足りない場合のみ自然に折り返す */
.okw_enquete_area .faq_form_list > li:nth-of-type(3) label::after {
  max-width: none;
  white-space: normal;
  word-break: normal;
  overflow-wrap: anywhere;
  content: "知りたい情報ではなかった";
}

/* PC：指定した位置で2行にする */
@media screen and (min-width: 768px) {
  .okw_enquete_area
    .faq_form_list
    > li:nth-of-type(3)
    label::after {
    white-space: pre-line;
    content: "知りたい情報\Aではなかった";
  }
}

.okw_enquete_area .faq_form_list input[type="radio"]:focus-visible + label {
  outline: 3px solid #c34c54;
  outline-offset: 3px;
}

.okw_enquete_area .faq_form_list input[type="radio"]:checked + label {
  color: #fff;
  background: #d6000f;
  border-color: #d6000f;
  box-shadow: 0 3px 7px rgb(0 0 0 / 18%);
}

.okw_enquete_area .faq_form_list input[type="radio"]:checked + label::before {
  background-color: #fff;
}

@media (hover: hover) {
  .okw_enquete_area .faq_form_list input[type="radio"]:not(:checked) + label:hover {
    color: #d6000f;
    background: #fff8f8;
    border-color: #d6000f;
  }
}

.okw_enquete_area #enquete_form.is-submitting .faq_form_list {
  pointer-events: none;
  opacity: 0.6;
}

.okw_enquete_area .questioner_txt_col,
.okw_enquete_area .questioner_submit_btn {
  display: none;
}

.okw_enquete_area #enquete_form.is-comment-selected .questioner_txt_col,
.okw_enquete_area #enquete_form:has(.faq_form_list > li:nth-of-type(3) input[type="radio"]:checked) .questioner_txt_col {
  display: grid;
}

.okw_enquete_area #enquete_form.is-comment-selected .questioner_submit_btn,
.okw_enquete_area #enquete_form:has(.faq_form_list > li:nth-of-type(3) input[type="radio"]:checked) .questioner_submit_btn {
  display: flex;
}

.okw_enquete_area .questioner_txt_col {
  gap: 10px;
  float: none !important;
  clear: both !important;
  box-sizing: border-box !important;
  width: min(100%, 720px) !important;
  max-width: 720px !important;
  margin: 28px auto 0 !important;
  padding: 0 !important;
}

.okw_enquete_area .questioner_sub_msg {
  display: block;
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.7;
  text-align: left;
}

.okw_enquete_area .questioner_txt {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 144px;
  margin: 0;
  padding: 14px 16px;
  color: #333;
  font: inherit;
  font-size: 16px;
  line-height: 1.7;
  resize: vertical;
  background: #fff;
  border: 1px solid #8a8580;
  border-radius: 8px;
}

.okw_enquete_area .questioner_txt:focus-visible {
  border-color: #d6000f;
  outline: 3px solid rgb(214 0 15 / 18%);
  outline-offset: 1px;
}

.okw_enquete_area .questioner_description {
  display: block;
  margin: 0;
  color: #666;
  font-size: 13px;
  line-height: 1.7;
  text-align: left;
}

.okw_enquete_area .questioner_submit_btn {
  justify-content: center;
  float: none !important;
  clear: both !important;
  box-sizing: border-box !important;
  width: 100% !important;
  margin: 24px 0 0 !important;
  padding: 0 !important;
}

.okw_enquete_area .questioner_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: min(100%, 280px) !important;
  max-width: 280px !important;
  min-height: 52px;
  margin: 0;
  padding: 12px 24px;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  background: #d6000f;
  border: 1px solid #d6000f;
  border-radius: 8px;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    opacity 0.2s ease;
}

.okw_enquete_area .questioner_btn:disabled {
  color: #fff;
  background: #bcb7b0;
  border-color: #bcb7b0;
  cursor: not-allowed;
}

@media (hover: hover) {
  .okw_enquete_area .questioner_btn:not(:disabled):hover {
    background: #b8000d;
    border-color: #b8000d;
  }
}

.okw_enquete_area .questioner_btn:focus-visible {
  outline: 3px solid #c34c54;
  outline-offset: 3px;
}

@media screen and (max-width: 767px),
       screen and (max-device-width: 767px) {
  .okw_enquete_area {
    padding: 24px 20px 32px !important;
    border-radius: 10px;
  }

  .okw_enquete_area .questioner_ttl {
    margin-bottom: 18px;
    font-size: 19px;
  }

  .okw_enquete_area .faq_form_list {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px;
  }

  .okw_enquete_area .faq_form_list > li {
    width: 100% !important;
  }

  .okw_enquete_area .faq_form_list label {
    justify-content: flex-start;
    gap: 14px;
    width: 100% !important;
    min-height: 72px;
    height: auto;
    padding: 12px 18px;
    text-align: left;
  }

  .okw_enquete_area .faq_form_list label::before {
    width: 38px;
    height: 38px;
  }

  .okw_enquete_area .faq_form_list label::after {
    flex: 1 1 auto;
    font-size: 15px;
  }

  .okw_enquete_area .faq_form_list > li:nth-of-type(3) label::before {
    width: 38px;
    height: 38px;
  }

  .okw_enquete_area .faq_form_list > li:nth-of-type(3) label::after {
    max-width: none;
  }

  .okw_enquete_area .questioner_txt_col {
    margin-top: 22px;
  }

  .okw_enquete_area .questioner_txt {
    min-height: 128px;
  }

  .okw_enquete_area .questioner_btn {
    width: 100%;
  }
}

.okw_parts_enquete {
  margin-top: 32px;
  padding: 28px 32px;
  color: #333;
  background: #f7f7f7;
  border-radius: 12px;
}

/* アンケート本体がある場合は、外側の旧背景・余白を重ねない */
.okw_parts_enquete:has(.okw_enquete_area) {
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
}

.okw_parts_faq_relations .faq_list_bg2 {
  background-color: transparent;
  background-image: none;
}

/* =======================================================
   27. キーワード検索パーツの共通表示補正
======================================================= */
.flo_r.twoCol.okw_parts_search {
  display: block;
  position: relative;
  float: none;
  clear: both;
  left: auto;
  width: 100vw;
  max-width: none;
  margin-right: 0;
  margin-left: calc(50% - 50vw);
  padding: 48px 32px 60px;
  background: #f7f7f7;
}

/* 疑似要素による旧背景を無効化 */
.flo_r.twoCol.okw_parts_search::before {
  content: none;
}

/* 検索フォームを検索エリアの中央へ配置 */
.flo_r.twoCol.okw_parts_search .search_frmArea,
.flo_r.twoCol.okw_parts_search .faq_search_frmArea {
  position: relative;
  display: block;
  float: none;
  width: 720px;
  max-width: 100%;
  margin: 8px auto 0 !important;
  padding: 0;
}

.flo_r.twoCol.okw_parts_search #keyword_form,
.flo_r.twoCol.okw_parts_search #faq_keyword_form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 104px;
  align-items: stretch;
  width: 100%;
  margin: 0;
  padding: 0;
}

.flo_r.twoCol.okw_parts_search #keyword_form .search_description,
.flo_r.twoCol.okw_parts_search #faq_keyword_form .search_description {
  grid-column: 1 / -1;
  grid-row: 1;
}

.flo_r.twoCol.okw_parts_search #keyword_form .keyword_frm,
.flo_r.twoCol.okw_parts_search #faq_keyword_form .keyword_frm {
  grid-column: 1;
  grid-row: 2;
  float: none;
  min-width: 0;
  width: 100%;
  height: 64px;
  margin: 0;
  border: 1px solid #d5d0c8;
  border-right: 0;
  border-radius: 10px 0 0 10px;
}

.flo_r.twoCol.okw_parts_search #keyword_form .keyword_frmbtn,
.flo_r.twoCol.okw_parts_search #faq_keyword_form .keyword_frmbtn {
  grid-column: 2;
  grid-row: 2;
  float: none;
  width: 104px;
  height: 64px;
  margin: 0;
  border: 1px solid #d6000f;
  border-radius: 0 10px 10px 0;
}

.flo_r.twoCol.okw_parts_search #keyword_form .faq_suggest_area,
.flo_r.twoCol.okw_parts_search #faq_keyword_form .faq_suggest_area {
  grid-column: 1 / -1;
  grid-row: 3;
}

/* =======================================================
   28. 全ページ共通：閲覧の多いFAQ・最新のFAQの表示補正
======================================================= */
/* 「閲覧の多いFAQ」の上余白を広げる */
.okw_parts_access_rank_faq {
  display: block;
  clear: both;
  width: 100%;
  margin-top: 64px;
}

/* 後半のFAQ一覧共通指定で消えるQアイコン分の余白を復元 */
.okw_parts_access_rank_faq .qaList > li,
.okw_parts_access_rank_faq .faqList > li,
.okw_parts_new_faq .qaList > li,
.okw_parts_new_faq .faqList > li {
  padding: 15px 48px 15px 40px;
}

/* FAQテキストをQアイコンの右側に安定して配置 */
.okw_parts_access_rank_faq .new_item_title,
.okw_parts_new_faq .new_item_title {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}

/* =======================================================
   30. 全ページ共通：FAQ全文表示・Info&News上余白
======================================================= */
/*
 * PKSHAから出力されるリンク本文は末尾が「...」で省略されているため、
 * title属性に保持されている質問全文を表示する。
 */
.okw_parts_access_rank_faq .new_item_title[title],
.okw_parts_new_faq .new_item_title[title] {
  font-size: 0;
  line-height: 0;
}

.okw_parts_access_rank_faq .new_item_title[title]::before,
.okw_parts_new_faq .new_item_title[title]::before {
  content: attr(title);
  font-size: 16px;
  line-height: 1.7;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* Info&Newsの上余白が有効になるよう、該当パーツをブロック要素に戻す */
.okw_parts_info_and_news {
  display: block;
  clear: both;
  width: 100%;
  margin-top: 64px;
}

/* =======================================================
   31. FAQ印刷用ページ
   ※ 通常のFAQ詳細ページにはある body ID が印刷ページにはないため、
      body IDなし＋直下のFAQ構造に限定して適用
======================================================= */
body:not([id]) #okw_contents_inner > .faq_qstInf_col,
body:not([id]) #okw_contents_inner > .faq_qstCont_ttl,
body:not([id]) #okw_contents_inner > .faq_qstCont_col,
body:not([id]) #okw_contents_inner > .faq_ans_ttl,
body:not([id]) #okw_contents_inner > .faq_ans_col {
  width: calc(100% - 64px);
  max-width: 960px;
  margin-right: auto;
  margin-left: auto;
}

body:not([id]) #okw_contents_inner > .faq_qstInf_col {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 48px;
  padding: 0 0 16px;
  color: #777;
  border-bottom: 1px solid #e3dfd8;
}

body:not([id]) .faq_qstInf_col .siteLink,
body:not([id]) .faq_qstInf_col .faq_dateNo {
  float: none;
  margin: 0;
}

body:not([id]) .faq_qstInf_col .faq_dateNo {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 20px;
}

body:not([id]) .faq_qstInf_col .faq_dateNo li {
  display: block;
  margin: 0;
  color: #777;
  font-size: 13px;
}

body:not([id]) .faq_qstInf_col .preLink {
  margin: 0;
  background: none;
}

body:not([id]) .faq_qstInf_col .preLink a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 5px 12px;
  color: #555;
  text-decoration: none;
  background: #f7f7f7;
  border-radius: 6px;
}

body:not([id]) .faq_qstInf_col .preLink a::before {
  content: "‹";
  margin-right: 6px;
  font-size: 20px;
  line-height: 1;
}

body:not([id]) .faq_qstInf_col .preLink a:hover {
  color: #d6000f;
  background: #f7f4ed;
}

body:not([id]) .faq_qstInf_col .icoPrint {
  background: none;
}

body:not([id]) .faq_qstInf_col .icoPrint a {
  height: auto;
  padding: 0;
  color: #555;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body:not([id]) #okw_contents_inner > .mark_area {
  display: none;
}

body:not([id]) #okw_contents_inner > .faq_qstCont_ttl {
  margin-top: 32px;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.6;
}

body:not([id]) #okw_contents_inner > .faq_qstCont_ttl .icoQ {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: start;
  gap: 16px;
  padding: 0;
  background: none;
}

body:not([id]) #okw_contents_inner > .faq_qstCont_ttl .icoQ::before {
  content: "";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  background: var(--faq-icon-q-brand) center / contain no-repeat;
  border-radius: 50%;
}

body:not([id]) #okw_contents_inner > .faq_qstCont_col {
  margin-top: 22px;
  padding-left: 64px;
}

body:not([id]) .faq_qstCont_col .faq_cate_col {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  margin: 0;
  padding: 12px 16px;
  color: #666 !important;
  font-size: 13px;
  line-height: 1.7;
  background: #f7f7f7;
  border: 0;
  border-radius: 6px;
}

body:not([id]) .faq_qstCont_col .faq_cate_col dt,
body:not([id]) .faq_qstCont_col .faq_cate_col dd,
body:not([id]) .faq_qstCont_col .faq_cate_col dd span,
body:not([id]) .faq_qstCont_col .faq_cate_col dd a {
  float: none;
}

body:not([id]) .faq_qstCont_col .faq_cate_col dt {
  flex: 0 0 auto;
  margin: 0;
}

body:not([id]) .faq_qstCont_col .faq_cate_col dd {
  min-width: 0;
}

.faq_cate_col li > a[href*="/category/show/2?"],
.faq_cate_col li > a[href*="/category/show/2?"] + span {
  display: none;
}

body:not([id]) .faq_qstCont_col .faq_cate_col a {
  color: #555 !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

body:not([id]) #okw_contents_inner > .faq_ans_bor,
body:not([id]) #okw_contents_inner > .faq_ans_ttl {
  margin-top: 40px;
  padding: 0;
  color: #333;
  font-size: 20px;
  line-height: 1.5;
  background: none;
}

body:not([id]) #okw_contents_inner > .faq_ans_ttl .icoA {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  margin: 0;
  padding: 0;
  background: none;
}

body:not([id]) #okw_contents_inner > .faq_ans_ttl .icoA::before {
  content: "";
  display: block;
  width: 48px;
  height: 48px;
  background: var(--faq-icon-a-warm) center / contain no-repeat;
  border-radius: 50%;
}

body:not([id]) #okw_contents_inner > .faq_ans_col {
  margin-top: 20px;
  margin-bottom: 48px;
  padding: 0 0 40px 64px;
  word-wrap: break-word;
  border-bottom: 1px solid #e3dfd8;
}

body:not([id]) #okw_contents_inner > .faq_ans_col .faq_ansCont_txt {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
}

body:not([id]) #faq_answer_contents a {
  color: #b8000d;
  text-decoration: underline;
  text-underline-offset: 3px;
  word-break: break-word;
}

/* =======================================================
   32. 狭いPC画面向けレスポンシブ補正
   ※ PC版のデザインを維持し、固定幅による横スクロールを防止
======================================================= */
@media screen and (max-width: 1023px) {
  #okw_contents_inner > .colArea {
    width: calc(100% - 48px);
  }

  .okw_parts_search,
  .flo_r.twoCol.okw_parts_search {
    padding-right: 24px;
    padding-left: 24px;
  }

  .okw_main_category,
  .okw_main_faq,
  .okw_main_info_and_news,
  .okw_parts_pickup_faq,
  .okw_parts_favorite_faq,
  .okw_main_pickup_faq,
  .okw_main_favorite_faq,
  .okw_hdq_contents {
    padding-right: 40px;
    padding-left: 40px;
  }

  .okw_parts_faq_relations {
    padding-right: 40px;
    padding-left: 40px;
  }

  #faq_tag_search_overlay .faq_tag_search_overlay_inner,
  .faq_tags_modal .faq_tags_modal_wrapper {
    width: calc(100% - 48px);
  }
}

/* 件数表示とページ番号が1行に収まらない幅では2段にする */
@media screen and (max-width: 959px) {
  .okw_main_category .pg_col_down {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 12px;
  }

  .okw_main_category .pg_col_down > .pg_no,
  .okw_main_category .pagination {
    grid-column: 1;
  }

  .okw_main_category .pagination {
    justify-self: end;
  }
}

@media screen and (max-width: 767px) {
  #okw_contents_inner > .colArea {
    width: calc(100% - 40px);
  }

  .okw_parts_search,
  .flo_r.twoCol.okw_parts_search {
    padding: 52px 20px 48px;
  }

  .okw_parts_search .icoKeyword::before {
    font-size: 32px;
  }

  #faq_keyword_form,
  .flo_r.twoCol.okw_parts_search #keyword_form,
  .flo_r.twoCol.okw_parts_search #faq_keyword_form {
    grid-template-columns: minmax(0, 1fr) 96px;
  }

  .faq_search_frmArea .keyword_frmbtn,
  .flo_r.twoCol.okw_parts_search #keyword_form .keyword_frmbtn,
  .flo_r.twoCol.okw_parts_search #faq_keyword_form .keyword_frmbtn {
    width: 96px;
  }

  .cateList_area,
  .okw_parts_category_tree .category_level_0 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .okw_parts_category_tree .category_level_0 > li > .category_on,
  .okw_parts_category_tree .category_level_0 > li > .category_none {
    min-height: 116px;
    padding-top: 18px;
    padding-bottom: 18px;
  }

  .okw_main_category,
  .okw_main_faq,
  .okw_main_info_and_news,
  .okw_parts_pickup_faq,
  .okw_parts_favorite_faq,
  .okw_main_pickup_faq,
  .okw_main_favorite_faq,
  .okw_hdq_contents {
    padding: 32px;
  }

  .okw_parts_faq_relations {
    padding: 28px 32px;
  }

  .okw_main_category .pg_col_top {
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 12px;
  }

  .okw_main_category .pg_col_top > .pg_no {
    grid-column: 1;
  }

  .okw_main_category .pg_col_top > .pg_scr {
    grid-column: 2;
  }

  .okw_main_category .pg_col_top > .okw_sort_select {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .faq_qstInf_col,
  body:not([id]) #okw_contents_inner > .faq_qstInf_col {
    flex-wrap: wrap;
  }

  #faq_tag_search_overlay .faq_tag_search_overlay_inner,
  .faq_tags_modal .faq_tags_modal_wrapper {
    width: calc(100% - 32px);
    margin: 16px auto;
    padding: 24px;
  }

  .faq_tags_modal .faq_tags_modal_content {
    padding-right: 0;
    padding-left: 0;
  }

  .faq-pc-footer .faq-pc-footer__support {
    width: calc(100% - 40px);
    padding: 32px 24px;
  }

  .faq-pc-footer .faq-pc-footer__support-link {
    width: 100%;
  }
}

@media screen and (max-width: 639px) {
  #okw_contents_inner > .colArea {
    width: calc(100% - 32px);
  }

  .okw_parts_search .icoKeyword::before {
    font-size: 28px;
  }

  .okw_main_category,
  .okw_main_faq,
  .okw_main_info_and_news,
  .okw_parts_pickup_faq,
  .okw_parts_favorite_faq,
  .okw_main_pickup_faq,
  .okw_main_favorite_faq,
  .okw_hdq_contents {
    padding: 24px;
  }

  .okw_parts_faq_relations {
    padding: 24px;
  }

  .content,
  .HDcontent dl {
    grid-template-columns: minmax(0, 1fr);
  }

  .okw_parts_info_and_news .newsList > li {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  #wizard_list .chckbx_off,
  #wizard_list .chckbx_on {
    grid-template-columns: minmax(0, 1fr);
  }

  #wizard_list .chckbx_off img,
  #wizard_list .chckbx_on img {
    max-width: 100%;
  }

  #wizard_list .wzd_bck {
    margin-left: 0;
  }

  .faq_tags_modal .title_wrapper {
    flex-wrap: wrap;
  }
}

@media screen and (max-width: 479px) {
  .faq_search_frmArea .keyword_frmbtn,
  .flo_r.twoCol.okw_parts_search #keyword_form .keyword_frmbtn,
  .flo_r.twoCol.okw_parts_search #faq_keyword_form .keyword_frmbtn {
    font-size: 14px;
  }
}

/* 紙へ印刷する際の不要要素・余白・改ページを調整 */
@media print {
  body:not([id]) {
    min-width: 0;
    color: #000;
    font-size: 10.5pt;
    line-height: 1.65;
    background: #fff;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body:not([id]) #okw_wrapper,
  body:not([id]) #okw_contents,
  body:not([id]) #okw_contents_base,
  body:not([id]) #okw_contents_inner {
    width: auto;
    margin: 0;
    padding: 0;
  }

  body:not([id]) #okw_contents_inner > .faq_qstInf_col,
  body:not([id]) #okw_contents_inner > .faq_qstCont_ttl,
  body:not([id]) #okw_contents_inner > .faq_qstCont_col,
  body:not([id]) #okw_contents_inner > .faq_ans_ttl,
  body:not([id]) #okw_contents_inner > .faq_ans_col {
    width: 100%;
    max-width: none;
  }

  body:not([id]) #okw_contents_inner > .faq_qstInf_col {
    margin-top: 0;
  }

  body:not([id]) .faq_qstInf_col .siteLink,
  body:not([id]) .faq_qstInf_col .faq_print {
    display: none !important;
  }

  body:not([id]) .faq_qstInf_col .faq_dateNo {
    width: 100%;
    justify-content: flex-end;
  }

  body:not([id]) #okw_contents_inner > .faq_qstCont_ttl,
  body:not([id]) #okw_contents_inner > .faq_ans_ttl {
    break-after: avoid-page;
    page-break-after: avoid;
  }

  body:not([id]) #okw_contents_inner > .faq_qstCont_col,
  body:not([id]) #faq_answer_contents img,
  body:not([id]) #faq_answer_contents table {
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  body:not([id]) #faq_answer_contents a {
    color: #000;
  }
}

/* =======================================================
   33. スマートフォン表示
   ※ PKSHAの「スマートフォン用CSSを適用する」は使用しない前提
   ※ PC用CSS欄だけでPC・SPを切り替える
   ※ viewport未設定時に備えて端末幅でも判定
======================================================= */
@media screen and (max-width: 767px), screen and (max-device-width: 767px) {
  html,
  body {
    width: 100%;
    min-width: 0 !important;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    font-size: 1rem;
    line-height: 1.75;
  }

  img,
  video,
  iframe,
  table {
    max-width: 100%;
  }

  img,
  video {
    height: auto;
  }

  #okw_wrapper,
  #okw_contents,
  #okw_contents_base,
  #okw_contents_inner,
  #okw_contents_inner > .colArea,
  #okw_center,
  #okw_side,
  .oneCol,
  .twoCol {
    float: none !important;
    clear: both;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
  }

  #okw_contents_inner {
    padding-top: 1.25rem;
  }

  #category_index #okw_contents_inner,
  #category_search #okw_contents_inner,
  body:not([id]) #okw_contents_inner {
    padding-top: 0;
  }

  #okw_contents_inner > .colArea {
    padding-right: 1rem;
    padding-left: 1rem;
  }

  #okw_side {
    margin-bottom: 1.5rem;
  }

  .ttl_col h2,
  .icoResult,
  .icoInfoNews,
  .icoHelpdesk,
  .icoFavorite,
  .icoPickup,
  .icoFaq,
  .okw_parts_category_tree .category_tree .ttl_bg {
    font-size: 1.375rem;
    line-height: 1.5;
  }

  .ttl_col h2 {
    gap: 0.625rem;
  }

  .ttl_col h2::before {
    flex-basis: 0.3125rem;
    width: 0.3125rem;
    height: 2rem;
  }

  .topLink {
    right: 1rem;
    bottom: 1rem;
  }

  /* 全幅検索エリア */
  .okw_parts_search,
  .flo_r.twoCol.okw_parts_search {
    left: auto;
    width: 100vw !important;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    padding: 2.25rem 1rem 2.5rem;
  }

  .okw_parts_search .icoKeyword::before {
    font-size: 1.75rem;
  }

  .search_description {
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    text-align: left;
  }

  #faq_keyword_form,
  .flo_r.twoCol.okw_parts_search #keyword_form,
  .flo_r.twoCol.okw_parts_search #faq_keyword_form {
    grid-template-columns: minmax(0, 1fr) 5.5rem;
  }

  .keyword_frm,
  .flo_r.twoCol.okw_parts_search #keyword_form .keyword_frm,
  .flo_r.twoCol.okw_parts_search #faq_keyword_form .keyword_frm {
    height: 3.5rem;
    padding-right: 0.875rem;
    padding-left: 0.875rem;
  }

  .faq_search_frmArea .keyword_frmbtn,
  .flo_r.twoCol.okw_parts_search #keyword_form .keyword_frmbtn,
  .flo_r.twoCol.okw_parts_search #faq_keyword_form .keyword_frmbtn {
    width: 5.5rem;
    height: 3.5rem;
    font-size: 0.9375rem;
  }

  .okw_parts_attention_keyword {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 0 1rem 2.5rem;
  }

  .attention_keyword_list {
    gap: 0.625rem;
  }

  .attention_keyword_list > li > a {
    min-height: 2.75rem;
    white-space: normal;
  }

  /* 共通カード */
  .okw_main_category,
  .okw_main_faq,
  .okw_main_info_and_news,
  .okw_parts_pickup_faq,
  .okw_parts_favorite_faq,
  .okw_main_pickup_faq,
  .okw_main_favorite_faq,
  .okw_hdq_contents {
    width: 100%;
    padding: 1.5rem 1rem;
    border-radius: 0.5rem;
  }

  .okw_parts_faq_relations {
    width: 100%;
    padding: 1.5rem 1rem;
    border-radius: 0.5rem;
  }

  .qaList > li,
  .faqList > li,
  .okw_parts_access_rank_faq .qaList > li,
  .okw_parts_access_rank_faq .faqList > li,
  .okw_parts_new_faq .qaList > li,
  .okw_parts_new_faq .faqList > li {
    min-height: 4rem;
    padding: 0.875rem 2rem 0.875rem 2.75rem;
  }

  .qaList > li::before,
  .faqList > li::before {
    left: 0.25rem;
  }

  .qaList > li::after,
  .faqList > li::after {
    right: 0.25rem;
  }

  .qaList > li > a,
  .faqList > li > a,
  .okw_parts_access_rank_faq .new_item_title[title]::before,
  .okw_parts_new_faq .new_item_title[title]::before {
    font-size: 1rem;
    line-height: 1.75;
    overflow-wrap: anywhere;
  }

  .okw_parts_access_rank_faq,
  .okw_parts_info_and_news {
    margin-top: 3.5rem;
  }

  .okw_parts_new_faq {
    margin-top: 4rem;
  }

  /* カテゴリー */
  .cateList_area,
  .okw_parts_category_tree .category_level_0 {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }

  .cateList {
    --faq-category-heading-height: 4rem;

    grid-template-columns: 3.75rem minmax(0, 1fr);
    grid-template-rows: 4rem auto auto;
  }

  .cate_icon_link {
    width: 2.75rem;
    height: 2.75rem;
    margin: 0.625rem 0 0.625rem 0.75rem;
    background-size: 2rem 2rem;
  }

  .cate_icon_link .cate_icon {
    width: 2rem;
    height: 2rem;
  }

  .cate_middle {
    min-height: 4rem;
    padding: 0.625rem 2.5rem 0.625rem 0;
  }

  .cate_middle > a {
    font-size: 1rem;
    line-height: 1.5;
  }

  .cateList::after {
    top: 2rem;
  }

  .cate_small {
    padding: 0.5rem 0.875rem 0.625rem;
  }

  .cate_small > li > a {
    padding: 0.375rem 0.5rem 0.375rem 1.125rem;
    font-size: 0.9375rem;
    line-height: 1.6;
  }

  .okw_parts_category_tree .category_level_0 > li > .category_on,
  .okw_parts_category_tree .category_level_0 > li > .category_none {
    min-height: 5rem;
    padding: 0.875rem 0.75rem;
  }

  .okw_parts_category_tree .category_level_0 > li > .category_on {
    grid-template-columns: 3rem minmax(0, 1fr) 2rem;
    column-gap: 0.75rem;
  }

  .okw_parts_category_tree .category_level_0 > li > .category_none {
    grid-template-columns: 3rem minmax(0, 1fr) 1.25rem;
    column-gap: 0.75rem;
  }

  /* 検索結果上部：件数とページ数を1段目、並び替えを2段目に配置 */
  .okw_main_category .pg_col_top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 0.75rem;
    row-gap: 0.75rem;
    font-family:
      "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo,
      sans-serif !important;
    font-size: 0.875rem;
  }

  .okw_main_category .pg_col_down {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0.75rem;
  }

  .okw_main_category .pg_col_top > .pg_no {
    grid-column: 1;
    justify-self: start;
  }

  .okw_main_category .pg_col_top > .pg_scr {
    grid-column: 2;
    justify-self: end;
    gap: 0.5rem;
  }

  .okw_main_category .pg_col_top > .okw_sort_select {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .okw_main_category .pg_col_top > .pg_no,
  .okw_main_category .pg_col_top > .pg_scr,
  .okw_main_category .pg_col_top > .okw_sort_select,
  .okw_main_category .pg_col_top #faq_list_sort_select {
    font-family: inherit !important;
  }

  @media screen and (max-width: 767px),
       screen and (max-device-width: 767px) {
  #faq_list_sort_select {
    width: auto !important;
    min-width: 140px !important;
    padding-right: 36px !important;
  }
}
  .okw_main_category .pg_col_down > .pg_no,
  .okw_main_category .pagination {
    grid-column: 1;
    justify-self: start;
    max-width: 100%;
  }

  .okw_main_category .pagination {
    overflow-x: auto;
  }

  /* FAQ詳細 */
  .faq_qstInf_col {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    padding-bottom: 0.875rem;
  }

  .faq_dateNo {
    justify-content: flex-start;
    gap: 0.25rem 1rem;
  }

  .faq_qstCont_ttl {
    margin-top: 1.5rem;
    font-size: 1.25rem;
    line-height: 1.65;
  }

  .icoQ,
  .icoK,
  .icoA,
  .icoKA {
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: 0.75rem;
  }

  .icoQ::before,
  .icoK::before,
  .icoA::before,
  .icoKA::before {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1.25rem;
  }

  .faq_qstCont_col,
  .faq_ans_col,
  .wzd_qstCont_col,
  .wzd_slct_area {
    width: auto;
    margin-right: 0;
    margin-left: 0;
  }

  .faq_qstCont_col {
    margin-top: 1rem;
  }

  .faq_cate_col {
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem;
  }

  .faq_ans_bor,
  .faq_ans_ttl {
    margin-top: 2rem;
  }

  .faq_ans_col {
    margin-top: 1rem;
    padding-bottom: 2rem;
  }

  .faq_ansCont_txt {
    font-size: 1rem;
    line-height: 1.9;
    overflow-wrap: anywhere;
  }

  #faq_answer_contents table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  #faq_answer_contents iframe {
    width: 100%;
  }

  /* Info&News */
  .okw_parts_info_and_news > ul > li,
  .okw_parts_info_and_news .newsList > li {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.25rem;
    min-height: 4rem;
    padding: 0.875rem 2rem 0.875rem 0.25rem;
  }

  /* お問い合わせ・フォーム */
  .content,
  .HDcontent dl {
    grid-template-columns: minmax(0, 1fr);
  }

  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="tel"],
  input[type="url"],
  input[type="number"],
  select,
  textarea {
    width: 100%;
    font-size: 1rem;
  }

  .hdq_confirm_btn_c,
  .faq-pc-footer .faq-pc-footer__support-link {
    width: 100%;
    min-width: 0;
  }

  /* モーダル・フッター */
  #faq_tag_search_overlay .faq_tag_search_overlay_inner,
  .faq_tags_modal .faq_tags_modal_wrapper {
    width: calc(100% - 2rem);
    max-width: none;
    margin: 1rem auto;
    padding: 1.25rem;
  }

  .faq-pc-footer {
    margin-top: 5rem;
  }

  .faq-pc-footer__support {
    width: calc(100% - 2rem);
    margin-bottom: 3rem;
    padding: 1.5rem 1rem;
  }

  /* 印刷ページをスマートフォンで閲覧した場合 */
  body:not([id]) #okw_contents_inner > .faq_qstInf_col,
  body:not([id]) #okw_contents_inner > .faq_qstCont_ttl,
  body:not([id]) #okw_contents_inner > .faq_qstCont_col,
  body:not([id]) #okw_contents_inner > .faq_ans_ttl,
  body:not([id]) #okw_contents_inner > .faq_ans_col {
    width: calc(100% - 2rem);
    max-width: none;
  }

  body:not([id]) #okw_contents_inner > .faq_qstCont_ttl .icoQ,
  body:not([id]) #okw_contents_inner > .faq_ans_ttl .icoA {
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: 0.75rem;
  }

  body:not([id]) #okw_contents_inner > .faq_qstCont_ttl .icoQ::before,
  body:not([id]) #okw_contents_inner > .faq_ans_ttl .icoA::before {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1.25rem;
  }

  body:not([id]) #okw_contents_inner > .faq_qstCont_col,
  body:not([id]) #okw_contents_inner > .faq_ans_col {
    padding-left: 0;
  }
}

/* =======================================================
   SP：よく検索されるキーワードの余白調整
   ※後段の共通指定による上書きを防ぐため、末尾で指定
======================================================= */
@media screen and (max-width: 767px),
  screen and (max-device-width: 767px) {
  .okw_parts_faq_tag_search .faq_tag_search_attention_area {
    margin-top: 8px;
    padding: 8px 12px 10px;
  }

  .okw_parts_faq_tag_search
    .faq_tag_search_attention_area
    .faq_tags_area {
    gap: 6px;
    margin: 4px 0 0;
    padding: 0;
  }
}

/* =======================================================
   SP：タグ検索ポップアップを全画面表示
   ・ポップアップ全体をスクロール領域にする
   ・スクロール後も選択中タグを含む検索欄を上部に固定する
   ・ヘッダーと絞り込み候補はスクロールに伴って画面外へ移動する
======================================================= */
@media screen and (max-width: 767px),
  screen and (max-device-width: 767px) {
  #faq_tag_search_overlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff;
  }

  #faq_tag_search_overlay .faq_tag_search_overlay_inner {
    position: relative;
    width: 100% !important;
    max-width: none !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 16px 24px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box;
    background: #fff;
    border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  #faq_tag_search_overlay .faq_tag_search_header {
    position: static !important;
    min-height: 56px;
    gap: 12px;
    margin: 0 -16px;
    padding: 8px 16px;
    background: #fff;
    border-bottom: 1px solid #e3dfd8;
  }

  #faq_tag_search_overlay .faq_tag_search_title {
    min-width: 0;
    font-size: 14px;
    line-height: 1.5;
  }

  #faq_tag_search_overlay .faq_tag_search_close_button {
    flex: 0 0 auto;
    min-width: 48px;
    min-height: 44px;
    margin-left: auto !important;
  }

  #faq_tag_search_overlay .faq_tag_search_search_area {
    position: sticky;
    z-index: 10;
    top: 0;
    width: auto !important;
    margin: 0 -16px;
    padding: 10px 16px;
    box-sizing: border-box;
    background: #fff;
    border-bottom: 1px solid #e3dfd8;
    box-shadow: 0 4px 10px rgba(33, 33, 33, 0.08);
  }

  #faq_tag_search_overlay .faq_tag_search_text_input {
    width: 100% !important;
    min-height: 48px;
    margin: 0 !important;
    box-sizing: border-box;
  }

  #faq_tag_search_overlay .faq_tag_search_text_input .tagify {
    display: flex !important;
    flex: 1 1 auto;
    flex-wrap: wrap !important;
    align-content: flex-start;
    align-items: center;
    gap: 6px;
    min-width: 0;
    padding: 2px 0;
    max-height: 80px;
    overflow-x: hidden;
    overflow-y: auto;
  }

  #faq_tag_search_overlay .faq_tag_search_text_input .tagify__tag {
    position: relative;
    flex: 0 0 auto;
    max-width: 100%;
    min-height: 32px;
    margin: 0 !important;
    padding: 4px 28px 4px 10px;
    font-size: 13px;
    white-space: nowrap;
  }

  #faq_tag_search_overlay
    .faq_tag_search_text_input
    .tagify__tag
    > div {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
  }

  #faq_tag_search_overlay
    .faq_tag_search_text_input
    .tagify__tag-text {
    display: block;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #faq_tag_search_overlay .faq_tag_search_text_input .tagify__input {
    flex: 1 0 72px;
    min-width: 72px;
    margin: 0 !important;
    padding: 4px 2px !important;
    white-space: nowrap;
  }

  #faq_tag_search_overlay
    .faq_tag_search_text_input
    .tagify__tag__removeBtn {
    position: absolute !important;
    top: 50% !important;
    right: 8px !important;
    left: auto !important;
    width: 16px;
    height: 16px;
    margin: 0 !important;
    transform: translateY(-50%);
  }

  #faq_tag_search_overlay .faq_tag_search_tag_area {
    margin: 0;
    padding: 14px 0 8px;
  }

  #faq_tag_search_overlay .faq_tag_search_tag_area .faq_tags_area {
    gap: 6px;
    margin: 8px 0 0;
  }

  #faq_tag_search_overlay .faq_tag_search_result_area {
    margin: 0;
    padding: 0;
  }

  #faq_tag_search_overlay .faq_tag_search_search,
  #faq_tag_search_overlay .faq_tag_search_result_area,
  #faq_tag_search_overlay .faq_tag_search_area,
  #faq_tag_search_overlay .faq_tag_search_result_container,
  #faq_tag_search_overlay .faq_tag_search_result,
  #faq_tag_search_overlay .faq_tag_search_content {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  #faq_tag_search_overlay .faq_tag_search_content {
    margin: 0;
  }
}

/* =======================================================
   SP：タグ検索から開くFAQ詳細モーダル
   ・詳細を全画面表示し、本文の横幅を確保する
   ・FAQ番号と補足情報を縦方向に整理する
======================================================= */
@media screen and (max-width: 767px),
  screen and (max-device-width: 767px) {
  .faq_tags_modal {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
  }

  .faq_tags_modal .faq_tags_modal_wrapper {
    position: relative;
    width: 100% !important;
    max-width: none !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 16px 32px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box;
    background: #fff;
    border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  /* 縦スクロール時に内側の領域が横方向へ動くのを防ぐ */
  .faq_tags_modal .faq_tags_modal_scroll_area {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
    overflow-x: hidden !important;
    overscroll-behavior-x: none;
    touch-action: pan-y pinch-zoom;
  }

  .faq_tags_modal .faq_tag_search_header {
    position: sticky !important;
    z-index: 10;
    top: 0;
    width: auto !important;
    min-height: 56px;
    margin: 0 -16px;
    padding: 6px 16px !important;
    background: #fff;
    border-bottom: 1px solid #e3dfd8;
  }

  .faq_tags_modal .faq_tag_search_close_button {
    min-width: 72px;
    min-height: 44px;
    margin-left: auto !important;
  }

  .faq_tags_modal .faq_tags_modal_content {
    margin: 0;
    padding: 0 !important;
  }

  .faq_tags_modal .title_wrapper {
    display: block;
    margin: 0;
    padding: 20px 0 16px;
  }

  .faq_tags_modal .title_wrapper--left {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    width: 100%;
  }

  .faq_tags_modal .question_icon,
  .faq_tags_modal .answer_icon,
  .faq_tags_modal .question_icon::before,
  .faq_tags_modal .answer_icon::before {
    flex-basis: 40px;
    width: 40px;
    min-width: 40px;
    height: 40px;
    font-size: 18px;
  }

  .faq_tags_modal .faq_title {
    padding-top: 2px;
    font-size: 18px;
    line-height: 1.55;
  }

  .faq_tags_modal .faq_no {
    display: block;
    margin: 6px 0 0 52px;
    font-size: 12px;
    line-height: 1.5;
    white-space: normal;
  }

  .faq_tags_modal .faq_info {
    display: block;
    margin: 16px 0 0;
    padding: 12px;
    font-size: 13px;
    line-height: 1.6;
    border: 0;
    border-radius: 6px;
  }

  .faq_tags_modal .faq_info_left {
    display: grid;
    gap: 4px;
    width: 100%;
  }

  .faq_tags_modal .faq_info_right,
  .faq_tags_modal .faq_print {
    display: none !important;
  }

  .faq_tags_modal .answer_data {
    padding: 24px 0 0;
  }

  .faq_tags_modal .answer_data > .answer_icon {
    flex-basis: 40px !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    margin: 0 12px 0 0 !important;
  }

  .faq_tags_modal .answer_data > .content_wrapper {
    padding: 0 !important;
    font-size: 16px;
    line-height: 1.8;
  }

  .faq_tags_modal .faq_tag_modal_close_btn_wrapper {
    margin: 32px 0 0;
    padding: 0 0 16px;
  }

  .faq_tags_modal .faq_tag_modal_close_btn {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding: 10px 16px;
  }
}

/* =======================================================
   SP：通常のFAQ詳細ページ
   タグ検索内のFAQ詳細モーダルに視覚構造を揃える
======================================================= */
@media screen and (max-width: 767px),
  screen and (max-device-width: 767px) {
  #okw_contents_base
    #okw_contents_inner
    > .colArea
    > .okw_main_faq {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    padding: 20px 16px 32px;
    box-sizing: border-box;
    background: #fff;
    border-radius: 0;
    box-shadow: none;
  }

  #okw_contents_base .okw_main_faq .faq_qstInf_col {
    display: contents;
  }

  #okw_contents_base .okw_main_faq .siteLink {
    order: 1;
    width: 100%;
    margin: 0 0 20px;
    padding: 0;
  }

  #okw_contents_base .okw_main_faq .siteLink .preLink {
    width: 100%;
    margin: 0;
  }

  #okw_contents_base .okw_main_faq .siteLink .preLink a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 104px;
    min-height: 44px;
    padding: 8px 16px;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    background: #fff;
    border: 1px solid #c9c4bc;
    border-radius: 8px;
  }

  #okw_contents_base .okw_main_faq .siteLink .preLink a::before {
    margin-right: 8px;
    font-size: 16px;
    line-height: 1;
    content: "←";
  }

  #okw_contents_base .okw_main_faq .mark_area {
    display: none;
  }

  #okw_contents_base .okw_main_faq .faq_qstCont_ttl {
    order: 2;
    margin: 0;
    padding: 0 0 16px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.55;
    border-bottom: 1px solid #e3dfd8;
  }

  #okw_contents_base .okw_main_faq .faq_qstCont_ttl .icoQ {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    padding: 0;
    background: none;
  }

  #okw_contents_base .okw_main_faq .faq_qstCont_ttl .icoQ::before {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--faq-icon-q-brand) center / contain no-repeat;
    border-radius: 50%;
    content: "";
  }

  #okw_contents_base .okw_main_faq .faq_qstCont_col {
    order: 3;
    width: 100%;
    margin: 16px 0 0;
    padding: 0;
  }

  #okw_contents_base .okw_main_faq .faq_cate_col {
    display: block;
    margin: 0;
    padding: 12px 12px 6px;
    color: #666;
    font-size: 13px;
    line-height: 1.6;
    background: #f4f5f6;
    border: 0;
    border-radius: 6px 6px 0 0;
  }

  #okw_contents_base .okw_main_faq .faq_cate_col dt,
  #okw_contents_base .okw_main_faq .faq_cate_col dd {
    display: inline;
    margin: 0;
    padding: 0;
    float: none;
  }

  #okw_contents_base .okw_main_faq .faq_cate_col ul,
  #okw_contents_base .okw_main_faq .faq_cate_col li {
    display: inline;
    margin: 0;
    padding: 0;
  }

  #okw_contents_base .okw_main_faq .faq_cate_col a {
    color: #555;
    text-decoration: none;
  }

  #okw_contents_base .okw_main_faq .faq_dateNo {
    order: 4;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 4px 16px;
    width: 100%;
    margin: 0;
    padding: 6px 12px 12px;
    box-sizing: border-box;
    color: #666;
    font-size: 13px;
    line-height: 1.6;
    background: #f4f5f6;
    border-radius: 0 0 6px 6px;
  }

  #okw_contents_base .okw_main_faq .faq_dateNo li {
    margin: 0;
    padding: 0;
  }

  #okw_contents_base .okw_main_faq .faq_print {
    display: none !important;
  }

  #okw_contents_base .okw_main_faq .faq_ans_bor,
  #okw_contents_base .okw_main_faq .faq_ans_ttl {
    order: 5;
    margin: 24px 0 0;
    padding: 0;
    font-size: 18px;
    line-height: 1.5;
    background: none;
  }

  #okw_contents_base .okw_main_faq .faq_ans_ttl .icoA {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 0;
    background: none;
  }

  #okw_contents_base .okw_main_faq .faq_ans_ttl .icoA::before {
    display: block;
    width: 40px;
    height: 40px;
    background: var(--faq-icon-a-warm) center / contain no-repeat;
    border-radius: 50%;
    content: "";
  }

  #okw_contents_base .okw_main_faq .faq_ans_col {
    order: 6;
    width: 100%;
    margin: 16px 0 0;
    padding: 0 0 32px;
    border-bottom: 0;
  }

  #okw_contents_base .okw_main_faq .faq_ansCont_txt {
    margin: 0;
    font-size: 16px;
    line-height: 1.8;
    overflow-wrap: anywhere;
  }
}

/* =======================================================
   SP：カテゴリー内のFAQ一覧
   FAQ詳細と同じQ・A・補足情報の視覚構造に揃える
======================================================= */
@media screen and (max-width: 767px),
  screen and (max-device-width: 767px) {
  #okw_contents_base .okw_main_category .search_list {
    display: grid;
    gap: 12px;
    margin: 24px 0 0;
  }

  #okw_contents_base .okw_main_category .search_list_inner,
  #okw_contents_base .okw_main_category .search_list_bg1,
  #okw_contents_base .okw_main_category .search_list_bg2 {
    margin: 0;
    padding: 20px 16px;
    background: #fff;
    border: 1px solid #e3dfd8;
    border-radius: 8px;
  }

  #okw_contents_base .okw_main_category .search_list_inner::after,
  #okw_contents_base .okw_main_category .search_list_bg1::after,
  #okw_contents_base .okw_main_category .search_list_bg2::after {
    display: none;
    content: none;
  }

  #okw_contents_base .okw_main_category .search_qattl,
  #okw_contents_base .okw_main_category .icoQ_sml {
    position: relative;
    display: block;
    min-height: 40px;
    margin: 0;
    padding: 4px 0 0 52px;
    color: #222;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.55;
    background: none;
  }

  #okw_contents_base .okw_main_category .search_qattl::before,
  #okw_contents_base .okw_main_category .icoQ_sml::before {
    position: absolute;
    top: 0;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0;
    background: var(--faq-icon-q-red) center / contain no-repeat;
    border-radius: 50%;
    content: "";
  }

  #okw_contents_base .okw_main_category .search_qattl a,
  #okw_contents_base .okw_main_category .icoQ_sml a {
    color: #222;
    text-decoration: none;
  }

  #okw_contents_base .okw_main_category p.icoA_sml {
    position: relative;
    display: block;
    min-height: 40px;
    margin: 20px 0 0;
    padding: 2px 0 0 52px;
    overflow: visible;
    color: #333;
    font-size: 16px;
    line-height: 1.8;
    overflow-wrap: anywhere;
    background: none;
  }

  /* JavaScriptで分離した回答文だけを最大3行で表示 */
  #okw_contents_base
    .okw_main_category
    p.icoA_sml
    > .faq-answer-preview__text {
    display: -webkit-box;
    max-width: 100%;
    overflow: hidden;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  #okw_contents_base .okw_main_category p.icoA_sml::before {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 40px;
    height: 40px;
    margin: 0;
    background: var(--faq-icon-a-warm) center / contain no-repeat;
    border-radius: 50%;
    content: "";
  }

  #okw_contents_base .okw_main_category .faq_list_show_detail {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin: 16px 0 0;
    padding: 8px 36px 8px 16px;
    box-sizing: border-box;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    background: #fff;
    border: 1px solid #c9c4bc;
    border-radius: 8px;
  }

  #okw_contents_base .okw_main_category .faq_list_show_detail::after {
    margin-left: 10px;
    color: #666;
    font-size: 18px;
    line-height: 1;
    content: "›";
  }

  #okw_contents_base .okw_main_category .attribute_list:empty {
    display: none;
  }

  #okw_contents_base .okw_main_category .search_date_area {
    margin: 16px 0 0;
    padding: 12px;
    color: #666;
    background: #f4f5f6;
    border-radius: 6px;
  }

  #okw_contents_base .okw_main_category .search_dateNo {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    margin: 0;
    padding: 0;
  }

  #okw_contents_base .okw_main_category .search_dateNo > li {
    margin: 0;
    padding: 0;
    color: #666;
    font-size: 13px;
    line-height: 1.6;
  }

  #okw_contents_base
    .okw_main_category
    .search_dateNo
    > .category_name {
    flex-basis: 100%;
  }

  #okw_contents_base
    .okw_main_category
    .search_dateNo
    > .mark_area:empty {
    display: none;
  }
}

/* =======================================================
   SP：タグ検索結果の質問タイトルを最大2行で表示
======================================================= */
@media screen and (max-width: 767px),
       screen and (max-device-width: 767px) {
  #faq_tag_search_overlay
    .faq_tag_search_link_texts
    .faq_tag_search_faq_title {
    display: -webkit-box !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
  }
}

/* =======================================================
   PC・SP共通：タグ検索結果のカテゴリー階層表示
   画面表示・コピー・読み上げで同じテキストを使用する
======================================================= */
#faq_tag_search_overlay .faq_tag_search_category {
  display: block;
  margin-top: 2px;
  color: #666;
  font-size: 13px;
  line-height: 1.6;
}

#faq_tag_search_overlay
  .faq_tag_search_category
  > span[data-tooltip] {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* =======================================================
   PC・SP共通：関連FAQが空の場合は外側の領域ごと非表示
   改行・空白文字だけがある場合も空として扱う
======================================================= */
.colArea:has(> .okw_parts_faq_relations:not(:has(*))) {
  display: none;
}
