/**
 * 結果ページ・タイプ別ページ・16タイプ一覧（docs/design.md §4「結果」）
 */

.type-page { padding-top: var(--space-5); }
.type-page > * + * { margin-top: var(--space-7); }

/* ---- タイプのヒーロー（系統画像＋タイプ名） ---- */
.type-hero { text-align: center; }
.type-hero__image {
    width: min(100%, 360px);
    margin: 0 auto var(--space-5);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    box-shadow: 0 0 0 4px var(--lineage-bg);
}
.type-hero__eyebrow { font-size: var(--fs-sm); color: var(--text-sub); }
/* タイプ名は発光3か所の1つ（系統色で光らせる） */
.type-hero__name {
    font-size: 2.25rem;
    line-height: 1.3;
    margin: var(--space-1) 0 var(--space-3);
    color: var(--lineage);
    text-shadow: 0 0 16px var(--lineage-glow);
}
.type-hero__meta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}
.type-hero__code { font-size: var(--fs-xl); }
.type-hero__tagline { font-size: var(--fs-lg); font-family: var(--font-heading); font-weight: 700; }

/* ---- 4軸の寄り具合バー ---- */
.axes__list { display: grid; gap: var(--space-5); }
.axis__labels {
    display: flex;
    justify-content: space-between;
    font-size: var(--fs-sm);
    color: var(--text-muted);
    margin-bottom: var(--space-2);
}
.axis__end.is-chosen { color: var(--text); font-weight: 500; }
.axis__track {
    position: relative;
    height: 10px;
    border-radius: var(--radius-full);
    background: var(--surface-2);
    overflow: hidden;
}
.axis__fill {
    position: absolute;
    top: 0;
    bottom: 0;
    border-radius: inherit;
    background: var(--gradient);
    animation: axis-grow 0.4s var(--ease) both;
}
.axis__fill--left { left: 0; transform-origin: left; }
.axis__fill--right { right: 0; transform-origin: right; }
@keyframes axis-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.axis__result {
    margin-top: var(--space-1);
    font-size: var(--fs-sm);
    color: var(--text-sub);
}
.axis__percent { font-family: var(--font-number); font-weight: 500; color: var(--text); }
.axis:has(.axis__fill--right) .axis__result { text-align: right; }

/* タイプ別ページ: 4軸の構成（寄り具合なし） */
.type-letters {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}
.type-letter {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-1);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}
.type-letter__code {
    font-family: var(--font-number);
    font-weight: 500;
    font-size: var(--fs-xl);
    color: var(--lineage);
    line-height: 1;
}
.type-letter__label { font-size: var(--fs-sm); }

/* ---- 文章 ---- */
.type-text p + p { margin-top: var(--space-4); }
.type-text { color: var(--text); }
.advice { border-left: 3px solid var(--lineage); }
.advice__short {
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--lineage);
    margin-bottom: var(--space-2);
}
.advice__text { font-size: var(--fs-sm); color: var(--text-sub); }

/* ---- 相性クリエイター（段階5までの仮表示） ---- */
.creators-placeholder { text-align: center; }
.creators-placeholder__badge {
    display: inline-block;
    padding: 2px 12px;
    border-radius: var(--radius-full);
    background: var(--surface-2);
    color: var(--secondary);
    font-size: var(--fs-xs);
    margin-bottom: var(--space-3);
}
.creators-placeholder__text { font-size: var(--fs-sm); color: var(--text-sub); }
.creators-placeholder__fit {
    margin-top: var(--space-4);
    text-align: left;
    font-size: var(--fs-sm);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-2) var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--border);
}
.creators-placeholder__fit dt { color: var(--text-sub); }

/* ---- シェア・ボタン群 ---- */
.btn--share { background: #000; color: #fff; border-color: #3a3a4a; }
/* 結果ページ上部の小さめのシェアボタン（1行）。下部には大きいボタンがある */
.btn--compact { min-height: 40px; padding: 0 var(--space-4); font-size: var(--fs-sm); }
.share-block--compact { display: flex; justify-content: center; }
.type-page > .share-block--compact { margin-top: var(--space-4); }
.btn--share:hover { border-color: var(--text-sub); }
.btn__icon { flex-shrink: 0; }
.type-actions { display: grid; gap: var(--space-3); }

/* ---- シェアから来た人への案内（タイプ別ページ ?ref=share） ---- */
.share-landing {
    text-align: center;
    padding: var(--space-5);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-1);
}
.share-landing__text { margin-bottom: var(--space-4); }
.share-landing .notice-age { margin-top: var(--space-2); }

/* ---- 同じ系統のタイプ・16タイプ一覧 ---- */
.type-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
}
.type-card {
    display: block;
    padding: var(--space-4);
    background: var(--surface-1);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    color: var(--text);
    transition: border-color var(--duration) var(--ease);
}
.type-card:hover { border-color: var(--lineage); text-decoration: none; }
/* 長いタイプ名（ドキュメンタリー・ハンター 等）が途中で折れないよう、収まらなければコードを次の行へ送る */
.type-card__head { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--space-3); }
.type-card__code { font-size: var(--fs-sm); color: var(--lineage); }
.type-card__name { font-size: var(--fs-lg); }
.type-card__tagline { font-size: var(--fs-sm); color: var(--text-sub); margin-top: var(--space-1); }
/* 16タイプ一覧: カード全体をタイプ別ページへのリンクにしたまま（::after で覆う）、相性上位の名前は別のリンクにする */
.type-card--with-creators { position: relative; }
.type-card__link { display: block; color: var(--text); }
.type-card__link:hover { text-decoration: none; }
.type-card__link::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius-md); }
.type-card__link:focus-visible { outline: none; }
.type-card__link:focus-visible::after { outline: 2px solid var(--lineage); outline-offset: 2px; }
.type-card__creators {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 2px var(--space-2);
    margin-top: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--text-sub);
}
.type-card__creators a { color: var(--text-sub); text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.type-card__creators a:hover { color: var(--text); }

.lineage-group + .lineage-group { margin-top: var(--space-7); }
.lineage-group__head {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: var(--space-4);
    align-items: center;
    margin-bottom: var(--space-4);
}
.lineage-group__image { width: 88px; height: 88px; border-radius: var(--radius-sm); object-fit: cover; }
.lineage-group__name { font-size: var(--fs-xl); color: var(--lineage); }
.lineage-group__summary { font-size: var(--fs-sm); color: var(--text-sub); }

@media (min-width: 641px) {
    .type-hero__name { font-size: 2.75rem; }
    .type-grid { grid-template-columns: 1fr 1fr; }
    .type-letters { grid-template-columns: repeat(4, 1fr); }
    .type-letter { flex-direction: column; text-align: center; }
}

/* ---- 結果ページ（版5: 好みタグ） ---- */
.result-hero { text-align: center; padding: var(--space-6) 0 var(--space-3); }
.result-hero__eyebrow { font-size: var(--fs-sm); color: var(--text-sub); }
.result-hero__tags {
    margin-top: var(--space-2);
    font-size: clamp(1.5rem, 6vw, 2.25rem);
    line-height: 1.35;
    overflow-wrap: anywhere;
    color: var(--text);
    text-shadow: 0 0 24px rgba(255, 46, 136, 0.45);
}
.result-hero__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: var(--space-3); }
.result-hero__condition { margin-top: var(--space-3); font-size: var(--fs-xs); color: var(--text-sub); }
a.chip { text-decoration: none; }
.chip[aria-current="true"] { border-color: var(--secondary); color: var(--text); background: var(--surface-2); }

/* ---- ジャンル一覧（/genre/） ---- */
.genre-index { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.genre-index__item { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; font-size: var(--fs-sm); }
.genre-index__count { font-family: var(--font-number); font-size: var(--fs-xs); color: var(--text-sub); }
