.sub-hero {
	width: 100%;
	margin: auto;
	padding: 0 10px 3em;
	background-color: #fff;
	border-radius: var(--radius-xl);

	.inner {
		width: 100%;
		height: 11.25rem;
		border-radius: var(--radius-xl);
		overflow: hidden;
		background: url("../../images/mv.jpg") center / cover no-repeat;
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		margin: 0 auto;
		max-width: 100%;

		&::after {
			content: "";
			position: absolute;
			inset: 0;
			background: rgba(0, 0, 0, 0.3);
		}

		@media (max-width: 768px) {
			height: 130px;
		}
	}

	.sub-hero__title {
		position: relative;
		z-index: 1;
		margin: 0;
		width: 90%;
		font-size: clamp(1.375rem, 1.15rem + 1.125vw, 2.5rem);
		font-weight: 600;
		color: #fff;
		text-align: center;
	}
}

.sub-section-head {
	text-align: center;
	margin: 0 auto 3em;

	.sub-section-head__title {
		margin: 0;
		font-weight: 600;
		line-height: 1.45;
		letter-spacing: 0.03em;
		color: var(--clr-text-main);
		font-size: clamp(1.375rem, 1.15rem + 1.125vw, 2.5rem);
	}

	.sub-section-head__line {
		margin: 1.625rem auto 0;
		display: flex;
		justify-content: center;
		width: 7.5rem;
		height: 0.375rem;
		border-radius: var(--radius-pill);
		overflow: hidden;

		@media (max-width: 768px) {
			width: 90px;
			height: 5px;
		}

		.sub-section-head__line-yellow {
			flex: 1;
			background: #f2c200;
		}

		.sub-section-head__line-blue {
			flex: 1;
			background: #184db8;
		}
	}
}


/* ------------------------------------------- Sub page: Blue CTA */
.sub-bluecta {
	margin: 5em auto 2em;

	.sub-bluecta__card {
		background: var(--clr-primary);
		color: #fff;
		border-radius: var(--radius-md);
		padding: 1em;
		box-shadow: var(--shadow-md);
		gap: 2em;

		@media (min-width: 900px) {
			display: grid;
			grid-template-columns: 1.15fr .85fr;
			gap: 0 2em;
			align-items: center;
		}

		.bcard__cta {
			margin-top: 1rem;
			display: flex;
			justify-content: center;

			@media (min-width: 900px) {
				grid-column: 1;
			}
		}

		.ui-btn--wide {
			width: min(22.5rem, 100%);
		}
	}

	.sub-bluecta__title {
		font-weight: 600;
		letter-spacing: 0.1rem;

		@media (min-width: 900px) {
			grid-column: 1;
		}
	}

	.sub-bluecta__desc {
		margin: 0 0 0.875rem;
		line-height: 1.8;

		@media (min-width: 900px) {
			grid-column: 1;
			margin: 0;
			line-height: 2.0;
		}
	}

	.sub-bluecta__media {
		margin: 0.75rem 0 1rem;
		position: relative;
		overflow: visible;

		@media (min-width: 900px) {
			margin: 0;
			grid-column: 2;
			grid-row: 1 / span 3;
		}

		/* 背景の白四角を画像の下部2/3に配置 */
		&::before {
			content: "";
			position: absolute;
			bottom: 0;
			left: 0;
			right: 0;
			height: 66%;
			background: #fff;
			border-radius: var(--radius-md);
			z-index: 0;
		}

		.sub-bluecta__media-float {
			position: relative;
			z-index: 1;
			padding: 0.75rem;
			display: flex;
			justify-content: center;

			@media (min-width: 900px) {
				padding: 18px;
			}
		}

		img {
			width: min(26.25rem, 100%);
			height: auto;
			display: block;
			opacity: 1;
			transform: none;

			@media (min-width: 900px) {
				width: min(520px, 100%);
			}
		}
	}
}

/* ------------------------------------------- Sub page: STEP Blocks */
.sub-step {
	padding: 1.5rem 0 2.5rem;
}

.sub-step .inner {
	max-width: var(--layout-inner-width);
	margin: 0 auto;
	padding: 0 var(--space-inner);
}

.sub-step__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.625rem;
	align-items: start;

	@media (max-width: 768px) {
		grid-template-columns: 1fr;
		gap: 22px;
		margin: 0px 10px;
	}
}

.sub-step-card {
	background: #d1e5ef;
	border-radius: var(--radius-md);
	padding: 2.75rem 1.125rem 1.125rem;
	position: relative;
	box-shadow: var(--shadow-md);
	border: 0.062rem solid #fff;

	.sub-step-card__badge {
		position: absolute;
		top: -0.8em;
		left: 0;
		right: 0;
		margin: auto;
		background: var(--clr-secondary);
		color: #fff;
		font-weight: 600;
		letter-spacing: .06em;
		padding: 0.3em 2em;
		border-radius: var(--radius-pill);
		font-family: "Oswald", sans-serif;
		font-size: 1.2em;
		line-height: 1;
		border: 0.062rem solid #fff;
		width: fit-content;
	}

	.sub-step-card__title {
		margin: 0 0 0.875rem;
		text-align: center;
		font-weight: 600;
		font-size: 1rem;
		line-height: 1.6;
		color: var(--clr-text-main);
	}

	.sub-step-card__links {
		display: grid;
		grid-template-columns: 1fr;
		gap: 0.75rem;

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

	.sub-step-card__btn {
		height: 2.75rem;
		border-radius: var(--radius-pill);
		border: 0.125rem solid #2f66ff;
		background: #fff;
		color: #2f66ff;
		text-decoration: none;
		font-weight: 600;
		display: flex;
		align-items: center;
		justify-content: center;
		position: relative;
		padding: 0 2.75rem 0 1.125rem;
		box-shadow: 0 0.375rem 0.75rem rgba(0, 0, 0, .08);

		@media (min-width: 768px) {
			padding: 0 36px 0 14px;
		}

		&:hover {
			background: #2f66ff;
			color: #fff;
		}

		.sub-step-card__btn-arrow {
			position: absolute;
			right: 1.125rem;
			top: 50%;
			transform: translateY(-50%);
			font-size: 1.125rem;
			font-weight: 600;

			@media (min-width: 768px) {
				right: 14px;
			}
		}
	}
}

/* ------------------------------------------- UI Button Pattern */
.ui-btn {
	width: 100%;
	height: 4rem;
	padding: 0 var(--space-inner);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 0.125rem solid var(--clr-primary);
	box-shadow: var(--shadow-md);
	border-radius: var(--radius-pill);
	background: #fff;
	color: var(--clr-primary);
	font-weight: 600;
	font-size: 0.938rem;
	text-decoration: none;
	position: relative;

	&.ui-btn--wide {
		width: min(22.5rem, 100%);
	}

	.ui-btn__text {
		padding-right: 1.625rem;
		line-height: 1;
	}

	.ui-btn__arrow {
		position: absolute;
		right: 1.125rem;
		top: 50%;
		transform: translateY(-50%);
		display: inline-flex;
	}
}


/* ------------------------------------------- Pagination */
.pager {
	margin-top: 2.125rem;
	display: flex;
	justify-content: center;
	gap: 10px;
	align-items: center;

	.pager__num,
	.pager__btn {
		width: 2.75rem;
		height: 2.75rem;
		border-radius: var(--radius-sm);
		border: 0.062rem solid var(--clr-grey-300);
		display: inline-flex;
		align-items: center;
		justify-content: center;
		text-decoration: none;
		color: var(--clr-primary);
		font-weight: 600;
		background: #fff;

		@media (max-width: 768px) {
			width: 40px;
			height: 40px;
		}

		&.is-active {
			background: var(--clr-primary);
			color: #fff;
			border-color: var(--clr-primary);
		}

		&:hover {
			border-color: var(--clr-primary);
		}
	}

	.pager__btn--prev,
	.pager__btn--next {
		background: #f0f5fa;
	}
}


/* ===============================
   Card
================================ */
.bcard {

	.bcard__inner {
		height: 100%;
		display: flex;
		flex-direction: column;
		position: relative;
		padding-top: 0;
		padding-bottom: 0;
		background: #fff;
		border-radius: var(--radius-lg);
		height: 100%;
		overflow: visible;
		box-shadow: 0 0.125rem 0.125rem rgba(0, 0, 0, .08);
	}

	.bcard__balloon {
		position: absolute;
		left: 50%;
		top: 0;
		transform: translate(-50%, -100%);
		z-index: 50;
		padding: 10px 1.125rem;
		font-weight: 600;
		background: #fff;
		border: 0;
		border-radius: var(--radius-pill);
		white-space: nowrap;
		box-shadow: var(--shadow-md);
		color: var(--clr-primary);

		&::after {
			content: "";
			position: absolute;
			left: 50%;
			bottom: -10px;
			transform: translateX(-50%);
			border-left: 10px solid transparent;
			border-right: 10px solid transparent;
			border-top: 10px solid #fff;
			filter: drop-shadow(0 0.375rem 10px rgba(0, 0, 0, .12));
		}
	}

	.bcard__media {
		background: var(--clr-grey-300);
		overflow: hidden;
		border-radius: 1.125rem 1.125rem 0 0;
		margin-top: -1.25rem;

		img {
			width: 100%;
			aspect-ratio: 16/9;
			object-fit: cover;
			display: block;
			transform: scale(1.02);
			transition: transform var(--transition-slow);
		}
	}

	&:hover {
		.bcard__media img {
			transform: scale(1.08);
		}
	}

	.bcard__body {
		padding: 1em;
	}

	.bcard__title {
		margin: 0 0 10px;
		font-weight: 600;
		line-height: 1.7;
		font-size: 1rem;
	}

	.bcard__features {
		margin-top: 0.75rem;
		background: #eef3f7;
		border-radius: var(--radius-md);
		padding: 0.875rem;
	}

	.bcard__feature {
		padding: 0.75rem 0;
		border-top: 0.062rem solid rgba(0, 0, 0, .12);

		&:first-child {
			border-top: 0;
			padding-top: 0.25rem;
		}
	}

	.bcard__label {
		display: inline-flex;
		align-items: center;
		height: 1.625rem;
		padding: 0 0.75rem;
		border-radius: var(--radius-sm);
		background: var(--clr-green);
		color: #fff;
		font-weight: 600;
		font-size: 0.75rem;
	}

	.bcard__feature-text {
		margin: 0.5rem 0 0;
		font-weight: 600;
		color: rgba(0, 0, 0, .75);
		line-height: 1.6;
	}

	.bcard__cta {
		margin-top: auto;
		display: flex;
		justify-content: center;
		padding: 1em;
	}
}

.bcard-btn {
	width: 100%;
	height: 4.5rem;
	padding: 0 var(--space-inner);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 0.125rem solid var(--clr-primary);
	border-radius: var(--radius-pill);
	background: #fff;
	color: var(--clr-primary);
	font-weight: 600;
	font-size: 1rem;
	text-decoration: none;
	position: relative;

	&:hover {
		background: var(--clr-primary);
		color: #fff;
	}

	.bcard-btn__text {
		padding-right: 1.625rem;
		line-height: 1.5;
		text-align: center;
	}

	.bcard-btn__arrow {
		position: absolute;
		right: 1.125rem;
		top: 50%;
		transform: translateY(-50%);
		display: inline-flex;
		align-items: center;
	}
}

.sp {
	display: none;
}

@media (max-width: 768px) {
	.sp {
		display: block;
	}
}


/* ------------------------------------------- Benefit Slider & Cards */

.benefit {
	margin: 3em 10px 5em;

	.sub-section-head {
		margin: 0 auto 6em;

		@media (max-width: 768px) {
			margin: 0 auto 3em;
		}
	}

	.benefit-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		column-gap: 1.5rem;
		row-gap: 3.75rem;

		@media (max-width: 1024px) {
			grid-template-columns: repeat(2, 1fr);
		}

		@media (max-width: 768px) {
			grid-template-columns: 1fr;
		}
	}
}

.benefit-slider {
	position: relative;

	.benefit-slider__nav {
		display: none;

		@media (max-width: 768px) {
			display: grid;
			place-items: center;
			position: absolute;
			top: 46%;
			transform: translateY(-50%);
			width: 44px;
			height: 44px;
			border-radius: var(--radius-pill);
			border: 0;
			background: var(--clr-primary);
			color: #fff;
			z-index: 30;
			cursor: pointer;
			box-shadow: 0 6px 14px rgba(0, 0, 0, .18);

			&.benefit-slider__nav--prev {
				left: -6px;
			}

			&.benefit-slider__nav--next {
				right: -6px;
			}

			&:disabled {
				opacity: .35;
				cursor: default;
			}
		}
	}

	.benefit-grid.js-benefit-slider {
		@media (max-width: 768px) {
			display: flex;
			gap: 16px;
			overflow-x: auto;
			overflow-y: visible;
			scroll-snap-type: x mandatory;
			-webkit-overflow-scrolling: touch;
			padding: 8px 14px 18px;
			margin: 0 -14px;
			scroll-behavior: smooth;
			scrollbar-width: none;

			&::-webkit-scrollbar {
				display: none;
			}

			.bcard {
				flex: 0 0 86%;
				scroll-snap-align: center;
				display: flex;

				.bcard__inner {
					flex: 1;
				}

				.bcard__balloon {
					top: 35px;
					transform: translate(-50%, -100%);
				}

				.bcard__media {
					margin-top: 0;
				}
			}
		}
	}
}

/* ------------------------------------------- Page Nav Area */
.page-nav-section {
	.page-nav {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1.125rem;
		justify-items: center;

		@media (max-width: 768px) {
			grid-template-columns: 1fr;
			gap: 14px;
		}
	}

	.page-nav__btn {
		width: 80%;
		height: 3.75rem;
		min-width: 0;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;

		@media (max-width: 768px) {
			width: 90%;
			max-width: 280px;
		}

		.bcard-btn__text {
			min-width: 0;
			padding-right: 2.125rem;
			overflow: hidden;
			text-overflow: ellipsis;
			white-space: nowrap;
		}

		.bcard-btn__arrow {
			right: 1.125rem;
		}
	}
}

/* ------------------------------------------- Policy & Profile */
.policy-list {
	margin: 1.125rem 0 0;
	padding: 0 var(--space-inner);
	list-style: none;

	li {
		position: relative;
		padding-left: 1.125rem;
		margin: 10px 0;
		line-height: 2.0;
		color: rgba(0, 0, 0, .65);
		font-weight: 600;

		&::before {
			content: "・";
			position: absolute;
			left: 0;
			top: 0;
			color: rgba(0, 0, 0, .55);
		}
	}
}

.reviewer-profile {
	margin: 0 auto 5em;
}

.reviewer-card {
	background: #EAF6F1;
	border-radius: 1.375rem;
	padding: 1.125rem;
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	box-shadow: var(--text-shadow-sm);
	border-radius: var(--radius-md);

	@media (min-width: 900px) {
		grid-template-columns: 320px 1fr;
		gap: 22px;
		padding: 22px;
		align-items: start;
	}

	.reviewer-card__photo {
		margin: 0;
		border-radius: var(--radius-lg);
		overflow: hidden;
		background: #dfeee7;

		img {
			width: 100%;
			height: auto;
			display: block;
		}
	}

	.reviewer-card__name {
		margin: 0.125rem 0 10px;
		font-weight: 600;
		font-size: 1.25rem;
		line-height: 1.3;
		color: var(--clr-text-main);


	}

	.reviewer-card__badges {
		display: flex;
		flex-wrap: wrap;
		gap: 0.5rem;
		margin: 0 0 0.875rem;
	}
}

.reviewer-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.438rem 0.75rem;
	border-radius: var(--radius-sm);
	background: var(--clr-green);
	color: #fff;
	font-weight: 600;
	font-size: 0.75rem;
	line-height: 1;
}

/* ------------------------------------------- Single Page Hero */
.single-hero {
	.inner {
		display: grid;
		gap: 1em;
	}

	.single-hero__cats {
		display: flex;
		gap: 1em;
		flex-wrap: wrap;
	}

	.single-pill {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 0.2em 0.8em;
		border: 0.125rem solid var(--clr-primary);
		border-radius: var(--radius-pill);
		color: var(--clr-primary);
		font-weight: 600;
		text-decoration: none;
		background: #fff;
		transition: 0.3s;
		font-size: 0.875em;
		line-height: 1.3;

		&:hover {
			background: var(--clr-primary);
			color: #fff;
		}
	}

	.single-hero__title {
		font-size: clamp(0.875rem, 0.725rem + 0.75vw, 1.625rem);
	}

	.single-hero__tags {
		display: flex;
		flex-wrap: wrap;
		gap: 1em;
		font-size: 0.8em;

		.single-hash {
			color: var(--clr-primary);
			text-decoration: none;
			font-weight: 600;

			&:hover {
				text-decoration: underline;
			}
		}
	}

	.single-hero__meta {
		display: flex;
		gap: 1em;
		flex-wrap: wrap;
		align-items: center;
		font-weight: 600;
		font-size: 0.875em;
	}

	.single-hero__media {
		margin: 1em auto 0;

		img {
			width: 100%;
			height: 18.75rem;
			display: block;
			border-radius: var(--radius-md);
			aspect-ratio: 6 / 1;
			object-fit: cover;
			object-position: center;

			@media (max-width: 768px) {
				height: auto;
				aspect-ratio: 12 / 6;
			}
		}
	}
}


.single-meta {
	display: inline-flex;
	gap: 0.4em;
	align-items: center;
	letter-spacing: normal;
	font-weight: 400;
	color: #bbb;

	.single-meta__icon {
		display: inline-flex;
		align-items: center;
	}
}


/* LINE Parts */
/* ------------------------------------------- LINE Registration Section: Layout Fixed */
.single-line__card {
	padding: 2.5rem 0;
	max-width: 100%;
	margin: 2em auto;
}

.page-line__content .single-line__card {
	padding: 0;
	margin: 0 auto;
}

.page-line__content .line__card--hero-layout {
	padding: 1.5rem 0;
}

.line__card {
	display: none;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	background: #fff;
	padding: 3.5rem 12rem 3rem;
	flex-direction: column;
	align-items: center;
	text-align: center;
	max-width: 100%;
	margin: 0 auto;
	position: relative;
}

.page-line__content .line__card {
	display: flex;
	width: 100%;
	padding: 2rem 1.8rem 2rem;
}

.line__card__pc {
	display: block;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	background: #fff;
	padding: 3rem 3rem 3rem;
	flex-direction: column;
	align-items: center;
	text-align: center;
	max-width: 100%;
	margin: 0 auto;
	position: relative;
}

.page-line__content .line__card__pc {
	display: none;
}

.line__card__pc__content {
	display: flex;
	gap: 2.5rem;
}

.line__card__pc__content .line__card__pc__left,
.line__card__pc__content .line__card__pc__right {
	width: 100%;
}

.line__card__pc .lp-cta-wrap {
	max-width: 100%;
}


.line__card__tit {
	font-size: 2rem;
	line-height: 1;
	text-align: center;
	color: #05c755;
	margin-bottom: 1.2rem;
}

/* バッジエリア */
.line__card__badges {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-bottom: 1.5rem;
}

.page-line__content .line__card__badges {
	margin-bottom: 0rem;
}

.line__card__pc .line__card__badges {
	margin-bottom: 3.2rem;
}

.line__card__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0.8rem;
	background: #fff;
	color: #f0c828;
	border: 1px solid #f0c828;
	font-weight: 600;
	border-radius: 4px;
	font-size: 1rem;
	line-height: 1;
}

.page-line__content .line__card__badge {
	font-size: 0.85rem;
}

.line__card__head {
	color: var(--clr-text-main);
	font-size: clamp(1.25rem, 4.5vw, 1.8rem);
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 1.5rem;
	border: none;
	padding: 0;
	text-align: center;
}

.page-line__content .line__card__head {
	font-size: 1.25rem !important;
	margin: 0 0 1.2rem;
}

.line__card__benefit-box {
	background: #f9f9f9;
	border-radius: 12px;
	padding: 1.75rem 1.5rem;
	width: 100%;
	margin-bottom: 3.5rem;
}

.page-line__content .line__card__benefit-box {
	padding: 1.2rem 1.5rem;
	margin-bottom: 3rem;
}

.line__card__pc .line__card__benefit-box {
	margin-bottom: 0;
}

.benefit-box__lead {
	font-weight: 600;
	color: #666;
	margin-bottom: 1.25rem;
	font-size: 0.9rem;
}

.page-line__content .benefit-box__lead {
	font-size: 0.85rem;
	margin-bottom: 0.5rem;
}

.benefit-box__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: inline-flex;
	flex-direction: column;
	gap: 0.6rem;
	text-align: left;
}

.page-line__content .benefit-box__list {
	gap: 0.45rem;
}

.benefit-box__list li {
	display: flex;
	align-items: center;
	font-weight: 700;
	color: #333;
	font-size: clamp(1rem, 3.5vw, 1.125rem);
}

.page-line__content .benefit-box__list li {
	font-size: 0.9rem;
}

.benefit-box__list li::before {
	content: "・";
	margin-right: 10px;
	font-size: 1.2em;
}

.page-line__content .benefit-box__list li::before {
	content: "・";
	margin-right: 5px;
	font-size: 0.9em;
}

/* 吹き出し */
.line__card__cta {
	position: relative;
	width: 100%;
	display: flex;
	justify-content: center;
}

.line__card__balloon {
	position: absolute;
	left: 50%;
	top: -1.5rem;
	transform: translateX(-50%);
	display: inline-block;
	background: #fadc5a;
	color: #333;
	font-size: 0.85rem;
	font-weight: 600;
	padding: 0.5rem 0.9rem;
	border-radius: var(--radius-pill);
	white-space: nowrap;
	animation: lineCardBalloonFloat 2.2s ease-in-out infinite;
	z-index: 2;
	box-shadow: var(--shadow-sm);
}

.page-line__content .line__card__head {
	font-size: 0.75rem;
}

.line__card__balloon::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -0.5rem;
	transform: translateX(-50%);
	border-left: 0.5rem solid transparent;
	border-right: 0.5rem solid transparent;
	border-top: 0.5rem solid #fadc5a;
}

/* ボタンエリア */
.lp-cta-wrap {
	width: 100%;
	max-width: 440px;
}

.lp-cta-wrap a,
.lp-cta-wrap .c-btn {
	width: 100%;
	max-width: 100%;
}

/* メールリンク */
.line__card__mail {
	display: inline-block;
	color: var(--clr-primary);
	font-weight: 600;
	margin-top: 1.5rem;
	text-decoration: underline;
	font-size: 1rem;
}

.line__card__pc .line__card__mail {
	margin-top: 1.2rem;
}

.page-line__content .line__card__head {
	font-size: 0.85rem;
	margin-top: 1.2rem;
}

.line__card__mail:hover {
	text-decoration: none;
}

/* アニメーション設定 */
@keyframes lineCardBalloonFloat {

	0%,
	100% {
		transform: translateX(-50%) translateY(0);
	}

	50% {
		transform: translateX(-50%) translateY(-0.375rem);
	}
}

@media (max-width: 768px) {
	.single-line__card {
		padding: 0.5rem 0 2rem;
	}

	.line__card {
		display: flex;
		padding: 0rem 1rem 1.5rem;
	}

	.page-line__content .line__card {
		padding: 2rem 1rem 2rem;
	}

	.line__card__pc {
		display: none;
	}

	.line__card__badges {
		margin-bottom: 0;
	}

	.line__card__badge {
		font-size: 0.85rem;
	}

	.line__card__head {
		font-size: 1.25rem;
		margin: 1.2rem 0;
	}

	.line__card__benefit-box {
		padding: 1.2rem 1.5rem;
		margin-bottom: 3rem;
	}

	.benefit-box__lead {
		font-size: 0.85rem;
		margin-bottom: 0.5rem !important;
	}

	.page-line__content .benefit-box__lead {
		font-size: 0.85rem;
		margin-bottom: 0.5rem;
	}

	.benefit-box__list {
		gap: 0.45rem;
	}

	.benefit-box__list li {
		font-size: 0.9rem;
	}

	.benefit-box__list li::before {
		content: "・";
		margin-right: 5px;
		font-size: 0.9em;
	}

	.line__card__balloon {
		font-size: 0.75rem;
	}

	.line__card__mail {
		font-size: 0.9rem;
	}
}


/* ------------------------------------------- Single Table of Contents */
.single-toc {
	padding: 1.125rem 0 0.375rem;
	background: #fff;

	.single-toc .inner {
		max-width: var(--layout-inner-width);
		margin: 0 auto;
		padding: 0 0.875rem;
	}

	.single-toc__box {
		position: relative;
		border: 0.125rem solid #cfd6df;
		border-radius: var(--radius-lg);
		padding: 1rem 0.875rem 0.75rem;
		overflow: hidden;
	}

	.single-toc__head {
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
		padding-bottom: 10px;
		border-bottom: 0.125rem solid var(--clr-primary);
		margin-bottom: 10px;
	}

	.single-toc__label {
		margin: 0;
		color: var(--clr-primary);
		font-weight: 600;
	}

	.single-toc__ghost {
		margin: 0;
		font-weight: 600;
		letter-spacing: .08em;
		color: rgba(31, 78, 163, .10);
		font-size: 1.875rem;
		line-height: 1;
	}

	.single-toc__list {
		margin: 0;
		padding-left: 1.125rem;
		display: grid;
		gap: 10px;

		a {
			color: var(--clr-text-main);
			text-decoration: none;
			font-weight: 600;
			line-height: 1.6;
			border-bottom: 0.062rem solid rgba(0, 0, 0, .25);

			&:hover {
				border-bottom-color: var(--clr-primary);
				color: var(--clr-primary);
			}
		}
	}
}

/* ------------------------------------------- Single Headings & Content */
.single-h2 {
	margin: 1.375rem 0 1rem;
	padding: 0 0 0 0.875rem;
	border-left: 0.25rem solid var(--clr-primary);
	font-weight: 600;
	line-height: 1.55;
}

.single-h3 {
	margin: 1.375rem 0 0.75rem;
	padding: 0 0 1rem;
	font-weight: 600;
	line-height: 1.7;
	position: relative;

	&::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 0.125rem;
		background: var(--clr-grey-300);
		border-radius: var(--radius-pill);
	}

	&::before {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 4rem;
		height: 0.125rem;
		background: #f6c400;
		border-radius: var(--radius-pill);
		z-index: 1;
	}
}

.single-h4 {
	margin: 2.25rem 0 1rem;
	padding: 10px 0.875rem;
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--clr-primary);
	background: #EEF5FF;
	border-left: 0.312rem solid var(--clr-primary);
	border-radius: 0;
	line-height: 1.4;
}

.single-p {
	margin: 0 0 1.875rem;
	color: var(--clr-text-sub);
	line-height: 2.0;
	font-weight: 500;
}

#about,
#team,
#policy {
	scroll-margin-top: 11.25rem;
}

/* ------------------------------------------- Single Reviewer Section */
.single-reviewer {
	padding: 1.125rem 0 2.5rem;
	background: #fff;

	.single-reviewer .inner {
		max-width: 45rem;
		margin: 0 auto;
		padding: 0 0.875rem;

		@media (min-width: 900px) {
			max-width: var(--layout-inner-width);
			padding: 0 var(--space-inner);
		}
	}

	.single-reviewer__card {
		border-radius: var(--radius-lg);
		overflow: hidden;
		box-shadow: var(--shadow-sm);
		background: #fff;
	}

	.single-reviewer__head {
		background: var(--clr-text-main);
		color: #fff;
		font-weight: 600;
		text-align: center;
		padding: 0.75rem 0.875rem;
	}

	.single-reviewer__body {
		padding: 1rem 1rem 1.125rem;
	}

	.single-reviewer__photo {
		margin: 0 auto 0.75rem;
		width: min(15rem, 78%);
		border-radius: var(--radius-md);
		overflow: hidden;
		background: #f2f2f2;

		img {
			width: 100%;
			height: auto;
			display: block;
		}
	}

	.single-reviewer__name {
		margin: 0 0 0.5rem;
		font-weight: 600;
	}

	.single-reviewer__badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		margin: 0 0 10px;
		padding: 0.375rem 0.75rem;
		background: var(--clr-primary);
		color: #fff;
		border-radius: var(--radius-sm);
		font-weight: 600;
		font-size: 0.812rem;
	}

	.single-reviewer__text {
		margin: 0;
		line-height: 1.9;
		color: var(--clr-text-main);
		font-weight: 600;
	}
}

.single-reviewer__body {
	display: grid;
	grid-template-columns: 16.25rem 1fr;
	gap: 1.125rem 1.5rem;
	align-items: start;
	padding: 1.375rem 1.5rem 1.5rem;
}

.single-reviewer__photo {
	width: 16.25rem;
	margin: 0;
}

.single-reviewer__info {
	min-width: 0;
}

.single-reviewer__badge {
	display: inline-flex;
	width: fit-content;
	max-width: 100%;
	justify-content: center;
	margin: 0 0 0.75rem;
}

.single-reviewer__name {
	margin: 0.25rem 0 10px;
	font-size: 1.25rem;
}

.single-reviewer__text {
	line-height: 2.0;
}


/* ------------------------------------------- Single Page Content (Gutenberg) */
.single .single-body {
	h2.wp-block-heading {
		margin: 5rem 0 1rem;
		padding: 0 0 0 0.875rem;
		border-left: 0.25rem solid var(--clr-primary);
		font-weight: 600;
		line-height: 1.55;
		width: fit-content;
	}

	h3,
	h3.wp-block-heading {
		margin: 1em 0;
		padding: 0 0 0.5em;
		font-weight: 600;
		line-height: 1.7;
		position: relative;

		&::after {
			content: "";
			position: absolute;
			left: 0;
			right: 0;
			bottom: 0;
			height: 0.125rem;
			background: var(--clr-grey-300);
			border-radius: var(--radius-pill);
		}

		&::before {
			content: "";
			position: absolute;
			left: 0;
			bottom: 0;
			width: 4rem;
			height: 0.125rem;
			background: #f6c400;
			border-radius: var(--radius-pill);
			z-index: 1;
		}
	}

	h4,
	h4.wp-block-heading {
		margin: 2.25rem 0 1rem;
		padding: 10px 0.875rem;
		font-size: 1.125rem;
		font-weight: 600;
		color: var(--clr-primary);
		background: #EEF5FF;
		border-left: 0.312rem solid var(--clr-primary);
		border-radius: 0;
		line-height: 1.4;
	}

	ul,
	ol {
		margin: 0 0 1.875rem;
		padding-left: 1.2em;
		line-height: 1.8;
		list-style: disc;
	}

	figure.wp-block-image {
		text-align: center;
		margin: 2.5rem auto;

		img {
			display: block;
			margin: 0 auto;
		}
	}

	img {
		display: block;
		margin: 2.5rem auto;
		height: auto;
	}
}

.single-body {
	:where(figure) {
		margin: 1em auto;
	}

	p {
		color: var(--clr-text-main);
		line-height: 1.8;

		&:not(:last-child) {
			margin-bottom: 1em;
		}
	}
}

.single-body--lead {
	padding: 2.5rem 0 0;
}

/* ------------------------------------------- Rich Table of Contents (External Plugin) */
.rtoc-mokuji-content .rtoc-mokuji.level-1>.rtoc-item::before {
	color: currentColor !important;
	top: 0;
}

.rtoc-mokuji-content .rtoc-mokuji.level-1>.rtoc-item::after {
	content: none !important;
}

.single #rtoc-mokuji-wrapper {
	max-width: var(--layout-inner-width);
	margin: 3em auto;
	position: relative;
	border: 0.062rem solid #cbcbcb;
	border-radius: 3em;
	padding: 2em;
	overflow: hidden;
	background: #f8f8f8 !important;
	background-image: none !important;
	box-shadow: none !important;

	&.frame2,
	&.preset5 {
		background: transparent;
		background-image: none;
	}

	#rtoc-mokuji-title {
		display: flex !important;
		align-items: flex-end;
		justify-content: space-between;
		margin: 0 0 10px;
		border-bottom: 1px solid var(--clr-primary);
		text-align: left !important;

		&.rtoc_center {
			padding: 0 0 0.5em 0.5em !important;
			margin-bottom: 1em;
		}

		&::after {
			content: "INDEX";
			margin-left: auto;
			text-align: right;
			font-weight: 500;
			color: rgba(75, 121, 214, .12);
			font-size: 1.5em;
			line-height: 1;
			font-family: "Oswald", sans-serif;
			position: absolute;
			right: 0;
			top: -0.95em;
		}

		span {
			margin: 0 !important;
			display: inline-block;
			text-align: left;
			font-size: 1.2rem;
			font-weight: 600;
			line-height: 1.2;
			color: var(--clr-primary);

			@media (max-width: 768px) {
				font-size: 17px;
			}
		}
	}

	ol.rtoc-mokuji.level-1 {
		margin: 0 !important;
		padding-left: 1.125rem !important;
		display: grid;
		gap: 10px;
		list-style: decimal-leading-zero;

		&>li::marker {
			color: var(--clr-primary);
			font-weight: 600;
		}

		.rtoc-item {
			margin: 0 !important;
			padding: 0 !important;
			position: relative;

			&::before {
				color: var(--clr-primary) !important;
				font-weight: 900 !important;
				top: 0em !important;
				transform: translateY(0) !important;
			}

			&::after {
				content: none !important;
				display: none !important;
			}
		}
	}

	& a {
		color: var(--clr-text-main) !important;
		text-decoration: none !important;
		border-bottom: none !important;
		font-weight: 800 !important;
		line-height: 1.6 !important;

		&:hover {
			color: var(--clr-primary) !important;
			border-bottom: none !important;
		}

		& strong {
			font-weight: 600;
		}
	}

	.decimal_ol>.rtoc-item>a {
		padding-left: 1em !important;
		font-size: 0.938rem;
		font-weight: 900 !important;

		@media (max-width: 768px) {
			font-size: 14px;
		}
	}

	ul.mokuji_ul.level-2 {
		margin: 0.5rem 0 0 !important;
		padding-left: 1.125rem !important;
		display: grid;
		gap: 0.5rem;
		list-style: none;

		&>li {
			position: relative;
			padding-left: 0.875rem;

			&::before {
				content: "";
				position: absolute;
				left: -0.938rem !important;
				top: 0.75em;
				width: 0.375rem;
				height: 0.375rem;
				border-radius: var(--radius-pill);
				background: var(--clr-primary) !important;
				transform: translateY(-50%);
			}
		}

		.rtoc-item::before {
			background-color: var(--clr-primary) !important;
			color: var(--clr-primary) !important;
		}

		a {
			font-size: 0.812rem;
			font-weight: 800 !important;
			color: var(--clr-text-sub) !important;
		}
	}
}

/* ------------------------------------------- LINE Registration Page */
.line-delivery {
	background: #fff;

	& .line-delivery__hero img {
		width: 100%;
		height: auto;
		display: block;
		border-radius: var(--radius-lg);
	}

	& .line-delivery__head {
		text-align: center;
		margin: 0 0 1.125rem;

		& .line-delivery__title {
			margin: 0 0 10px;
			font-weight: 600;
			font-size: 1.375rem;
			letter-spacing: 0.1rem;
		}

		& .line-delivery__line {
			display: inline-flex;
			align-items: center;
			gap: 0;
			height: 0.25rem;
		}

		& .line-delivery__line-yellow {
			width: 2.375rem;
			height: 0.25rem;
			background: #f4c400;
			border-radius: 6.188rem 0 0 6.188rem;
		}

		& .line-delivery__line-blue {
			width: 2.375rem;
			height: 0.25rem;
			background: var(--clr-primary);
			border-radius: 0 6.188rem 6.188rem 0;
		}
	}

	& .line-delivery__grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 1.125rem;

		@media (min-width: 900px) {
			grid-template-columns: repeat(3, 1fr);
			gap: 22px;
		}
	}

	& .line-delivery__cta {
		margin-top: 2.5rem;
	}
}

.deliver-card {
	background: #fff;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);

	.deliver-card__media {
		background: var(--clr-grey-300);

		img {
			width: 100%;
			display: block;
			height: auto;
			aspect-ratio: 16 / 9;
			object-fit: cover;
		}
	}

	.deliver-card__body {
		padding: 0.875rem 1rem 1rem;
	}

	.deliver-card__label {
		border: 0.125rem solid var(--clr-primary);
		color: var(--clr-primary);
		background: #fff;
		font-weight: 600;
		text-align: center;
		border-radius: var(--radius-md);
		padding: 10px 0.75rem;
		margin: 0.25rem 0 0.75rem;
	}

	.deliver-card__name {
		margin: 0 0 10px;
		font-weight: 600;
		font-size: 1.125rem;
		line-height: 1.5;
		color: var(--clr-text-main);
		text-align: center;
	}

	.deliver-card__desc {
		margin: 0;
		color: rgba(0, 0, 0, .7);
		font-weight: 600;
		line-height: 1.9;
		font-size: 0.875rem;

		@media (min-width: 900px) {
			font-size: 15px;
		}
	}
}

.line-cta {
	width: 100%;
	max-width: 36.875rem;
	height: 6.25rem;
	border-radius: var(--radius-pill);
	background: var(--clr-green);
	color: #fff;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 1.25rem 0 0.875rem;
	margin: 0 auto;
	position: relative;

	@media (max-width: 425px) {
		height: 65px;
	}

	.line-cta__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 4.375rem;
		height: 4.375rem;
		border-radius: var(--radius-pill);
		background: #fff;
		position: absolute;
		left: 0.875rem;
		top: 50%;
		transform: translateY(-50%);

		@media (max-width: 425px) {
			width: 50px;
			height: 50px;
			left: 6px;
		}

		img {
			width: 2.5rem;
			height: 2.5rem;
			display: block;

			@media (max-width: 425px) {
				width: 20px;
				height: 20px;
			}
		}
	}

	.line-cta__text {
		font-weight: 600;
		font-size: 1.875rem;

		@media (max-width: 600px) {
			font-size: 18px;
		}

		@media (max-width: 425px) {
			font-size: 14px;
		}
	}

	.line-cta__arrow {
		position: absolute;
		right: 1rem;
		top: 50%;
		transform: translateY(-50%);
		display: inline-flex;
		align-items: center;
	}
}

/* ------------------------------------------- Specific Page layout: LP / Hero */
.line__card--hero-layout {
	background: #eaf7f1;
	border-radius: var(--radius-xl);
	padding: 1.5rem 0 3.5rem;
	margin: 0 10px;

	@media (max-width: 768px) {
		padding: 14px 0px;
	}

	>.inner {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem;
		align-items: center;
		max-width: var(--layout-inner-width);
		margin: 0 auto;

		@media (max-width: 768px) {
			grid-template-columns: 1fr !important;
			gap: 24px;
		}
	}

	.line-delivery__hero img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		border-radius: var(--radius-lg);
		display: block;
	}

	.line__card__card {
		margin: 0;
	}
}

/* ------------------------------------------- Review Voice Section (LP2 Version) */
.line {
	padding: 2.125rem 0 5rem;
}

.voice-list__bg {
	background: #F0F5FA;
	border-radius: var(--radius-xl);
	padding: 1.5rem 0 1rem;
	margin: 0 10px;

	.sub-section-head {
		@media (max-width: 425px) {
			margin: 1em auto 3em;
		}
	}
}

.voice-list {
	display: flex;
	flex-direction: column;
	gap: clamp(1.875rem, 4vw, 2.5rem);
	position: relative;
	max-width: 56.25rem;
	margin: 0 auto;
	padding: 0 0.875rem;
}

.voice-card {
	border-radius: 10px;
	border: 0.125rem solid #e3e5ee;
	background: #fff;
	width: 100%;

	&:nth-child(odd) .voice-head {
		background: #2fa543;
		/* LP2 primary */
	}

	&:nth-child(even) .voice-head {
		background: #00a6b4;
		/* LP2 secondary */
	}

	.voice-head {
		padding: 2em;
		color: #fff;
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 1.5em;
		text-align: center;
		letter-spacing: 0.05rem;
		border-radius: 10px 10px 0 0;

		@media (max-width: 768px) {
			display: grid;
			grid-template-columns: auto 1fr;
			grid-template-areas:
				"title title"
				"icon name";
			gap: 1em 1em;
			text-align: left;
			align-items: center;
			padding: 1.5em;
		}

		@media (min-width: 769px) {
			flex-direction: row;
			text-align: left;
		}

		&::after {
			content: "";
			position: absolute;
			left: 50%;
			bottom: -0.062rem;
			transform: translateX(-50%);
			width: 0;
			height: 0;
			border-left: 0.938rem solid transparent;
			border-right: 0.938rem solid transparent;
			border-bottom: 0.938rem solid #fff;
		}
	}

	.voice-info {
		flex: 1;
		display: flex;
		flex-direction: column;

		@media (max-width: 768px) {
			display: contents;
		}
	}

	.voice-title {
		font-size: clamp(1rem, 0.9rem + 0.5vw, 1.5rem);
		font-weight: 600;
		line-height: 1.5;
		margin: 0 0 0.5em;
		padding-bottom: 0.5em;
		border-bottom: 0.062rem solid #fff;

		@media (max-width: 768px) {
			grid-area: title;
			margin-bottom: 0;
		}
	}

	.voice-icon {
		width: 5.625rem;
		height: 5.625rem;
		border-radius: 50%;
		overflow: hidden;
		background: #fff;
		flex-shrink: 0;
		padding: 0.5em 0.5em 0 0.5em;

		@media (max-width: 768px) {
			grid-area: icon;
			width: 50px;
			height: 50px;
		}

		img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}

	.voice-name {
		font-size: 0.875rem;
		font-weight: 600;
		margin: 0;
		text-align: center;

		@media (max-width: 768px) {
			grid-area: name;
			text-align: left;
		}

		@media (min-width: 769px) {
			text-align: left;
		}

		span {
			display: block;
			font-weight: normal;
			font-size: 0.812rem;
			margin-top: 0.25rem;
		}
	}

	.voice-body {
		padding: 2em;
		text-align: left;
		font-size: 0.938rem;
		line-height: 1.8;
		color: var(--clr-text-main);
	}
}

.footer-breadcrumb {
	font-size: 0.875em;
	padding: 1em 0;
	background: var(--clr-bg-panel);
	overflow-x: auto;
	white-space: nowrap;

	a {
		color: var(--clr-primary);
		text-decoration: underline;
	}
}