:root {
	--red: #aa2228;
	--ink: #494245;
	--blush: #faf6f6;
	--line: #e6d6d7;
}
* {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
	scroll-padding-top: 24px;
}
body {
	margin: 0;
	font-family: "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
	color: var(--ink);
	font-size: 18px;
	line-height: 1.9;
	background: #fff;
}
h1,
h2,
h3,
p,
dl,
dd {
	margin: 0;
}
a {
	color: inherit;
	text-decoration: none;
}
a:hover {
	text-decoration: none;
}
a:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--red);
	outline-offset: 5px;
}
img {
	max-width: 100%;
	display: block;
}
#content {
	margin-top: 0;
}
#mainContent {
	padding-top: 0;
}
section {
    margin-bottom: 0 !important;
}
.wrap {
	max-width: 1120px;
	width: calc(100% - 48px);
	margin: auto;
	padding: 0;
}
.site-header {
	border-top: 4px solid var(--red);
	border-bottom: 1px solid #eee;
	background: #fff;
}
.header-inner {
	max-width: 1280px;
	margin: auto;
	padding: 18px 32px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}
.brand > span {
	font-size: 12px;
	display: block;
	letter-spacing: 0.04em;
}
.brand strong {
	font-size: 23px;
	line-height: 1.5;
	display: block;
}
.brand strong span {
	font-size: 30px;
	color: var(--red);
	margin-left: 3px;
}
.header-contact {
	border: 1px solid var(--red);
	color: var(--red);
	border-radius: 40px;
	padding: 10px 22px;
	font-size: 16px;
	font-weight: bold;
	white-space: nowrap;
}
.header-contact span {
	margin-left: 16px;
}
.breadcrumb {
	display: flex;
	gap: 12px;
	padding: 15px 0;
	font-size: 12px;
	color: #625b5e;
	flex-wrap: wrap;
}
.hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.hero-photo {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.hero-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 52%;
}
.hero:after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(
			90deg,
			#fff 4%,
			rgba(255, 255, 255, 0.96) 29%,
			rgba(255, 255, 255, 0.86) 44%,
			rgba(255, 255, 255, 0.24) 69%,
			rgba(255, 255, 255, 0.02)
		),
		linear-gradient(0deg, #fff, transparent 18%);
}
.hero-inner {
	padding: 54px 0 58px;
	min-height: 650px;
}
.hero-copy {
	max-width: 690px;
}
.eyebrow {
	font-size: 16px;
	font-weight: bold;
	letter-spacing: 0.07em;
	margin-bottom: 22px;
}
.trial-label {
	display: inline-block;
	background: var(--red);
	color: #fff;
	padding: 3px 17px;
	font-size: 18px;
	font-weight: bold;
	line-height: 1.8;
	letter-spacing: 0.08em;
}
.hero h1 {
	color: var(--red);
	font-size: clamp(38px, 4vw, 54px);
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: -0.045em;
	margin: 13px 0 24px;
}
.hero h1 span {
	display: block;
}
.tagline {
	font-weight: 800;
	font-size: 29px;
	line-height: 1.65;
	letter-spacing: -0.03em;
}
.tagline mark {
	color: inherit;
	background: linear-gradient(transparent 64%, #f4e6a4 64%);
}
.hero-lead {
	margin: 20px 0 26px;
	font-size: 17px;
	line-height: 1.9;
}
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 26px;
	min-height: 62px;
	padding: 14px 32px;
	border: 2px solid var(--red);
	border-radius: 999px;
	background: var(--red);
	color: #fff;
	box-shadow: 0 4px 0 #7e171d;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.4;
	transition:
		background 0.18s,
		color 0.18s,
		transform 0.18s;
}
.button span {
	font-size: 27px;
	line-height: 1;
}
.hero-note {
	font-size: 14px;
	margin-top: 16px;
}
.trust {
	border-block: 1px solid #e7e7e7;
}
.trust-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
.trust p {
	padding: 24px 12px;
	text-align: center;
	border-right: 1px solid #e7e7e7;
}
.trust p:first-child {
	border-left: 1px solid #e7e7e7;
}
.trust span {
	display: block;
	font-size: 13px;
}
.trust strong {
	display: block;
	font-size: 18px;
	color: var(--red);
	margin-top: 5px;
}
.section {
	padding: 86px 0;
}
.blush {
	background: var(--blush);
}
.section-heading {
	text-align: center;
	margin: 0 auto 42px;
	max-width: 880px;
}
.kicker {
	color: var(--red);
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 12px;
	letter-spacing: 0.04em;
}
h2 {
	font-size: 36px;
	line-height: 1.55;
	letter-spacing: 0.01em;
	font-weight: 800;
}
.section-heading:after {
	content: "";
	display: block;
	width: 84px;
	height: 2px;
	background: var(--red);
	margin: 23px auto 0;
}
.section-heading > p:last-of-type:not(.kicker) {
	margin-top: 16px;
	font-size: 17px;
}
.three-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.concerns article {
	background: white;
	border: 1px solid var(--line);
	border-radius: 18px;
	overflow: hidden;
	padding: 27px 26px 0;
	display: flex;
	flex-direction: column;
}
.phase {
	font-weight: bold;
	color: var(--red);
	font-size: 15px;
}
.concerns h3 {
	font-size: 27px;
	line-height: 1.5;
	margin: 14px 0 18px;
}
.concerns article > p {
	font-size: 17px;
	margin-bottom: 24px;
}
.advice {
	margin: auto -26px 0;
	padding: 23px 26px;
	background: #f6eded;
	border-top: 1px solid var(--line);
}
.advice > span {
	font-size: 14px;
	font-weight: bold;
	color: var(--red);
}
.advice > p {
	font-size: 17px;
	margin-top: 8px;
}
.section-footnote {
	font-size: 14px;
	margin-top: 24px;
	color: #625b5e;
}
.principles {
	max-width: 940px;
	margin: auto;
}
.principles article {
	display: flex;
	gap: 30px;
	padding: 27px 0;
	border-bottom: 1px solid var(--line);
}
.principles article:first-child {
	padding-top: 0;
}
.number {
	font-size: 34px;
	color: var(--red);
	line-height: 1.5;
	font-weight: 500;
}
.principles h3 {
	font-size: 23px;
	margin-bottom: 10px;
}
.principles p {
	font-size: 18px;
}
.case-list {
	display: grid;
	gap: 24px;
}
.case {
	display: grid;
	grid-template-columns: 0.85fr 1.3fr;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
}
.case-title {
	padding: 32px;
	border-right: 1px solid var(--line);
	background: #fffafa;
}
.case-title > span {
	font-size: 14px;
	color: var(--red);
	font-weight: bold;
}
.case h3 {
	font-size: 24px;
	line-height: 1.65;
	margin-top: 14px;
}
.case-body {
	padding: 30px 34px;
}
.case dl {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 14px;
	font-size: 16px;
}
.case dt {
	color: var(--red);
	font-weight: bold;
}
.result {
	font-weight: bold;
	font-size: 18px;
	padding-top: 16px;
	margin-top: 18px;
	border-top: 1px solid var(--line);
}
.price-panel {
	display: grid;
	grid-template-columns: 0.8fr 1.2fr;
	border: 2px solid var(--red);
	border-radius: 18px;
	overflow: hidden;
}
.price-main {
	padding: 36px;
	text-align: center;
	background: var(--blush);
}
.price-main h3 {
	font-size: 24px;
	line-height: 1.5;
	margin-top: 18px;
}
.price {
	color: var(--red);
	line-height: 1.2;
	margin: 12px 0;
	font-size: 26px;
	font-weight: bold;
}
.price strong {
	font-size: 86px;
	font-weight: 500;
	letter-spacing: -0.04em;
	margin-right: 6px;
}
.price-main > p:last-child {
	font-size: 17px;
}
.price-detail {
	padding: 36px;
}
.price-detail h3 {
	font-size: 22px;
	color: #fff;
}
.methods {
	display: flex;
	gap: 12px;
	margin: 20px 0;
}
.methods > span {
	flex: 1;
	text-align: center;
	background: var(--blush);
	padding: 12px 6px;
	font-size: 17px;
	font-weight: bold;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	line-height: 1.6;
}
.methods small {
	display: block;
	font-size: 14px;
	font-weight: normal;
}
.price-detail > p {
	font-size: 17px;
}
.paid-note {
	border-top: 1px solid var(--line);
	padding-top: 18px;
	margin-top: 24px;
}
.paid-note strong {
	font-size: 16px;
}
.paid-note p {
	font-size: 15px;
	margin-top: 6px;
}
.flow {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px;
	list-style: none;
	padding: 0;
	margin: 48px 0;
}
.flow li {
	position: relative;
	padding-left: 48px;
}
.step {
	position: absolute;
	left: 0;
	top: 0;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--red);
	color: white;
	display: grid;
	place-items: center;
	font-size: 16px;
	font-weight: bold;
}
.flow h3 {
	font-size: 21px;
	margin-bottom: 10px;
	line-height: 34px;
}
.flow p {
	font-size: 17px;
}
.area {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 28px;
	background: var(--blush);
	margin-bottom: 36px;
}
.area h3 {
	font-size: 18px;
}
.area p {
	font-size: 15px;
	margin-top: 4px;
}
.area > a {
	font-size: 15px;
	color: var(--red);
	font-weight: bold;
	white-space: nowrap;
	text-decoration: underline;
	text-underline-offset: 5px;
}
.center {
	text-align: center;
}
.narrow {
	max-width: 940px;
}
.faq-list {
	border-top: 1px solid var(--line);
}
details {
	border-bottom: 1px solid var(--line);
	background: white;
}
summary {
	list-style: none;
	cursor: pointer;
	font-size: 19px;
	font-weight: bold;
	position: relative;
	padding: 23px 60px 23px 58px;
}
summary::-webkit-details-marker {
	display: none;
}
summary:before {
	content: "Q";
	position: absolute;
	left: 24px;
	color: var(--red);
}
summary:after {
	content: "＋";
	position: absolute;
	right: 24px;
	color: var(--red);
}
details[open] summary:after {
	content: "−";
}
details > p {
	padding: 0 58px 25px;
	font-size: 17px;
}
.final-cta {
	text-align: center;
	padding: 80px 0;
	background: #fff;
}
.final-cta h2 {
	font-size: 34px;
}
.final-cta h2 + p {
	margin: 20px 0 27px;
	font-size: 18px;
}
.phone {
	margin-top: 32px;
	padding-top: 25px;
	border-top: 1px solid var(--line);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
}
.phone > span,
.phone small {
	font-size: 14px;
}
.phone > a {
	font-size: 27px;
	font-weight: bold;
	line-height: 1.5;
}
footer {
	padding: 38px 0;
	background: var(--blush);
	border-top: 1px solid var(--line);
}
footer strong {
	font-size: 20px;
}
footer p,
footer small {
	font-size: 13px;
}
.footer-links {
	display: flex;
	gap: 26px;
	font-size: 14px;
	margin: 20px 0;
}
.sp,
.mobile-cta {
	display: none;
}
.skip {
	position: absolute;
	left: 12px;
	top: -100px;
	z-index: 10;
	background: #fff;
	padding: 12px;
}
.skip:focus {
	top: 8px;
}
@media (hover: hover) {
	.button:hover {
		background: #fff;
		color: var(--red);
		transform: translateY(2px);
		box-shadow: 0 2px 0 #7e171d;
	}
	a:not(.button):hover {
		color: var(--red);
		text-decoration: underline;
		text-underline-offset: 4px;
	}
}
@media (max-width: 1000px) {
	.hero h1 {
		font-size: 46px;
	}
	.hero-copy {
		max-width: 610px;
	}
	.trust strong {
		font-size: 16px;
	}
	.concerns h3 {
		font-size: 24px;
	}
	.case h3 {
		font-size: 22px;
	}
	.area {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}
	.three-grid {
		gap: 18px;
	}
	.concerns article {
		padding-inline: 20px;
	}
	.advice {
		margin-inline: -20px;
		padding-inline: 20px;
	}
	.case-title {
		padding: 26px;
	}
	.price-detail {
		padding: 28px;
	}
}
@media (max-width: 760px) {
	body {
		font-size: 18px;
	}
	.wrap {
		width: calc(100% - 40px);
	}
	.header-inner {
		padding: 12px 20px;
	}
	.brand > span {
		font-size: 10px;
	}
	.brand strong {
		font-size: 18px;
	}
	.brand strong span {
		font-size: 24px;
	}
	.header-contact {
		display: none;
	}
	.breadcrumb {
		font-size: 10px;
		gap: 7px;
		padding: 12px 0;
		line-height: 1.6;
	}
	.hero-inner {
		padding: 29px 0 32px;
		min-height: 0;
	}
	.hero-photo img {
		object-position: 62% top;
	}
	.hero:after {
		background:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.96),
				rgba(255, 255, 255, 0.84) 53%,
				rgba(255, 255, 255, 0.28)
			),
			linear-gradient(
				0deg,
				#fff 0%,
				rgba(255, 255, 255, 0.9) 25%,
				transparent 68%
			);
	}
	.hero-copy {
		max-width: 100%;
	}
	.eyebrow {
		font-size: 13px;
		letter-spacing: 0;
		margin-bottom: 18px;
	}
	.trial-label {
		font-size: 16px;
		padding: 2px 13px;
	}
	.hero h1 {
		font-size: clamp(28px, 7.5vw, 46px);
		line-height: 1.4;
		margin: 12px 0 20px;
		letter-spacing: -0.055em;
	}
	.hero h1 span {
		white-space: nowrap;
	}
	.tagline {
		font-size: clamp(20px, 5.4vw, 30px);
		line-height: 1.7;
		letter-spacing: -0.055em;
	}
	.hero-lead {
		font-size: 17px;
		margin: 20px 0 25px;
		line-height: 1.9;
		max-width: 490px;
	}
	.pc {
		display: none;
	}
	.button {
		font-size: 18px;
		padding: 14px 20px;
		gap: 20px;
		min-height: 60px;
		width: 100%;
		max-width: 420px;
	}
	.hero-note {
		font-size: 13px;
		letter-spacing: -0.02em;
		text-align: center;
		max-width: 420px;
	}
	.trust-grid {
		width: 100%;
		grid-template-columns: 1fr 1fr;
	}
	.trust p {
		padding: 16px 5px;
	}
	.trust p:nth-child(-n + 2) {
		border-bottom: 1px solid #e7e7e7;
	}
	.trust p:first-child {
		border-left: 0;
	}
	.trust p:nth-child(2n) {
		border-right: 0;
	}
	.trust span {
		font-size: 12px;
	}
	.trust strong {
		font-size: 15px;
	}
	.section {
		padding: 58px 0;
	}
	.section-heading {
		margin-bottom: 30px;
	}
	.kicker {
		font-size: 14px;
		letter-spacing: 0;
	}
	h2 {
		font-size: 27px;
		line-height: 1.65;
		letter-spacing: -0.03em;
	}
	.section-heading > p:last-of-type:not(.kicker) {
		font-size: 16px;
		text-align: left;
	}
	.section-heading:after {
		margin-top: 19px;
		width: 64px;
	}
	.sp {
		display: block;
	}
	.three-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.concerns article {
		padding: 24px 24px 0;
	}
	.concerns h3 {
		font-size: 25px;
		margin: 10px 0 14px;
	}
	.concerns h3 br {
		display: none;
	}
	.concerns article > p {
		font-size: 18px;
	}
	.advice {
		margin-inline: -24px;
		padding: 20px 24px;
	}
	.advice > p {
		font-size: 18px;
	}
	.phase {
		font-size: 14px;
	}
	.section-footnote {
		font-size: 13px;
		margin-top: 18px;
	}
	.principles article {
		gap: 16px;
		padding: 23px 0;
	}
	.number {
		font-size: 27px;
	}
	.principles h3 {
		font-size: 20px;
		line-height: 1.65;
	}
	.principles p {
		font-size: 17px;
	}
	.case {
		grid-template-columns: 1fr;
	}
	.case-title {
		padding: 22px 24px;
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}
	.case h3 {
		font-size: 22px;
		margin-top: 10px;
	}
	.case-body {
		padding: 23px 24px;
	}
	.case dl {
		display: block;
		font-size: 17px;
	}
	.case dt {
		font-size: 14px;
		margin-bottom: 6px;
	}
	.case dd + dt {
		margin-top: 18px;
	}
	.result {
		font-size: 18px;
	}
	.price-panel {
		grid-template-columns: 1fr;
	}
	.price-main {
		padding: 28px 20px;
	}
	.price-main h3 {
		font-size: 23px;
	}
	.price strong {
		font-size: 76px;
	}
	.price-detail {
		padding: 25px 22px;
	}
	.price-detail h3 {
		font-size: 20px;
	}
	.methods {
		gap: 6px;
	}
	.methods > span {
		font-size: 15px;
	}
	.price-detail > p {
		font-size: 17px;
	}
	.paid-note p {
		font-size: 16px;
	}
	.flow {
		grid-template-columns: 1fr;
		gap: 28px;
		margin: 34px 0;
	}
	.flow li {
		padding-left: 48px;
	}
	.flow h3 {
		font-size: 20px;
		margin-bottom: 6px;
	}
	.flow p {
		font-size: 17px;
	}
	.area {
		padding: 22px;
		margin-bottom: 28px;
	}
	.area p {
		font-size: 16px;
	}
	.area > a {
		font-size: 14px;
		white-space: normal;
	}
	.faq-list summary {
		font-size: 17px;
		padding: 22px 40px 22px 39px;
		line-height: 1.8;
	}
	summary:before {
		left: 14px;
	}
	summary:after {
		right: 13px;
	}
	details > p {
		padding: 0 20px 24px;
		font-size: 17px;
	}
	.final-cta {
		padding: 56px 0;
	}
	.final-cta h2 {
		font-size: 25px;
		letter-spacing: -0.04em;
	}
	.final-cta h2 + p {
		font-size: 16px;
	}
	.phone {
		flex-direction: column;
		gap: 5px;
	}
	.phone > a {
		font-size: 28px;
	}
	footer {
		padding: 30px 0 112px;
	}
	.footer-links {
		gap: 18px;
		font-size: 13px;
		flex-wrap: wrap;
	}
	.mobile-cta {
		display: grid;
		grid-template-columns: 88px 1fr;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 5;
		background: rgba(255, 255, 255, 0.97);
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		border-top: 1px solid var(--line);
		gap: 8px;
		box-shadow: 0 -3px 15px #4942450d;
	}
	.mobile-cta a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		border: 1px solid var(--red);
		border-radius: 999px;
		color: var(--red);
		font-size: 14px;
		font-weight: bold;
		gap: 12px;
	}
	.mobile-cta a:last-child {
		background: var(--red);
		color: white;
	}
	.mobile-cta span {
		font-size: 23px;
	}
	.final-cta .hero-note {
		margin-inline: auto;
	}
	html {
		scroll-padding-bottom: 95px;
	}
}
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	.button {
		transition: none;
	}
}

/* FV: white panel with a bent edge and a soft fade into the photo. */
.download-band {
	padding: 60px 0;
	background: #b8202a;
}
.download-card {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: 38px;
	align-items: center;
	width: min(940px, calc(100% - 72px));
	margin: auto;
	padding: 34px 36px;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 22px 60px rgba(60, 15, 22, 0.38);
}
.download-visual {
	position: relative;
	border: 1px solid #efc2c5;
	border-radius: 12px;
	background: #fff6f6;
}
.download-visual > span {
	position: absolute;
	top: -13px;
	left: 20px;
	padding: 7px 13px;
	background: #cc3a4a;
	color: #fff;
	font-size: 12px;
	font-weight: 900;
}
.download-visual img {
	width: 100%;
	height: auto;
	padding: 22px 18px 12px;
}
.download-badge {
	display: inline-block;
	padding: 5px 13px;
	background: #cc3a4a;
	color: #fff;
	font-size: 12px;
	font-weight: 900;
}
.download-content h2 {
	margin: 12px 0 10px;
	color: #1e1c1c;
	font-size: 20px;
	font-weight: 900;
	line-height: 1.55;
	letter-spacing: 0;
}
.download-content p {
	font-size: 16px;
	line-height: 1.8;
	color: #494245;
}
.download-actions {
	display: flex;
	gap: 14px;
	margin-top: 20px;
}
.download-actions .button {
	flex: 1;
	min-width: 0;
	min-height: 66px;
	padding: 12px 18px;
	font-size: 17px;
	gap: 10px;
	white-space: nowrap;
}
.download-actions .button-outline {
	background: #fff;
	color: #cc3a4a;
	border-color: #cc3a4a;
}
@media (hover: hover) {
	.download-actions .button-outline:hover {
		background: #cc3a4a;
		color: #fff;
	}
}
@media (max-width: 1000px) {
	.download-card {
		grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.2fr);
		gap: 26px;
		padding: 30px 28px;
	}
	.download-actions {
		flex-wrap: wrap;
	}
	.download-actions .button {
		flex: 1 1 190px;
	}
}
@media (max-width: 760px) {
	.download-band {
		padding: 40px 0;
	}
	.download-card {
		width: calc(100% - 32px);
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 30px 22px;
	}
	.download-visual {
		width: 100%;
		max-width: 340px;
		margin: 12px auto 0;
	}
	.download-content h2 {
		font-size: 20px;
	}
	.download-actions {
		flex-direction: column;
		gap: 16px;
	}
	.download-actions .button {
		flex: auto;
		width: 100%;
		max-width: none;
		font-size: 17px;
		min-height: 62px;
	}
	.download-content p {
		font-size: 16px;
	}
}
.worries-heading h2 {
	font-size: clamp(28px, 4vw, 43px);
	color: #1e1c1c;
	font-weight: 900;
	letter-spacing: 0.01em;
	line-height: 1.45;
}
.worries-heading h2 span {
	color: #aa2228;
}
.worries-heading > p:last-of-type:not(.kicker) {
	margin-top: 24px;
	font-size: 17px;
	text-align: center;
	line-height: 1.8;
}
.worries-heading:after {
	background: #cc3a4a;
	margin-top: 24px;
}
.worry-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.worry-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #fff;
	border: 2px solid rgba(204, 58, 74, 0.45);
	border-radius: 28px;
	box-shadow: 0 5px 18px rgba(25, 31, 45, 0.08);
}
.worry-body {
	padding: 30px 24px 10px;
}
.worry-no {
	color: #cc3a4a;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.1em;
}
.worry-card h3 {
	margin-top: 12px;
	color: #1e1c1c;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.6;
	letter-spacing: -0.035em;
}
.worry-card mark {
	color: inherit;
	background: linear-gradient(transparent 62%, #f7d8dc 62%);
}
.worry-card ul {
	display: grid;
	gap: 16px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}
.worry-card li {
	position: relative;
	padding-left: 21px;
	color: #494245;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.75;
}
.worry-card li:before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	color: #cc3a4a;
	font-size: 18px;
	font-weight: 900;
}
.worry-card > img {
	width: calc(100% - 36px);
	height: auto;
	aspect-ratio: 4/3;
	object-fit: contain;
	margin: auto 18px 8px;
	background: white;
}
.capability-panel {
	padding: 54px 28px 32px;
	border-radius: 24px;
	background: #faf6f6;
}
.capability-heading {
	max-width: none;
	margin-bottom: 50px;
}
.capability-heading h2 {
	font-size: 32px;
	line-height: 1.5;
	color: #1e1c1c;
}
.capability-heading h2 span {
	color: #aa2228;
}
.capability-heading:after {
	display: none;
}
.capability-heading > p:last-of-type:not(.kicker) {
	font-size: 16px;
	line-height: 1.9;
	margin-top: 18px;
}
.capabilities-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
}
.capabilities-grid article {
	position: relative;
	padding: 38px 14px 25px;
	background: #fff;
	border: 1px solid #e2dddd;
	border-radius: 15px;
	box-shadow: 0 14px 32px rgba(73, 66, 69, 0.09);
}
.capability-no {
	position: absolute;
	top: -23px;
	left: 50%;
	transform: translateX(-50%);
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	background: #aa2228;
	border: 3px solid #fff;
	border-radius: 50%;
	color: #fff;
	font-size: 13px;
	font-weight: 800;
}
.capabilities-grid img {
	width: 170px;
	max-width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: contain;
	margin: 0 auto 14px;
}
.capabilities-grid h3 {
	font-size: 17px;
	line-height: 1.6;
	color: #1e1c1c;
	margin: 0 0 18px;
	text-align: center;
	letter-spacing: -0.04em;
	min-height: 55px;
}
.capabilities-grid p {
	font-size: 16px;
	line-height: 1.85;
	color: #302b2d;
	line-break: strict;
}
.capabilities-section {
	padding: 64px 0;
}
.capability-panel > .section-footnote {
	font-size: 13px;
	margin-top: 24px;
}
#reasons {
	border-top: 1px solid #eee;
	padding-top: 54px;
}
@media (max-width: 1000px) and (min-width: 761px) {
	.worry-body {
		padding: 24px 18px 10px;
	}
	.worry-card h3 {
		font-size: 18px;
	}
	.capabilities-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 40px 18px;
	}
	.capabilities-grid article {
		padding: 36px 18px 24px;
	}
	.capabilities-grid h3 {
		font-size: 18px;
	}
}
@media (max-width: 760px) {
	.worry-grid,
	.capabilities-grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}
	.worries-heading h2 {
		font-size: clamp(23px, 6.4vw, 32px);
		letter-spacing: -0.045em;
	}
	.worry-body {
		padding: 26px 24px 12px;
	}
	.worry-card h3 {
		font-size: 19px;
	}
	.worry-card li {
		font-size: 17px;
	}
	.worry-card > img {
		max-height: 290px;
	}
	.capabilities-grid article {
		padding: 26px;
	}
	.capabilities-grid h3 {
		font-size: 23px;
	}
	.capabilities-section {
		padding-bottom: 42px;
	}
	#reasons {
		padding-top: 42px;
	}
}
.button {
	background: #cc3a4a;
	border-color: #cc3a4a;
	box-shadow: 0 4px 0 #aa2228;
}
@media (max-width: 760px) {
	.capabilities-section {
		padding: 44px 0;
	}
	.capability-panel {
		padding: 34px 18px 26px;
		border-radius: 20px;
	}
	.capability-heading {
		margin-bottom: 45px;
	}
	.capability-heading h2 {
		font-size: 24px;
		line-height: 1.6;
	}
	.capability-heading > p:last-of-type:not(.kicker) {
		text-align: left;
		font-size: 16px;
	}
	.capabilities-grid {
		gap: 36px;
	}
	.capabilities-grid article {
		padding: 35px 22px 26px;
	}
	.capabilities-grid img {
		width: 148px;
		margin-bottom: 18px;
	}
	.capabilities-grid h3 {
		font-size: 21px;
		min-height: 0;
		margin-bottom: 16px;
	}
	.capabilities-grid p {
		font-size: 17px;
		line-height: 1.9;
	}
	.capability-panel > .section-footnote {
		font-size: 13px;
	}
}
.header-contact {
	border-color: #cc3a4a;
	color: #cc3a4a;
}
.mobile-cta a:last-child {
	background: #cc3a4a;
	border-color: #cc3a4a;
}
.trust {
	border-color: #cfcfcf;
	background: #fff;
}
.trust-item {
	padding: 26px 16px 24px;
	border-right: 1px solid #cfcfcf;
	text-align: center;
}
.trust-item:first-child {
	border-left: 1px solid #cfcfcf;
}
.trust .trust-item strong {
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: center;
	color: #1e1c1c;
	margin: 0;
}
.trust .trust-label {
	font-size: 12px;
	line-height: 1.4;
	color: #1e1c1c;
	font-weight: 800;
}
.trust .trust-value {
	font-size: 18px;
	line-height: 1.45;
	font-weight: 700;
	white-space: nowrap;
}
.trust .trust-accent {
	color: #aa2228;
}
.trust .trust-value .trust-accent {
	display: inline;
	font-size: inherit;
}
.trust-item small {
	display: block;
	margin-top: 7px;
	color: #5f5f5f;
	font-size: 13px;
	line-height: 1.6;
}
@media (max-width: 760px) {
	.trust-item {
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: 130px;
		padding: 18px 10px;
	}
	.trust-item:nth-child(-n + 2) {
		border-bottom: 1px solid #cfcfcf;
	}
	.trust-item:first-child {
		border-left: 0;
	}
	.trust-item:nth-child(2n) {
		border-right: 0;
	}
	.trust .trust-value {
		font-size: clamp(16px, 4.5vw, 18px);
	}
}
@media (hover: hover) {
	.button:hover {
		background: #fff;
		color: #cc3a4a;
		box-shadow: 0 2px 0 #aa2228;
	}
}
.hero-inner {
	position: relative;
}
.hero-actions {
	width: 620px;
	max-width: 100%;
	text-align: center;
}
.hero-actions .hero-note {
	justify-content: center;
	text-align: left;
}
.hero-card-wrap {
	position: absolute;
	right: 0;
	bottom: 54px;
	width: 360px;
}
@media (min-width: 1101px) {
	.hero-card-wrap {
		right: clamp(-56px, calc((1160px - 100vw) / 2), 0px);
	}
}
.hero-card {
	padding: 24px 26px 22px;
	border-top: 6px solid #aa2228;
	background: rgba(255, 255, 255, 0.97);
	box-shadow: 0 14px 36px rgba(73, 66, 69, 0.13);
}
.hero-card strong {
	display: block;
	color: #1e1c1c;
	font-size: 20px;
	line-height: 1.6;
	font-weight: 900;
}
.hero-card p {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid #e6cacc;
	color: #aa2228;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.7;
}
@media (min-width: 761px) and (max-width: 1100px) {
	.hero-card-wrap {
		position: relative;
		margin: 32px 0 0 auto;
		bottom: auto;
		right: auto;
	}
}
@media (max-width: 760px) {
	.hero-actions {
		width: 100%;
	}
	.hero-actions .hero-note {
		justify-content: flex-start;
	}
	.hero-card-wrap {
		position: relative;
		right: auto;
		bottom: auto;
		width: calc(100% + 40px);
		margin: 30px -20px -32px;
		padding: 54px 20px 28px;
		background:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.6),
				rgba(255, 255, 255, 0.1)
			),
			url("assets/hero-960.webp") center 64% / cover;
	}
	.hero-card {
		max-width: 360px;
		margin-left: auto;
		padding: 21px 22px;
	}
	.hero-card strong {
		font-size: 20px;
	}
}
.hero h1 {
	font-size: 64px;
	color: #aa2228;
	letter-spacing: -0.045em;
}
.hero .tagline {
	font-size: 34px;
	color: #1e1c1c;
	line-height: 1.65;
	letter-spacing: 0;
}
.hero .hero-note {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 20px;
	font-size: 16px;
	line-height: 1.8;
	margin-top: 20px;
}
.hero .hero-note > span {
	display: flex;
	align-items: baseline;
	gap: 6px;
}
.hero .hero-note b {
	color: #aa2228;
	font-weight: 900;
}
@media (min-width: 761px) {
	.hero-photo {
		left: calc(50% - 64px);
		clip-path: polygon(64px 0, 100% 0, 100% 100%, 0 100%, 64px 64%);
	}
	.hero-photo img {
		object-position: 67% center;
	}
	.hero-photo:after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.93) 0%,
			rgba(255, 255, 255, 0.62) 18%,
			rgba(255, 255, 255, 0.18) 48%,
			rgba(255, 255, 255, 0) 78%
		);
	}
	.hero:after {
		display: none;
	}
	.hero-copy {
		max-width: 700px;
	}
	.hero-inner {
		min-height: 680px;
	}
}
@media (min-width: 761px) and (max-width: 1100px) {
	.hero h1 {
		max-width: 650px;
		font-size: 64px;
	}
	.hero h1 span:last-child {
		max-width: 100%;
		overflow-wrap: anywhere;
	}
	.hero-photo {
		left: calc(55% - 64px);
	}
	.hero-photo:after {
		background: linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.97),
			rgba(255, 255, 255, 0.68) 55%,
			rgba(255, 255, 255, 0.2)
		);
	}
}
@media (max-width: 760px) {
	.hero h1 {
		font-size: clamp(28px, 7.5vw, 46px);
	}
	.hero .tagline {
		font-size: clamp(20px, 5.4vw, 30px);
	}
	.hero .hero-note {
		font-size: 14px;
		text-align: left;
		max-width: 420px;
		margin: 20px auto 0;
	}
}

/* Shared three strengths section. */
#reasons.strengths-section {
	background: #faf6f6;
	border: 0;
	padding: 44px 0 68px;
}
.strengths-heading {
	text-align: center;
	margin: 0 auto 44px;
}
.strengths-heading h2 {
	color: #1e1c1c;
	font-size: 42px;
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: 0.01em;
}
.strengths-heading h2 span {
	color: #b8202a;
}
.strengths-heading p {
	margin: 16px auto 0;
	font-size: 16px;
	line-height: 1.9;
	color: #1e1c1c;
}
.strengths-heading:after {
	content: "";
	display: block;
	width: 84px;
	height: 2px;
	margin: 18px auto 0;
	background: #cc3a4a;
}
.strengths-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.strengths-grid article {
	position: relative;
	padding: 6px 42px 10px;
}
.strengths-grid article + article:before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1px;
	background: #cfc7ca;
	transform: skew(-14deg);
	transform-origin: center;
}
.strength-no {
	color: #1e1c1c;
	font-family: Arial, sans-serif;
	font-size: 40px;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.04em;
}
.strengths-grid h3 {
	margin: 24px 0 14px;
	color: #1e1c1c;
	font-size: 19px;
	font-weight: 900;
	line-height: 1.65;
}
.strengths-grid em {
	margin-left: 0.12em;
	color: #b8202a;
	font-style: normal;
}
.strengths-grid h3 small {
	display: block;
	font-size: 1em;
	font-weight: 900;
}
.strengths-grid h3 small em {
	margin-left: 0;
}
.strengths-grid p {
	font-size: 15px;
	line-height: 1.9;
}
@media (max-width: 1000px) {
	.strengths-grid article {
		padding-inline: 22px;
	}
	.strengths-heading h2 {
		font-size: 36px;
	}
}
@media (max-width: 760px) {
	#reasons.strengths-section {
		padding: 44px 0 32px;
	}
	.strengths-heading {
		margin-bottom: 34px;
	}
	.strengths-heading h2 {
		font-size: 28px;
	}
	.strengths-heading h2 span {
		display: block;
	}
	.strengths-heading p {
		text-align: left;
		font-size: 16px;
	}
	.strengths-grid {
		grid-template-columns: 1fr;
	}
	.strengths-grid article {
		padding: 0 4px 28px;
	}
	.strengths-grid article + article {
		padding-top: 28px;
		border-top: 1px solid #cfc7ca;
	}
	.strengths-grid article + article:before {
		display: none;
	}
	.strengths-grid h3 {
		font-size: 20px;
		margin-top: 22px;
	}
	.strengths-grid p {
		font-size: 17px;
	}
}

/* Consultation examples: shared illustrated card treatment. */
.consultation-cases {
	background: #fff;
}
.consultation-heading {
	text-align: center;
	margin-bottom: 44px;
}
.consultation-heading h2 {
	color: #1e1c1c;
	font-size: 42px;
	line-height: 1.45;
	font-weight: 900;
}
.consultation-heading h2 span {
	color: #b8202a;
}
.consultation-heading p {
	margin-top: 18px;
	font-size: 16px;
	line-height: 1.9;
}
.consultation-heading:after {
	content: "";
	display: block;
	width: 84px;
	height: 2px;
	margin: 20px auto 0;
	background: #cc3a4a;
}
.consultation-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	padding: 40px 24px 24px;
	border-radius: 18px;
	background-color: #faf6f6;
	background-image: radial-gradient(#edcfd2 1px, transparent 1px);
	background-size: 10px 10px;
}
.consultation-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 24px;
	border: 1px solid #ccc;
	border-radius: 20px;
	background: #fff;
}
.consultation-tag {
	position: absolute;
	top: -16px;
	left: 50%;
	transform: translateX(-50%);
	white-space: nowrap;
	padding: 6px 13px;
	border: 1px solid #efb7be;
	border-radius: 4px;
	background: #fff6f6;
	color: #aa2228;
	font-size: 13px;
	font-weight: 700;
}
.consultation-visual {
	height: 192px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 6px 0 12px;
}
.consultation-visual img {
	width: 180px;
	height: 180px;
	object-fit: contain;
}
.consultation-card h3 {
	color: #1e1c1c;
	font-size: 20px;
	line-height: 1.6;
	margin: 0 0 20px;
	min-height: 64px;
}
.consultation-card h4 {
	margin: 0 0 12px;
	font-size: 13px;
	color: #aa2228;
	line-height: 1.6;
}
.consultation-card p {
	font-size: 16px;
	line-height: 1.85;
}
.consultation-worry {
	padding-bottom: 22px;
	border-bottom: 1px solid #ccc;
	margin-bottom: 18px;
	flex: 1;
}
.consultation-worry p {
	font-weight: 700;
	color: #1e1c1c;
}
.consultation-help {
	margin-bottom: 24px;
	min-height: 143px;
}
.consultation-result {
	border: 1px solid #cc3a4a;
	border-radius: 7px;
	overflow: hidden;
	background: #fff6f6;
}
.consultation-result h4 {
	padding: 8px 13px;
	margin: 0;
	background: #cc3a4a;
	color: white;
}
.consultation-result p {
	padding: 14px;
	color: #1e1c1c;
	font-weight: 700;
	min-height: 116px;
}
@media (max-width: 1000px) and (min-width: 761px) {
	.consultation-grid {
		gap: 16px;
		padding-inline: 16px;
	}
	.consultation-card {
		padding: 18px;
	}
	.consultation-tag {
		font-size: 11px;
		padding-inline: 8px;
	}
}
@media (max-width: 760px) {
	.consultation-heading h2 {
		font-size: 28px;
	}
	.consultation-heading p {
		font-size: 16px;
		text-align: left;
	}
	.consultation-grid {
		grid-template-columns: 1fr;
		gap: 36px;
		padding: 34px 14px 18px;
	}
	.consultation-card {
		padding: 24px 20px;
	}
	.consultation-visual {
		height: 180px;
	}
	.consultation-card h3 {
		min-height: 0;
		font-size: 21px;
	}
	.consultation-card p {
		font-size: 17px;
	}
	.consultation-help,
	.consultation-result p {
		min-height: 0;
	}
	.consultation-tag {
		font-size: 12px;
	}
	.consultation-heading {
		margin-bottom: 34px;
	}
}

/* Keep case content aligned without oversized empty areas. */
.consultation-card h3 {
	min-height: 32px;
	margin-bottom: 22px;
}
.consultation-help {
	min-height: 125px;
	margin-bottom: 18px;
}
.consultation-result p {
	min-height: 88px;
	padding: 14px;
}
@media (max-width: 1000px) and (min-width: 761px) {
	.consultation-card h3 {
		min-height: 64px;
	}
	.consultation-help {
		min-height: 0;
		flex: 1;
	}
	.consultation-result p {
		min-height: 116px;
	}
}
@media (max-width: 760px) {
	.consultation-card h3,
	.consultation-help,
	.consultation-result p {
		min-height: 0;
	}
	.consultation-help {
		margin-bottom: 20px;
	}
}

/* Shared award certificates below consultation examples. */
.awards-section {
	padding: 0 0 64px;
	background: #fff;
}
.awards-pattern {
	padding: 24px;
	border-radius: 18px;
	background-color: #faf6f6;
	background-image: radial-gradient(#edcfd2 1px, transparent 1px);
	background-size: 10px 10px;
}
.case-awards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	padding: 30px;
	border: 1px solid #d4cdd0;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 6px 18px #2d262808;
}
.case-award {
	min-width: 0;
}
.case-award__fig {
	margin: 0;
	padding: 10px;
	border: 2px solid #b08c3a;
	border-radius: 4px;
	background: #fff;
	box-shadow:
		inset 0 0 0 1px #b08c3a61,
		0 6px 18px #2d26281f;
}
.case-award__fig img {
	width: 100%;
	height: auto;
	aspect-ratio: 1.41;
	object-fit: contain;
}
.case-award__body {
	padding: 20px 4px 4px;
}
.case-award__label {
	display: inline-block;
	padding: 5px 14px;
	background: #cc3a4a;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
}
.case-award__label--thanks {
	background: #aa2228;
}
.case-award h3 {
	margin-top: 10px;
	color: #1e1c1c;
	font-size: 20px;
	line-height: 1.5;
}
.case-award__meta {
	margin-top: 12px;
	color: #1e1c1c;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.7;
	min-height: 55px;
}
.case-award__meta a {
	text-decoration: underline;
	text-decoration-color: #cc3a4a8c;
	text-underline-offset: 4px;
}
.case-award__text {
	margin-top: 22px;
	font-size: 16px;
	line-height: 1.8;
}
@media (max-width: 760px) {
	.awards-section {
		padding-bottom: 44px;
	}
	.awards-pattern {
		padding: 14px;
	}
	.case-awards {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 18px;
	}
	.case-award__fig {
		padding: 6px;
	}
	.case-award h3 {
		font-size: 20px;
	}
	.case-award__meta {
		min-height: 0;
	}
	.case-award__text {
		font-size: 17px;
		margin-top: 16px;
	}
}

.consultation-card h3 {
	text-align: center;
}
.consultation-heading h2 span {
	display: inline-block;
}

/* One continuous evidence area, with a clear note between examples and awards. */
.consultation-evidence {
	padding: 40px 24px 24px;
	border-radius: 18px;
	background-color: #faf6f6;
	background-image: radial-gradient(#edcfd2 1px, transparent 1px);
	background-size: 10px 10px;
}
.consultation-evidence .consultation-grid {
	padding: 0;
	background: none;
	border-radius: 0;
}
.consultation-evidence > .section-footnote {
	margin: 24px 0;
	padding: 15px 18px;
	border: 1px solid #e6d6d7;
	border-radius: 8px;
	background: #fff;
	color: #494245;
	font-size: 14px;
	line-height: 1.85;
}
.consultation-evidence .case-awards {
	margin: 0;
}
.case-award__meta {
	min-height: 0;
	margin-top: 12px;
	line-height: 1.8;
}
.award-date {
	display: block;
	white-space: nowrap;
}
.case-award__text {
	margin-top: 18px;
}
@media (max-width: 760px) {
	.consultation-evidence {
		padding: 34px 14px 18px;
	}
	.consultation-evidence > .section-footnote {
		font-size: 14px;
		padding: 14px;
		margin: 22px 0;
	}
	.case-award__meta {
		font-size: 15px;
	}
	.case-award__text {
		margin-top: 16px;
	}
	.case-awards {
		padding: 18px;
	}
}

.awards-heading {
	margin: 34px 0 24px;
	text-align: center;
	color: #1e1c1c;
	font-size: 30px;
	font-weight: 900;
	line-height: 1.6;
	letter-spacing: 0;
}
@media (max-width: 760px) {
	.awards-heading {
		margin: 28px 0 20px;
		font-size: 24px;
		line-height: 1.6;
	}
}

@media (min-width: 1100px) {
	.consultation-evidence > .section-footnote {
		font-size: 12px;
		white-space: nowrap;
		padding-inline: 14px;
		letter-spacing: -0.025em;
	}
}

#price .section-heading h2 {
	font-size: 43px;
	color: #1f1f1f;
}
#price .section-heading .price-intro {
	font-size: 17px;
	margin-top: 16px;
	text-align: center;
	line-height: 1.9;
}
@media (max-width: 760px) {
	#price .section-heading h2 {
		font-size: clamp(25px, 6.8vw, 43px);
	}
}

.consultation-evidence > .section-footnote {
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #1f1f1f;
	font-weight: 500;
}

.flow-form-link {
	color: #aa2228;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.area {
	flex-wrap: wrap;
}
.area .area-note {
	width: 100%;
	font-size: 16px;
	margin-top: 4px;
	line-height: 1.8;
}

#price .section-heading {
	max-width: none;
	width: 100%;
}
.price-free {
	color: #aa2228;
}
@media (min-width: 1100px) {
	#price .section-heading h2 {
		white-space: nowrap;
		letter-spacing: -0.03em;
	}
}
.trial-cta-zone {
	padding: 60px 0;
	background: #aa2228;
}
.trial-cta-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 38px;
	width: min(1000px, calc(100% - 48px));
	margin: auto;
	padding: 36px;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 20px 44px #55111733;
}
.trial-cta-label {
	display: inline-block;
	padding: 7px 14px;
	background: #aa2228;
	color: #fff;
	font-size: 13px;
	font-weight: 800;
}
.trial-cta-copy h2 {
	margin: 18px 0 24px;
	color: #1f1f1f;
	font-size: 20px;
	line-height: 1.7;
	letter-spacing: 0;
}
.trial-cta-copy p {
	font-size: 16px;
	line-height: 1.9;
}
.trial-cta-card > .button {
	font-size: 17px;
	padding: 18px 26px;
	white-space: nowrap;
}
@media (max-width: 1000px) {
	.trial-cta-card {
		grid-template-columns: 1fr;
		gap: 26px;
	}
	.trial-cta-card > .button {
		justify-self: center;
	}
}
@media (max-width: 760px) {
	.trial-cta-zone {
		padding: 40px 0;
	}
	.trial-cta-card {
		padding: 28px 22px;
	}
	.trial-cta-copy h2 {
		font-size: 21px;
	}
	.trial-cta-copy p {
		font-size: 17px;
	}
	.trial-cta-copy br {
		display: none;
	}
	.trial-cta-card > .button {
		white-space: normal;
		width: 100%;
		text-align: center;
		padding-inline: 16px;
	}
}

.area-note-inline {
	font-size: 16px;
}

.trial-cta-card > .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
}
.trial-cta-card > .button > span {
	margin: 0;
	font-size: 21px;
	line-height: 1;
}
@media (min-width: 1001px) {
	.trial-cta-card > .button {
		margin-right: 24px;
	}
}

/* Shared FAQ accordion style. */
#faq {
	padding: 64px 0;
	background: #faf6f6;
}
#faq .narrow {
	max-width: 900px;
}
#faq .section-heading {
	margin-bottom: 48px;
}
#faq h2 {
	font-size: 43px;
	color: #1f1f1f;
	font-weight: 900;
	line-height: 1.45;
}
#faq h2 span {
	color: #b8202a;
}
#faq .section-heading:after {
	width: 84px;
	margin-top: 22px;
	background: #cc3a4a;
}
#faq .faq-list {
	display: grid;
	gap: 14px;
	border: 0;
}
#faq details {
	margin: 0;
	border: 1px solid #ddd3d6;
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}
#faq summary {
	position: relative;
	display: block;
	list-style: none;
	margin: 0;
	min-height: 68px;
	padding: 20px 52px 20px 64px;
	color: #1f1f1f;
	font-size: 17px;
	font-weight: 700;
	line-height: 28px;
	cursor: pointer;
}
#faq summary:before {
	content: "Q";
	position: absolute;
	left: 18px;
	top: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #b8202a;
	color: #fff;
	font-family: Arial, sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
}
#faq summary:after {
	content: "";
	position: absolute;
	right: 20px;
	top: 28px;
	width: 0;
	height: 0;
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-top: 12px solid #b8202a;
	transform: none;
}
#faq details[open] summary:after {
	content: "";
	transform: rotate(180deg);
}
#faq details > p {
	margin: 0;
	padding: 0 52px 24px 64px;
	color: #494245;
	font-size: 17px;
	line-height: 1.9;
}
@media (max-width: 760px) {
	#faq {
		padding: 48px 0;
	}
	#faq h2 {
		font-size: 32px;
	}
	#faq .section-heading {
		margin-bottom: 32px;
	}
	#faq summary {
		padding: 18px 38px 18px 56px;
		font-size: 16px;
		line-height: 1.8;
	}
	#faq summary:before {
		left: 14px;
		top: 18px;
		width: 28px;
		height: 28px;
		font-size: 21px;
	}
	#faq summary:after {
		right: 14px;
		top: 27px;
		border-left-width: 6px;
		border-right-width: 6px;
		border-top-width: 10px;
	}
	#faq details > p {
		padding: 0 20px 22px;
		font-size: 17px;
	}
}

#price {
	background: #faf6f6;
}
#price .price-panel {
	background: #fff;
}
#price .price-main,
#price .methods > span,
#price .area {
	background: #575154;
	color: #fff;
}
#price .price-main .price {
	color: #fff;
}
#faq {
	background: #fff;
}

.trial-cta-card > .button {
	font-size: 18px;
	min-height: 74px;
	padding: 20px 30px;
}
@media (min-width: 1001px) {
	.trial-cta-card > .button {
		margin-right: 48px;
		min-width: 270px;
	}
}

#price .area {
	background: #fff;
	color: #494245;
	border: 1px solid #d9cdd0;
	border-radius: 10px;
}
#price .price-main .price strong {
	color: #ff4966;
	font-weight: 700;
}
#price .original-price {
	margin: 0 0 12px;
	color: #fff;
	font-size: 18px;
	line-height: 1.7;
}
#price .original-price s {
	text-decoration-thickness: 1px;
}

#price .price-main .trial-label {
	background: #ff4966;
}

#price .original-price {
	color: #ff4966;
}

#price .price-main {
	background: #fff;
	color: #494245;
}
#price .price-main .price,
#price .price-main .price strong,
#price .original-price {
	color: #aa2228;
}
#price .price-main .trial-label {
	background: #aa2228;
}
#price .price-detail {
	background: #575154;
	color: #fff;
}
#price .methods > span {
	background: #fff;
	color: #494245;
}
.service-guide {
	background: #faf6f6;
}
.service-guide .section-heading {
	max-width: none;
}
.service-guide h2 {
	font-size: 43px;
	color: #1f1f1f;
}
.service-guide h2 span {
	color: #b8202a;
	display: inline-block;
}
.service-table {
	width: 100%;
	border-spacing: 0;
	border: 1px solid #d4cdd0;
	border-radius: 18px;
	overflow: hidden;
	background: white;
	box-shadow: 0 6px 18px #2d26280d;
}
.service-table thead th {
	padding: 14px 22px;
	background: #494245;
	color: #fff;
	font-size: 15px;
	text-align: left;
}
.service-table tbody th,
.service-table td {
	padding: 20px 22px;
	border-bottom: 1px solid #d4cdd0;
	text-align: left;
	font-size: 17px;
	vertical-align: middle;
}
.service-table tbody th {
	position: relative;
	width: 46%;
	padding-left: 50px;
	color: #1f1f1f;
}
.service-table tbody th:before {
	content: "";
	position: absolute;
	left: 22px;
	top: 50%;
	transform: translateY(-50%);
	width: 14px;
	height: 14px;
	box-sizing: border-box;
	border: 3px solid #cc3a4a;
	border-radius: 50%;
}
.service-table tr:last-child th,
.service-table tr:last-child td {
	border-bottom: 0;
}
.service-table a {
	color: #aa2228;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 5px;
	text-decoration-color: #cc3a4a80;
}
.service-table a span {
	display: inline-block;
	margin-left: 6px;
}
.service-table .is-current {
	background: #fff4f5;
}
.service-table .is-current th:before {
	background: #cc3a4a;
}
.service-table strong {
	color: #1f1f1f;
}
.service-current-tag {
	display: inline-block;
	margin-left: 10px;
	padding: 5px 12px;
	border-radius: 99px;
	background: #cc3a4a;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}
@media (max-width: 760px) {
	.service-guide h2 {
		font-size: 28px;
	}
	.service-table,
	.service-table tbody,
	.service-table tr,
	.service-table tbody th,
	.service-table td {
		display: block;
		width: 100%;
	}
	.service-table thead {
		display: none;
	}
	.service-table tbody th {
		padding: 18px 18px 8px 40px;
		border-bottom: 0;
		font-size: 16px;
	}
	.service-table tbody th:before {
		left: 16px;
		top: 26px;
	}
	.service-table td {
		padding: 10px 18px 20px 40px;
		font-size: 16px;
	}
	.service-current-tag {
		margin: 8px 0 0;
		/*display: table;*/
	}
}

#faq details > p.faq-answer {
	position: relative;
	margin: 0 18px 20px;
	padding: 20px 20px 20px 46px;
	border-top: 1px solid #eadcde;
	background: #faf6f6;
	border-radius: 0 0 6px 6px;
	font-size: 17px;
	line-height: 1.9;
}
#faq .faq-answer:before {
	content: "A";
	position: absolute;
	left: 12px;
	top: 20px;
	color: #b8202a;
	font-family: Arial, sans-serif;
	font-weight: 700;
	font-size: 24px;
	line-height: 32px;
}
#faq .faq-answer a {
	display: inline-block;
	margin-top: 10px;
	color: #aa2228;
	text-decoration: underline;
	text-underline-offset: 4px;
	font-weight: 700;
}
@media (max-width: 760px) {
	#faq details > p.faq-answer {
		margin: 0 12px 16px;
		padding: 18px 14px 18px 40px;
	}
	#faq .faq-answer:before {
		left: 10px;
		top: 18px;
		font-size: 22px;
	}
}

.service-guide {
	background: #fff;
}
#faq {
	background: #faf6f6;
}
#faq details > p.faq-answer {
	margin: 0;
	padding: 0 24px 24px 58px;
	border: 0;
	border-radius: 0;
	background: transparent;
}
#faq .faq-answer:before {
	left: 18px;
	top: 2px;
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #1f1f1f;
	color: #fff;
	font-size: 18px;
	line-height: 1;
}
#faq summary {
	padding-left: 58px;
}
#faq summary:before {
	width: 28px;
	height: 28px;
	top: 20px;
	font-size: 22px;
	background: #cc3a4a;
}
@media (max-width: 760px) {
	#faq summary {
		padding-left: 52px;
	}
	#faq summary:before {
		left: 14px;
		top: 18px;
	}
	#faq details > p.faq-answer {
		margin: 0;
		padding: 0 18px 22px 52px;
	}
	#faq .faq-answer:before {
		left: 14px;
		top: 2px;
		font-size: 18px;
	}
}

/* Consistent CTA label and chevron spacing. */
.hero .hero-actions .hero-note {
	margin-top: 30px;
}
.button,
.download-actions .button,
.trial-cta-card > .button {
	align-items: center;
	justify-content: center;
	gap: 14px;
}
.button > span,
.trial-cta-card > .button > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	margin: 0;
	font-size: 21px;
	line-height: 1;
}
.mobile-cta a {
	gap: 14px;
}
.mobile-cta a > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	font-size: 21px;
	line-height: 1;
}

#price .paid-note > strong {
	display: block;
	font-size: 20px;
	line-height: 1.6;
	margin-bottom: 10px;
}

/* Mobile hero: show the repair scaffolding clearly without a repeated photo. */
@media (max-width: 760px) {
	.hero-card-wrap {
		display: none;
	}
	.hero-photo img {
		object-position: 58% center;
	}
	.hero:after {
		background:
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.88) 0%,
				rgba(255, 255, 255, 0.7) 42%,
				rgba(255, 255, 255, 0.22) 100%
			),
			linear-gradient(
				0deg,
				rgba(255, 255, 255, 0.94) 0%,
				rgba(255, 255, 255, 0.35) 22%,
				transparent 48%
			);
	}
}

@media (max-width: 760px) {
	.hero-card-wrap {
		display: block;
		position: relative;
		right: auto;
		bottom: auto;
		width: 100%;
		margin: 28px 0 0;
		padding: 0;
		background: none;
	}
	.hero-card {
		max-width: none;
		margin: 0;
		padding: 21px 22px;
		background: #fff;
	}
}
.hero-lead-mobile {
	display: none;
}
@media (max-width: 760px) {
	.hero-photo {
		height: 450px;
		bottom: auto;
	}
	.hero-photo img {
		object-position: 58% center;
	}
	.hero:after {
		background:
			linear-gradient(
				180deg,
				rgba(255, 255, 255, 0.38) 0px,
				rgba(255, 255, 255, 0.32) 180px,
				rgba(255, 255, 255, 0.52) 250px,
				#fff 370px
			),
			linear-gradient(
				90deg,
				rgba(255, 255, 255, 0.55),
				rgba(255, 255, 255, 0.05)
			);
	}
	.hero-lead-desktop {
		display: none;
	}
	.hero-lead-mobile {
		display: block;
	}
	.hero .hero-lead {
		color: #1f1f1f;
		font-size: 17px;
		line-height: 1.9;
		letter-spacing: -0.03em;
	}
	.hero .hero-actions .hero-note {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 12px;
		color: #1f1f1f;
		font-size: 17px;
		line-height: 1.8;
		text-align: center;
	}
	.hero .hero-note > span {
		display: block;
		white-space: normal;
		text-align: center;
	}
	.hero .hero-note b {
		color: #1f1f1f;
	}
}
@media (max-width: 360px) {
	.hero .hero-lead {
		font-size: 16px;
		letter-spacing: -0.055em;
	}
}
@media (max-width: 760px) {
	.hero .hero-lead {
		font-size: 18px;
		letter-spacing: -0.03em;
	}
}
@media (max-width: 360px) {
	.hero .hero-lead {
		letter-spacing: -0.07em;
	}
}
.case-carousel-nav {
	display: none;
}
@media (max-width: 760px) {
	.mobile-cta {
		grid-template-columns: 1fr 1fr;
		padding: 8px 12px calc(10px + env(safe-area-inset-bottom));
		gap: 8px;
	}
	.mobile-cta a {
		min-height: 50px;
		font-size: 16px;
		border: 2px solid #cc3a4a;
		color: #aa2228;
		background: #fff;
		box-shadow: 0 4px 0 #cc3a4a;
	}
	.mobile-cta a:last-child {
		background: #cc3a4a;
		color: #fff;
		box-shadow: 0 4px 0 #aa2228;
	}
	.consultation-evidence .consultation-grid {
		display: flex;
		gap: 16px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 4px;
		padding: 22px 4px 14px;
		margin: -22px -4px 0;
		scrollbar-width: none;
	}
	.consultation-grid::-webkit-scrollbar {
		display: none;
	}
	.consultation-grid > .consultation-card {
		flex: 0 0 calc(100% - 18px);
		min-width: 0;
		scroll-snap-align: start;
	}
	.case-carousel-nav {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 14px;
		margin-top: 12px;
	}
	.case-carousel-nav button {
		border: 1px solid #cc3a4a;
		border-radius: 50%;
		width: 40px;
		height: 40px;
		background: #fff;
		color: #aa2228;
		font-size: 24px;
		cursor: pointer;
	}
	.case-carousel-nav output {
		font-size: 15px;
		color: #494245;
		min-width: 45px;
		text-align: center;
	}
}
@media (max-width: 760px) {
	.case-carousel-nav {
		gap: 20px;
		margin-top: 14px;
	}
	.case-carousel-nav button {
		width: 104px;
		height: 56px;
		border: 2px solid #ccc;
		border-radius: 9px;
		background: #fff;
		color: #888;
		font-family: inherit;
		font-size: 18px;
		font-weight: 700;
		white-space: nowrap;
	}
	.case-carousel-nav button:last-child {
		border-color: #cc3a4a;
		background: #cc3a4a;
		color: #fff;
	}
	.case-carousel-nav output {
		min-width: 40px;
		color: #1f1f1f;
		font-size: 18px;
		font-weight: 700;
	}
	.case-carousel-nav output span {
		color: #aa2228;
	}
}
@media (max-width: 360px) {
	.case-carousel-nav {
		gap: 12px;
	}
	.case-carousel-nav button {
		width: 88px;
	}
}
/* Keep Japanese phrases together at responsive line breaks. */
h2,
h3,
summary {
	line-break: strict;
	text-wrap: balance;
}
p,
li {
	line-break: strict;
	text-wrap: wrap;
}

.heading-unit {
	display: inline;
}
@media (max-width: 760px) {
	.heading-unit {
		display: inline-block;
	}
	.heading-unit.heading-ink {
		color: #1f1f1f;
	}
	.capability-heading .heading-unit,
	.consultation-heading .heading-unit {
		display: block;
	}
	.capability-heading h2 > br {
		display: none;
	}
	.consultation-card h3 .heading-unit {
		display: block;
	}
	.consultation-card h3 {
		font-size: 20px;
	}
	.consultation-heading p br,
	.worries-heading p br,
	.case-award__meta br {
		display: none;
	}
	.consultation-heading p,
	.worries-heading p {
		text-wrap: wrap;
	}
	.awards-heading .heading-unit {
		display: block;
	}
	.case-award__body h3 {
		font-size: 18px;
	}
	.case-awards {
		padding: 18px 14px;
	}
	.trial-cta-copy h2 {
		text-wrap: balance;
	}
	#price .paid-note > strong {
		font-size: 20px;
	}
}
@media (max-width: 360px) {
	.consultation-evidence {
		padding-inline: 10px;
	}
	.consultation-grid > .consultation-card {
		flex-basis: 100%;
		padding-inline: 16px;
	}
	.consultation-card h3 {
		font-size: 18px;
	}
	.case-awards {
		padding-inline: 10px;
	}
	.case-award__body h3 {
		font-size: 17px;
		letter-spacing: -0.04em;
	}
	.capabilities-grid article {
		padding-inline: 18px;
	}
	.capabilities-grid h3 {
		font-size: 18px;
	}
	.strengths-heading h2 {
		font-size: 27px;
	}
	.trial-cta-card {
		padding-inline: 20px;
	}
}
@media (max-width: 760px) {
	.strengths-heading h2 .heading-unit {
		display: inline;
		color: #1f1f1f;
	}
	.service-guide h2 .heading-unit {
		display: block;
		color: #1f1f1f;
	}
	.worries-heading h2 > .heading-unit {
		color: #1f1f1f;
	}
	.trial-cta-copy h2 .heading-unit {
		text-wrap: nowrap;
	}
	.consultation-result p {
		text-wrap: wrap;
	}
	.case-award__meta {
		text-wrap: wrap;
	}
}
@media (max-width: 360px) {
	.trial-cta-copy h2 {
		font-size: 18px;
	}
	.strengths-heading h2 .heading-unit {
		display: inline-block;
	}
}
.capability-heading h2 .heading-ink,
.consultation-heading h2 .heading-ink,
.strengths-heading h2 .heading-ink,
.service-guide h2 .heading-ink,
.worries-heading h2 > .heading-unit {
	color: #1f1f1f;
}

/* Let left-aligned copy flow naturally; keep the requested mobile heading in two lines. */
summary {
	text-wrap: wrap;
}
@media (max-width: 760px) {
	#price .section-heading h2 {
		font-size: clamp(22px, 6.4vw, 36px);
		letter-spacing: -0.035em;
		line-height: 1.6;
		text-wrap: wrap;
	}
	#price .price-question-line {
		white-space: nowrap;
	}
}
@media (max-width: 760px) {
	.service-table tbody th:before {
		top: calc(18px + 0.95em);
	}
}
/* Readability and keyboard access for older readers. */
.trust .trust-label {
	font-size: 14px;
}
.trust-item small {
	font-size: 14px;
}
.hero-card p {
	font-size: 16px;
}
.strengths-grid p,
.paid-note p {
	font-size: 17px;
}
.consultation-card h4 {
	font-size: 15px;
}
.consultation-tag {
	font-size: 14px;
}
.download-badge,
.download-visual > span,
.case-award__label,
.trial-cta-label {
	font-size: 14px;
}
.case-award__meta,
#price .area p {
	font-size: 16px;
}
.case-carousel-nav button {
	color: #575154;
}
.case-carousel-nav button:disabled {
	background: #f6f6f6;
	color: #888;
	border-color: #ccc;
	cursor: default;
}
button:focus-visible,
.consultation-grid:focus-visible {
	outline: 3px solid #aa2228;
	outline-offset: 4px;
}
@media (max-width: 760px) {
	body {
		padding-bottom: calc(82px + env(safe-area-inset-bottom));
	}
	.eyebrow {
		font-size: 15px;
	}
	.trust-item {
		padding-inline: 6px;
	}
	.trust-item small {
		font-size: 14px;
	}
	.case-award__meta {
		font-size: 16px;
	}
	.hero-card p {
		font-size: 16px;
	}
	.consultation-card h4 {
		font-size: 15px;
	}
	.consultation-tag {
		font-size: 13px;
	}
}

/* Keep the desktop hero card detail on one line without reducing text size. */
@media (min-width: 761px) {
	.hero-card-wrap {
		width: 420px;
	}
}
