:root {
	--ink: #1e1c1c;
	--ink-strong: #1e1c1c;
	--red: #cc3a4a;
	--red-dark: #aa2228;
	--red-soft: #f8ecee;
	--pink-bg: #faf6f6;
	--line: #ded5d7;
	--max: 1120px;
	--shadow: 0 14px 36px #49424514;
}
*,
:before,
:after {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
}
body {
	color: var(--ink);
	background: #fff;
	margin: 0;
	font-family:
		Noto Sans JP,
		Yu Gothic,
		Hiragino Kaku Gothic ProN,
		sans-serif;
	font-size: 18px;
	line-height: 1.9;
}
img {
	max-width: 100%;
	height: auto;
	display: block;
}
a {
	color: inherit;
}
a:focus-visible,
summary:focus-visible {
	outline-offset: 5px;
	outline: 3px solid #aa2228;
}
article section {
	margin-bottom: 0;
}
#content {margin-bottom: 0;margin-top: 0;padding: 0;}
.wrap {
	width: min(calc(100% - 40px), var(--max));
	margin-inline: auto;
	padding: 0;
}
.breadcrumb {
	color: #665e60;
	padding: 14px 0;
	font-size: 13px;
}
.breadcrumb a {
	text-decoration: none;
}
.section {
	padding: 88px 0;
}
.section--tint {
	background: var(--pink-bg);
}
.section-head {
	text-align: center;
	max-width: 820px;
	margin: 0 auto 42px;
}
.section-head h2 {
	margin: 0 0 20px;
	font-size: 40px;
	font-weight: 900;
	line-height: 1.5;
}
.section-head:after {
	content: "";
	background: var(--red);
	width: 84px;
	height: 2px;
	margin: 24px auto 0;
	display: block;
}
.section-head p {
	margin: 0;
}
.eyebrow {
	color: var(--red-dark);
	font-size: 16px;
	font-weight: 800;
	margin: 0 0 12px !important;
}
.marker {
	background: linear-gradient(#0000 64%, #f8dfa0 64%);
}
.hero {
	isolation: isolate;
	/*border-top: 3px solid var(--red);*/
	background: #fff;
	position: relative;
	overflow: hidden;
}
.hero__grid {
	width: min(100% - 40px, 1120px);
	min-height: 720px;
	margin: auto;
	padding: 64px 0 70px;
	position: relative;
}
.hero__content {
	z-index: 2;
	position: relative;
}
.hero__copy {
	max-width: 650px;
}
.hero__label {
	background: #fff8f8;
	border: 1px solid #efc3c8;
	margin: 0 0 18px;
	padding: 8px 15px;
	font-size: 14px;
	font-weight: 800;
	display: inline-block;
}
.hero h1 {
	color: var(--red-dark);
	letter-spacing: -0.045em;
	margin: 0;
	font-size: 64px;
	font-weight: 900;
	line-height: 1.3;
}
.hero__lead {
	margin: 32px 0 26px;
	font-size: 32px;
	font-weight: 900;
	line-height: 1.65;
}
.hero__text {
	max-width: 560px;
	margin: 0 0 34px;
	font-size: 17px;
	line-height: 1.9;
}
.hero__actions {
	text-align: center;
	width: 560px;
	max-width: 100%;
}
.btn {
	border: 2px solid var(--red);
	text-align: center;
	border-radius: 999px;
	justify-content: center;
	align-items: center;
	gap: 14px;
	min-height: 62px;
	padding: 12px 32px;
	font-size: 20px;
	font-weight: 900;
	line-height: 1.5;
	text-decoration: none;
	transition:
		background 0.18s,
		color 0.18s;
	display: inline-flex;
}
.btn:after {
	content: "›";
	font-size: 26px;
	line-height: 1;
}
.btn--primary {
	background: var(--red);
	color: #fff;
	box-shadow: 0 4px 0 var(--red-dark);
}
.btn--outline {
	color: var(--red-dark);
	background: #fff;
}
.hero__actions .btn {
	min-width: 330px;
}
.hero__assurance {
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 20px;
	width: 560px;
	max-width: 100%;
	margin: 30px 0 0;
	padding: 0;
	font-size: 16px;
	list-style: none;
	display: flex;
}
.hero__assurance li:before {
	content: "✓";
	color: var(--red);
	margin-right: 6px;
	font-weight: 900;
}
.hero__visual {
	z-index: 0;
	clip-path: polygon(64px 0, 100% 0, 100% 100%, 0 100%, 64px 64%);
	position: absolute;
	inset: 0 0 0 calc(50% - 64px);
	overflow: hidden;
}
.hero__image {
	object-fit: cover;
	object-position: 67% center;
	width: 100%;
	height: 100%;
}
.hero__visual:after {
	content: "";
	background: linear-gradient(
		90deg,
		#ffffffed 0%,
		#ffffff9e 18%,
		#ffffff2e 48%,
		#fff0 78%
	);
	position: absolute;
	inset: 0;
}
.hero__message {
	z-index: 3;
	border-top: 6px solid var(--red-dark);
	width: 360px;
	box-shadow: var(--shadow);
	background: #fffffff7;
	padding: 24px 26px 22px;
	position: absolute;
	bottom: 54px;
	right: -40px;
}
.hero__message strong {
	font-size: 20px;
	font-weight: 900;
	line-height: 1.6;
	display: block;
}
.hero__message span {
	color: var(--red-dark);
	border-top: 1px solid #e6cacc;
	margin-top: 12px;
	padding-top: 12px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.7;
	display: block;
}
.proof {
	margin: 0 auto;
	padding: 32px 0;
}
.proof__grid {
	border-block: 1px solid var(--line);
	grid-template-columns: repeat(3, 1fr);
	display: grid;
}
.proof__item {
	text-align: center;
	padding: 22px 20px;
}
.proof__item + .proof__item {
	border-left: 1px solid var(--line);
}
.proof__num {
	color: var(--red-dark);
	font-size: 34px;
	font-weight: 900;
	line-height: 1.4;
	display: block;
}
.proof__text {
	margin-top: 6px;
	font-size: 16px;
	font-weight: 700;
	display: block;
}
.proof__note {
	color: #665e60;
	text-align: right;
	margin: 14px 0 0;
	font-size: 13px;
}
.concerns,
.support-map,
.strengths {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	display: grid;
}
.concern,
.support {
	border: 1px solid var(--line);
	background: #fff;
	border-radius: 8px;
	padding: 30px;
}
.concern__icon {
	background: var(--red-soft);
	width: 54px;
	height: 54px;
	color: var(--red-dark);
	border-radius: 50%;
	place-items: center;
	margin-bottom: 20px;
	font-size: 26px;
	font-weight: 900;
	display: grid;
}
h3 {
	margin: 0 0 14px;
	font-size: 23px;
	line-height: 1.6;
}
p {
	margin: 0 0 18px;
}
.concern p,
.support p,
.strength p,
.case p {
	margin: 0;
	font-size: 18px;
}
.bridge {
	border-left: 4px solid var(--red);
	text-align: center;
	background: #fff;
	max-width: 880px;
	margin: 36px auto 0;
	padding: 24px 32px;
	font-weight: 700;
}
.support-map {
	counter-reset: support;
}
.support:before {
	counter-increment: support;
	content: "0" counter(support);
	color: var(--red-dark);
	margin-bottom: 18px;
	font-size: 42px;
	font-weight: 900;
	line-height: 1.2;
	display: block;
}
.support ul {
	margin: 20px 0 0;
	padding-left: 1.2em;
}
.support li + li {
	margin-top: 7px;
}
.strength {
	border-top: 4px solid var(--red);
	background: #fff;
	padding: 26px;
}
.strength__label {
	color: var(--red-dark);
	font-size: 15px;
	font-weight: 900;
}
.strength h3 {
	margin-top: 10px;
}
.chooser {
	border: 1px solid var(--line);
	background: #fff;
	border-radius: 8px;
	padding: 40px;
}
.chooser__intro {
	text-align: center;
	margin-bottom: 28px;
	font-weight: 700;
}
.chooser__grid {
	grid-template-columns: 1.2fr 1fr;
	gap: 24px;
	display: grid;
}
.choice {
	border: 1px solid var(--line);
	border-radius: 8px;
	flex-direction: column;
	padding: 30px;
	display: flex;
}
.choice--main {
	border: 2px solid var(--red);
	background: #fff8f8;
}
.choice__tag {
	background: var(--red);
	color: #fff;
	align-self: flex-start;
	margin-bottom: 16px;
	padding: 4px 12px;
	font-size: 16px;
	font-weight: 800;
}
.choice--sub .choice__tag {
	color: var(--red-dark);
	background: var(--red-soft);
}
.choice h3 {
	font-size: 26px;
}
.choice ul {
	margin: 0 0 24px;
	padding-left: 1.2em;
}
.choice .btn {
	margin-top: auto;
}
.choice p {
	font-size: 18px;
}
.choice__note {
	text-align: center;
	color: #665e60;
	margin: 18px 0 0;
	line-height: 1.7;
	font-size: 14px !important;
}
.sample-panel {
	border: 1px solid var(--line);
	border-radius: 8px;
	overflow: hidden;
}
.sample-panel__lead {
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 36px;
	padding: 36px;
	display: grid;
}
.sample-panel__copy h3 {
	font-size: 28px;
}
.sample-checks {
	margin: 24px 0;
	padding: 0;
	list-style: none;
}
.sample-checks li {
	padding-left: 28px;
	position: relative;
}
.sample-checks li:before {
	content: "✓";
	color: var(--red);
	font-weight: 900;
	position: absolute;

	left: 0;
}
.sample-note {
	margin: 18px 0 0;
	font-size: 14px;
}
.sample-visual {
	grid-template-columns: 0.55fr 1.45fr;
	align-items: end;
	gap: 14px;
	display: grid;
}
.sample-figure {
	min-width: 0;
	margin: 0;
}
.sample-figure a {
	border: 1px solid var(--line);
	background: #fff;
	display: block;
	box-shadow: 0 8px 24px #49424514;
}
.sample-figure img {
	width: 100%;
}
.sample-figure figcaption {
	text-align: center;
	margin-top: 12px;
	font-size: 14px;
	line-height: 1.7;
}
.sample-gallery {
	background: var(--pink-bg);
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	padding: 30px 36px;
	display: grid;
}
.sample-gallery img {
	aspect-ratio: 1.55;
	object-fit: contain;
}
.case-list,
.price-grid {
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	display: grid;
}
.case {
	border: 1px solid var(--line);
	border-radius: 8px;
	overflow: hidden;
}
.case__head {
	border-top: 4px solid var(--red);
	background: #f8ecee;
	padding: 26px;
}
.case__head span {
	font-size: 16px;
}
.case__head h3 {
	margin: 10px 0 0;
}
.case__body {
	padding: 28px;
}
.case__row + .case__row {
	border-top: 1px solid var(--line);
	margin-top: 24px;
	padding-top: 24px;
}
.case__key {
	color: var(--red-dark);
	margin-bottom: 10px;
	font-size: 16px;
	font-weight: 900;
	display: block;
}
.price-guide {
	background: var(--red-soft);
	text-align: center;
	margin-bottom: 28px;
	padding: 24px;
	font-weight: 700;
}
.price-group {
	border: 1px solid var(--line);
	background: #fff;
	border-radius: 8px;
	padding: 30px;
}
.price-group__sub {
	color: #665e60;
	font-size: 16px;
}
.price {
	border-top: 1px solid var(--line);
	padding: 22px 0;
}
.price__name,
.price__amount,
.price__desc {
	display: block;
}
.price__name {
	font-weight: 800;
}
.price__amount {
	color: var(--red-dark);
	font-size: 24px;
	font-weight: 900;
}
.price__desc,
.price-note {
	font-size: 16px;
}
.price-note {
	margin-top: 24px;
}
.steps {
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	padding: 0;
	list-style: none;
	display: grid;
}
.step {
	border: 1px solid var(--line);
	background: #fff;
	border-radius: 8px;
	padding: 26px;
}
.step__num {
	color: var(--red-dark);
	font-size: 16px;
	font-weight: 900;
}
.step h3 {
	margin-top: 12px;
}
.step p {
	margin: 0;
	font-size: 18px;
}
.step--optional {
	background: #fff9ed;
}
.faq {
	max-width: 900px;
	margin: auto;
}
details {
	border-bottom: 1px solid var(--line);
}
summary {
	cursor: pointer;
	padding: 26px 54px 26px 46px;
	font-weight: 800;
	list-style: none;
	position: relative;
}
summary::-webkit-details-marker {
	display: none;
}
summary:before {
	content: "Q";
	color: var(--red-dark);
	font-size: 22px;
	position: absolute;
	left: 8px;
}
summary:after {
	content: "+";
	color: var(--red);
	font-size: 24px;
	position: absolute;
	right: 14px;
}
details[open] summary:after {
	content: "−";
}
.answer {
	padding: 0 46px 26px;
	position: relative;
}
.answer:before {
	content: "A";
	color: var(--red-dark);
	font-weight: 900;
	position: absolute;
	left: 8px;
}
.answer p {
	margin: 0;
}
@media (hover: hover) {
	.btn:hover {
		color: var(--red);
		box-shadow: 0 2px 0 var(--red-dark);
		background: #fff;
	}
}
@media (width>=761px) and (width<=1100px) {
	.hero__visual {
		left: calc(55% - 64px);
	}
	.hero__visual:after {
		background: linear-gradient(90deg, #fffffff7, #ffffffad 55%, #fff3);
	}
	.hero__message {
		margin: 32px 0 0 auto;
		position: relative;
		bottom: auto;
		right: auto;
	}
	.hero__grid {
		padding-top: 48px;
		padding-bottom: 44px;
	}
	.concerns,
	.support-map,
	.strengths,
	.sample-panel__lead {
		grid-template-columns: 1fr;
	}
	.chooser__grid {
		grid-template-columns: 1fr 1fr;
	}
	.choice {
		padding: 24px;
	}
	.choice .btn {
		padding-inline: 18px;
		font-size: 18px;
	}
}
@media (width<=760px) {
	.wrap {
		width: calc(100% - 40px);
	}
	.breadcrumb {
		white-space: nowrap;
		text-overflow: ellipsis;
		font-size: 12px;
		overflow: hidden;
	}
	.hero__grid {
		width: calc(100% - 40px);
		min-height: 0;
		padding: 32px 0;
	}
	.hero__copy {
		max-width: 100%;
	}
	.hero__visual {
		clip-path: none;
		height: 450px;
		inset: 0 0 auto;
	}
	.hero__image {
		object-position: 62% center;
	}
	.hero__visual:after {
		background: linear-gradient(#ffffffbf 0%, #ffffffe0 250px, #fff 370px);
	}
	.hero__label {
		margin-bottom: 16px;
		padding: 7px 10px;
		font-size: 12px;
	}
	.hero h1 {
		font-size: clamp(28px, 7.5vw, 46px);
		line-height: 1.3;
	}
	.hero__lead {
		margin: 24px 0;
		font-size: clamp(20px, 5.4vw, 30px);
		line-height: 1.65;
	}
	.hero__text {
		margin-bottom: 28px;
		font-size: 18px;
		line-height: 1.9;
	}
	.hero__actions {
		width: 100%;
	}
	.hero__actions .btn {
		width: 100%;
		min-width: 0;
		padding-inline: 16px;
		font-size: 20px;
	}
	.hero__assurance {
		flex-direction: column;
		align-items: center;
		gap: 8px;
		width: 100%;
		margin-top: 30px;
		font-size: 17px;
	}
	.hero__message {
		border-top-width: 5px;
		width: 100%;
		margin: 28px 0 0 auto;
		padding: 22px;
		position: relative;
		bottom: auto;
		right: auto;
	}
	.hero__message strong {
		font-size: 20px;
	}
	.hero__message span {
		font-size: 16px;
	}
	.proof {
		padding: 24px 0;
	}
	.proof__grid {
		grid-template-columns: 1fr;
	}
	.proof__item {
		padding: 20px 8px;
	}
	.proof__item + .proof__item {
		border-left: 0;
		border-top: 1px solid var(--line);
	}
	.proof__num {
		font-size: 28px;
	}
	.proof__note {
		text-align: left;
		font-size: 14px;
	}
	.section {
		padding: 60px 0;
	}
	.section-head {
		text-align: left;
		margin-bottom: 32px;
	}
	.section-head h2 {
		font-size: 28px;
	}
	.section-head:after {
		margin-left: 0;
	}
	.concerns,
	.support-map,
	.strengths,
	.chooser__grid,
	.case-list,
	.price-grid,
	.sample-panel__lead,
	.sample-gallery,
	.steps {
		grid-template-columns: 1fr;
	}
	.concern,
	.support,
	.strength,
	.case__head,
	.case__body,
	.price-group,
	.step {
		padding: 24px;
	}
	.bridge {
		text-align: left;
		padding: 24px;
	}
	.chooser {
		padding: 24px 16px;
	}
	.chooser__intro {
		text-align: left;
	}
	.choice {
		padding: 24px 18px;
	}
	.choice h3 {
		font-size: 24px;
	}
	.choice .btn {
		padding-inline: 12px;
		font-size: 18px;
	}
	.sample-panel__lead {
		gap: 28px;
		padding: 24px 20px;
	}
	.sample-panel__copy h3 {
		font-size: 24px;
	}
	.sample-visual {
		grid-template-columns: 0.6fr 1.4fr;
		gap: 10px;
	}
	.sample-gallery {
		padding: 24px 20px;
	}
	.sample-figure figcaption {
		font-size: 14px;
	}
	.btn {
		max-width: 100%;
		padding-inline: 22px;
		font-size: 18px;
	}
	.price__amount {
		font-size: 22px;
	}
	.price-note {
		font-size: 16px;
	}
	summary {
		padding: 24px 36px 24px 34px;
	}
	summary:before {
		left: 0;
	}
	.answer {
		padding-left: 34px;
		padding-right: 0;
	}
	.answer:before {
		left: 0;
	}
	.eyebrow {
		font-size: 16px;
	}
}
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	.btn {
		transition: none;
	}
}
.page-body {
	font-family: var(--mikata-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.9;
}
.page-body h2,
.page-body h3,
.page-body h4,
.page-body p,
.page-body figure,
.page-body ul,
.page-body ol {
	margin: 0;
}
.page-body h2 {
	font-weight: 900;
}
.page-body h3 {
	font-weight: 700;
}
.page-body p {
	padding: 0.5em 0;
	font-size: 16px;
	line-height: 1.75;
}
.page-body .faq {
	max-width: none;
	margin: 0;
}
.page-body .marker {
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	background: linear-gradient(#0000 62%, #f1dcdd 62%);
}
.page-body .faq-item summary:before,
.page-body .faq-item summary:after {
	content: none;
}
.page-body {
	--ink: #494245;
	--red: #aa2228;
	--red-soft: var(--red);
}
@supports (color: color-mix(in lab, red, red)) {
	.page-body {
		--red-soft: color-mix(in srgb, var(--red) 5%, white);
	}
}
.page-body {
	--red-line: var(--red);
}
@supports (color: color-mix(in lab, red, red)) {
	.page-body {
		--red-line: color-mix(in srgb, var(--red) 24%, white);
	}
}
.page-body {
	--blush: #faf6f6;
	--line: var(--red-line);
	--badge-line: #e7e7e7;
	--yellow: #f3e49c;
}
.page-body * {
	box-sizing: border-box;
}
.page-body {
	scroll-behavior: smooth;
	color: var(--ink);
	font-family: var(--mikata-font);
	background: #fff;
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
}
.page-body a {
	color: inherit;
	text-decoration: none;
}
.page-body a:hover {
	text-decoration: none;
}
.page-body img {
	max-width: 100%;
	display: block;
}
.page-body section {
	scroll-margin-top: 24px;
	margin-bottom: 0 !important;
}
.page-body .primary-button {
	border: 2px solid var(--red);
	background: var(--red);
	color: #fff;
	text-align: center;
	min-height: 58px;
	box-shadow: 0 4px 0 var(--red);
	border-radius: 999px;
	justify-content: center;
	align-items: center;
	gap: 0.5em;
	padding: 12px 32px;
	font-size: 1.16rem;
	font-weight: 700;
	line-height: 1.3;
	transition:
		background-color 0.18s,
		color 0.18s,
		border-color 0.18s,
		transform 0.12s,
		box-shadow 0.12s;
	display: inline-flex;
}
.page-body :is(.primary-button:hover, .primary-button:focus-visible) {
	color: var(--red);
	background: #fff;
}
.page-body .primary-button:focus-visible {
	outline: 3px solid var(--red);
	outline-offset: 5px;
}
.page-body .primary-button > span {
	font-size: 1.2em;
}
.page-body .eyebrow,
.page-body .kicker {
	border: 1px solid var(--line);
	background: var(--red-soft);
	letter-spacing: 0.04em;
	margin: 0 0 20px;
	padding: 4px 14px;
	font-size: 14px;
	font-weight: 700;
	display: inline-block;
}
.page-body .eyebrow {
	align-self: flex-start;
	width: fit-content;
	max-width: 100%;
}
.page-body h1 {
	color: var(--red);
	letter-spacing: 0.01em;
	margin: 0 0 30px;
	font-size: clamp(44px, 4.3vw, 64px);
	font-weight: 900;
	line-height: 1.16;
}
.page-body h1 span {
	white-space: nowrap;
	display: block;
}
.page-body .tagline {
	color: #1e1c1c;
	letter-spacing: 0;
	margin: 0 0 25px;
	font-size: clamp(24px, 2.7vw, 34px);
	font-weight: 900;
	line-height: 1.55;
}
.page-body mark {
	background: linear-gradient(transparent 62%, var(--yellow) 62%);
	color: inherit;
	padding: 0 0.08em;
}
.page-body .trust-strip {
	border-top: 1px solid var(--badge-line);
	border-bottom: 1px solid var(--badge-line);
	background: #fff;
	box-shadow: 0 8px 24px #4942450f;
}
.page-body .trust-grid {
	grid-template-columns: repeat(4, 1fr);
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 20px;
	display: grid;
}
.page-body .trust-item {
	border-right: 1px solid var(--badge-line);
	text-align: center;
	padding: 26px 16px 24px;
}
.page-body .trust-item:first-child {
	border-left: 1px solid var(--badge-line);
}
.page-body .trust-item strong {
	flex-direction: column;
	align-items: center;
	gap: 4px;
	font-size: 17px;
	display: flex;
}
.page-body .trust-label {
	color: var(--ink);
	font-size: 14px;
	font-weight: 800;
	line-height: 1.4;
}
.page-body .trust-value {
	white-space: nowrap;
	font-size: 18px;
	line-height: 1.45;
	display: block;
}
.page-body .trust-accent {
	color: var(--red);
}
.page-body .trust-item small {
	color: #5f5f5f;
	margin-top: 7px;
	font-size: 14px;
	line-height: 1.6;
	display: block;
}
.page-body .section {
	padding: 64px max(24px, 50vw - 560px);
}
.page-body .blush {
	background: var(--blush);
}
.page-body .section-heading {
	text-align: center;
	max-width: 820px;
	margin: 0 auto 58px;
}
.page-body .section-heading h2,
.page-body .report-section h2,
.page-body .fee-flow h2 {
	color: #262225;
	letter-spacing: -0.03em;
	margin: 0 0 16px;
	font-size: clamp(30px, 3.1vw, 44px);
	line-height: 1.5;
}
.page-body h2 span {
	color: var(--red);
}
.page-body h2 .text-unit {
	color: inherit;
}
.page-body .fee-example-price .fee-example-net .text-unit {
	font-size: inherit;
}

.page-body .section-heading p:last-child {
	margin: 0;
}
.page-body .three-grid {
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
	display: grid;
}
.page-body .worry-card,
.page-body .service-card,
.page-body .expertise-grid article {
	border: 1px solid var(--line);
	background: #fff;
	border-radius: 16px;
	padding: 54px 28px 30px;
	position: relative;
	box-shadow: 0 9px 24px #5c3a400f;
}
.page-body .number {
	background: var(--red);
	color: #fff;
	border-radius: 50%;
	place-items: center;
	width: 46px;
	height: 46px;
	font-size: 13px;
	font-weight: 800;
	display: grid;
	position: absolute;
	top: -20px;
	left: 50%;
	transform: translate(-50%);
	box-shadow: 0 4px 10px #aa222838;
}
.page-body .worry-card h3,
.page-body .service-card h3,
.page-body .expertise-grid h3 {
	text-align: center;
	color: #2b2628;
	margin: 0 0 15px;
	font-size: 21px;
	line-height: 1.5;
}
.page-body .worry-card p,
.page-body .service-card p,
.page-body .expertise-grid p {
	margin: 0;
	font-size: 15px;
}
.page-body .worry-heading {
	margin-bottom: 40px;
}
.page-body .section-heading.worry-heading h2 {
	color: #1f1f1f;
	letter-spacing: 0.01em;
	font-size: clamp(1.8rem, 4vw, 2.7rem);
	font-weight: 900;
	line-height: 1.45;
}
.page-body .worry-heading p {
	color: #444;
	font-size: 1.04rem;
	font-weight: 400;
}
.page-body .worry-heading:after {
	background: var(--red);
	content: "";
	width: 84px;
	height: 2px;
	margin: 24px auto 0;
	display: block;
}
.page-body .worry-grid {
	gap: 22px;
}
.page-body .worry-card {
	border: 2px solid var(--red-line);
	min-height: 0;
	box-shadow: none;
	border-radius: 28px;
	flex-direction: column;
	padding: 34px 24px 0;
	display: flex;
	overflow: hidden;
}
.page-body .worry-no {
	color: var(--red);
	letter-spacing: 0.08em;
	font-size: 13px;
	font-weight: 900;
}
.page-body .worry-card h3 {
	background: linear-gradient(transparent 62%, var(--red) 62%);
	align-self: flex-start;
	margin: 12px 0 22px;
}
@supports (color: color-mix(in lab, red, red)) {
	.page-body .worry-card h3 {
		background: linear-gradient(
			transparent 62%,
			color-mix(in srgb, var(--red) 16%, white) 62%
		);
	}
}
.page-body .worry-card h3 {
	color: #1f1f1f;
	letter-spacing: -0.035em;
	line-break: strict;
	text-align: left;
	text-wrap: balance;
	word-break: auto-phrase;
	font-size: clamp(1rem, 1.48vw, 1.18rem);
	font-weight: 700;
	line-height: 1.5;
}
.page-body .worry-points {
	gap: 17px;
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
}
.page-body .worry-points li {
	color: #444;
	line-break: strict;
	word-break: auto-phrase;
	padding-left: 24px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.7;
	position: relative;
}
@media (width<=760px) {
	.page-body .worry-card h3 {
		font-size: 1.125rem;
	}
}
.page-body .worry-points li:before {
	color: var(--red);
	content: "✓";
	font-size: 18px;
	font-weight: 900;
	position: absolute;
	top: 0;
	left: 0;
}
.page-body .worry-card > img {
	object-fit: contain;
	object-position: center bottom;
	width: calc(100% + 48px);
	max-width: none;
	height: auto;
	margin: 24px -24px 0;
}
.page-body .five-grid {
	grid-template-columns: repeat(5, 1fr);
	gap: 14px;
	display: grid;
}
.page-body .service-panel {
	background: var(--blush);
	border-radius: 24px;
	padding: 48px 24px 36px;
}
.page-body .service-heading {
	max-width: none;
	margin-bottom: 48px;
}
.page-body .service-heading h2 {
	font-size: clamp(26px, 2.5vw, 32px);
	font-weight: 800;
}
.page-body .service-card {
	border-color: #e2dddd;
	border-radius: 14px;
	padding: 36px 16px 28px;
}
.page-body .service-card .number {
	width: 46px;
	height: 46px;
	box-shadow: none;
	border: 3px solid #fff;
	top: -23px;
}
.page-body .service-illustration {
	object-fit: contain;
	width: 148px;
	max-width: 100%;
	height: 148px;
	margin: 0 auto 14px;
}
.page-body .service-card h3 {
	color: #1e1c1c;
	margin: 0 0 22px;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.6;
}

.page-body .service-card h3 span {
	display: block;
}
.page-body .service-card p {
	color: #302b2d;
	line-break: strict;
	font-size: 16px;
	line-height: 1.8;
}
@media (width<=1100px) and (width>=901px) {
	.page-body .service-panel {
		padding-left: 16px;
		padding-right: 16px;
	}
	.page-body .five-grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		gap: 34px 14px;
	}
	.page-body .service-card {
		grid-column: span 2;
		padding-left: 16px;
		padding-right: 16px;
	}
	.page-body .service-card:nth-child(4) {
		grid-column: 2 / span 2;
	}
}
@media (width<=520px) {
	.page-body .service-panel {
		padding: 36px 18px 24px;
	}
	.page-body .service-heading h2 {
		font-size: 26px;
	}
	.page-body .service-card {
		padding: 32px 22px 26px;
	}
}
.page-body .field-section {
	scroll-margin-top: 32px;
}
.page-body .field-checks {
	grid-template-columns: 0.85fr 1.4fr;
	align-items: center;
	gap: 56px;
	display: grid;
}
.page-body .field-label {
	border: 1px solid var(--line);
	background: var(--red-soft);
	color: var(--ink);
	letter-spacing: 0.04em;
	margin: 0 0 20px;
	padding: 4px 14px;
	font-size: 14px;
	font-weight: 700;
	display: inline-block;
}
.page-body .field-intro h3 {
	color: #1e1c1c;
	letter-spacing: -0.025em;
	margin: 0 0 20px;
	font-size: clamp(28px, 2.9vw, 38px);
	font-weight: 800;
	line-height: 1.6;
}
.page-body .field-intro h3 span {
	color: var(--red);
}
.page-body .field-consultation-note {
	background: #fff;
	border-radius: 10px;
	margin-top: 28px;
	padding: 22px 26px;
}
.page-body .field-consultation-note p {
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
}
.page-body .field-consultation-note p:first-child {
	color: var(--red);
	font-weight: 700;
}
.page-body .field-consultation-note p + p {
	margin-top: 8px;
}
.page-body .field-intro > p:last-child {
	max-width: 340px;
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
}
.page-body .photo-row {
	background: #575154;
	border-radius: 20px;
	gap: 18px;
	padding: 24px;
	display: grid;
	box-shadow: 0 16px 36px #312a2d1f;
}
.page-body .photo-row figure {
	border: 1px solid #817a7d;
	border-left: 4px solid var(--red);
	background: #625c5f;
	border-radius: 10px;
	grid-template-columns: 208px minmax(0, 1fr);
	align-items: center;
	gap: 20px;
	margin: 0;
	padding: 12px 16px;
	display: grid;
}
.page-body .photo-row img {
	object-fit: cover;
	border-radius: 8px;
	width: 208px;
	height: 154px;
}
.page-body .photo-row figcaption {
	text-align: left;
	min-width: 0;
}
.page-body .field-category {
	color: var(--red);
}
@supports (color: color-mix(in lab, red, red)) {
	.page-body .field-category {
		color: color-mix(in srgb, var(--red) 15%, white);
	}
}
.page-body .field-category {
	font-size: 14px;
	font-weight: 700;
}
.page-body .photo-row h4 {
	color: #fff;
	border: 1px solid #ffffffa6;
	width: fit-content;
	max-width: 100%;
	margin: 8px 0 12px;
	padding: 8px 4px;
	font-size: 18px;
	font-weight: 900;
	line-height: 1.6;
	display: table;
}
.page-body .photo-row figcaption p {
	color: #fff;
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
}
@media (width<=900px) {
	.page-body .field-checks {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.page-body .field-intro > p:last-child {
		max-width: 560px;
	}
}
@media (width<=1100px) and (width>=901px) {
	.page-body .field-checks {
		gap: 32px;
	}
	.page-body .photo-row {
		padding: 18px;
	}
	.page-body .photo-row figure {
		grid-template-columns: 180px minmax(0, 1fr);
		gap: 16px;
		padding: 12px;
	}
	.page-body .photo-row img {
		width: 180px;
	}
}
@media (width<=600px) {
	.page-body .photo-row {
		border-radius: 16px;
		gap: 16px;
		padding: 16px;
	}
	.page-body .photo-row figure {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 16px;
	}
	.page-body .photo-row img {
		width: 208px;
		max-width: 100%;
		height: 154px;
	}
	.page-body .photo-row h4 {
		font-size: 18px;
	}
}
.page-body .report-section {
	grid-template-columns: 1fr 1.1fr;
	align-items: center;
	gap: 64px;
	display: grid;
}
.page-body .report-display {
	background: #575154;
	border-radius: 20px;
	margin: 0;
	padding: 30px 32px 24px;
	position: relative;
	box-shadow: 0 16px 36px #2d1f2421;
}
.page-body .report-badge {
	z-index: 6;
	text-align: center;
	color: #fff;
	background: var(--red);
	border: 4px solid #fff;
	border-radius: 50%;
	justify-content: center;
	align-items: center;
	width: 140px;
	height: 140px;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.65;
	display: flex;
	position: absolute;
	top: -25px;
	left: -20px;
	transform: rotate(-8deg);
	box-shadow: 0 6px 18px #0002;
}
@media (width<=600px) {
	.page-body .report-badge {
		border-width: 3px;
		width: 120px;
		height: 120px;
		font-size: 14px;
		top: -18px;
		left: -8px;
	}
}
.page-body .report-stack {
	isolation: isolate;
	margin: 0 12px 22px 0;
	position: relative;
}
.page-body .report-stack img {
	z-index: 4;
	background: #fff;
	border: 1px solid #e7e7e7;
	width: 100%;
	height: auto;
	display: block;
	position: relative;
	box-shadow: 0 5px 12px #0002;
}
.page-body .report-back {
	background: #fff;
	border: 1px solid #d8d8d8;
	position: absolute;
	inset: 0;
	box-shadow: 0 3px 6px #0002;
}
.page-body .report-back-one {
	z-index: 3;
	transform: translate(5px, 6px) rotate(1deg);
}
.page-body .report-back-two {
	z-index: 2;
	transform: translate(9px, 12px) rotate(-0.6deg);
}
.page-body .report-back-three {
	z-index: 1;
	transform: translate(13px, 18px) rotate(0.8deg);
}
.page-body .report-display figcaption {
	color: #fff;
	text-align: center;
	font-size: 14px;
	font-weight: 700;
}
@media (width<=600px) {
	.page-body .report-display {
		padding: 22px 24px 20px;
	}
}
.page-body .report-previews {
	grid-template-columns: 1fr 1fr;
	align-items: start;
	gap: 18px;
	min-width: 0;
	display: grid;
}
.page-body .report-previews a {
	min-width: 0;
	color: var(--text);
	text-decoration: none;
	display: block;
}
.page-body .report-previews img {
	border: 1px solid #e7e7e7;
	width: 100%;
	height: auto;
	display: block;
	box-shadow: 0 10px 24px #2d1f241f;
}
.page-body .report-previews span {
	text-align: center;
	margin-top: 14px;
	font-size: 14px;
	font-weight: 700;
	display: block;
}
.page-body .report-previews a:focus-visible {
	outline: 3px solid var(--red);
	outline-offset: 6px;
}
.page-body .report-button {
	max-width: 100%;
	margin-top: 24px;
}
.page-body .report-copy {
	min-width: 0;
	container-type: inline-size;
}
.page-body .report-section .report-copy h2 {
	letter-spacing: -0.03em;
	color: #111;
	margin-bottom: 28px;
	font-size: clamp(22px, 7cqi, 40px);
	font-weight: 900;
	line-height: 1.45;
}
.page-body .report-copy h2 span {
	white-space: nowrap;
}
.page-body .report-copy > p:not(.kicker):not(.report-note) {
	font-size: 18px;
	line-height: 1.9;
}
.page-body .report-copy .callout strong {
	margin-bottom: 14px;
	font-size: 22px;
	line-height: 1.65;
}
.page-body .report-copy .callout span {
	font-size: 17px;
	line-height: 1.9;
}
.page-body .report-section .report-note {
	color: #686165;
	margin-top: 20px;
	font-size: 12px;
	line-height: 1.8;
}
@media (width<=600px) {
	.page-body .report-section .report-copy h2 {
		font-size: clamp(20px, 7cqi, 32px);
	}
	.page-body .report-copy > p:not(.kicker):not(.report-note) {
		font-size: 17px;
	}
	.page-body .report-copy .callout strong {
		font-size: 20px;
	}
	.page-body .report-copy .callout span {
		font-size: 16px;
	}
	.page-body .report-previews {
		gap: 12px;
	}
	.page-body .report-previews span {
		font-size: 14px;
	}
	.page-body .report-button {
		padding-inline: 18px;
		font-size: 16px;
	}
}
.page-body .callout {
	background: var(--blush);
	border: 1px solid var(--line);
	border-radius: 14px;
	margin-top: 30px;
	padding: 24px;
}
.page-body .callout strong,
.page-body .callout span {
	display: block;
}
.page-body .callout strong {
	color: var(--red);
	font-size: 20px;
}
.page-body .callout span {
	font-size: 14px;
}
.page-body .consultation-band {
	background: var(--red);
	padding: 60px 24px;
}
.page-body .consultation-card {
	background: #fff;
	border-radius: 20px;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 40px;
	max-width: 1000px;
	margin: 0 auto;
	padding: 36px;
	display: grid;
	box-shadow: 0 16px 32px #410e1233;
}
.page-body .consultation-label {
	color: #fff;
	background: var(--red);
	margin-bottom: 14px;
	padding: 6px 14px;
	font-size: 13px;
	font-weight: 800;
	display: inline-block;
}
.page-body .consultation-copy h2 {
	color: #1f1f1f;
	margin: 0 0 18px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.8;
}
.page-body .consultation-copy p {
	margin: 0;
	font-size: 16px;
	line-height: 1.8;
}
.page-body .consultation-card .primary-button {
	white-space: nowrap;
	min-height: 66px;
	margin-right: 20px;
	padding: 16px 28px;
	font-size: 18px;
}
@media (width<=900px) {
	.page-body .consultation-card {
		grid-template-columns: 1fr;
		gap: 26px;
	}
	.page-body .consultation-card .primary-button {
		justify-self: center;
		margin-right: 0;
	}
	.page-body .consultation-break {
		display: none;
	}
}
@media (width<=520px) {
	.page-body .consultation-band {
		padding: 40px 20px;
	}
	.page-body .consultation-card {
		padding: 26px 22px;
	}
	.page-body .consultation-card .primary-button {
		white-space: normal;
		width: 100%;
		padding: 16px 12px;
		font-size: 17px;
	}
}
.page-body .expertise .expertise-heading {
	max-width: 100%;
	margin-bottom: 42px;
}
.page-body .expertise .expertise-heading h2 {
	color: #1f1f1f;
	letter-spacing: 0.01em;
	font-size: clamp(1.8rem, 4vw, 2.7rem);
	font-weight: 900;
	line-height: 1.45;
}
.page-body .expertise-heading p {
	margin-top: 24px;
	font-size: 1.04rem;
	line-height: 1.8;
}
.page-body .expertise-intro > span {
	display: block;
}
.page-body .flow-title-break {
	display: none;
}
.page-body .expertise-heading:after {
	content: "";
	background: var(--red);
	width: 84px;
	height: 2px;
	margin: 24px auto 0;
	display: block;
}
.page-body .expertise-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 48px;
	margin-top: 0;
	display: grid;
}
.page-body .expertise-grid article {
	box-shadow: none;
	background: 0 0;
	border: 0;
	border-radius: 0;
	padding: 0 12px 12px;
	position: relative;
}
.page-body .expertise-grid article + article:before {
	content: "";
	background: #c8c3c5;
	width: 1px;
	position: absolute;
	top: 0;
	bottom: 0;
	left: -24px;
	transform: skew(-14deg);
}
.page-body .strength-number {
	color: #1f1f1f;
	margin-bottom: 18px;
	font-size: 40px;
	font-weight: 900;
	line-height: 1.2;
	display: block;
}
.page-body .expertise-grid h3 {
	color: #111;
	text-align: left;
	letter-spacing: -0.035em;
	margin: 0 0 22px;
	font-size: 19px;
	font-weight: 800;
	line-height: 1.7;
}
.page-body .expertise-grid h3 span {
	color: var(--red);
}
.page-body .expertise-grid p {
	margin: 0;
	font-size: 16px;
	line-height: 1.8;
}
@media (width<=900px) {
	.page-body .expertise-grid article {
		padding: 0 0 28px;
	}
	.page-body .expertise-grid article + article:before {
		width: 100%;
		height: 1px;
		top: -20px;
		bottom: auto;
		left: 0;
		transform: none;
	}
}
.page-body .primary-button.light {
	color: var(--red);
	box-shadow: 0 4px 0 var(--red);
	background: #fff;
}
.page-body .awards-section {
	background: #fff;
	padding-top: 64px;
	padding-bottom: 72px;
}
.page-body .awards-section .awards-heading h2 {
	color: #1f1f1f;
	font-size: clamp(1.8rem, 4vw, 2.7rem);
	font-weight: 900;
	line-height: 1.45;
}
.page-body .case-awards {
	background: #fff;
	border: 1px solid #d3cdd0;
	border-radius: 20px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	padding: 30px;
	display: grid;
	box-shadow: 0 7px 20px #4942450f;
}
.page-body .case-award {
	min-width: 0;
}
.page-body .case-award-fig {
	background: #fff;
	border: 2px solid #b08c3a;
	border-radius: 4px;
	margin: 0;
	padding: 10px;
	box-shadow:
		inset 0 0 0 1px #b08c3a61,
		0 6px 18px #2d26281f;
}
.page-body .case-award-fig img {
	aspect-ratio: 1.41;
	object-fit: contain;
	width: 100%;
	height: auto;
}
.page-body .case-award-body {
	padding: 20px 4px 4px;
}
.page-body .case-award-label {
	background: var(--red);
	color: #fff;
	letter-spacing: 0.08em;
	padding: 5px 14px;
	font-size: 12px;
	font-weight: 800;
	display: inline-block;
}
.page-body .case-award h3 {
	color: #1f1f1f;
	margin: 10px 0 0;
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.5;
}
.page-body .case-award-meta {
	color: #1f1f1f;
	margin: 6px 0 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.7;
}
.page-body .case-award-meta a {
	text-decoration: underline;
	-webkit-text-decoration-color: var(--red);
	-webkit-text-decoration-color: var(--red);
	-webkit-text-decoration-color: var(--red);
	text-decoration-color: var(--red);
	text-underline-offset: 4px;
}
.page-body .case-award-text {
	margin: 24px 0 0;
	font-size: 16px;
	line-height: 1.8;
}
@media (width<=760px) {
	.page-body .case-awards {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 20px;
	}
}
.page-body .fee-section {
	padding-top: 72px;
	padding-bottom: 64px;
}
.page-body .fee-section .fee-heading h2,
.page-body .flow-section .flow-heading h2 {
	color: #1f1f1f;
	letter-spacing: 0.01em;
	font-size: clamp(1.8rem, 4vw, 2.7rem);
	font-weight: 900;
	line-height: 1.45;
}
.page-body .fee-heading:after,
.page-body .flow-heading:after {
	content: "";
	background: var(--red);
	width: 84px;
	height: 2px;
	margin: 26px auto 0;
	display: block;
}
.page-body .fee-section .fee-heading {
	margin-bottom: 40px;
}
.page-body .fee-band {
	color: #fff;
	background: #494245;
	grid-template-columns: 0.95fr 1.25fr;
	align-items: center;
	gap: 48px;
	padding: 36px;
	display: grid;
}
.page-body .fee-band h3 {
	color: #fff;
	margin: 0;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.65;
}
.page-body .fee-band p {
	color: #fff;
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
}
.page-body .fee-example {
	border: 2px solid var(--red);
	background: #fff;
	border-radius: 18px;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 24px 32px;
	margin-top: 24px;
	padding: 32px 36px;
	display: grid;
}
.page-body .fee-example-label {
	background: var(--red-soft);
	color: var(--red);
	margin: 0 0 16px;
	padding: 6px 12px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.7;
	display: inline-block;
}
.page-body .fee-example-heading h3 {
	color: #1f1f1f;
	margin: 0;
	font-size: 26px;
	font-weight: 800;
}
.page-body .fee-example-price {
	text-align: right;
}
.page-body .fee-example-price p {
	justify-content: flex-end;
	align-items: baseline;
	gap: 6px;
	margin: 0;
	display: flex;
}
.page-body .fee-example-price strong {
	color: var(--red);
	letter-spacing: -0.03em;
	font-size: clamp(2rem, 4.3vw, 3.4rem);
	font-weight: 500;
	line-height: 1.25;
}
.page-body .fee-example-price span {
	font-size: 16px;
}
.page-body .fee-example-price .fee-example-net {
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.7;
	display: block;
}
.page-body .fee-example-note {
	border-top: 1px solid var(--red-line);
	grid-column: 1/-1;
	margin: 0;
	padding-top: 20px;
	font-size: 16px;
	line-height: 1.9;
}
.page-body .fee-details {
	grid-template-columns: 1.15fr 1fr;
	align-items: stretch;
	gap: 24px;
	margin-top: 28px;
	display: grid;
}
.page-body .fee-conditions {
	gap: 18px;
	display: grid;
}
.page-body .fee-condition {
	border: 1px solid #c8c3c5;
	border-left: 5px solid var(--red);
	background: #fff;
	border-radius: 0 10px 10px 0;
	padding: 26px 28px;
	box-shadow: 0 7px 20px #4942450f;
}
.page-body .fee-condition h3 {
	color: var(--red);
	margin: 0 0 12px;
	font-size: 18px;
	font-weight: 800;
}
.page-body .fee-condition p {
	color: #1f1f1f;
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.8;
}
.page-body .fee-coverage {
	border: 1px solid var(--red-line);
	background: #fff;
	border-radius: 18px;
	padding: 26px 28px;
}
.page-body .fee-coverage h3 {
	color: #1f1f1f;
	margin: 0 0 16px;
	font-size: 21px;
	font-weight: 800;
}
.page-body .coverage-facts {
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	display: grid;
}
.page-body .coverage-facts > div {
	background: var(--blush);
	text-align: center;
	border-radius: 8px;
	padding: 14px 12px;
}
.page-body .coverage-facts span,
.page-body .coverage-facts strong {
	display: block;
}
.page-body .coverage-facts span {
	font-size: 13px;
	font-weight: 700;
}
.page-body .coverage-facts strong {
	margin-top: 4px;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.5;
}
.page-body .coverage-types {
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 18px 0;
	padding: 0;
	list-style: none;
	display: flex;
}
.page-body .coverage-types li {
	border: 1px solid var(--red-line);
	background: var(--blush);
	color: var(--red);
	border-radius: 6px;
	padding: 7px 12px;
	font-size: 14px;
	font-weight: 700;
}
.page-body .fee-coverage p {
	margin: 0;
	font-size: 16px;
	line-height: 1.8;
}
@media (width<=760px) {
	.page-body .fee-details {
		grid-template-columns: 1fr;
	}
	.page-body .fee-condition,
	.page-body .fee-coverage {
		padding: 24px 22px;
	}
	.page-body .fee-example {
		grid-template-columns: 1fr;
		gap: 20px;
		padding: 24px 20px;
	}
	.page-body .fee-example-price {
		text-align: left;
	}
	.page-body .fee-example-price p {
		justify-content: flex-start;
	}
	.page-body .fee-example-price strong {
		font-size: clamp(2rem, 9vw, 3rem);
	}
	.page-body .fee-example-note {
		padding-top: 18px;
	}
}
.page-body .download-band {
	background: var(--red);
	padding: 60px 24px;
}
.page-body .download-card {
	background: #fff;
	border-radius: 20px;
	grid-template-columns: minmax(300px, 0.82fr) 1.18fr;
	align-items: center;
	gap: 38px;
	max-width: 940px;
	margin: 0 auto;
	padding: 34px 36px;
	display: grid;
	box-shadow:
		0 0 0 1px #3c0f1614,
		0 2px 5px #3c0f162e,
		0 10px 20px #3c0f1633,
		0 26px 52px #3c0f164d;
}
.page-body .download-visual {
	border: 1px solid var(--red-line);
	background: var(--blush);
	border-radius: 10px;
	padding: 20px 18px;
	position: relative;
}
.page-body .download-visual img {
	width: 100%;
	height: auto;
}
.page-body .download-sample {
	background: var(--red);
	color: #fff;
	padding: 7px 13px;
	font-size: 12px;
	font-weight: 900;
	position: absolute;
	top: -14px;
	left: 20px;
}
.page-body .download-label {
	background: var(--red);
	color: #fff;
	padding: 7px 14px;
	font-size: 13px;
	font-weight: 900;
	display: inline-block;
}
.page-body .download-content h2 {
	color: #1f1f1f;
	margin: 12px 0 0;
	font-size: 1.28rem;
	font-weight: 800;
	line-height: 1.55;
}
.page-body .download-content p {
	margin: 20px 0 0;
	font-size: 16px;
	line-height: 1.8;
}
.page-body .download-actions {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 28px;
	display: grid;
}
.page-body .download-actions .primary-button {
	gap: 8px;
	min-height: 66px;
	padding: 14px 10px;
	font-size: 17px;
}
.page-body .download-actions .download-outline {
	border: 2px solid var(--red);
	color: var(--red);
	box-shadow: 0 4px 0 var(--red);
	background: #fff;
}
.page-body
	:is(
		.download-actions .download-outline:hover,
		.download-actions .download-outline:focus-visible,
		.primary-button.light:hover,
		.primary-button.light:focus-visible
	) {
	background: var(--red);
	color: #fff;
}
@media (hover: hover) {
	.page-body .primary-button:hover {
		box-shadow: 0 2px 0 var(--red);
		transform: translateY(2px);
	}
	.page-body .download-actions .download-outline:hover {
		box-shadow: 0 2px 0 var(--red);
	}
}
.page-body .primary-button:active,
.page-body .download-actions .download-outline:active {
	box-shadow: 0 0 0 var(--red);
	transform: translateY(4px);
}
@media (prefers-reduced-motion: reduce) {
	.page-body .primary-button {
		transition:
			background-color 0.18s,
			color 0.18s,
			border-color 0.18s;
	}
	.page-body .primary-button:hover,
	.page-body .primary-button:active {
		transform: none;
	}
}
@media (width<=900px) {
	.page-body .download-card {
		grid-template-columns: 1fr;
	}
	.page-body .download-visual {
		width: 100%;
		max-width: 340px;
		margin: 0 auto;
	}
}
@media (width<=520px) {
	.page-body .download-band {
		padding: 40px 20px;
	}
	.page-body .download-card {
		padding: 30px 22px;
	}
	.page-body .download-actions {
		grid-template-columns: 1fr;
	}
}
.page-body .quality-steps {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin: 66px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
}
.page-body .quality-steps li {
	text-align: center;
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 8px;
	flex-direction: column;
	align-items: center;
	padding: 46px 12px 26px;
	display: flex;
	position: relative;
	box-shadow: 0 7px 20px #49424512;
}
.page-body .step-no {
	background: var(--red);
	color: #fff;
	border: 2px solid #fff;
	border-radius: 50%;
	place-items: center;
	width: 42px;
	height: 42px;
	font-size: 14px;
	font-weight: 800;
	display: grid;
	position: absolute;
	top: -21px;
}
.page-body .quality-steps svg {
	fill: none;
	width: 58px;
	height: 58px;
	stroke: var(--red);
	stroke-width: 1.5px;
	stroke-linecap: round;
	stroke-linejoin: round;
	margin: 0 0 20px;
}
.page-body .quality-steps h3 {
	color: #111;
	justify-content: center;
	align-items: center;
	min-height: 52px;
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.5;
	display: flex;
}
.page-body .quality-steps p {
	margin: 0;
	font-size: 16px;
	line-height: 1.7;
}
.page-body .quality-timing {
	background: var(--blush);
	border-radius: 8px;
	margin: 36px 0 0;
	padding: 22px;
	font-size: 16px;
	line-height: 1.8;
}
@media (width<=900px) {
	.page-body .quality-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 34px 16px;
	}
	.page-body .quality-steps li:last-child {
		grid-column: 1/-1;
	}
}
@media (width<=520px) {
	.page-body .quality-steps {
		grid-template-columns: 1fr;
	}
	.page-body .quality-steps li {
		padding: 32px 20px 24px;
	}
	.page-body .quality-steps h3 {
		min-height: 0;
	}
	.page-body .quality-steps svg {
		margin-bottom: 12px;
	}
}
@media (width<=760px) {
	.page-body .fee-band {
		grid-template-columns: 1fr;
		gap: 20px;
		padding: 26px 22px;
	}
	.page-body .fee-band h3 {
		font-size: 22px;
	}
}
.page-body .flow-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.page-body .flow-list li {
	border-bottom: 1px solid var(--line);
	align-items: center;
	gap: 16px;
	padding: 17px 0;
	display: flex;
}
.page-body .flow-list li b {
	color: var(--red);
	font-size: 14px;
}
.page-body .flow-list li span,
.page-body .flow-list li strong {
	display: block;
}
.page-body .flow-list li span {
	font-size: 13px;
}
.page-body .flow-list li strong {
	color: #2b2628;
	font-size: 17px;
}
.page-body .faq .faq-heading h2 {
	color: #1f1f1f;
	font-size: clamp(1.8rem, 4vw, 2.7rem);
	font-weight: 900;
	line-height: 1.45;
}
.page-body .faq-heading:after {
	content: "";
	background: var(--red);
	width: 84px;
	height: 2px;
	margin: 22px auto 0;
	display: block;
}
.page-body .faq .faq-heading {
	margin-bottom: 48px;
}
.page-body .faq-list {
	gap: 14px;
	max-width: 900px;
	margin: 0 auto;
	display: grid;
}
.page-body .faq-item {
	background: #fff;
	border: 1px solid #ded5d8;
	border-radius: 10px;
	overflow: hidden;
}
.page-body .faq-item summary {
	cursor: pointer;
	grid-template-columns: 32px minmax(0, 1fr) 18px;
	align-items: center;
	gap: 14px;
	min-height: 68px;
	padding: 16px 18px;
	list-style: none;
	display: grid;
}
.page-body .faq-item summary::-webkit-details-marker {
	display: none;
}
.page-body .faq-item summary::marker {
	content: "";
}
.page-body .faq-item summary:focus-visible {
	outline: 3px solid var(--red);
	outline-offset: -4px;
	border-radius: 9px;
}
.page-body .faq-item summary:hover {
	background: #faf6f6;
}
.page-body .faq-item summary strong {
	color: #1f1f1f;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.7;
}
.page-body .faq-q {
	background: var(--red);
	color: #fff;
	border-radius: 50%;
	place-items: center;
	width: 32px;
	height: 32px;
	font-size: 20px;
	font-weight: 800;
	line-height: 1;
	display: grid;
}
.page-body .faq-arrow {
	border-left: 7px solid #0000;
	border-right: 7px solid #0000;
	border-top: 12px solid var(--red);
	justify-self: center;
	width: 0;
	height: 0;
}
.page-body .faq-item[open] .faq-arrow {
	transform: rotate(180deg);
}
.page-body .faq-answer {
	border-top: 1px solid #eee5e8;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 14px;
	margin: 0 18px;
	padding: 18px 0 22px;
	display: grid;
}
.page-body .faq-a {
	color: #fff;
	background: #1f1f1f;
	border-radius: 50%;
	place-items: center;
	width: 32px;
	height: 32px;
	font-size: 20px;
	font-weight: 800;
	line-height: 1;
	display: grid;
}
@media (width<=600px) {
	.page-body .faq-a {
		width: 30px;
		height: 30px;
	}
}
.page-body .faq-answer p {
	margin: 0;
	font-size: 16px;
	line-height: 1.9;
}
.page-body .faq-answer-points {
	margin: 12px 0 0;
	padding-left: 1.3em;
	font-size: 16px;
	line-height: 1.9;
	list-style: outside;
}
.page-body .faq-answer-points li + li {
	margin-top: 12px;
}
@media (width<=600px) {
	.page-body .faq-item summary {
		grid-template-columns: 30px minmax(0, 1fr) 16px;
		gap: 10px;
		padding: 16px 14px;
	}
	.page-body .faq-q {
		width: 30px;
		height: 30px;
	}
	.page-body .faq-answer {
		grid-template-columns: 30px minmax(0, 1fr);
		gap: 10px;
		margin: 0 14px;
	}
}
@media (width<=900px) {
	.page-body {
		font-size: 16px;
	}
	.page-body .trust-grid {
		grid-template-columns: repeat(2, 1fr);
		padding: 0 20px;
	}
	.page-body .trust-item:nth-child(3) {
		border-left: 1px solid var(--badge-line);
	}
	.page-body .trust-item:nth-child(3),
	.page-body .trust-item:nth-child(4) {
		border-top: 1px solid var(--badge-line);
	}
	.page-body .section {
		padding: 48px 20px;
	}
	.page-body .section.cta-final {
		padding: 48px 0;
	}
	.page-body .three-grid,
	.page-body .expertise-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.page-body .worry-card {
		width: min(100%, 560px);
		min-height: 0;
		margin: 0 auto;
	}
	.page-body .worry-card > img {
		margin-top: 24px;
	}
	.page-body .five-grid {
		grid-template-columns: 1fr 1fr;
		gap: 34px 14px;
	}
	.page-body .five-grid article:last-child {
		grid-column: 1/3;
	}
	.page-body .report-section,
	.page-body .fee-flow {
		grid-template-columns: 1fr;
		gap: 42px;
	}
	.page-body .report-placeholder {
		min-height: 420px;
	}
}
@media (width<=520px) {
	.page-body .primary-button {
		width: 100%;
		padding: 14px 18px;
	}
	.page-body .trust-grid {
		padding: 0;
	}
	.page-body .trust-item {
		flex-direction: column;
		justify-content: center;
		min-height: 130px;
		padding: 18px 10px;
		display: flex;
	}
	.page-body .trust-value {
		font-size: clamp(16px, 4.5vw, 18px);
	}
	.page-body .five-grid {
		grid-template-columns: 1fr;
	}
	.page-body .five-grid article:last-child {
		grid-column: auto;
	}
	.page-body .section-heading {
		margin-bottom: 48px;
	}
	.page-body .section-heading h2,
	.page-body .report-section h2,
	.page-body .fee-flow h2 {
		font-size: 30px;
	}
}
@media (width<=900px) {
	.page-body .text-unit {
		vertical-align: baseline;
		max-width: 100%;
		display: inline-block;
	}
	.page-body
		:where(.section, .download-band, .consultation-band, .trust-strip)
		:where(p, li, small) {
		line-break: strict;
		overflow-wrap: break-word;
		text-wrap: pretty;
	}
	.page-body
		:where(.section, .download-band, .consultation-band)
		:where(h2, h3, h4),
	.page-body .faq-item summary strong,
	.page-body .report-copy .callout strong {
		line-break: strict;
		text-wrap: balance;
		overflow-wrap: break-word;
	}
	.page-body .section-heading p br,
	.page-body .download-content h2 br,
	.page-body .consultation-copy p br {
		display: none;
	}
	.page-body .expertise-grid h3 > span {
		display: inline-block;
	}
	.page-body .fee-example-price > p:first-child {
		white-space: nowrap;
	}
	.page-body .coverage-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.page-body .coverage-facts > div {
		padding-inline: 4px;
	}
	.page-body .coverage-facts strong {
		word-break: keep-all;
		overflow-wrap: normal;
	}
	.page-body .service-card,
	.page-body .quality-steps li,
	.page-body .photo-row figcaption,
	.page-body .consultation-copy,
	.page-body .download-content {
		min-width: 0;
	}
}
@media (width<=360px) {
	.page-body .coverage-facts {
		grid-template-columns: 1fr;
	}
	.page-body .report-copy h2 span {
		white-space: normal;
	}
	.page-body .faq-item summary {
		gap: 8px;
		padding-inline: 10px;
	}
}
@media (width<=900px) {
	.page-body .report-copy {
		display: contents;
	}
	.page-body .report-heading {
		order: -1;
		min-width: 0;
		container-type: inline-size;
	}
	.page-body .report-section .report-heading h2 {
		margin-bottom: 0;
	}
	.page-body .report-section .callout,
	.page-body .report-section .report-note {
		margin-top: 0;
	}
	.page-body .report-copy > p {
		margin: 0;
	}
	.page-body .coverage-types {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		display: grid;
	}
	.page-body .coverage-types li {
		text-align: center;
	}
}
@media (width<=600px) {
	.page-body .photo-row img,
	.page-body .photo-row h4 {
		margin-inline: auto;
	}
	.page-body .photo-row figcaption {
		text-align: center;
		container-type: inline-size;
	}
	.page-body .photo-row .field-detail h4 {
		white-space: nowrap;
		letter-spacing: -0.035em;
		font-size: clamp(12px, 5.8cqi, 18px);
	}
	.page-body .case-award-body {
		container-type: inline-size;
	}
	.page-body .case-award:first-child h3 {
		white-space: nowrap;
		letter-spacing: -0.035em;
		font-size: clamp(12px, 5cqi, 19.2px);
	}
	.page-body .expertise-heading,
	.page-body .flow-heading {
		container-type: inline-size;
	}
	.page-body .expertise-heading p.expertise-intro {
		letter-spacing: -0.02em;
		margin-inline: -6px;
		font-size: clamp(12px, 4.2cqi, 16.64px);
	}
	.page-body .expertise-intro > span {
		white-space: nowrap;
	}
	.page-body .flow-title-break {
		display: block;
	}
	.page-body .flow-section .flow-heading h2 {
		font-size: clamp(24px, 8cqi, 32px);
	}
	.page-body .flow-heading .flow-intro > span {
		white-space: nowrap;
		display: block;
	}
}
@media (width>=1101px) {
	.hero .hero__message {
		right: min(84px, 664px - 50vw);
	}
}
.hero .hero__label {
	font-family: var(--mikata-font);
	font-size: clamp(14px, 1.2vw, 16px);
	font-weight: 700;
}
.page-body .worry-bridge {
	text-align: center;
	max-width: 880px;
	margin: 32px auto 0;
	padding: 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.9;
}
.page-body #worries .worry-card {
	padding-bottom: 0;
}
.page-body #worries .worry-intro {
	font-size: 18px;
	line-height: 1.8;
	font-family: var(--mikata-font);
	letter-spacing: normal;
	padding: 0;
}
.page-body #worries .worry-intro br {
	display: initial;
}
.page-body #worries .worry-points {
	margin-bottom: 20px;
}
.page-body #worries .worry-card > img {
	aspect-ratio: 4/3;
	object-fit: contain;
	filter: none;
	width: calc(100% + 48px);
	max-width: none;
	height: auto;
	margin: auto -24px 0;
	padding: 0;
}
.page-body .worry-bridge .marker {
	background: linear-gradient(#0000 62%, #f8dfa0 62%);
}
.page-body .longterm-service-grid {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
}
.page-body .longterm-service-grid .service-card {
	grid-column: auto;
}
.page-body .longterm-service-grid .service-illustration {
	filter: brightness(0.9) contrast(1.25) saturate(1.4);
	width: 170px;
	max-width: 100%;
	height: 170px;
	margin: 0 auto 24px;
	transform: none;
}
.page-body .longterm-service-grid h3 {
	font-family: var(--mikata-font);
	letter-spacing: 0.02em;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.75;
}
.page-body .service-scope-note {
	text-align: center;
	margin-top: 24px;
	font-size: 14px;
	line-height: 1.8;
}
.page-body #strengths .expertise-heading {
	margin-bottom: 48px;
}
.page-body #strengths .expertise-heading p,
.page-body #strengths .expertise-grid h3,
.page-body #strengths .expertise-grid p {
	font-family: var(--mikata-font);
}
.page-body #strengths .strength-title-unit {
	color: inherit;
	display: inline-block;
}
.page-body #strengths .expertise-heading:after {
	width: 52px;
	margin-top: 32px;
}
.page-body #strengths .expertise-heading p.expertise-intro {
	letter-spacing: normal;
	margin-inline: 0;
	font-size: 18px;
	line-height: 1.8;
}
.page-body #strengths .strength-number {
	margin-bottom: 22px;
	font-size: 44px;
}
.page-body #strengths .expertise-grid h3 {
	letter-spacing: normal;
	margin-bottom: 20px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.7;
}
.page-body #strengths .expertise-grid p {
	text-align: left;
	text-wrap: pretty;
	letter-spacing: normal;
	word-spacing: normal;
	font-size: 16px;
	line-height: 1.9;
}
.page-body #strengths .strength-sentence-end {
	white-space: nowrap;
}
@media (width>=901px) {
	.page-body #strengths .expertise-grid article + article:before {
		transform: skew(-7deg);
	}
}
@media (width<=900px) {
	.page-body #strengths .expertise-heading p.expertise-intro {
		font-size: 17px;
	}
	.page-body #strengths .expertise-grid h3 {
		margin-bottom: 16px;
		font-size: 19px;
	}
	.page-body #strengths .expertise-grid p {
		font-size: 17px;
	}
	.page-body #strengths .strength-number {
		margin-bottom: 16px;
	}
}
@media (width>=761px) and (width<=1100px) {
	.page-body .longterm-service-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 34px 14px;
	}
}
@media (width<=760px) {
	.page-body .longterm-service-grid {
		grid-template-columns: 1fr;
		gap: 34px;
	}
	.page-body .longterm-service-grid .service-card {
		grid-column: auto;
	}
	.page-body .longterm-service-grid .service-illustration {
		width: 210px;
		height: 210px;
	}
	.page-body .service-scope-note {
		text-align: left;
	}
}
.page-body .service-points {
	border-top: 1px solid var(--red-line);
	gap: 10px;
	margin-top: 20px;
	padding-top: 18px;
}
.page-body .service-points li {
	font-weight: 400;
}
.page-body .service-illustration {
	filter: brightness(0.85) contrast(1.43) saturate(1.12);
}
.page-body .diagnosis-intro {
	margin-top: 18px;
	font-size: 16px;
	line-height: 1.8;
}
.page-body .diagnosis-points {
	gap: 10px;
	margin-top: 20px;
}
.page-body .diagnosis-points li {
	font-weight: 400;
}
.page-body .diagnosis-action {
	grid-template-columns: 1fr;
}
.page-body .download-content .diagnosis-note {
	margin-top: 20px;
	font-size: 14px;
	line-height: 1.8;
}
.page-body .longterm-consultation {
	margin-top: 32px;
}
.page-body .consultation-points {
	margin: 16px 0;
	padding-left: 1.2em;
	font-size: 16px;
	line-height: 1.8;
}
.page-body .consultation-copy .consultation-note {
	font-size: 14px;
	line-height: 1.8;
}
.page-body .report-stack a {
	z-index: 4;
	display: block;
	position: relative;
}
.page-body .report-points {
	gap: 12px;
	margin-top: 24px;
}
@media (width>=901px) {
	.page-body .report-copy .callout strong {
		font-size: clamp(18px, 4cqi, 22px);
	}
}
.page-body .report-points li {
	text-align: center;
	justify-content: center;
	align-items: baseline;
	gap: 8px;
	padding-left: 0;
	font-size: clamp(18px, 1.6vw, 20px);
	font-weight: 400;
	display: flex;
}
.page-body .report-points li:before {
	flex-shrink: 0;
	font-size: 1.1em;
	position: static;
}
.page-body .report-sample-footer {
	text-align: center;
	grid-column: 1/-1;
	margin-top: -28px;
}
.page-body .report-sample-link {
	color: #cc3a4a;
	text-underline-offset: 6px;
	justify-content: center;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 5px 0;
	font-size: clamp(18px, 1.8vw, 21px);
	font-weight: 700;
	text-decoration: underline 2px;
	display: inline-flex;
}
.page-body .report-sample-link svg {
	flex-shrink: 0;
}
.page-body .report-sample-link:hover {
	color: #aa2228;
}
.page-body .report-sample-link:focus-visible {
	outline-offset: 6px;
	outline: 3px solid #cc3a4a;
}
.page-body .report-section .report-sample-footer .report-note {
	margin: 10px 0 0;
	font-size: 14px;
}
.page-body .longterm-previews {
	grid-column: 1/-1;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.page-body .longterm-previews .report-preview {
	cursor: default;
	min-width: 0;
}
.page-body .longterm-previews .report-preview > span,
.page-body .report-display figcaption {
	font-size: 16px;
	line-height: 1.7;
}
.page-body .longterm-previews img {
	aspect-ratio: 1.45;
	object-fit: contain;
	background: #fff;
}
.page-body #case .expertise-heading {
	margin-bottom: 44px;
}
.page-body #case .case-intro {
	letter-spacing: normal;
	margin-top: 24px;
	font-size: 17px;
	line-height: 1.8;
}
.page-body #case .case-awards {
	box-shadow: none;
	background-color: #faf6f6;
	background-image: radial-gradient(#cc3a4a2e 1px, #0000 1px);
	background-size: 10px 10px;
	border: 0;
	border-radius: 20px;
	gap: 24px;
	padding: 40px 26px 26px;
}
.page-body #case .case-award {
	background: #fff;
	border: 1px solid #d3cdd0;
	border-radius: 20px;
	flex-direction: column;
	padding: 0 24px 24px;
	display: flex;
	position: relative;
}
.page-body #case .case-award-label {
	color: #b52231;
	letter-spacing: normal;
	text-align: center;
	background: #fff6f7;
	border: 1px solid #efb8c0;
	border-radius: 4px;
	align-self: center;
	margin-top: -17px;
	padding: 9px 14px;
	font-size: 15px;
	font-weight: 700;
}
.page-body #case .case-illustration {
	object-fit: contain;
	background: #fff;
	border: 0;
	width: 100%;
	height: 190px;
	margin: 20px auto 12px;
}
.page-body #case .case-award-body {
	font-family: var(--mikata-font);
	flex-direction: column;
	flex: 1;
	padding: 0;
	display: flex;
}
.page-body #case .case-award-meta {
	text-align: center;
	color: #494245;
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 400;
}
.page-body #case .case-award h3 {
	letter-spacing: normal;
	white-space: normal;
	text-align: center;
	margin: 14px 0 0;
	font-family: inherit;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.6;
}
.page-body #case .case-outcome {
	margin-top: 24px;
}
.page-body #case .case-outcome > strong {
	color: #b52231;
	font-size: 16px;
	font-weight: 700;
	display: block;
}
.page-body #case .case-outcome p {
	text-wrap: pretty;
	margin: 16px 0 0;
	padding: 0;
	font-size: 17px;
	line-height: 1.8;
}
.page-body #case .case-problem p {
	color: #1f1f1f;
	font-weight: 400;
}
.page-body #case .case-support {
	border-top: 1px solid #d3cdd0;
	margin-bottom: 28px;
	padding-top: 20px;
}
.page-body #case .case-result {
	background: #fff6f7;
	border: 1px solid #cc3a4a;
	border-radius: 8px;
	margin-top: auto;
	overflow: hidden;
}
.page-body #case .case-result > strong {
	color: #fff;
	background: #cc3a4a;
	padding: 9px 14px;
}
.page-body #case .case-result p {
	color: #1f1f1f;
	margin: 0;
	padding: 15px 14px;
	font-weight: 400;
}
@media (width>=761px) {
	.page-body #case .case-awards {
		row-gap: 0;
	}
	.page-body #case .case-award {
		grid-row: span 7;
		grid-template-rows: subgrid;
		row-gap: 0;
		display: grid;
	}
	.page-body #case .case-award-label {
		justify-self: center;
	}
	.page-body #case .case-award-body {
		grid-row: 3 / span 5;
		grid-template-rows: subgrid;
		row-gap: 0;
		display: grid;
	}
	.page-body #case .case-award-body > :not(.case-result) {
		align-self: start;
	}
	.page-body #case .case-result {
		align-self: stretch;
		margin-top: 0;
	}
}
@media (width<=760px) {
	.page-body #case .case-awards {
		gap: 38px;
		padding: 34px 14px 18px;
	}
	.page-body #case .case-award {
		padding: 0 18px 20px;
	}
	.page-body #case .case-award-label {
		padding-inline: 10px;
		font-size: 14px;
	}
	.page-body #case .case-award h3 {
		font-size: 20px;
	}
	.page-body #case .case-result {
		margin-top: 0;
	}
}
.page-body .fee-group {
	margin-top: 38px;
}
.page-body .fee-group-title {
	color: #1f1f1f;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.5;
}
.page-body .fee-group-note {
	padding-top: 10px;
	font-size: 16px;
}
.page-body .fee-general-note {
	margin-top: 24px;
	font-size: 16px;
	line-height: 1.9;
}
.page-body #price .fee-heading-note {
	font-family: var(--mikata-font);
	letter-spacing: normal;
	margin: 24px 0 0;
	padding: 0;
	font-size: 18px;
	line-height: 1.8;
}
.page-body .estimate-cta,
.page-body .service-guide-cta {
	background: #aa2228;
	padding: 60px 24px;
}
.page-body .service-guide-card {
	--red: #cc3a4a;
	background: #fff;
	border-radius: 20px;
	grid-template-columns: 340px minmax(0, 1fr);
	align-items: center;
	gap: 38px;
	max-width: 940px;
	margin: 0 auto;
	padding: 36px;
	display: grid;
	box-shadow:
		0 0 0 1px #3c0f1614,
		0 2px 5px #3c0f162e,
		0 10px 20px #3c0f1633,
		0 26px 52px #3c0f164d;
}
.page-body .service-guide-visual {
	background: #faf2f3;
	border: 1px solid #efc7cc;
	border-radius: 10px;
	padding: 28px 18px 20px;
	position: relative;
}
.page-body .service-guide-visual > span {
	color: #fff;
	background: #cc3a4a;
	padding: 9px 12px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	position: absolute;
	top: -14px;
	left: 20px;
}
.page-body .service-guide-visual img {
	width: 100%;
	height: auto;
}
.page-body .service-guide-content {
	font-family: var(--mikata-font);
}
.page-body .service-guide-label {
	color: #fff;
	background: #cc3a4a;
	padding: 9px 14px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.6;
	display: inline-block;
}
.page-body .service-guide-content h2 {
	color: #1f1f1f;
	margin: 16px 0 0;
	font-family: inherit;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.65;
}
.page-body .service-guide-content p {
	color: #494245;
	margin: 26px 0 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.9;
}
.page-body .service-guide-actions {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 32px;
	display: grid;
}
.page-body .service-guide-actions .primary-button {
	width: 100%;
	min-width: 0;
	min-height: 66px;
	font-family: var(--mikata-font);
	padding: 14px 12px;
	font-size: 19px;
	font-weight: 700;
	box-shadow: 0 4px #aa2228;
}
.page-body .service-guide-actions .service-guide-download {
	color: #cc3a4a;
	background: #fff;
}
.page-body .service-guide-actions .service-guide-download:hover,
.page-body .service-guide-actions .service-guide-download:focus-visible {
	color: #fff;
	background: #cc3a4a;
}
@media (width<=900px) {
	.page-body .service-guide-card {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
		gap: 24px;
		padding: 30px 26px;
	}
	.page-body .service-guide-actions {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}
@media (width<=600px) {
	.page-body .service-guide-cta {
		padding: 40px 20px;
	}
	.page-body .service-guide-card {
		grid-template-columns: 1fr;
		gap: 26px;
		padding: 34px 20px 26px;
	}
	.page-body .service-guide-visual {
		width: 100%;
		max-width: 340px;
		margin: 0 auto;
	}
	.page-body .service-guide-content h2 {
		font-size: 20px;
	}
	.page-body .service-guide-content p {
		margin-top: 18px;
		font-size: 17px;
	}
	.page-body .service-guide-actions {
		margin-top: 24px;
	}
}
.page-body .estimate-cta-card {
	--red: #cc3a4a;
	background: #fff;
	border-radius: 20px;
	grid-template-columns: minmax(0, 1fr) 298px;
	align-items: center;
	gap: 34px;
	max-width: 940px;
	margin: 0 auto;
	padding: 32px 34px;
	display: grid;
	box-shadow:
		0 0 0 1px #3c0f1614,
		0 2px 5px #3c0f162e,
		0 10px 20px #3c0f1633,
		0 26px 52px #3c0f164d;
}
.page-body .estimate-cta-copy {
	font-family: var(--mikata-font);
}
.page-body .estimate-cta-copy h2 {
	color: #1f1f1f;
	margin: 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.7;
}
.page-body .estimate-cta-copy p {
	color: #494245;
	text-wrap: pretty;
	margin: 16px 0 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.8;
}
.page-body .estimate-cta-card .primary-button {
	width: 100%;
	min-height: 66px;
	padding: 14px 18px;
	font-size: 19px;
	box-shadow: 0 4px #aa2228;
}
@media (width<=760px) {
	.page-body .estimate-cta {
		padding: 40px 20px;
	}
	.page-body .estimate-cta-card {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 26px 20px;
	}
	.page-body .estimate-cta-copy h2 {
		font-size: 18px;
	}
	.page-body .estimate-cta-copy p {
		font-size: 17px;
	}
	.page-body .estimate-cta-card .primary-button {
		font-size: 18px;
	}
}
.page-body .fee-plans {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-top: 32px;
	display: grid;
}
.page-body .fee-plan {
	font-family: var(--mikata-font);
	background: #fff;
	border: 1px solid #e5c9cd;
	border-radius: 16px;
	overflow: hidden;
}
.page-body .fee-plan > h3 {
	color: #fff;
	text-align: center;
	background: #cc3a4a;
	margin: 0;
	padding: 20px 24px;
	font-family: inherit;
	font-size: 27px;
	font-weight: 700;
	line-height: 1.5;
}
.page-body .fee-plan > h3 span {
	font-size: 18px;
}
.page-body .fee-plan-service {
	text-align: center;
	margin: 0 28px;
	padding: 27px 0;
}
.page-body .fee-plan-service + .fee-plan-service {
	border-top: 1px solid #e5dadd;
}
.page-body .fee-plan-service h4 {
	color: #1f1f1f;
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}
.page-body .fee-plan-price {
	color: #b52231;
	flex-wrap: wrap;
	justify-content: center;
	align-items: baseline;
	gap: 3px;
	margin: 0;
	padding: 0;
	line-height: 1.35;
	display: flex;
}
.page-body .fee-plan-price strong {
	font-size: 38px;
	font-weight: 700;
}
.page-body .fee-plan-price > span {
	white-space: nowrap;
	font-size: 23px;
	font-weight: 700;
}
.page-body .fee-plan-price small {
	color: #494245;
	white-space: nowrap;
	font-size: 14px;
}
.page-body .fee-plan-tax {
	color: #494245;
	margin: 8px 0 0;
	padding: 0;
	font-size: 15px;
	line-height: 1.7;
}
.page-body .fee-review-label {
	font-size: 0.9em;
	display: inline-block;
}
.page-body .fee-recommendations {
	font-family: var(--mikata-font);
	background: #fff;
	border: 1px solid #e5c9cd;
	border-radius: 16px;
	margin-top: 28px;
	padding: 28px 32px;
}
.page-body .fee-recommendations h3 {
	color: #494245;
	text-align: center;
	background: 0 0;
	border: 1px solid #b5aaae;
	border-radius: 0;
	max-width: 100%;
	margin: 0 auto 24px;
	padding: 3px 10px;
	font-family: inherit;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.5;
	display: table;
}
.page-body .fee-recommendation-groups {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
	display: grid;
}
.page-body .fee-recommendation-group {
	min-width: 0;
	padding: 0;
}
.page-body .fee-recommendation-group + .fee-recommendation-group {
	border-left: 1px solid #eee2e5;
	padding-left: 32px;
}
.page-body .fee-recommendation-group h4 {
	color: #b52231;
	margin: 0 0 18px;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.65;
}
.page-body .fee-recommendations ul {
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
}
.page-body .fee-recommendations li {
	text-wrap: pretty;
	margin: 0;
	padding: 0 0 0 26px;
	font-size: 17px;
	line-height: 1.8;
	position: relative;
}
.page-body .fee-recommendations li:before {
	content: "✓";
	color: #cc3a4a;
	font-size: 20px;
	font-weight: 700;
	position: absolute;
	top: 0;
	left: 0;
}
.page-body .fee-recommendations p {
	text-align: center;
	border-top: 1px solid #eee2e5;
	margin: 20px 0 0;
	padding: 18px 0 0;
	font-size: 16px;
	line-height: 1.8;
}
@media (width<=760px) {
	.page-body .fee-recommendations {
		padding: 24px 20px;
	}
	.page-body .fee-recommendations h3 {
		font-size: 20px;
	}
	.page-body .fee-recommendations ul {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.page-body .fee-recommendation-groups {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.page-body .fee-recommendation-group + .fee-recommendation-group {
		border-top: 1px solid #eee2e5;
		border-left: 0;
		padding-top: 24px;
		padding-left: 0;
	}
	.page-body .fee-recommendations p {
		text-align: left;
	}
	.page-body .fee-plans {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.page-body .fee-plan > h3 {
		padding: 18px 14px;
		font-size: 25px;
	}
	.page-body .fee-plan-service {
		margin-inline: 18px;
		padding: 24px 0;
	}
	.page-body .fee-plan-service h4 {
		font-size: 19px;
	}
	.page-body .fee-plan-price strong {
		font-size: 34px;
	}
	.page-body .fee-plan-price > span {
		font-size: 21px;
	}
}
.page-body .quality-timing strong {
	color: var(--red);
	font-weight: 800;
}
.page-body .quality-timing p {
	margin: 6px 0 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.8;
}
.page-body .flow-optional {
	--creation-color: #286b64;
	background: #f2f8f7;
	border: 1px solid #b8d5d0;
	border-radius: 16px;
	margin-top: 58px;
	padding: 30px 24px 24px;
	position: relative;
}
.page-body .flow-heading-word {
	display: inline-block;
}
.page-body #flow .flow-heading > p {
	font-size: 18px;
}
.page-body .flow-review {
	text-align: center;
	background: #fff5f6;
	border: 1px solid #efc7cc;
	border-radius: 16px;
	margin-top: 36px;
	padding: 26px 24px 24px;
}
.page-body .flow-review > h3 {
	color: #fff;
	max-width: 100%;
	font-family: var(--mikata-font);
	background: #cc3a4a;
	border: 2px solid #cc3a4a;
	border-radius: 6px;
	margin: 0;
	padding: 6px 14px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
	display: inline-block;
}
.page-body .review-steps {
	margin-top: 42px;
}
.page-body .review-steps h4 {
	color: #111;
	justify-content: center;
	align-items: center;
	min-height: 52px;
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.5;
	display: flex;
}
.page-body .flow-connector {
	fill: none;
	stroke: #777;
	stroke-width: 6px;
	stroke-linecap: round;
	stroke-linejoin: round;
	width: 32px;
	height: 32px;
	position: absolute;
	top: -46px;
	left: calc(50% - 16px);
}
.page-body .flow-optional-heading {
	text-align: center;
	font-family: var(--mikata-font);
}
.page-body .flow-optional-heading h3 {
	color: #fff;
	background: #286b64;
	border: 2px solid #286b64;
	border-radius: 6px;
	max-width: 100%;
	margin: 0;
	padding: 6px 14px;
	font-family: inherit;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
	display: inline-block;
}
.page-body .flow-optional-heading p {
	margin: 14px 0 0;
	padding: 0;
	font-size: 14px;
	line-height: 1.8;
}
.page-body #faq .faq-service-options {
	margin: 10px 0;
	padding-left: 1.3em;
	font-size: 16px;
	line-height: 1.9;
}
.page-body #faq .faq-service-options li + li {
	margin-top: 8px;
}
.page-body #faq .faq-list {
	width: 100%;
	max-width: none;
	font-family: var(--mikata-font);
}
.page-body #faq .faq-item summary strong {
	letter-spacing: normal;
	font-family: inherit;
	font-weight: 700;
}
.page-body #faq .faq-answer,
.page-body #faq .faq-answer p,
.page-body #faq .faq-service-options {
	letter-spacing: normal;
	font-family: inherit;
	font-weight: 400;
}
.page-body .creation-steps {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin-top: 42px;
}
.page-body .creation-steps li {
	border-color: #b8d5d0;
	padding-inline: 16px;
}
.page-body .creation-steps .step-no {
	background: #286b64;
}
.page-body .creation-steps svg {
	stroke: #286b64;
}
.page-body .creation-steps h4 {
	color: #1f1f1f;
	justify-content: center;
	align-items: center;
	min-height: 52px;
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
	display: flex;
}
.page-body .creation-steps p {
	font-size: 17px;
	line-height: 1.8;
}
.page-body #flow .quality-steps p {
	font-family: var(--mikata-font);
	padding: 0;
	font-size: 15px;
	line-height: 1.8;
}
.page-body #flow .quality-steps p > span {
	white-space: nowrap;
	display: block;
}
.page-body #flow .review-steps li:first-child p {
	text-wrap: balance;
	width: 100%;
	min-width: 0;
	max-width: 100%;
}
.page-body #flow .review-steps li:first-child p > span {
	white-space: normal;
	display: inline;
}
@media (width<=900px) {
	.page-body .creation-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 34px 16px;
	}
	.page-body .creation-steps li:last-child {
		grid-column: auto;
	}
}
@media (width>=521px) and (width<=1100px) {
	.page-body .review-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 34px 16px;
	}
	.page-body .review-steps li:last-child {
		grid-column: 1/-1;
	}
}
@media (width<=520px) {
	.page-body .flow-review {
		padding: 24px 16px 20px;
	}
	.page-body .flow-review > h3 {
		padding-inline: 10px;
		font-size: 18px;
	}
	.page-body .review-steps h4 {
		min-height: 0;
	}
	.page-body .flow-optional {
		padding: 24px 16px 20px;
	}
	.page-body .flow-optional-heading h3 {
		padding-inline: 10px;
		font-size: 18px;
	}
	.page-body .creation-steps {
		grid-template-columns: 1fr;
	}
	.page-body .creation-steps h4 {
		min-height: 0;
	}
}
.page-body .compact-diagnosis {
	color: var(--ink);
	padding: 48px 24px;
}
.page-body .compact-diagnosis p {
	padding: 0;
}
.page-body .diagnosis-cta-inner {
	--red: #cc3a4a;
	background: #fff;
	border-radius: 20px;
	grid-template-columns: 240px minmax(0, 1fr) 290px;
	align-items: center;
	gap: 28px;
	max-width: 1120px;
	margin: 0 auto;
	padding: 34px 36px;
	display: grid;
	box-shadow: 0 12px 32px #4a091e26;
}
.page-body .diagnosis-cta-sample {
	grid-area: 1/1;
}
.page-body .diagnosis-cta-copy {
	grid-area: 1/2;
}
.page-body .diagnosis-cta-sample {
	text-align: center;
	margin: 0;
	padding: 10px 8px 0;
}
.page-body .diagnosis-sample-open {
	isolation: isolate;
	cursor: zoom-in;
	background: #fff;
	border: 0;
	width: 100%;
	padding: 0;
	display: block;
	position: relative;
	box-shadow: 0 8px 20px #4a091e26;
}
.page-body .diagnosis-sample-open:before,
.page-body .diagnosis-sample-open:after {
	content: "";
	z-index: -1;
	pointer-events: none;
	background: #fff;
	border: 1px solid #b9b1b4;
	position: absolute;
	inset: 0;
	box-shadow: 0 3px 8px #4a091e18;
}
.page-body .diagnosis-sample-open:before {
	transform: translate(-7px, -3px) rotate(-4deg);
}
.page-body .diagnosis-sample-open:after {
	z-index: -2;
	transform: translate(8px, -1px) rotate(3deg);
}
.page-body .diagnosis-sample-open img {
	background: #fff;
	border: 1px solid #b9b1b4;
	position: relative;
}
.page-body .diagnosis-sample-open:focus-visible {
	outline: 3px solid var(--red);
	outline-offset: 12px;
}
.page-body .diagnosis-cta-sample a {
	background: #fff;
	display: block;
	box-shadow: 0 8px 20px #4a091e33;
}
.page-body .diagnosis-cta-sample img {
	width: 100%;
	height: auto;
	display: block;
}
.page-body .diagnosis-cta-sample figcaption {
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.5;
}
.page-body .diagnosis-cta-sample figcaption span {
	white-space: nowrap;
	justify-content: center;
	align-items: center;
	gap: 4px;
	margin-inline: -8px;
	display: flex;
}
.page-body .diagnosis-zoom-icon {
	width: 22px;
	height: 22px;
	color: var(--red);
	flex-shrink: 0;
	display: inline-block;
}
.page-body .diagnosis-cta-label {
	background: var(--red);
	color: #fff;
	width: fit-content;
	margin: 0 0 14px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6;
	padding: 7px 12px !important;
}
.page-body .diagnosis-cta-copy h2 {
	color: #1f1f1f;
	margin: 0;
	font-size: clamp(26px, 2vw, 28px);
	font-weight: 800;
	line-height: 1.5;
}
.page-body .diagnosis-cta-copy h2 span {
	color: inherit;
	display: inline-block;
}
.page-body .diagnosis-free {
	color: var(--red);
	font-size: 1.2em;
	font-weight: 900;
}
.page-body .diagnosis-free-badge {
	background: var(--red);
	color: #fff;
	border-radius: 4px;
	padding: 5px 8px;
	font-size: 16px;
	line-height: 1.2;
	display: inline-block;
}
.page-body .diagnosis-cta-description {
	margin: 16px 0 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.9;
}
.page-body .diagnosis-cta-note {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.7;
}
.page-body .diagnosis-cta-actions {
	grid-area: 1/3;
	grid-template-columns: 1fr;
	align-items: end;
	gap: 42px;
	display: grid;
}
.page-body .diagnosis-cta-actions .cta-microcopy {
	justify-content: center;
	align-items: center;
	gap: 3px;
	font-size: 14px;
	display: flex;
}
.page-body .cta-microcopy > span[aria-hidden] {
	color: var(--red);
	flex: none;
	font-size: 18px;
}
.page-body .diagnosis-cta-description strong {
	color: var(--red);
	font-weight: 700;
}
.page-body .diagnosis-cta-actions p {
	text-align: center;
	margin: 0 0 9px;
	font-size: 14px;
	line-height: 1.6;
}
.page-body .diagnosis-cta-actions .primary-button {
	border: 2px solid var(--red);
	width: 100%;
	min-height: 64px;
	padding: 14px 12px;
	font-size: 18px;
	box-shadow: 0 4px #7b141b;
}
.page-body .diagnosis-cta-primary {
	background: var(--red);
	color: #fff;
}
.page-body .diagnosis-cta-primary .diagnosis-free-badge,
.page-body .diagnosis-cta-secondary {
	color: var(--red);
	background: #fff;
}
.page-body .diagnosis-cta-primary:hover {
	color: #fff;
	background: #8d1b21;
}
.page-body .diagnosis-cta-secondary:hover {
	color: var(--red);
	background: #faf0f0;
}
.page-body .diagnosis-cta-actions .primary-button:focus-visible,
.page-body .diagnosis-cta-sample a:focus-visible {
	outline: 3px solid var(--red);
	outline-offset: 5px;
}
@media (width>=1051px) {
	.page-body .diagnosis-cta-inner {
		column-gap: 32px;
		padding-block: 24px;
	}
	.page-body .diagnosis-cta-copy,
	.page-body .diagnosis-cta-actions {
		align-self: center;
		margin-top: 0;
	}
	.page-body .diagnosis-cta-copy h2 {
		font-size: 32px;
	}
	.page-body .diagnosis-cta-description {
		margin-top: 18px;
		font-size: 18px;
		line-height: 1.85;
	}
	.page-body .diagnosis-cta-note {
		margin-top: 16px;
	}
	.page-body .diagnosis-cta-actions .primary-button {
		min-height: 70px;
		font-size: 19px;
	}
}
@media (width>=761px) and (width<=1050px) {
	.page-body .diagnosis-cta-inner {
		grid-template-columns: 210px minmax(0, 1fr);
		gap: 24px;
		padding: 30px 24px;
	}
	.page-body .diagnosis-cta-sample {
		grid-row: 1/3;
	}
	.page-body .diagnosis-cta-actions {
		grid-area: 2/2;
		grid-template-columns: 1fr;
		align-items: end;
		gap: 32px;
	}
	.page-body .diagnosis-cta-actions .primary-button {
		font-size: 17px;
	}
}
.diagnosis-sample-dialog {
	color: #494245;
	background: 0 0;
	border: 0;
	width: max-content;
	max-width: calc(100vw - 24px);
	max-height: calc(100dvh - 24px);
	margin: auto;
	padding: 0;
}
.diagnosis-sample-dialog::backdrop {
	background: #000000b8;
}
.diagnosis-dialog-panel {
	background: #fff;
	border-radius: 12px;
	padding: 16px;
}
.diagnosis-dialog-header {
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-bottom: 12px;
	display: flex;
}
.diagnosis-dialog-header h2 {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
}
.diagnosis-sample-close {
	color: #aa2228;
	min-height: 44px;
	font: inherit;
	cursor: pointer;
	background: #fff;
	border: 1px solid #aa2228;
	border-radius: 6px;
	flex-shrink: 0;
	padding: 8px 12px;
	font-size: 16px;
}
.diagnosis-dialog-panel > img {
	object-fit: contain;
	box-sizing: border-box;
	border: 1px solid #b9b1b4;
	width: auto;
	max-width: min(800px, 100vw - 56px);
	height: auto;
	max-height: calc(100dvh - 116px);
	margin: auto;
	display: block;
}
@media (width<=520px) {
	.diagnosis-dialog-header {
		gap: 8px;
	}
	.diagnosis-dialog-header h2 {
		font-size: 14px;
	}
}
@media (width<=760px) {
	.page-body .compact-diagnosis {
		padding: 28px 12px;
	}
	.page-body .diagnosis-cta-inner {
		grid-template-rows: min-content auto;
		grid-template-columns: minmax(0, 1fr) 140px;
		align-items: start;
		gap: 16px;
		padding: 24px 16px;
	}
	.page-body .diagnosis-cta-copy {
		display: contents;
	}
	.page-body .diagnosis-cta-sample {
		grid-area: 1/2/3;
	}
	.page-body .diagnosis-cta-sample figcaption {
		margin-top: 8px;
		font-size: 12px;
	}
	.page-body .diagnosis-cta-label {
		grid-area: 1/1;
		margin: 0;
		font-size: 14px;
		padding: 6px 8px !important;
	}
	.page-body .diagnosis-cta-copy h2 {
		grid-area: 2/1;
		font-size: 24px;
	}
	.page-body .diagnosis-cta-copy h2 span {
		display: block;
	}
	.page-body .diagnosis-cta-description {
		grid-area: 3/1 / auto/-1;
		margin: 0;
	}
	.page-body .diagnosis-cta-actions {
		grid-area: 4/1 / auto/-1;
		grid-template-columns: 1fr;
		gap: 32px;
		margin-top: 6px;
	}
	.page-body .diagnosis-cta-note {
		grid-area: 5/1 / auto/-1;
		margin: 4px 0 0;
	}
}
@media (width<=360px) {
	.page-body .diagnosis-cta-inner {
		grid-template-columns: minmax(0, 1fr) 120px;
		gap: 12px;
		padding-inline: 12px;
	}
	.page-body .diagnosis-cta-copy h2 {
		font-size: 20px;
	}
}
@media (width<=900px) {
	.page-body .longterm-service-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.page-body .longterm-service-grid article:last-child {
		grid-column: auto;
	}
	.page-body .longterm-previews {
		grid-template-columns: 1fr 1fr;
	}
	.page-body .longterm-previews .report-preview:last-child {
		grid-column: 1/-1;
		width: 100%;
		max-width: 560px;
		margin-inline: auto;
	}
}
@media (width<=760px) {
	.page-body .longterm-service-grid {
		grid-template-columns: 1fr;
	}
}
@media (width<=600px) {
	.page-body .worry-bridge {
		text-align: left;
		font-size: 16px;
	}
	.page-body .longterm-service-grid {
		grid-template-columns: 1fr;
		gap: 34px;
	}
	.page-body .longterm-service-grid .service-card {
		padding: 32px 22px 26px;
	}
	.page-body .longterm-service-grid .service-illustration {
		width: 190px;
		height: 170px;
	}
	.page-body .longterm-service-grid h3 {
		font-size: 20px;
	}
	.page-body .longterm-previews {
		grid-template-columns: 1fr;
	}
	.page-body .longterm-previews .report-preview:last-child {
		grid-column: auto;
	}
	.page-body .case-award:first-child h3 {
		white-space: normal;
		letter-spacing: 0;
		font-size: 19.2px;
	}
	.page-body .fee-group-title {
		font-size: 22px;
	}
	.page-body .fee-example {
		grid-template-columns: 1fr;
		gap: 18px;
		padding: 26px 22px;
	}
	.page-body .fee-example-heading h3 {
		font-size: 22px;
	}
	.page-body .fee-example-price {
		text-align: left;
	}
	.page-body .fee-example-price p {
		justify-content: flex-start;
	}
	.page-body .fee-example-price strong {
		font-size: 38px;
	}
	.page-body .fee-general-note {
		font-size: 14px;
	}
}
:root {
	--mikata-font:
		"Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}
body,
.page-body,
button,
input,
select,
textarea {
	font-family: var(--mikata-font);
	font-synthesis: none;
}
html
	body
	:is(
		h1,
		h2,
		h3,
		h4,
		strong,
		b,
		.hero__lead,
		.hero__message strong,
		.btn,
		.worry-no,
		.number,
		.strength-number,
		.step-no
	) {
	font-weight: 700;
}
:root body :is(.hero, .page-body) :is(.btn, .primary-button) {
	--cta-red: #cc3a4a;
	--cta-shadow: #aa2228;
	background: var(--cta-red);
	color: #fff;
	border: 2px solid var(--cta-red);
	box-shadow: 0 4px 0 var(--cta-shadow);
	cursor: pointer;
	font-weight: 700;
	transition:
		background-color 0.18s,
		color 0.18s,
		transform 0.12s,
		box-shadow 0.12s;
	transform: none;
}
:root
	body
	:is(.hero, .page-body)
	:is(
		.btn--outline,
		.diagnosis-cta-secondary,
		.service-guide-download,
		.download-outline,
		.light
	) {
	color: var(--cta-red);
	background: #fff;
}
@media (hover: hover) and (pointer: fine) {
	:root body :is(.hero, .page-body) :is(.btn, .primary-button):hover {
		color: var(--cta-red);
		box-shadow: 0 2px 0 var(--cta-shadow);
		background: #fff;
		transform: translateY(2px);
	}
	:root
		body
		:is(.hero, .page-body)
		:is(
			.btn--outline,
			.diagnosis-cta-secondary,
			.service-guide-download,
			.download-outline,
			.light
		):hover {
		background: var(--cta-red);
		color: #fff;
	}
}
:root body :is(.hero, .page-body) :is(.btn, .primary-button):focus-visible {
	color: var(--cta-red);
	outline: 3px solid var(--cta-shadow);
	outline-offset: 6px;
	box-shadow: 0 2px 0 var(--cta-shadow);
	background: #fff;
	transform: translateY(2px);
}
:root
	body
	:is(.hero, .page-body)
	:is(
		.btn--outline,
		.diagnosis-cta-secondary,
		.service-guide-download,
		.download-outline,
		.light
	):focus-visible {
	background: var(--cta-red);
	color: #fff;
}
:root body :is(.hero, .page-body) :is(.btn, .primary-button):active {
	box-shadow: 0 0 0 var(--cta-shadow);
	transform: translateY(4px);
}
@media (prefers-reduced-motion: reduce) {
	:root body :is(.hero, .page-body) :is(.btn, .primary-button),
	:root
		body
		:is(.hero, .page-body)
		:is(.btn, .primary-button):is(:hover, :focus-visible, :active) {
		transition: none;
		transform: none;
	}
}
.page-body h2 .mobile-neutral {
	color: inherit;
}
.page-body .expertise-intro > .mobile-keep {
	display: inline;
}
.hero__message span.mobile-keep {
	color: inherit;
	font: inherit;
	border: 0;
	margin: 0;
	padding: 0;
	display: inline;
}
html body .hero .hero__label,
html body .hero .hero__lead {
	font-weight: 900;
}
.page-body .fee-recommendations {
	padding-top: 36px;
	position: relative;
}
.page-body .fee-recommendations > p {
	font-size: 14px;
}
.page-body .fee-recommendations #fee-recommendations-title {
	color: #fff;
	background: #686165;
	border-color: #686165;
	width: max-content;
	max-width: calc(100% - 28px);
	margin: 0;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
}
.page-body .report-sample-link {
	position: relative;
}
.page-body .report-sample-link svg {
	position: absolute;
	top: 50%;
	left: calc(100% + 10px);
	transform: translateY(-50%);
}
.page-body .fee-plan-price {
	width: max-content;
	max-width: 100%;
	margin-inline: auto;
	position: relative;
}
.page-body .fee-plan-price small {
	position: absolute;
	bottom: 4px;
	left: calc(100% + 8px);
}
.page-body #flow .flow-review {
	padding-top: 32px;
	position: relative;
}
.page-body #flow .flow-optional {
	margin-top: 122px;
	padding-top: 34px;
}
.page-body #flow .flow-connector {
	stroke: #666;
	stroke-width: 6px;
	width: 44px;
	height: 44px;
	top: -92px;
	left: calc(50% - 22px);
}
.mobile-flow-note-break {
	display: none;
}
.page-body #flow #flow-review-title,
.page-body #flow #flow-optional-title {
	white-space: nowrap;
	width: max-content;
	max-width: calc(100% - 16px);
	margin: 0;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
}
.page-body #flow #flow-optional-title .mobile-unit {
	display: inline;
}
.page-body #faq .faq-item summary {
	align-items: start;
}
.page-body #faq .faq-q,
.page-body #faq .faq-a {
	align-self: start;
}
.page-body #faq .faq-arrow {
	align-self: start;
	margin-top: 9px;
}
.page-body #faq .faq-answer {
	align-items: start;
}
.page-body #faq :is(summary strong, .faq-answer p, .faq-service-options li) {
	text-wrap: wrap;
}
.page-body #faq .mobile-keep {
	white-space: normal;
}
@media (width<=760px) {
	.mobile-keep {
		white-space: nowrap;
	}
	.mobile-unit {
		white-space: nowrap;
		display: inline-block;
	}
	html body .hero .hero__label {
		padding: 9px 12px;
		font-size: 15px;
		font-weight: 900;
	}
	html body .hero h1 {
		letter-spacing: -0.035em;
		font-size: clamp(34px, 10.8vw, 46px);
		font-weight: 900;
		line-height: 1.25;
	}
	html body .hero .hero__lead {
		text-wrap: balance;
		font-weight: 900;
	}
	.hero__visual {
		height: 500px;
	}
	.hero__visual:after {
		background: linear-gradient(
			#ffffff80 0%,
			#ffffff6b 210px,
			#fffc 330px,
			#fff 480px
		);
	}
	.hero__text,
	.page-body p,
	.page-body li {
		line-break: strict;
		text-wrap: pretty;
	}
	.page-body #worries .worry-intro br {
		display: none;
	}
	.page-body #support .service-heading h2 .text-unit:first-child,
	.page-body #price .fee-heading h2 > .text-unit {
		display: block;
	}
	.page-body #support .service-heading h2 {
		letter-spacing: 0;
		font-size: clamp(16px, 5.12vw, 20px);
		line-height: 1.65;
	}
	.page-body #support .service-heading h2 > .text-unit {
		white-space: nowrap;
		display: block;
	}
	.page-body #case .expertise-heading h2 > .mobile-unit,
	.page-body #flow .flow-heading h2 > .mobile-unit {
		display: block;
	}
	.page-body #strengths .expertise-heading h2 {
		font-size: clamp(20px, 6.15vw, 24px);
		line-height: 1.6;
	}
	.page-body #strengths .expertise-heading h2 > span {
		display: inline;
	}
	.page-body #strengths .expertise-heading h2 > span:first-child {
		display: block;
	}
	.page-body #price .fee-heading h2 {
		font-size: clamp(20px, 6.15vw, 24px);
		line-height: 1.6;
	}
	.page-body #price .fee-heading h2 > .text-unit {
		display: contents;
	}
	.page-body #price .fee-heading h2 > .text-unit > .mobile-unit:first-child {
		display: block;
	}
	.page-body #price .fee-heading h2 > .text-unit > .mobile-unit:last-child {
		display: inline;
	}
	.page-body #price .fee-heading-note {
		text-wrap: balance;
		margin-inline: -4px;
		font-size: clamp(12px, 3.5vw, 14px);
		line-height: 1.8;
	}
	.page-body .fee-recommendation-group h4 {
		white-space: nowrap;
		letter-spacing: -0.02em;
		font-size: clamp(14px, 4.4vw, 17px);
	}
	.page-body .fee-recommendation-group h4 > .mobile-unit {
		display: inline;
	}
	.page-body .fee-plan-service h4 {
		white-space: nowrap;
		font-size: clamp(14px, 4.6vw, 18px);
	}
	.page-body .fee-plan-service h4 > .mobile-unit {
		display: inline;
	}
	.page-body .fee-recommendations {
		padding-top: 36px;
	}
	.page-body .service-guide-content p br {
		display: none;
	}
	.page-body .flow-optional-heading h3 .mobile-unit {
		display: block;
	}
	.page-body .report-points li {
		text-align: left;
		text-wrap: pretty;
		justify-content: flex-start;
	}
	.page-body #sample .report-heading h2 {
		font-size: clamp(26px, 7.7vw, 30px);
		line-height: 1.5;
	}
	.page-body #sample .report-points {
		margin-top: 0;
	}
	.page-body #sample .longterm-previews {
		row-gap: 32px;
	}
	.page-body .diagnosis-cta-inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}
	.page-body .diagnosis-cta-label {
		text-wrap: balance;
		grid-area: 1/1;
	}
	.page-body .diagnosis-cta-copy h2 {
		text-align: center;
		grid-area: 2/1;
		font-size: 28px;
	}
	.page-body .diagnosis-cta-copy h2 > span {
		display: inline;
	}
	.page-body .diagnosis-cta-copy h2 span:first-child {
		white-space: nowrap;
	}
	.page-body .diagnosis-cta-sample {
		grid-area: 3/1;
		justify-self: center;
		width: 180px;
	}
	.page-body .diagnosis-cta-description {
		grid-area: 4/1;
	}
	.page-body .diagnosis-cta-actions {
		grid-area: 5/1;
	}
	.page-body .diagnosis-cta-note {
		white-space: nowrap;
		text-align: center;
		grid-area: 6/1;
		font-size: clamp(10px, 3.07vw, 12px);
		line-height: 1.7;
	}
	.page-body .estimate-cta-card .primary-button {
		white-space: nowrap;
		gap: 6px;
		padding-inline: 10px;
		font-size: 17px;
	}
	.page-body .fee-plan-price {
		flex-wrap: nowrap;
	}
	.page-body .fee-plan-price small {
		font-size: 12px;
		left: calc(100% + 6px);
	}
	.page-body #flow .flow-heading h2 {
		font-size: clamp(20px, 6.15vw, 24px);
		line-height: 1.6;
	}
	.page-body #flow .flow-review,
	.page-body #flow .flow-optional {
		padding-inline: 8px;
	}
	.page-body #flow #flow-optional-title {
		padding-inline: 10px;
		font-size: clamp(14px, 4.8vw, 18px);
	}
	.page-body #flow .flow-optional-heading p {
		font-size: clamp(11px, 3.35vw, 14px);
	}
	.page-body #flow .flow-request-line {
		white-space: nowrap;
	}
	.mobile-flow-note-break {
		display: initial;
	}
	.page-body #flow .quality-steps {
		grid-template-columns: 1fr;

		gap: 12px;
		margin-top: 22px;
	}
	.page-body #flow .quality-steps li {
		text-align: left;
		grid-template-rows: auto auto;
		grid-template-columns: 36px 44px minmax(0, 1fr);
		align-items: center;
		gap: 4px 10px;
		min-height: 94px;
		padding: 16px 12px;
		display: grid;
		box-shadow: 0 3px 10px #49424508;
	}
	.page-body #flow .quality-steps .step-no {
		border: 0;
		grid-area: 1/1/3;
		align-self: center;
		width: 36px;
		height: 36px;
		font-size: 14px;
		position: static;
	}
	.page-body #flow .quality-steps svg {
		grid-area: 1/2/3;
		align-self: center;
		width: 44px;
		height: 44px;
		margin: 0;
	}
	.page-body #flow .quality-steps h4 {
		text-align: left;
		text-wrap: pretty;
		grid-area: 1/3;
		min-height: 0;
		margin: 0;
		font-size: 16px;
		line-height: 1.5;
		display: block;
	}
	.page-body #flow .quality-steps p {
		text-align: left;
		grid-area: 2/3;
		margin: 0;
		font-size: 14px;
		line-height: 1.6;
	}
	.page-body #flow .quality-steps p > span {
		white-space: normal;
		display: block;
	}
}
@media (width<=360px) {
	.page-body .fee-plan-price small {
		font-size: 11px;
	}
	.page-body .fee-recommendation-group h4 {
		font-size: 14px;
	}
	.page-body .service-guide-content h2 {
		font-size: 19px;
	}
	.page-body .estimate-cta-card .primary-button {
		font-size: 15px;
	}
	.page-body #flow .quality-steps li {
		column-gap: 8px;
		padding-inline: 10px;
	}
	.page-body #flow .quality-steps h4 {
		font-size: 14px;
	}
	.page-body #flow .quality-steps p {
		font-size: 13px;
	}
}
@media (width<=760px) {
	html
		body
		:is(
			.hero__text,
			.hero__message > span,
			.worry-points li,
			.worry-bridge,
			.service-card p,
			.service-scope-note,
			.diagnosis-cta-description,
			.report-copy > p,
			.report-copy .callout > span,
			.expertise-grid p,
			.service-guide-content p,
			.case-outcome p,
			.fee-general-note,
			.fee-recommendations li,
			.fee-recommendations > p,
			.estimate-cta-copy p,
			#flow .quality-steps p,
			.faq-answer p,
			.faq-service-options li
		) {
		word-break: normal;
		overflow-wrap: break-word;
		line-break: auto;
		min-width: 0;
		max-width: 100%;
		white-space: normal !important;
		text-wrap: wrap !important;
	}
	html
		body
		:is(
			.hero__text,
			.hero__message > span,
			.worry-points li,
			.worry-bridge,
			.service-card p,
			.service-scope-note,
			.diagnosis-cta-description,
			.report-copy > p,
			.report-copy .callout > span,
			.expertise-grid p,
			.service-guide-content p,
			.case-outcome p,
			.fee-general-note,
			.fee-recommendations li,
			.fee-recommendations > p,
			.estimate-cta-copy p,
			#flow .quality-steps p,
			.faq-answer p,
			.faq-service-options li
		)
		:is(span, strong, em) {
		white-space: normal !important;
		text-wrap: wrap !important;
		display: inline !important;
	}
	html
		body
		:is(
			.hero__text,
			.hero__message > span,
			.service-card p,
			.service-scope-note,
			.diagnosis-cta-description,
			.report-copy > p,
			.report-copy .callout > span,
			.expertise-grid p,
			.service-guide-content p,
			.case-outcome p,
			.fee-general-note,
			.fee-recommendations > p,
			.estimate-cta-copy p,
			#flow .quality-steps p,
			.faq-answer p
		) {
		width: 100%;
	}
	html
		body
		:is(
			.hero__text,
			.hero__message > span,
			.service-card p,
			.service-scope-note,
			.diagnosis-cta-description,
			.report-copy > p,
			.report-copy .callout > span,
			.expertise-grid p,
			.service-guide-content p,
			.case-outcome p,
			.fee-general-note,
			.fee-recommendations > p,
			.estimate-cta-copy p,
			#flow .quality-steps p,
			.faq-answer p
		)
		br {
		display: none;
	}
}
html[data-reading-mode="expanded"]
	body
	:is(
		.mobile-keep,
		.mobile-unit,
		.text-unit,
		.strength-sentence-end,
		.flow-request-line,
		.fee-review-label,
		.trust-value,
		.diagnosis-cta-note,
		.diagnosis-cta-copy h2 span,
		.report-copy h2 span,
		.estimate-cta-card .primary-button,
		.fee-recommendation-group h4,
		.fee-plan-service h4
	) {
	overflow-wrap: anywhere;
	white-space: normal !important;
}
html[data-reading-mode="expanded"] body .mobile-unit {
	display: inline !important;
}
html[data-reading-mode="expanded"]
	body
	.fee-recommendations
	#fee-recommendations-title,
html[data-reading-mode="expanded"]
	body
	#flow
	:is(#flow-review-title, #flow-optional-title) {
	white-space: normal;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto 24px;
	position: static;
	transform: none;
}
html[data-reading-mode="expanded"] body .fee-plan-price {
	flex-wrap: wrap;
	gap: 4px 8px;
	width: 100%;
}
html[data-reading-mode="expanded"] body .fee-plan-price small {
	position: static;
}
html[data-reading-mode="expanded"] body .fee-plan-price strong {
	overflow-wrap: anywhere;
	min-width: 0;
	max-width: 100%;
}
html[data-reading-mode="expanded"] body .report-sample-link {
	text-align: center;
	flex-wrap: wrap;
	width: 100%;
	display: flex;
}
html[data-reading-mode="expanded"] body .report-sample-link svg {
	position: static;
	transform: none;
}
html[data-reading-mode="expanded"] body .hero__assurance li {
	min-width: 0;
}
html[data-reading-mode="expanded"] body .trust-value,
html[data-reading-mode="expanded"] body #flow .quality-steps h4 {
	overflow-wrap: anywhere;
}
html[data-reading-mode="expanded"] body .diagnosis-cta-note {
	text-wrap: wrap;
}
html[data-reading-mode="expanded"] body .breadcrumb {
	white-space: normal;
	overflow-wrap: anywhere;
	overflow: visible;
}
html[data-reading-mode="expanded"]
	body
	.worry-card
	:is(h3, .worry-points, .worry-points li) {
	white-space: normal;
	overflow-wrap: anywhere;
	min-width: 0;
	max-width: 100%;
}
