/**
 * 業者詳細ページスタイル
 * Figmaデザイン準拠版
 */

/* ========================================
 * SWELLスタイルリセット（強制リセット）
 * ======================================== */
html.single-factor,
body.single-factor {
    margin: 0 !important;
    padding: 0 !important;
}

body.single-factor #body_wrap,
body.single-factor #content,
body.single-factor .l-content,
body.single-factor .l-container,
body.single-factor .l-mainContent,
body.single-factor .l-article,
body.single-factor .post_content,
body.single-factor main,
body.single-factor article,
body.single-factor .l-scrollObserver,
body.single-factor .l-fixHeader,
body.single-factor .c-mvBtn,
body.single-factor #wrapper,
body.single-factor .l-header + * {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* SWELL固有の余白をリセット */
body.single-factor .l-mainContent__inner,
body.single-factor .l-mainContent > *,
body.single-factor #main_content,
body.single-factor .l-header__inner,
body.single-factor .c-mvBtn__btn {
    margin: 0 !important;
    padding: 0 !important;
}

/* ヘッダー下の余白を削除 */
body.single-factor .l-header {
    margin-bottom: 0 !important;
}

body.single-factor .l-header + .factor-single,
body.single-factor .l-header + main,
body.single-factor .p-breadcrumb + .factor-single {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* パンくずリストの余白を削除 */
body.single-factor .p-breadcrumb {
    margin: 0 !important;
    padding: 0 !important;
}

/* パンくず下の余白対策（single-factor限定） */
body.single-factor #content.l-content.l-container {
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-left: 0 !important;
}


body.single-factor #content.l-content.l-container {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

body.single-factor .factor-single {
    margin: 0 !important;
    padding: 0 !important;
}

/* SWELLのデフォルトフッターを非表示 */
body.single-factor .l-footer,
body.single-factor #footer,
body.single-factor .p-footer {
    display: none !important;
}

/* ブロックエディタの目次を非表示 */
body.single-factor .p-toc,
body.single-factor .p-toc.-double,
body.single-factor .swell-toc,
body.single-factor .wp-block-swell-toc,
body.single-factor [class*="p-toc"] {
    display: none !important;
}


/* bodyの直後の要素（SWELL固有）のmargin/border/paddingを削除 */
body.single-factor > *:first-child,
body.single-factor #wrapper,
body.single-factor #body_wrap > *:first-child {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

/* ========================================
 * 変数定義（Figma準拠）
 * ======================================== */
:root {
    --factor-primary: #006dff;
    --factor-primary-bg: #f1f5f9;
    --factor-orange: #ff8a00;
    --factor-text: #1f2937;
    --factor-text-secondary: #374151;
    --factor-text-gray: #6b7280;
    --factor-border: #e6e6e6;
    --factor-bg-gray: #f3f4f6;
    --factor-bg-content: #f1f5f9;
    --factor-bg-hero: #e6f4f8;
    --factor-white: #fefefe;
    --factor-card-width: 59.5rem;
    --factor-star-color: #ffc107;
}

/* ========================================
 * メインコンテンツ（フルワイド）
 * ======================================== */
.factor-single {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    background-color: #ffffff;
}


/* ========================================
 * ヒーローセクション（Figmaデザイン準拠）
 * ======================================== */
.factor-hero {
    width: 100%;
    background-color: #e0f0ff;
    padding: 3rem 1.25rem;
}

.factor-hero__container {
    max-width: var(--factor-card-width);
    margin: 0 auto;
    background-color: #ffffff;
    border-radius: 0.625rem;
    padding: 0.625rem 3.125rem;
}

.factor-hero__main {
    display: flex;
    gap: 3.125rem;
    align-items: center;
}

.factor-hero__logo {
    flex-shrink: 0;
    width: 12.5rem;
    height: 12.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin: 0;
}

.factor-hero__logo-img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* SP専用ロゴ（PCでは非表示） */
.factor-hero__logo--sp {
    display: none;
}

/* middleラッパー（PCでは非表示：ratingはそのまま表示） */
.factor-hero__middle {
    display: contents;
}

.factor-hero__logo-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--factor-bg-gray);
    color: var(--factor-text-gray);
    font-size: 0.875rem;
    border-radius: 0.5rem;
}

.factor-hero__info {
    flex: 1;
    min-width: 0;
}

.factor-hero__header {
    padding-top: 1.25rem;
}

.factor-hero__title {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 2.5rem;
    font-weight: bold;
    color: #000000;
    margin: 0;
    line-height: 1.2;
}

.factor-hero__subtitle {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 0.875rem;
    font-weight: bold;
    color: #000000;
    margin: 0.1875rem 0 0;
    line-height: 1.4;
}

.factor-hero__rating {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 0.3125rem 0;
}

.factor-hero__stars {
    display: flex;
    align-items: center;
    gap: 0.3125rem;
}

.factor-hero__star {
    font-size: 1.25rem;
    line-height: 1;
}

.factor-hero__star--filled {
    color: var(--factor-star-color);
}

.factor-hero__star--empty {
    color: #ddd;
}

.factor-hero__rating-value {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-weight: bold;
    font-size: 0.875rem;
    color: #ef4444;
    margin-left: 0.3125rem;
}

.factor-hero__review-count {
    display: flex;
    align-items: center;
    gap: 0.3125rem;
    font-size: 0.875rem;
}

.factor-hero__review-link {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-weight: bold;
    font-size: 0.875rem;
    color: #2563eb;
    text-decoration: underline;
}

.factor-hero__review-link:hover {
    text-decoration: none;
}

.factor-hero__review-icon {
    display: none;
}

/* 主要指標（4つの数値） */
.factor-hero__metrics {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 0.625rem 0;
    margin-bottom: 0;
}

.factor-hero__metric {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    padding: 1rem 0;
}

.factor-hero__metric-label-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.125rem;
}

.factor-hero__metric-icon {
    display: none;
}

.factor-hero__metric-label {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #050505;
}

.factor-hero__metric-value {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.25rem;
    font-weight: bold;
    color: #000000;
}

.factor-hero__metric-divider {
    width: 1px;
    height: 3.125rem;
    background-color: var(--factor-border);
    flex-shrink: 0;
}

/* CTAボタンエリア（下部に横並び） */
.factor-hero__actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
    padding: 0.625rem 0 1.25rem;
}

.factor-hero__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 2rem;
    border-radius: 0.5rem;
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.25rem;
    text-decoration: none;
    cursor: pointer;
    transition: opacity 0.2s ease;
    white-space: nowrap;
}

.factor-hero__btn:hover {
    opacity: 0.85;
}

.factor-hero__btn--list {
    background-color: #ffffff;
    color: var(--factor-primary);
    border: 1px solid var(--factor-primary);
    font-weight: 500;
    display: none; /* TODO: リスト機能実装後に削除 */
}

.factor-hero__btn--cta {
    background-color: var(--factor-orange);
    color: #ffffff;
    border: none;
    font-weight: bold;
}

/* ========================================
 * タブナビゲーション
 * ======================================== */
.factor-tabs-wrap {
    position: sticky;
    top: 0;
    z-index: 50;
}

.factor-tabs {
    width: 100%;
    background-color: #ffffff;
    border-bottom: 1px solid var(--factor-border);
}

.factor-tabs__inner {
    max-width: var(--factor-card-width);
    margin: 0 auto;
    padding: 0 1.25rem;
}

.factor-tabs__list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

.factor-tabs__item {
    margin: 0;
}

.factor-tabs__link {
    display: block;
    padding: 1rem 2rem;
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: bold;
    color: var(--factor-text-gray);
    text-decoration: none;
    border-bottom: 3px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}

.factor-tabs__link:hover {
    color: var(--factor-primary);
}

.factor-tabs__link.is-active {
    color: var(--factor-primary);
    border-bottom-color: var(--factor-primary);
}

/* ========================================
 * 追従ボタンバー
 * ======================================== */
.factor-follow-bar {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    justify-content: center;
    align-items: center;
    padding: 1.25rem;
    background: rgba(107, 114, 128, 0.5);
    z-index: 50;
}

.factor-follow-bar.is-visible {
    display: flex;
}

.factor-follow-bar__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: var(--factor-orange);
    color: #ffffff;
    padding: 1rem 2rem;
    border-radius: 0.5rem;
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.25rem;
    font-weight: bold;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity 0.2s ease;
}

.factor-follow-bar__btn:hover {
    opacity: 0.85;
    color: #ffffff;
}

.factor-follow-bar__icon {
    flex-shrink: 0;
}

/* ========================================
 * タブコンテンツ（グレー背景）
 * ======================================== */
.factor-tab-contents {
    width: 100%;
    background-color: var(--factor-bg-content);
    padding: 2.5rem 1.25rem;
}

.factor-tab-content {
    display: none;
}

.factor-tab-content.is-active {
    display: block;
}

/* ========================================
 * 基本情報タブ
 * ======================================== */
.factor-basic {
    max-width: var(--factor-card-width);
    margin: 0 auto;
}

/* タブタイトル（h2） */
.factor-tab-title {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--factor-text);
    margin: 0 0 1.5rem;
    text-align: center;
}

/* カードコンテナ */
.factor-cards {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* カード共通 */
.factor-card {
    background-color: #ffffff;
    border-radius: 0.75rem;
    padding: 1.5625rem 3.125rem;
    overflow: hidden;
    width: 100%;
}

.factor-card--appeal {
    padding: 1.5625rem 3.125rem;
    display: flex;
    justify-content: center;
}

.factor-card--summary {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.factor-card--summary .factor-card__appeal-image {
    margin: 0 auto;
}

.factor-card--info {
    border-radius: 0.625rem;
}

.factor-card__appeal-image {
    width: 37.5rem;
    max-width: 100%;
}

.factor-card__appeal-image img {
    width: 100%;
    height: auto;
    display: block;
}

/* カードタイトル */
.factor-card__title {
    font-family: "Yu Gothic", "YuGothic", sans-serif !important;
    font-size: 2rem !important;
    font-weight: bold !important;
    color: #1f2937 !important;
    margin: 0 0 1.25rem !important;
    line-height: normal !important;
}

/* カードテキスト */
.factor-card__text {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.8;
    color: var(--factor-text-secondary);
    margin: 0;
}

/* カード内コンテンツ（ブロックエディタ） */
.factor-card__content {
    padding: 0 1.5rem;
}

.factor-card__content h2 {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--factor-text);
    margin: 0 0 0.3125rem;
}

.factor-card__content p {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    color: #000000;
    margin: 0 0 1rem;
}

/* ========================================
 * 基本情報テーブル（Figmaデザイン準拠・固定幅）
 * ======================================== */
.factor-table {
    width: 53.25rem;
    max-width: 100%;
}

.factor-table__row {
    display: flex;
}

.factor-table__row--full {
    width: 53.25rem;
}

.factor-table__row--half {
    width: 53.25rem;
    display: flex;
    flex-wrap: nowrap;
}

.factor-table__pair {
    display: flex;
    width: 26.625rem;
}

.factor-table__header {
    flex-shrink: 0;
    width: 8.875rem;
    min-height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background-color: #f3f4f6;
    border: 1px solid #e6e6e6;
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    color: #000000;
    box-sizing: border-box;
    margin-top: 0;
    margin-left: 0;
}

.factor-table__header--tl {
    border-top-left-radius: 0.625rem;
}

.factor-table__header--bl {
    border-bottom-left-radius: 0.625rem;
}

.factor-table__cell {
    min-height: 3rem;
    display: flex;
    align-items: center;
    padding: 1rem 1.875rem;
    border: 1px solid #e6e6e6;
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    color: #000000;
    box-sizing: border-box;
    margin-top: 0;
    margin-left: 0;
}

.factor-table__cell--tr {
    border-top-right-radius: 0.625rem;
}

.factor-table__cell--br {
    border-bottom-right-radius: 0.625rem;
}

/* PC/SP 表示切替（対応債権・その他の条件の改行制御） */
.factor-table__text--sp {
    display: none;
}

/* 二重線を防ぐため、行・列の境界は内側を消す */
.factor-table__row:not(:first-child) .factor-table__header,
.factor-table__row:not(:first-child) .factor-table__cell {
    border-top: 0;
}

.factor-table__row .factor-table__header + .factor-table__cell {
    border-left: 0;
}

/* フル幅行（ヘッダー142px + セル710px = 852px） */
.factor-table__row--full .factor-table__cell {
    width: 44.375rem;
    flex: none;
}

/* ハーフ幅行（142px + 284px + 142px + 284px = 852px） */
.factor-table__row--half .factor-table__header {
    width: 8.875rem;
}

.factor-table__row--half .factor-table__cell {
    width: 17.75rem;
    flex: none;
}

/* ========================================
 * タグ（対応債権・詳細条件）
 * ======================================== */
.factor-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3125rem;
    padding: 0;
}

.factor-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1.125rem;
    border-radius: 0.625rem;
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    box-sizing: border-box;
    min-width: 10.25rem;
}

/* PCで5行目と6行目の間に改行を挿入 */
.factor-tags__break {
    width: 100%;
    height: 0;
    overflow: hidden;
}

/* アクティブ（チェック済み） */
.factor-tag--active {
    background-color: var(--factor-primary-bg);
    border: 1px solid var(--factor-primary);
    color: var(--factor-primary);
}

/* 非アクティブ（未チェック） */
.factor-tag--inactive {
    background-color: var(--factor-bg-gray);
    border: 1px solid var(--factor-border);
    color: var(--factor-text-gray);
}

/* ========================================
 * 口コミタブ（Figma準拠）
 * ======================================== */
.factor-review {
    max-width: var(--factor-card-width);
    margin: 0 auto;
}

/* 口コミカード内レイアウト（flex column gap 20px） */
.factor-review-wrap {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* カードタイトルのmarginをgapに任せる */
.factor-review-wrap > .factor-card__title {
    margin-bottom: 0 !important;
}

/* --- 総合評価エリア（Figma: bg #fff6d4, p 20px, gap 24px, rounded 8px） --- */
.factor-review-overall {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    background-color: #fff6d4;
    border-radius: 0.5rem;
    padding: 1.25rem;
}

/* スコアエリア（4.2 / 5.0 横並び・ベースライン揃え） */
.factor-review-overall__score-area {
    display: flex;
    align-items: flex-end;
    gap: 0.25rem;
    flex-shrink: 0;
    white-space: nowrap;
    color: #92400e;
}

.factor-review-overall__score {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1;
}

.factor-review-overall__max {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1;
}

/* 分布エリア */
.factor-review-overall__dist {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.factor-review-overall__dist-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* 分布行の星エリア（120px固定） */
.factor-review-overall__dist-stars {
    display: flex;
    gap: 0;
    width: 7.5rem;
    flex-shrink: 0;
}

.factor-review-overall__bar-bg {
    width: 12.5rem;
    flex-shrink: 0;
    height: 0.75rem;
    background-color: #e5e7eb;
    border-radius: 0.375rem;
    overflow: hidden;
}

.factor-review-overall__bar-fill {
    height: 100%;
    background-color: #f59e0b;
    border-radius: 0.375rem;
    transition: width 0.3s ease;
}

.factor-review-overall__dist-pct {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #6b7280;
    width: 2.5rem;
    text-align: right;
    flex-shrink: 0;
}

/* --- 口コミカード（Figma: border #e6e6e6, rounded 12px, p 28px, gap 10px） --- */
.factor-review-card {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    background-color: #ffffff;
    border: 1px solid #e6e6e6;
    border-radius: 0.75rem;
    padding: 1.75rem;
}

.factor-review-card--hidden {
    display: none;
}

/* カードヘッダー（gap 8px） */
.factor-review-card__header {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.factor-review-card__header-top {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.factor-review-card__stars {
    display: flex;
    gap: 0;
}

/* Figma: 14px Medium #9ca3af */
.factor-review-card__date {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #9ca3af;
}

/* Figma: 20px Bold #1f2937 */
.factor-review-card__title {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.25rem;
    font-weight: bold;
    color: #1f2937;
    line-height: 1.4;
    margin: 0;
}

/* Figma: 16px Medium #6b7280 */
.factor-review-card__meta {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    color: #6b7280;
    margin: 0;
}

/* スペックバー（Figma: bg #f9fafb, px 16 py 20, rounded 8px, flex-wrap gap 0 20px） */
.factor-review-card__specs {
    display: flex;
    flex-wrap: wrap;
    gap: 0 1.25rem;
    background-color: #f9fafb;
    border-radius: 0.5rem;
    padding: 1.25rem 1rem;
}

/* Figma: 各スペック項目は縦flex gap 4px、区切り線なし */
.factor-review-card__spec-item {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    align-items: flex-start;
}

/* Figma: 14px Medium #9ca3af */
.factor-review-card__spec-label {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: #9ca3af;
}

/* Figma: 16px Bold #1f2937 */
.factor-review-card__spec-value {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: bold;
    color: #1f2937;
}

/* 本文セクション（Figma: py 16px, gap 8px） */
.factor-review-card__section {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 0;
}

/* Figma: 20px Bold #1f2937 */
.factor-review-card__section-heading {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.25rem;
    font-weight: bold;
    color: #1f2937;
    margin: 0;
}

/* Figma: 16px Medium #374151 */
.factor-review-card__section-body {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    color: #374151;
    line-height: 1.6;
    margin: 0;
}

.factor-review-card__section-body--clamp {
    display: block;
    max-height: none;
    overflow: visible;
}

.factor-review-card__section-body--clamp.is-expanded {
    max-height: none;
    overflow: visible;
}

.factor-review-card__accordion {
    display: none;
    background: none;
    border: none;
    padding: 0;
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 0.875rem;
    font-weight: bold;
    color: #006dff;
    cursor: pointer;
    text-align: left;
}

.factor-review-card__accordion-body {
    display: block;
}

.factor-review-card.is-expanded .factor-review-card__accordion-body {
    display: block;
}

/* 引用元（Figma: 16px Medium #374151、左寄せ、ボーダーなし） */
.factor-review-card__source {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    color: #374151;
    margin: 0;
}

.factor-review-card__source-link {
    color: #374151;
    text-decoration: underline;
    text-underline-offset: 0.125rem;
}

.factor-review-card__source-link:hover {
    opacity: 0.8;
}

/* もっと見るボタン（Figma: bg #006dff, px 32 py 16, rounded 8px, 20px Bold white） */
.factor-review-more-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.factor-review-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 2rem;
    background-color: #006dff;
    color: #ffffff;
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.25rem;
    font-weight: bold;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.factor-review-more:hover {
    opacity: 0.85;
}

/* 0件メッセージ */
.factor-review-empty {
    text-align: center;
    padding: 2.5rem 1.25rem;
    color: var(--factor-text-gray);
    font-size: 0.9375rem;
    margin: 0;
}

/* ========================================
 * 会社情報タブ
 * ======================================== */
.factor-company {
    max-width: var(--factor-card-width);
    margin: 0 auto;
}

.factor-representative {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}

.factor-representative__image {
    flex-shrink: 0;
    width: 10rem;
    height: 10rem;
    border-radius: 50%;
    overflow: hidden;
}

.factor-representative__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.factor-representative__content {
    flex: 1;
    padding: 1.5rem;
    border-radius: 0.5rem;
}

.factor-representative__name {
    font-family: "Yu Gothic", "YuGothic", sans-serif;
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--factor-text);
    margin: 0 0 0.3125rem;
}

.factor-representative__message {
    font-size: 1rem;
    line-height: 1.8;
    color: #000000;
    margin: 0;
}

.factor-staff-list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.factor-staff-item {
    display: flex;
    gap: 1.25rem;
}

.factor-staff-item__image {
    flex-shrink: 0;
    width: 10rem;
    height: 10rem;
    border-radius: 50%;
    overflow: hidden;
}

.factor-staff-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.factor-staff-item__info {
    flex: 1;
    padding: 1.5rem;
    border-radius: 0.5rem;
}

.factor-staff-item__name {
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--factor-text);
    margin: 0 0 0.3125rem;
}

.factor-staff-item__message {
    font-size: 1rem;
    line-height: 1.7;
    color: #000000;
    margin: 0;
}

/* ========================================
 * レスポンシブ: タブレット (959px以下)
 * ======================================== */
@media screen and (max-width: 959px) {
    .factor-hero {
        padding: 1.875rem 1rem;
    }

    .factor-hero__container {
        padding: 0.625rem 1.875rem;
    }

    .factor-hero__main {
        gap: 1.875rem;
    }

    .factor-hero__logo {
        width: 9.375rem;
        height: 9.375rem;
    }

    .factor-hero__title {
        font-size: 1.75rem;
    }

    .factor-hero__subtitle {
        font-size: 0.75rem;
    }

    .factor-hero__metrics {
        flex-wrap: wrap;
        gap: 0.625rem;
    }

    .factor-hero__metric-value {
        font-size: 1rem;
    }

    .factor-hero__btn {
        font-size: 1rem;
        padding: 0.75rem 1.5rem;
    }

    .factor-tabs__link {
        padding: 0.875rem 1.25rem;
        font-size: 0.875rem;
    }

    .factor-card {
        padding: 1.25rem 1.875rem;
    }

    .factor-card--info {
        overflow-x: auto;
    }

    .factor-card__title {
        font-size: 1.5rem;
    }

    .factor-tags {
        padding: 0;
    }

    .factor-representative {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .factor-representative__image {
        width: 7.5rem;
        height: 7.5rem;
    }

    .factor-representative__content {
        padding: 1rem;
    }

    .factor-representative__name {
        font-size: 1.25rem;
    }

    .factor-staff-item__image {
        width: 7.5rem;
        height: 7.5rem;
    }

    .factor-staff-item__info {
        padding: 1rem;
    }

    .factor-staff-item__name {
        font-size: 1.25rem;
    }

    /* 口コミ（タブレット） */
    .factor-review-overall {
        padding: 1rem;
        gap: 1.25rem;
    }

    .factor-review-overall__bar-bg {
        width: 9.375rem;
    }

    .factor-review-overall__dist-stars {
        width: 6.25rem;
    }

    .factor-review-overall__dist-stars svg {
        width: 16px;
        height: 16px;
    }

    .factor-review-card {
        padding: 1.5rem;
    }

    .factor-review-card__specs {
        gap: 0 1rem;
    }
}

/* ========================================
 * レスポンシブ: スマートフォン (599px以下)
 * Figma SP版デザイン準拠
 * ======================================== */
@media screen and (max-width: 599px) {

    /* ヒーローセクション（SP） */
    .factor-hero {
        padding: 0;
        background-color: #ffffff;
    }

    .factor-hero__container {
        padding: 0.625rem 1.25rem;
        border-radius: 0.625rem;
    }

    .factor-hero__main {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        padding: 0.9375rem 0 0;
    }

    /* PCロゴを非表示 */
    .factor-hero__logo:not(.factor-hero__logo--sp) {
        display: none;
    }

    .factor-hero__info {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    /* ヘッダー：左揃え（Figma 15-664準拠） */
    .factor-hero__header {
        padding: 0 2.5rem;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.1875rem;
        text-align: left;
    }

    .factor-hero__title {
        font-size: 1.75rem;
    }

    .factor-hero__subtitle {
        font-size: 0.875rem;
        margin: 0;
    }

    /* middleラッパー（Figma 15-978準拠：左=評価、右=ロゴ） */
    .factor-hero__middle {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 0.625rem;
        padding: 0.9375rem 0;
    }

    /* SP専用ロゴを表示 */
    .factor-hero__logo--sp {
        display: flex;
        width: 6.25rem;
        height: auto;
        flex-shrink: 0;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        margin: 0;
    }

    .factor-hero__star {
        font-size: 1.25rem;
    }

    .factor-hero__rating {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.3125rem;
        padding: 0;
        width: auto;
    }

    .factor-hero__rating-value {
        font-size: 0.875rem;
        color: #ef4444;
    }

    .factor-hero__review-icon {
        display: block;
        flex-shrink: 0;
    }

    .factor-hero__review-link {
        font-size: 0.875rem;
        color: #2563eb;
        text-decoration: underline;
    }

    /* メトリクス（SP: 2x2グリッド、青カード） */
    .factor-hero__metrics {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.9375rem;
        width: 100%;
        padding: 0;
    }

    .factor-hero__metric {
        width: 10rem;
        height: 3.75rem;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 0.125rem;
        padding: 0.5rem 0.3125rem;
        background-color: #e0f0ff;
        border-radius: 0.75rem;
    }

    .factor-hero__metric-icon {
        display: block;
        flex-shrink: 0;
    }

    .factor-hero__metric-label-wrap {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.125rem;
    }

    .factor-hero__metric-label {
        width: auto;
        font-size: 0.75rem;
        color: #050505;
        font-weight: 500;
        margin-bottom: 0;
    }

    .factor-hero__metric-value {
        font-size: 0.875rem;
        font-weight: bold;
        color: #000000;
    }

    .factor-hero__metric-divider {
        display: none;
    }

    /* CTAボタン（SP: 335px幅、オレンジ先） */
    .factor-hero__actions {
        flex-direction: column-reverse;
        width: 100%;
        padding: 0.625rem 0 1.25rem;
        gap: 1rem;
        align-items: center;
    }

    .factor-hero__btn {
        width: 20.9375rem;
        max-width: 100%;
        height: 3.125rem;
        font-size: 1.375rem;
        font-weight: bold;
        padding: 1rem 2rem;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .factor-hero__btn--list {
        display: none; /* TODO: リスト機能実装後に削除 */
    }

    /* タブ（SP） */
    .factor-tabs {
        background-color: #ffffff;
        border-bottom: none;
    }

    .factor-tabs__inner {
        padding: 0;
    }

    .factor-tabs__list {
        display: flex;
        justify-content: center;
        overflow-x: visible;
    }

    .factor-tabs__item {
        flex-shrink: 0;
    }

    .factor-tabs__link {
        width: 7.8125rem;
        height: 4.375rem;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 1rem 0;
        font-size: 1rem;
        font-weight: 500;
        color: #6b7280;
        white-space: nowrap;
        border-bottom: 5px solid transparent;
        box-sizing: border-box;
    }

    .factor-tabs__link.is-active {
        color: #2563eb;
        border-bottom: 5px solid #006dff;
    }

    /* タブコンテンツ（SP） */
    .factor-tab-contents {
        padding: 1.25rem 1rem;
    }

    .factor-tab-title {
        font-size: 1.125rem;
        margin-bottom: 1rem;
    }

    /* カード（SP） */
    .factor-card {
        padding: 0.625rem 1.25rem;
        border-radius: 0.75rem;
    }

    .factor-review-summary {
        border-radius: 0.625rem;
    }

    .factor-card__title {
        font-size: 1.375rem;
        padding: 0.4375rem 0;
        margin: 0;
    }

    /* SPのみ: 基本情報・会社情報のタイトル下余白を削除 */
    .factor-basic .factor-card__title,
    .factor-company .factor-card__title {
        margin-bottom: 0 !important;
    }

    .factor-card__text {
        font-size: 1rem;
        padding: 0.625rem 0;
    }

    .factor-card--summary {
        gap: 0;
    }

    /* 基本情報カード（SP） */
    .factor-card--info {
        overflow: visible;
        padding: 0.625rem 1.25rem;
    }

    /* 基本情報テーブル（SP: シンプルリスト形式） */
    .factor-table {
        width: 100%;
    }

    .factor-table__row,
    .factor-table__row--full {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        width: 100%;
        gap: 0.75rem;
        border-top: 1px solid #f3f4f6;
        padding: 0.4375rem 0;
    }

    .factor-table__header {
        flex-shrink: 0;
        width: 7.5rem !important;
        height: auto;
        min-height: auto;
        padding: 0;
        background-color: transparent;
        border: none;
        border-radius: 0;
        margin: 0;
        justify-content: flex-start;
        font-family: "Yu Gothic", "YuGothic", sans-serif;
        font-size: 1rem;
        font-weight: 500;
        color: #6b7280;
    }

    .factor-table__header--tl,
    .factor-table__header--bl {
        border-radius: 0;
    }

    .factor-table__cell {
        flex: 1;
        width: auto !important;
        height: auto;
        min-height: auto;
        padding: 0;
        border: none;
        border-radius: 0;
        margin: 0;
        font-family: "Yu Gothic", "YuGothic", sans-serif;
        font-size: 1rem;
        font-weight: 500;
        color: #000000;
        min-width: 0;
        white-space: normal;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .factor-table__cell--tr,
    .factor-table__cell--br {
        border-radius: 0;
    }

    .factor-table__row:last-child .factor-table__cell:last-child {
        border-radius: 0;
    }

    .factor-table__text--pc {
        display: none;
    }

    .factor-table__text--sp {
        display: block;
    }

    /* ハーフ行はSPでは2つのペアを縦に並べる */
    .factor-table__row--half {
        display: block;
        width: 100%;
        border-top: none;
        padding: 0;
    }

    .factor-table__pair {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        width: 100%;
        gap: 0.75rem;
        border-top: 1px solid #f3f4f6;
        padding: 0.4375rem 0;
    }

    .factor-table__row--half .factor-table__header {
        width: 7.5rem !important;
        padding: 0;
        border-top: none;
    }

    .factor-table__row--half .factor-table__cell {
        width: auto !important;
        padding: 0;
        border-top: none;
        flex: 1 1 auto;
        max-width: 100%;
    }

    .factor-table__row--full .factor-table__cell {
        flex: 1 1 auto;
        width: auto !important;
        max-width: 100%;
    }

    /* タグ（SP: 2列グリッド） */
    .factor-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 0.1875rem;
        padding: 0;
        justify-content: space-between;
    }

    .factor-tag {
        width: calc(50% - 2px);
        min-width: auto;
        padding: 0.1875rem 1rem;
        font-size: 0.875rem;
        text-align: center;
        justify-content: center;
        box-sizing: border-box;
    }

    .factor-tags__break {
        display: none;
    }

    .factor-tag--active {
        background-color: #e0f0ff;
    }

    /* 口コミ（SP） */
    .factor-review-overall {
        flex-direction: row;
        align-items: center;
        gap: 0;
        padding: 0.625rem 0.3125rem;
    }

    .factor-review-overall__score-area {
        flex: 0 0 3.5rem;
        gap: 0.25rem;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        color: #92400e;
    }

    .factor-review-overall__score {
        font-size: 1.125rem;
    }

    .factor-review-overall__max {
        font-size: 0.75rem;
    }

    .factor-review-overall__dist {
        flex: 1;
        min-width: 0;
        gap: 0.3125rem;
    }

    .factor-review-overall__dist-row {
        gap: 0.3125rem;
    }

    .factor-review-overall__dist-stars {
        width: 3.125rem;
        flex-shrink: 0;
    }

    .factor-review-overall__dist-stars svg {
        width: 10px;
        height: 10px;
    }

    .factor-review-overall__bar-bg {
        flex: 1;
        min-width: 0;
        width: auto;
    }

    .factor-review-overall__dist-pct {
        font-size: 0.875rem;
        width: 2.5rem;
    }

    .factor-review-card {
        padding: 1.25rem;
        gap: 0.625rem;
        border: none;
    }

    .factor-review-card__header {
        gap: 0.625rem;
    }

    .factor-review-card__title {
        font-size: 1.125rem;
    }

    .factor-review-card__meta {
        font-size: 0.875rem;
    }

    .factor-review-card__specs {
        padding: 0 0.625rem;
        gap: 0;
        background-color: transparent;
    }

    .factor-review-card__spec-item {
        width: 100%;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        padding: 0.375rem 0;
        gap: 0.75rem;
        background-color: transparent;
        border-radius: 0;
    }

    .factor-review-card__spec-item + .factor-review-card__spec-item {
        border-top: 1px solid #f3f4f6;
    }

    .factor-review-card__spec-label {
        font-size: 0.875rem;
        color: #6b7280;
        width: 7.5rem;
    }

    .factor-review-card__spec-value {
        font-size: 0.875rem;
        font-weight: 500;
    }

    .factor-review-card__section {
        padding: 0;
        gap: 0.5rem;
    }

    .factor-review-card__section-heading {
        font-size: 1rem;
    }

    .factor-review-card__section + .factor-review-card__section {
        margin-top: 0.625rem;
    }

    .factor-review-card__section-body {
        font-size: 0.875rem;
        color: #6b7280;
    }

    .factor-review-card__source {
        font-size: 0.875rem;
    }

    .factor-review-card__accordion {
        display: inline-flex;
        align-items: center;
    }

    .factor-review-card__accordion-body {
        display: none;
        gap: 0.3125rem;
    }

    .factor-review-card.is-expanded .factor-review-card__accordion-body {
        display: block;
    }

    .factor-review-card__section-body--clamp {
        max-height: calc(1.6em * 3);
        overflow: hidden;
    }

    .factor-review-card__section-body--clamp.is-expanded {
        max-height: none;
        overflow: visible;
    }

    .factor-review-card__accordion {
        margin-top: 0.5rem;
    }

    /* 口コミの外枠（SPは白いラッパーを消す） */
    .factor-review-wrap {
        background-color: transparent;
        border: none;
        padding: 0;
    }

    .factor-review-more {
        width: 100%;
        max-width: 20.9375rem;
        font-size: 1rem;
        padding: 0.875rem 1.5rem;
    }

    /* 会社情報（SP） */
    .factor-representative {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .factor-staff-item {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .factor-representative__image {
        width: 7.5rem;
        height: 7.5rem;
    }

    .factor-representative__content {
        padding: 0.75rem 0 0;
    }

    .factor-representative__name {
        font-size: 1.25rem;
    }

    .factor-staff-item__image {
        width: 7.5rem;
        height: 7.5rem;
    }

    .factor-staff-item__info {
        padding: 0.75rem 0 0;
    }

    .factor-staff-item__name {
        font-size: 1.25rem;
    }

    /* 会社情報タブ（SP: Figma準拠） */
    .factor-company .factor-card {
        padding: 0.625rem 1.25rem;
    }

    .factor-company .factor-card__title {
        font-size: 1.375rem;
        text-align: left;
        padding: 0.4375rem 0;
        margin: 0;
    }

    .factor-company .factor-table__row,
    .factor-company .factor-table__row--full,
    .factor-company .factor-table__row--half {
        gap: 0.75rem;
        border-top: 1px solid #f3f4f6;
        padding: 0.4375rem 0;
    }

    .factor-company .factor-table__row:first-child {
        border-top: 1px solid #f3f4f6;
    }

    .factor-company .factor-table__header {
        width: 7.5rem !important;
        font-size: 1rem;
        color: #6b7280;
    }

    .factor-company .factor-table__cell {
        font-size: 1rem;
        color: #000000;
    }

    .factor-company .factor-representative {
        align-items: flex-start;
        text-align: left;
        gap: 0.625rem;
    }

    .factor-company .factor-representative__image {
        width: 6.25rem;
        height: 6.25rem;
        align-self: center;
    }

    .factor-company .factor-representative__content {
        width: 100%;
        padding: 0;
    }

    .factor-company .factor-representative__name {
        font-size: 1.125rem;
    }

    .factor-company .factor-representative__message {
        font-size: 1rem;
    }

    .factor-company .factor-staff-item {
        gap: 0.625rem;
        align-items: flex-start;
        text-align: left;
    }

    .factor-company .factor-staff-item__image {
        width: 6.25rem;
        height: 6.25rem;
        align-self: center;
    }

    .factor-company .factor-staff-item__info {
        width: 100%;
        padding: 0;
    }

    .factor-company .factor-staff-item__name {
        font-size: 1.125rem;
    }

    .factor-company .factor-staff-item__message {
        font-size: 1rem;
    }

    .factor-company .factor-staff-item + .factor-staff-item {
        border-top: 1px solid #f3f4f6;
        padding-top: 0.625rem;
        margin-top: 0.625rem;
    }

    .factor-company .factor-card__content {
        padding: 0.4375rem 0.3125rem;
    }

    .factor-company .factor-card__content h2 {
        font-size: 1.125rem;
        margin-bottom: 0.3125rem;
    }

    .factor-company .factor-card__content p {
        font-size: 1rem;
    }

    .factor-basic .factor-card__content {
        padding: 0.4375rem 0.3125rem;
    }

    /* 追従ボタンバー（SP） */
    .factor-follow-bar {
        padding: 1.25rem 1rem;
    }

    .factor-follow-bar__btn {
        width: 20.9375rem;
        max-width: 100%;
        height: 3.125rem;
        font-size: 1.375rem;
        justify-content: center;
    }

    .factor-follow-bar__icon {
        width: 22px;
        height: 22px;
    }
}
