/* =========================================================
   暮らしの引き継ぎ 診断 UI
   テーマ非依存で完結させる。SWELLの変数には依存しない。
   ========================================================= */

.ks-shindan {
	--ks-accent: #2f7d6b;
	--ks-accent-dark: #24614f;
	--ks-bg: #ffffff;
	--ks-border: #e2e6e4;
	--ks-text: #2b2b2b;
	--ks-muted: #6a726f;
	--ks-radius: 12px;

	max-width: 680px;
	margin: 2em auto;
	padding: clamp(1.2em, 4vw, 2em);
	background: var(--ks-bg);
	border: 1px solid var(--ks-border);
	border-radius: var(--ks-radius);
	color: var(--ks-text);
	line-height: 1.7;
	box-sizing: border-box;
}
.ks-shindan *,
.ks-shindan *::before,
.ks-shindan *::after { box-sizing: border-box; }

/* --- 進捗 --- */
.ks-progress { margin-bottom: 1.4em; }
.ks-progress__bar {
	height: 8px;
	background: #eef1f0;
	border-radius: 999px;
	overflow: hidden;
}
.ks-progress__bar span {
	display: block;
	height: 100%;
	width: 0;
	background: var(--ks-accent);
	transition: width .3s ease;
}
.ks-progress__text {
	margin: .5em 0 0;
	font-size: .85em;
	color: var(--ks-muted);
	text-align: right;
}

/* --- イントロ --- */
.ks-intro__title {
	margin: 0 0 .4em;
	font-size: clamp(1.3em, 4vw, 1.6em);
}
.ks-intro__lead {
	margin: 0 0 1.4em;
	color: var(--ks-muted);
}

/* --- 設問 --- */
.ks-question__title {
	margin: 0 0 1em;
	font-size: clamp(1.15em, 3.5vw, 1.35em);
}
.ks-options {
	display: grid;
	gap: .7em;
}
.ks-option {
	display: block;
	width: 100%;
	text-align: left;
	padding: .9em 1.1em;
	font-size: 1em;
	line-height: 1.5;
	background: #fff;
	border: 1.5px solid var(--ks-border);
	border-radius: 10px;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease, transform .05s ease;
	color: inherit;
}
.ks-option:hover { border-color: var(--ks-accent); background: #f5faf8; }
.ks-option:active { transform: scale(.995); }
.ks-option.is-selected {
	border-color: var(--ks-accent);
	background: #eaf5f1;
	font-weight: 700;
}

/* --- ナビ --- */
.ks-nav { margin-top: 1.2em; }

/* --- ボタン --- */
.ks-btn {
	display: inline-block;
	padding: .8em 1.6em;
	font-size: 1em;
	font-weight: 700;
	border-radius: 999px;
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.ks-btn--primary { background: var(--ks-accent); color: #fff; }
.ks-btn--primary:hover { background: var(--ks-accent-dark); }
.ks-btn--ghost {
	background: transparent;
	color: var(--ks-muted);
	border-color: var(--ks-border);
	padding: .55em 1.2em;
	font-size: .9em;
}
.ks-btn--ghost:hover { color: var(--ks-text); border-color: var(--ks-muted); }
.ks-btn:disabled { opacity: .4; cursor: default; }

/* --- 読み込み --- */
.ks-loading { text-align: center; color: var(--ks-muted); padding: 1.5em 0; }

/* --- 結果 --- */
.ks-result__eyebrow {
	margin: 0 0 .3em;
	color: var(--ks-accent);
	font-weight: 700;
	font-size: .9em;
	letter-spacing: .04em;
}
.ks-result__title {
	margin: 0 0 .5em;
	font-size: clamp(1.4em, 4.5vw, 1.7em);
}
.ks-result__lead { margin: 0 0 1.5em; }
.ks-result__subtitle {
	margin: 0 0 .7em;
	font-size: 1.1em;
	padding-left: .5em;
	border-left: 4px solid var(--ks-accent);
}
.ks-result__steps { margin-bottom: 1.8em; }
.ks-result__steps ol { margin: 0; padding-left: 1.3em; }
.ks-result__steps li { margin-bottom: .4em; }

/* --- CTA --- */
.ks-result__cta { margin-bottom: 1.8em; }
.ks-cta-list { display: grid; gap: .7em; }
.ks-cta {
	display: block;
	padding: 1em 1.2em;
	background: var(--ks-accent);
	color: #fff;
	border-radius: 10px;
	text-decoration: none;
	transition: background .15s ease;
}
.ks-cta:hover { background: var(--ks-accent-dark); color: #fff; }
.ks-cta__label { display: block; font-weight: 700; font-size: 1.05em; }
.ks-cta__desc { display: block; font-size: .85em; opacity: .9; margin-top: .2em; }
.ks-result__pr { margin: .8em 0 0; font-size: .8em; color: var(--ks-muted); }

/* --- 関連記事 --- */
.ks-result__related { margin-bottom: 1.5em; }
.ks-related-list { margin: 0; padding-left: 1.2em; }
.ks-related-list li { margin-bottom: .35em; }

/* --- やり直し / エラー --- */
.ks-result__again { text-align: center; margin-top: 1em; }
.ks-error { color: #a3312a; text-align: center; padding: 1em 0; }
