/* 参考書掲示板（掲示板のページでだけ読み込む）。色・フォントはテーマの変数に合わせる */
.nsk-main,
.nsk-picker {
	--nsk-navy: var(--navy, #14293f);
	--nsk-gold: var(--gold, #b99a50);
	--nsk-gold-pale: var(--gold-pale, #f6f1e4);
	--nsk-ink: var(--ink, #17212b);
	--nsk-muted: var(--muted, #66717c);
	--nsk-line: var(--line, #dfe3e7);
	--nsk-mist: var(--mist, #f5f6f7);
	--nsk-red: var(--red, #c94f3d);
	color: var(--nsk-ink);
}

.nsk-wrap {
	max-width: 960px;
	margin: 0 auto;
	padding: 16px 16px 40px;
}

.nsk-hero__lead {
	max-width: 640px;
	margin-top: 12px;
	font-size: 15px;
	line-height: 1.8;
}

/* 検索欄 */
.nsk-search {
	display: flex;
	gap: 8px;
	margin: 0 0 16px;
}
.nsk-search input[type="search"] {
	flex: 1;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid var(--nsk-line);
	border-radius: 4px;
	background: #fff;
	font: inherit;
	font-size: 16px; /* スマホで拡大されないように */
}
.nsk-search .nsk-btn {
	flex: 0 0 auto;
}

/* パンくず・表記 */
.nsk-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 0;
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
	font-size: 12px;
	color: var(--nsk-muted);
}
.nsk-breadcrumb li + li::before {
	content: "›";
	margin: 0 8px;
}
.nsk-breadcrumb a {
	color: inherit;
}
.nsk-pr,
.nsk-credit,
.nsk-note {
	font-size: 12px;
	color: var(--nsk-muted);
}
.nsk-pr {
	margin: 0 0 16px;
	padding: 6px 10px;
	background: var(--nsk-mist);
	border-radius: 4px;
}

/* 見出し・セクション */
.nsk-section {
	margin-top: 24px;
}
.nsk-h2 {
	margin: 0 0 8px;
	padding-left: 12px;
	border-left: 3px solid var(--nsk-gold);
	font-size: clamp(18px, 4.5vw, 22px);
	line-height: 1.5;
}
.nsk-h2 a {
	color: inherit;
	text-decoration: none;
}
.nsk-guide {
	margin-top: 8px;
}
/* レベルのページの右下に常に出す「このレベルのスレを見る」ボタン */
.nsk-fab {
	position: fixed;
	right: max(16px, env(safe-area-inset-right));
	bottom: max(16px, env(safe-area-inset-bottom));
	z-index: 80;
	padding: 12px 22px;
	border-radius: 999px;
	background: #1e8449;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	white-space: nowrap;
}
.nsk-fab:hover,
.nsk-fab:focus-visible {
	background: #176b3a;
	color: #fff;
}
.nsk-fab:focus-visible {
	outline: 3px solid #fff;
	outline-offset: -6px;
}
/* ボタンでページの最後が隠れないように、下に余白をとる */
body:has(.nsk-fab) .nsk-main {
	padding-bottom: 72px;
}
/* スレの見出しが固定ヘッダーの下に隠れないようにする */
.nsk-board {
	scroll-margin-top: 90px;
}
/* reCAPTCHAのマークは右下のボタンと重なるので隠す（フォームに「reCAPTCHAで保護されています」の文言を出しているので、Googleの規約上問題ない） */
.grecaptcha-badge {
	visibility: hidden;
}

/* レベルのページの「進め方の目安」（口コミ・スレのあとに小さく置く） */
.nsk-route {
	padding: 12px 16px;
	border: 1px solid var(--nsk-line);
	border-radius: 6px;
	background: var(--nsk-mist);
	font-size: 14px;
	line-height: 1.8;
}
.nsk-route__title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 8px;
	margin: 0 0 4px;
	font-size: 15px;
	line-height: 1.5;
}
.nsk-route__title span {
	color: var(--nsk-muted);
	font-size: 12px;
	font-weight: normal;
}
.nsk-route__body > :first-child {
	margin-top: 0;
}
.nsk-route__body > :last-child {
	margin-bottom: 0;
}
.nsk-route__body ol,
.nsk-route__body ul {
	margin: 4px 0;
	padding-left: 1.4em;
}
.nsk-empty {
	margin: 8px 0;
	padding: 12px 16px;
	background: var(--nsk-mist);
	border-radius: 6px;
	color: var(--nsk-muted);
}
.nsk-more,
.nsk-links {
	margin-top: 12px;
	font-size: 14px;
}
.nsk-links a + a {
	margin-left: 16px;
}

/* 科目のアコーディオン（掲示板トップ） */
.nsk-acc-list {
	display: grid;
	gap: 8px;
}
.nsk-acc {
	background: #fff;
	border: 1px solid var(--nsk-line);
	border-radius: 6px;
}
.nsk-acc summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	cursor: pointer;
	list-style: none;
	font-weight: 700;
	color: var(--nsk-navy);
}
.nsk-acc summary::-webkit-details-marker {
	display: none;
}
.nsk-acc summary::after {
	content: "＋";
	flex: 0 0 auto;
	color: var(--nsk-gold);
	font-weight: 700;
}
.nsk-acc[open] summary::after {
	content: "－";
}
.nsk-acc__title {
	flex: 1;
	font-size: 16px;
}
.nsk-acc__count {
	font-size: 12px;
	font-weight: 400;
	color: var(--nsk-muted);
}
.nsk-acc .nsk-levels {
	padding: 0 16px;
}
.nsk-acc .nsk-more {
	margin: 10px 16px 14px;
}

/* ほかの科目へのリンク */
.nsk-subjects {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nsk-subjects a {
	display: block;
	padding: 8px 14px;
	border: 1px solid var(--nsk-line);
	border-radius: 999px;
	background: #fff;
	color: var(--nsk-navy);
	font-size: 14px;
	text-decoration: none;
}
.nsk-subjects a:hover {
	border-color: var(--nsk-gold);
}

/* レベルのリンク */
.nsk-levels {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nsk-levels a {
	display: block;
	padding: 14px 16px;
	border: 1px solid var(--nsk-line);
	border-radius: 6px;
	color: var(--nsk-navy);
	font-weight: 700;
	text-decoration: none;
	background: #fff;
}
.nsk-levels a span {
	margin-left: 2px;
	font-weight: 400;
	font-size: 12px;
}
.nsk-levels a:hover {
	border-color: var(--nsk-gold);
}

/* ★ */
.nsk-stars {
	letter-spacing: 1px;
	white-space: nowrap;
}
.nsk-stars__on {
	color: var(--nsk-gold);
}
.nsk-stars__off {
	color: var(--nsk-line);
}

/* 書影 */
.nsk-cover {
	flex: 0 0 auto;
	width: 96px;
	text-align: center;
}
.nsk-cover img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 140px;
	object-fit: contain;
	margin: 0 auto;
}
.nsk-cover__card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 136px;
	padding: 10px 8px;
	background: var(--nsk-navy);
	border-top: 3px solid var(--nsk-gold);
	color: #fff;
	text-align: left;
	border-radius: 2px;
}
.nsk-cover__card--course {
	background: #23405c;
	border-top-color: #8bb9dc;
}
.nsk-cover__card-tag {
	align-self: flex-start;
	padding: 1px 6px;
	background: rgba(255, 255, 255, .16);
	font-size: 9px;
	letter-spacing: .05em;
}
.nsk-cover__card-title {
	font-size: 11px;
	font-weight: 700;
	line-height: 1.45;
}
.nsk-cover__card-pub {
	font-size: 10px;
	opacity: .75;
}
.nsk-cover__shop,
.nsk-cover__credit {
	display: block;
	margin-top: 6px;
	font-size: 11px;
}

/* 一覧 */
.nsk-tools {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
	font-size: 13px;
}
.nsk-tools label {
	display: flex;
	align-items: center;
	gap: 8px;
}
.nsk-tools select {
	padding: 6px 8px;
	border: 1px solid var(--nsk-line);
	border-radius: 4px;
	background: #fff;
	font-size: 14px;
}
.nsk-cards {
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nsk-card {
	display: flex;
	gap: 14px;
	padding: 16px;
	background: #fff;
	border: 1px solid var(--nsk-line);
	border-radius: 8px;
}
.nsk-card[hidden] {
	display: none;
}
.nsk-card__body {
	min-width: 0;
}
.nsk-card__genre {
	margin: 0;
	font-size: 11px;
	color: var(--nsk-gold);
	font-weight: 700;
}
.nsk-card__title {
	margin: 2px 0 2px;
	font-size: 16px;
	line-height: 1.5;
}
.nsk-card__title a {
	color: var(--nsk-navy);
}
.nsk-card__pub {
	margin: 0 0 8px;
	font-size: 12px;
	color: var(--nsk-muted);
}
.nsk-card__scores {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	margin: 0;
	font-size: 13px;
}
.nsk-card__scores > div {
	display: flex;
	align-items: center;
	gap: 6px;
}
.nsk-card__scores dt {
	color: var(--nsk-muted);
	font-size: 12px;
}
.nsk-card__scores dd {
	margin: 0;
}
/* 楽天ブックスのレビューは、掲示板の評価と見分けがつくよう控えめに */
.nsk-score--rakuten .nsk-stars__on {
	color: var(--nsk-muted);
}
.nsk-score--rakuten a {
	font-size: 12px;
}
.nsk-card__count {
	margin-left: 4px;
	font-size: 12px;
	color: var(--nsk-muted);
}
.nsk-card__fit {
	margin: 8px 0 0;
	font-size: 13px;
	line-height: 1.7;
}
.nsk-card__fit span {
	margin-right: 6px;
	padding: 1px 6px;
	background: var(--nsk-gold-pale);
	font-size: 11px;
	font-weight: 700;
}

/* 参考書ページ */
.nsk-book {
	display: flex;
	gap: 20px;
	align-items: flex-start;
}
.nsk-book .nsk-cover {
	width: 120px;
}
.nsk-book .nsk-cover img {
	max-height: 180px;
}
.nsk-book__info {
	min-width: 0;
	flex: 1;
}
.nsk-bib {
	margin: 0 0 12px;
	font-size: 14px;
}
.nsk-bib > div {
	display: flex;
	gap: 12px;
	padding: 4px 0;
	border-bottom: 1px dashed var(--nsk-line);
}
.nsk-bib dt {
	flex: 0 0 4em;
	color: var(--nsk-muted);
}
.nsk-bib dd {
	margin: 0;
}
.nsk-buy {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 0;
}
.nsk-buy a {
	padding: 6px 12px;
	border: 1px solid var(--nsk-navy);
	border-radius: 4px;
	font-size: 13px;
	color: var(--nsk-navy);
	text-decoration: none;
}

.nsk-teacher,
.nsk-review {
	margin-bottom: 14px;
	padding: 18px;
	background: #fff;
	border: 1px solid var(--nsk-line);
	border-radius: 8px;
}
.nsk-teacher {
	border-top: 3px solid var(--nsk-navy);
	background: var(--nsk-gold-pale);
}
.nsk-teacher__head,
.nsk-review__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	margin-bottom: 10px;
}
.nsk-teacher__name,
.nsk-review__name {
	margin: 0;
	font-weight: 700;
}
.nsk-review__head time,
.nsk-review__tags {
	font-size: 12px;
	color: var(--nsk-muted);
}
.nsk-review__tags {
	margin: 0 0 8px;
}
.nsk-teacher__body,
.nsk-review__body {
	margin: 0;
	font-size: 14px;
	line-height: 1.85;
}
.nsk-teacher__body > div + div,
.nsk-review__body > div + div {
	margin-top: 10px;
}
.nsk-teacher__body dt,
.nsk-review__body dt {
	font-size: 12px;
	font-weight: 700;
	color: var(--nsk-navy);
}
.nsk-teacher__body dd,
.nsk-review__body dd {
	margin: 2px 0 0;
}

/* フォーム */
.nsk-lead {
	margin: 0 0 4px;
	font-size: 14px;
	color: var(--nsk-muted);
}
.nsk-form {
	display: grid;
	gap: 16px;
	padding: 20px 16px;
	background: var(--nsk-mist);
	border-radius: 8px;
}
.nsk-field {
	display: grid;
	gap: 6px;
	min-width: 0;
}
.nsk-field-row {
	display: grid;
	gap: 16px;
}
.nsk-field__label {
	font-size: 14px;
	font-weight: 700;
}
.nsk-field__label em {
	margin-left: 6px;
	padding: 1px 6px;
	background: var(--nsk-red);
	color: #fff;
	font-style: normal;
	font-size: 10px;
	border-radius: 2px;
	vertical-align: 1px;
}
.nsk-field input[type="text"],
.nsk-field input[type="url"],
.nsk-field input[type="email"],
.nsk-field select,
.nsk-field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid var(--nsk-line);
	border-radius: 4px;
	background: #fff;
	font: inherit;
	font-size: 16px; /* スマホで拡大されないように */
}
.nsk-field small {
	font-size: 12px;
	color: var(--nsk-muted);
}
.nsk-rate {
	display: inline-flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
}
.nsk-rate input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
.nsk-rate label {
	padding: 0 2px;
	font-size: 30px;
	line-height: 1;
	color: var(--nsk-line);
	cursor: pointer;
}
.nsk-rate input:checked ~ label,
.nsk-rate label:hover,
.nsk-rate label:hover ~ label {
	color: var(--nsk-gold);
}
.nsk-rate input:focus-visible + label {
	outline: 2px solid var(--nsk-navy);
}
.nsk-check {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	font-size: 13px;
	line-height: 1.6;
}
.nsk-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.nsk-btn {
	justify-self: start;
	padding: 14px 28px;
	border: 0;
	border-radius: 4px;
	background: var(--nsk-navy);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}
.nsk-btn:disabled {
	opacity: .6;
	cursor: wait;
}
.nsk-form__msg {
	margin: 0;
	white-space: pre-line;
	font-size: 14px;
}
.nsk-form__msg:empty {
	display: none;
}
.nsk-form__msg.is-error {
	color: var(--nsk-red);
}
.nsk-form__msg.is-ok {
	padding: 12px;
	background: #fff;
	border-left: 3px solid var(--nsk-gold);
}
.nsk-form__note {
	margin: 0;
	font-size: 11px;
	color: var(--nsk-muted);
}

/* 掲示板（書き込みの一覧） */
.nsk-appeal {
	margin: 0;
	padding: 12px 16px;
	border-left: 3px solid var(--nsk-gold);
	background: var(--nsk-gold-pale);
	font-size: 14px;
	line-height: 1.8;
}
.nsk-appeal p {
	margin: 0;
}
.nsk-appeal p + p {
	margin-top: 4px;
}
.nsk-usage {
	padding: 12px;
	background: #fff;
	border: 1px solid var(--nsk-line);
	border-radius: 6px;
}
.nsk-h3 {
	margin: 0 0 12px;
	font-size: 16px;
}
.nsk-btn--small {
	padding: 8px 16px;
	font-size: 13px;
	text-decoration: none;
}
.nsk-thread {
	margin: 0;
	padding: 0;
	list-style: none;
	background: #fff;
	border: 1px solid var(--nsk-line);
	border-radius: 8px;
}
.nsk-res {
	position: relative;
	padding: 14px 16px 12px;
	border-top: 1px solid var(--nsk-line);
	scroll-margin-top: 90px;
}
.nsk-res:first-child {
	border-top: 0;
}
.nsk-res:target {
	background: var(--nsk-gold-pale);
}
.nsk-res__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 10px;
	font-size: 12px;
	color: var(--nsk-muted);
}
.nsk-res__no {
	padding: 0;
	border: 0;
	background: none;
	color: var(--nsk-navy);
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
	text-decoration: underline dotted;
}
.nsk-res__name {
	color: #2e7d4f;
	font-weight: 700;
}
.nsk-res__id {
	font-family: ui-monospace, Menlo, Consolas, monospace;
}
.nsk-res__tags {
	margin: 4px 0 0;
	font-size: 11px;
	color: var(--nsk-muted);
}
.nsk-res__body {
	margin-top: 6px;
	font-size: 15px;
	line-height: 1.8;
	overflow-wrap: anywhere;
}
.nsk-anchor {
	color: var(--nsk-navy);
}
.nsk-res__report {
	position: absolute;
	top: 12px;
	right: 12px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--nsk-muted);
	font-size: 11px;
	cursor: pointer;
}
.nsk-res__report:hover {
	color: var(--nsk-red);
}
/* 成瀬アカデミー講師の回答 */
.nsk-answer {
	margin: 10px 0 0 12px;
	padding: 10px 14px;
	border-left: 3px solid var(--nsk-navy);
	background: #f3f6fa;
	border-radius: 0 6px 6px 0;
}
.nsk-answer__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	font-size: 12px;
	color: var(--nsk-muted);
}
.nsk-answer__badge {
	padding: 2px 8px;
	background: var(--nsk-navy);
	color: #fff;
	font-weight: 700;
	border-radius: 2px;
}
.nsk-answer__name {
	color: var(--nsk-navy);
	font-weight: 700;
}
.nsk-answer__body {
	margin-top: 6px;
	font-size: 15px;
	line-height: 1.8;
	overflow-wrap: anywhere;
}
.nsk-answer-tool {
	margin: 8px 0 0 12px;
}
.nsk-answer-tool__open {
	padding: 0;
	border: 0;
	background: none;
	color: var(--nsk-navy);
	font-size: 12px;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
}
.nsk-answer-form {
	display: grid;
	gap: 8px;
	margin-top: 8px;
}
.nsk-answer-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid var(--nsk-line);
	border-radius: 4px;
	font: inherit;
	font-size: 16px;
}
.nsk-answer-form .nsk-btn {
	justify-self: start;
}

.nsk-board__form {
	margin: 8px 0;
	scroll-margin-top: 90px;
}
.nsk-open-row {
	margin: 8px 0;
}
.nsk-open-row .nsk-btn[aria-expanded="true"] {
	background: #fff;
	color: var(--nsk-navy);
	box-shadow: inset 0 0 0 1px var(--nsk-navy);
}
.nsk-more-fields summary {
	cursor: pointer;
	font-size: 13px;
	color: var(--nsk-navy);
}
.nsk-more-fields .nsk-field-row {
	margin-top: 12px;
}
.nsk-field--name input {
	max-width: 320px;
}

@media (min-width: 720px) {
	.nsk-wrap {
		padding: 20px 24px 48px;
	}
	.nsk-cover {
		width: 110px;
	}
	.nsk-book .nsk-cover {
		width: 160px;
	}
	.nsk-book .nsk-cover img {
		max-height: 230px;
	}
	.nsk-field-row {
		grid-template-columns: repeat(3, 1fr);
	}
	.nsk-form {
		padding: 28px;
	}
}

@media (max-width: 480px) {
	.nsk-book {
		flex-direction: column;
		align-items: center;
	}
	.nsk-book__info {
		width: 100%;
	}
}

/* 右下のボタン（button要素）の見た目をそろえる */
button.nsk-fab {
	border: 0;
	cursor: pointer;
	font-family: inherit;
}

/* 「参考書評価を見る」のパネル（科目→レベル） */
.nsk-picker {
	position: fixed;
	right: max(16px, env(safe-area-inset-right));
	bottom: calc(max(16px, env(safe-area-inset-bottom)) + 60px);
	z-index: 81;
	width: min(420px, calc(100vw - 32px));
	max-height: min(70vh, 560px);
	overflow-y: auto;
	padding: 14px 16px 16px;
	border: 1px solid var(--nsk-line);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}
.nsk-picker[hidden] {
	display: none;
}
.nsk-picker__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 6px;
}
.nsk-picker__title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--nsk-navy);
}
.nsk-picker__close {
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: var(--nsk-mist);
	color: var(--nsk-ink);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}
.nsk-picker__step {
	margin: 10px 0 6px;
	color: var(--nsk-muted);
	font-size: 13px;
}
.nsk-picker__subjects {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nsk-picker__subjects button {
	padding: 7px 12px;
	border: 1px solid var(--nsk-line);
	border-radius: 999px;
	background: #fff;
	color: var(--nsk-navy);
	font: inherit;
	font-size: 14px;
	cursor: pointer;
}
.nsk-picker__subjects button[aria-pressed="true"] {
	border-color: #1e8449;
	background: #1e8449;
	color: #fff;
}
.nsk-picker .nsk-levels {
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 8px;
}
.nsk-picker .nsk-levels a {
	padding: 10px 12px;
	font-size: 14px;
}

/* 科目を選ぶ（スレの科目） */
.nsk-subject-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nsk-subject-grid a {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 14px 16px;
	border: 1px solid var(--nsk-line);
	border-radius: 6px;
	background: #fff;
	color: var(--nsk-navy);
	font-weight: 700;
	text-decoration: none;
}
.nsk-subject-grid a span {
	color: var(--nsk-muted);
	font-size: 12px;
	font-weight: 400;
}
.nsk-subject-grid a:hover,
.nsk-subject-grid a[aria-current="page"] {
	border-color: var(--nsk-gold);
}

/* スレの一覧 */
.nsk-topics {
	margin: 8px 0 0;
	padding: 0;
	border: 1px solid var(--nsk-line);
	border-radius: 6px;
	background: #fff;
	list-style: none;
}
.nsk-topics li + li {
	border-top: 1px solid var(--nsk-line);
}
.nsk-topics a {
	display: block;
	padding: 12px 16px;
	color: var(--nsk-ink);
	text-decoration: none;
}
.nsk-topics a:hover .nsk-topics__title {
	text-decoration: underline;
}
.nsk-topics__title {
	display: block;
	color: var(--nsk-navy);
	font-weight: 700;
	line-height: 1.5;
	overflow-wrap: anywhere;
}
.nsk-topics__meta {
	display: block;
	margin-top: 2px;
	color: var(--nsk-muted);
	font-size: 12px;
}
.nsk-topics__subject {
	display: inline-block;
	margin-right: 8px;
	padding: 0 8px;
	border-radius: 999px;
	background: var(--nsk-gold-pale);
	color: var(--nsk-navy);
}

/* スレ一覧のページ送り */
.nsk-pager {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 12px;
}
.nsk-pager a,
.nsk-pager span {
	min-width: 36px;
	padding: 6px 10px;
	border: 1px solid var(--nsk-line);
	border-radius: 4px;
	text-align: center;
	text-decoration: none;
	color: var(--nsk-navy);
}
.nsk-pager span {
	background: var(--nsk-navy);
	color: #fff;
}

/* オレンジのボタン（科目ページの「〇〇レベルの参考書をすべて見る」など）。白い文字が読める濃さにしている */
.nsk-btn--orange {
	background: #c2410c;
	color: #fff;
}
.nsk-btn--orange:hover,
.nsk-btn--orange:focus-visible {
	background: #9a3412;
	color: #fff;
}

/* どのページにも出す入口（科目ごとのスレ／参考書の評価） */
.nsk-board-nav {
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column; /* ボタンが2つでも3つでも同じ幅で横に並べる */
	gap: 8px;
	margin: 0 0 16px;
}
.nsk-board-nav a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 48px;
	padding: 8px 12px;
	border: 1px solid var(--nsk-navy);
	border-radius: 6px;
	background: #fff;
	color: var(--nsk-navy);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
}
.nsk-board-nav a span {
	font-size: 11px;
	font-weight: 400;
}
.nsk-board-nav a:hover {
	background: var(--nsk-mist);
}
.nsk-board-nav a[aria-current="page"] {
	background: var(--nsk-navy);
	color: #fff;
}

/* スマホでは、ボタンが4つになるページもあるので2列で折り返す */
@media (max-width: 600px) {
	.nsk-board-nav {
		grid-auto-flow: row;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.nsk-board-nav a:last-child:nth-child(odd) {
		grid-column: 1 / -1; /* 3つのときは最後のボタンを横いっぱいに */
	}
}

/* スレの下の「〇〇のスレ一覧へ」が2つ並ぶとき */
.nsk-more a + a {
	margin-left: 16px;
}

/* 上の「〇〇のスレを見る」で移動したとき、見出しが固定ヘッダーに隠れないようにする */
#subject-threads,
#book-threads {
	scroll-margin-top: 90px;
}

/* 一番下のボタンは、上の内容と間をあける */
.nsk-board-nav--bottom {
	margin: 32px 0 0;
}
