@charset "UTF-8";

/* =========================================
   FAQ Professional Styling
   Theme: Elegant, Minimal, High-End
========================================= */

/* --- Layout Structure --- */
.faq-content {
    padding-top: 6rem;
    padding-bottom: 8rem;
    background-color: var(--light-bg); /* 背景色をわずかにグレーにすることで白のカードを際立たせる */
}

/* 読みやすさを極限まで高めるための最大幅制限 */
.faq-content .container-xxl {
    max-width: 960px; 
}

/* --- Category Title Design --- */
.faq-category {
    margin-bottom: 6rem;
}

.category-title {
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: #333;
    padding-bottom: 1.5rem;
    margin-bottom: 2.5rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08); /* 線の存在感を消しつつ区切る */
    position: relative;
    display: flex;
    align-items: center;
}

/* アクセントのゴールドライン（左側ではなく下線の一部として配置しても美しい） */
.category-title::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 60px;
    height: 3px;
    background-color: var(--primary-color);
}


/* --- Card Component: The "Letter" Feel --- */
.faq-card {
    background: #fff;
    /* 枠線は限りなく薄く */
    border: 1px solid rgba(0, 0, 0, 0.03); 
    /* 多重影：ふわりと浮いているが、接地感もある */
    box-shadow: 
        0 2px 4px rgba(0, 0, 0, 0.02),
        0 10px 30px rgba(0, 0, 0, 0.04);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); /* 慣性のある滑らかな動き */
    position: relative;
    overflow: hidden;
}

/* Hover Effect: 持ち上がるのではなく、光が差すイメージ */
.faq-card:hover {
    transform: translateY(-4px);
    box-shadow: 
        0 4px 8px rgba(0, 0, 0, 0.03),
        0 20px 40px rgba(0, 0, 0, 0.08);
    border-color: rgba(226, 180, 53, 0.3); /* ゴールドが微かに滲む */
}

/* Icon Wrapper: アイコンの整列を保証する */
.icon-wrapper {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(226, 180, 53, 0.1); /* ゴールドの薄い背景 */
    color: var(--primary-color);
    border-radius: 50%; /* 丸くすることで柔らかさを出す */
    font-size: 1.1rem;
}

.faq-question {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.5; /* 日本語の美しさを保つ行間 */
    color: #222;
    margin: 0;
    padding-top: 0.2rem; /* アイコンとの視覚的な中心合わせ */
    letter-spacing: 0.05em;
}


/* --- Answer Body Area --- */
.faq-body {
    padding-left: 4rem; /* アイコンの分だけインデントを下げる */
}

.faq-body p {
    font-size: 1.14rem;
    color: #555; /* 真っ黒にしない */
    line-height: 2.0; /* 読む速度を落とさせる、ゆったりとした行間 */
    margin-bottom: 1rem;
    text-align: justify; /* 両端揃えで雑誌のような美しさ */
}

.faq-body p:last-child {
    margin-bottom: 0;
}


/* --- List Styling inside FAQ --- */
.faq-list {
    margin-top: 1rem;
    padding-left: 0;
    list-style: none;
}

.faq-list li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.5rem;
    line-height: 1.8;
    color: #666;
}

/* リストマーカーをゴールドのドットに */
.faq-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.7em;
    width: 6px;
    height: 6px;
    background-color: var(--primary-color);
    border-radius: 50%;
}

.hero-faq {
  position: relative;
  height: 70vh; /* ここで高さを設定 (50vh または 70vh) */
  min-height: 400px; /* 最小高さを確保 */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; /* 子要素のfixedがはみ出さないように */
  z-index: 1; /* 他のコンテンツより手前に */
  color: #fff; /* テキスト色を白に */
}



/* --- Mobile Optimization --- */
@media (max-width: 768px) {
    .faq-content {
        padding-top: 4rem;
        padding-bottom: 6rem;
    }
    
    .faq-card {
        padding: 2rem 1.5rem; /* スマホでは余白を詰めすぎない程度に調整 */
    }

    .faq-header {
        gap: 1rem;
    }
    
    .faq-body {
        padding-left: 0; /* スマホではインデントを解除してスペース確保 */
        margin-top: 1rem;
    }
    
    .faq-question {
        font-size: 1.1rem;
    }
}


.faq-card {
  cursor: pointer;
}

.faq-body {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transform: translateY(-4px);
  transition:
    max-height .45s cubic-bezier(.4,0,.2,1),
    opacity .35s ease,
    transform .35s ease;
}

.faq-card.active .faq-body {
  max-height: 1000px; /* 十分大きければOK */
  opacity: 1;
  transform: translateY(0);
}

/* --- Question Header Area --- */
.faq-header {
    display: flex;
    align-items: flex-start; /* アイコンとテキストの上端を揃える */
    gap: 1rem;
    transition: transform .3s ease;
}

.faq-card.active .faq-header i {
  transform: rotate(180deg);
}

