@charset "UTF-8";
/*
 * 特集記事（02）のスタイル
 *
 * 検索流入を取りに行く唯一のページ。読み物として成立する密度にする。
 */

/* ============================================================ ヘッダ */

.md-pr--top {
	margin: 18px 0 0;
	font-size: 11px;
	color: var(--md-ink-3);
}

.md-page--feature {
	display: flex;
	flex-direction: column;
	gap: 44px;
	padding-top: 26px;
}

.md-fhead {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.md-fhead__badges {
	margin: 0;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.md-fhead__kind {
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--md-red);
	color: #fff;
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 12px;
	line-height: 1.5;
}

.md-fhead__updated {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--md-surface-3);
	border: 1px solid var(--md-line-2);
	font-size: 12px;
	color: var(--md-ink-2);
}

.md-fhead__count {
	font-size: 12px;
	color: var(--md-ink-3);
}

.md-fhead__title {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 40px;
	line-height: 1.35;
	letter-spacing: .005em;
	max-width: 760px;
	color: var(--md-ink);
	text-wrap: pretty;
}

.md-fbody > p:first-child {
	font-size: 15px;
	line-height: 1.95;
	color: var(--md-ink-2);
}

/* ================================================== この記事の選び方 */

.md-criteria {
	border: 1.5px solid var(--md-line);
	border-radius: 14px;
	overflow: hidden;
	margin: 0 0 26px;
}

.md-criteria__head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 16px 22px;
	background: var(--md-surface);
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 19px;
	color: var(--md-ink);
}

.md-criteria__head .md-blockhead__bar {
	width: 8px;
	height: 20px;
	border-radius: 2px;
	background: var(--md-teal-2);
	display: block;
	flex: none;
}

.md-criteria__body {
	padding: 24px 22px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.md-criteria__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.md-criteria__card {
	padding: 16px;
	border: 1px solid var(--md-line-2);
	border-radius: 12px;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.md-criteria__cardhead {
	display: flex;
	align-items: center;
	gap: 8px;
}

.md-criteria__no {
	width: 24px;
	height: 24px;
	flex: none;
	border-radius: 999px;
	background: var(--md-red-pale);
	color: var(--md-red-dark);
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.md-criteria__title {
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 15px;
	color: var(--md-ink);
	line-height: 1.4;
}

.md-criteria__text {
	margin: 0;
	font-size: 12px;
	line-height: 1.75;
	color: var(--md-ink-2);
}

.md-criteria__note {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 12px 16px;
	border: 1px dashed var(--md-line-3);
	border-radius: 10px;
	background: var(--md-surface);
	font-size: 12.5px;
	color: var(--md-ink-2);
	line-height: 1.7;
}

.md-criteria__label {
	flex: none;
	font-family: var(--md-font-mono);
	font-size: 11px;
	color: var(--md-ink-3);
	letter-spacing: .08em;
}

/* ============================================================== 目次 */

.md-ftoc {
	border: 1.5px solid var(--md-line);
	border-radius: 14px;
	background: var(--md-surface);
	padding: 0;
	margin: 0 0 26px;
}

.md-ftoc__summary {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 16px 22px;
	cursor: pointer;
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 17px;
	color: var(--md-ink);
	list-style: none;
	min-height: 44px;
	box-sizing: border-box;
}

.md-ftoc__summary::-webkit-details-marker { display: none; }

.md-ftoc__summary .md-blockhead__bar {
	width: 8px;
	height: 20px;
	border-radius: 2px;
	background: var(--md-teal-2);
	display: block;
	flex: none;
}

.md-ftoc__summary::after {
	content: "▼";
	margin-left: auto;
	font-size: 11px;
	color: var(--md-ink-3);
}

.md-ftoc[open] .md-ftoc__summary::after { content: "▲"; }

.md-ftoc__count {
	font-family: var(--md-font-mono);
	font-weight: 400;
	font-size: 11.5px;
	color: var(--md-ink-3);
}

.md-ftoc__list {
	list-style: none;
	margin: 0;
	padding: 0 22px 18px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 24px;
}

.md-ftoc__item {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 7px 0;
	margin: 0;
	min-height: 0;
}

.md-ftoc__no {
	width: 22px;
	flex: none;
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 12px;
	color: var(--md-red);
	text-align: right;
}

.md-ftoc__item a {
	font-size: 13px;
	line-height: 1.6;
	color: var(--md-ink) !important;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.md-ftoc__item a:hover { color: var(--md-red) !important; }

/* ========================================================== 上位3作品 */

.md-sechead--feature { margin-bottom: 20px; }

.md-podium {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0 0 26px;
}

.md-podium__item {
	display: flex;
	gap: 24px;
	padding: 24px;
	border: 1.5px solid var(--md-line);
	border-radius: 14px;
	background: #fff;
	scroll-margin-top: 20px;
}

.md-podium__item--1 {
	border-color: var(--md-red-line);
	background: var(--md-red-bg);
}

.md-podium__rank {
	width: 66px;
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.md-podium__num {
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 54px;
	line-height: 1;
	color: var(--md-red);
}

.md-podium__item--1 .md-podium__num { font-size: 76px; }

.md-podium__label {
	font-family: var(--md-font-mono);
	font-size: 10px;
	letter-spacing: .08em;
	color: var(--md-ink-3);
}

.md-podium__cover {
	position: relative;
	width: 170px;
	height: 238px;
	flex: none;
	border-radius: 8px;
	background: var(--md-surface-2);
	border: 1px solid var(--md-line-4);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px 0;
	box-sizing: border-box;
}

.md-podium__cover img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	border: 1px solid var(--md-line-5);
	border-radius: 4px;
	background: #fbfaf9;
	display: block;
}

.md-podium__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.md-podium__title {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 21px;
	line-height: 1.5;
	color: var(--md-ink);
}

.md-podium__title a { color: inherit; }
.md-podium__title a:hover { color: var(--md-red); }

.md-podium__meta,
.md-rest__meta {
	margin: 0;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 12.5px;
	color: var(--md-ink-3);
}

.md-podium__maker,
.md-rest__maker { color: var(--md-red); }

.md-podium__sep {
	width: 1px;
	height: 12px;
	background: var(--md-line-3);
	display: block;
}

.md-podium__score {
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: 10px;
}

.md-podium__stars {
	font-size: 14px;
	color: var(--md-red);
	letter-spacing: .05em;
}

.md-podium__num2 {
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 17px;
	color: var(--md-ink);
}

.md-podium__reviews {
	font-size: 12px;
	color: var(--md-ink-3);
}

.md-podium__genres {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.md-podium__buy {
	margin-top: auto;
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	padding-top: 4px;
}

.md-podium__price,
.md-rest__price {
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.md-podium__now {
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 26px;
	color: var(--md-red);
}

.md-podium__old {
	font-size: 12px;
	color: var(--md-ink-3);
}

.md-podium__btn {
	width: 220px;
	height: 50px;
}

.md-podium__btn .md-btn3d__label { font-size: 16px; }

/* ========================================================= 4位以降 */

.md-restdiv {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 6px;
}

.md-restdiv__label {
	font-family: var(--md-font-mono);
	font-size: 11px;
	color: var(--md-ink-3);
	flex: none;
}

.md-restdiv__line {
	height: 1px;
	background: var(--md-line);
	flex: 1;
	display: block;
}

.md-restlist {
	display: flex;
	flex-direction: column;
	margin: 0 0 26px;
}

.md-rest {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 18px 4px;
	border-bottom: 1px solid var(--md-line);
	scroll-margin-top: 20px;
}

.md-rest:last-child { border-bottom: none; }

.md-rest__rank {
	width: 44px;
	flex: none;
	text-align: center;
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 34px;
	line-height: 1;
	color: var(--md-red);
}

.md-rest__cover {
	position: relative;
	width: 88px;
	height: 124px;
	flex: none;
	border-radius: 6px;
	background: var(--md-surface-2);
	border: 1px solid var(--md-line-4);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 6px 0;
	box-sizing: border-box;
}

.md-rest__cover img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	border: 1px solid var(--md-line-5);
	border-radius: 3px;
	background: #fbfaf9;
	display: block;
}

.md-rest__badge {
	position: absolute;
	top: 0;
	left: 0;
	padding: 2px 6px;
	border-bottom-right-radius: 6px;
	background: var(--md-red);
	color: #fff;
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 10px;
	line-height: 1.4;
}

.md-rest__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.md-rest__title {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 16px;
	line-height: 1.5;
	color: var(--md-ink);
}

.md-rest__title a { color: inherit; }
.md-rest__title a:hover { color: var(--md-red); }

.md-rest__meta { gap: 12px; font-size: 12px; }
.md-rest__star { color: var(--md-red); }
.md-rest__score { color: var(--md-ink); font-weight: 700; }

.md-rest__buy {
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
}

.md-rest__price .md-podium__now { font-size: 20px; }

.md-rest__btn {
	width: 150px;
	height: 44px;
}

.md-rest__btn .md-btn3d__label { font-size: 13.5px; }

/* ========================================================== 関連特集 */

.md-frelated__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.md-frelated__item {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 14px 16px;
	border: 1.5px solid var(--md-line);
	border-radius: 12px;
	text-decoration: none !important;
	min-height: 44px;
	box-sizing: border-box;
}

.md-frelated__item:hover {
	border-color: var(--md-line-5);
	background: var(--md-surface);
}

.md-frelated__title {
	font-family: var(--md-font-round);
	font-weight: 800;
	font-size: 14px;
	line-height: 1.5;
	color: var(--md-ink);
}

.md-frelated__meta {
	font-size: 11px;
	color: var(--md-ink-3);
}

/* ======================================================= レスポンシブ */

@media screen and (max-width: 1023px) {
	.md-criteria__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.md-ftoc__list { grid-template-columns: minmax(0, 1fr); }
}

@media screen and (max-width: 834px) {
	.md-page--feature { gap: 28px; padding-top: 16px; }
	.md-fhead__title { font-size: 23px; }
	.md-fhead { gap: 12px; }

	.md-criteria__head { font-size: 17px; padding: 14px 16px; }
	.md-criteria__body { padding: 16px; gap: 14px; }
	.md-criteria__grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }

	.md-ftoc__summary { font-size: 15px; padding: 14px 16px; }
	.md-ftoc__list { padding: 0 16px 14px; }

	.md-podium__item {
		flex-wrap: wrap;
		gap: 14px;
		padding: 16px;
	}

	.md-podium__rank {
		width: auto;
		flex-direction: row;
		align-items: baseline;
		gap: 8px;
	}

	.md-podium__num,
	.md-podium__item--1 .md-podium__num { font-size: 34px; }

	.md-podium__cover { width: 116px; height: 164px; }

	.md-podium__body {
		flex: 1 1 100%;
		gap: 9px;
	}

	.md-podium__title { font-size: 17px; }
	.md-podium__now { font-size: 21px; }

	.md-podium__buy {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	.md-podium__btn { width: 100%; height: 46px; }

	.md-rest {
		flex-wrap: wrap;
		gap: 12px;
		padding: 14px 0;
	}

	.md-rest__rank { width: 28px; font-size: 22px; }
	.md-rest__cover { width: 62px; height: 88px; }

	.md-rest__body { flex: 1 1 0; }
	.md-rest__title { font-size: 14px; }
	.md-rest__meta { gap: 8px; font-size: 11px; }

	.md-rest__buy {
		flex: 1 1 100%;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.md-rest__btn { width: 140px; height: 44px; }

	.md-frelated__grid { grid-template-columns: minmax(0, 1fr); }
}
