/**
 * 探偵LAB SEO — フロント表示用スタイル
 * SWELLのカラー変数を利用し、テーマの配色から外れないようにする。
 */

:root {
	--tlseo-accent: var(--color_main, #1a3f7a);
	--tlseo-border: var(--color_border, #e5e7eb);
	--tlseo-bg-soft: #f6f8fb;
	--tlseo-text-muted: #5b6472;
}

/* ---------- Quick Answer ---------- */
.tl-quickAnswer {
	margin: 0 0 2em;
	padding: 1.25em 1.35em;
	border: 1px solid var(--tlseo-border);
	border-left: 4px solid var(--tlseo-accent);
	border-radius: 6px;
	background: var(--tlseo-bg-soft);
}

.tl-quickAnswer__label {
	margin: 0 0 .4em;
	font-size: .82em;
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--tlseo-accent);
}

.tl-quickAnswer__text {
	margin: 0;
	font-size: 1.02em;
	line-height: 1.85;
}

.tl-quickAnswer__points {
	margin-top: 1.1em;
	padding-top: 1.1em;
	border-top: 1px dashed var(--tlseo-border);
}

.tl-quickAnswer__points ul {
	margin: 0;
	padding-left: 1.2em;
}

.tl-quickAnswer__points li {
	margin: .35em 0;
	line-height: 1.75;
}

.tl-quickAnswer__reviewer {
	margin: 1.1em 0 0;
	padding-top: .8em;
	border-top: 1px dashed var(--tlseo-border);
	font-size: .86em;
	color: var(--tlseo-text-muted);
}

.tl-quickAnswer__job {
	margin-left: .1em;
}

.tl-quickAnswer__updated {
	margin-left: 1em;
}

/* ---------- 一次情報ブロック ---------- */
.tl-memo {
	margin: 2em 0;
	padding: 1.2em 1.35em;
	border: 1px solid var(--tlseo-border);
	border-radius: 6px;
	background: #fffdf5;
}

.tl-memo--judge { background: #f5fbff; }
.tl-memo--advice { background: #f7fff8; }
.tl-memo--practice { background: #fdf7ff; }
.tl-memo--caution { background: #fff7f7; }

.tl-memo__label {
	margin: 0 0 .6em;
	font-weight: 700;
	font-size: .95em;
	color: var(--tlseo-accent);
}

.tl-memo__label::before {
	content: "【";
}

.tl-memo__label::after {
	content: "】";
}

.tl-memo__body > :last-child {
	margin-bottom: 0;
}

.tl-memo__by {
	margin: .9em 0 0;
	font-size: .82em;
	color: var(--tlseo-text-muted);
}

/* ---------- FAQ ---------- */
.tl-faq__list {
	margin: 0;
	border-top: 1px solid var(--tlseo-border);
}

.tl-faq__item {
	border-bottom: 1px solid var(--tlseo-border);
	padding: 1.05em 0;
}

.tl-faq__q,
.tl-faq__a {
	display: flex;
	gap: .7em;
	margin: 0;
}

.tl-faq__q {
	font-weight: 700;
	line-height: 1.7;
}

.tl-faq__a {
	margin-top: .7em;
	margin-left: 0;
	line-height: 1.85;
}

.tl-faq__mark {
	flex: 0 0 1.7em;
	width: 1.7em;
	height: 1.7em;
	line-height: 1.7em;
	text-align: center;
	border-radius: 50%;
	font-size: .82em;
	font-weight: 700;
	color: #fff;
	background: var(--tlseo-accent);
}

.tl-faq__a .tl-faq__mark {
	background: #8a94a6;
}

.tl-faq__answer > :last-child {
	margin-bottom: 0;
}

/* ---------- 出典 ---------- */
.tl-sources {
	margin: 2.4em 0;
}

.tl-cite {
	display: block;
	margin: .5em 0;
	font-style: normal;
	font-size: .88em;
	line-height: 1.8;
	color: var(--tlseo-text-muted);
}

.tl-cite__label {
	font-weight: 700;
}

.tl-cite__meta {
	font-size: .92em;
}

/* ---------- 内部リンク ---------- */
.tl-links {
	margin: 2em 0;
	padding: 1.1em 1.3em;
	border: 1px solid var(--tlseo-border);
	border-radius: 6px;
}

.tl-links__group + .tl-links__group {
	margin-top: 1.1em;
	padding-top: 1.1em;
	border-top: 1px dashed var(--tlseo-border);
}

.tl-links__title {
	margin: 0 0 .5em;
	font-size: .9em;
	font-weight: 700;
	color: var(--tlseo-accent);
}

.tl-links__list {
	margin: 0;
	padding-left: 1.2em;
}

.tl-links__list li {
	margin: .3em 0;
	line-height: 1.7;
}

/* ---------- 監修者 ---------- */
.tl-supervisor {
	margin: 2.4em 0;
	padding: 1.3em;
	border: 1px solid var(--tlseo-border);
	border-radius: 6px;
	background: var(--tlseo-bg-soft);
}

.tl-supervisor__label {
	margin: 0 0 .9em;
	font-weight: 700;
	color: var(--tlseo-accent);
}

.tl-supervisor__body {
	display: flex;
	gap: 1.1em;
	align-items: flex-start;
}

.tl-supervisor__avatar img {
	border-radius: 50%;
	width: 72px;
	height: 72px;
}

.tl-supervisor__name {
	margin: 0 0 .4em;
	font-weight: 700;
}

.tl-supervisor__job {
	display: block;
	font-size: .82em;
	font-weight: 400;
	color: var(--tlseo-text-muted);
}

.tl-supervisor__desc {
	margin: 0;
	font-size: .9em;
	line-height: 1.85;
}

.tl-supervisor__more {
	margin: .7em 0 0;
	font-size: .88em;
}

/* ---------- 監修記事一覧 ---------- */
.tl-supervised__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--tlseo-border);
}

.tl-supervised__item {
	display: flex;
	justify-content: space-between;
	gap: 1em;
	padding: .75em 0;
	border-bottom: 1px solid var(--tlseo-border);
	line-height: 1.6;
}

.tl-supervised__date {
	flex: 0 0 auto;
	font-size: .82em;
	color: var(--tlseo-text-muted);
}

/* ---------- 事務所情報 ---------- */
.tl-org {
	margin: 1.6em 0;
	border-top: 1px solid var(--tlseo-border);
}

.tl-org__row {
	display: flex;
	gap: 1em;
	padding: .7em 0;
	border-bottom: 1px solid var(--tlseo-border);
}

.tl-org__row dt {
	flex: 0 0 8.5em;
	font-weight: 700;
	font-size: .9em;
}

.tl-org__row dd {
	margin: 0;
	font-size: .95em;
	line-height: 1.7;
}

@media (max-width: 600px) {
	.tl-supervisor__body { flex-direction: column; }
	.tl-supervised__item { flex-direction: column; gap: .2em; }
	.tl-org__row { flex-direction: column; gap: .2em; }
	.tl-org__row dt { flex-basis: auto; }
}
