/* =========================================================
   Design Tokens（Figmaベース / 役割＋スケール命名）
   ========================================================= */
:root {
	/* ----- Color: Primary（ボタン・著者帯のグリーン） ----- */
	--color-primary-100: #e4f1ec;
	--color-primary-300: #c2e0d6;
	--color-primary-500: #a1d3c5;
	--color-primary-700: #7bb7a6;

	/* ----- Color: Secondary（キャッチ帯のパープル） ----- */
	--color-secondary-500: #465081;
	--color-secondary-700: #4d567f;

	/* ----- Color: Surface（背景・カード） ----- */
	--color-surface-mint: #cfe0d8;          /* メインビジュアル背景 */
	--color-surface-card: #ffffff;          /* カード */
	--color-surface-card-muted: rgba(255, 255, 255, 0.6); /* 半透明カード */

	/* ----- Color: Ink（文字色） ----- */
	--color-ink: #000000;
	--color-ink-inverse: #ffffff;

	/* ----- Typography: Family ----- */
	--font-serif: 'Shippori Mincho', serif;                 /* 明朝（タイトル等） */
	--font-sans: 'Noto Sans JP', system-ui, -apple-system, sans-serif; /* ゴシック（本文等） */

	/* ----- Typography: Size -----
	   モバイルファースト。ここはスマホ(〜767px)の基準。
	   画面が広がると下部の @media で上書きし、PCでFigmaの実pxになる。 */
	--text-xs: 0.75rem;    /* 12px */
	--text-base: 1rem;     /* 16px */
	--text-md: 1rem;       /* 16px */
	--text-lg: 1.0625rem;  /* 17px */
	--text-xl: 1.25rem;    /* 20px */
	--text-2xl: 1.5rem;    /* 24px */
	--text-3xl: 1.625rem;  /* 26px（セクション見出し） */
	--text-4xl: 1.75rem;   /* 28px */
	--text-5xl: 2.25rem;   /* 36px */
	--text-6xl: 2.5rem;    /* 40px */

	/* ----- Typography: Weight ----- */
	--weight-regular: 400;
	--weight-medium: 500;
	--weight-bold: 700;

	/* ----- Radius ----- */
	--radius-sm: 8px;
	--radius-md: 16px;
	--radius-lg: 24px;
	--radius-pill: 9999px; /* ボタン（高さの半分=ピル形） */

	/* ----- Layout ----- */
	--container-max: 1280px;
	--design-width: 1440;  /* メインビジュアル等のスケール基準幅 */
}

/* =========================================================
   Responsive Typography（方法2: メディアクエリでトークン上書き）
   ブレークポイント（@media内はvar()不可のため数値直書き）:
     - tablet : 768px
     - desktop: 1024px（= Figmaの実pxに到達）
   変化するサイズだけを上書き（--text-xs / --text-base は全域共通）
   ========================================================= */

/* Tablet（768px〜） */
@media (min-width: 768px) {
	:root {
		--text-md: 1.0625rem;  /* 17px */
		--text-lg: 1.125rem;   /* 18px */
		--text-xl: 1.375rem;   /* 22px */
		--text-2xl: 1.75rem;   /* 28px */
		--text-3xl: 2rem;      /* 32px */
		--text-4xl: 2.25rem;   /* 36px */
		--text-5xl: 3rem;      /* 48px */
		--text-6xl: 3.25rem;   /* 52px */
	}
}

/* Desktop（1024px〜 = Figma実px） */
@media (min-width: 1024px) {
	:root {
		--text-md: 1.125rem;   /* 18px */
		--text-lg: 1.25rem;    /* 20px */
		--text-xl: 1.5rem;     /* 24px */
		--text-2xl: 2rem;      /* 32px */
		--text-3xl: 2.25rem;   /* 36px */
		--text-4xl: 2.5rem;    /* 40px */
		--text-5xl: 3.75rem;   /* 60px */
		--text-6xl: 4.0625rem; /* 65px */
	}
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

* {
	margin: 0;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 80px;
}

body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: #fff;
	color: var(--color-ink);
	font-family: var(--font-sans);
	line-height: 1.5;
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

:focus-visible {
	outline: 3px solid var(--color-secondary-500);
	outline-offset: 3px;
}

a:focus-visible,
button:focus-visible {
	outline: 3px solid var(--color-secondary-500);
	outline-offset: 3px;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	display: block;
	max-width: 100%;
}

ul {
	list-style: none;
	padding: 0;
}

.site-main {
	flex: 1;
background: url('/design_items/pc/img/sononamae/site-main-bg.jpg') repeat;
background-size:contain;
}

.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: 1rem;
}

/* デフォルト（PC） */
.pc-only {
	display: block;
  }
  
  .sp-only {
	display: none;
  }
  
  /* SP（767px以下） */
  @media (max-width: 767px) {
	.pc-only {
	  display: none;
	}
  
	.sp-only {
	  display: block;
	}
  }
/* mainvisual */
	.mainvisual-stage {
		container-type: inline-size;
		--u: calc(100cqw / var(--design-width));
		position: relative;
		width: 100%;
		aspect-ratio: 1440 / 700;
		overflow: hidden;
		background: url('/design_items/pc/img/sononamae/mv-bg.png') no-repeat center center / cover;
		color: var(--color-ink);
	}

	.mainvisual-catch {
		position: absolute;
		left: calc(150 * var(--u));
		top: calc(50 * var(--u));
		display: flex;
		flex-direction: column;
		gap: 0;
		margin: 0;
		font-family: var(--font-sans);
		font-weight: 500;
		font-size: calc(60 * var(--u));
		line-height: 1;
		color: var(--color-ink-inverse);
	}

	.mainvisual-catch__line {
		display: inline-block;
		padding: calc(12 * var(--u)) calc(30 * var(--u));
		background: var(--color-secondary-500);
	}

	.mainvisual-catch__line--1 {
		align-self: flex-start;
	}

	.mainvisual-catch__line--2 {
		align-self: flex-start;
	}

	.mainvisual-lead {
		position: absolute;
		left: calc(190 * var(--u));
		top: calc(270 * var(--u));
		width: calc(580 * var(--u));
		font-family: var(--font-sans);
		color: var(--color-ink);
	}
	.mainvisual-lead p {
		margin: 0;
		font-weight: 400;
		font-size: calc(18 * var(--u));
		line-height: 1.5;
	}
	.mainvisual-lead-strong {
		margin-top: calc(20 * var(--u)) !important;
		font-weight: 700;
		font-size: calc(40 * var(--u)) !important;
		line-height: 1.2 !important;
	}

	@media (max-width: 767px) {
		.mainvisual-stage {
			display: flex;
			flex-direction: column;
			align-items: center;
			aspect-ratio: auto;
			overflow: visible;
			padding: 20% 0 20px;
			background-position: left center;
			background-size: auto 100%;
		}

		.mainvisual-stage::after {
			z-index: 1;
			content: '';
			position: absolute;
			right: 0;
			bottom: 0;
			width: 100%;
			height: 100px;
			background: #fff;
		}

		.mainvisual-catch,
		.mainvisual-lead,
		.mainvisual-book,
		.mainvisual-author,
		.mainvisual-title,
		.mainvisual-author-name,
		.mainvisual-credit {
			position: static;
			width: auto;
			height: auto;
			left: auto;
			top: auto;
		}

		.mainvisual-book {
			order: 1;
			position: relative;
			z-index: 2;
			width: 80%;
			height: auto;
		}

		.mainvisual-author {
			order: 2;
			position: relative;
			z-index: 1;
			width: 95%;
			margin-left: 5%;
			margin-top: -40px;
			padding: 60px 20px 20px 20px ;
			background: var(--color-primary-500);
		}

		.mainvisual-title {
			margin: 0;
			font-family: var(--font-serif);
			font-weight: 500;
			font-size: 36px;
			line-height: 1.2;
			color: var(--color-ink);
		}

		.mainvisual-author-name {
			display: block;
			margin-top: 8px;
			font-family: var(--font-serif);
			font-weight: 700;
			font-size: 24px;
			line-height: 1.2;
			color: var(--color-ink);
		}

		.mainvisual-catch {
			order: 3;
			margin-top: 24px;
			font-size: 24px;
			color: var(--color-ink);
		}

		.mainvisual-catch__line {
			background: none;
			padding: 0;
			color: var(--color-ink);
		}

		.mainvisual-lead {
			order: 4;
			width: 95%;
			margin-top: 16px;
			margin-left: 5%;
			padding: 10px 10px 10px 5%;
			background: #fff;
			z-index:6;
		}

		.mainvisual-lead p {
			font-size: 14px;
			line-height: 1.6;
		}

		.mainvisual-lead-strong {
			position: absolute;
			left: 10px;
			top: 30px;
			z-index: 3;
			display: flex;
			align-items: center;
			justify-content: center;
			width: 140px;
			height: 140px;
			margin: 0 !important;
			padding: 10px;
			border-radius: 50%;
			background: var(--color-secondary-500);
			font-size: 14px !important;
			line-height: 1.4 !important;
			text-align: center;
			color: #fff;
			transform: rotate(-15deg);
		}

		.mainvisual-credit {
			order: 5;
			z-index: 7;
			align-self: flex-end;
			font-size: 12px;
			background: #fff;
			padding: 5px;
		}
	}

	@media (min-width: 768px) {
		.mainvisual-book {
			position: absolute;
			left: calc(840 * var(--u));
			top: calc(50 * var(--u));
			width: calc(380 * var(--u));
			height: calc(580 * var(--u));
			object-fit: cover;
			z-index: 2;
		}

		/* 著者帯 */
		.mainvisual-author {
			position: absolute;
			left: calc(150 * var(--u));
			bottom: 0;
			width: calc(1290 * var(--u));
			height: calc(220 * var(--u));
			background: rgba(161, 211, 197, 0.9);
		}
		.mainvisual-title {
			position: absolute;
			left: calc(35 * var(--u));
			top: calc(35 * var(--u));
			width: calc(580 * var(--u));
			margin: 0;
			font-family: var(--font-serif);
			font-weight: 500;
			font-size: calc(65 * var(--u));
			line-height: 1.1;
			color: var(--color-ink);
		}
		.mainvisual-author-name {
			display: block;
			position: absolute;
			left: calc(15 * var(--u));
			top: calc(100 * var(--u));
			margin: 0;
			font-family: var(--font-serif);
			font-weight: 700;
			font-size: calc(35 * var(--u));
			line-height: 1.1;
			color: var(--color-ink);
		}
		.mainvisual-credit {
			position: absolute;
			left: calc(830 * var(--u));
			top: calc(650 * var(--u));
			margin: 0;
			font-family: var(--font-sans);
			font-weight: 400;
			font-size: calc(16 * var(--u));
			color: var(--color-ink);
		}
	}

	/* nav */
	.site-nav {
		width: 100%;
		background: var(--color-surface-card);
		color: var(--color-ink);
		border-bottom: 1px solid #dfdfdf;
	}
	.site-nav {
		position: sticky;
		top: 0;
		z-index: 100;
		background: var(--color-surface-card);
	}

	.site-nav__list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 0.5rem 2rem;
		min-height: 56px;
		margin: 0;
		padding: 0.5rem 1rem;
	}
	.site-nav__link {
		font-family: var(--font-sans);
		font-size: var(--text-base);
		font-weight: var(--weight-regular);
		color: var(--color-ink);
		white-space: nowrap;
		text-decoration: none;
	}
	.site-nav__link:hover {
		text-decoration: underline;
		text-underline-offset: 4px;
	}

	/* ハンバーガーメニューボタン（PCでは非表示） */
	.site-nav__toggle {
		display: none;
	}

	@media (max-width: 767px) {
		.site-nav {
			position: static;
			display: block;
			height: 0;
			padding: 0;
			overflow: visible;
		}

		.site-nav__toggle {
			background-color: #fff;
			display: block;
			position: fixed;
			right: 20px;
			top: 20px;
			z-index: 101;
			padding: 8px;
			border: none;
			cursor: pointer;
		}

		.site-nav__toggle-text {
			font-family: var(--font-sans);
			font-size: 20px;
			font-weight: 400;
			color: var(--color-ink);
			text-decoration: underline;
		}

		.site-nav__toggle[aria-expanded="true"] .site-nav__toggle-text {
			text-decoration: none;
		}

		.site-nav__toggle[aria-expanded="true"] .site-nav__toggle-text::after {
			content: ' ×';
		}

		.site-nav__list {
			position: fixed;
			top: 60px;
			left: 0;
			right: 0;
			bottom: 0;
			flex-direction: column;
			justify-content: flex-start;
			align-items: stretch;
			gap: 0;
			padding: 0;
			transform: translateX(100%);
			transition: transform 0.3s ease;
		}

		.site-nav__list.is-open {
			transform: translateX(0);
		}

		.site-nav__item {
			border-bottom: 1px solid #eee;
			background: var(--color-surface-card);
		}

		.site-nav__link {
			display: block;
			padding: 20px 24px;
			font-size: 16px;
		}
	}footer {
  background: #fff;
  text-align: center;
  padding: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-top: 1px solid #ddd;
}

footer p {
	color:#000;
  margin-bottom: 20px;
  font-size: 0.8rem;
}
footer a {
  text-align: center;
}
footer img {
  margin: 0 auto;
}/* bookinfo section */
	.bookinfo {
		width: calc(100% - 80px);
		padding: 60px 1rem;
		background: var(--color-surface-card);
		margin:0 auto 40px;
	}

	@media (max-width: 767px) {
		.bookinfo {
			width: 90%;
			padding-top: 40px;
			padding-bottom: 40px;
		}
	}

	.bookinfo__card {
		max-width: 1000px;
		margin: 0 auto;
	}

	.bookinfo__main {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 40px;
	}

	@media (min-width: 768px) {
		.bookinfo__main {
			flex-direction: row;
			align-items: flex-start;
		}
	}

	.bookinfo__cover {
		width: 100%;
		max-width: 320px;
		height: auto;
		flex-shrink: 0;
		border: 1px solid #dfdfdf;
	}

	.bookinfo__content {
		flex: 1;
		color: var(--color-ink);
	}

	.bookinfo__title {
		margin: 0 0 16px;
		font-family: var(--font-sans);
		font-size: var(--text-4xl);
		font-weight: var(--weight-bold);
		line-height: 1.2;
	}

	.bookinfo__author {
		margin: 0 0 4px;
		font-family: var(--font-sans);
		font-size: var(--text-2xl);
		font-weight: var(--weight-bold);
	}

	.bookinfo__release {
		margin: 0 0 24px;
		font-family: var(--font-sans);
		font-size: var(--text-base);
		font-weight: var(--weight-bold);
	}

	.bookinfo__desc {
		margin: 0 0 32px;
		font-family: var(--font-sans);
		font-size: var(--text-md);
		font-weight: var(--weight-medium);
		line-height: 1.8;
	}

	/* Common button */
	.btn-primary {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 12px;
		width: 100%;
		padding: 20px 48px;
		background: var(--color-primary-500);
		border-radius: 50px;
		font-family: var(--font-sans);
		font-size: var(--text-xl);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
		text-decoration: none;
		transition: background 0.15s ease;
	}
	.btn-primary:hover {
		background: var(--color-primary-700);
	}
	.btn-primary__arrow {
		font-family: var(--font-serif);
		font-size: var(--text-3xl);
	}

	.bookinfo__profile {
		margin-top: 60px;
		padding-top: 40px;
		border-top: 1px solid #ddd;
		color: var(--color-ink);
	}
	@media (max-width: 767px) {
		.bookinfo__profile {
			border-top: none;
		margin-top: 0;
		}
	}
	.bookinfo__profile-name {
		margin: 0 0 12px;
		font-family: var(--font-sans);
		font-size: var(--text-lg);
		font-weight: var(--weight-bold);
	}
	.bookinfo__profile-heading {
		margin: 0 0 16px;
		font-family: var(--font-sans);
		font-size: var(--text-2xl);
		font-weight: var(--weight-bold);
	}
	.bookinfo__profile-bio {
		margin: 0;
		font-family: var(--font-sans);
		font-size: var(--text-base);
		font-weight: var(--weight-medium);
		line-height: 1.8;
	}

	.bookinfo__message {
		display: block;
		width: 100%;
		max-width: 850px;
		height: auto;
		margin: 60px auto 0;
	}
@media (max-width: 767px) {
		.bookinfo__message {
			margin-top: 0;
		}
	}
	/* manga section */
	.manga {
		position: relative;
		width: 100%;
		padding: 40px 1rem 100px;
		background: rgba(255, 255, 255, 0.95);
		margin: 0 auto 40px;
	}

	@media (max-width: 767px) {
		.manga {
			padding-top: 40px;
			padding-bottom: 40px;
		}
	}

	.manga__inner {
		max-width: 1200px;
		margin: 0 auto;
		text-align: center;
	}

	.manga__title {
		margin: 0 0 16px;
		font-family: var(--font-sans);
		font-size: var(--text-3xl);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
	}

	.manga__subtitle {
		margin: 0 0 48px;
		font-family: var(--font-sans);
		font-size: var(--text-md);
		font-weight: var(--weight-medium);
		color: var(--color-ink);
	}

	.manga__slider-wrap {
		position: relative;
		max-width: 600px;
		margin: 0 auto;
	}

	.manga__slider {
		width: 100%;
	}

	.manga__slide {
		display: flex;
		justify-content: center;
	}

	.manga__slide-inner {
		width: 100%;
		max-width: 416px;
		aspect-ratio: 416 / 590;
	}

	.manga__slide-img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		border: 1px solid #dfdfdf;
	}

	.manga__slide-placeholder {
		font-family: var(--font-sans);
		font-size: var(--text-4xl);
		font-weight: var(--weight-bold);
		color: #999;
	}

	.manga__arrow {
		position: absolute;
		top: 50%;
		transform: translateY(-50%) rotate(180deg);
		width: 70px;
		height: 70px;
		border: 2px solid var(--color-ink);
		border-radius: 50%;
		background: transparent;
		color: var(--color-ink);
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		transition: background 0.15s ease, color 0.15s ease;
		z-index: 10;
	}
	.manga__arrow:hover {
		background: var(--color-ink);
		color: var(--color-surface-card);
	}
	.manga__arrow--prev {

		right: -100px;
	}
	.manga__arrow--next {
		left: -100px;
	}


	@media (max-width: 767px) {
		.manga__slider-wrap {
			padding: 0 0;
		}
		.manga__arrow {
			width: 50px;
			height: 50px;
					transform: translateY(0) rotate(180deg);
		}
		.manga__arrow--prev {
			top:auto;
			right: 0;
			bottom:-75px;
		}
		.manga__arrow--next {
			top:auto;
			left: 0;
			bottom:-75px;
		}
		
		.manga__arrow svg {
			width: 14px;
			height: 28px;
		}
		.manga__pagination-current{
			    font-size: var(--text-3xl);
		}
	}

	.manga__pagination {
		margin: 32px 0 0;
		font-family: var(--font-sans);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
	}
	.manga__pagination-current {
		font-size: var(--text-5xl);
	}
	.manga__pagination-total {
		font-size: var(--text-3xl);
	}

	/* recommendation section */
	.recommendation {
		position: relative;
		width: 100%;
		padding: 60px 1rem 80px;
		background: url('/design_items/pc/img/sononamae/recommendation_bg.png') no-repeat center center / cover #fff;
	}

	.recommendation__inner {
		max-width: 1000px;
		margin: 0 auto;
	}

	.recommendation__title {
		margin: 0 0 40px;
		font-family: var(--font-sans);
		font-size: var(--text-3xl);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
		text-align: center;
	}

	.recommendation__card {
		background: var(--color-surface-card-muted);
		padding: 0;
	}

	.recommendation__item {
		padding: 32px 24px;
		border-top: 2px solid var(--color-ink);
	}
	.recommendation__item:last-child {
		border-bottom: 2px solid var(--color-ink);
	}

	.recommendation__author {
		margin: 0 0 12px;
		font-family: var(--font-sans);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
	}
	.recommendation__role {
		font-size: var(--text-xl);
	}
	.recommendation__name {
		font-size: var(--text-2xl);
		margin-left: 0.5em;
	}

	.recommendation__comment {
		margin: 0;
		font-family: var(--font-sans);
		font-size: var(--text-xl);
		font-weight: var(--weight-medium);
		color: var(--color-ink);
		line-height: 1.8;
	}

	@media (min-width: 768px) {
		.recommendation__item {
			padding: 40px 32px;
		}
	}

	/* comment section */
	.comments {
		width: 100%;
		padding: 60px 1rem 80px;
		background: var(--color-surface-card);
	}

	.comments__inner {
		max-width: 1200px;
		margin: 0 auto;
	}

	.comments__title {
		margin: 0 0 40px;
		font-family: var(--font-sans);
		font-size: var(--text-3xl);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
		text-align: center;
	}

	.comments__grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 24px;
	}

	@media (min-width: 768px) {
		.comments__grid {
			grid-template-columns: repeat(2, 1fr);
			gap: 32px;
		}
	}

	.comments__item {
		position: relative;
		padding: 24px;
		background: var(--color-surface-card);
	}

	.comments__item::before {
		content: '';
		position: absolute;
		left: 0;
		top: 0;
		width: 2px;
		height: 100%;
		background: linear-gradient(to bottom, #fff, var(--color-primary-500));
	}

	.comments__item--long {
		grid-row: span 2;
	}

	@media (min-width: 768px) {
		.comments__item {
			padding: 32px;
		}
	}

	.comments__spoiler .comments__item {
		padding: 48px;
	}

	.comments__spoiler .comments__item::before {
		left: 20px;
		top: 20px;
		height: calc(100% - 40px);
	}

	@media (min-width: 768px) {
		.comments__spoiler .comments__item {
			padding: 64px;
		}
	}

	.comments__author {
		margin: 0 0 16px;
		font-family: var(--font-sans);
		color: var(--color-ink);
	}
	.comments__store {
		display: block;
		font-size: var(--text-base);
		font-weight: var(--weight-medium);
		margin-bottom: 4px;
	}
	.comments__name {
		font-size: var(--text-xl);
		font-weight: var(--weight-bold);
	}
	.comments__badge {
		display: inline-flex;
		align-items: center;
		gap: 4px;
		margin-left: 12px;
		padding: 4px 12px;
		background: #f5c842;
		border-radius: 4px;
		font-size: var(--text-xs);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
	}
	.comments__badge::before {
		content: '!';
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 18px;
		height: 18px;
		background: var(--color-ink);
		color: #f5c842;
		border-radius: 2px;
		font-size: 12px;
	}

	.comments__text {
		margin: 0;
		font-family: var(--font-sans);
		font-size: var(--text-base);
		font-weight: var(--weight-regular);
		color: var(--color-ink);
		line-height: 1.9;
	}
	.comments__text p {
		margin: 0 0 1em;
	}
	.comments__text p:last-child {
		margin-bottom: 0;
	}

	.comments__spoiler {
		margin-top: 40px;
	}

	.comments__spoiler-toggle {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 16px;
		width: 100%;
		padding: 32px 24px;
		background: url('/design_items/pc/img/sononamae/comments__spoiler-toggle.jpg') no-repeat center center / cover #fff;
		border: none;
		cursor: pointer;
		transition: background 0.15s ease;
	}
	.comments__spoiler-toggle:hover {
		filter: brightness(0.9);
	}
	.comments__spoiler-toggle[aria-expanded="true"] .comments__spoiler-icon {
		transform: rotate(180deg);
	}

	.comments__spoiler-label {
		font-family: var(--font-sans);
		font-size: var(--text-xl);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
	}

	.comments__spoiler-icon {
		color: var(--color-ink);
		transition: transform 0.3s ease;
	}

	.comments__spoiler-toggle:hover .comments__spoiler-icon {
		transform: translateY(5px);
	}

	.comments__spoiler-toggle[aria-expanded="true"]:hover .comments__spoiler-icon {
		transform: rotate(180deg) translateY(-5px);
	}

	.comments__spoiler-content {
		background: var(--color-primary-100);
		margin-left: calc(-50vw + 50%);
		margin-right: calc(-50vw + 50%);
		padding: 40px calc(50vw - 50%);
	}
	.comments__spoiler-content[hidden] {
		display: none;
	}

	.comments__grid--spoiler {
	}

	.comments__spoiler-close {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 8px;
		width: 100%;
		margin-top: 32px;
		padding: 16px;
		background: transparent;
		border: none;
		cursor: pointer;
		font-family: var(--font-sans);
		font-size: var(--text-lg);
		font-weight: var(--weight-medium);
		color: var(--color-ink);
		transition: opacity 0.15s ease;
	}
	.comments__spoiler-close:hover {
		opacity: 0.7;
	}
	.comments__spoiler-icon--up {
		transform: rotate(0);
	}

	/* backlist section */
	.backlist {
		width: 100%;
		padding: 60px 1rem 80px;
		background: var(--color-surface-card);
	}

	.backlist__inner {
		max-width: 1200px;
		margin: 0 auto;
	}

	.backlist__title {
		margin: 0 0 40px;
		font-family: var(--font-sans);
		font-size: var(--text-3xl);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
		text-align: center;
	}

	.backlist__card {
		display: flex;
		flex-direction: column;
		gap: 32px;
		max-width: 1000px;
		margin: 0 auto;
	}

	@media (min-width: 768px) {
		.backlist__card {
			flex-direction: row;
			align-items: flex-start;
			gap: 48px;
		}
	}

	.backlist__cover {
		width: 100%;
		max-width: 280px;
		height: auto;
		margin: 0 auto;
		border: 1px solid #dfdfdf;
	}

	@media (min-width: 768px) {
		.backlist__cover {
			margin: 0;
		}
	}

	.backlist__content {
		flex: 1;
	}

	.backlist__book-title {
		margin: 0 0 8px;
		font-family: var(--font-sans);
		font-size: var(--text-2xl);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
	}

	.backlist__author {
		margin: 0 0 24px;
		font-family: var(--font-sans);
		font-size: var(--text-xl);
		font-weight: var(--weight-bold);
		color: var(--color-ink);
	}

	.backlist__desc {
		margin: 0 0 32px;
		font-family: var(--font-sans);
		font-size: var(--text-base);
		line-height: 1.8;
		color: var(--color-ink);
	}