.flow-page,
		.flow-page .flow-main {
			overflow-x: clip;
		}

		.flow-page {
			background: #fff;
		}

		.flow-main {
			padding-top: 152px;
		}

		.flow-hero {
			position: relative;
			overflow: clip;
			padding: 80px 0 0;
		}

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

		.flow-hero::before {
			top: 30px;
			left: -174px;
			width: 418px;
			height: 418px;
			background: radial-gradient(circle at center, rgba(213, 239, 247, 0.96) 0%, rgba(234, 247, 240, 0.78) 100%);
		}

		.flow-hero::after {
			right: -126px;
			top: 316px;
			width: 310px;
			height: 310px;
			background: radial-gradient(circle at center, rgba(255, 242, 198, 0.68) 0%, rgba(255, 250, 238, 0.42) 100%);
		}

		.flow-process {
			position: relative;
			padding: 120px 0 0;
		}

		.flow-process-shell {
			max-width: 1080px;
			margin: 0 auto;
			padding: 0 60px;
		}

		.flow-process::after {
			left: -126px;
			bottom: -48px;
			width: 252px;
			height: 252px;
			background: radial-gradient(circle at center, rgba(214, 241, 249, 0.88) 0%, rgba(234, 247, 240, 0.3) 100%);
		}

		.flow-hero-copy,
		.flow-process .container,
		.flow-section .container,
		.flow-cta .container {
			position: relative;
			z-index: 1;
		}

		.about-bottom-cta .container {
			max-width: 76.5rem;
		}

		.flow-hero-copy {
			max-width: 960px;
			margin: 0 auto 80px;
		}

		.flow-page-label {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			margin-bottom: 24px;
			color: #5fb7e1;
			font-size: 18px;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.02em;
		}

		.flow-page-label::before {
			content: "";
			width: 8px;
			height: 8px;
			border-radius: 50%;
			background: #5fb7e1;
			flex: 0 0 auto;
		}

		.flow-page-title {
			margin: 0;
			color: #333;
			font-size: 40px;
			font-weight: 700;
			line-height: 1.5;
			letter-spacing: 0.04em;
		}

		.flow-hero-visual {
			position: relative;
			overflow: hidden;
			max-width: 1280px;
			margin: 0 auto;
			border-radius: 40px;
		}

		.flow-hero-visual img {
			display: block;
			width: 100%;
			aspect-ratio: 1280 / 380;
			object-fit: cover;
		}

		.flow-section {
			position: relative;
			padding: 160px 0;
		}

		.flow-section-header {
			margin-bottom: 72px;
		}

		.flow-process-header {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			max-width: none;
			width: fit-content;
			margin: 0 0 72px;
		}

		.flow-pricing-header,
		.flow-plan-header {
			display: grid;
			grid-template-columns: 160px minmax(0, 720px);
			align-items: start;
			column-gap: 80px;
			margin-bottom: 80px;
			padding: 0 40px;
		}

		.flow-plan-header-copy {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 16px;
		}

		.flow-plan-header-copy .flow-page-label {
			margin-bottom: 0;
		}

		.flow-pricing-header .flow-section-copy,
		.flow-plan-header .flow-section-copy {
			max-width: none;
			margin: 0;
		}

		.flow-section-title {
			margin: 0;
			color: #333;
			font-size: 32px;
			font-weight: 700;
			line-height: 1.5;
			letter-spacing: 0.04em;
			white-space: nowrap;
		}

		.flow-section-copy {
			max-width: 720px;
			margin: 0;
			color: #333;
			font-size: 16px;
			line-height: 2;
		}

		.flow-timeline {
			position: relative;
		}

		.flow-step {
			display: flex;
			align-items: flex-start;
			gap: 56px;
		}

		.flow-step + .flow-step {
			margin-top: 16px;
		}

		.flow-step-rail {
			display: flex;
			flex-direction: column;
			align-items: center;
			gap: 16px;
			flex: 0 0 80px;
		}

		.flow-step-number {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 80px;
			height: 80px;
			border-radius: 50%;
			background: #faf8f6;
			color: #333;
			font-size: 28px;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.04em;
		}

		.flow-step-line {
			width: 0;
			min-height: 64px;
			border-left: 2px dashed #dddddd;
			flex: 1 1 auto;
		}

		.flow-step-1 .flow-step-line,
		.flow-step-2 .flow-step-line {
			min-height: 128px;
			flex: 0 0 128px;
		}

		.flow-step-3 .flow-step-line,
		.flow-step-4 .flow-step-line {
			min-height: 64px;
			flex: 0 0 64px;
		}

		.flow-step:last-child .flow-step-line {
			display: none;
		}

		.flow-step-body {
			flex: 1 1 auto;
			padding-top: 4px;
			max-width: 51.5rem;
		}

		.flow-step-title {
			display: inline-flex;
			align-items: center;
			margin: 0 0 16px;
			padding-bottom: 12px;
			color: #333;
			font-size: 22px;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.02em;
			border-bottom: 2px dashed #dddddd;
		}

		.flow-step-copy {
			margin: 0;
			color: #333;
			font-size: 14px;
			line-height: 2;
			max-width: 100%;
		}

		.flow-step-copy p {
			margin: 0;
		}

		.flow-step-copy p + p,
		.flow-step-copy p + .flow-step-copy-accent,
		.flow-step-copy .flow-step-copy-accent + p {
			margin-top: 8px;
		}

		.flow-step-copy-accent {
			color: #5fb7e1;
			font-weight: 700;
		}

		.flow-step-action {
			margin-top: 16px;
		}

		.flow-step-action .btn {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			gap: 8px;
			width: fit-content;
			min-width: 0;
			min-height: 40px;
			padding: 12px 32px;
			border-radius: 12px;
			font-size: 16px;
			font-weight: 700;
			line-height: 1;
			white-space: nowrap;
		}

		.flow-certificate {
			padding-top: 120px;
			background: #fff;
		}

		.flow-certificate-shell {
			padding: 56px 64px;
			border-radius: 40px;
			background: #faf8f6;
		}

		.flow-inline-heading {
			margin: 0 0 12px;
			text-align: center;
			font-size: 26px;
			font-weight: 700;
			line-height: 1.5;
			letter-spacing: 0.08em;
		}

		.flow-inline-heading::before,
		.flow-inline-heading::after {
			content: "ー";
			display: inline-block;
			margin: 0 16px;
			font-weight: 400;
		}

		.flow-certificate-lead {
			max-width: none;
			margin: 0 auto 40px;
			text-align: center;
			font-size: 16px;
			line-height: 2;
		}

		.flow-certificate-grid {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 20px;
		}

		.flow-certificate-card {
			padding: 32px;
			border-radius: 16px;
			background: #fff;
		}

		.flow-certificate-card h3 {
			display: inline-flex;
			align-items: center;
			gap: 8px;
			margin: 0;
			font-size: 18px;
			font-weight: 700;
			line-height: 1;
		}

		.flow-certificate-card h3::before {
			content: "";
			width: 8px;
			height: 8px;
			border-radius: 50%;
			background: #5fb7e1;
			flex: 0 0 auto;
		}

		.flow-certificate-divider {
			margin: 16px 0;
			border-top: 1px solid #dddddd;
		}

		.flow-certificate-card p {
			margin: 0;
			font-size: 14px;
			line-height: 2;
		}

		.flow-certificate-card p + p {
			margin-top: 8px;
		}

		.flow-certificate-accent {
			color: #5fb7e1;
			font-weight: 700;
		}

		.flow-pricing {
			padding: 160px 0;
			background: #faf8f6;
			border-radius: 80px;
			overflow: hidden;
		}

		.flow-pricing .container {
			max-width: 1440px;
			padding-left: 200px;
			padding-right: 200px;
		}

		.flow-pricing-shell {
			max-width: 1040px;
			margin: 0 auto;
		}

		.flow-pricing-header {
			margin-bottom: 80px;
		}

		.flow-plan-header {
			max-width: 1040px;
			margin-left: auto;
			margin-right: auto;
		}

		.flow-pricing-panel {
			padding: 56px 64px;
			border-radius: 24px;
			background: #fff;
		}

		.flow-pricing-table {
			width: 100%;
			border-collapse: separate;
			border-spacing: 0;
			overflow: hidden;
			border-radius: 16px;
			background: #fff;
		}

		.flow-pricing-table thead th {
			padding: 16px 24px;
			background: #5fb7e1;
			color: #fff;
			font-size: 16px;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.04em;
			border-right: 1px solid #fff;
		}

		.flow-pricing-table thead th:last-child,
		.flow-pricing-table tbody td:last-child {
			text-align: center;
		}

		.flow-pricing-table thead th:last-child {
			border-right: 0;
		}

		.flow-pricing-table tbody td {
			padding: 28px 24px;
			border-bottom: 1px dashed #d9d9d9;
			font-size: 18px;
			line-height: 1.5;
			vertical-align: middle;
		}

		.flow-pricing-table tbody td:first-child {
			width: 50%;
			background: #faf8f6;
			font-weight: 500;
			letter-spacing: 0.04em;
		}

		.flow-pricing-table tbody td:last-child {
			width: 50%;
			color: #5fb7e1;
			font-weight: 700;
		}

		.flow-pricing-notes {
			display: flex;
			flex-direction: column;
			align-items: flex-end;
			gap: 4px;
			margin-top: 16px;
		}

		.flow-pricing-note {
			margin: 0;
			font-size: 13px;
			line-height: 2;
			color: #333;
			text-align: right;
		}

		.flow-pricing-note-link {
			color: inherit;
			text-decoration: underline;
			text-underline-offset: 0.15em;
		}

		.flow-plan-grid {
			max-width: 1040px;
			margin: 0 auto;
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			column-gap: 56px;
			row-gap: 32px;
		}

		.flow-plan-card {
			padding: 0;
			background: transparent;
		}

		.flow-plan-card:nth-child(even) {
			padding-top: 80px;
		}

		.flow-plan-photo {
			position: relative;
			overflow: hidden;
			border-radius: 32px;
			margin-bottom: 32px;
			height: 286px;
			background: #faf8f6;
		}

		.flow-plan-photo img {
			display: block;
			width: 100%;
			height: 100%;
			object-fit: cover;
		}

		.flow-plan-image-1 {
			object-position: 28% 30%;
		}

		.flow-plan-image-2 {
			object-position: 34% 38%;
		}

		.flow-plan-image-3 {
			object-position: 42% 36%;
		}

		.flow-plan-image-4 {
			object-position: 36% 28%;
		}

		.flow-plan-index {
			display: block;
			margin-bottom: 16px;
			color: #5fb7e1;
			font-size: 22px;
			font-weight: 700;
			line-height: 1;
			text-align: center;
		}

		.flow-plan-title {
			margin: 0 0 16px;
			font-size: 22px;
			font-weight: 700;
			line-height: 1;
			text-align: center;
			white-space: nowrap;
		}

		.flow-plan-copy {
			margin: 0;
			font-size: 14px;
			line-height: 2;
		}

		.flow-plans::after {
			right: -108px;
			top: 214px;
			width: 298px;
			height: 298px;
			background: radial-gradient(circle at center, rgba(255, 243, 209, 0.82) 0%, rgba(255, 250, 242, 0.28) 100%);
		}

		.about-bottom-cta {
			padding: 6.5rem 0 7.5rem;
			background: #fff;
		}

		.about-bottom-cta-panel {
			position: relative;
			overflow: visible;
			padding: 4.5rem 6.25rem 3.75rem;
			border-radius: 3rem;
			background: #faf8f6;
		}

		.about-bottom-cta-decor {
			position: absolute;
			inset: 0;
			z-index: 1;
			pointer-events: none;
		}

		.about-bottom-cta-bag,
		.about-bottom-cta-figure {
			position: absolute;
			pointer-events: none;
		}

		.about-bottom-cta-bubbles {
			position: absolute;
			top: 1rem;
			right: 8.6rem;
			z-index: 2;
			pointer-events: none;
		}

		.about-bottom-cta-bubble {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			padding: 0.45rem 0.9rem;
			border-radius: 999px;
			background: #ffea96;
			color: #333;
			font-size: 0.75rem;
			font-weight: 700;
			line-height: 1;
			white-space: nowrap;
		}

		.about-bottom-cta-bubble + .about-bottom-cta-bubble {
			margin-top: 0.35rem;
			margin-left: 2.8rem;
		}

		.about-bottom-cta-bag {
			left: 1rem;
			top: -2rem;
			width: 8.75rem;
		}

		.about-bottom-cta-figure {
			right: 2.5rem;
			top: 1.65rem;
			width: min(16.5rem, 24vw);
		}

		.about-bottom-cta-content {
			position: relative;
			z-index: 2;
			max-width: 50rem;
			margin: 0 auto;
			text-align: center;
		}

		.about-bottom-cta h2 {
			margin-bottom: 2rem;
			font-size: clamp(1.75rem, 1.4vw, 2.125rem);
			font-weight: 900;
			line-height: 1.25;
			letter-spacing: 0.04em;
		}

		.about-bottom-cta p {
			max-width: 39rem;
			margin: 0 auto 4rem;
			font-size: 1.125rem;
			line-height: 2.45;
			letter-spacing: 0.04em;
		}

		.about-bottom-actions {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 3rem;
			max-width: 100%;
			margin: 0 auto;
			position: relative;
			z-index: 2;
		}

		.about-bottom-actions .btn {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 1.5rem;
			width: 100%;
			min-height: 8rem;
			padding: 1.5rem 2.5rem;
			border-radius: 1.75rem;
			font-size: 1.35rem;
			font-weight: 900;
			line-height: 1.2;
			letter-spacing: 0.05em;
			box-shadow: none;
		}

		.about-bottom-actions .btn:hover {
			transform: translateY(-0.125rem);
		}

		.about-bottom-actions .btn img,
		.about-bottom-actions .btn svg {
			width: 1.875rem;
			height: 1.875rem;
			flex: 0 0 auto;
		}

		.about-bottom-action-icon {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 4.5rem;
			height: 4.5rem;
			border-radius: 50%;
			background: #fff;
			box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
		}

		.about-bottom-action-label {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			text-align: center;
		}

		.about-bottom-action-label-mobile {
			display: none;
		}

		.about-bottom-action-label-desktop {
			display: inline;
		}

		.about-btn-accent {
			background: #dd5c5c;
			border-color: #dd5c5c;
			color: #fff;
		}

		.about-btn-accent:hover {
			background: #c94f4f;
			border-color: #c94f4f;
			color: #fff;
		}

		.flow-btn-secondary {
			background: #e36c6c;
			border-color: #e36c6c;
			color: #fff;
		}

		.flow-btn-secondary:hover {
			background: #ce5f5f;
			border-color: #ce5f5f;
			color: #fff;
		}

		@media (max-width: 991.98px) {
			.flow-main {
				padding-top: 122px;
			}

			.flow-page-title {
				font-size: 36px;
			}

			.flow-pricing-header,
			.flow-plan-header {
				grid-template-columns: 1fr;
				row-gap: 18px;
				padding: 0;
			}

			.flow-certificate-grid,
			.flow-plan-grid {
				grid-template-columns: 1fr;
			}

			.about-bottom-cta-panel {
				padding: 8rem 3rem 3rem;
			}

			.about-bottom-cta-bag {
				left: 2rem;
				top: 1.5rem;
				width: 5rem;
			}

			.about-bottom-cta-figure {
				top: 1.5rem;
				right: 1.5rem;
				width: 10.5rem;
			}

			.about-bottom-cta-bubbles {
				right: 6.5rem;
				top: 1.2rem;
			}

			.about-bottom-cta-content {
				max-width: 41rem;
			}

			.about-bottom-actions {
				gap: 1rem;
			}

			.about-bottom-actions .btn {
				font-size: 1.25rem;
				padding: 1.25rem 1.5rem;
				gap: 1rem;
			}

			.about-bottom-action-icon {
				width: 3.5rem;
				height: 3.5rem;
			}

			.about-bottom-actions .btn img,
			.about-bottom-actions .btn svg {
				width: 1.5rem;
				height: 1.5rem;
			}
		}

		@media (max-width: 767.98px) {
			.flow-main {
				padding-top: 98px;
			}

			.flow-hero {
				padding: 56px 0 0;
			}

			.flow-hero::before {
				top: 18px;
				left: -102px;
				width: 252px;
				height: 252px;
			}

			.flow-hero::after,
			.flow-process::after,
			.flow-plans::after {
				display: none;
			}

			.flow-page-title {
				font-size: 28px;
				line-height: 1.3;
			}

			.flow-page-label {
				margin-bottom: 16px;
				font-size: 16px;
				letter-spacing: 0.02em;
			}

			.flow-hero-copy {
				max-width: none;
				margin-bottom: 56px;
			}

			.flow-hero-visual {
				border-radius: 24px;
			}

			.flow-hero-visual img {
				aspect-ratio: 327 / 180;
			}

			.flow-process,
			.flow-section {
				padding: 80px 0 0 0;
			}

			.flow-section-title {
				font-size: 26px;
				line-height: 1.5;
			}

			.flow-section-header {
				margin-bottom: 40px;
			}

			.flow-pricing-header,
			.flow-plan-header {
				row-gap: 16px;
				margin-bottom: 40px;
			}

			.flow-process-shell {
				padding: 0;
			}

			.flow-process-header {
				max-width: none;
				margin: 0 0 40px;
			}

			.flow-section-copy,
			.flow-step-copy,
			.flow-plan-copy {
				font-size: 14px;
				line-height: 2;
			}

			.flow-step + .flow-step {
				margin-top: 16px;
			}

			.flow-step {
				gap: 16px;
				align-items: stretch;
			}

			.flow-step-rail {
				flex-basis: 40px;
				gap: 16px;
			}

			.flow-step-number {
				width: 40px;
				height: 40px;
				font-size: 14px;
				background: #faf8f6;
			}

			.flow-step-line {
				min-height: 0;
				flex: 1 1 auto;
			}

			.flow-step-1 .flow-step-line,
			.flow-step-2 .flow-step-line,
			.flow-step-3 .flow-step-line,
			.flow-step-4 .flow-step-line {
				flex: 1 1 auto;
				min-height: 0;
			}

			.flow-step-title {
				margin: 0 0 12px;
				padding-bottom: 8px;
				font-size: 16px;
				line-height: 1.3;
			}

			.flow-step-action .btn {
				min-width: 0;
				width: auto;
				min-height: 36px;
				padding: 8px 16px;
				border-radius: 12px;
				font-size: 12px;
			}

			.flow-certificate {
				padding-top: 64px;
				padding-bottom: 64px;
			}

			.flow-certificate-shell {
				padding: 32px 24px;
				border-radius: 24px;
			}

			.flow-pricing {
				padding: 64px 0;
				border-radius: 24px;
			}

			.flow-pricing .container,
			.flow-plans .container,
			.about-bottom-cta .container {
				padding-left: 24px;
				padding-right: 24px;
			}

			.flow-pricing-shell {
				padding: 0;
				border-radius: 0;
			}

			.flow-inline-heading {
				margin-bottom: 10px;
				font-size: 20px;
			}

			.flow-inline-heading::before,
			.flow-inline-heading::after {
				margin: 0 8px;
			}

			.flow-certificate-lead {
				margin-bottom: 16px;
				font-size: 14px;
				line-height: 2;
			}

			.flow-certificate-grid {
				gap: 16px;
			}

			.flow-certificate-card {
				padding: 24px;
				border-radius: 16px;
			}


			.flow-certificate-card h3 {
				font-size: 16px;
			}

			.flow-certificate-card p {
				font-size: 14px;
				line-height: 2;
			}

			.flow-pricing-panel {
				padding: 16px;
				border-radius: 16px;
			}

			.flow-pricing-table thead th,
			.flow-pricing-table tbody td {
				padding: 14px 16px;
				font-size: 12px;
			}

			.flow-pricing-table thead th {
				font-size: 12px;
			}

			.flow-pricing-table tbody td:first-child {
				width: 58%;
			}

			.flow-pricing-table tbody td:last-child {
				width: 42%;
			}

			.flow-pricing-notes {
				text-align: left;
				align-items: start;
			}
			.flow-pricing-note {
				font-size: 12px;
				line-height: 2;
				text-align: left;
			}

			.flow-plan-grid {
				gap: 40px;
			}

			.flow-plan-card {
				padding: 0;
				border-radius: 0;
				background: transparent;
			}
			.flow-plan-card:nth-child(even) {
					padding-top: 0;
			}

			.flow-plan-photo {
				margin-bottom: 16px;
				border-radius: 16px;
			}

			.flow-plan-photo img {
				aspect-ratio: 327 / 190;
			}

			.flow-plan-index {
				display: block;
				margin: 0 0 16px;
				padding: 0;
				background: transparent;
				color: #5fb7e1;
				font-size: 22px;
				line-height: 1;
			}

			.flow-plan-title {
				margin: 0 0 16px;
				font-size: 22px;
				line-height: 1;
				text-align: center;
			}

			.flow-plan-copy {
				padding: 0;
			}

			.about-bottom-cta {
				padding-top: 3.75rem;
			}

			.about-bottom-cta-panel {
				display: flex;
				flex-direction: column;
				padding: 2rem 1rem 1rem;
				border-radius: 1.5rem;
			}

			.about-bottom-cta-content {
				order: 1;
				max-width: 18.4375rem;
				padding-top: 0;
			}

			.about-bottom-cta-decor {
				position: relative;
				inset: auto;
				order: 2;
				height: 11.5rem;
				margin-top: 2rem;
				margin-bottom: 1.5rem;
			}

			.about-bottom-cta-bag {
				left: 1.75rem;
				top: 1.5rem;
				bottom: auto;
				width: 5.5rem;
			}

			.about-bottom-cta-bubbles {
				right: 6.5rem;
				top: 1.2rem;
			}

			.about-bottom-cta-bubble {
				padding: 0.45rem 1rem;
				font-size: 0.875rem;
				border-radius: 999rem;
			}

			.about-bottom-cta-bubble + .about-bottom-cta-bubble {
				margin-top: -0.125rem;
				margin-left: 3rem;
			}

			.about-bottom-cta-figure {
				right: 2.25rem;
				top: 2rem;
				bottom: auto;
				width: min(11rem, 46.93vw);
				margin: 0;
			}

			.about-bottom-cta h2 {
				margin-bottom: 1rem;
				font-size: 1.75rem;
				line-height: 1.35;
			}

			.about-bottom-cta p {
				margin-bottom: 0;
				font-size: 0.875rem;
				line-height: 2;
			}

			.about-bottom-actions {
				order: 3;
				grid-template-columns: 1fr;
				gap: 1rem;
				margin-top: 0;
				width: 100%;
				max-width: none;
			}

			.about-bottom-actions .btn {
				min-height: 4.5rem;
				padding: 1.125rem 1.5rem;
				font-size: 1.1875rem;
				border-radius: 0.75rem;
				gap: 0.625rem;
			}

			.about-bottom-action-label-desktop {
				display: none;
			}

			.about-bottom-action-label-mobile {
				display: inline;
			}

			.about-bottom-action-icon {
				width: 2.5rem;
				height: 2.5rem;
			}

			.about-bottom-actions .btn img,
			.about-bottom-actions .btn svg {
				width: 1.125rem;
				height: 1.125rem;
			}
		}