@charset "utf-8";

/*============================
トップページ（2026 リニューアル）
Figma「Design - TOP」TOP - pc / TOP - sp 準拠
============================*/

:root {
	--c-main: #2bb4a2;
	--c-main-light: #f5faf9;
	--c-main-pale: #e6f4f1;
	--c-logo: #f56d6d;
	--c-cta: #ff4f4f;
	--c-text: #3e3e3e;
	--c-gray: #6f6f6f;
	--c-line: #e8e7e3;
	--c-beige: #faf9f4;
	--c-stories: #faf9f5;
	--c-hero: #f4f6f5;
	--c-pink: #fff1f1;
	--c-copy: #006e61;
}

/*============================
トップと成婚記事ページのみ（loader）
============================*/

.loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #fff;
	z-index: 20000;
}

.loader,
.loader:after {
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 50px;
	height: 50px;
	margin: -25px 0 0 -25px;
}

.loader {
	position: relative;
	text-indent: -9999em;
	border: 3px solid #d6ebe8;
	border-left: 3px solid var(--c-main);
	transform: translateZ(0);
	animation: load 1.1s infinite linear;
}

@keyframes load {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/*============================
ベース
============================*/

body.top {
	background: #fff;
	color: var(--c-text);
	font-size: 1.5rem;
	line-height: 1.73;
}

.tp_wrapper {
	max-width: none;
}

.tp section {
	position: relative;
}

.tp_inner {
	max-width: 1060px;
	margin: auto;
}

.tp_inner.narrow {
	max-width: 900px;
}

.tp_inner.center,
.tp .center {
	text-align: center;
}

.tp_label {
	font-family: 'Oswald', sans-serif;
	font-size: 1.2rem;
	font-weight: 400;
	letter-spacing: .2em;
	color: var(--c-main);
}

.tp_h2 {
	margin-top: 12px;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.47;
	letter-spacing: .02em;
	color: var(--c-text);
}

.tp_lead {
	margin-top: 24px;
	font-size: 1.5rem;
	line-height: 1.73;
	color: var(--c-text);
}

.tp_text {
	margin-top: 16px;
	font-size: 1.5rem;
	line-height: 1.73;
}

.tp_closing {
	margin-top: 40px;
	text-align: center;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.8;
	color: var(--c-main);
}

.tp_link a {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--c-main);
}

.tp_btn_wrap {
	margin-top: 40px;
	text-align: center;
}

.tp_btn_wrap.left {
	margin-top: 16px;
	text-align: left;
}

.tp_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 380px;
	height: 60px;
	padding: 0 40px;
	border-radius: 30px;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	background: var(--c-main);
	text-decoration: none;
	box-shadow: 0 6px 14px rgb(43 180 162 / 25%);
	position: relative;
}

.tp_btn i {
	position: absolute;
	right: 24px;
	font-size: 1.2rem;
}

.tp_btn.cta {
	background: var(--c-logo);
	box-shadow: 0 6px 14px rgb(245 109 109 / 30%);
}

.tp_btn.outline {
	color: var(--c-main);
	background: #fff;
	border: 1px solid var(--c-main);
	box-shadow: none;
}

.tp_checklist li {
	position: relative;
	padding: 14px 0 14px 32px;
	border-bottom: 1px solid var(--c-line);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.6;
}

.tp_checklist li:last-child {
	border-bottom: 0;
}

.tp_checklist li:before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	position: absolute;
	left: 0;
	top: 14px;
	color: var(--c-main);
	font-size: 1.8rem;
}

.tp_checklist.small li {
	padding: 12px 0 12px 30px;
	font-size: 1.3rem;
	font-weight: 500;
}

.tp_checklist.small li:before {
	top: 12px;
	font-size: 1.6rem;
}

.tp_checklist em {
	font-style: normal;
	color: var(--c-logo);
}

.tp_tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}

.tp_tags.center {
	justify-content: center;
}

.tp_tags li a {
	display: inline-block;
	padding: 6px 16px;
	border-radius: 100px;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--c-text);
	background: var(--c-main-pale);
	text-decoration: none;
}

/* 装飾の円 */

.tp_deco:before,
.tp_deco:after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

/*============================
First view
============================*/

.tp_hero {
	background: var(--c-hero);
	padding-bottom: 40px;
}

.tp_hero_inner {
	max-width: 1220px;
	margin: auto;
	padding: 60px 40px 0 120px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.tp_hero_copy {
	width: 470px;
	flex-shrink: 0;
}

.tp_hero_title {
	font-size: 4rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .04em;
	color: var(--c-text);
}

.tp_hero_title em {
	font-style: normal;
	color: var(--c-main);
}

.tp_hero_sub {
	margin-top: 12px;
	font-size: 2.1rem;
	font-weight: 700;
	letter-spacing: .06em;
}

.tp_hero_badges {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 32px;
}

.tp_hero_mybest {
	width: 100px;
	flex-shrink: 0;
}

.tp_hero_mybest img {
	width: 100%;
}

.tp_hero_note {
	padding: 14px 24px;
	border: 1px solid #d9c98a;
	border-radius: 8px;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	color: #8a7a3a;
	background: #fff;
}

.tp_hero_cp {
	margin-top: 60px;
	font-size: 1.7rem;
	font-weight: 700;
	text-align: center;
	width: 380px;
}

.tp_hero_cp em {
	font-family: 'Oswald', sans-serif;
	font-style: normal;
	font-size: 2.6rem;
	color: var(--c-logo);
}

.tp_hero .tp_btn_wrap {
	margin-top: 8px;
	text-align: left;
}

.tp_hero_img {
	width: 740px;
	margin: 0;
}

.tp_hero_img img {
	width: 100%;
}

.tp_stats {
	position: relative;
	max-width: 1060px;
	margin: -60px auto 0;
	padding: 40px 60px 32px;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 8px 30px rgb(60 90 88 / 10%);
	text-align: center;
	z-index: 1;
}

.tp_stats_title {
	font-size: 2.4rem;
	font-weight: 700;
	letter-spacing: .04em;
}

.tp_stats_title em {
	font-style: normal;
	color: var(--c-main);
}

.tp_stats_lead {
	margin-top: 12px;
	font-size: 1.3rem;
	line-height: 1.7;
	color: var(--c-gray);
}

.tp_stats_list {
	display: flex;
	margin-top: 28px;
	padding-top: 28px;
	border-top: 1px solid var(--c-line);
}

.tp_stats_list li {
	flex: 1;
	padding: 0 16px;
	border-left: 1px solid var(--c-line);
}

.tp_stats_list li:first-child {
	border-left: 0;
}

.tp_stats_list i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--c-main-pale);
	color: var(--c-main);
	font-size: 1.6rem;
}

.tp_stats_list .label {
	display: block;
	margin-top: 10px;
	font-size: 1.3rem;
	font-weight: 700;
}

.tp_stats_list .num {
	display: block;
	margin-top: 4px;
	font-family: 'Oswald', sans-serif;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--c-main);
}

.tp_stats_list .num small {
	margin-left: 2px;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.3rem;
	font-weight: 700;
}

.tp_stats_list .note {
	display: block;
	margin-top: 6px;
	font-size: 1.1rem;
	color: var(--c-gray);
}

.tp_hero_caution {
	max-width: 1060px;
	margin: 10px auto 0;
	text-align: right;
	font-size: 1rem;
	color: var(--c-gray);
}

.tp_hero_caution li {
	margin: 0;
	display: block;
	padding-left: 0;
}

.tp_hero_caution li:before {
	position: static;
}

/*============================
Banners
============================*/

.tp_banners {
	padding: 60px 0;
	text-align: center;
}

.tp_banners_cp {
	display: flex;
	justify-content: center;
	gap: 40px;
}

.tp_banners_cp li {
	width: 440px;
	height: 180px;
	border-radius: 8px;
	overflow: hidden;
	background: none;
}

.tp_banners_cp li a {
	display: block;
	height: 100%;
}

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

.tp_banners_shindan {
	margin-top: 40px;
}

.tp_banners_shindan img {
	width: 440px;
	border-radius: 8px;
}

/*============================
Concerns
============================*/

.tp_concerns {
	padding: 80px 0 0;
	overflow: hidden;
}

.tp_concerns:before,
.tp_concerns:after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

.tp_concerns:before {
	width: 160px;
	height: 160px;
	right: 140px;
	top: 40px;
	background: var(--c-main-pale);
}

.tp_concerns:after {
	width: 90px;
	height: 90px;
	right: 250px;
	top: 60px;
	border: 1px solid #cfe9e4;
}

.tp_bubbles {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 30px 20px;
	margin-top: 40px;
}

.tp_bubbles li {
	position: relative;
	width: 320px;
	padding: 26px 20px;
	border-radius: 100px;
	text-align: center;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.6;
}

.tp_bubbles li:after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -12px;
	width: 22px;
	height: 22px;
	border-radius: 4px;
	transform: translateX(-50%) rotate(45deg);
	background: inherit;
	z-index: -1;
}

.tp_bubbles li.pink { background: var(--c-pink); }
.tp_bubbles li.mint { background: var(--c-main-pale); }
.tp_bubbles li.white { background: #f6f7f7; }

/*============================
Solution
============================*/

.tp_solution {
	padding: 120px 0 0;
	min-height: 1080px;
}

.tp_solution_img {
	width: 840px;
	height: 960px;
	margin: 0;
	overflow: hidden;
	border-radius: 0 24px 24px 0;
}

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

.tp_solution_card {
	position: absolute;
	top: 240px;
	right: 190px;
	width: 640px;
	padding: 48px 56px;
	background: rgb(255 255 255 / 95%);
	border-radius: 16px;
	box-shadow: 0 10px 40px rgb(60 90 88 / 12%);
}

.tp_solution_list {
	margin-top: 32px;
}

.tp_solution_list li {
	display: flex;
	gap: 16px;
	padding: 20px 0;
	border-top: 1px solid var(--c-line);
}

.tp_solution_list li:first-child {
	border-top: 0;
	padding-top: 0;
}

.tp_solution_list .num {
	font-family: 'Oswald', sans-serif;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1;
	color: var(--c-main);
	padding-top: 4px;
}

.tp_solution_list h3 {
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.5;
}

.tp_solution_list p {
	margin-top: 8px;
	font-size: 1.3rem;
	line-height: 1.7;
	color: var(--c-gray);
}

/*============================
For you
============================*/

.tp_foryou {
	padding: 120px 0;
	background: var(--c-beige);
}

.tp_foryou_grid {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 60px;
}

.tp_foryou_copy {
	width: 380px;
	flex-shrink: 0;
}

.tp_foryou .tp_checklist {
	flex: 1;
	padding: 16px 32px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 6px 24px rgb(60 90 88 / 6%);
}

/*============================
Service
============================*/

.tp_service {
	padding: 120px 0 20px;
}

.tp_platforms {
	display: flex;
	justify-content: space-between;
	gap: 40px;
	margin-top: 40px;
	text-align: left;
}

.tp_platform {
	flex: 1;
	padding: 32px;
	border-radius: 16px;
	background: linear-gradient(180deg, #fff6f4 0%, #fffdfc 100%);
	box-shadow: 0 6px 24px rgb(60 90 88 / 8%);
}

.tp_platform.cship {
	background: linear-gradient(180deg, #eef8f5 0%, #fbfefd 100%);
}

.tp_platform .logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 90px;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgb(60 90 88 / 8%);
}

.tp_platform .logo img {
	max-height: 60px;
	max-width: 70%;
	object-fit: contain;
}

.tp_platform h3 {
	margin-top: 24px;
	font-size: 2rem;
	font-weight: 700;
}

.tp_platform .text {
	margin-top: 10px;
	font-size: 1.3rem;
	line-height: 1.7;
	color: var(--c-gray);
}

.tp_platform .tp_checklist {
	margin-top: 20px;
	padding: 4px 20px;
	background: #fff;
	border-radius: 12px;
}

.tp_platform.ibj .tp_checklist li:before {
	color: var(--c-logo);
}

.tp_platform .more {
	margin-top: 20px;
	text-align: center;
}

.tp_platform .more a {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--c-main);
}

.tp_platform.ibj .more a {
	color: var(--c-logo);
}

/*============================
Members
============================*/

.tp_members {
	padding: 120px 0 0;
}

.tp_members_card {
	max-width: 900px;
	margin: auto;
	padding: 48px 60px;
	text-align: center;
	border: 1px solid var(--c-main);
	border-radius: 16px;
	background: linear-gradient(135deg, #fff 60%, var(--c-main-pale) 100%);
}

.tp_members_num {
	display: inline-block;
	min-width: 480px;
	margin-top: 32px;
	padding: 24px 40px;
	background: var(--c-main-light);
	border-radius: 12px;
}

.tp_members_num .label {
	font-size: 1.4rem;
	font-weight: 700;
}

.tp_members_num .num {
	margin-top: 4px;
	font-family: 'Oswald', sans-serif;
	font-size: 5.6rem;
	font-weight: 600;
	line-height: 1.1;
	color: var(--c-text);
}

.tp_members_num .num small {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.8rem;
	font-weight: 700;
	margin: 0 4px;
}

.tp_members_num .note {
	margin-top: 8px;
	font-size: 1.1rem;
	color: var(--c-gray);
}

/*============================
Matching
============================*/

.tp_matching {
	margin-top: 120px;
	padding: 120px 0;
	background: url(/asset/images/top/matching_bg.jpg) no-repeat center / cover;
}

.tp_matching:before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgb(12 41 37 / 20%);
}

.tp_matching_card {
	position: relative;
	max-width: 1060px;
	margin: auto;
	padding: 48px 56px;
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	background: rgb(255 255 255 / 95%);
	border-radius: 16px;
	box-shadow: 0 10px 40px rgb(0 0 0 / 10%);
}

.tp_matching_copy {
	flex: 1;
}

.tp_matching_reasons {
	width: 460px;
}

.tp_matching_reasons h3 {
	font-size: 1.6rem;
	font-weight: 700;
}

.tp_matching_reasons h3 em {
	font-style: normal;
	color: var(--c-logo);
}

.tp_matching_reasons li {
	margin-top: 10px;
	padding: 12px 16px 12px 44px;
	border-radius: 8px;
	background: var(--c-main-light);
	font-size: 1.4rem;
	font-weight: 700;
	position: relative;
}

.tp_matching_reasons li:before {
	content: "\f004";
	font-family: "Font Awesome 5 Free";
	font-weight: 400;
	position: absolute;
	left: 16px;
	top: 13px;
	color: var(--c-logo);
}

.tp_matching_card .tp_closing {
	width: 100%;
	margin-top: 8px;
}

/*============================
Stories（成婚インタビュー）
============================*/

.tp_stories {
	padding: 80px 0;
	background: var(--c-stories);
}

.tp_stories_list {
	display: flex;
	justify-content: center;
	gap: 40px;
	margin-top: 40px;
	text-align: left;
}

.tp_story {
	display: block;
	width: 510px;
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 6px 24px rgb(60 90 88 / 8%);
	text-decoration: none;
	color: var(--c-text);
	font-weight: 400;
}

.tp_story figure {
	position: relative;
	height: 280px;
	margin: 0;
}

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

.tp_story figcaption {
	position: absolute;
	left: 20px;
	bottom: 20px;
	padding: 6px 16px;
	border-radius: 100px;
	font-size: 1.2rem;
	font-weight: 700;
	color: #fff;
	background: var(--c-main);
}

.tp_story .body {
	padding: 24px 32px 28px;
}

.tp_story .person {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--c-main);
}

.tp_story .quote {
	margin-top: 10px;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.8;
}

.tp_story .more {
	margin-top: 12px;
	text-align: right;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--c-main);
	text-decoration: underline;
}

/*============================
Features
============================*/

.tp_features {
	padding: 120px 0 0;
}

.tp_feature {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 60px;
	margin-top: 60px;
}

.tp_feature.reverse {
	flex-direction: row-reverse;
}

.tp_feature .copy {
	flex: 1;
}

.tp_feature .num {
	display: block;
	font-family: 'Oswald', sans-serif;
	font-size: 8rem;
	font-weight: 400;
	line-height: 1;
	color: #b9e6df;
}

.tp_feature h3 {
	margin-top: 12px;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.5;
}

.tp_feature p {
	margin-top: 12px;
	font-size: 1.3rem;
	line-height: 1.7;
	color: var(--c-gray);
}

.tp_feature figure {
	width: 440px;
	margin: 0;
	flex-shrink: 0;
}

.tp_feature figure img {
	width: 100%;
}

.tp_feature figure.logos {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 20px;
	height: 280px;
	background: #fff;
	border-radius: 24px;
	box-shadow: 0 6px 24px rgb(60 90 88 / 8%);
}

.tp_feature figure.logos:before {
	content: "";
	position: absolute;
	right: -30px;
	top: 20px;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: var(--c-pink);
	z-index: -1;
}

.tp_feature figure.logos img {
	max-height: 56px;
	width: auto;
}

/*============================
Advisor support
============================*/

.tp_support {
	padding: 120px 0 40px;
}

.tp_support:before,
.tp_support:after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

.tp_support:before {
	width: 160px;
	height: 160px;
	right: 100px;
	top: 60px;
	background: var(--c-main-pale);
}

.tp_support:after {
	width: 90px;
	height: 90px;
	left: 60px;
	bottom: 40px;
	background: var(--c-main-pale);
}

.tp_support_card {
	position: relative;
	padding: 56px 60px;
	border: 1px solid var(--c-main);
	border-radius: 16px;
	background: #fff;
}

.tp_support_head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 40px;
}

.tp_support_head figure {
	width: 248px;
	height: 248px;
	margin: 0;
	flex-shrink: 0;
	border-radius: 50%;
	overflow: hidden;
	box-shadow: 0 8px 30px rgb(60 90 88 / 15%);
}

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

.tp_support_h3 {
	margin-top: 40px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--c-line);
	font-size: 1.8rem;
	font-weight: 700;
}

.tp_support_list {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 20px;
}

.tp_support_list li {
	width: calc(50% - 8px);
	padding: 20px 24px;
	border-radius: 12px;
	background: var(--c-main-light);
}

.tp_support_list h4 {
	font-size: 1.5rem;
	font-weight: 700;
}

.tp_support_list p {
	margin-top: 6px;
	font-size: 1.3rem;
	line-height: 1.6;
	color: var(--c-gray);
}

.tp_support_opt {
	margin-top: 24px;
	font-size: 1.3rem;
	color: var(--c-gray);
}

/*============================
Price
============================*/

.tp_price {
	padding: 120px 0 0;
}

.tp_price_card {
	position: relative;
	max-width: 900px;
	margin: 60px auto 0;
	padding: 48px 60px 40px;
	border: 1px solid var(--c-main);
	border-radius: 16px;
	background: linear-gradient(180deg, #fff 0%, #f5fbfa 100%);
	text-align: center;
}

.tp_price_badge {
	position: absolute;
	left: 50%;
	top: -18px;
	transform: translateX(-50%);
	padding: 8px 24px;
	border-radius: 100px;
	font-size: 1.3rem;
	font-weight: 700;
	color: #fff;
	background: var(--c-main);
}

.tp_price_main .label,
.tp_price_sub .label {
	font-size: 1.4rem;
	font-weight: 700;
}

.tp_price_main .num,
.tp_price_sub .num,
.tp_price_half .num {
	font-family: 'Oswald', sans-serif;
	font-weight: 600;
	line-height: 1.1;
	color: var(--c-text);
}

.tp_price_main .num {
	font-size: 6rem;
}

.tp_price_main .num small,
.tp_price_sub .num small,
.tp_price_half .num small {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.8rem;
	font-weight: 700;
	margin-left: 4px;
}

.tp_price_sub {
	display: flex;
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--c-line);
}

.tp_price_sub > div {
	flex: 1;
	border-left: 1px solid var(--c-line);
}

.tp_price_sub > div:first-child {
	border-left: 0;
}

.tp_price_sub .num {
	font-size: 4.4rem;
	margin-top: 4px;
}

.tp_price_sub .num.red {
	color: var(--c-logo);
}

.tp_price_half {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	margin-top: 32px;
	padding: 20px;
	border: 1px solid var(--c-main);
	border-radius: 12px;
	background: #fff;
}

.tp_price_half .label {
	font-size: 1.4rem;
	font-weight: 700;
	text-align: left;
}

.tp_price_half .num {
	font-size: 4.8rem;
	color: var(--c-main);
}

.tp_price_discount {
	margin-top: 24px;
	padding: 24px 32px;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 2px 10px rgb(60 90 88 / 6%);
}

.tp_price_discount h3 {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--c-logo);
}

.tp_price_discount p {
	margin-top: 12px;
	font-size: 1.3rem;
	line-height: 1.7;
}

.tp_price_discount b {
	font-size: 1.6rem;
}

.tp_price_card .tp_btn_wrap {
	margin-top: 32px;
}

.tp_price_more {
	margin-top: 16px;
}

.tp_price_more a {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--c-main);
}

.tp_price_mybest {
	max-width: 760px;
	margin: 60px auto 0;
	text-align: center;
}

.tp_price_mybest img {
	width: 100%;
}

.tp_price_mybest .note {
	margin-top: 8px;
	font-size: 1rem;
	color: var(--c-gray);
}

/*============================
Safety
============================*/

.tp_safety {
	margin-top: 120px;
	padding: 120px 0;
	background: url(/asset/images/top/safety_bg.jpg) no-repeat center / cover;
}

.tp_safety:before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgb(12 41 37 / 20%);
}

.tp_safety_card {
	position: relative;
	max-width: 1060px;
	margin: auto;
	padding: 48px 56px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 40px;
	background: rgb(255 255 255 / 95%);
	border-radius: 16px;
	box-shadow: 0 10px 40px rgb(0 0 0 / 10%);
}

.tp_safety_copy {
	width: calc(50% - 20px);
}

.tp_safety_rate {
	margin-top: 32px;
	padding: 24px 28px;
	border: 1px solid var(--c-main);
	border-radius: 12px;
	background: var(--c-main-light);
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 24px;
	align-items: center;
}

.tp_safety_rate .label {
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.5;
}

.tp_safety_rate .num {
	font-family: 'Oswald', sans-serif;
	font-size: 6.4rem;
	font-weight: 600;
	line-height: 1;
	color: var(--c-main);
}

.tp_safety_rate .num small {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 2rem;
	font-weight: 700;
}

.tp_safety_rate .note {
	grid-column: 1 / 3;
	margin-top: 12px;
	font-size: 1.2rem;
	color: var(--c-gray);
}

.tp_safety_points {
	width: calc(50% - 20px);
}

.tp_safety_points li {
	margin-top: 16px;
	padding: 20px 24px 20px 52px;
	border: 1px solid var(--c-main);
	border-radius: 12px;
	background: #fff;
	position: relative;
}

.tp_safety_points li:first-child {
	margin-top: 0;
}

.tp_safety_points li:before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	position: absolute;
	left: 20px;
	top: 20px;
	color: var(--c-main);
	font-size: 1.8rem;
}

.tp_safety_points h3 {
	font-size: 1.5rem;
	font-weight: 700;
}

.tp_safety_points p {
	margin-top: 6px;
	font-size: 1.2rem;
	line-height: 1.6;
	color: var(--c-gray);
}

.tp_safety_points a {
	color: var(--c-main);
}

.tp_safety_docs {
	width: 100%;
}

.tp_safety_docs h3 {
	padding-bottom: 12px;
	border-bottom: 1px solid var(--c-line);
	font-size: 1.8rem;
	font-weight: 700;
}

.tp_safety_docs ul {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
}

.tp_safety_docs li {
	width: calc((100% - 24px) / 3);
	padding: 12px 20px;
	border-radius: 8px;
	background: var(--c-main-light);
	font-size: 1.3rem;
	font-weight: 700;
}

.tp_safety_docs li small {
	margin-left: .5em;
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--c-gray);
}

.tp_safety_card .tp_closing {
	width: 100%;
	margin-top: 0;
}

.tp_safety_card .tp_btn_wrap {
	width: 100%;
	margin-top: 0;
}

/*============================
How to start
============================*/

.tp_howto {
	padding: 120px 0;
	background: var(--c-beige);
}

.tp_howto .tp_link {
	margin-top: 8px;
}

.tp_steps {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 48px;
	position: relative;
	text-align: center;
}

.tp_steps:before {
	content: "";
	position: absolute;
	left: 10%;
	right: 10%;
	top: 28px;
	height: 1px;
	background: var(--c-main);
}

.tp_steps li {
	flex: 1;
	position: relative;
}

.tp_steps .step {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--c-main);
	color: #fff;
	font-size: .9rem;
	font-weight: 700;
	line-height: 1;
}

.tp_steps .step b {
	font-size: 1.4rem;
	margin-top: 2px;
}

.tp_steps h3 {
	margin-top: 16px;
	font-size: 1.5rem;
	font-weight: 700;
}

.tp_steps p {
	margin-top: 8px;
	font-size: 1.2rem;
	line-height: 1.7;
	color: var(--c-gray);
}

/*============================
FAQ
============================*/

.tp_faq {
	padding: 120px 0;
}

.tp_faq_list {
	margin-top: 32px;
	width: 100%;
}

.tp_faq_list dt {
	padding: 20px 40px 20px 32px;
	border: 0;
	border-bottom: 1px solid var(--c-line);
	border-radius: 0;
	background: none;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--c-text);
	position: relative;
	cursor: pointer;
}

.tp_faq_list dt:before {
	content: "Q";
	position: absolute;
	left: 0;
	top: 18px;
	font-family: 'Oswald', sans-serif;
	font-size: 1.8rem;
	color: var(--c-main);
}

.tp_faq_list dt:after {
	content: "\f067";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.2rem;
	color: var(--c-main);
}

.tp_faq_list dt.active {
	border-radius: 0;
}

.tp_faq_list dt.active:after {
	content: "\f068";
}

.tp_faq_list dd {
	display: none;
	padding: 20px 32px 24px;
	border-radius: 0;
	border-bottom: 1px solid var(--c-line);
	background: var(--c-main-light);
	font-size: 1.4rem;
	line-height: 1.8;
}

.tp_faq_list dd:after {
	display: none;
}

.tp_faq_list dd p {
	margin-top: 12px;
}

.tp_faq_list dd p:first-child {
	margin-top: 0;
}

.tp_faq_list dd a {
	color: var(--c-main);
}

/*============================
Media
============================*/

.tp_media {
	padding: 120px 0;
	background: var(--c-beige);
}

.tp_media .pickup,
.tp_media .recommend {
	margin-top: 24px;
	border-top: 1px solid var(--c-line);
}

.tp_media .recommend {
	margin-top: 0;
	border-top: 0;
	display: none;
}

.tp_media .recommend.open {
	display: block;
}

.tp_media li a {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 20px 40px 20px 0;
	border-bottom: 1px solid var(--c-line);
	text-decoration: none;
	color: var(--c-text);
	font-weight: 400;
	position: relative;
}

.tp_media li a:after {
	content: "\f054";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.2rem;
	color: var(--c-main);
}

.tp_media figure {
	width: 180px;
	height: 110px;
	margin: 0;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 8px;
	position: relative;
	overflow: hidden;
}

.tp_media figure img {
	max-width: 80%;
	max-height: 70%;
	object-fit: contain;
}

.tp_media figure span {
	position: absolute;
	left: 0;
	top: 0;
	padding: 3px 12px;
	border-radius: 0 0 8px 0;
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	background: var(--c-logo);
}

.tp_media .recommend figure span {
	background: var(--c-main);
}

.tp_media h3 {
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.6;
}

.tp_media h3 span {
	display: inline-block;
	margin-bottom: 8px;
	padding: 4px 14px;
	border-radius: 100px;
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--c-gray);
	background: #fff;
	border: 1px solid var(--c-line);
}

.tp_media_more {
	margin-top: 24px;
	text-align: center;
}

.tp_media_more a {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--c-main);
	text-decoration: none;
}

.tp_media_more a i {
	margin-right: 6px;
}

/*============================
Final CTA
============================*/

.tp_cta {
	padding: 120px 0;
	background: #fff url(/asset/images/top/cta_flower.png) no-repeat center / cover;
}

.tp_cta_card {
	display: flex;
	align-items: center;
	gap: 40px;
	padding: 48px 56px;
	border: 1px solid var(--c-main);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 10px 40px rgb(60 90 88 / 10%);
}

.tp_cta_card figure {
	width: 462px;
	margin: 0;
	flex-shrink: 0;
}

.tp_cta_card figure img {
	width: 100%;
}

.tp_cta_card .copy {
	flex: 1;
}

.tp_cta_card .tp_h2 {
	font-size: 2.6rem;
}

.tp_cta_card .tp_btn {
	min-width: 360px;
}

/*============================
SP
============================*/

@media only screen and (max-width: 599px) {

	body.top {
		font-size: 1.4rem;
		padding-bottom: 0;
	}

	.tp_inner {
		padding: 0 20px;
	}

	.tp_label {
		font-size: 1.1rem;
	}

	.tp_h2 {
		font-size: 2.2rem;
		line-height: 1.5;
	}

	.tp_h2 br {
		display: none;
	}

	.tp_lead,
	.tp_text {
		font-size: 1.4rem;
	}

	.tp_lead br {
		display: none;
	}

	.tp_closing {
		margin-top: 32px;
		font-size: 1.4rem;
		text-align: left;
	}

	.tp_closing br {
		display: none;
	}

	.tp_btn {
		min-width: 0;
		width: 100%;
		height: 56px;
		font-size: 1.4rem;
	}

	.tp_btn_wrap {
		margin-top: 32px;
	}

	/* hero */

	.tp_hero {
		padding-bottom: 32px;
	}

	.tp_hero_inner {
		flex-direction: column;
		padding: 24px 20px 0;
	}

	.tp_hero_copy {
		width: 100%;
	}

	.tp_hero_title {
		font-size: 2.8rem;
	}

	.tp_hero_sub {
		font-size: 1.6rem;
	}

	.tp_hero_badges {
		margin-top: 20px;
		gap: 12px;
	}

	.tp_hero_mybest {
		width: 80px;
	}

	.tp_hero_note {
		flex: 1;
		padding: 10px 12px;
		font-size: 1.1rem;
	}

	.tp_hero_cp {
		width: 100%;
		margin-top: 28px;
		font-size: 1.5rem;
	}

	.tp_hero_img {
		width: 100%;
		margin-top: 24px;
	}

	.tp_stats {
		margin: -20px 20px 0;
		padding: 28px 20px 24px;
		border-radius: 16px;
	}

	.tp_stats_title {
		font-size: 1.8rem;
	}

	.tp_stats_lead br {
		display: none;
	}

	.tp_stats_list {
		flex-wrap: wrap;
		gap: 20px 0;
	}

	.tp_stats_list li {
		flex: 0 0 50%;
	}

	.tp_stats_list li:nth-child(3) {
		border-left: 0;
	}

	.tp_stats_list .num {
		font-size: 2.6rem;
	}

	.tp_hero_caution {
		margin: 8px 20px 0;
		text-align: left;
	}

	/* banners */

	.tp_banners {
		padding: 40px 20px;
	}

	.tp_banners_cp {
		flex-direction: column;
		gap: 16px;
	}

	.tp_banners_cp li {
		width: 100%;
		height: auto;
		background: none;
	}

	.tp_banners_cp li img {
		height: auto;
		object-fit: fill;
	}

	.tp_price_badge {
		white-space: nowrap;
		font-size: 1.2rem;
		padding: 6px 18px;
		top: -16px;
	}

	.tp_banners_shindan {
		margin-top: 16px;
	}

	.tp_banners_shindan img {
		width: 100%;
	}

	/* concerns */

	.tp_concerns {
		padding-top: 60px;
	}

	.tp_concerns:before {
		width: 100px;
		height: 100px;
		right: -20px;
		top: 20px;
	}

	.tp_concerns:after {
		display: none;
	}

	.tp_bubbles {
		gap: 24px 0;
		margin-top: 32px;
	}

	.tp_bubbles li {
		width: 100%;
		padding: 18px 16px;
		font-size: 1.4rem;
	}

	/* solution */

	.tp_solution {
		padding: 80px 0 0;
		min-height: 0;
	}

	.tp_solution_img {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
		border-radius: 0;
	}

	.tp_solution_card {
		position: static;
		width: auto;
		margin: -40px 20px 0;
		padding: 28px 20px;
	}

	.tp_solution_list li {
		gap: 12px;
		padding: 16px 0;
	}

	.tp_solution_list h3 {
		font-size: 1.6rem;
	}

	.tp_solution_list p br {
		display: none;
	}

	/* for you */

	.tp_foryou {
		padding: 80px 0;
	}

	.tp_foryou_grid {
		flex-direction: column;
		gap: 24px;
	}

	.tp_foryou_copy {
		width: 100%;
	}

	.tp_foryou .tp_checklist {
		width: 100%;
		padding: 8px 20px;
	}

	.tp_checklist li {
		font-size: 1.4rem;
	}

	/* service */

	.tp_service {
		padding: 80px 0 0;
	}

	.tp_platforms {
		flex-direction: column;
		gap: 24px;
	}

	.tp_platform {
		padding: 24px 20px;
	}

	.tp_platform h3 {
		font-size: 1.7rem;
	}

	/* members */

	.tp_members {
		padding: 80px 0 0;
	}

	.tp_members_card {
		padding: 32px 20px;
	}

	.tp_members_num {
		min-width: 0;
		width: 100%;
		padding: 20px;
	}

	.tp_members_num .num {
		font-size: 4.4rem;
	}

	/* matching */

	.tp_matching {
		margin-top: 80px;
		padding: 80px 20px;
	}

	.tp_matching_card {
		padding: 28px 20px;
		gap: 24px;
	}

	.tp_matching_reasons {
		width: 100%;
	}

	/* stories */

	.tp_stories {
		padding: 60px 0;
	}

	.tp_stories_list {
		flex-direction: column;
		gap: 24px;
	}

	.tp_story {
		width: 100%;
	}

	.tp_story figure {
		height: 220px;
	}

	.tp_story .body {
		padding: 20px;
	}

	/* features */

	.tp_features {
		padding: 80px 0 0;
	}

	.tp_feature,
	.tp_feature.reverse {
		flex-direction: column;
		gap: 24px;
		margin-top: 48px;
	}

	.tp_feature .num {
		font-size: 5.6rem;
	}

	.tp_feature h3 {
		font-size: 1.8rem;
	}

	.tp_feature h3 br,
	.tp_feature p br {
		display: none;
	}

	.tp_feature figure {
		width: 100%;
	}

	.tp_feature figure.logos {
		height: 220px;
	}

	/* support */

	.tp_support {
		padding: 80px 0 20px;
	}

	.tp_support:before,
	.tp_support:after {
		display: none;
	}

	.tp_support_card {
		padding: 28px 20px;
	}

	.tp_support_head {
		flex-direction: column-reverse;
		align-items: center;
		gap: 24px;
	}

	.tp_support_head figure {
		width: 180px;
		height: 180px;
	}

	.tp_support_list li {
		width: 100%;
		padding: 16px 20px;
	}

	/* price */

	.tp_price {
		padding: 80px 0 0;
	}

	.tp_price_card {
		margin-top: 40px;
		padding: 40px 20px 32px;
	}

	.tp_price_main .num {
		font-size: 4.8rem;
	}

	.tp_price_sub .num {
		font-size: 3.2rem;
	}

	.tp_price_half {
		flex-direction: column;
		gap: 8px;
	}

	.tp_price_half .label {
		text-align: center;
	}

	.tp_price_half .num {
		font-size: 4rem;
	}

	.tp_price_discount {
		padding: 20px 16px;
	}

	.tp_price_discount p br {
		display: none;
	}

	.tp_price_mybest {
		margin-top: 40px;
	}

	/* safety */

	.tp_safety {
		margin-top: 80px;
		padding: 80px 20px;
	}

	.tp_safety_card {
		padding: 28px 20px;
		gap: 24px;
	}

	.tp_safety_copy,
	.tp_safety_points {
		width: 100%;
	}

	.tp_safety_rate .num {
		font-size: 5rem;
	}

	.tp_safety_docs li {
		width: calc((100% - 12px) / 2);
		padding: 10px 12px;
		font-size: 1.2rem;
	}

	/* howto */

	.tp_howto {
		padding: 80px 0;
	}

	.tp_steps {
		flex-direction: column;
		gap: 24px;
		text-align: left;
	}

	.tp_steps:before {
		left: 27px;
		right: auto;
		top: 0;
		bottom: 0;
		width: 1px;
		height: auto;
	}

	.tp_steps li {
		display: grid;
		grid-template-columns: 56px 1fr;
		column-gap: 16px;
		align-items: start;
	}

	.tp_steps h3 {
		margin-top: 8px;
		grid-column: 2;
	}

	.tp_steps p {
		grid-column: 2;
		margin-top: 4px;
	}

	.tp_steps .step {
		grid-row: 1 / 3;
	}

	/* faq */

	.tp_faq {
		padding: 80px 0;
	}

	.tp_faq_list dt {
		padding: 16px 32px 16px 28px;
		font-size: 1.4rem;
	}

	.tp_faq_list dd {
		padding: 16px 20px 20px;
		font-size: 1.3rem;
	}

	/* media */

	.tp_media {
		padding: 80px 0;
	}

	.tp_media li a {
		gap: 12px;
		padding: 16px 28px 16px 0;
	}

	.tp_media figure {
		width: 100px;
		height: 70px;
	}

	.tp_media h3 {
		font-size: 1.2rem;
	}

	.tp_media h3 span {
		font-size: 1rem;
		padding: 2px 10px;
	}

	/* cta */

	.tp_cta {
		padding: 80px 0;
	}

	.tp_cta_card {
		flex-direction: column;
		padding: 28px 20px;
		gap: 24px;
	}

	.tp_cta_card figure {
		width: 100%;
	}

	.tp_cta_card .tp_h2 {
		font-size: 2rem;
	}

	.tp_cta_card .tp_btn {
		min-width: 0;
	}

}

/* Figma TOP: measured from 335:11997 (PC) / 386:572 (SP). */
body.top { padding-top: 0; letter-spacing: 0; font-feature-settings: normal; -webkit-font-feature-settings: normal; }
body.top header.gh { background: transparent; position: fixed; box-shadow: none; }
body.top header.gh.is-scrolled { background: rgb(255 255 255 / 85%); box-shadow: 0 2px 6px rgb(4 19 17 / 4%); }
body.top .gh_inner { padding: 0 20px 0 55px; }
body.top .gh img.logo { width: 195.643px; height: 50px; }
.gh_btns a i.fa-arrow-right { display: inline-block; width: 15px; height: 8px; background: url(/asset/images/common/arrow-right.svg) center / contain no-repeat; }
.gh_btns a i.fa-arrow-right:before { content: none; }
.gh_menu_btn i.fa-bars { display: inline-block; width: 17px; height: 14px; background: url(/asset/images/common/menu.svg) center / contain no-repeat; }
.gh_menu_btn i.fa-bars:before { content: none; }
.tp_wrapper { margin-bottom: 0; }
.tp_inner { width: calc(100% - 80px); }
.tp_label { font-family: 'Noto Sans JP', sans-serif; font-size: 1.2rem; line-height: 14px; font-weight: 500; letter-spacing: .16em; }
.tp_h2 { margin-top: 10px; line-height: 44px; letter-spacing: .02em; }
.tp_lead { margin-top: 16px; line-height: 26px; letter-spacing: .02em; }
.tp_text { line-height: 26px; letter-spacing: .02em; }
.tp_btn { min-width: 350px; height: 60px; padding: 0 32px; font-size: 1.4rem; box-shadow: 0 4px 6px rgb(74 74 74 / 8%); }
.tp_btn.cta { box-shadow: 0 4px 6px rgb(74 74 74 / 8%); }
.tp_btn i { right: 20px; }
.tp_btn i.fa-chevron-right { width: 7px; height: 12px; background: currentColor; -webkit-mask: url(/asset/images/top/arrow-chevron.svg) center / contain no-repeat; mask: url(/asset/images/top/arrow-chevron.svg) center / contain no-repeat; }
.tp_btn i.fa-chevron-right:before { content: none; }
.tp_btn:focus-visible { outline: 3px solid var(--c-main); outline-offset: 4px; }
.tp_hero { padding: 0; overflow-x: clip; background: linear-gradient(to bottom, var(--c-beige) 760px, #fff 760px); }
.tp_hero_inner { position: relative; max-width: 1440px; height: 760px; padding: 0; display: block; }
.tp_hero_copy { position: relative; z-index: 1; width: 504px; margin-left: max(24px, calc(50% - 578px)); padding-top: 130px; }
.tp_hero_title { width: 480px; height: 148px; white-space: nowrap; margin: 0 auto; font-family: 'IBM Plex Sans JP', sans-serif; font-size: 4.8rem; line-height: 74px; letter-spacing: .02em; font-feature-settings: 'halt' on, 'pwid' on; }
.tp_hero_title strong, .tp_hero_title em { font-size: 5.6rem; font-weight: 700; }
.tp_hero_sub { width: 455px; margin: 6px auto 0; font-family: 'IBM Plex Sans JP', sans-serif; font-size: 2.6rem; line-height: 39px; letter-spacing: .1em; text-align: center; white-space: nowrap; }
.tp_hero_badges { width: 433px; height: 143px; margin: 6px auto 0; gap: 24px; }
.tp_hero_mybest { display: block; width: 109px; height: 143px; padding-bottom: 20px; }
.tp_hero_mybest img { display: block; width: 110px; height: 123px; }
.tp_hero_note { white-space: nowrap; flex: none; width: 300px; height: 90px; padding: 14px 32px; border: 1px solid #c4a36b; border-radius: 16px; color: #b47d1f; background: rgb(255 255 255 / 90%); font-family: 'IBM Plex Sans JP', sans-serif; font-size: 1.4rem; line-height: 20px; font-weight: 500; letter-spacing: .08em; }
.tp_hero_cp { display: flex; justify-content: center; align-items: flex-end; gap: 2px; width: 400px; height: 28px; margin: 40px auto 0; font-size: 1.8rem; line-height: 22px; letter-spacing: .07em; }
.tp_hero_cp:before, .tp_hero_cp:after { content: ''; display: block; width: 1.5px; height: 18px; margin: 0 10px 0; background: var(--c-logo); transform: rotate(-25deg); }
.tp_hero_cp:after { transform: rotate(25deg); }
.tp_hero_cp em { font-family: 'Noto Sans JP', sans-serif; font-size: 3rem; line-height: 28px; }
.tp_hero .tp_btn_wrap { margin: 10px 0 0; text-align: center; }
.tp_hero .tp_btn { min-width: 0; width: 400px; height: 70px; border-radius: 30px; font-size: 1.6rem; }
.tp_hero .tp_btn i { width: 9px; height: 16px; }
.tp_hero_img { position: absolute; width: 740px; height: 734px; top: 0; right: 0; margin: 0; }
.tp_hero_img img { display: block; width: 100%; height: auto; }
.tp_stats { margin: -60px auto 0; padding: 32px 60px; border-radius: 20px; background: rgb(255 255 255 / 98%); box-shadow: 0 4px 12px rgb(0 0 0 / 4%); backdrop-filter: blur(4px); }
.tp_stats_title { font-size: 2.4rem; line-height: 29px; letter-spacing: .06em; }
.tp_stats_lead { font-size: 1.4rem; line-height: 22px; margin-top: 13px; letter-spacing: .02em; }
.tp_stats_list { display: grid; grid-template-columns: repeat(4, 180px); justify-content: center; gap: 48px; margin-top: 24px; padding-top: 24px; }
.tp_stats_list li { position: relative; padding: 0; border: 0; }
.tp_stats_list li + li:before { content: ''; position: absolute; top: 0; bottom: 0; left: -24px; border-left: 1px solid var(--c-line); }
.tp_stats_list .tp_stats_icon { display: block; width: 36px; height: 36px; margin: 0 auto; }
.tp_stats_list .label { font-size: 1.4rem; line-height: 17px; margin-top: 12px; letter-spacing: .02em; }
.tp_stats_list .num { font-family: 'Noto Sans JP', sans-serif; font-size: 2.8rem; font-weight: 900; line-height: 30px; margin-top: 8px; padding-bottom: 4px; white-space: nowrap; letter-spacing: .04em; }
.tp_stats_list .num small { font-size: 1.8rem; line-height: 20px; margin-left: 0; letter-spacing: .02em; }
.tp_stats_list .note { font-size: 1.2rem; line-height: 16px; margin-top: 8px; letter-spacing: 0; }
ul.tp_hero_caution { margin: 16px auto 0; padding-bottom: 0; line-height: 16px; letter-spacing: .02em; }
ul.tp_hero_caution li { padding: 0; }
ul.tp_hero_caution li:before { position: static; }
.tp_banners { padding: 60px 20px; }
.tp_banners_cp li { border-radius: 4px; }
.tp_banners_cp li img { object-fit: contain; }
.tp_banners_shindan img { width: 420px; height: 140px; border-radius: 4px; }
@media (min-width: 600px) {
 .tp_solution_card, .tp_matching_card, .tp_safety_card { backdrop-filter: blur(4px); }
}
@media (min-width: 600px) and (max-width: 1199px) {
 .tp_hero_copy { margin-left: 24px; width: 464px; }
 .tp_hero_title { width: 440px; font-size: 4.4rem; }
 .tp_hero_title strong, .tp_hero_title em { font-size: 5.2rem; }
 .tp_hero_sub { width: 440px; font-size: 2.4rem; }
 .tp_hero_img { width: 650px; right: -125px; }
 .tp_stats { width: calc(100% - 80px); padding-right: 30px; padding-left: 30px; }
 .tp_stats_list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
 .tp_stats_list li + li:before { left: -12px; }
 .tp_stats_list .label { font-size: 1.2rem; }
}
@media (max-width: 599px) {
 body.top .gh_inner { padding: 0 20px 0 15px; }
 body.top .gh img.logo { width: 140.863px; height: 36px; }
 .tp_inner { width: 100%; padding: 0 20px; }
 .tp_label { padding-bottom: 4px; font-size: 1.2rem; }
 .tp_h2 { margin-top: 8px; font-size: 2.2rem; line-height: 32px; letter-spacing: 0; }
 .tp_lead, .tp_text { font-size: 1.5rem; line-height: 26px; }
 .tp_lead { margin-top: 8px; }
 .tp_btn { width: min(100%, 300px); min-width: 0; height: 60px; padding: 0 28px; }
 .tp_hero { background: linear-gradient(to bottom, var(--c-beige) 886px, #fff 886px); }
 .tp_hero_inner { height: 886px; }
 .tp_hero_copy { width: 100%; margin: 0; padding: 86px 20px 0; }
 .tp_hero_title { width: 310px; max-width: 100%; height: 98px; font-size: 3rem; line-height: 48.8px; letter-spacing: .02em; text-align: center; font-feature-settings: 'halt' on, 'vpal' on; white-space: nowrap; }
 .tp_hero_title strong, .tp_hero_title em { font-size: 4rem; }
 .tp_hero_sub { width: 310px; max-width: 100%; margin-top: 4px; font-size: 1.8rem; line-height: 27px; letter-spacing: .05em; color: #4a4a4a; }
 .tp_hero_badges { width: 300px; max-width: 100%; height: 121px; margin: 8px auto 0; gap: 16px; }
 .tp_hero_mybest { width: 90px; height: 117px; padding-bottom: 16px; }
 .tp_hero_mybest img { width: 90px; height: 101px; }
 .tp_hero_note { width: 194px; height: 84px; min-width: 0; padding: 14px 20px; font-size: 1.1rem; line-height: 18px; }
 .tp_hero_cp { width: 300px; max-width: 100%; margin: 16px auto 0; font-size: 1.6rem; }
 .tp_hero_cp em { font-size: 2.4rem; }
 .tp_hero .tp_btn { width: 300px; max-width: 100%; height: 60px; font-size: 1.5rem; box-shadow: none; }
 .tp_hero .tp_btn i { width: 7px; height: 12px; }
 .tp_hero_img { top: 482px; right: auto; left: 50%; width: calc(100% - 26px); max-width: 364px; height: auto; transform: translateX(-50%); }
 .tp_stats { width: auto; margin: -160px 20px 0; padding: 20px; border-radius: 10px; box-shadow: 0 4px 12px rgb(74 74 74 / 8%); }
 .tp_stats_title { font-size: 1.8rem; line-height: 26px; letter-spacing: .02em; }
 .tp_stats_title .intro { display: block; }
 .tp_stats_lead { text-align: left; font-size: 1.3rem; line-height: 20px; margin-top: 10px; }
 .tp_stats_lead br { display: initial; }
 .tp_stats_list { margin-top: 15px; padding-top: 16px; grid-template-columns: minmax(0, 153px) minmax(0, 130px); justify-content: space-between; gap: 24px 12px; }
 .tp_stats_list li { min-height: 71px; display: grid; grid-template-columns: 32px 1fr; grid-template-rows: 13px 24px 13px; column-gap: 8px; row-gap: 0; text-align: left; padding: 0; border: 0; align-content: start; }
 .tp_stats_list li + li:before { left: -14px; }
 .tp_stats_list li:nth-child(3):before { content: none; }
 .tp_stats_list li:nth-child(n+3):after { content: ''; position: absolute; top: -12px; left: 0; right: 0; border-top: 1px solid var(--c-line); }
 .tp_stats_list .tp_stats_icon { width: 32px; height: 32px; grid-row: 1 / 3; margin: 6.5px 0 0; }
 .tp_stats_list .label { font-size: 1.1rem; line-height: 13px; margin: 0; white-space: nowrap; }
 .tp_stats_list .num { font-size: 2rem; line-height: 24px; margin: 8px 0 0; padding: 0; letter-spacing: .04em; }
 .tp_stats_list .num small { font-size: 1.3rem; line-height: 24px; margin-left: 0; letter-spacing: .02em; }
 .tp_stats_list .note { grid-column: 1 / -1; text-align: center; font-size: 1rem; line-height: 13px; margin: 14px 0 0; white-space: nowrap; letter-spacing: .02em; }
 ul.tp_hero_caution { margin: 20px 20px 0; text-align: right; font-size: 1rem; line-height: 16px; }
 .tp_banners { padding: 40px 20px; }
 .tp_banners_cp { gap: 16px; }
 .tp_banners_cp li { aspect-ratio: 440 / 180; height: auto; }
 .tp_banners_cp li img { height: 100%; object-fit: contain; }
 .tp_banners_shindan { margin-top: 16px; }
 .tp_banners_shindan img { width: 100%; height: auto; aspect-ratio: 3; }
}
@media (max-width: 374px) {
 .tp_hero_title { font-size: 2.8rem; }
 .tp_hero_title strong, .tp_hero_title em { font-size: 3.6rem; }
 .tp_hero_sub { font-size: 1.6rem; }
 .tp_hero_badges { gap: 12px; }
 .tp_hero_note { flex: 1; padding-right: 10px; padding-left: 10px; }
 .tp_stats { padding-right: 12px; padding-left: 12px; }
 .tp_stats_list { column-gap: 14px; }
 .tp_stats_list li { column-gap: 5px; }
 .tp_stats_list .label { font-size: 1rem; }
 .tp_stats_list .num { font-size: 1.8rem; }
 .tp_stats_list .num small { font-size: 1.1rem; }
}

/* TOP / upper six sections — values from figma-model.json (2026-09-16). */

@media only screen and (min-width: 600px) {
	/* Concerns: 335:12064 */
	.tp_concerns { min-height: 682px; background: url(/asset/images/top/concerns-bg-pc.svg) no-repeat center 30px / 1360px 582px; }
	.tp_concerns:before, .tp_concerns:after { content: none; }
	.tp_concerns .tp_bubbles { display: grid; height: 282px; grid-template: repeat(2, 128px) / repeat(3, minmax(0, 1fr)); gap: 26px 16px; margin-top: 40px; }
	.tp_concerns .tp_bubbles li { width: auto; height: 128px; min-height: 0; box-sizing: border-box; padding: 24px; border-radius: 0; background: no-repeat top center / 100% auto; background-color: transparent !important; font-size: 1.6rem; line-height: 26px; }
	.tp_concerns .tp_bubbles li:after, .tp_concerns .tp_bubbles li:before { content: none; }
	.tp_concerns .tp_bubbles li:nth-child(1) { background-image: url(/asset/images/top/concern-01-pc.svg); }
	.tp_concerns .tp_bubbles li:nth-child(2) { background-image: url(/asset/images/top/concern-02-pc.svg); }
	.tp_concerns .tp_bubbles li:nth-child(3) { background-image: url(/asset/images/top/concern-03-pc.svg); }
	.tp_concerns .tp_bubbles li:nth-child(4) { background-image: url(/asset/images/top/concern-04-pc.svg); }
	.tp_concerns .tp_bubbles li:nth-child(5) { background-image: url(/asset/images/top/concern-05-pc.svg); }
	.tp_concerns .tp_bubbles li:nth-child(4), .tp_concerns .tp_bubbles li:nth-child(5) { transform: translateX(calc(50% + 8px)); }
	.tp_concerns .tp_closing { margin-top: 40px; font-size: 2rem; line-height: 30px; letter-spacing: .04em; }

	/* Solution: 335:12032 */
	.tp_solution .tp_solution_img picture, .tp_solution .tp_solution_img img { display: block; width: 100%; height: 100%; }
	.tp_solution .tp_solution_img img { object-fit: cover; }
	.tp_solution .tp_solution_card { top: 240px; right: 190px; width: 660px; height: 720px; padding: 56px 48px; border-radius: 20px; background: rgb(255 255 255 / 95%); box-shadow: 0 4px 8px rgb(0 0 0 / 2%); }
	.tp_solution .tp_solution_list { margin-top: 32px; }
	.tp_solution .tp_solution_list .num { padding-top: 0; font-size: 2.6rem; line-height: 39px; }
	.tp_solution .tp_solution_list h3 { font-size: 2.2rem; line-height: 30px; letter-spacing: .02em; }
	.tp_solution .tp_solution_list p { margin-top: 4px; font-size: 1.5rem; line-height: 26px; letter-spacing: .02em; color: var(--c-text); }

	/* For you: 343:34 */
	.tp_foryou .tp_inner { max-width: 918px; }
	.tp_foryou .tp_foryou_grid { align-items: center; gap: 40px; }
	.tp_foryou .tp_foryou_copy { width: 368px; }
	.tp_foryou .tp_checklist { flex: 0 0 510px; padding: 32px; border-radius: 24px; box-shadow: 0 2px 4px rgb(0 0 0 / 2%); }
	.tp_foryou .tp_checklist li { margin: 0 0 16px; padding: 0 0 15px 32px; font-size: 1.6rem; line-height: 26px; }
	.tp_foryou .tp_checklist li:last-child { margin-bottom: 0; padding-bottom: 0; }
	.tp_foryou .tp_checklist li:before { content: ''; top: 3px; width: 20px; height: 20px; background: url(/asset/images/top/check-for-you.svg) center / contain no-repeat; font-size: 0; }
	.tp_foryou .tp_closing { font-size: 2rem; line-height: 30px; letter-spacing: .04em; }

	/* Service: 343:91 */
	.tp_service .tp_platforms { gap: 40px; }
	.tp_service .tp_platform { height: 688px; min-height: 0; box-sizing: border-box; padding: 40px; border: 1px solid var(--c-line); border-radius: 24px; box-shadow: 0 8px 24px -4px rgb(0 0 0 / 6%); }
	.tp_service .tp_platform .logo { height: 94px; border-radius: 24px; box-shadow: none; }
	.tp_service .tp_platform h3 { margin-top: 12px; padding-top: 16px; font-size: 2.2rem; line-height: 30px; }
	.tp_service .tp_platform .text { margin-top: 12px; font-size: 1.5rem; line-height: 26px; letter-spacing: .02em; color: var(--c-text); }
	.tp_service .tp_platform .tp_checklist { box-sizing: border-box; height: 284px; margin-top: 32px; padding: 24px; border: 1px solid var(--c-line); border-radius: 10px; }
	.tp_service .tp_platform .tp_checklist.small li { margin: 0 0 12px; padding: 0 0 12px 38px; font-size: 1.4rem; font-weight: 700; line-height: 22px; letter-spacing: .02em; }
	.tp_service .tp_platform .tp_checklist.small li:last-child { margin-bottom: 0; padding-bottom: 0; }
	.tp_service .tp_platform .tp_checklist.small li:before { content: ''; top: 0; width: 24px; height: 24px; background: url(/asset/images/top/check-for-you.svg) center / contain no-repeat; font-size: 0; }
	.tp_service .tp_platform.ibj .tp_checklist.small li:before { background-image: url(/asset/images/top/check-service.svg); }
	.tp_service .tp_platform.ibj .text { min-height: 78px; }
	.tp_service .tp_platform .more { margin-top: 32px; font-size: 1.2rem; line-height: 16px; letter-spacing: .04375em; }
	.tp_service .tp_platform .more a { font-size: inherit; line-height: inherit; letter-spacing: inherit; }

	/* Members: 343:402 */
	.tp_members .tp_members_card { width: 860px; max-width: 100%; height: 558px; padding: 48px; border-radius: 36px; box-shadow: 0 2px 10px rgb(0 0 0 / 6%); }
	.tp_members .tp_members_card .tp_lead { max-width: 686px; }
	.tp_members .tp_members_num { width: 468px; min-width: 0; height: 200px; margin-top: 24px; padding: 32px 120px; border-radius: 20px; }
	.tp_members .tp_members_num .label { font-size: 1.8rem; line-height: 30px; letter-spacing: .08em; }
	.tp_members .tp_members_num .num { white-space: nowrap; font-size: 5.4rem; line-height: 48px; letter-spacing: .02em; }
	.tp_members .tp_members_num .num small { font-size: 2.8rem; line-height: 30px; }
	.tp_members .tp_members_num .note { margin-top: 12px; font-size: 1rem; line-height: 26px; letter-spacing: .02em; }
	.tp_members .tp_members_card .tp_btn_wrap { margin-top: 40px; }

	/* Matching: 359:1350 */
	.tp_matching { margin-top: 0; padding: 240px 0 120px; background: none; }
	.tp_matching:before { inset: 120px 0 auto; height: 830px; background: linear-gradient(rgb(12 41 37 / 20%), rgb(12 41 37 / 20%)), url(/asset/images/top/matching-photo-pc.webp) no-repeat center / cover; }
	.tp_matching .tp_matching_card { width: 1060px; max-width: calc(100% - 40px); height: 590px; padding: 48px; gap: 64px 40px; border-radius: 24px; background: rgb(255 255 255 / 95%); box-shadow: 0 4px 8px rgb(0 0 0 / 2%); }
	.tp_matching .tp_matching_copy { flex: 0 0 462px; width: 462px; }
	.tp_matching .tp_matching_reasons { width: 462px; margin-top: 12px; }
	.tp_matching .tp_matching_reasons h3 { font-size: 1.8rem; line-height: 22px; }
	.tp_matching .tp_matching_reasons li { margin-top: 12px; padding: 12px 20px 12px 52px; border-radius: 16px; background: #fff; font-size: 1.5rem; line-height: 18px; }
	.tp_matching .tp_matching_reasons li:before { content: ''; left: 20px; top: 12px; width: 20px; height: 17px; background: url(/asset/images/top/heart-matching.svg) center / contain no-repeat; }
	.tp_matching .tp_matching_card .tp_closing { width: 100%; margin: 0; font-size: 2rem; line-height: 30px; letter-spacing: .04em; }
}

@media only screen and (max-width: 599px) {
	/* Concerns: 386:22 */
	.tp_concerns { min-height: 867.33px; padding-top: 60px; background: url(/asset/images/top/concerns-bg-sp.svg) no-repeat right 0 top 20px / 80px 69px; }
	.tp_concerns:before, .tp_concerns:after { content: none; }
	.tp_concerns .tp_bubbles { height: 445.33px; gap: 12px 0; margin-top: 32px; padding-bottom: 0; }
	.tp_concerns .tp_bubbles { display: flex; }
	.tp_concerns .tp_bubbles li { width: 100%; min-height: 0; box-sizing: border-box; padding: 16px 24px; border-radius: 0; background: no-repeat top center / 100% auto; background-color: transparent !important; font-size: 1.4rem; line-height: 20px; }
	.tp_concerns .tp_bubbles li:nth-child(1) { height: 65.33px; background-image: url(/asset/images/top/concern-01-sp.svg); }
	.tp_concerns .tp_bubbles li:nth-child(2) { height: 86px; background-image: url(/asset/images/top/concern-02-sp.svg); }
	.tp_concerns .tp_bubbles li:nth-child(3) { height: 100px; background-image: url(/asset/images/top/concern-03-sp.svg); }
	.tp_concerns .tp_bubbles li:nth-child(4) { height: 80px; background-image: url(/asset/images/top/concern-04-sp.svg); }
	.tp_concerns .tp_bubbles li:nth-child(5) { height: 66px; background-image: url(/asset/images/top/concern-05-sp.svg); }
	.tp_concerns .tp_bubbles li:after, .tp_concerns .tp_bubbles li:before { content: none; }
	.tp_concerns .tp_bubbles li:nth-child(4), .tp_concerns .tp_bubbles li:nth-child(5) { transform: none; }
	.tp_concerns .tp_bubbles br, .tp_concerns .tp_closing br { display: none; }
	.tp_concerns .tp_h2 br, .tp_concerns .tp_bubbles li:nth-child(2) br, .tp_concerns .tp_bubbles li:nth-child(3) br { display: block; }
	.tp_concerns .tp_closing { margin-top: 32px; font-size: 1.6rem; line-height: 24px; letter-spacing: .02em; text-align: center; }
	.tp_concerns .tp_closing br { display: block; }

	/* Solution: 392:98 */
	.tp_solution { min-height: 1060px; padding: 100px 0 0; background: linear-gradient(#fff 0 100px, var(--c-beige) 100px); }
	.tp_solution .tp_solution_img { position: relative; z-index: 0; width: calc(100% - 60px); max-width: 330px; height: 317px; aspect-ratio: auto; border-radius: 0 20px 20px 0; }
	.tp_solution .tp_solution_img picture, .tp_solution .tp_solution_img img { display: block; width: 100%; height: 100%; }
	.tp_solution .tp_solution_img img { object-fit: cover; }
	.tp_solution .tp_solution_card { position: relative; z-index: 1; top: auto; right: auto; width: calc(100% - 40px); min-height: 760px; margin: -117px 20px 0; padding: 24px; border: 1px solid var(--c-beige); border-radius: 20px; background: rgb(255 255 255 / 94.9%); box-shadow: 0 4px 8px rgb(0 0 0 / 4%); text-align: left; }
	.tp_solution .tp_solution_list { margin-top: 16px; }
	.tp_solution .tp_solution_list li { gap: 12px; padding: 16px 0; }
	.tp_solution .tp_solution_list li:first-child { padding-top: 0; }
	.tp_solution .tp_solution_list .num { padding-top: 0; font-size: 2.2rem; line-height: 33px; }
	.tp_solution .tp_solution_list h3 { font-size: 1.6rem; line-height: 26px; }
	.tp_solution .tp_solution_list p { margin-top: 4px; font-size: 1.5rem; line-height: 26px; letter-spacing: .02em; color: var(--c-text); }

	/* For you: 386:81 */
	.tp_foryou { padding: 100px 0; }
	.tp_foryou .tp_foryou_grid { gap: 32px; }
	.tp_foryou .tp_h2, .tp_foryou .tp_lead { margin-top: 12px; }
	.tp_foryou .tp_lead { font-size: 1.5rem; line-height: 26px; }
	.tp_foryou .tp_checklist { padding: 20px 20px 14px; border: 1px solid var(--c-line); border-radius: 20px; box-shadow: none; }
	.tp_foryou .tp_checklist li { margin: 0 0 14px; padding: 0 0 14px 32px; font-size: 1.3rem; line-height: 20px; }
	.tp_foryou .tp_checklist li:last-child { margin-bottom: 0; padding-bottom: 0; }
	.tp_foryou .tp_checklist li:before { content: ''; top: 0; width: 20px; height: 20px; background: url(/asset/images/top/check-for-you.svg) center / contain no-repeat; font-size: 0; }
	.tp_foryou .tp_closing { margin-top: 32px; font-size: 1.6rem; line-height: 24px; letter-spacing: .02em; text-align: center; }

	/* Service: 386:137 */
	.tp_service { padding: 100px 0 20px; }
	.tp_service .tp_inner { text-align: left; }
	.tp_service .tp_lead { min-height: 156px; }
	.tp_service .tp_btn_wrap { text-align: center; }
	.tp_service .tp_btn { width: min(320px, 100%); min-width: 0; height: 52px; }
	.tp_service .tp_platforms { gap: 40px; margin-top: 32px; }
	.tp_service .tp_platform { padding: 24px; border: 1px solid var(--c-line); border-radius: 20px; box-shadow: 0 8px 24px -4px rgb(0 0 0 / 6%); }
	.tp_service .tp_platform.ibj { min-height: 620px; }
	.tp_service .tp_platform.cship { min-height: 714px; }
	.tp_service .tp_platform .logo { height: 74px; border-radius: 12px; box-shadow: none; }
	.tp_service .tp_platform h3 { margin-top: 8px; padding-top: 8px; font-size: 1.8rem; line-height: 26px; }
	.tp_service .tp_platform .text { margin-top: 8px; font-size: 1.5rem; line-height: 26px; letter-spacing: .02em; color: var(--c-text); }
	.tp_service .tp_platform .tp_checklist { margin-top: 24px; padding: 16px; border: 1px solid var(--c-line); border-radius: 10px; }
	.tp_service .tp_platform .tp_checklist.small li { margin: 0 0 12px; padding: 0 0 12px 38px; font-size: 1.4rem; font-weight: 700; line-height: 22px; letter-spacing: .02em; }
	.tp_service .tp_platform .tp_checklist.small li:last-child { margin-bottom: 0; padding-bottom: 0; }
	.tp_service .tp_platform .tp_checklist.small li:before { content: ''; top: 0; width: 24px; height: 24px; background: url(/asset/images/top/check-for-you.svg) center / contain no-repeat; font-size: 0; }
	.tp_service .tp_platform.ibj .tp_checklist.small li:before { background-image: url(/asset/images/top/check-service.svg); }
	.tp_service .tp_platform.ibj .tp_checklist { height: 304px; box-sizing: border-box; }

	.tp_service .tp_platform.cship .tp_checklist { height: 350px; box-sizing: border-box; }


	.tp_service .tp_platform .more { margin-top: 24px; font-size: 1.2rem; line-height: 16px; letter-spacing: .04375em; text-align: center; }
	.tp_service .tp_platform .more a { font-size: inherit; line-height: inherit; letter-spacing: inherit; }
	.tp_service .tp_platform.cship .logo { height: 70px; }

	/* Members: 386:197 */
	.tp_members { padding: 100px 0; }
	.tp_members .tp_members_card { height: 554px; padding: 24px; border-radius: 24px; box-shadow: 0 2px 10px rgb(0 0 0 / 6%); }
	.tp_members .tp_members_num { width: min(300px, 100%); height: 166px; margin-top: 24px; padding: 24px; border-radius: 20px; }
	.tp_members .tp_members_num .label { font-size: 1.6rem; line-height: 30px; letter-spacing: .08em; }
	.tp_members .tp_members_num .num { white-space: nowrap; font-size: 4.4rem; line-height: 44px; }
	.tp_members .tp_members_num .num small { font-size: 2.4rem; line-height: 30px; }
	.tp_members .tp_members_num .note { margin-top: 5px; font-size: 1rem; line-height: 26px; }
	.tp_members .tp_members_card .tp_btn_wrap { margin-top: 40px; }
	.tp_members .tp_members_card .tp_btn { width: min(320px, 100%); height: 52px; }

	/* Matching: 386:238 */
	.tp_matching { margin-top: 0; padding: 0; background: none; }
	.tp_matching:before { inset: 0 auto auto 0; width: 100%; height: 454px; background: url(/asset/images/top/matching-photo-sp.webp) no-repeat center / cover; }
	.tp_matching .tp_matching_card { display: block; width: auto; max-width: none; padding: 0; background: transparent; border-radius: 0; box-shadow: none; }
	.tp_matching .tp_matching_copy { min-height: 454px; padding: 32px; background: rgb(12 41 37 / 64%); color: #fff; }
	.tp_matching .tp_matching_copy .tp_label { padding-bottom: 0; text-shadow: 0 0 4px rgb(12 41 37 / 60%); }
	.tp_matching .tp_matching_copy .tp_h2, .tp_matching .tp_matching_copy .tp_text { color: #fff; text-shadow: 0 0 4px rgb(12 41 37 / 60%); }
	.tp_matching .tp_matching_copy .tp_h2 { font-size: 2.2rem; line-height: 34px; }
	.tp_matching .tp_matching_copy .tp_text { font-size: 1.5rem; line-height: 26px; letter-spacing: .02em; }
	.tp_matching .tp_matching_copy .tp_h2 + .tp_text { margin-top: 24px; }
	.tp_matching .tp_matching_copy .tp_text + .tp_text { margin-top: 16px; }
	.tp_matching .tp_matching_reasons { width: auto; margin: 0; padding: 32px 20px 0; background: #fff; }
	.tp_matching .tp_matching_reasons h3 { font-size: 1.6rem; line-height: 26px; letter-spacing: .02em; text-align: center; }
	.tp_matching .tp_matching_reasons li { margin-top: 8px; padding: 12px 16px 12px 44px; border-radius: 12px; background: #fff7f7; font-size: 1.4rem; line-height: 17px; }
	.tp_matching .tp_matching_reasons li:first-child { margin-top: 16px; }
	.tp_matching .tp_matching_reasons li:before { content: ''; left: 16px; top: 12px; width: 20px; height: 17px; background: url(/asset/images/top/heart-matching.svg) center / contain no-repeat; }
	.tp_matching .tp_matching_card .tp_closing { width: auto; margin: 40px 0 0; padding: 0 20px 69px; background: #fff; font-size: 1.6rem; line-height: 24px; letter-spacing: .02em; text-align: center; }
}

@media only screen and (min-width: 600px) and (max-width: 1100px) {
	.tp_concerns .tp_bubbles { display: flex; }
	.tp_concerns .tp_bubbles li { width: calc((100% - 32px) / 3); }
	.tp_concerns .tp_bubbles li:nth-child(4), .tp_concerns .tp_bubbles li:nth-child(5) { transform: none; }
}

/* Source fidelity: platform internals, text breaks and decorative layers. */
.tp_service .tp_platform { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(180deg, #fdf8f6, #faf9f4); }
.tp_service .tp_platform.cship { background: linear-gradient(180deg, #f7faf9, #faf9f4); }
.tp_service .tp_platform:before { content: ''; position: absolute; z-index: -1; top: -47px; right: -47px; width: 144px; height: 144px; border-radius: 50%; background: rgb(253 240 238 / 60%); filter: blur(24px); }
.tp_service .tp_platform.cship:before { background: rgb(227 243 240 / 50%); }
.tp_service .tp_platform .logo img { max-width: none; max-height: none; flex: none; }
.tp_service .tp_platform.ibj .more a, .tp_service .tp_platform.cship .tp_checklist em { color: var(--c-main); }
.tp_service .tp_platform .tp_checklist { display: flex; flex-direction: column; justify-content: center; gap: 24px; border: 0; box-shadow: inset 0 0 0 1px var(--c-line); }
.tp_service .tp_platform .tp_checklist.small li { display: flex; align-items: center; flex: none; min-height: 24px; margin: 0; padding: 0 0 0 38px; border-bottom: 0; }
.tp_service .tp_platform .tp_checklist.small li:before { top: 50%; transform: translateY(-50%); }
.tp_service .tp_platform .tp_checklist.small li:not(:last-child):after { content: ''; position: absolute; bottom: -12px; left: 0; right: 0; border-bottom: 1px solid var(--c-line); }
.tp_members .tp_members_card { position: relative; isolation: isolate; overflow: hidden; background: #fff; }
.tp_members .tp_members_card:before { content: ''; position: absolute; z-index: -1; top: -77px; right: -68px; width: 192px; height: 192px; border-radius: 50%; background: #eff8f6; filter: blur(40px); }
.tp_members .tp_members_num { background: #f5faf9; }
.tp_members .tp_members_num .num { display: flex; justify-content: center; align-items: flex-end; gap: 8px; font-weight: 700; letter-spacing: .02em; }
.tp_members .tp_members_num .num small { margin: 0; letter-spacing: .02em; }
.tp_service .tp_btn, .tp_members .tp_btn { box-shadow: 0 2px 6px rgb(0 0 0 / 4%); }
@media only screen and (min-width: 600px) {
 .tp_service .tp_platform.ibj .logo img { width: 200px; height: 36px; transform: translateY(3px); }
 .tp_service .tp_platform.cship .logo img { width: 250px; height: 52px; transform: translateY(3px); }
 .tp_members .tp_members_num .num { margin-top: 12px; }
 .tp_members .tp_members_num .note { margin-top: 20px; }
 .tp_matching .tp_matching_reasons h3, .tp_matching .tp_matching_reasons li { letter-spacing: 0; }
 .tp_matching .tp_matching_reasons li:before { top: 12.5px; }
}
@media only screen and (max-width: 599px) {
 .tp_foryou .tp_lead br { display: block; }
 .tp_foryou .tp_lead br:first-child { display: none; }
 .tp_foryou .tp_checklist { padding: 20px; border: 0; box-shadow: inset 0 0 0 1px var(--c-line); }
 .tp_foryou .tp_checklist li { margin: 0 0 28px; padding: 0 0 0 32px; border: 0; letter-spacing: 0; }
 .tp_foryou .tp_checklist li:before { top: 50%; transform: translateY(-50%); }
 .tp_foryou .tp_checklist li:not(:last-child):after { content: ''; position: absolute; left: 0; right: 0; bottom: -14px; border-bottom: 1px solid var(--c-line); }
 .tp_foryou .tp_closing br { display: block; }
 .tp_service .tp_h2 br, .tp_service .tp_lead br, .tp_members .tp_lead br { display: block; }
 .tp_service .tp_platform.ibj .logo img { width: 154px; height: 28px; transform: translateY(3px); }
 .tp_service .tp_platform.cship .logo img { width: 163px; height: 34px; transform: translateY(2px); }
 .tp_service .tp_btn i, .tp_members .tp_btn i { width: 4px; height: 7px; right: 16px; font-size: 0; background: url(/asset/images/top/arrow-chevron.svg) center / 4px 7px no-repeat; }
 .tp_service .tp_btn i:before, .tp_members .tp_btn i:before { content: none; }
 .tp_members .tp_members_card .tp_lead { text-align: left; }
 .tp_members .tp_members_card:before { top: -40px; right: -40px; width: 130px; height: 130px; }
 .tp_members .tp_members_num .num { margin-top: 5px; }
 .tp_members .tp_members_num .note { margin-top: 13px; letter-spacing: .02em; }
 .tp_members .tp_members_card .tp_btn { width: 320px; max-width: calc(100% + 20px); margin-left: -10px; margin-right: -10px; }
 .tp_matching .tp_matching_copy .tp_h2 br:first-of-type { display: block; }
 .tp_matching .tp_matching_copy .tp_h2 br:last-of-type { display: none; }
 .tp_matching .tp_matching_reasons li { letter-spacing: 0; }
 .tp_matching .tp_matching_reasons li:before { width: 16px; height: 14px; top: 13.5px; }
 .tp_matching .tp_closing br { display: block; }
}

/* Figma fidelity overrides: Features / Support / Safety / How to start / FAQ */
/* Integrate after style.css. Selectors remain within the five assigned sections. */

.tp_support .tp_btn i, .tp_safety .tp_btn i, .tp_howto .tp_btn i, .tp_faq .tp_btn i { font-size: 8px; right: 16px; }

/* Features — PC: 343:666 */
.tp_features { padding: 120px 0 0; }
.tp_features > .tp_inner > .center { height: 136px; }
.tp_features .tp_lead { width: 854px; margin: 16px auto 0; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
.tp_feature { min-height: 280px; gap: 70px; margin-top: 40px; align-items: flex-start; }
.tp_feature:first-of-type { margin-top: 40px; }
.tp_feature .copy { width: 550px; flex: 0 0 550px; padding-top: 24px; }
.tp_feature .num { font-size: 100px; line-height: 100px; font-weight: 300; color: #bde6e1; }
.tp_feature h3 { margin-top: 12px; font-size: 22px; line-height: 30px; letter-spacing: .02em; }
.tp_feature p { margin-top: 12px; font-size: 15px; line-height: 26px; letter-spacing: .02em; color: #6f6f6f; }
.tp_feature figure { width: 440px; height: 280px; }
.tp_feature figure > img { width: 440px; height: 280px; object-fit: contain; }
.tp_feature.reverse .copy { padding-top: 24px; }
.tp_feature figure.logos { display: block; overflow: visible; height: 280px; border-radius: 0; background: none; box-shadow: none; }
.tp_feature figure.logos::after { content: ''; position: absolute; inset: 0 auto auto 0; z-index: 0; width: 400px; height: 260px; border: 1px solid #fff1f1; border-radius: 24px; background: #fff; }
.tp_feature figure.logos::before { right: 0; top: 20px; z-index: -1; }
.tp_feature figure picture { display: block; width: 100%; height: 100%; }
.tp_feature figure picture img { display: block; width: 100%; height: 100%; object-fit: contain; }
.tp_feature figure.logos::before, .tp_feature figure.logos::after { display: none; }
.tp_feature figure.logos span { position: relative; z-index: 1; display: block; text-align: center; }
.tp_feature figure.logos span:first-child { padding-top: 73px; }
.tp_feature figure.logos span + span { margin-top: 30px; }
.tp_feature figure.logos span:first-child img { width: 280px; max-height: 51px; }
.tp_feature figure.logos span + span img { width: 250px; max-height: 52px; }
.tp_feature figure.logos picture img { width: 100%; height: 100%; max-height: none; }

/* Advisor Support — PC: 343:762 */
.tp_support { padding: 120px 0 40px; }
.tp_support::before { width: 230px; height: 158px; right: 40px; top: 30px; border-radius: 0; background: radial-gradient(circle 79px at 151px 79px, #f2fbfa 99%, transparent 100%), radial-gradient(circle 49px at 50px 85px, transparent 97%, #bde6e1 98%, #bde6e1 100%, transparent 102%); }
.tp_support::after { width: 125px; height: 86px; left: 40px; bottom: 20px; border-radius: 0; background: radial-gradient(circle 26px at 98px 40px, transparent 97%, #bde6e1 98%, #bde6e1 100%, transparent 103%), radial-gradient(circle 43px at 43px 43px, #f2fbfa 99%, transparent 100%); }
.tp_support_card { overflow: hidden; background: radial-gradient(circle at 96% 0, #eff8f6 0, #fff 145px); height: 918px; padding: 56px; border-radius: 36px; box-shadow: 0 2px 10px rgb(0 0 0 / 6%); }
.tp_support_head { height: 318px; gap: 40px; }
.tp_support_head > div { width: 650px; }
.tp_support_head .tp_h2 { margin-top: 10px; }
.tp_support_head .tp_text { margin-top: 16px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
.tp_support_head figure { width: 256px; height: 256px; padding: 4px; border: 1px solid #fff; box-shadow: 0 16px 20px -8px #eff6f5; }
.tp_support_head figure img { border-radius: 50%; }
.tp_support_h3 { display: flex; align-items: center; gap: 20px; margin-top: 20px; padding: 0; border: 0; font-size: 22px; line-height: 30px; letter-spacing: .02em; }
.tp_support_h3::after { content: ''; flex: 1; height: 1px; background: #bde6e1; }
.tp_safety_docs h3::after { content: ''; flex: 1; height: 1px; background: #e8e7e3; }
.tp_support_list { gap: 10px 20px; margin-top: 20px; }
.tp_support_list li { width: calc(50% - 10px); min-height: 106px; padding: 16px 20px; border-radius: 10px; }
.tp_support_list h4 { font-size: 16px; line-height: 26px; letter-spacing: .02em; }
.tp_support_list p { margin-top: 4px; font-size: 14px; line-height: 22px; letter-spacing: .02em; }
.tp_support_opt { display: flex; align-items: center; gap: 20px; margin-top: 20px; font-size: 15px; font-weight: 700; line-height: 26px; letter-spacing: .02em; }
.tp_support_opt::after { content: ""; flex: 1; height: 1px; background: #e8e7e3; }
.tp_support .tp_tags { gap: 8px; margin-top: 10px; }
.tp_support .tp_tags li a { padding: 6px 16px; border-radius: 20px; background: #faf9f4; font-size: 14px; line-height: 26px; letter-spacing: .02em; }
.tp_support_card > .tp_btn_wrap { margin-top: 40px; }

/* Safety — PC: 359:1362 */
.tp_safety { box-sizing: border-box; height: auto; min-height: 1280px; margin-top: 0; padding: 240px 0 120px; background: url(/asset/images/top/safety-photo-pc.webp) no-repeat center 120px / 1440px 1160px; }
.tp_safety::before { inset: 120px 0 0; }
.tp_safety_card { box-sizing: border-box; width: 1060px; max-width: none; height: auto; min-height: 920px; padding: 48px; gap: 40px; border-radius: 24px; background: rgb(255 255 255 / 96%); box-shadow: 0 4px 8px rgb(0 0 0 / 2%); }
.tp_safety_copy, .tp_safety_points { width: 462px; }
.tp_safety_copy { min-height: 424px; height: auto; }
.tp_safety_copy .tp_h2 { margin-top: 10px; }
.tp_safety_copy .tp_text { margin-top: 16px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
.tp_safety_rate { box-sizing: border-box; height: 192px; margin-top: 24px; padding: 19px 23px; grid-template-columns: 82px 1fr; column-gap: 24px; }
.tp_safety_rate .label { font-size: 16px; line-height: 26px; letter-spacing: .02em; }
.tp_safety_rate .num { display: flex; justify-content: flex-start; align-items: flex-end; gap: 4px; height: 88px; font-size: 81px; line-height: 88px; font-weight: 500; }
.tp_safety_rate .num small { font-size: 32px; line-height: 38px; margin-bottom: 1px; }
.tp_safety_rate .note { margin-top: 12px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
.tp_safety_points { display: flex; flex-direction: column; gap: 18px; }
.tp_safety_points li { box-sizing: border-box; min-height: 128px; margin: 0; padding: 23px 19px 23px 49px; }
.tp_safety_points li:last-child { min-height: 132px; }
.tp_safety_points li::before { top: 26px; left: 20px; font-size: 22px; }
.tp_safety_points h3 { font-size: 18px; line-height: 24px; letter-spacing: .02em; }
.tp_safety_points p { margin-top: 4px; font-size: 14px; line-height: 26px; letter-spacing: .02em; color: #3e3e3e; }
.tp_safety_points a { font-weight: 700; }
.tp_safety_docs { min-height: 160px; height: auto; }
.tp_safety_docs h3 { display: flex; align-items: center; gap: 20px; padding: 0; border: 0; font-size: 22px; line-height: 30px; letter-spacing: .02em; }
.tp_safety_docs ul { gap: 10px 20px; margin-top: 20px; }
.tp_safety_docs li { box-sizing: border-box; width: calc((100% - 40px) / 3); min-height: 50px; height: auto; padding: 12px 24px; border-radius: 10px; background: #faf9f4; font-size: 14px; line-height: 26px; letter-spacing: .02em; }
.tp_safety_docs li small { font-size: inherit; font-weight: inherit; color: inherit; }
.tp_safety_card .tp_closing { margin-top: 0; font-size: 20px; line-height: 30px; letter-spacing: .04em; color: #2bb4a2; }
.tp_safety_card .tp_btn_wrap { margin-top: 0; }

/* How to start — PC: 297:8870 */
.tp_howto { box-sizing: border-box; height: 753px; padding: 120px 0; }
.tp_howto > .tp_inner > .tp_h2 { margin-top: 10px; }
.tp_howto .tp_lead { width: 839px; margin-top: 16px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
.tp_howto .tp_link { margin-top: 0; font-size: 14px; line-height: 26px; letter-spacing: .02em; }
.tp_steps { height: 167px; gap: 0; margin-top: 40px; }
.tp_steps::before { left: 90px; right: 81px; top: 27px; height: 2px; background: #bde6e1; }
.tp_steps li { box-sizing: border-box; flex: 0 0 212px; padding: 0 12px; }
.tp_steps .step { width: 56px; height: 56px; }
.tp_steps h3 { margin-top: 12px; font-size: 15px; line-height: 21px; }
.tp_steps p { margin-top: 12px; font-size: 13px; line-height: 22px; letter-spacing: .02em; }
.tp_howto .tp_btn_wrap { margin-top: 40px; }

/* FAQ — PC: 297:8960 */
.tp_faq { box-sizing: border-box; min-height: 622px; height: auto; padding: 120px 0; }
.tp_faq .tp_inner.narrow { width: 800px; max-width: none; }
.tp_faq .tp_h2 { margin-top: 10px; }
.tp_faq_list { margin-top: 40px; }
.tp_faq_list dt { box-sizing: border-box; height: 58px; min-height: 0; padding: 16px 28px 16px 27px; font-size: 15px; line-height: 26px; font-weight: 400; letter-spacing: .02em; }
.tp_faq_list dt::before { top: 16px; font-family: 'Noto Sans JP', sans-serif; font-size: 18px; line-height: 26px; font-weight: 900; letter-spacing: .02em; }
.tp_faq_list dt::after { content: "+"; right: 0; font-family: 'Noto Sans JP', sans-serif; font-size: 18px; line-height: 18px; font-weight: 900; color: #e8e7e3; }
.tp_faq_list dt.active::after { content: "−"; }
.tp_faq .tp_btn_wrap { margin-top: 40px; }

@media only screen and (min-width: 600px) and (max-width: 1100px) {
  .tp_features .tp_lead, .tp_howto .tp_lead { max-width: 100%; }
  .tp_feature { gap: clamp(24px, 4vw, 70px); }
  .tp_feature .copy { width: auto; flex: 1 1 0; min-width: 0; }
  .tp_feature figure { width: min(440px, 42vw); height: auto; aspect-ratio: 11 / 7; }
  .tp_feature figure > img { width: 100%; height: 100%; }
  .tp_support_card { width: calc(100% - 80px); }
  .tp_support_head > div { width: auto; flex: 1 1 0; min-width: 0; }
  .tp_support_head figure { width: min(256px, 27%); height: auto; aspect-ratio: 1; }
  .tp_safety_card { width: min(1060px, calc(100% - 80px)); }
  .tp_safety_copy, .tp_safety_points { width: calc(50% - 20px); }
  .tp_steps li { flex: 1 1 0; min-width: 0; }
  .tp_faq .tp_inner.narrow { width: min(800px, calc(100% - 80px)); }
}

@media only screen and (max-width: 599px) {
  /* Features — SP: 386:308 */
  .tp_features { padding: 100px 0 0; }
  .tp_features > .tp_inner > .center { height: 222px; text-align: left; }
  .tp_features .tp_h2 { margin-top: 8px; }
  .tp_features .tp_lead { width: auto; margin-top: 8px; font-size: 15px; line-height: 26px; text-align: left; }
  .tp_features .tp_lead br { display: block; }
  .tp_feature, .tp_feature.reverse { display: block; min-height: 0; margin-top: 32px; padding: 0; border: 0; }
  .tp_feature + .tp_feature { margin-top: 40px; padding-top: 16px; border-top: 1px solid #e8e7e3; }
  .tp_feature .copy { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 12px; width: auto; padding: 0; }
  .tp_feature.reverse .copy { padding-top: 24px; }
  .tp_feature .num { display: block; font-weight: 400; grid-column: 1; grid-row: 1; align-self: center; font-size: 48px; line-height: 48px; }
  .tp_feature h3 { display: block; letter-spacing: 0; grid-column: 2; grid-row: 1; align-self: center; margin: 0; font-size: 18px; line-height: 26px; }
  .tp_feature p { color: #3e3e3e; grid-column: 1 / -1; margin-top: 16px; font-size: 15px; line-height: 26px; }
  .tp_feature h3 br { display: block; }
  .tp_feature p br { display: block; }
  .tp_feature:last-child { padding-top: 38px; }
  .tp_feature figure { width: 100%; max-width: 350px; height: auto; aspect-ratio: 350 / 207; margin-top: 16px; }
  .tp_feature figure > img { width: 100%; height: 100%; object-fit: contain; }
  .tp_feature figure.logos { height: 207px; margin-top: 16px; }
  .tp_feature figure.logos::after { width: calc(100% - 32px); height: 207px; border-radius: 20px; }
  .tp_feature figure.logos::before { width: 160px; height: 160px; right: 0; top: 20px; }
  .tp_feature figure.logos span:first-child { padding-top: 54px; }
  .tp_feature figure.logos span + span { margin-top: 24px; }
  .tp_feature figure.logos span:first-child img { width: 224px; max-height: 41px; }
  .tp_feature figure.logos span + span img { width: 200px; max-height: 42px; }

  /* Advisor Support — SP: 386:335 */
  .tp_support { padding: 100px 0 0; }
  .tp_support_card { box-sizing: border-box; width: 100%; max-width: 350px; min-height: 1436px; height: auto; padding: 24px; border-radius: 20px; box-shadow: 0 2px 10px rgb(0 0 0 / 6%); }
  .tp_support_head { position: relative; display: flex; flex-direction: column; gap: 16px; min-height: 548px; height: auto; }
  .tp_support_head > div { width: 100%; }
  .tp_support_head .tp_h2 { margin-top: 6px; }
  .tp_support_head .tp_h2 br { display: block; }
  .tp_support_head .tp_text { margin-top: 12px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
  .tp_support_head figure { position: static; flex-shrink: 0; margin: 0 auto; width: 180px; height: 180px; padding: 4px; border: 0; }
  .tp_support_h3 { gap: 20px; margin-top: 20px; font-size: 16px; line-height: 30px; }
  .tp_support_list { display: block; margin-top: 20px; }
  .tp_support_list li { width: 100%; min-height: 0; margin-top: 10px; padding: 12px 16px; border-radius: 10px; }
  .tp_support_list li:first-child { margin-top: 0; }
  .tp_support_list h4 { font-size: 16px; line-height: 26px; }
  .tp_support_list p { margin-top: 4px; font-size: 14px; line-height: 22px; }
  .tp_support_opt::after { display: none; }
  .tp_support_opt { display: block; margin-top: 20px; font-size: 14px; line-height: 22px; }
  .tp_support .tp_tags { gap: 10px; margin-top: 10px; }
  .tp_support_card > .tp_btn_wrap { margin-top: 20px; }
  .tp_support_card .tp_btn { width: 100%; max-width: 300px; height: 52px; }


  /* Safety — SP: 398:1308 */
  .tp_safety { min-height: 1584px; height: auto; margin-top: 0; padding: 100px 0; overflow: hidden; background: #fff; }
  .tp_safety::before { display: none; }
  .tp_safety_copy::before { content: ""; position: absolute; inset: 0 0 242px; background: linear-gradient(rgb(12 41 37 / 64%), rgb(12 41 37 / 64%)), url(/asset/images/top/safety-photo-sp.webp) no-repeat center / cover; }
  .tp_safety_card { display: block; box-sizing: border-box; width: 100%; min-height: 1384px; height: auto; padding: 0 20px; border-radius: 0; background: transparent; box-shadow: none; }
  .tp_safety_copy { position: relative; width: calc(100% + 40px); min-height: 550px; height: auto; margin-left: -20px; padding: 32px 32px 0; color: #fff; }
  .tp_safety_copy .tp_label, .tp_safety_copy .tp_h2, .tp_safety_copy .tp_text { position: relative; z-index: 1; color: #fff; text-shadow: 0 0 4px rgb(12 41 37 / 60%); }
  .tp_safety_copy .tp_label { padding-bottom: 0; color: #2bb4a2; line-height: 14px; }
  .tp_safety_copy .tp_h2 { margin-top: 8px; line-height: 34px; }
  .tp_safety_copy .tp_h2 br { display: block; }
  .tp_safety_copy .tp_text { margin-top: 24px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
  .tp_safety_rate { position: relative; top: auto; left: -12px; box-sizing: border-box; width: calc(100% + 24px); max-width: 350px; height: 218px; margin: 56px 0 0; padding: 19px 23px; display: block; text-align: center; }
  .tp_safety_rate .label { font-size: 16px; line-height: 26px; color: #3e3e3e; }
  .tp_safety_rate .label br { display: none; }
  .tp_safety_rate .num { justify-content: center; margin-top: 0; font-size: 81px; line-height: 88px; }
  .tp_safety_rate .num small { font-size: 32px; line-height: 38px; margin-bottom: 1px; }
  .tp_safety_rate .note { margin-top: 12px; font-size: 15px; line-height: 26px; text-align: left; color: #3e3e3e; }
  .tp_safety_points { width: 100%; max-width: 350px; height: auto; min-height: 396px; margin: 12px 0 0; gap: 12px; }
  .tp_safety_points li, .tp_safety_points li:last-child { min-height: 0; padding: 11px 15px 11px 45px; }
  .tp_safety_points li:nth-child(1) { min-height: 104px; }
  .tp_safety_points li:nth-child(2) { min-height: 142px; }
  .tp_safety_points li:nth-child(3) { min-height: 126px; }
  .tp_safety_points li::before { top: 16px; left: 16px; font-size: 18px; }
  .tp_safety_points h3 { font-size: 16px; line-height: 24px; }
  .tp_safety_points p { margin-top: 4px; font-size: 14px; line-height: 22px; color: #3e3e3e; }
  .tp_safety_docs { width: 100%; max-width: 350px; min-height: 174px; height: auto; margin-top: 32px; }
  .tp_safety_docs h3 { gap: 20px; font-size: 16px; line-height: 26px; }
  .tp_safety_docs ul { display: block; margin-top: 8px; }
  .tp_safety_docs li { width: auto; min-height: 28px; height: auto; padding: 0; border-radius: 0; background: none; font-size: 15px; font-weight: 500; line-height: 28px; }
  .tp_safety_docs li::before { content: "・"; }
  .tp_safety_docs li small { margin-left: .5em; font-size: inherit; font-weight: inherit; line-height: inherit; }
  .tp_safety_card .tp_closing { text-align: center; width: 100%; max-width: 350px; margin-top: 32px; font-size: 16px; line-height: 24px; letter-spacing: .02em; }
  .tp_safety_card .tp_closing br { display: block; }
  .tp_safety_card .tp_btn_wrap { width: 100%; max-width: 350px; margin-top: 32px; }
  .tp_safety_card .tp_btn { width: 100%; max-width: 350px; height: 60px; }

  /* How to start — SP: 386:444 */
  .tp_howto { height: auto; min-height: 1242px; padding: 100px 0; }
  .tp_howto > .tp_inner > .tp_h2 { margin-top: 8px; }
  .tp_howto > .tp_inner > .tp_h2 br { display: block; }
  .tp_howto .tp_lead { width: auto; margin-top: 8px; font-size: 15px; line-height: 26px; }
  .tp_howto .tp_lead br { display: none; }
  .tp_howto .tp_link { margin-top: 8px; font-size: 14px; line-height: 26px; }
  .tp_steps { height: auto; gap: 0; margin-top: 32px; }
  .tp_steps::before { display: none; }
  .tp_steps li { display: grid; flex: none; grid-template-columns: 48px 1fr; grid-template-rows: 48px auto; column-gap: 12px; min-height: 0; padding: 24px 0; border-bottom: 0; box-shadow: inset 0 -1px #e8e7e3; }
  .tp_steps li:first-child { min-height: 0; padding-top: 0; }
  .tp_steps li:last-child { padding-bottom: 0; border-bottom: 0; box-shadow: none; }
  .tp_steps .step { grid-row: 1; width: 48px; height: 48px; font-size: 9px; line-height: 10px; letter-spacing: .9px; }
  .tp_steps .step b { margin: 0; font-size: 16px; line-height: 18px; }
  .tp_steps li:nth-child(n) .step::after { content: none; }
  .tp_steps h3 { margin: 13px 0 0; grid-column: 2; font-size: 15px; line-height: 21px; text-align: left; }
  .tp_steps p { grid-column: 1 / -1; grid-row: 2; margin-top: 12px; font-size: 13px; line-height: 22px; text-align: left; }
  .tp_howto .tp_btn_wrap { margin-top: 32px; }
  .tp_howto .tp_btn { width: min(320px, 100%); height: 52px; }

  /* FAQ — SP: 386:496 */
  .tp_faq { min-height: 482px; height: auto; padding: 56px 0; }
  .tp_faq .tp_inner.narrow { width: auto; max-width: none; }
  .tp_faq .tp_h2 { margin-top: 8px; }
  .tp_faq_list { position: relative; margin-top: 32px; border-top: 0; }
  .tp_faq_list::before { content: ''; position: absolute; top: 0; right: 0; left: 0; height: 1px; background: #e8e7e3; }
  .tp_faq_list dt { box-sizing: border-box; height: auto; min-height: 0; padding: 16px 30px 15px 24px; font-size: 14px; line-height: 20px; font-weight: 400; letter-spacing: .02em; }
  .tp_faq_list dt::before { top: 16px; font-size: 15px; line-height: 20px; }
  .tp_faq_list dt::after { right: 0; font-size: 18px; line-height: 18px; }
  .tp_faq .tp_btn_wrap { margin-top: 32px; }
  .tp_faq .tp_btn { width: min(320px, 100%); height: 52px; }
}


/* TOP: Success stories / Media / Final CTA — Figma nodes PC 343:559, 505:3218, 335:11631 / SP 386:266, 614:564, 392:999 */
.tp_stories { padding: 80px 0; }
.tp_stories .tp_label { padding-bottom: 10px; font-size: 12px; font-weight: 500; line-height: 14px; letter-spacing: 1.92px; }
.tp_stories .tp_h2 { margin-top: 0; font-size: 30px; font-weight: 700; line-height: 44px; letter-spacing: .6px; }
.tp_stories .tp_lead { margin-top: 16px; font-size: 15px; line-height: 26px; letter-spacing: .3px; }
.tp_stories_list { margin-top: 40px; gap: 40px; }
.tp_story { border-radius: 24px; box-shadow: 0 2px 8px rgb(0 0 0 / 4%); }
.tp_story figure { height: 288px; }
.tp_story figcaption { left: 16px; bottom: 16px; padding: 6px 16px; font-size: 13px; line-height: 20px; }
.tp_story .body { min-height: 280px; padding: 40px; }
.tp_story .person { font-size: 13px; line-height: 20px; }
.tp_story .quote { margin-top: 12px; font-size: 18px; line-height: 32px; letter-spacing: .36px; }
.tp_story .more { margin-top: 24px; font-size: 12px; line-height: 16px; letter-spacing: .525px; }
.tp_stories .tp_btn_wrap { margin-top: 40px; }

.tp_media { padding: 120px 0; }
.tp_media .tp_label { padding-bottom: 10px; font-size: 12px; font-weight: 500; line-height: 14px; letter-spacing: 1.92px; }
.tp_media .tp_h2 { margin-top: 0; font-size: 30px; font-weight: 700; line-height: 44px; letter-spacing: .6px; }
.tp_media .tp_lead { margin-top: 16px; font-size: 15px; line-height: 26px; letter-spacing: .3px; }
.tp_media .pickup, .tp_media .recommend { border-top: 0; }
.tp_media .pickup { margin-top: 40px; }
.tp_media .recommend { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 0; column-gap: 0; }
.tp_media .recommend li:nth-child(n + 3) { display: none; }
.tp_media .recommend.open { display: grid; }
.tp_media .recommend.open li:nth-child(n + 3) { display: block; }
.tp_media li a { gap: 10px; color: var(--c-text); }
.tp_media figure { border-radius: 0; overflow: visible; }
.tp_media figure span { border: 1px solid var(--c-logo); border-radius: 999px; background: #fff; color: var(--c-logo); white-space: nowrap; }
.tp_media .recommend figure span { border-color: var(--c-main); background: #fff; color: var(--c-main); }
.tp_media .pickup li a { height: 145px; padding: 16px 40px 16px 0; }
.tp_media .pickup figure { width: 200px; height: 113px; }
.tp_media .pickup figure span { left: calc(100% + 10px); top: 11px; padding: 6px 10px; font-size: 10px; line-height: 12px; }
.tp_media .pickup h3 { font-size: 15px; font-weight: 400; line-height: 26px; }
.tp_media .pickup h3 span { display: block; margin: 0 0 8px 74px; padding: 0; border: 0; background: transparent; font-size: 13px; font-weight: 400; line-height: 18px; }
.tp_media .recommend li a { height: 119px; padding: 14px 20px 14px 0; }
.tp_media .recommend li:nth-child(2) a { padding-left: 20px; }
.tp_media .recommend figure { width: 160px; height: 90px; }
.tp_media .recommend figure span { left: calc(100% + 10px); top: 6px; padding: 6px 10px; font-size: 10px; line-height: 12px; }
.tp_media .recommend h3 { font-size: 14px; font-weight: 400; line-height: 24px; }
.tp_media .recommend h3 span { display: block; margin: 0 0 8px 74px; padding: 0; border: 0; background: transparent; font-size: 12px; font-weight: 400; line-height: 18px; }
.tp_media .recommend li:nth-child(2) h3 span { margin-left: 0; }
.tp_media_more { margin-top: 40px; }
.tp_media_more a { font-size: 14px; line-height: 26px; }

.tp_cta { padding: 120px 0; }
.tp_cta_card { gap: 40px; padding: 47px; border-radius: 32px; box-shadow: 0 2px 10px rgb(0 0 0 / 6%); }
.tp_cta_card figure { width: 462px; height: 350px; }
.tp_cta_card figure img { width: 100%; height: 100%; object-fit: cover; }
.tp_cta_card .copy { width: 462px; flex: 0 0 462px; }
.tp_cta_card .tp_label { padding-bottom: 10px; font-size: 12px; font-weight: 500; line-height: 14px; letter-spacing: 1.92px; }
.tp_cta_card .tp_h2 { margin-top: 0; font-size: 27px; line-height: 44px; letter-spacing: 0; }
.tp_cta_card .tp_text { font-size: 15px; line-height: 26px; letter-spacing: .3px; }
.tp_cta_card .tp_h2 + .tp_text, .tp_cta_card .tp_text + .tp_text { margin-top: 16px; }
.tp_cta_card .tp_text + .tp_btn_wrap { margin-top: 24px; }
.tp_cta_card .tp_btn_wrap + .tp_btn_wrap { margin-top: 16px; }

@media only screen and (min-width: 600px) and (max-width: 1199px) {
	.tp_cta { padding: 80px 0; }
	.tp_cta_card { flex-direction: column; align-items: center; gap: 32px; padding: 40px; }
	.tp_cta_card figure, .tp_cta_card .copy { width: min(462px, 100%); flex: 0 1 auto; }
}

@media only screen and (max-width: 599px) {
	.tp_stories { padding: 100px 20px; }
	.tp_stories .tp_inner { padding: 0; }
	.tp_stories .tp_inner.center { text-align: left; }
	.tp_stories .tp_label { padding-bottom: 4px; }
	.tp_stories .tp_h2 { margin-top: 8px; font-size: 22px; line-height: 32px; letter-spacing: 0; }
	.tp_stories .tp_h2 br, .tp_stories .tp_lead br { display: block; }
	.tp_stories .tp_lead { margin-top: 8px; }
	.tp_stories_list { margin-top: 32px; gap: 24px; }
	.tp_story { border-radius: 20px; }
	.tp_story figure { height: 200px; }
	.tp_story figcaption { font-size: 12px; line-height: 14px; }
	.tp_story .body { min-height: 232px; padding: 20px; }
	.tp_story .person { font-size: 13px; line-height: 16px; }
	.tp_story .quote { font-size: 16px; line-height: 26px; letter-spacing: .32px; }
	.tp_story .more { margin-top: 20px; font-size: 12px; line-height: 14px; letter-spacing: 0; }
	.tp_stories .tp_btn_wrap { margin-top: 32px; text-align: center; }
	.tp_stories .tp_btn { width: min(320px, 100%); min-width: 0; height: 52px; padding: 16px 24px; }
	.tp_stories .tp_btn i.fa-chevron-right { width: 4px; height: 7px; }

	.tp_media { padding: 100px 20px; }
	.tp_media .tp_inner { padding: 0; }
	.tp_media .tp_label { padding-bottom: 4px; }
	.tp_media .tp_h2 { margin-top: 8px; font-size: 22px; line-height: 32px; letter-spacing: 0; }
	.tp_media .tp_lead { margin-top: 8px; }
	.tp_media .pickup { margin-top: 32px; }
	.tp_media .pickup li a { flex-direction: column; align-items: stretch; height: 246px; padding: 16px 0; }
	.tp_media .pickup li:nth-child(2) a { height: 258px; }
	.tp_media .pickup figure { width: min(350px, 100%); height: 112px; }
	.tp_media .pickup figure span { left: 0; top: calc(100% + 8px); }
	.tp_media .pickup h3 { width: 100%; padding-top: 8px; }
	.tp_media .pickup h3 span { margin-bottom: 4px; }
	.tp_media .recommend, .tp_media .recommend.open { display: block; }
	.tp_media .recommend li a { height: auto; padding: 16px 0; }
	.tp_media .recommend li:first-child a { height: 149px; }
	.tp_media .recommend li:nth-child(2) a { height: 127px; padding-left: 0; }
	.tp_media .recommend figure { width: 100px; height: 56px; }
	.tp_media .recommend figure span { top: 0; }
	.tp_media .recommend h3 span { margin: 28px 0 4px; }
	.tp_media .recommend li:nth-child(2) h3 span { margin-top: 0; }
	.tp_media_more { margin-top: 32px; }

	.tp_cta { padding: 100px 20px; }
	.tp_cta .tp_inner { padding: 0; }
	.tp_cta_card { gap: 40px; padding: 23px; border-radius: 20px; }
	.tp_cta_card figure { width: min(302px, 100%); height: 228.79px; }
	.tp_cta_card .copy { width: min(302px, 100%); flex-basis: auto; }
	.tp_cta_card .tp_label { padding-bottom: 10px; }
	.tp_cta_card .tp_h2 { margin-top: 0; font-size: 21px; line-height: 32px; letter-spacing: .42px; }
	.tp_cta_card .tp_btn { width: min(302px, 100%); min-width: 0; height: 60px; padding: 20px 24px; }
}

/* Final visual audit: logos include their own image whitespace; labels align with source names. */
.tp_media .pickup { box-shadow: 0 -1px 0 var(--c-line); }
.tp_media figure { position: static; }
.tp_media figure img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; }
.tp_media figure span { width: 64px; height: 24px; box-sizing: border-box; padding: 5px 9px; text-align: center; font-size: 10px; font-weight: 500; line-height: 12px; letter-spacing: .8px; }
.tp_media .pickup figure span { left: 210px; top: 43px; padding: 5px 9px; }
.tp_media .pickup h3 { flex: 1; letter-spacing: .3px; }
.tp_media .pickup h3 span { display: flex; align-items: center; min-height: 24px; letter-spacing: 0; }
.tp_media .recommend li a { padding-right: 20px; }
.tp_media .recommend li:nth-child(2) a { padding-right: 0; }
.tp_media .recommend h3 { flex: 1; padding-right: 24px; letter-spacing: .28px; }
.tp_media .recommend h3 span { margin-left: 0; letter-spacing: 0; }
.tp_media .recommend a:has(figure span) h3 span { margin-left: 74px; }
.tp_media .recommend figure span { left: 170px; top: 19px; padding: 5px 9px; }
.tp_media .recommend li:nth-child(2) figure span { left: 190px; }
.tp_media li a:after { right: 0; width: 6px; height: 10px; content: ''; background: var(--c-main); -webkit-mask: url(/asset/images/top/arrow-chevron.svg) center / contain no-repeat; mask: url(/asset/images/top/arrow-chevron.svg) center / contain no-repeat; }
.tp_media .recommend li:first-child a:after { right: 20px; }
.tp_cta_card .tp_btn { width: 350px; min-width: 0; box-shadow: 0 2px 6px rgb(0 0 0 / 4%); }
.tp_cta_card .tp_btn.outline { height: 62px; }
.tp_cta_card .tp_h2 br.cta_sp_break { display: none; }
@media only screen and (max-width: 599px) {
 .tp_media .pickup li a { gap: 6px; }
 .tp_media .pickup figure img { width: auto; max-width: 100%; height: 110px; }
 .tp_media .pickup figure span { left: 0; top: 142px; }
 .tp_media .pickup li:nth-child(2) figure span { top: 148px; }
 .tp_media .pickup h3 { flex: none; padding: 8px 0; }
 .tp_media .recommend li a { padding-right: 0; }
 .tp_media .recommend h3 { padding-right: 0; }
 .tp_media .recommend h3 span { margin: 0 0 4px; }
 .tp_media .recommend a:has(figure span) h3 span { margin: 28px 0 4px; }
 .tp_media .recommend figure span, .tp_media .recommend li:nth-child(2) figure span { left: 110px; top: 16px; }
 .tp_media li a:after { display: none; }
 .tp_cta { position: relative; isolation: isolate; background: #fff; }
 .tp_cta:before { position: absolute; z-index: -1; content: ''; inset: auto 0 0; height: 32.335%; background: url(/asset/images/top/cta-background-sp-figma.jpg) center / 100% 100% no-repeat; transform: rotate(180deg); opacity: .2; }
 .tp_cta_card .tp_h2 br, .tp_cta_card .tp_h2 br.cta_sp_break { display: block; }
 .tp_cta_card .tp_btn { width: min(302px, 100%); }
 .tp_cta_card .tp_btn.outline { height: 60px; }
 .tp_cta_card .tp_btn i.fa-chevron-right { width: 4px; height: 7px; right: 16px; }
}

.tp_stories .tp_btn { box-shadow: 0 2px 6px rgb(0 0 0 / 4%); }

/* Price: Figma 297:8709 / 386:379 */

.tp_price { padding: 120px 0 0; }
.tp_price > .tp_inner > .tp_h2 { margin-top: 10px; }
.tp_price > .tp_inner > .tp_lead { width: 916px; margin-top: 16px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
.tp_price_card { box-sizing: border-box; width: 860px; max-width: none; min-height: 864px; margin: 56px auto 0; padding: 48px; border-radius: 24px; box-shadow: 0 2px 10px rgb(0 0 0 / 6%); }
.tp_price_badge { top: -17px; padding: 8px 32px; font-size: 14px; line-height: 17px; letter-spacing: .04em; box-shadow: 0 1px 2px rgb(0 0 0 / 5%); }
.tp_price_main { height: 112px; padding: 0 24px 20px; border-bottom: 1px solid #e8e7e3; }
.tp_price_main .label, .tp_price_sub .label { font-size: 16px; line-height: 26px; letter-spacing: .02em; }
.tp_price_main .num { margin-top: 8px; font-size: 60px; line-height: 57px; letter-spacing: .02em; }
.tp_price_main .num small { margin-left: 0; font-size: 30px; line-height: 33px; }
.tp_price_sub { height: 131px; margin: 0; padding: 20px 0; }
.tp_price_sub > div { padding: 0 24px; }
.tp_price_sub .num { margin-top: 8px; font-size: 46px; line-height: 45px; letter-spacing: .02em; }
.tp_price_sub > div:nth-child(2) .num { font-size: 60px; line-height: 57px; }
.tp_price_sub .num small { margin-left: 0; font-size: 24px; line-height: 29px; }
.tp_price_sub > div:nth-child(2) .num small { font-size: 30px; line-height: 33px; }
.tp_price_half { height: 114px; gap: 24px; margin-top: 24px; padding: 20px 24px; }
.tp_price_half .label { font-size: 16px; line-height: 26px; letter-spacing: .02em; }
.tp_price_half .num { font-size: 60px; line-height: 74px; }
.tp_price_half .num small { font-size: 24px; }
.tp_price_discount { height: 216px; margin-top: 24px; padding: 20px 24px; border-radius: 12px; box-shadow: none; }
.tp_price_discount h3 { font-size: 18px; line-height: 30px; letter-spacing: .02em; }
.tp_price_discount p { margin-top: 8px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
.tp_price_discount b { display: inline-flex; align-items: baseline; gap: 2px; vertical-align: baseline; }
.tp_price_discount_month, .tp_price_discount_yen { font-size: 20px; line-height: 32px; }
.tp_price_discount_num { font-family: Oswald, sans-serif; font-size: 36px; line-height: 38px; }
.tp_price_discount .tp_tags { margin-top: 12px; }
.tp_price_card .tp_btn_wrap { margin-top: 20px; }
.tp_price_more { margin-top: 16px; }
.tp_price_more a { font-size: 14px; line-height: 26px; letter-spacing: .02em; }
.tp_price_mybest { width: 1060px; height: 166px; margin: 64px auto 0; }
.tp_price_mybest a, .tp_price_mybest picture, .tp_price_mybest img { display: block; width: 100%; height: 100%; }
.tp_price .tp_closing { margin-top: 40px; font-size: 20px; line-height: 30px; letter-spacing: .04em; color: #2bb4a2; }
.tp_price_sp_more { display: none; }

.tp_price .tp_tags li a { padding: 6px 16px; border-radius: 20px; background: #faf9f4; font-size: 14px; line-height: 26px; letter-spacing: .02em; }

@media (max-width: 599px) {

  .tp_price { padding: 100px 0 0; }
  .tp_price > .tp_inner > .tp_h2 { margin-top: 8px; }
  .tp_price > .tp_inner > .tp_h2 br { display: block; }
  .tp_price > .tp_inner > .tp_lead { width: auto; margin-top: 8px; font-size: 15px; line-height: 26px; letter-spacing: .02em; }
  .tp_price > .tp_inner > .tp_lead br { display: none; }
  .tp_price_card { width: 100%; max-width: 350px; min-height: 881px; margin-top: 48px; padding: 40px 16px 24px; border-radius: 24px; }
  .tp_price_badge { top: -17px; }
  .tp_price_card, .tp_price_half { border-width: 2px; }
  .tp_price_sub { border-top: 0; }
  .tp_price_sub .num.red small { color: #3e3e3e; }
  .tp_price_main { height: 97px; padding: 0 24px 20px; }
  .tp_price_main .num { font-size: 50px; line-height: 42px; }
  .tp_price_main .num small { font-size: 22px; line-height: 23px; }
  .tp_price_sub { height: 113px; margin-top: 8px; padding: 18px 0; }
  .tp_price_sub > div { padding: 0 24px; }
  .tp_price_sub .num { font-size: 34px; line-height: 34px; }
  .tp_price_sub > div:nth-child(2) .num { font-size: 50px; line-height: 42px; }
  .tp_price_sub .num small { font-size: 18px; line-height: 26px; }
  .tp_price_sub > div:nth-child(2) .num small { font-size: 22px; line-height: 18px; }
  .tp_price_half { height: 150px; flex-direction: column; gap: 0; margin-top: 24px; padding: 16px; }
  .tp_price_half .label { font-size: 14px; line-height: 22px; text-align: center; }
  .tp_price_half .num { font-size: 50px; line-height: 74px; }
  .tp_price_half .num small { font-size: 24px; }
  .tp_price_discount { height: 279px; margin-top: 24px; padding: 16px; }
  .tp_price_discount h3 { font-size: 16px; line-height: 19px; }
  .tp_price_discount p { margin-top: 4px; font-size: 15px; line-height: 26px; }
  .tp_price_discount p br { display: block; }
  .tp_price_discount b { display: flex; justify-content: center; }
  .tp_price_discount_month, .tp_price_discount_yen { font-size: 20px; line-height: 32px; }
  .tp_price_discount_num { font-size: 32px; line-height: 38px; }
  .tp_price_discount .tp_tags { justify-content: flex-start; gap: 8px; margin-top: 12px; }
  .tp_price_card .tp_btn_wrap { margin-top: 24px; }
  .tp_price_card .tp_btn { width: 100%; height: 52px; }
  .tp_price_more { margin-top: 16px; }
  .tp_price_mybest { width: 100%; max-width: 350px; height: auto; aspect-ratio: 350 / 222; margin-top: 56px; }
  .tp_price_mybest a, .tp_price_mybest picture, .tp_price_mybest img { display: block; width: 100%; height: 100%; }
  .tp_price .tp_closing { margin-top: 32px; font-size: 16px; line-height: 24px; letter-spacing: .02em; }
  .tp_price .tp_closing br.sp_only { display: block; }
  .tp_price_sp_more { display: block; margin-top: 32px; text-align: center; }
  .tp_price_sp_more .tp_btn { width: min(320px, 100%); height: 52px; }


}
/* Price: 492:209 / 614:447. Border widths are included in the card dimensions. */
.tp_price_card { width: 860px; max-width: 100%; min-height: 0; padding: 48px; border: 2px solid var(--c-main); background: linear-gradient(180deg, #f9fcfa, #f3f9f7); }
.tp_price_main { height: 112px; padding: 0 24px 20px; border-bottom: 1px solid var(--c-line); }
.tp_price_main .num, .tp_price_sub .num { display: flex; justify-content: center; align-items: flex-end; font-weight: 700; }
.tp_price_main .num small, .tp_price_sub .num small { margin-left: 0; color: var(--c-text); letter-spacing: .02em; }
.tp_price_sub { height: 132px; margin: 0; padding: 0; border-top: 0; border-bottom: 1px solid var(--c-line); }
.tp_price_sub > div { padding: 20px 24px; border-left: 0; }
.tp_price_sub > div:first-child { border-right: 1px solid var(--c-line); }
.tp_price_half { height: 114px; padding: 18px 22px; border: 2px solid var(--c-main); }
.tp_price_half .label { text-align: center; }
.tp_price_half .num { display: flex; gap: 4px; align-items: center; font-weight: 500; }
.tp_price_half .num small { align-self: flex-end; margin: 0 0 5px; line-height: 29px; }
.tp_price_discount { height: auto; padding: 20px 24px; }
.tp_price_discount .tp_price_discount_copy { margin-top: 16px; }
.tp_price_discount p { margin: 0; }
.tp_price_discount_row { display: flex; align-items: center; justify-content: center; gap: 4px; }
.tp_price_discount b { display: inline-flex; align-items: flex-end; height: 50px; padding-bottom: 8px; gap: 2px; }
.tp_price_discount_num { font-size: 36px; line-height: 42px; }
.tp_price_discount_note { text-align: center; }
.tp_price_discount .tp_tags { margin-top: 16px; }
.tp_price_card .tp_btn_wrap { margin-top: 40px; }
.tp_price .tp_btn i { width: 6px; height: 10px; right: 16px; }
.tp_price_card .tp_btn { box-shadow: 0 2px 6px rgb(0 0 0 / 4%); }
.tp_price_mybest { width: 100%; max-width: none; }
.tp_price_mybest a, .tp_price_mybest picture, .tp_price_mybest img { display: block; width: 100%; height: auto; }
@media (max-width: 599px) {
 .tp_price_card { width: 350px; padding: 40px 16px 24px; }
 .tp_price_main { height: 97px; }
 .tp_price_sub { height: 113px; margin-top: 8px; gap: 8px; }
 .tp_price_sub > div { flex: 1 1 0; padding: 18px 24px; }
 .tp_price_sub > div:first-child { height: 104px; }
 .tp_price_half { height: 150px; padding: 14px; gap: 0; }
 .tp_price_half .num small { margin-bottom: 9px; }
 .tp_price_discount { padding: 16px; }
 .tp_price_discount .tp_price_discount_copy { margin-top: 4px; }
 .tp_price_discount_row { flex-direction: column; gap: 0; }
 .tp_price_discount b { display: flex; }
 .tp_price_discount_num { font-size: 32px; line-height: 42px; }
 .tp_price_discount .tp_tags { margin-top: 12px; }
 .tp_price_card .tp_btn_wrap { margin-top: 24px; }
 .tp_price .tp_btn i { width: 4px; height: 7px; }
 .tp_price_mybest { width: 100%; height: auto; }
 .tp_price .tp_closing { text-align: center; }
}

/* Solution: source flow dimensions, stroke without changing content width. */
.tp_solution { background: linear-gradient(#fff 0 120px, #faf9f4 120px); }
.tp_solution .tp_solution_list { display: flex; flex-direction: column; gap: 40px; }
.tp_solution .tp_solution_list li { position: relative; padding: 0; border: 0; }
.tp_solution .tp_solution_list li + li:before { content: ''; position: absolute; left: 0; right: 0; top: -20px; height: 1px; background: var(--c-line); }
.tp_solution .tp_solution_list .num { flex: none; font-weight: 700; }
.tp_solution .tp_solution_list li > div { min-width: 0; }
@media (max-width: 599px) {
 .tp_solution { background: linear-gradient(#fff 0 100px, #faf9f4 100px); }
 .tp_solution .tp_solution_card { padding: 23px; }
 .tp_solution .tp_solution_list { gap: 32px; }
 .tp_solution .tp_solution_list li { padding: 0; }
 .tp_solution .tp_solution_list li + li:before { top: -16px; }
 .tp_solution .tp_solution_list p br { display: initial; }
 .tp_solution .tp_solution_list li:nth-child(2) p br { display: none; }
}

/* Exact small symbols and source line placement. */
.tp_safety_points li::before { content: ''; width: 22px; height: 22px; background: url(/asset/images/top/check-safety.svg) center / contain no-repeat; }
.tp_faq_list dt::after { content: '＋'; }
.tp_faq_list dt.active::after { content: '−'; }
@media (max-width: 599px) {
 .tp_safety_points li::before { top: 13px; left: 15px; }
 .tp_safety_points li:last-child p br { display: none; }
 .tp_safety_points li:last-child a { display: block; margin-top: 4px; line-height: 26px; }
 .tp_faq_list dt::after { top: 18px; transform: none; }
 .tp_support_h3::after { background: #2bb4a2; }
 .tp_support .tp_btn i.fa-chevron-right, .tp_howto .tp_btn i.fa-chevron-right, .tp_faq .tp_btn i.fa-chevron-right { width: 4px; height: 7px; }
}

@media (max-width: 599px) {
 .tp_hero_title, .tp_stats_title { color: #4a4a4a; }
 .tp_support .tp_tags { gap: 10px; }
}

@media (max-width: 599px) {
 /* Keep the correct PC copy; the SP Figma text omits the letter ん. */
 .tp_concerns .tp_h2 .sp_only { letter-spacing: -.02em; }
}

@media (min-width: 600px) and (max-width: 1199px) {
 .tp_media .recommend li a { height: auto; min-height: 119px; }
}

/* Preserve 1440/390 source geometry while letting text grow at intermediate widths. */
@media only screen and (max-width: 599px) {
 .tp_service .tp_platform.ibj .tp_checklist { height: auto; min-height: 304px; }
 .tp_service .tp_platform.cship .tp_checklist { height: auto; min-height: 350px; }
 .tp_members .tp_members_card { height: auto; min-height: 554px; }
 .tp_matching:before { display: none; }
 .tp_matching .tp_matching_copy { background: linear-gradient(rgb(12 41 37 / 64%), rgb(12 41 37 / 64%)), url(/asset/images/top/matching-photo-sp.webp) center / cover no-repeat; }
}
@media only screen and (max-width: 389px) {
 .tp_members .tp_lead br.sp_only,
 .tp_matching .tp_matching_copy .tp_text + .tp_text br.sp_only { display: none; }
}
@media only screen and (min-width: 600px) and (max-width: 1100px) {
 .tp_service .tp_platform { height: auto; min-height: 688px; }
 .tp_service .tp_platform .tp_checklist { height: auto; min-height: 284px; }
 .tp_matching:before { height: auto; bottom: 0; }
 .tp_matching .tp_matching_card { height: auto; min-height: 590px; }
 .tp_matching .tp_matching_copy { flex-basis: calc((100% - 40px) / 2); width: calc((100% - 40px) / 2); min-width: 0; }
 .tp_matching .tp_matching_reasons { width: calc((100% - 40px) / 2); min-width: 0; }
}
@media only screen and (min-width: 600px) and (max-width: 997px) {
 .tp_foryou .tp_foryou_grid { flex-direction: column; align-items: stretch; }
 .tp_foryou .tp_foryou_copy { width: 100%; }
 .tp_foryou .tp_checklist { flex: none; width: 100%; }
}

/* FAQ answers: keep the Q/A labels aligned on a white background. */
.tp_faq_list dd {
	position: relative;
	padding: 20px 28px 24px 27px;
	background: #fff;
}
.tp_faq_list dd::before {
	content: "A";
	position: absolute;
	top: 20px;
	left: 0;
	color: var(--c-logo);
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 18px;
	font-weight: 900;
	line-height: 26px;
	letter-spacing: .02em;
}
@media (max-width: 599px) {
	.tp_faq_list dd { padding: 16px 30px 20px 24px; }
	.tp_faq_list dd::before { top: 16px; font-size: 15px; line-height: 23.4px; }
}

/* TOP SP: retain the 390px Figma geometry while accommodating wider phones. */
@media only screen and (max-width: 599px) {
  .tp_support_card {
    width: min(100%, 350px);
    margin-inline: auto;
  }

  .tp_safety_copy {
    display: flex;
    flex-direction: column;
  }

  .tp_safety_rate {
    margin-top: auto;
    left: 50%;
    transform: translateX(-50%);
  }

  .tp_safety_points,
  .tp_safety_docs,
  .tp_safety_card .tp_closing,
  .tp_safety_card .tp_btn_wrap {
    margin-inline: auto;
  }
}

/* Keep capped SP images centered as the viewport grows beyond 390px. */
@media only screen and (max-width: 599px) {
  .tp_feature figure,
  .tp_media .pickup figure { margin-inline: auto; }
}

/* TOP tablet layout: 600–1199px; phone-specific geometry ends at 599px. */
@media only screen and (min-width: 600px) and (max-width: 1199px) {
  .tp_inner { width: 100%; max-width: 1124px; padding-inline: 32px; }
  .tp_h2 { font-size: 28px; line-height: 1.55; }
  .tp_lead, .tp_text { font-size: 15px; line-height: 26px; }
}

/* Tablet: hero through matching. */
@media (min-width: 600px) and (max-width: 1199px) {
  .tp_hero { background: linear-gradient(to bottom, var(--c-beige) 700px, #fff 700px); }
  .tp_hero_inner { height: 700px; }
  .tp_hero_copy { width: min(42%, 464px); margin-left: 32px; padding-top: 96px; }
  .tp_hero_title { width: 100%; height: auto; font-size: clamp(3.2rem, 3.7vw, 4.2rem); line-height: 1.45; white-space: normal; }
  .tp_hero_title strong, .tp_hero_title em { font-size: 1.15em; }
  .tp_hero_sub { width: 100%; font-size: clamp(1.7rem, 2vw, 2.3rem); line-height: 1.5; white-space: normal; }
  .tp_hero_badges { width: 100%; height: auto; gap: 12px; }
  .tp_hero_mybest, .tp_hero_mybest img { width: 90px; height: auto; }
  .tp_hero_note { box-sizing: border-box; width: auto; height: auto; min-height: 84px; flex: 1; padding: 12px 16px; white-space: normal; font-size: 1.2rem; line-height: 18px; }
  .tp_hero_cp, .tp_hero .tp_btn { width: min(100%, 360px); }
  .tp_hero_cp { margin-top: 28px; }
  .tp_hero .tp_btn { height: 64px; }
  .tp_hero_img { width: min(58vw, 650px); height: auto; right: -2%; }
  .tp_stats { width: calc(100% - 64px); margin-top: -40px; padding: 28px 32px; }
  .tp_stats_list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; }
  .tp_stats_list li { min-height: 112px; }
  .tp_stats_list li + li:before { left: -16px; }
  .tp_stats_list li:nth-child(3):before { content: none; }
  .tp_stats_list li:nth-child(n + 3):after { content: ''; position: absolute; top: -12px; right: 0; left: 0; border-top: 1px solid var(--c-line); }
  .tp_stats_list .label { font-size: 1.4rem; line-height: 18px; }
  .tp_stats_list .note { font-size: 1.2rem; line-height: 17px; overflow-wrap: anywhere; }
  .tp_hero_caution { width: calc(100% - 64px); }

  .tp_banners { padding: 64px 32px; }
  .tp_banners_cp { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .tp_banners_cp li { width: auto; height: auto; aspect-ratio: 440 / 180; }
  .tp_banners_shindan { margin-top: 24px; }
  .tp_banners_shindan img { width: min(440px, 100%); height: auto; }

  .tp_concerns { min-height: 0; padding: 80px 0; background-size: min(1360px, 140vw) auto; }
  .tp_concerns .tp_bubbles { height: auto; }
  .tp_concerns .tp_closing { margin-top: 40px; }

  .tp_solution { min-height: 0; padding: 80px 0 0; background: linear-gradient(#fff 0 160px, var(--c-beige) 160px); }
  .tp_solution .tp_solution_img { width: calc(100% - 64px); height: 460px; margin: 0; border-radius: 0 24px 24px 0; }
  .tp_solution .tp_solution_card { position: relative; top: auto; right: auto; box-sizing: border-box; width: calc(100% - 64px); height: auto; min-height: 0; margin: -120px 32px 0; padding: 32px; border-radius: 20px; }
  .tp_solution .tp_h2 { font-size: 2.8rem; line-height: 1.45; }
  .tp_solution .tp_solution_list { margin-top: 24px; }
  .tp_solution .tp_solution_list li { padding: 16px 0; }
  .tp_solution .tp_solution_list h3 { font-size: 1.8rem; line-height: 26px; }
  .tp_solution .tp_solution_list p { font-size: 1.5rem; line-height: 26px; }

  .tp_foryou { padding: 80px 0; }
  .tp_foryou .tp_foryou_grid { gap: 32px; }
  .tp_foryou .tp_checklist { min-width: 0; }

  .tp_service { padding: 80px 0 20px; }
  .tp_service .tp_platforms { gap: 24px; }
  .tp_service .tp_platform { height: auto; min-height: 0; padding: 32px; }
  .tp_service .tp_platform .tp_checklist { height: auto; min-height: 284px; }
  .tp_service .tp_platform .more { margin-top: 28px; }

  .tp_members { padding: 80px 0; }
  .tp_members .tp_members_card { box-sizing: border-box; width: 100%; height: auto; min-height: 0; padding: 40px 32px; }
  .tp_members .tp_members_num { box-sizing: border-box; width: min(468px, 100%); height: auto; min-height: 200px; padding: 32px; }
  .tp_members .tp_members_card .tp_btn_wrap { margin-top: 32px; }

  .tp_matching { margin-top: 0; padding: 120px 32px 80px; background: none; }
  .tp_matching:before { inset: 64px 0 auto; height: 620px; background: linear-gradient(rgb(12 41 37 / 24%), rgb(12 41 37 / 24%)), url(/asset/images/top/matching-photo-pc.webp) no-repeat center / cover; }
  .tp_matching .tp_matching_card { box-sizing: border-box; width: 100%; max-width: none; height: auto; min-height: 0; padding: 32px; gap: 32px 24px; }
  .tp_matching .tp_matching_copy, .tp_matching .tp_matching_reasons { flex: 1 1 0; width: auto; min-width: 0; }
  .tp_matching .tp_matching_copy { flex-basis: 46%; }
  .tp_matching .tp_matching_reasons { flex-basis: 46%; margin-top: 0; }
  .tp_matching .tp_matching_card .tp_closing { margin-top: 0; }
}

@media (min-width: 600px) and (max-width: 899px) {
  .tp_hero { background: linear-gradient(to bottom, var(--c-beige) 650px, #fff 650px); }
  .tp_hero_inner { height: 650px; }
  .tp_hero_copy { width: calc(50% - 32px); padding-top: 88px; }
  .tp_hero_img { top: 124px; width: 55vw; right: -5%; }
  .tp_foryou .tp_foryou_grid, .tp_service .tp_platforms { display: block; }
  .tp_foryou .tp_foryou_copy { width: auto; }
  .tp_foryou .tp_checklist { margin-top: 32px; }
  .tp_service .tp_platform + .tp_platform { margin-top: 24px; }
  .tp_matching { padding: 0; }
  .tp_matching:before { inset: 0 auto auto; width: 100%; height: 460px; background-image: url(/asset/images/top/matching-photo-sp.webp); }
  .tp_matching .tp_matching_card { display: block; padding: 0; background: transparent; border-radius: 0; box-shadow: none; backdrop-filter: none; }
  .tp_matching .tp_matching_copy { min-height: 460px; padding: 48px 64px; background: rgb(12 41 37 / 64%); color: #fff; }
  .tp_matching .tp_matching_copy .tp_label, .tp_matching .tp_matching_copy .tp_h2, .tp_matching .tp_matching_copy .tp_text { color: #fff; text-shadow: 0 0 4px rgb(12 41 37 / 60%); }
  .tp_matching .tp_matching_reasons { width: auto; padding: 48px 64px 0; background: #fff; }
  .tp_matching .tp_matching_reasons li { background: #fff7f7; }
  .tp_matching .tp_matching_card .tp_closing { width: auto; margin: 40px 0 0; padding: 0 64px 80px; background: #fff; }
}

@media (min-width: 600px) and (max-width: 999px) {
  .tp_concerns .tp_bubbles li { min-height: 128px; height: auto; padding: 24px 16px; }
  .tp_concerns .tp_bubbles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, 128px); height: auto; gap: 20px; }
  .tp_concerns .tp_bubbles li { width: auto; height: 128px; min-height: 0; padding: 24px; }
  .tp_concerns .tp_bubbles li:nth-child(5) { grid-column: 1 / -1; width: calc(50% - 10px); justify-self: center; }
}

/* Tablet: features, support, price, safety and steps. */
@media only screen and (min-width: 600px) and (max-width: 1199px) {


  .tp_features,
  .tp_support,
  .tp_howto {
    padding-top: 80px;
  }

  .tp_price { padding-top: 80px; }

  .tp_price > .tp_inner > .tp_lead,
  .tp_howto .tp_lead {
    width: auto;
    max-width: 100%;
    font-size: 15px;
    line-height: 26px;
  }

  .tp_price_card {
    width: 100%;
    max-width: 860px;
    min-height: 0;
    padding: 40px;
  }

  .tp_price_discount_row { flex-wrap: wrap; }
  .tp_price_discount_row > span,
  .tp_price_discount_row > b { min-width: 0; }

  .tp_safety {
    height: auto;
    min-height: 0;
    padding: 160px 0 80px;
    background-size: cover;
  }

  .tp_feature { gap: clamp(24px, 4vw, 70px); }
  .tp_feature .copy { width: auto; flex: 1 1 0; min-width: 0; }
  .tp_feature figure { width: min(440px, 42vw); height: auto; aspect-ratio: 11 / 7; }
  .tp_feature figure > img { width: 100%; height: 100%; }

  .tp_safety_card {
    box-sizing: border-box;
    width: calc(100% - 64px);
    max-width: 1060px;
    min-height: 0;
    height: auto;
    padding: 40px;
  }

  .tp_safety_copy,
  .tp_safety_points {
    width: calc((100% - 40px) / 2);
    min-width: 0;
  }

  .tp_safety_rate {
    height: auto;
    min-height: 192px;
  }

  .tp_howto {
    height: auto;
    min-height: 0;
    padding-bottom: 80px;
  }

  .tp_steps { height: auto; }
  .tp_steps li { flex: 1 1 0; min-width: 0; }

  .tp_support_card { width: 100%; height: auto; }
  .tp_support_head { height: auto; }
  .tp_support_head > div { width: auto; flex: 1 1 0; min-width: 0; }
  .tp_support_head figure { width: min(256px, 27%); height: auto; aspect-ratio: 1; }
}

@media only screen and (min-width: 600px) and (max-width: 900px) {
  .tp_features > .tp_inner > .center { height: auto; }
  .tp_features .tp_lead br,
  .tp_price > .tp_inner > .tp_lead br,
  .tp_howto .tp_lead br { display: none; }

  .tp_feature,
  .tp_feature.reverse {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
    min-height: 0;
    margin-top: 48px;
  }

  .tp_feature .copy {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    column-gap: 20px;
    width: auto;
    flex: none;
    padding-top: 0;
  }

  .tp_feature .num { grid-column: 1; grid-row: 1; align-self: center; font-size: 64px; line-height: 64px; }
  .tp_feature h3 { grid-column: 2; grid-row: 1; align-self: center; margin-top: 0; }
  .tp_feature p { grid-column: 1 / -1; margin-top: 20px; }

  .tp_feature figure,
  .tp_feature figure > img {
    width: 100%;
    max-width: 440px;
    height: auto;
    aspect-ratio: 11 / 7;
  }

  .tp_feature figure { margin-inline: auto; }
  .tp_feature figure.logos { width: 100%; height: auto; aspect-ratio: 11 / 7; }

  .tp_support { padding-bottom: 40px; }
  .tp_support_card { width: 100%; height: auto; padding: 32px; }
  .tp_support_head { height: auto; flex-direction: column; gap: 24px; }
  .tp_support_head > div { width: 100%; }
  .tp_support_head figure { width: 200px; height: 200px; margin-inline: auto; }
  .tp_support_list { display: grid; grid-template-columns: 1fr; }
  .tp_support_list li { width: auto; min-height: 0; }
  .tp_support_card > .tp_btn_wrap { margin-top: 32px; }

  .tp_price_card { padding: 32px; }
  .tp_price_half { gap: 16px; padding-inline: 16px; }
  .tp_price_discount { padding-inline: 20px; }

  .tp_safety_card { display: flex; flex-direction: column; gap: 32px; padding: 32px; }
  .tp_safety_copy,
  .tp_safety_points { width: 100%; }
  .tp_safety_copy { min-height: 0; }
  .tp_safety_rate { width: 100%; grid-template-columns: max-content max-content; justify-content: center; }
  .tp_safety_rate .note { text-align: center; }
  .tp_safety_docs { width: 100%; }
  .tp_safety_docs li { width: calc((100% - 20px) / 2); }
  .tp_safety_card .tp_closing,
  .tp_safety_card .tp_btn_wrap { width: 100%; }

  .tp_steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 24px;
  }
  .tp_steps::before { display: none; }
  .tp_steps li { padding: 0; }
  .tp_steps li:last-child { grid-column: 1 / -1; width: calc((100% - 24px) / 2); justify-self: center; }
  .tp_howto .tp_btn_wrap { margin-top: 40px; }

  .tp_service > .tp_inner > .tp_lead,
  .tp_members .tp_lead,
  .tp_features > .tp_inner > .center > .tp_lead,
  .tp_stories > .tp_inner > .tp_lead { text-align: left; }
  .tp_closing { text-wrap: balance; }
}

/* Content-led layouts between the supplied phone and desktop designs. */
@media only screen and (min-width: 600px) and (max-width: 1199px) {
  .tp_stories, .tp_faq, .tp_media, .tp_cta { padding: 80px 0; }
  .tp_stories .tp_h2, .tp_media .tp_h2 { font-size: 28px; line-height: 1.55; }
  .tp_stories_list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .tp_story { display: flex; flex-direction: column; width: auto; min-width: 0; }
  .tp_story figure { height: auto; aspect-ratio: 510 / 288; flex: none; }
  .tp_story .body { display: flex; flex: 1; flex-direction: column; min-height: 0; padding: 24px; }
  .tp_story .quote { margin-bottom: 24px; font-size: 17px; line-height: 28px; }
  .tp_story .more { margin-top: auto; }

  .tp_faq { min-height: 0; }
  .tp_faq .tp_inner.narrow { width: 100%; max-width: 864px; }
  .tp_faq_list dt { height: auto; min-height: 58px; padding-block: 16px; }
  .tp_faq_list dt::after { top: 20px; transform: none; }

  .tp_media .recommend, .tp_media .recommend.open { grid-template-columns: minmax(0, 1fr); }
  .tp_media .pickup li a,
  .tp_media .recommend li a,
  .tp_media .recommend li:nth-child(2) a {
    display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: center;
    gap: 24px; height: auto; min-height: 150px; padding: 24px 28px 24px 0;
  }
  .tp_media .pickup figure, .tp_media .recommend figure { width: 180px; height: 102px; }
  .tp_media .pickup h3, .tp_media .recommend h3 {
    align-self: start; min-width: 0; margin: 0; padding: 0; font-size: 15px; line-height: 26px;
  }
  .tp_media .pickup h3 span, .tp_media .recommend h3 span,
  .tp_media .recommend li:nth-child(2) h3 span {
    display: block; min-height: 24px; margin: 0 0 8px; font-size: 13px; line-height: 24px;
  }
  .tp_media .pickup a:has(figure span) h3 span,
  .tp_media .recommend a:has(figure span) h3 span { margin-left: 80px; }
  .tp_media .pickup figure span, .tp_media .recommend figure span,
  .tp_media .recommend li:nth-child(2) figure span { top: 24px; left: 204px; }
  .tp_media .recommend li:first-child a::after { right: 0; }

  .tp_cta_card { max-width: 850px; margin-inline: auto; padding: 40px; }
  .tp_cta_card figure { height: auto; aspect-ratio: 462 / 350; }
  .tp_cta_card .copy { width: min(500px, 100%); }
  .tp_cta_card .tp_h2 { font-size: 26px; line-height: 40px; }
  .tp_cta_card .tp_btn { max-width: 100%; }
}

/* The TOP content switches independently of the shared mobile navigation. */
@media only screen and (min-width: 600px) and (max-width: 768px) {
  body.top { padding-bottom: 0; }
  body.top .gh_inner { padding-inline: 32px; }
  body.top .gh img.logo { width: 156.5px; height: 40px; }
  body.top footer.gf .gf_inner { padding-inline: 32px; }
  body.top main span.pc_only,
  body.top main br.pc_only { display: initial; }
  body.top main .sp_only { display: none; }
}

/* Keep the complete Figma bubble shapes visible at intermediate widths. */
@media only screen and (min-width: 600px) and (max-width: 999px) {
  .tp_concerns .tp_bubbles li { padding: 24px 12px 32px; background-size: 100% 100%; font-size: 15px; line-height: 24px; }
}

@media only screen and (min-width: 600px) and (max-width: 699px) {
  .tp_hero { background: var(--c-beige); }
  .tp_hero_inner { height: auto; padding-bottom: 80px; }
  .tp_hero_copy { width: min(420px, calc(100% - 64px)); margin-inline: auto; padding-top: 88px; }
  .tp_hero_title { text-align: center; }
  .tp_hero_img { position: relative; top: auto; right: auto; width: 420px; max-width: 100%; margin: 24px auto 0; }
  .tp_stories_list { grid-template-columns: minmax(0, 1fr); }
  .tp_stats_title { text-wrap: balance; }
  .tp_stats_lead { text-align: left; }
}

/* Keep both hero title lines intact in the narrow two-column layout. */
@media only screen and (min-width: 700px) and (max-width: 767px) {
  .tp_hero_title { font-size: clamp(2.8rem, 4.16vw, 3.2rem); }
}

/* Wider phones keep a single column without isolated 350px cards. */
@media only screen and (min-width: 431px) and (max-width: 599px) {
  .tp_support_card, .tp_price_card { width: 100%; max-width: none; min-height: 0; }
  .tp_support_head { min-height: 0; }
  .tp_concerns .tp_bubbles li { background-size: 100% 100%; }
  .tp_members .tp_lead br.sp_only { display: none; }
  .tp_safety_rate, .tp_safety_points, .tp_safety_docs,
  .tp_safety_card .tp_closing, .tp_safety_card .tp_btn_wrap { max-width: none; }
}

/* The 390px Figma SVGs need stretching as soon as the bubble width grows. */
@media only screen and (min-width: 391px) and (max-width: 430px) {
  .tp_concerns .tp_bubbles li { background-size: 100% 100%; }
}
