/* GPU LP カスタムスタイル */

html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
    line-height: 1.8;
}

/* FAQアコーディオン */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding 0.35s ease;
}

.faq-item.open .faq-answer {
    max-height: 600px;
}

.faq-item.open .faq-chevron {
    transform: rotate(180deg);
}

.faq-chevron {
    transition: transform 0.3s ease;
}

/* スクロールアニメーション */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* 比較テーブル横スクロール（SP） */
.table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ヘッダーシャドウ（スクロール後） */
#header.scrolled {
    box-shadow: 0 1px 12px rgba(0, 0, 0, 0.08);
}

/* モバイル固定CTAのpadding調整 */
@media (max-width: 767px) {
    body {
        padding-bottom: 72px;
    }
}

/* ステップフロー番号 */
.step-number {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ステップ縦線 */
.step-connector::before {
    content: '';
    position: absolute;
    left: 1.2rem;
    top: 2.5rem;
    bottom: -1rem;
    width: 1px;
    background-color: #e2e8f0;
}
