@charset "UTF-8";
/*============================
基本スタイル設定
============================*/
/* ボタンサイズ
　　@include btnSize(s);
　　引数のs,m,lでサイズを選択 */
/* ユーザーアイコン（[class*="statusBorder_"]を付与したimgタグにinclude）
　　@include profIconSize(s);
　　引数のs,m,lでサイズを選択
  */
/* 会員区分アイコンのサイズ(.icon_statusにinclude)
　　@include statusIconSize(s);
　　引数のs,m,lでサイズを選択 */
.faq_page {
  scroll-behavior: smooth;
}

.faq_page .content_area {
  max-width: calc(960px + var(--padding-inline) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inline);
  padding-block: 0 80px;
}

.faq_page section[id] {
  scroll-margin-top: 180px;
}

.faq_page h2 {
  scroll-margin-top: 180px;
}

/* ===== アンカーナビ ===== */
.faq_anchor_nav {
  margin-bottom: 24px;
  padding: 24px;
  background: var(--white);
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.faq_anchor_list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  list-style: none;
}
.faq_anchor_list a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  background: var(--beige);
  color: var(--black2);
  text-decoration: none;
  border-radius: 50px;
  font-size: 0.875rem;
  font-weight: 700;
  transition-property: background-color;
  transition-duration: 0.2s;
}
.faq_anchor_list a::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-top: -3px;
}

/* ===== 検索ボックス ===== */
.faq_search {
  margin-bottom: 48px;
}

.faq_search_inner {
  position: relative;
  max-width: 640px;
  margin: 0 auto;
}
.faq_search_inner::before {
  content: "";
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23aaa' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat center/contain;
}

.faq_search_input {
  width: 100%;
  padding: 10px 14px 10px 38px;
  border: 1.5px solid var(--line);
  border-radius: 24px;
  font-size: 1rem;
  box-sizing: border-box;
  outline: none;
  background: var(--base01);
  transition-property: border-color;
  transition-duration: 0.2s;
}
.faq_search_input:focus {
  border-color: var(--main01);
  background: var(--white);
}
.faq_search_input::-webkit-search-cancel-button {
  cursor: pointer;
}

.faq_search_meta {
  font-size: 0.75rem;
  color: var(--gray);
  text-align: center;
  margin-top: 6px;
  min-height: 18px;
}

.faq_search_empty {
  text-align: center;
  padding: 56px 16px;
  color: var(--gray);
  font-size: 0.875rem;
}

/* ===== FAQカテゴリ ===== */
.faq_category {
  margin-bottom: 48px;
}
.faq_category.is-hidden {
  display: none !important;
}

.faq_category_title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text01);
  padding-bottom: 12px;
  margin-bottom: 20px;
  border-bottom: 3px solid var(--main01);
  display: flex;
  align-items: center;
  gap: 10px;
}
.faq_category_title::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 24px;
  background: var(--main01);
  border-radius: 3px;
  flex-shrink: 0;
}

/* ===== FAQアイテム（アコーディオン） ===== */
.faq_items {
  counter-reset: faq-counter;
}

.faq_item {
  border-bottom: 1px solid var(--line);
  counter-increment: faq-counter;
  scroll-margin-top: 180px;
}
.faq_item:target, .faq_item.is-target {
  background: var(--lightPink);
}
.faq_item.is-hidden {
  display: none !important;
}
.faq_item summary {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 48px 20px 16px;
  cursor: pointer;
  font-weight: 700;
  font-size: 1rem;
  list-style: none;
  position: relative;
  transition-property: background-color;
  transition-duration: 0.2s;
}
.faq_item summary::-webkit-details-marker {
  display: none;
}
.faq_item summary::before {
  content: "Q" counter(faq-counter);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  background: var(--main01);
  color: var(--white);
  border-radius: 50%;
  font-size: 0.9375rem;
  font-weight: 700;
  flex-shrink: 0;
}
.faq_item summary::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--gray);
  border-bottom: 2px solid var(--gray);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.3s;
}
.faq_item[open] summary::after {
  transform: translateY(-30%) rotate(-135deg);
}

.faq_item_answer {
  padding: 10px 16px 20px 68px;
  color: var(--black2);
  line-height: 1.9;
  animation: faqFadeIn 0.3s ease;
}
.faq_item_answer a {
  color: var(--main01);
  text-decoration: underline;
}

@keyframes faqFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ===== 検索ハイライト ===== */
mark.hl {
  background: #ffe566;
  color: inherit;
  border-radius: 2px;
  padding: 0 1px;
}

/* ===== SP対応 ===== */

@media (width <= 768px){
  .faq_page section[id] {
    scroll-margin-top: 170px;
  }
  .faq_page h2 {
    scroll-margin-top: 170px;
  }
  .faq_item {
    scroll-margin-top: 170px;
  }
  .faq_item summary {
    padding: 20px 40px 16px 10px;
  }
  .faq_item_answer {
    padding: 10px 16px 20px 60px;
  }
}

@media (any-hover: hover){
  .faq_anchor_list a:hover {
    background: var(--main01);
    color: var(--white);
  }
  .faq_item summary:hover {
    background: var(--lightPink);
  }
  .faq_item_answer a:hover {
    opacity: 0.8;
  }
}
