:root {
	--brand: #ffbd16;
	--brand-text: #946b00;
	--brand-dark: #004d99;
	--brand-light: #e6f0ff;
	--brand-accent: #bc1716;
	--navy: #063064;
	--navy-dark: #1a2744;
	--blue: #3173c4;
	--cta-blue: #0863f6;
	--green: #14b8a6;
	--red: #bc1716;
	--muted-bg: #f4f6fa;
	--foreground: #2b2b2b;
	--muted-foreground: #667085;
	--line: #e7edf7;
	--card: #fff;
	--card-border: #e5e7eb;
	--shadow: 0px 3px 6px rgba(23, 48, 90, 0.1);
	--radius: 16px;
	--max: 1080px;
	--max-wide: 1152px;
	--max-narrow: 768px;
	--number-font: "DIN Alternate", "DIN Condensed", "DIN 2014", "Arial Narrow", sans-serif;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

ul {
	padding-inline-start: 0;
	list-style-type: none;
	margin: 0;
}

body {
	margin: 0;
	font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "YuGothic", system-ui, sans-serif;
	color: var(--foreground);
	background: #fbfdff;
	letter-spacing: 0;
}

.page a {
	text-decoration: none;
}

.page {
	position: relative;
	overflow: hidden;
	min-height: 100vh;
	background: linear-gradient(180deg, #fff 0%, #fbfdff 38%, #fff 100%);
}

.page::before,
.page::after {
	content: "";
	position: absolute;
	z-index: 0;
	pointer-events: none;
	display: none;
}

.page::before {
	width: 560px;
	height: 360px;
	right: -160px;
	top: -110px;
	border-radius: 58% 42% 62% 38% / 44% 52% 48% 56%;
	background: #e6f1ff;
	transform: rotate(-14deg);
}

.page::after {
	width: 780px;
	height: 430px;
	left: -250px;
	top: 760px;
	border-radius: 66% 34% 45% 55% / 58% 44% 56% 42%;
	background: #e6f1ff;
	transform: rotate(-18deg);
}

.bg-mark {
	position: absolute;
	z-index: 1;
	pointer-events: none;
}

.dots {
	width: 76px;
	height: 76px;
	background-image: radial-gradient(circle, #cfe1ff 3px, transparent 3.4px);
	background-size: 18px 18px;
}

.dot-a {
	left: 3.4rem;
	top: 58rem;
}

.dot-b {
	right: 8rem;
	top: 5rem;
}

.dot-c {
	left: 2rem;
	top: 142rem;
}

.dot-d {
	right: 5rem;
	top: 108rem;
}

.dot-e {
	right: 8rem;
	top: 202rem;
}

.dot-f {
	left: 4rem;
	top: 292rem;
}

.dot-g {
	right: 4rem;
	top: 250rem;
}

.dot-h {
	left: 5rem;
	top: 358rem;
}

.dot-i {
	right: 9rem;
	top: 392rem;
}

.dot-j {
	left: 50%;
	top: 214rem;
}

.dot-k {
	right: 6rem;
	top: 146rem;
}

.bubble {
	border-radius: 999px;
	background: #d9ecff;
}

.bubble-a {
	width: 34px;
	height: 34px;
	right: 28rem;
	top: 8.2rem;
	background: #5689ff;
}

.bubble-b {
	width: 22px;
	height: 22px;
	right: 20rem;
	top: 59rem;
	background: #ffc520;
}

.bubble-c {
	width: 26px;
	height: 26px;
	left: 13rem;
	top: 128rem;
	background: #cbf0ed;
}

.bg-blob {
	z-index: 0;
	background: #e6f1ff;
	filter: blur(0.1px);
	display: none;
}

.ring-blob {
	z-index: 0;
	border-radius: 999px;
	background: #e6f1ff;
	filter: blur(0.1px);
	display: none;
}

.section-blob {
	/* biome-ignore lint/complexity/noImportantStyles: intentional hide override */
	display: none !important;
}

.ring-a {
	width: 980px;
	height: 360px;
	right: -420px;
	top: 2rem;
	transform: rotate(28deg);
}

.ring-b {
	width: 1040px;
	height: 370px;
	left: -460px;
	top: 138rem;
	transform: rotate(-24deg);
}

.ring-c {
	width: 1060px;
	height: 380px;
	right: -470px;
	top: 238rem;
	transform: rotate(25deg);
}

.ring-d {
	width: 980px;
	height: 350px;
	left: -450px;
	top: 312rem;
	transform: rotate(-25deg);
}

.ring-e {
	width: 940px;
	height: 340px;
	right: -430px;
	top: 382rem;
	transform: rotate(26deg);
}

.blob-a {
	width: 640px;
	height: 310px;
	right: -210px;
	top: 54rem;
	border-radius: 54% 46% 68% 32% / 47% 63% 37% 53%;
	transform: rotate(12deg);
}

.blob-b {
	width: 520px;
	height: 390px;
	left: -230px;
	top: 118rem;
	border-radius: 43% 57% 38% 62% / 58% 42% 58% 42%;
	transform: rotate(28deg);
}

.blob-c {
	width: 760px;
	height: 340px;
	right: -310px;
	top: 180rem;
	border-radius: 62% 38% 55% 45% / 44% 66% 34% 56%;
	transform: rotate(-16deg);
}

.blob-d {
	width: 580px;
	height: 330px;
	left: -220px;
	top: 246rem;
	border-radius: 60% 40% 42% 58% / 55% 38% 62% 45%;
	transform: rotate(19deg);
}

.blob-e {
	width: 430px;
	height: 360px;
	right: -130px;
	top: 124rem;
	border-radius: 58% 42% 51% 49% / 62% 55% 45% 38%;
	clip-path: path(
		"M210 14C310 8 407 76 421 172C436 280 348 357 226 357C104 357 15 294 9 187C3 83 101 20 210 14Z"
	);
	transform: rotate(-8deg);
}

.blob-f {
	width: 430px;
	height: 390px;
	left: -150px;
	top: 205rem;
	border-radius: 66% 34% 58% 42% / 72% 68% 32% 28%;
	transform: rotate(43deg) skew(-4deg, 2deg);
}

.color-dot {
	width: 14px;
	height: 14px;
	z-index: 1;
	border-radius: 50%;
}

.color-dot-a {
	right: 18%;
	top: 15rem;
	background: #0b75ff;
}

.color-dot-b {
	right: 11%;
	top: 19rem;
	background: #ffc61a;
}

.color-dot-c {
	right: 7%;
	top: 24rem;
	background: #ff625f;
}

.color-dot-d {
	left: 14%;
	top: 78rem;
	background: #ffc61a;
}

.color-dot-e {
	right: 15%;
	top: 118rem;
	background: #ff625f;
}

.color-dot-f {
	right: 9%;
	top: 174rem;
	background: #0b75ff;
}

.color-dot-g {
	left: 10%;
	top: 228rem;
	background: #ff8a3d;
}

.color-dot-h {
	right: 13%;
	top: 86rem;
	background: #ffc61a;
}

.color-dot-i {
	left: 8%;
	top: 154rem;
	background: #ff625f;
}

.color-dot-j {
	right: 18%;
	top: 244rem;
	background: #0b75ff;
}

.color-dot-k {
	right: 7%;
	top: 320rem;
	background: #ffc61a;
}

.color-dot-l {
	left: 18%;
	top: 340rem;
	background: #ff625f;
}

.section {
	position: relative;
	z-index: 2;
	max-width: var(--max);
	margin: 0 auto;
	padding: 0 16px;
}

.section + .section {
	margin-top: 160px;
}

.fv-hero + script + .section {
	margin-top: 160px;
}

.section + .section::before {
	content: "";
	position: absolute;
	top: -80px;
	left: 50%;
	width: 10vw;
	min-width: 72px;
	max-width: 160px;
	height: 1px;
	background: rgba(11, 117, 255, 0.52);
	transform: translateX(-50%);
}

.fv-hero + script + .section::before {
	content: "";
	position: absolute;
	top: -80px;
	left: 50%;
	width: 10vw;
	min-width: 72px;
	max-width: 160px;
	height: 1px;
	background: rgba(11, 117, 255, 0.52);
	transform: translateX(-50%);
}

@media (min-width: 640px) {
	.section {
		padding-left: 40px;
		padding-right: 40px;
	}
}

.nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding-top: 24px;
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-size: 28px;
	font-weight: 400;
	font-style: italic;
	white-space: nowrap;
}

.brand-mark {
	width: 42px;
	height: 22px;
	border: 5px solid #111522;
	transform: skewX(-20deg);
	display: inline-block;
}

.nav-links {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 52px);
	font-size: 16px;
	font-weight: 600;
	color: #111522;
}

.nav-cta {
	padding: 16px 28px;
	color: #fff;
	background: #171820;
	border-radius: 999px;
	font-weight: 600;
	box-shadow: var(--shadow);
	white-space: nowrap;
}

.hero {
	max-width: 1512px;
	min-height: 792px;
	padding-bottom: 96px;
}

.hero-grid {
	display: flex;
	align-items: center;
	gap: clamp(28px, 3vw, 48px);
	padding-top: 104px;
}

.hero-grid > div:first-child {
	flex: 0 0 48%;
}

.pill {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 8px 28px;
	color: var(--blue);
	border: 2px dashed var(--blue);
	border-radius: 999px;
	font-weight: 600;
	font-size: 18px;
	background: rgba(255, 255, 255, 0.74);
}

h1,
h2 {
	margin: 0;
	color: var(--navy-dark);
	font-weight: 600;
	line-height: 1.34;
}

h2 {
	font-size: 60px;
	line-height: 1.2;
	text-align: left;
}

h1 {
	margin-top: 26px;
	font-size: 52px;
	font-weight: 600;
	line-height: 1.5;
}

.line-keep {
	white-space: nowrap;
}

.hero-copy {
	max-width: 720px;
	margin: 28px 0 0;
	color: var(--foreground);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.85;
}

.hero-actions {
	display: block;
	margin-top: 38px;
	max-width: 430px;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex: 0 0 auto;
	min-width: 0;
	width: 100%;
	min-height: 68px;
	padding: 12px 18px 12px 34px;
	border-radius: 999px;
	color: #fff;
	font-size: 18px;
	font-weight: 600;
	box-shadow: var(--shadow);
}

.button.blue {
	background: linear-gradient(135deg, var(--cta-blue), #0b75ff);
}

.button.blue > span:first-child {
	color: #fff;
}

.button.coral {
	margin-top: 16px;
	background: linear-gradient(135deg, #ff7665, #f5503d);
	box-shadow: var(--shadow);
}

.button.white {
	color: #0b75ff;
	background: #fff;
	border: 1px solid rgba(206, 218, 236, 0.95);
	box-shadow: var(--shadow);
}

.button .circle {
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: currentColor;
	background: rgba(255, 255, 255, 0.96);
	flex: 0 0 auto;
}

.button > span:first-child {
	white-space: nowrap;
}

.button svg {
	width: 24px;
	height: 24px;
	stroke: currentColor;
	stroke-width: 2.8;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.button.blue .circle {
	color: var(--blue);
}

.button.coral .circle {
	color: var(--red);
}

.button.white .circle {
	color: #0b75ff;
	background: #fff;
}

.hero-visual {
	flex: 1 1 52%;
	min-height: 560px;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
}

.hero-photo {
	position: relative;
	min-height: 560px;
}

.hero-image {
	width: auto;
	height: 540px;
	display: block;
	filter: drop-shadow(0 20px 36px rgba(31, 47, 77, 0.1));
}

.feature-strip {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-top: 52px;
}

.mini-card {
	min-height: 140px;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 18px;
	padding: 28px 34px;
	border: 1px solid var(--card-border);
	border-radius: var(--radius);
	background: var(--card);
	box-shadow: var(--shadow);
	backdrop-filter: blur(16px);
}

.mini-tag {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--muted-bg);
	color: var(--navy);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.mini-card:nth-child(2) .mini-tag {
	color: var(--brand-accent);
}

.mini-card:nth-child(3) .mini-tag {
	color: #28a44a;
}

.mini-card strong {
	display: block;
	margin-top: 8px;
	font-size: 20px;
	font-weight: 600;
}

.mini-icon {
	width: 78px;
	height: 78px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #edf5ff;
	color: var(--blue);
}

.mini-card:nth-child(2) .mini-icon {
	background: #fff0ee;
	color: var(--red);
}

.mini-card:nth-child(3) .mini-icon {
	background: #effbf1;
	color: #27a44d;
}

.fv-container {
	width: min(1120px, calc(100% - 40px));
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}

.fv-mono,
.fv-editor-body {
	font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.fv-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(8px);
}

.fv-header-inner {
	display: flex;
	align-items: center;
	gap: 36px;
	height: 72px;
}

.fv-logo {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #15233f;
	font-size: 19px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.fv-logo-mark {
	width: 28px;
	height: 28px;
	display: grid;
	place-items: center;
	border-radius: 7px;
	background: #1d5fd0;
	color: #fff;
	font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 11px;
	font-weight: 600;
}

.fv-nav {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-left: auto;
}

.fv-nav a {
	color: #2b2b2b;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

.fv-nav a:hover {
	color: #1d5fd0;
}

.fv-nav-dot {
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: #c6cdd9;
	flex: 0 0 auto;
}

.fv-header-btns {
	display: flex;
	gap: 10px;
}

.fv-hbtn {
	padding: 10px 20px;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity 0.2s;
}

.fv-hbtn:hover {
	opacity: 0.85;
}

.fv-hbtn-fill {
	background: #1d5fd0;
	color: #fff;
}

.fv-hbtn-line {
	border: 1.5px solid #15233f;
	color: #15233f;
}

.fv-hero {
	max-width: none;
	padding: 0;
	overflow: hidden;
	position: relative;
	background: none;
}

.fv-hero::before {
	content: none;
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 18% 22%, #d7dbe2 0 1px, transparent 1.4px),
		radial-gradient(circle at 72% 64%, #e1e4ea 0 1px, transparent 1.4px),
		linear-gradient(135deg, transparent 0 48%, #d9dde5 49%, transparent 50%),
		repeating-linear-gradient(0deg, #f4f1ea 0 1px, #fff 1px 4px);
	background-size:
		11px 11px,
		13px 13px,
		38px 38px,
		100% 8px;
	opacity: 0.2;
}

.fv-hero-inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(660px, 1fr) 470px;
	gap: 18px;
	align-items: center;
	padding: 58px 0 64px;
}

.fv-hero-copy {
	max-width: 760px;
}

.fv-hero-badge {
	display: inline-block;
	margin-bottom: 20px;
	padding: 6px 18px;
	border: 1.5px solid #1d5fd0;
	border-radius: 999px;
	background: #fff;
	color: #1d5fd0;
	font-size: 12.5px;
	font-weight: 600;
}

.fv-hero h1 {
	margin: 0 0 22px;
	color: #15233f;
	font-size: 60px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.01em;
}

.fv-hl {
	color: #dd7b5e;
}

.fv-ai {
	color: #1d5fd0;
}

.fv-marker {
	padding: 0 2px;
	background: linear-gradient(transparent 68%, rgba(255, 193, 22, 0.55) 68%);
}

.fv-hero-lead {
	max-width: 520px;
	margin: 0 0 8px;
	color: #3c4250;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
}

.fv-hero-note {
	margin: 0 0 26px;
	color: #6b7280;
	font-size: 12px;
	line-height: 1.8;
}

.fv-hero-note strong {
	color: #1d5fd0;
	font-weight: 600;
}

.fv-checks {
	display: flex;
	gap: 24px;
	margin-bottom: 32px;
}

.fv-check-item {
	display: flex;
	align-items: center;
	gap: 9px;
}

.fv-check-icon {
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	border: 1.5px solid #dfe6f2;
	border-radius: 50%;
	background: #fff;
}

.fv-check-icon svg {
	width: 17px;
	height: 17px;
	stroke: #1d5fd0;
}

.fv-check-text {
	color: #15233f;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.55;
}

.fv-cta-group {
	display: flex;
	gap: 14px;
}

.fv-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 28px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition:
		transform 0.15s,
		box-shadow 0.15s;
	white-space: nowrap;
}

.fv-btn:active {
	transform: scale(0.98);
}

.fv-btn-primary {
	background: #ea5350;
	color: #fff;
	box-shadow: var(--shadow);
}

.fv-btn-primary:hover {
	box-shadow: var(--shadow);
}

.fv-btn-white {
	background: #356dce;
	color: #fff;
}

.fv-btn-white:hover {
	border-color: #1d5fd0;
	color: #fff;
	box-shadow: var(--shadow);
}

.fv-arrow {
	width: 22px;
	height: 22px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.22);
	flex: 0 0 auto;
}

.fv-btn-white .fv-arrow {
	background: rgba(255, 255, 255, 0.22);
}

.fv-hero-visual {
	position: relative;
	width: 650px;
	height: 470px;
	justify-self: start;
}

.fv-bubble {
	position: absolute;
	pointer-events: none;
}

.fv-b-pink,
.fv-b-yellow {
	border-radius: 8% 46% 46% 46%;
}

.fv-hv-blue {
	position: absolute;
	right: -38px;
	top: 48px;
	width: 430px;
	height: 430px;
	border-radius: 50px;
	background:
		radial-gradient(circle at 28% 26%, #2e73ff 0 18%, transparent 42%),
		linear-gradient(145deg, #0b4fd3 0%, #1d5fd0 42%, #4f91f6 100%);
	animation: fvBlueMorph 8.8s linear infinite;
	isolation: isolate;
	transform-origin: 58% 48%;
	will-change: border-radius, transform;
	backface-visibility: hidden;
}

.fv-hv-blue::before {
	content: "";
	position: absolute;
	inset: 7%;
	z-index: 1;
	width: 100%;
	height: 97%;
	border-radius: inherit;
	background: rgba(116, 169, 255, 0.5);
	transform: rotate(18deg) scaleX(-1) scale(0.96, 1.04);
	transform-origin: 45% 58%;
	pointer-events: none;
	mix-blend-mode: screen;
}

.fv-hv-blue::after {
	content: "";
	position: absolute;
	left: 11%;
	top: 5%;
	z-index: -1;
	width: 92%;
	height: 94%;
	border-radius: inherit;
	background: rgba(225, 240, 255, 0.58);
	transform: rotate(-16deg) scaleY(-1) scale(0.88, 1.02);
	transform-origin: 56% 42%;
	pointer-events: none;
	mix-blend-mode: screen;
}

.fv-hv-pink {
	right: 580px;
	top: 60px;
	width: 96px;
	height: 96px;
	background: #ea5350;
	z-index: 2;
}

.fv-hv-yellow-b {
	right: 580px;
	bottom: 215px;
	width: 125px;
	height: 125px;
	background: #ffc116;
	z-index: -1;
}

.fv-dots {
	position: absolute;
	background-image: radial-gradient(#9db4d8 1.7px, transparent 1.7px);
	background-size: 15px 15px;
}

.fv-dots-top {
	left: 50px;
	top: -6px;
	width: 120px;
	height: 66px;
}

.fv-dots-bottom {
	left: -14px;
	bottom: 36px;
	width: 90px;
	height: 60px;
}

.fv-laptop {
	position: absolute;
	left: 6px;
	top: 84px;
	z-index: 2;
	width: 540px;
	filter: drop-shadow(0 24px 30px rgba(22, 40, 76, 0.22));
}

.fv-laptop-screen {
	position: relative;
	padding: 16px 16px 18px;
	border: 8px solid #243047;
	border-bottom-width: 12px;
	border-radius: 22px 22px 12px 12px;
	background: linear-gradient(145deg, #2b354d, #151d31);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.07);
}

.fv-screen-inner {
	height: 270px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 10px;
	background: #0c1733;
}

.fv-editor-bar {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 9px 12px;
	background: rgba(255, 255, 255, 0.06);
	flex: 0 0 auto;
}

.fv-e-dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
}

.fv-e-dot:nth-child(1) {
	background: #ff5f57;
}

.fv-e-dot:nth-child(2) {
	background: #febc2e;
}

.fv-e-dot:nth-child(3) {
	background: #28c840;
}

.fv-editor-title {
	margin-left: 8px;
	color: #7d8db1;
	font-size: 10px;
}

.fv-editor-body {
	flex: 1;
	overflow: hidden;
	padding: 13px 15px;
	color: #eef4ff;
	font-size: 14px;
	line-height: 1.8;
	white-space: pre-wrap;
	word-break: break-all;
}

.fv-c-prompt {
	color: #7aa2ff;
}

.fv-c-str {
	color: #ffe08a;
}

.fv-c-check {
	color: #59e6aa;
}

.fv-caret {
	display: inline-block;
	width: 7px;
	height: 13px;
	background: #5f8bff;
	vertical-align: -2px;
	animation: fvBlink 1s step-end infinite;
}

.fv-laptop-base {
	position: relative;
	width: 118%;
	height: 28px;
	margin-left: -9%;
	border-radius: 0 0 38px 38px / 0 0 18px 18px;
	background: linear-gradient(180deg, #eef2f7 0%, #c9d1dd 62%, #aeb8ca 100%);
	box-shadow: inset 0 1px 0 #fff;
}

.fv-laptop-base::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: 20%;
	height: 8px;
	border-radius: 0 0 9px 9px;
	background: #97a2b6;
	transform: translateX(-50%);
}

@keyframes fvBlink {
	50% {
		opacity: 0;
	}
}

@keyframes fvBlueMorph {
	0% {
		border-radius: 48% 52% 53% 47% / 49% 48% 52% 51%;
		transform: translate3d(-2px, 1px, 0) rotate(0.35deg) scale(1.006, 0.994);
	}

	2.5% {
		border-radius: 49% 51% 53% 47% / 50% 49% 51% 50%;
		transform: translate3d(-1.5px, 1.5px, 0) rotate(0.45deg) scale(1.007, 0.995);
	}

	5% {
		border-radius: 50% 50% 52% 48% / 50% 49% 51% 50%;
		transform: translate3d(-1px, 2px, 0) rotate(0.5deg) scale(1.008, 0.996);
	}

	7.5% {
		border-radius: 51% 49% 52% 48% / 51% 50% 50% 49%;
		transform: translate3d(0, 1.8px, 0) rotate(0.45deg) scale(1.008, 0.997);
	}

	10% {
		border-radius: 52% 48% 51% 49% / 51% 50% 50% 49%;
		transform: translate3d(1px, 1.4px, 0) rotate(0.35deg) scale(1.007, 0.999);
	}

	12.5% {
		border-radius: 53% 47% 50% 50% / 51% 51% 49% 49%;
		transform: translate3d(1.5px, 0.5px, 0) rotate(0.15deg) scale(1.005, 1.001);
	}

	15% {
		border-radius: 53% 47% 49% 51% / 51% 52% 48% 49%;
		transform: translate3d(2px, -0.5px, 0) rotate(-0.05deg) scale(1.002, 1.003);
	}

	17.5% {
		border-radius: 53% 47% 49% 51% / 50% 53% 47% 50%;
		transform: translate3d(2.5px, -1px, 0) rotate(-0.25deg) scale(1, 1.005);
	}

	20% {
		border-radius: 52% 48% 48% 52% / 50% 53% 47% 50%;
		transform: translate3d(3px, -1.5px, 0) rotate(-0.35deg) scale(0.998, 1.006);
	}

	22.5% {
		border-radius: 52% 48% 48% 52% / 49% 53% 47% 51%;
		transform: translate3d(2.8px, -2px, 0) rotate(-0.5deg) scale(0.997, 1.007);
	}

	25% {
		border-radius: 52% 48% 47% 53% / 49% 54% 46% 51%;
		transform: translate3d(2.5px, -2.5px, 0) rotate(-0.65deg) scale(0.996, 1.008);
	}

	27.5% {
		border-radius: 51% 49% 47% 53% / 48% 53% 47% 52%;
		transform: translate3d(2px, -2.8px, 0) rotate(-0.55deg) scale(0.996, 1.008);
	}

	30% {
		border-radius: 50% 50% 47% 53% / 48% 53% 47% 52%;
		transform: translate3d(1.5px, -3px, 0) rotate(-0.45deg) scale(0.995, 1.008);
	}

	32.5% {
		border-radius: 49% 51% 47% 53% / 48% 52% 48% 52%;
		transform: translate3d(0.8px, -2.8px, 0) rotate(-0.25deg) scale(0.997, 1.007);
	}

	35% {
		border-radius: 48% 52% 48% 52% / 48% 52% 48% 52%;
		transform: translate3d(0, -2.5px, 0) rotate(-0.1deg) scale(0.998, 1.006);
	}

	37.5% {
		border-radius: 48% 52% 49% 51% / 49% 51% 49% 52%;
		transform: translate3d(-0.8px, -2px, 0) rotate(0.1deg) scale(1, 1.004);
	}

	40% {
		border-radius: 47% 53% 49% 51% / 49% 50% 50% 52%;
		transform: translate3d(-1.5px, -1.5px, 0) rotate(0.3deg) scale(1.001, 1.002);
	}

	42.5% {
		border-radius: 47% 53% 50% 50% / 49% 49% 51% 51%;
		transform: translate3d(-2px, -1px, 0) rotate(0.45deg) scale(1.004, 1);
	}

	45% {
		border-radius: 47% 53% 51% 49% / 50% 48% 52% 50%;
		transform: translate3d(-2.5px, -0.5px, 0) rotate(0.6deg) scale(1.006, 0.998);
	}

	47.5% {
		border-radius: 48% 52% 52% 48% / 51% 47% 53% 49%;
		transform: translate3d(-2.8px, 0.5px, 0) rotate(0.7deg) scale(1.007, 0.996);
	}

	50% {
		border-radius: 48% 52% 53% 47% / 51% 47% 53% 49%;
		transform: translate3d(-3px, 1px, 0) rotate(0.8deg) scale(1.008, 0.995);
	}

	52.5% {
		border-radius: 49% 51% 53% 47% / 52% 47% 53% 48%;
		transform: translate3d(-2.5px, 1.5px, 0) rotate(0.65deg) scale(1.007, 0.994);
	}

	55% {
		border-radius: 49% 51% 53% 47% / 52% 46% 54% 48%;
		transform: translate3d(-2px, 2px, 0) rotate(0.5deg) scale(1.006, 0.993);
	}

	57.5% {
		border-radius: 50% 50% 54% 46% / 52% 47% 53% 48%;
		transform: translate3d(-1px, 2.2px, 0) rotate(0.3deg) scale(1.004, 0.994);
	}

	60% {
		border-radius: 50% 50% 53% 47% / 52% 48% 52% 48%;
		transform: translate3d(0, 2.5px, 0) rotate(0.1deg) scale(1.002, 0.995);
	}

	62.5% {
		border-radius: 51% 49% 53% 47% / 52% 49% 51% 49%;
		transform: translate3d(0.8px, 2.2px, 0) rotate(-0.05deg) scale(1, 0.997);
	}

	65% {
		border-radius: 52% 48% 53% 47% / 51% 50% 50% 49%;
		transform: translate3d(1.5px, 2px, 0) rotate(-0.2deg) scale(0.999, 0.999);
	}

	67.5% {
		border-radius: 52% 48% 52% 48% / 51% 51% 49% 50%;
		transform: translate3d(2px, 1.5px, 0) rotate(-0.35deg) scale(0.998, 1.001);
	}

	70% {
		border-radius: 53% 47% 51% 49% / 50% 52% 48% 50%;
		transform: translate3d(2.5px, 1px, 0) rotate(-0.5deg) scale(0.997, 1.003);
	}

	72.5% {
		border-radius: 53% 47% 50% 50% / 50% 52% 48% 51%;
		transform: translate3d(2.8px, 0.2px, 0) rotate(-0.6deg) scale(0.996, 1.005);
	}

	75% {
		border-radius: 53% 47% 49% 51% / 49% 53% 47% 51%;
		transform: translate3d(3px, -0.5px, 0) rotate(-0.7deg) scale(0.995, 1.007);
	}

	77.5% {
		border-radius: 52% 48% 49% 51% / 49% 53% 47% 52%;
		transform: translate3d(2.5px, -1px, 0) rotate(-0.6deg) scale(0.996, 1.007);
	}

	80% {
		border-radius: 52% 48% 48% 52% / 48% 53% 47% 52%;
		transform: translate3d(2px, -1.5px, 0) rotate(-0.5deg) scale(0.997, 1.008);
	}

	82.5% {
		border-radius: 51% 49% 48% 52% / 48% 52% 48% 52%;
		transform: translate3d(1.2px, -1.8px, 0) rotate(-0.3deg) scale(0.999, 1.006);
	}

	85% {
		border-radius: 50% 50% 48% 52% / 48% 52% 48% 52%;
		transform: translate3d(0.5px, -2px, 0) rotate(-0.1deg) scale(1, 1.005);
	}

	87.5% {
		border-radius: 49% 51% 49% 51% / 48% 51% 49% 52%;
		transform: translate3d(-0.5px, -1.5px, 0) rotate(0.05deg) scale(1.002, 1.003);
	}

	90% {
		border-radius: 49% 51% 50% 50% / 48% 50% 50% 52%;
		transform: translate3d(-1.5px, -1px, 0) rotate(0.2deg) scale(1.004, 1);
	}

	92.5% {
		border-radius: 48% 52% 51% 49% / 48% 49% 51% 52%;
		transform: translate3d(-1.8px, -0.5px, 0) rotate(0.3deg) scale(1.005, 0.998);
	}

	95% {
		border-radius: 48% 52% 52% 48% / 49% 48% 52% 51%;
		transform: translate3d(-2px, 0, 0) rotate(0.4deg) scale(1.006, 0.996);
	}

	97.5% {
		border-radius: 48% 52% 53% 47% / 49% 47% 53% 51%;
		transform: translate3d(-2px, 0.5px, 0) rotate(0.38deg) scale(1.006, 0.995);
	}

	100% {
		border-radius: 48% 52% 53% 47% / 49% 48% 52% 51%;
		transform: translate3d(-2px, 1px, 0) rotate(0.35deg) scale(1.006, 0.994);
	}
}

@media (prefers-reduced-motion: reduce) {
	.fv-hv-blue,
	.fv-caret {
		animation: none;
	}
}

.section-label {
	display: block;
	width: 100%;
	margin-bottom: 8px;
	text-align: left;
	color: var(--blue);
	font-family: var(--number-font);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.fade-up {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 0.4s ease,
		transform 0.4s ease;
	will-change: opacity, transform;
}

.fade-up.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.problem {
	max-width: var(--max-wide);
	padding-top: 40px;
	padding-bottom: 40px;
}

.problem h2 {
	margin-top: 24px;
	font-size: 60px;
	line-height: 1.2;
}

.lead {
	margin: 22px 0 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.8;
	color: var(--foreground);
}

.problem-marker {
	padding: 0 2px 6px;
	background: linear-gradient(transparent 78%, var(--brand) 78%, var(--brand) 96%, transparent 96%);
}

.job-timeline {
	margin-top: 30px;
}

.job-track {
	display: flex;
	gap: 16px;
	margin: 0 -16px;
	padding: 6px 16px 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.job-track::-webkit-scrollbar {
	display: none;
}

.job-card {
	display: flex;
	flex-direction: column;
	flex: 0 0 min(76vw, 320px);
	scroll-snap-align: center;
	padding: 14px 18px 18px;
	border: 1px solid var(--card-border);
	border-radius: 20px;
	background: var(--card);
	box-shadow: var(--shadow);
}

.job-chip {
	align-self: flex-start;
	padding: 8px 24px;
	border-radius: 999px;
	background: var(--brand);
	color: var(--navy);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}

.job-illust {
	display: grid;
	place-items: center;
	padding: 8px 0 4px;
}

.job-illust img {
	width: 160px;
	height: auto;
}

.job-stage-label {
	align-self: center;
	padding: 3px 20px;
	border-radius: 999px;
	font-family: var(--number-font);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.6;
}

.job-stage-before {
	border: 1.5px solid var(--blue);
	color: var(--blue);
}

.job-stage-after {
	background: var(--cta-blue);
	color: #fff;
}

.job-before {
	margin: 8px 0 0;
	text-align: center;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.6;
}

.job-arrow {
	display: grid;
	place-items: center;
	margin: 10px 0;
	color: var(--cta-blue);
}

.job-arrow svg {
	width: 18px;
	height: 24px;
}

.job-after {
	margin: 8px 0 16px;
	text-align: center;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.job-outcome {
	margin-top: auto;
	padding: 10px 12px;
	border-radius: 14px;
	background: rgba(188, 23, 22, 0.07);
	color: var(--red);
	text-align: center;
	font-size: 25px;
	font-weight: 700;
}

.job-outcome-note {
	margin-left: 2px;
	font-size: 13px;
	font-weight: 500;
	vertical-align: super;
}

.job-note {
	max-width: 720px;
	margin: 14px auto 0;
	color: var(--muted-foreground);
	text-align: center;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.7;
}

.job-dots {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 8px;
}

.job-dot {
	width: 11px;
	height: 11px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #c6d7f2;
	cursor: pointer;
	transition:
		background 0.2s ease,
		transform 0.2s ease;
}

.job-dot.is-active {
	background: var(--cta-blue);
	transform: scale(1.25);
}

.job-swipe-hint {
	width: fit-content;
	margin: 0 auto;
	color: var(--cta-blue);
	font-size: 14px;
	font-weight: 600;
}

@media (min-width: 721px) {
	.job-track {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 20px;
		margin: 0;
		padding: 6px 0 0;
		overflow: visible;
	}

	.job-card {
		flex: none;
	}

	.job-swipe-hint,
	.job-dots {
		display: none;
	}
}

.solution {
	max-width: 1512px;
	padding-top: 92px;
	padding-bottom: 116px;
	text-align: left;
}

.solution h2 {
	max-width: 980px;
	margin: 26px 0 0;
	font-size: 60px;
	line-height: 1.2;
	color: #0f1d33;
	text-align: left;
}

.solution .lead {
	max-width: var(--max-narrow);
	margin-left: 0;
	margin-right: 0;
	text-align: left;
}

@media (min-width: 640px) {
	.problem {
		padding-top: 80px;
		padding-bottom: 80px;
	}
}

.compare {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 0.93fr) 78px minmax(0, 1.07fr);
	align-items: center;
	gap: 18px;
	margin-top: 54px;
	text-align: left;
}

.compare-card {
	overflow: hidden;
	position: relative;
	z-index: 1;
	isolation: isolate;
	border: 0;
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--shadow);
	backdrop-filter: blur(14px);
}

.compare-card > * {
	position: relative;
	z-index: 1;
}

.compare-card header {
	min-height: 80px;
	display: grid;
	place-items: center;
	padding: 18px;
	color: #fff;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.before header {
	background: linear-gradient(135deg, #64686b, #484d50);
}

.after header {
	background: #ea5350;
}

.compare-card.after::before,
.compare-card.after::after {
	content: none;
}

.compare-after-wrap {
	position: relative;
	z-index: 1;
}

.compare-after-wrap .compare-card {
	position: relative;
	z-index: 1;
}

.compare-after-deco {
	content: "";
	position: absolute;
	z-index: 0;
	pointer-events: none;
}

.compare-after-deco-blue {
	right: -104px;
	top: -109px;
	width: 220px;
	height: 220px;
	background: radial-gradient(circle at 42% 62%, #356dce 0 86px, transparent 87px);
}

.compare-after-deco-yellow {
	left: -58px;
	bottom: -58px;
	width: 142px;
	height: 142px;
	border-radius: 8% 46% 46% 46%;
	background: #ffc116;
}

.compare-body {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(168px, 0.72fr);
	align-items: end;
	padding: 20px 32px 26px;
	min-height: 395px;
}

.compare-list {
	display: grid;
	gap: 0;
}

.compare-list li {
	list-style: none;
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	min-height: 64px;
	border-bottom: 1px dashed #d7dee9;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
}

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

.muted-icon,
.check-icon {
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	flex: 0 0 auto;
}

.muted-icon {
	background: #edf0f4;
	color: #6c737c;
}

.check-icon {
	background: var(--green);
	color: #fff;
}

.arrow {
	position: relative;
	z-index: 1;
	width: 50px;
	height: 50px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: #fff;
	background: linear-gradient(135deg, #0a76ff, #0849d9);
	box-shadow: var(--shadow);
}

.arrow svg {
	width: 35px;
	height: 35px;
	stroke: currentColor;
	stroke-width: 2.4;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.compare-person {
	display: block;
	width: 100%;
	height: auto;
	justify-self: end;
	align-self: end;
	object-fit: contain;
	pointer-events: none;
}

.before-person {
	max-width: 250px;
	margin-bottom: -4px;
}

.after-person {
	max-width: 258px;
	margin-bottom: -2px;
}

.spark {
	color: #f9c11b;
}

.integrations {
	position: relative;
	max-width: 1440px;
	display: block;
	padding-top: 112px;
	padding-bottom: 120px;
}

.integrations-copy {
	position: relative;
	z-index: 1;
	width: 100%;
	min-width: 0;
}

.integration-orb {
	position: absolute;
	display: block;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}

.integration-orb-blue {
	right: calc((100vw - 100%) / -2 - 150px);
	bottom: -270px;
	width: 260px;
	height: 260px;
	background: #356dce;
}

.integration-orb-yellow {
	left: calc((100vw - 100%) / -2 - 80px);
	bottom: 96px;
	width: 156px;
	height: 156px;
	background: #ffc116;
}

.integration-orb-red {
	right: calc((100vw - 100%) / -2 - 74px);
	bottom: -48px;
	width: 112px;
	height: 112px;
	background: #ea5350;
}

.integrations h2 {
	margin: 26px 0 0;
	color: #0f1d33;
	font-size: 60px;
	line-height: 1.32;
	font-weight: 600;
}

.why-us h2 {
	margin: 26px 0 0;
	color: #0f1d33;
	font-size: 60px;
	line-height: 1.35;
	font-weight: 600;
}

.tool-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: 48px auto 0;
	max-width: 1000px;
}

.tool-card {
	min-height: 112px;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 21px 18px;
	border: 1px solid rgba(214, 224, 240, 0.9);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0px 3px 5px rgba(23, 48, 90, 0.1);
}

.tool-card strong {
	display: block;
	color: #11182b;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.45;
}

.tool-card p {
	margin: 4px 0 0;
	color: #2e374a;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.45;
}

.tool-logo {
	position: relative;
	width: 50px;
	height: 50px;
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	border-radius: 10px;
	color: #111;
	font-size: 26px;
	font-weight: 600;
}

.simple-icon-logo {
	background: #fff;
	color: var(--simple-icon-color, #0b75ff);
}

.simple-icon-logo svg {
	width: 31px;
	height: 31px;
	display: block;
	fill: currentColor;
}

.cdn-icon-logo {
	background: #fff;
	overflow: hidden;
}

.cdn-icon-logo img {
	width: 31px;
	height: 31px;
	display: block;
	object-fit: contain;
}

.line-tool-logo {
	background: transparent;
	color: #0b75ff;
}

.line-tool-logo svg {
	width: 34px;
	height: 34px;
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-width: 3.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.slack-logo {
	background:
		radial-gradient(circle at 33% 21%, #36c5f0 0 5px, transparent 5.4px),
		radial-gradient(circle at 68% 33%, #2eb67d 0 5px, transparent 5.4px),
		radial-gradient(circle at 33% 67%, #e01e5a 0 5px, transparent 5.4px),
		radial-gradient(circle at 68% 79%, #ecb22e 0 5px, transparent 5.4px);
}

.notion-logo {
	background: #fff;
	border: 2px solid #111;
	font-family: Georgia, serif;
	box-shadow: inset 0 0 0 2px #fff;
}

.sheets-logo,
.excel-logo {
	color: #fff;
	background: linear-gradient(135deg, #16a05d, #0b8f4e);
}

.sheets-logo::before {
	content: "";
	width: 22px;
	height: 26px;
	border-radius: 3px;
	background:
		linear-gradient(#fff 0 0) 6px 8px / 11px 2px no-repeat,
		linear-gradient(#fff 0 0) 6px 14px / 11px 2px no-repeat,
		linear-gradient(#fff 0 0) 6px 20px / 11px 2px no-repeat;
	border: 2px solid #fff;
}

.gmail-logo {
	background:
		linear-gradient(135deg, transparent 34%, #ea4335 35% 48%, transparent 49%),
		linear-gradient(45deg, transparent 34%, #4285f4 35% 48%, transparent 49%),
		linear-gradient(135deg, #34a853 0 22%, transparent 23%),
		linear-gradient(45deg, #fbbc04 0 22%, transparent 23%);
	border-radius: 8px;
}

.drive-logo {
	background: conic-gradient(from 30deg, #1fa463 0 33%, #fbbc04 0 66%, #4285f4 0);
	clip-path: polygon(50% 5%, 96% 84%, 4% 84%);
	border-radius: 0;
}

.hubspot-logo {
	background: radial-gradient(circle at 52% 48%, #ff5c35 0 6px, transparent 6.5px);
}

.hubspot-logo::before,
.hubspot-logo::after {
	content: "";
	position: absolute;
	background: #ff5c35;
}

.hubspot-logo::before {
	width: 28px;
	height: 4px;
	transform: rotate(35deg);
}

.hubspot-logo::after {
	width: 4px;
	height: 26px;
	transform: translate(9px, -8px);
}

.github-logo {
	border-radius: 50%;
	background: #111;
}

.github-logo::before {
	content: "";
	width: 24px;
	height: 18px;
	border-radius: 45% 45% 40% 40%;
	background: #fff;
	box-shadow:
		-8px -6px 0 -4px #fff,
		8px -6px 0 -4px #fff;
}

.zoom-logo {
	background: #2d7ff9;
}

.zoom-logo::before {
	content: "";
	width: 24px;
	height: 16px;
	border-radius: 5px;
	background: #fff;
	clip-path: polygon(0 0, 67% 0, 67% 34%, 100% 12%, 100% 88%, 67% 66%, 67% 100%, 0 100%);
}

.web-logo {
	color: #1f7beb;
	background: #f4f9ff;
	border: 2px solid currentColor;
	border-radius: 50%;
}

.web-logo::before {
	content: "";
	width: 26px;
	height: 26px;
	border: 2px solid currentColor;
	border-radius: 50%;
	background: linear-gradient(currentColor 0 0) center / 28px 2px no-repeat;
}

.api-logo {
	background: #eef5ff;
}

.api-logo::before {
	content: "";
	width: 28px;
	height: 28px;
	border: 4px solid #1666e8;
	clip-path: polygon(50% 0, 95% 25%, 95% 75%, 50% 100%, 5% 75%, 5% 25%);
}

.ppt-logo {
	color: #fff;
	background: linear-gradient(135deg, #d84315, #f06c3d);
	border-radius: 50%;
}

.section-note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin-top: 44px;
	color: #1f2a44;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
}

.section-note p {
	margin: 0;
	line-height: 1.4;
}

.info-mark {
	width: 48px;
	height: 48px;
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	border: 3px solid #0b75ff;
	border-radius: 50%;
	color: #0b75ff;
	font-family: Georgia, serif;
	font-size: 26px;
	font-weight: 600;
	font-style: italic;
}

.why-us {
	max-width: 1440px;
	padding-top: 110px;
	padding-bottom: 88px;
}

.why-subtitle {
	margin: 24px 0 0;
	color: #14223d;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.6;
}

.why-subtitle span {
	color: #0b75ff;
	font-size: inherit;
	line-height: 0;
}

.why-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 26px;
	margin-top: 56px;
}

.why-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 34px 30px 28px;
	border: 1px solid rgba(214, 224, 240, 0.9);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: var(--shadow);
	text-align: center;
}

.why-number {
	position: absolute;
	left: 30px;
	top: 34px;
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 42px;
	font-weight: 600;
	line-height: 1;
}

.why-illustration-slot {
	width: 100%;
	border-radius: 18px;
	position: relative;
	display: grid;
	place-items: center;
}

.why-illustration-slot img {
	width: 60%;
	max-width: none;
	height: 100%;
	object-fit: contain;
	display: block;
}

.why-card h3 {
	min-height: 76px;
	margin: 22px 0 0;
	color: #11182b;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.55;
}

.why-card p {
	margin: 20px 0 0;
	color: #1f2a44;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
}

.why-note {
	margin-top: 44px;
}

.mid-area {
	position: relative;
	z-index: 2;
	margin-top: 160px;
	padding: 1px 0 120px;
}

.mid-area::before {
	content: none;
	position: absolute;
	right: -240px;
	top: 180px;
	z-index: 0;
	width: 680px;
	height: 360px;
	pointer-events: none;
	border-radius: 58% 42% 64% 36% / 46% 58% 42% 54%;
	background: #e6f1ff;
	transform: rotate(-16deg);
}

.mid-area::after {
	content: none;
	position: absolute;
	left: -210px;
	top: 760px;
	z-index: 0;
	width: 520px;
	height: 360px;
	pointer-events: none;
	border-radius: 63% 37% 57% 43% / 48% 62% 38% 52%;
	background: #e6f1ff;
	transform: rotate(-18deg);
}

.why-us::after,
.positioning::after {
	content: none;
	position: absolute;
	z-index: -1;
	pointer-events: none;
	background: #e6f1ff;
}

.why-us::after {
	right: -250px;
	top: 120px;
	width: 560px;
	height: 320px;
	border-radius: 56% 44% 62% 38% / 46% 58% 42% 54%;
	transform: rotate(-12deg);
}

.positioning::after {
	left: -240px;
	bottom: -120px;
	width: 620px;
	height: 360px;
	border-radius: 63% 37% 54% 46% / 50% 62% 38% 50%;
	transform: rotate(18deg);
}

.mid-area > .section:first-child {
	margin-top: 0;
}

.mid-area > .section:first-child::before {
	content: "";
	position: absolute;
	top: -80px;
	left: 50%;
	width: 10vw;
	min-width: 72px;
	max-width: 160px;
	height: 1px;
	background: rgba(11, 117, 255, 0.52);
	transform: translateX(-50%);
}

.positioning {
	max-width: 1440px;
	padding-top: 112px;
	padding-bottom: 0;
}

.positioning h2 {
	margin: 28px 0 0;
	color: #0f1d33;
	font-size: 60px;
	line-height: 1.32;
	font-weight: 600;
	letter-spacing: 0;
	white-space: normal;
}

.positioning-table {
	position: relative;
	display: grid;
	grid-template-rows: auto repeat(5, 104px);
	grid-template-columns: minmax(210px, 0.8fr) minmax(360px, 1.1fr) minmax(360px, 1.1fr);
	margin-top: 72px;
	border: 1px solid rgba(213, 222, 238, 0.95);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: var(--shadow);
	overflow: visible;
}

.positioning-row {
	display: contents;
}

.positioning-row > div {
	display: flex;
	align-items: center;
	gap: 20px;
	min-width: 0;
	padding: 0 34px;
	border-bottom: 1px dashed rgba(185, 202, 226, 0.9);
	color: #12192c;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.55;
}

.positioning-row:last-child > div {
	border-bottom: 0;
}

.table-head > div {
	min-height: 72px;
	justify-content: center;
	border-bottom-style: solid;
	color: #1c263d;
	font-size: 24px;
}

.table-head > div:first-child {
	background: rgba(255, 255, 255, 0.55);
}

.our-head {
	position: relative;
	/* biome-ignore lint/complexity/noImportantStyles: テーブルセル色の強制上書き */
	color: #fff !important;
	background: linear-gradient(135deg, #0459e8, #0b75ff);
	border-radius: 16px 16px 0 0;
	box-shadow:
		0 -1px 0 #0b75ff,
		inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}

.recommend-badge {
	position: absolute;
	left: 50%;
	top: 0;
	min-width: 150px;
	padding: 7px 22px;
	border: 3px solid #fff;
	border-radius: 999px;
	background: #0b75ff;
	color: #fff;
	font-size: 18px;
	line-height: 1;
	text-align: center;
	transform: translate(-50%, -50%);
	box-shadow: var(--shadow);
}

.recommend-badge::before {
	content: "♛";
	margin-right: 8px;
	color: #ffd43b;
}

.our-head {
	position: relative;
	overflow: visible;
}

.row-label {
	color: #11182b;
	background: rgba(255, 255, 255, 0.72);
}

.row-icon {
	width: 35px;
	height: 35px;
	display: inline-grid;
	place-items: center;
	color: #0b75ff;
	border-radius: 12px;
	flex: 0 0 auto;
}

.row-icon svg {
	width: 27px;
	height: 27px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.our-cell {
	/* biome-ignore lint/complexity/noImportantStyles: テーブルセル色の強制上書き */
	color: #075bd8 !important;
	background: rgba(255, 255, 255, 0.98);
	border-left: 2px solid #0b75ff;
	border-right: 2px solid #0b75ff;
}

.positioning-row:last-child .our-cell {
	border-bottom: 2px solid #0b75ff;
	border-radius: 0 0 16px 16px;
}

.yes-mark,
.no-mark {
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	flex: 0 0 auto;
	font-size: 28px;
	line-height: 1;
}

.yes-mark {
	color: #fff;
	background: #0b63e5;
}

.no-mark {
	color: #fff;
	background: linear-gradient(180deg, #d6d8dc, #c6c9ce);
}

.other-cell {
	color: #20283a;
	background: rgba(255, 255, 255, 0.72);
	/* biome-ignore lint/complexity/noImportantStyles: テーブルセルfont-weightの強制上書き */
	font-weight: 400 !important;
}

.positioning-cta {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	align-items: center;
	gap: 42px;
	min-height: 238px;
	margin-top: 48px;
	padding: 26px 46px 26px 34px;
	border-radius: 18px;
}

.positioning-person {
	width: 310px;
	height: 204px;
	object-fit: contain;
	transform: scaleX(-1);
	transform-origin: center;
}

.positioning-copy p {
	margin: 0;
	color: #11182b;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
}

.positioning-highlight {
	color: var(--cta-blue);
}

.positioning-actions {
	display: grid;
	grid-template-columns: minmax(260px, 360px) minmax(220px, 280px);
	gap: 22px;
	margin-top: 28px;
}

.positioning-actions .button {
	min-height: 58px;
	padding: 10px 16px 10px 26px;
	font-size: 18px;
}

.positioning-actions .button .circle {
	width: 36px;
	height: 36px;
}

.outcomes {
	max-width: 1310px;
	padding-top: 96px;
	padding-bottom: 88px;
}

.outcomes-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 30px;
	align-items: start;
}

.outcomes h2,
.goals h2 {
	margin: 28px 0 0;
	color: #0f1d33;
	font-size: 60px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
}

.outcomes h2 {
	font-size: 60px;
}

.outcomes h2 span,
.goals h2 span {
	color: #0b75ff;
	font-size: inherit;
}

.outcomes h2 span {
	font-size: inherit;
}

.outcomes-subtitle {
	margin: 18px 0 0;
	color: #14223d;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.outcomes-hero {
	width: 100%;
	max-width: 390px;
	justify-self: end;
	margin-top: -8px;
}

.outcome-tabs {
	display: grid;
	grid-template-columns: 180px repeat(4, minmax(170px, 1fr));
	gap: 18px;
	margin-top: 34px;
}

.outcome-tabs button {
	min-height: 58px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	border: 1px solid rgba(216, 226, 241, 0.95);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	color: #17223b;
	box-shadow: var(--shadow);
	font: inherit;
	font-size: 16px;
	font-weight: 600;
}

.outcome-tabs button.active {
	border-color: #0b75ff;
	background: linear-gradient(135deg, #085de8, #0b75ff);
	color: #fff;
	box-shadow: var(--shadow);
}

.outcome-tabs button.wide {
	width: 100%;
}

.outcome-tabs svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.outcome-list {
	display: grid;
	gap: 20px;
	margin-top: 44px;
}

.outcome-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 66px minmax(0, 1.18fr);
	gap: 18px;
	align-items: center;
	padding: 14px 30px;
	border: 1px solid #ffc61a;
	border-radius: 18px;
	background: #f6edd4;
}

.outcome-card {
	min-height: 112px;
	display: grid;
	grid-template-columns: 118px minmax(0, 1fr);
	grid-template-areas:
		"state state"
		"media text";
	align-items: center;
	gap: 0 20px;
	border: 0;
	border-radius: 16px;
	background: transparent;
	box-shadow: none;
}

.outcome-card.before {
	background: transparent;
	color: #0f1d33;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas: "state text";
	align-items: center;
	gap: 0 12px;
}

.outcome-card.after {
	border-color: transparent;
	background: transparent;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas: "state text";
	align-items: center;
	gap: 0 12px;
}

.outcome-placeholder {
	grid-area: media;
	width: 100%;
	height: 76px;
	border-radius: 12px;
	background:
		linear-gradient(135deg, rgba(138, 153, 178, 0.16), rgba(138, 153, 178, 0.28)), #eef2f7;
	border: 1px solid #d8e0ec;
	justify-self: center;
}

.outcome-asset {
	display: none;
}

.outcome-asset-proposal {
	max-width: 110px;
}

.outcome-asset-docs {
	max-width: 132px;
}

.outcome-asset-zoom {
	max-width: 112px;
}

.outcome-asset-flow {
	max-width: 128px;
}

.outcome-asset-research {
	max-width: 128px;
}

.outcome-asset-mail {
	max-width: 112px;
}

.outcome-card strong {
	grid-area: text;
	display: block;
	min-width: 0;
	margin-top: 0;
	color: #0f1d33;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: 0.02em;
}

.outcome-card.after strong {
	font-size: 20px;
	line-height: 1.5;
}

.state {
	grid-area: state;
	min-width: 86px;
	display: inline-grid;
	justify-self: start;
	place-items: center;
	min-height: 30px;
	padding: 4px 14px;
	border-radius: 8px;
	font-family: var(--number-font);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.state.before {
	color: #304260;
	background: #e5e5e5;
}

.state.after {
	color: #fff;
	background: #ff625f;
}

.outcome-arrow {
	width: 54px;
	height: 54px;
	display: grid;
	place-items: center;
	justify-self: center;
	border-radius: 50%;
	background: #fff;
	color: #0b75ff;
	box-shadow: var(--shadow);
	font-size: 32px;
	font-weight: 600;
}

.after-visual {
	position: relative;
	min-height: 94px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	color: #0b75ff;
}

.docs-visual {
	min-height: 118px;
	border: 2px solid #bcd0ee;
	border-radius: 12px;
	background: linear-gradient(#f9fbff, #fff);
}

.docs-visual span {
	width: 42px;
	height: 58px;
	border: 2px solid #c8d6eb;
	border-radius: 5px;
	background:
		linear-gradient(#cbd8eb 0 0) 10px 16px / 20px 2px no-repeat,
		linear-gradient(#dce6f3 0 0) 10px 28px / 20px 2px no-repeat,
		#fff;
}

.flow-visual span {
	min-width: 52px;
	height: 52px;
	display: grid;
	place-items: center;
	border-radius: 10px;
	background: #fff;
	box-shadow: var(--shadow);
	font-size: 20px;
	font-weight: 600;
}

.flow-visual i {
	width: 24px;
	height: 2px;
	background: #709bd8;
}

.research-visual span:first-child {
	width: 74px;
	height: 74px;
	display: grid;
	place-items: center;
	border: 5px solid #5b82d0;
	border-radius: 50%;
	font-size: 36px;
}

.research-visual span:nth-child(2) {
	width: 90px;
	height: 72px;
	border: 2px solid #c2d4ef;
	border-radius: 8px;
	background:
		radial-gradient(circle at 35% 44%, #bcd0ee 0 8px, transparent 9px),
		linear-gradient(#7da6ee 0 0) 48px 22px / 26px 4px no-repeat,
		linear-gradient(#cbd8eb 0 0) 48px 36px / 26px 3px no-repeat,
		#fff;
}

.research-visual i {
	width: 28px;
	height: 2px;
	background: #709bd8;
}

.research-visual em {
	color: #8aa3ce;
	font-style: normal;
	font-size: 24px;
	white-space: nowrap;
}

@media (min-width: 1121px) {
	.section h2 {
		width: 70%;
	}

	.solution h2,
	.outcomes h2 {
		width: auto;
	}

	.outcome-row {
		grid-template-columns: minmax(0, 540px) 66px minmax(0, 640px);
	}
}

.goals {
	max-width: var(--max-wide);
	padding-top: 98px;
	padding-bottom: 100px;
}

.goals h2 {
	font-size: 60px;
}

.goal-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px;
	margin-top: 48px;
}

.goal-card {
	display: flex;
	flex-direction: column;
	padding: 30px 36px 34px;
	border: 0;
	border-radius: 22px;
	box-shadow: none;
}

.goal-card.level-1 {
	background: #edf6ff;
}

.goal-card.level-2 {
	background: #fff8df;
}

.goal-card.level-3 {
	background: #fff0e9;
}

.goal-card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.goal-card h3 {
	margin: 10px 0 0;
	color: #0f1d33;
	font-size: 30px;
	font-weight: 600;
	line-height: 1.2;
}

.goal-card h3 span {
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: inherit;
}

.goal-card-media {
	display: block;
	margin-top: 20px;
	text-align: center;
}

.goal-card img {
	width: 100%;
	max-width: 170px;
	object-fit: contain;
	margin: 0 auto;
}

@media (min-width: 721px) {
	.goal-card img {
		width: 70%;
		height: 180px;
		max-width: none;
	}
}

.goal-card strong {
	display: block;
	color: #0f1d33;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.55;
	text-align: center;
	margin-top: 0;
}

.goal-card p {
	margin: 22px 0 0;
	color: #14223d;
	font-size: 17px;
	line-height: 1.4;
	text-align: center;
}

.goals-cta {
	width: min(1060px, 100%);
	display: grid;
	grid-template-columns: 310px minmax(0, 1fr);
	align-items: center;
	gap: 32px;
	margin: 56px auto 0;
	padding: 22px 32px;
	border: 1px solid rgba(216, 226, 241, 0.95);
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: var(--shadow);
}

.goals-time {
	display: flex;
	align-items: center;
	gap: 18px;
	color: #0b75ff;
	font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "YuGothic", system-ui, sans-serif;
	font-size: 30px;
	font-weight: 600;
}

.goals-time strong {
	font-family: inherit;
	font-weight: 600;
}

.goals-button {
	min-height: 76px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 58px;
	align-items: center;
	gap: 18px;
	padding: 10px 16px 10px 54px;
	border-radius: 999px;
	background: linear-gradient(135deg, #065ee8, #0b75ff);
	color: #fff;
	box-shadow: var(--shadow);
	font-size: 27px;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
}

.goals-button-wrap {
	min-width: 0;
	display: grid;
	justify-items: start;
	gap: 6px;
	width: min(680px, 100%);
}

.goals-button-copy {
	min-width: 0;
	display: block;
	line-height: 1.25;
}

.goals-button-copy strong {
	display: block;
	font-size: 22px;
	font-weight: 600;
	white-space: nowrap;
}

.goals-button-note {
	display: block;
	color: #64708a;
	font-size: 13px;
	font-weight: 500;
	opacity: 0.88;
}

.lp-cta-note {
	display: block;
	margin-top: 10px;
	color: #64708a;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.6;
}

.positioning-copy p.lp-cta-note {
	font-size: 13px;
	font-weight: 500;
	color: #64708a;
}

.pricing-cta + .lp-cta-note {
	text-align: center;
}

.goals-button-arrow {
	width: 40px;
	height: 40px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #fff;
	color: #0b75ff;
	font-size: 31px;
}

.curriculum {
	max-width: 1200px;
	padding-top: 96px;
	padding-bottom: 96px;
	overflow: visible;
}

.curriculum::before {
	content: "";
	position: absolute;
	right: -148px;
	top: -8px;
	z-index: -1;
	width: 390px;
	height: 220px;
	border-radius: 58% 42% 62% 38% / 40% 52% 48% 60%;
	background: #eaf3ff;
	transform: rotate(31deg);
}

.curriculum-dot-grid {
	position: absolute;
	z-index: -1;
	width: 98px;
	height: 92px;
	pointer-events: none;
	background-image: radial-gradient(circle, #8fb2ee 0 3px, transparent 3.5px);
	background-size: 20px 20px;
}

.curriculum-dot-grid-top {
	right: -12px;
	top: 20px;
}

.curriculum-dot-grid-bottom {
	left: -20px;
	bottom: 44px;
}

.curriculum-color-dot {
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	pointer-events: none;
}

.curriculum-color-dot-blue {
	right: 154px;
	top: 88px;
	width: 12px;
	height: 12px;
	background: #0b75ff;
}

.curriculum-color-dot-yellow {
	right: 92px;
	top: 50px;
	width: 18px;
	height: 18px;
	background: #ffc61a;
}

.curriculum-color-dot-red {
	right: 52px;
	top: 128px;
	width: 12px;
	height: 12px;
	background: #ff625f;
}

.curriculum h2 {
	margin: 22px 0 0;
	color: #0f1d33;
	font-size: 56px;
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: 0.01em;
	white-space: nowrap;
}

.curriculum h2 span {
	color: #0b75ff;
	font-size: 1.22em;
	line-height: 0;
}

.curriculum h2 em {
	color: #ffc116;
	font-style: normal;
	font-weight: 400;
}

.curriculum-subtitle {
	margin: 16px 0 0;
	color: #14223d;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.curriculum-columns {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 54px;
	margin-top: 34px;
}

.curriculum-panel {
	min-height: 618px;
	padding: 32px;
	border: 1px solid #e0e8f0;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: var(--shadow);
}

.curriculum-panel-head {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
}

.curriculum-panel-head p {
	margin: 0;
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.personalized-panel .curriculum-panel-head p {
	color: #f04f25;
}

.curriculum-panel-head span {
	display: inline-grid;
	min-width: 82px;
	min-height: 34px;
	place-items: center;
	padding: 4px 16px;
	border: 2px solid #0b75ff;
	border-radius: 999px;
	color: #0b75ff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
}

.personalized-panel .curriculum-panel-head span {
	border-color: #27bf5a;
	color: #27a64d;
}

.curriculum-panel h3 {
	margin: 26px 0 0;
	color: #0f1d33;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.55;
	text-align: center;
}

.week-list {
	position: relative;
	display: grid;
	gap: 30px;
	margin-top: 34px;
	padding-left: 8px;
	counter-reset: week;
}

.week-list::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 12px;
	bottom: 16px;
	width: 2px;
	background: #0b75ff;
}

.week-list li {
	position: relative;
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr);
	gap: 18px;
	list-style: none;
}

.week-check {
	position: relative;
	z-index: 1;
	width: 24px;
	height: 24px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #0b75ff;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
}

.week-list h4 {
	margin: 0;
	color: #0f1d33;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
}

.week-list h4 span {
	color: #0b75ff;
}

.week-list p {
	margin: 10px 0 0;
	color: #15233f;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
}

.curriculum-plus {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 2;
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #0b75ff;
	color: #fff;
	font-size: 36px;
	font-weight: 500;
	line-height: 1;
	box-shadow: var(--shadow);
	transform: translate(-50%, -50%);
}

.personalized-body {
	margin: 16px 0 0;
	color: #14223d;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.9;
	text-align: left;
}

.personalized-body strong {
	color: #0f1d33;
	font-weight: 700;
	background: linear-gradient(transparent 62%, #c5efdd 62%);
}

.personalized-examples-label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 22px 0 0;
	color: #0f1d33;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}

.mobile-break {
	display: none;
}

.course-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 16px;
}

.course-card {
	min-height: 226px;
	padding: 18px 18px 20px;
	border: 1px solid #d6e3f5;
	border-radius: 10px;
	background: linear-gradient(145deg, #f8fbff, #edf5ff);
}

.course-card p {
	margin: 0;
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.03em;
}

.course-icon {
	position: relative;
	margin: 12px auto;
	display: grid;
	place-items: center;
	color: #0b75ff;
}

.course-icon img {
	max-width: 148px;
	max-height: 104px;
	width: auto;
	height: auto;
	display: block;
	object-fit: contain;
}

.course-icon-leader img {
	max-width: 118px;
	max-height: 78px;
}

.course-icon::before,
.course-icon::after,
.course-icon span,
.course-icon span::before {
	content: none;
	display: none;
}

.course-icon::before {
	content: "";
	width: 92px;
	height: 58px;
	border: 2px solid #0b75ff;
	border-radius: 6px;
	background:
		linear-gradient(#0b75ff 0 0) 0 12px / 100% 2px no-repeat,
		radial-gradient(circle at 10px 7px, #0b75ff 0 2px, transparent 2.5px),
		radial-gradient(circle at 18px 7px, #0b75ff 0 2px, transparent 2.5px),
		#eff6ff;
}

.course-icon span {
	position: absolute;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	border: 2px solid #0b75ff;
	border-radius: 50%;
	background: #fff;
}

.course-icon span::before {
	content: "";
	width: 14px;
	height: 14px;
	border: 3px solid #0b75ff;
	border-radius: 50%;
	box-shadow:
		0 -10px 0 -7px #0b75ff,
		0 10px 0 -7px #0b75ff,
		-10px 0 0 -7px #0b75ff,
		10px 0 0 -7px #0b75ff;
}

.course-icon-automation::after {
	content: "✓";
	position: absolute;
	right: 38px;
	bottom: 8px;
	width: 28px;
	height: 28px;
	display: grid;
	place-items: center;
	border: 2px solid #ffc116;
	border-radius: 50%;
	background: #fff9df;
	color: #ffc116;
	font-size: 17px;
	font-weight: 600;
}

.course-icon-product span {
	right: 38px;
	bottom: 12px;
	width: 42px;
	height: 26px;
	border: 0;
	border-radius: 6px;
	background: #f4512c;
	color: #fff;
}

.course-icon-product span::before {
	content: "</>";
	width: auto;
	height: auto;
	border: 0;
	box-shadow: none;
	color: #fff;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 13px;
	font-weight: 600;
}

.course-icon-agent::before {
	width: 78px;
	height: 48px;
	border-radius: 18px;
	background: #eaf3ff;
}

.course-icon-agent span {
	width: 70px;
	height: 44px;
	border-radius: 16px;
	background:
		radial-gradient(circle at 24px 21px, #0b75ff 0 4px, transparent 4.5px),
		radial-gradient(circle at 46px 21px, #0b75ff 0 4px, transparent 4.5px), #fff;
}

.course-icon-agent span::before {
	content: "";
	width: 23px;
	height: 4px;
	border: 0;
	border-radius: 999px;
	background: #0b75ff;
	box-shadow:
		0 34px 0 #0b75ff,
		-25px 51px 0 -1px #ffc116,
		0 51px 0 -1px #0b75ff,
		25px 51px 0 -1px #f4512c;
}

.course-icon-leader::before {
	width: 104px;
	height: 68px;
	border: 0;
	border-radius: 0;
	background:
		linear-gradient(#0b75ff 0 0) 16px 42px / 16px 24px no-repeat,
		linear-gradient(#fff 0 0) 44px 30px / 16px 36px no-repeat,
		linear-gradient(#ffc116 0 0) 72px 14px / 16px 52px no-repeat,
		linear-gradient(#0b75ff 0 0) 12px 66px / 84px 2px no-repeat;
}

.course-icon-leader span {
	right: 28px;
	top: 0;
	width: 28px;
	height: 20px;
	border: 0;
	border-radius: 2px 8px 8px 2px;
	background: #f4512c;
}

.course-icon-leader span::before {
	content: "";
	width: 2px;
	height: 64px;
	border: 0;
	border-radius: 0;
	background: #0b75ff;
	box-shadow: none;
	transform: translate(-15px, 23px);
}

.course-icon::before,
.course-icon::after,
.course-icon span,
.course-icon span::before {
	content: none;
	display: none;
}

.course-card h4 {
	margin: 10px 0 0;
	color: #0f1d33;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.55;
	text-align: center;
}

.course-card small {
	display: block;
	margin-top: 8px;
	color: #14223d;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.7;
}

.course-card > span {
	display: block;
	margin-top: 4px;
	color: #14223d;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
}

.curriculum-final {
	width: min(1080px, 100%);
	min-height: 104px;
	display: grid;
	grid-template-columns: 230px minmax(0, 1fr) 120px;
	align-items: center;
	gap: 22px;
	margin: 28px auto 0;
	padding: 20px 30px;
	border: 1px solid #e0e8f0;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: var(--shadow);
}

.final-label {
	display: grid;
	grid-template-columns: auto 82px;
	align-items: center;
	gap: 18px;
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.final-label img {
	width: 82px;
	height: 58px;
	object-fit: contain;
	display: block;
}

.final-label i {
	position: relative;
	width: 82px;
	height: 58px;
	border: 2px solid #0b75ff;
	border-radius: 6px;
	background:
		radial-gradient(circle at 25px 29px, #ffc116 0 11px, transparent 12px),
		conic-gradient(from 0deg at 25px 29px, #0b75ff 0 25%, transparent 0 100%),
		linear-gradient(#f4512c 0 0) 48px 22px / 18px 3px no-repeat,
		linear-gradient(#0b75ff 0 0) 48px 32px / 24px 3px no-repeat,
		#fff;
}

.final-label i::after {
	content: "";
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: -16px;
	height: 16px;
	border-left: 2px solid #0b75ff;
	border-right: 2px solid #0b75ff;
	transform: skewX(-12deg);
}

.curriculum-final p {
	margin: 0;
	color: #0f1d33;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.02em;
}

.curriculum-final p span {
	color: #0b75ff;
	padding: 0 12px;
}

.final-people {
	width: 102px;
	height: auto;
	justify-self: end;
	display: block;
	object-fit: contain;
}

.lp-decor-section {
	overflow: visible;
}

.lp-decor-section > *:not(.section-dot-grid):not(.section-blob):not(.section-color-dot) {
	position: relative;
	z-index: 2;
}

.section-dot-grid,
.section-blob,
.section-color-dot {
	position: absolute;
	z-index: 0;
	pointer-events: none;
}

.section-dot-grid {
	width: 84px;
	height: 84px;
	opacity: 0.8;
	background-image: radial-gradient(circle, rgba(11, 117, 255, 0.28) 0 3px, transparent 3.5px);
	background-size: 18px 18px;
}

.section-dot-grid-tr {
	right: -10px;
	top: -28px;
}

.section-dot-grid-tl {
	left: -26px;
	top: 88px;
}

.section-dot-grid-bl {
	left: -34px;
	bottom: 36px;
}

.section-dot-grid-br {
	right: -8px;
	bottom: 34px;
}

.section-blob {
	width: 240px;
	height: 160px;
	border-radius: 42% 58% 44% 56% / 54% 44% 56% 46%;
	background: #eaf4ff;
}

.section-blob-tr {
	right: -118px;
	top: -78px;
	transform: rotate(24deg);
}

.section-blob-br {
	right: -132px;
	bottom: 24px;
	transform: rotate(-28deg);
}

.section-blob-bl {
	left: -138px;
	bottom: -68px;
	transform: rotate(34deg);
}

.section-color-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	box-shadow: var(--shadow);
}

.section-color-dot.dot-blue {
	right: 7%;
	top: 108px;
	background: #0b75ff;
}

.section-color-dot.dot-yellow {
	right: 4%;
	top: 164px;
	background: #ffc116;
}

.section-color-dot.dot-red {
	right: 2%;
	bottom: 118px;
	background: #ff625f;
}

.outputs-section,
.voices-section,
.pricing-section,
.flow-section,
.faq-section {
	max-width: 1240px;
	padding-left: 40px;
	padding-right: 40px;
}

.pricing-section,
.faq-section {
	max-width: 1120px;
}

.outputs-section h2,
.voices-section h2,
.pricing-section h2,
.flow-section h2,
.faq-section h2 {
	color: #0f1d33;
	font-size: 60px;
	font-weight: 600;
	line-height: 1.35;
}

.outputs-section h2 span,
.voices-section h2 span {
	color: #0b75ff;
}

.outputs-section h2 span {
	font-family: var(--number-font);
	font-size: 1.22em;
}

.output-list {
	width: min(1040px, 100%);
	display: grid;
	margin: 34px auto 0;
	border: 1px solid #e0e8f0;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--shadow);
	overflow: hidden;
}

.output-item {
	display: grid;
	grid-template-columns: 58px minmax(230px, 0.95fr) 1px minmax(0, 1.35fr);
	align-items: center;
	gap: 26px;
	min-height: 88px;
	padding: 18px 38px;
}

.output-item + .output-item {
	border-top: 1px solid #e0e8f0;
}

.output-number {
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 30px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.output-file {
	display: inline-flex;
	min-width: 0;
	align-items: center;
	gap: 16px;
}

.output-file b {
	min-width: 0;
	color: #0f1d33;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.file-icon {
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	border-radius: 7px;
	color: #0b75ff;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
}

.code-icon {
	background: #e8f0ff;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.figma-icon {
	background: linear-gradient(180deg, #0b75ff, #1d5fd0);
	color: #fff;
	font-family: var(--number-font);
	font-size: 22px;
}

.globe-icon {
	border: 2px solid #0b75ff;
	background: #f8fbff;
	font-size: 22px;
}

.pdf-icon {
	background: #ef3328;
	color: #fff;
	font-size: 10px;
	letter-spacing: -0.02em;
}

.output-divider {
	width: 1px;
	height: 34px;
	background: #d9e3f1;
}

.output-item p {
	margin: 0;
	color: #0f1d33;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.55;
}

.outputs-note {
	width: min(920px, 100%);
	justify-content: flex-start;
	margin: 28px auto 0;
}

.outputs-note p {
	text-align: center;
}

.lp-section-head {
	margin: 0 0 40px;
}

.lp-section-head.center {
	text-align: center;
}

.lp-section-head p,
.pricing-subtitle,
.flow-subtitle,
.faq-head p {
	margin: 18px 0 0;
	color: #14223d;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.8;
	text-align: left;
}

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

.voice-card {
	min-height: 252px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 210px;
	grid-template-areas:
		"copy image"
		"tag image";
	align-items: start;
	gap: 20px;
	padding: 30px 30px 26px;
	border: 1px solid #e0e8f0;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--shadow);
}

.voice-copy {
	grid-area: copy;
	min-height: 196px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.quote-mark {
	height: 42px;
	color: #0b75ff;
	font-size: 70px;
	font-weight: 600;
	line-height: 0.75;
	font-family: Georgia, serif;
}

.voice-copy p {
	margin: 0 0 15px 0;
	color: #12213c;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.9;
}

.voice-tag {
	grid-area: tag;
	display: inline-flex;
	align-self: end;
	padding: 6px 16px;
	border-radius: 999px;
	background: #e8f0ff;
	color: #0b75ff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
}

.voice-illust,
.voice-illust-image {
	grid-area: image;
	width: 100%;
	height: 168px;
	justify-self: end;
	align-self: end;
}

.voice-illust-image {
	display: block;
	object-fit: contain;
}

.voice-illust {
	position: relative;
	border-radius: 18px 18px 8px 8px;
	background:
		radial-gradient(circle at 58% 28%, #d9e2ee 0 22px, transparent 23px),
		linear-gradient(#b7c3d2 0 0) 52% 62% / 96px 58px no-repeat,
		linear-gradient(#d8dee8 0 0) 48% 92% / 132px 14px no-repeat;
	opacity: 0.9;
}

.voice-illust::before {
	content: "";
	position: absolute;
	right: 18px;
	top: 24px;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: #f6c33d;
}

.voice-illust::after {
	content: "</>";
	position: absolute;
	right: 30px;
	top: 41px;
	color: #0f1d33;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 15px;
	font-weight: 700;
}

.voice-illust-woman::before,
.voice-illust-check::before {
	background: #dfe9f7;
	border-radius: 10px;
}

.voice-illust-woman::after {
	content: "";
	width: 38px;
	height: 38px;
	border: 8px solid #0b75ff;
	border-radius: 50%;
	border-left-color: #9bc2ff;
	background: transparent;
}

.voice-illust-tablet::after,
.voice-illust-check::after {
	content: "✓";
	right: 34px;
	top: 35px;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #f6c33d;
	color: #0b75ff;
	font-size: 30px;
	font-family: inherit;
}

.voice-note {
	margin: 36px 0 0;
	color: #7080a0;
	font-size: 16px;
	font-weight: 500;
	text-align: center;
}

.pricing-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 0.88fr);
	gap: 42px;
	align-items: center;
	margin-top: 34px;
	padding: 32px;
	border: 1px solid #e0e8f0;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--shadow);
}

.price-box {
	padding: 36px 34px;
	border: 0;
	border-radius: 16px;
	background: #fffbef;
	box-shadow: none;
}

.price-label {
	margin: 0 0 22px;
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.monthly-price {
	display: flex;
	align-items: baseline;
	gap: 10px;
	color: #0f1d33;
	font-weight: 600;
	line-height: 1;
	flex-wrap: wrap;
}

.monthly-price span {
	font-size: 16px;
}

.monthly-price strong {
	color: #ff321c;
	font-family: var(--number-font);
	font-size: 76px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.monthly-price small {
	font-size: 20px;
	font-weight: 600;
}

.tax-price {
	margin: 16px 0;
	color: #64708a;
	font-size: 22px;
	font-weight: 600;
}

.entry-fee {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 16px 0;
	border-top: 1px solid #e0e8f0;
	border-bottom: 1px solid #e0e8f0;
}

.entry-fee > span {
	color: #0f1d33;
	font-size: 32px;
	line-height: 1;
}

.entry-fee p {
	margin: 0;
	color: #334057;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.6;
}

.entry-fee strong {
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 34px;
	font-weight: 600;
}

.total-price {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: 0;
	margin-top: 16px;
}

.total-price p {
	margin: 0;
	color: #0f1d33;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.65;
}

.total-price strong {
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 38px;
	font-weight: 600;
}

.total-price small {
	display: block;
	color: #64708a;
	font-size: 15px;
	font-weight: 500;
}

.included-list {
	display: grid;
	padding-top: 0;
}

.included-list li {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	align-items: center;
	gap: 18px;
	min-height: 64px;
	padding: 8px 0;
	border-bottom: 1px solid #e0e8f0;
	color: #0f1d33;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
}

@media (min-width: 721px) {
	.included-list li {
		padding: 16px 0;
	}
}

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

.included-list span {
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border-radius: 10px;
	background: #fff;
	color: #13b82e;
	font-size: 30px;
	font-weight: 600;
	box-shadow: var(--shadow);
}

.pricing-cta {
	width: min(650px, 100%);
	min-height: 72px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 54px;
	align-items: center;
	gap: 18px;
	margin: 30px auto 0;
	padding: 10px 16px 10px 44px;
	border-radius: 999px;
	background: linear-gradient(135deg, #ff321c, #f4512c);
	color: #fff;
	box-shadow: var(--shadow);
}

.pricing-cta span {
	text-align: center;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.3;
}

.pricing-cta i {
	width: 54px;
	height: 54px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #fff;
	color: #f4512c;
	font-size: 28px;
	font-style: normal;
	font-weight: 600;
}

.pricing-note {
	margin: 26px 0 0;
	color: #334057;
	font-size: 14px;
	font-weight: 300;
	line-height: 1.4;
	text-align: center;
}

.pricing-link-lead {
	margin: 18px 0 10px;
	color: #0b56e7;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
}

.pricing-link {
	width: min(760px, 100%);
	min-height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 22px auto 0;
	padding: 10px 22px;
	border-radius: 999px;
	background: #eaf4ff;
	color: #0b75ff;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.6;
	text-decoration: underline;
	box-shadow: var(--shadow);
	text-align: center;
}

.flow-subtitle {
	margin-bottom: 62px;
}

.flow-timeline {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 32px;
}

.flow-timeline::before {
	content: "";
	position: absolute;
	left: calc(10% + 12px);
	right: calc(10% + 12px);
	top: 54px;
	border-top: 4px dotted #0b75ff;
}

.flow-step {
	position: relative;
	display: grid;
	justify-items: center;
	text-align: center;
	color: #0f1d33;
}

.flow-step-label {
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.flow-dot {
	position: relative;
	z-index: 1;
	width: 30px;
	height: 30px;
	margin-top: 20px;
	border-radius: 50%;
	background: #0b75ff;
	box-shadow: 0 0 0 3px rgba(11, 117, 255, 0.08);
}

.flow-icon {
	width: 90px;
	height: 90px;
	margin-top: 42px;
	fill: none;
	stroke: #0b75ff;
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.flow-step h3 {
	margin: 22px 0 0;
	color: #0f1d33;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.5;
}

.flow-step i {
	width: 22px;
	height: 2px;
	margin: 18px 0 18px;
	border-radius: 999px;
	background: #0b75ff;
}

.flow-step p {
	margin: 0;
	color: #0f1d33;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.9;
}

.faq-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 240px;
	align-items: center;
	gap: 32px;
	margin-bottom: 34px;
}

.faq-illust {
	position: relative;
	width: 220px;
	height: 120px;
	justify-self: center;
}

.faq-illust::before,
.faq-illust::after {
	content: "";
	position: absolute;
	border: 2px solid #0b75ff;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.85);
}

.faq-illust::before {
	left: 18px;
	top: 12px;
	width: 94px;
	height: 62px;
	box-shadow: 24px 42px 0 -14px rgba(255, 255, 255, 0.85);
}

.faq-illust::after {
	right: 22px;
	bottom: 16px;
	width: 76px;
	height: 48px;
	border-color: #8bbaff;
}

.faq-illust span {
	position: absolute;
	left: 54px;
	top: 20px;
	z-index: 1;
	color: #0b75ff;
	font-size: 42px;
	font-weight: 600;
	line-height: 1;
}

.faq-list {
	display: grid;
	gap: 12px;
	width: min(1040px, 100%);
	margin: 0 auto;
}

.faq-list details {
	border: 1px solid #e0e8f0;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--shadow);
	overflow: hidden;
	transition:
		box-shadow 0.3s ease,
		background-color 0.3s ease;
}

.faq-list summary {
	position: relative;
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) 34px;
	align-items: center;
	gap: 10px;
	min-height: 74px;
	padding: 18px 30px;
	color: #0f1d33;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.5;
	cursor: pointer;
	list-style: none;
}

.faq-list summary::-webkit-details-marker {
	display: none;
}

.faq-list summary span {
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 30px;
	font-weight: 600;
}

.faq-list summary::after {
	content: "+";
	color: #0b75ff;
	font-size: 34px;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	transition:
		transform 0.3s ease,
		opacity 0.3s ease;
}

.faq-list details[open] summary::after {
	content: "×";
	transform: rotate(90deg);
}

.faq-answer {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	gap: 10px;
	align-items: start;
	padding: 0 30px 22px 30px;
	opacity: 0;
	transform: translateY(-6px);
	animation: none;
	overflow: hidden;
}

.faq-answer > span {
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 30px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
}

.faq-answer p {
	margin: 0;
	color: #52637e;
	font-size: 15px;
	line-height: 1.4;
}

.faq-list details[open] {
	box-shadow: 0px 6px 18px rgba(23, 48, 90, 0.12);
}

.faq-list details[open] .faq-answer {
	animation: faqAnswerIn 0.32s ease forwards;
}

@keyframes faqAnswerIn {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.community-section {
	max-width: 1240px;
	padding-top: 110px;
	padding-bottom: 96px;
	text-align: left;
}

.community-section .section-label {
	text-align: left;
}

.community-section h2 {
	margin: 18px 0 0;
	width: auto;
	text-align: left;
}

.community-lead {
	margin: 18px 0 0;
	color: #14223d;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.85;
	text-align: left;
}

.community-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin-top: 40px;
}

.community-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 26px 28px 30px;
	border: 1.5px solid #dce5f4;
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: var(--shadow);
	text-align: center;
}

.community-card-chat {
	border-color: rgba(255, 175, 0, 0.95);
}

.community-card-video {
	border-color: rgba(84, 136, 255, 0.95);
}

.community-card-growth {
	border-color: rgba(255, 98, 56, 0.95);
}

.community-number {
	position: absolute;
	top: 26px;
	left: 28px;
	text-align: left;
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 42px;
	font-weight: 600;
	line-height: 1;
}

.community-card-chat .community-number {
	color: #f7a800;
}

.community-card-growth .community-number {
	color: #ff6a38;
}

.community-icon {
	width: 100px;
	height: auto;
	margin: -6px auto 14px;
	object-fit: contain;
}

.community-card h3 {
	margin: 0;
	color: #14223d;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.42;
	text-align: center;
}

.community-card p {
	margin: 26px 0 0;
	padding-top: 24px;
	width: 100%;
	border-top: 1.5px solid currentColor;
	color: #14223d;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.9;
	text-align: center;
}

.community-card-chat p {
	border-top-color: #f7a800;
}

.community-card-video p {
	border-top-color: #5f97ff;
}

.community-card-growth p {
	border-top-color: #ff6a38;
}

.community-banner {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	align-items: center;
	gap: 22px;
	width: 75%;
	margin: 28px auto 0;
	padding: 20px 34px;
	border-radius: 20px;
	background: linear-gradient(135deg, #0b56e7, #0b75ff);
	box-shadow: none;
}

.community-banner-icon {
	width: 92px;
	height: 92px;
	object-fit: contain;
	justify-self: center;
}

.community-banner-copy {
	color: #fff;
	text-align: left;
}

.community-banner-copy strong {
	display: block;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.45;
}

.community-banner-copy p {
	margin: 8px 0 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.7;
}

.corporate-section {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
	padding-top: 30px;
	padding-bottom: 30px;
	background: #edf5ff;
}

.corporate-panel {
	position: relative;
	width: 100%;
	margin: 0 auto;
	padding: 76px 60px 86px;
	border-radius: 30px;
	background: transparent;
	overflow: hidden;
	text-align: center;
}

.corporate-panel::before {
	content: "";
	position: absolute;
	left: 50%;
	width: 100vw;
	top: 22px;
	transform: translateX(-50%);
	border-top: 2px dashed rgba(105, 156, 255, 0.8);
}

.corporate-panel::after {
	content: "";
	position: absolute;
	left: 50%;
	width: 100vw;
	bottom: 42px;
	transform: translateX(-50%);
	border-top: 2px dashed rgba(105, 156, 255, 0.8);
}

.flow-step p,
.voice-copy p,
.community-card p,
.other-cell,
.output-item p {
	font-weight: 400;
}

.corporate-pill,
.corporate-panel h2,
.corporate-lead,
.corporate-cta,
.corporate-icon,
.corporate-grid,
.corporate-color-dot {
	position: relative;
	z-index: 1;
}

.corporate-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 35px;
	border: 2px solid rgba(105, 156, 255, 0.7);
	border-radius: 999px;
	background: #fff;
	color: #0b75ff;
	font-family: var(--number-font);
	font-size: 19px;
	font-weight: 600;
	letter-spacing: 0.06em;
}

.corporate-dot {
	position: absolute;
	top: 131px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #ffc116;
	z-index: 1;
}

.corporate-dot-left {
	left: calc(50% - 220px);
}

.corporate-dot-right {
	right: calc(50% - 220px);
}

.corporate-panel h2 {
	margin: 42px auto 0;
	width: 100%;
	font-size: 45px;
	text-align: center;
}

.corporate-lead {
	margin: 34px 0 0;
	color: #14223d;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.9;
	text-align: center;
}

.corporate-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 44px;
	border-radius: 6px;
	background: linear-gradient(135deg, #0b56e7, #0b75ff);
	color: #fff;
	font-size: 22px;
	padding: 18px;
	width: 330px;
	font-weight: 500;
	text-decoration: none;
	box-shadow: none;
}

.corporate-icon {
	position: absolute;
	color: #9fc1ff;
	z-index: 0;
}

.corporate-icon svg {
	position: relative;
	z-index: 0;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.corporate-icon-users {
	left: 132px;
	top: 140px;
	width: 64px;
	height: 64px;
}

.corporate-icon-chart {
	right: 138px;
	top: 154px;
	width: 64px;
	height: 64px;
}

.corporate-icon-building {
	left: 168px;
	bottom: 156px;
	width: 58px;
	height: 58px;
}

.corporate-icon-cap {
	right: 158px;
	bottom: 154px;
	width: 58px;
	height: 58px;
}

.corporate-grid {
	width: 62px;
	height: 62px;
	background-size: 15px 15px;
}

.corporate-grid-tl {
	left: 146px;
	top: 232px;
}

.corporate-grid-br {
	right: 150px;
	bottom: 138px;
}

.corporate-color-dot {
	width: 10px;
	height: 10px;
}

.corporate-color-dot-l {
	left: 236px;
	bottom: 202px;
	background: #ff625f;
}

.corporate-color-dot-r {
	right: 242px;
	top: 208px;
	background: #ff625f;
}

@media (max-width: 960px) {
	.output-item {
		grid-template-columns: 48px minmax(180px, 0.95fr) 1px minmax(0, 1.2fr);
		gap: 16px;
		padding: 16px 22px;
	}

	.output-file b,
	.output-item p {
		font-size: 16px;
	}

	.voice-grid,
	.pricing-card {
		grid-template-columns: 1fr;
	}

	.pricing-card {
		gap: 24px;
	}

	.included-list {
		border-top: 1px solid #e0e8f0;
		padding-top: 0;
	}

	.faq-head {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.lp-section-head p,
	.pricing-subtitle,
	.flow-subtitle,
	.faq-head p,
	.why-subtitle,
	.outcomes-subtitle,
	.curriculum-subtitle {
		font-size: 16px;
		margin: 10px 0 0;
		text-align: left;
	}

	.fv-hero-actions,
	.button {
		position: relative;
		z-index: 2;
	}

	.outputs-section,
	.voices-section,
	.pricing-section,
	.flow-section,
	.faq-section {
		padding-left: 16px;
		padding-right: 16px;
	}

	.outputs-section h2,
	.voices-section h2,
	.pricing-section h2,
	.flow-section h2,
	.faq-section h2 {
		font-size: 26px;
		line-height: 1.2;
		width: auto;
	}

	.section-label {
		margin-bottom: 8px;
	}

	.lp-section-head p,
	.pricing-subtitle,
	.flow-subtitle,
	.faq-head p {
		font-size: 16px;
		text-align: left;
	}

	.section-dot-grid {
		width: 60px;
		height: 60px;
		background-size: 14px 14px;
	}

	.section-blob {
		width: 160px;
		height: 112px;
	}

	.output-list {
		margin-top: 24px;
	}

	.output-item {
		grid-template-columns: 42px minmax(0, 1fr);
		gap: 10px 14px;
		min-height: 82px;
		padding: 16px;
	}

	.output-number {
		grid-row: span 2;
		font-size: 24px;
	}

	.output-divider {
		display: none;
	}

	.output-file b {
		font-size: 14px;
	}

	.file-icon {
		width: 28px;
		height: 28px;
		font-size: 12px;
	}

	.output-item p {
		grid-column: 2;
		font-size: 14px;
		line-height: 1.4;
	}

	.outputs-note p {
		text-align: left;
	}

	.voice-grid {
		grid-template-columns: 1fr;
	}

	.voice-card {
		grid-template-columns: minmax(0, 1fr) 110px;
		grid-template-areas:
			"copy copy"
			"tag image";
		min-height: auto;
		padding: 24px 20px;
		align-items: end;
	}

	.voice-copy {
		min-height: auto;
	}

	.voice-copy p {
		font-size: 14px;
	}

	.voice-tag {
		margin-top: 18px;
		font-size: 11px;
	}

	.voice-illust,
	.voice-illust-image {
		width: min(260px, 100%);
		height: auto;
		margin: 0 auto;
	}

	.pricing-card {
		padding: 18px;
	}

	.price-box {
		padding: 24px 18px;
	}

	.monthly-price span {
		font-size: 16px;
	}

	.monthly-price strong {
		font-size: 48px;
	}

	.monthly-price small,
	.entry-fee p,
	.total-price p,
	.included-list li {
		font-size: 15px;
	}

	.tax-price {
		font-size: 16px;
	}

	.entry-fee strong,
	.total-price strong {
		font-size: 28px;
	}

	.total-price {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}

	.included-list li {
		grid-template-columns: 36px minmax(0, 1fr);
		gap: 12px;
	}

	.included-list span {
		width: 34px;
		height: 34px;
		font-size: 24px;
	}

	.pricing-cta {
		grid-template-columns: minmax(0, 1fr) 44px;
		min-height: 62px;
		padding: 9px 10px 9px 22px;
	}

	.pricing-cta span {
		font-size: 17px;
	}

	.pricing-cta i {
		width: 44px;
		height: 44px;
		font-size: 22px;
	}

	.pricing-link {
		font-size: 13px;
	}

	.flow-subtitle {
		margin-bottom: 34px;
	}

	.flow-timeline {
		display: grid;
		grid-template-columns: 1fr;
		gap: 0;
	}

	.flow-timeline::before {
		display: none;
	}

	.flow-step {
		grid-template-columns: 26px 54px minmax(0, 1fr);
		grid-template-areas:
			"dot icon label"
			"line icon title"
			"line icon text";
		justify-items: start;
		column-gap: 14px;
		padding: 0 0 28px;
		text-align: left;
	}

	.flow-step:not(:last-child)::after {
		content: "";
		grid-area: line;
		width: 2px;
		height: 140%;
		justify-self: center;
		border-left: 2px dotted #0b75ff;
	}

	.flow-step-label {
		grid-area: label;
		font-size: 13px;
	}

	.flow-dot {
		grid-area: dot;
		width: 18px;
		height: 18px;
		margin: 2px auto 0;
	}

	.flow-icon {
		grid-area: icon;
		width: 48px;
		height: 48px;
		margin: 0;
	}

	.flow-step h3 {
		grid-area: title;
		margin-top: 5px;
		font-size: 16px;
	}

	.flow-step i {
		display: none;
	}

	.flow-step p {
		grid-area: text;
		margin-top: 6px;
		font-size: 14px;
		line-height: 1.4;
	}

	.flow-step p br {
		display: none;
	}

	.faq-illust {
		display: none;
	}

	.faq-list summary {
		grid-template-columns: 42px minmax(0, 1fr) 24px;
		min-height: 64px;
		padding: 16px 18px;
		font-size: 16px;
	}

	.faq-list summary span {
		font-size: 24px;
	}

	.faq-list summary::after {
		font-size: 26px;
	}

	.faq-answer {
		grid-template-columns: 34px minmax(0, 1fr);
		gap: 8px;
		padding: 0 18px 18px;
	}

	.faq-answer > span {
		font-size: 24px;
	}

	.faq-answer p {
		font-size: 14px;
	}

	.curriculum-final p {
		font-size: 19px;
	}
}

@media (max-width: 1300px) {
	.why-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1120px) {
	.fv-container {
		width: min(100%, 760px);
	}

	.fv-nav {
		display: none;
	}

	.fv-header-inner {
		gap: 18px;
	}

	.fv-header-btns {
		margin-left: auto;
	}

	.fv-hero-inner {
		grid-template-columns: 1fr;
		gap: 28px;
		padding: 48px 0 56px;
	}

	.fv-hero-copy {
		max-width: 760px;
		text-align: center;
	}

	.fv-hero h1 {
		font-size: 6vw;
	}

	.fv-hero-visual {
		width: min(520px, 100%);
		height: 430px;
		justify-self: center;
	}

	.fv-laptop {
		left: 22px;
		width: 430px;
	}

	.fv-hv-blue {
		right: 34px;
		width: 350px;
		height: 350px;
	}

	.nav-links {
		display: none;
	}

	.hero {
		min-height: auto;
	}

	.hero-grid,
	.compare {
		grid-template-columns: 1fr;
	}

	.hero-grid {
		flex-direction: column;
		align-items: stretch;
	}

	.hero-grid > div:first-child {
		flex-basis: auto;
	}

	.hero-visual {
		min-height: 440px;
	}

	.hero-photo {
		min-height: 440px;
		border-radius: 34px;
	}

	.hero-image {
		width: min(680px, 100%);
		height: auto;
		margin: 0 auto;
	}

	.feature-strip {
		grid-template-columns: 1fr;
		margin-top: 28px;
	}

	.compare {
		gap: 20px;
	}

	.integrations {
		padding-top: 80px;
		padding-bottom: 80px;
	}

	.integration-orb-blue {
		right: -112px;
		top: auto;
		bottom: -124px;
		width: 150px;
		height: 150px;
	}

	.integration-orb-yellow {
		right: 42px;
		top: auto;
		bottom: 10px;
		width: 118px;
		height: 118px;
	}

	.integration-orb-red {
		right: -34px;
		top: auto;
		bottom: 168px;
		width: 88px;
		height: 88px;
	}

	.positioning-table {
		grid-template-columns: 160px minmax(300px, 1fr) minmax(300px, 1fr);
	}

	.positioning-row > div {
		padding: 0 22px;
		font-size: 17px;
	}

	.table-head > div {
		font-size: 18px;
	}

	.positioning h2 {
		white-space: normal;
	}

	.positioning-cta {
		grid-template-columns: 220px minmax(0, 1fr);
	}

	.positioning-person {
		width: 220px;
	}

	.positioning-actions {
		grid-template-columns: 1fr;
		max-width: 430px;
	}

	.why-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.arrow {
		justify-self: center;
		transform: rotate(90deg);
	}
}

@media (min-width: 721px) and (max-width: 900px) {
	.positioning-table {
		grid-template-columns: 128px minmax(0, 1fr) minmax(0, 1fr);
	}

	.positioning-row > div {
		gap: 12px;
		padding: 0 14px;
		font-size: 15px;
	}

	.table-head > div {
		min-height: 66px;
		padding: 12px 10px;
		font-size: 15px;
		line-height: 1.35;
		white-space: normal;
		overflow-wrap: anywhere;
		text-align: center;
	}

	.row-icon {
		width: 26px;
		height: 26px;
	}
}

@media (max-width: 720px) {
	.section + .section,
	.fv-hero + script + .section,
	.mid-area {
		margin-top: 80px;
	}

	.section + .section::before,
	.fv-hero + script + .section::before,
	.mid-area > .section:first-child::before {
		top: -40px;
	}

	h2 {
		font-size: 26px;
	}

	.problem h2,
	.solution h2,
	.integrations h2,
	.why-us h2,
	.positioning h2,
	.outcomes h2,
	.goals h2 {
		font-size: 26px;
	}

	.fv-container {
		width: 100%;
	}

	.fv-header {
		position: relative;
	}

	.fv-header-inner {
		height: auto;
		min-height: 62px;
	}

	.fv-logo {
		font-size: 18px;
	}

	.fv-logo-mark {
		width: 25px;
		height: 25px;
		border-radius: 6px;
		font-size: 10px;
	}

	.fv-header-btns {
		display: none;
	}

	.fv-hero-inner {
		gap: 0;
		padding: 15px 0 44px;
	}

	.fv-hero-badge {
		font-size: 11px;
		padding: 5px 14px;
	}

	.fv-hero h1 {
		font-size: 7.5vw;
		line-height: 1.35;
		text-align: center;
	}

	.fv-hero-copy {
		width: 100%;
		max-width: 100%;
		padding: 0 16px;
		box-sizing: border-box;
	}

	.fv-hero-lead {
		font-size: 13px;
		line-height: 1.4;
		max-width: none;
	}

	.fv-checks {
		display: flex;
		flex-wrap: nowrap;
		flex-direction: row;
		align-items: stretch;
		justify-content: space-between;
		width: 100%;
		max-width: 100%;
		gap: 8px;
		margin-bottom: 25px;
	}

	.fv-check-item {
		display: block;
		flex: 1 1 0;
		width: auto;
		max-width: none;
		min-width: 0;
		text-align: center;
	}

	.fv-check-item:nth-child(3) {
		grid-column: auto;
		width: auto;
		justify-self: auto;
	}

	.fv-check-icon {
		margin: 0 auto 8px;
	}

	.fv-check-text {
		display: block;
		font-size: 9px;
		line-height: 1.4;
		overflow-wrap: anywhere;
	}

	.fv-cta-group {
		display: grid;
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.fv-btn {
		width: 100%;
		min-height: 54px;
		padding: 12px 18px;
	}

	.fv-hero-visual {
		width: min(520px, 100%);
		margin-right: auto;
		margin-left: auto;
		height: 330px;
		margin-top: 8px;
		transform: scale(0.84);
		transform-origin: top center;
	}

	.fv-laptop {
		left: 50%;
		top: 20px;
		width: 410px;
		transform: translateX(-50%);
	}

	.fv-hv-blue {
		display: none;
	}

	.fv-hv-pink {
		right: 306px;
		top: 320px;
		z-index: -1;
	}

	.fv-hv-yellow-b {
		right: -95px;
		bottom: 226px;
		top: 0;
	}

	.fv-dots-top {
		left: auto;
		right: 6px;
		top: 56px;
	}

	.fv-dots-bottom {
		left: 6px;
		bottom: 10px;
	}

	.bubble-a {
		right: -18px;
		top: 118px;
	}

	.bubble-b {
		right: 10px;
		top: 720px;
	}

	.bubble-c {
		left: -10px;
		top: 1160px;
	}

	.color-dot-a {
		right: 10px;
		top: 352px;
	}

	.color-dot-b {
		right: 14px;
		top: 620px;
	}

	.color-dot-c {
		right: 10px;
		top: 1100px;
	}

	.dot-b {
		right: -48px;
		top: 7rem;
	}

	.dot-a,
	.dot-c,
	.dot-j {
		left: -52px;
	}

	.dot-d,
	.dot-e,
	.dot-g,
	.dot-i,
	.dot-k {
		right: -52px;
	}

	.color-dot-b {
		right: -18px;
		top: 43rem;
	}

	.color-dot-c {
		right: -18px;
		top: 48rem;
	}

	.nav {
		padding-top: 18px;
	}

	.brand {
		font-size: 22px;
	}

	.brand-mark {
		width: 34px;
		height: 18px;
		border-width: 4px;
	}

	.nav-cta {
		display: none;
	}

	.hero-grid {
		padding-top: 58px;
	}

	h1 {
		font-size: 35px;
	}

	.line-keep {
		white-space: normal;
	}

	.button {
		flex-basis: 100%;
		font-size: 16px;
		padding-left: 22px;
	}

	.hero-visual,
	.hero-photo {
		min-height: 360px;
	}

	.hero-actions {
		max-width: none;
	}

	.hero-image {
		width: min(520px, 116%);
		height: auto;
	}

	.mini-card {
		min-height: 120px;
		padding: 22px;
	}

	.mini-card strong {
		font-size: 20px;
	}

	.compare-body {
		grid-template-columns: 1fr;
	}

	.compare-list li {
		grid-template-columns: 36px minmax(0, 1fr);
		gap: 12px;
		font-size: 15px;
	}

	.compare-person {
		max-width: none;
		min-width: 0;
		width: 50%;
		justify-self: center;
	}

	.integrations,
	.why-us,
	.positioning {
		padding-top: 64px;
		padding-bottom: 64px;
	}

	.integrations h2,
	.why-us h2,
	.positioning h2 {
		font-size: 26px;
		white-space: normal;
	}

	.mid-area {
		padding-bottom: 72px;
	}

	.mid-area > .section:first-child::before {
		top: -40px;
	}

	.tool-grid {
		grid-template-columns: 1fr;
		gap: 12px;
		margin-top: 30px;
	}

	.tool-card {
		min-height: 86px;
		padding: 16px;
	}

	.why-subtitle {
		font-size: 16px;
	}

	.positioning-table {
		display: block;
		margin-top: 42px;
		border-radius: 16px;
		overflow: visible;
		padding-top: 18px;
	}

	.positioning-row {
		display: grid;
		grid-template-columns: 1fr;
	}

	.positioning-row > div {
		min-height: 64px;
		padding: 14px 18px;
		border-bottom: 1px dashed rgba(185, 202, 226, 0.9);
		font-size: 15px;
	}

	.table-head > div:first-child {
		display: none;
	}

	.table-head > div {
		min-height: 54px;
	}

	.our-head {
		border-radius: 0;
	}

	.recommend-badge {
		top: 0;
		left: 50%;
		right: auto;
		min-width: auto;
		padding: 5px 12px;
		border-width: 2px;
		font-size: 12px;
		transform: translate(-50%, -50%);
	}

	.row-label {
		background: rgba(245, 249, 255, 0.9);
	}

	.row-icon {
		width: 34px;
		height: 34px;
		font-size: 18px;
	}

	.our-cell {
		border-left: 0;
		border-right: 0;
	}

	.positioning-row:last-child .our-cell {
		border-bottom: 1px dashed rgba(185, 202, 226, 0.9);
		border-radius: 0;
	}

	.yes-mark,
	.no-mark {
		width: 32px;
		height: 32px;
		font-size: 20px;
	}

	.positioning-cta {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 32px;
		padding: 24px 18px;
		text-align: center;
	}

	.positioning-person {
		width: 210px;
		height: 150px;
		justify-self: center;
	}

	.positioning-copy p {
		font-size: 20px;
	}

	.positioning-actions {
		max-width: none;
		gap: 12px;
	}

	.positioning-actions .button {
		min-height: 54px;
		font-size: 17px;
		padding-left: 18px;
	}

	.why-grid {
		grid-template-columns: 1fr;
		gap: 16px;
		margin-top: 34px;
	}

	.why-card {
		min-height: auto;
		padding: 24px 20px;
	}

	.why-number {
		left: 20px;
		top: 24px;
		font-size: 36px;
	}

	.why-illustration-slot {
		margin-top: 10px;
	}

	.why-card h3 {
		min-height: auto;
		font-size: 20px;
	}

	.why-card p {
		font-size: 15px;
		line-height: 1.8;
	}

	.section-note {
		align-items: center;
		justify-content: center;
		font-size: 14px;
	}
}

@media (max-width: 1120px) {
	.outcomes,
	.goals,
	.curriculum {
		padding-top: 72px;
		padding-bottom: 72px;
	}

	.goal-grid {
		grid-template-columns: 1fr;
	}

	.goal-card img {
		width: 100%;
		max-width: 360px;
	}

	.goal-card-media {
		display: block;
	}

	.goals-cta {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.goals-button {
		width: min(680px, 100%);
		justify-self: center;
	}

	.goals-button-wrap {
		justify-items: center;
	}

	.goals-time {
		justify-content: center;
	}

	.curriculum h2 {
		font-size: 44px;
		line-height: 1.7;
		white-space: normal;
	}

	.curriculum h2 span {
		font-size: 1.15em;
	}

	.curriculum-columns {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.curriculum-plus {
		position: relative;
		left: auto;
		top: auto;
		margin: -2px auto;
		transform: none;
	}

	.curriculum-panel {
		min-height: auto;
	}

	.curriculum-final {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.final-people {
		justify-self: center;
	}
}

@media (max-width: 1024px) {
	.outcomes-head {
		grid-template-columns: 1fr;
		gap: 18px;
		text-align: center;
	}

	.outcomes-hero {
		width: min(320px, 72vw);
		justify-self: center;
		margin-top: 0;
	}

	.outcome-tabs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.outcome-row {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 14px;
		align-items: center;
	}

	.outcome-arrow {
		width: 35px;
		height: 35px;
		font-size: 25px;
		align-self: center;
		transform: rotate(90deg);
	}

	.outcome-card.before,
	.outcome-card.after {
		grid-template-columns: 92px minmax(0, 1fr);
		grid-template-areas:
			"state state"
			"media text";
		gap: 0 10px;
		text-align: left;
		padding: 0;
	}

	.outcome-card.after {
		gap: 0 10px;
	}

	.after-visual {
		width: min(340px, 100%);
		justify-self: center;
	}
}

@media (max-width: 720px) {
	.outcomes h2,
	.goals h2,
	.curriculum h2 {
		font-size: 26px;
		line-height: 1.7;
	}

	.curriculum h2 span {
		font-size: 1.45em;
	}

	.curriculum-panel {
		padding: 14px;
	}

	.curriculum-panel-head {
		gap: 12px;
	}

	.curriculum-panel-head p {
		font-size: 14px;
	}

	.curriculum-panel-head span {
		min-width: 70px;
		min-height: 30px;
		font-size: 12px;
	}

	.curriculum-panel h3 {
		font-size: 20px;
		text-align: left;
	}

	.week-list {
		gap: 22px;
		margin-top: 26px;
	}

	.week-list h4 {
		font-size: 17px;
	}

	.week-list p {
		font-size: 13px;
		line-height: 1.4;
	}

	.personalized-body {
		font-size: 14px;
		line-height: 1.8;
	}

	.personalized-examples-label {
		font-size: 15px;
	}

	.course-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.course-card {
		min-height: auto;
		padding: 14px 12px;
	}

	.course-card p {
		font-size: 12px;
	}

	.course-icon {
		transform: scale(0.78);
		transform-origin: center;
		margin: 12px auto;
	}

	.course-card h4 {
		font-size: 13px;
		line-height: 1.4;
	}

	.course-card small,
	.course-card > span {
		font-size: 12px;
		line-height: 1.4;
	}

	.curriculum-final {
		padding: 20px 16px;
	}

	.final-label {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 10px;
		font-size: 14px;
	}

	.curriculum-final p {
		font-size: 19px;
	}

	.outcome-tabs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.outcome-tabs button {
		width: 100%;
		min-height: 52px;
		font-size: 15px;
	}

	.outcome-tabs button.wide {
		grid-column: 1 / -1;
	}

	.outcome-card {
		min-height: auto;
		width: 100%;
		max-width: 100%;
		gap: 0 10px;
		overflow: hidden;
	}

	.outcome-card.before,
	.outcome-card.after {
		grid-template-columns: 92px minmax(0, 1fr);
		grid-template-areas:
			"state state"
			"media text";
		align-items: center;
		gap: 0 10px;
		padding: 0;
		text-align: left;
	}

	.outcome-card .state {
		grid-area: state;
		justify-self: start;
		min-height: 26px;
		min-width: 78px;
		padding: 3px 12px;
		font-size: 12px;
	}

	.outcome-placeholder,
	.outcome-asset {
		grid-area: media;
		width: 92px;
		max-width: 92px;
		height: auto;
		justify-self: center;
	}

	.outcome-asset-docs,
	.outcome-asset-flow,
	.outcome-asset-research {
		max-width: 116px;
	}

	.outcome-card strong {
		grid-area: text;
		min-width: 0;
		margin-top: 0;
		font-size: 16px;
		line-height: 1.45;
		text-align: left;
	}

	.outcome-card.after strong {
		font-size: 16px;
	}

	.after-visual {
		grid-area: media;
		justify-self: center;
	}

	.after-visual {
		width: 120px;
		min-height: 74px;
		gap: 8px;
	}

	.docs-visual {
		transform: scale(0.72);
		transform-origin: center;
	}

	.flow-visual,
	.research-visual {
		transform: scale(0.62);
		transform-origin: center;
	}

	.goal-card {
		padding: 26px 22px 28px;
	}

	.goal-card h3 {
		font-size: 25px;
	}

	.goal-card h3 span {
		font-size: inherit;
	}

	.goal-card img {
		width: 100%;
		max-width: none;
		margin: 0;
	}

	.goal-card strong {
		font-size: 20px;
		text-align: left;
	}

	.goal-card-media {
		display: grid;
		grid-template-columns: 30% minmax(0, 1fr);
		gap: 14px;
		border-top: 1px solid #c2c2c2;
		padding: 15px 0;
		border-bottom: 1px solid #c2c2c2;
	}

	.goal-card p {
		font-size: 15px;
		line-height: 1.4;
	}

	.mobile-break {
		display: inline;
	}

	.goals-cta {
		padding: 20px 16px;
		gap: 18px;
	}

	.goals-time {
		font-size: 23px;
	}

	.goals-button {
		grid-template-columns: minmax(0, 1fr) 40px;
		min-height: 66px;
		/* SPでラベルが2行に折り返していたため、余白と字間を詰めて1行に収める（#335） */
		padding: 10px 10px 10px 12px;
		font-size: 17px;
		letter-spacing: -0.03em;
	}

	.goals-button-copy strong {
		white-space: normal;
		font-size: 18px;
	}

	.goals-button-wrap {
		justify-items: stretch;
	}

	.goals-button-note {
		font-size: 11px;
	}

	.goals-button-arrow {
		width: 35px;
		height: 35px;
		font-size: 20px;
	}
}

@media (max-width: 720px) {
	.pricing-link {
		font-size: 16px;
	}

	.community-section {
		padding-top: 80px;
		padding-bottom: 80px;
	}

	.community-grid {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 28px;
	}

	.community-card {
		display: grid;
		grid-template-columns: 80px minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		column-gap: 14px;
		align-items: center;
		min-height: auto;
		padding: 22px 20px 24px;
	}

	.community-number {
		position: static;
		font-size: 34px;
		text-align: left;
		grid-column: 1 / -1;
		grid-row: 1;
		margin: 0 0 6px;
	}

	.community-icon {
		width: 80px;
		height: auto;
		margin: 4px 0 10px;
		grid-column: 1;
		grid-row: 2;
	}

	.community-card h3 {
		font-size: 20px;
		text-align: left;
		grid-column: 2;
		grid-row: 2;
	}

	.community-card p {
		grid-column: 1 / -1;
		grid-row: 3;
		margin-top: 0;
		padding-top: 10px;
		font-size: 16px;
		line-height: 1.4;
	}

	.community-banner {
		width: 100%;
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 14px;
		padding: 22px 20px 24px;
	}

	.community-banner-icon {
		width: 72px;
		height: 72px;
	}

	.community-banner-copy strong {
		font-size: 22px;
	}

	.community-banner-copy p {
		font-size: 16px;
	}

	.community-banner-copy {
		text-align: left;
	}

	.corporate-section {
		padding-left: 0;
		padding-right: 0;
		padding-top: 30px;
		padding-bottom: 30px;
	}

	.corporate-panel {
		width: 100%;
		padding: 60px 18px 34px;
		border-radius: 22px;
	}

	.corporate-panel::before {
		left: 50%;
		width: 100vw;
		top: 18px;
		transform: translateX(-50%);
	}

	.corporate-panel::after {
		left: 50%;
		width: 100vw;
		bottom: 18px;
		transform: translateX(-50%);
	}

	.corporate-pill {
		min-width: 0;
		min-height: 0;
		font-size: 15px;
		letter-spacing: 0.1em;
	}

	.corporate-panel h2 {
		margin-top: 28px;
		font-size: 27px;
	}

	.ring-blob,
	.bg-blob,
	.section-blob {
		display: none;
	}

	.section-dot-grid.grid-tl {
		left: 6px;
		top: 12px;
	}

	.section-dot-grid.grid-tr {
		right: 6px;
		top: 12px;
	}

	.section-dot-grid.grid-bl {
		left: 6px;
		bottom: 12px;
	}

	.section-dot-grid.grid-br {
		right: 6px;
		bottom: 12px;
	}

	.section-color-dot.dot-blue {
		right: 10px;
		top: 74px;
	}

	.section-color-dot.dot-yellow {
		right: 14px;
		top: 112px;
	}

	.section-color-dot.dot-red {
		right: 8px;
		bottom: 22px;
	}

	.corporate-lead {
		margin-top: 18px;
		font-size: 16px;
		line-height: 1.85;
	}

	.corporate-cta {
		width: 90%;
		min-width: 0;
		margin-top: 30px;
		padding: 18px;
		font-size: 18px;
	}

	.corporate-icon {
		transform: scale(0.82);
		z-index: 0;
	}

	.corporate-icon-users {
		top: 54px;
		left: 22px;
	}

	.corporate-icon-chart {
		top: 66px;
		right: 20px;
	}

	.corporate-icon-building {
		left: 26px;
		bottom: 110px;
	}

	.corporate-icon-cap {
		right: 24px;
		bottom: 108px;
	}

	.corporate-grid {
		transform: scale(0.84);
	}

	.corporate-grid-tl {
		top: 142px;
		left: 28px;
	}

	.corporate-grid-br {
		right: 24px;
		bottom: 96px;
	}

	.corporate-color-dot-l {
		left: 60px;
		top: 152px;
	}

	.corporate-color-dot-r {
		right: 70px;
		bottom: 122px;
	}

	.corporate-dot-left {
		left: calc(50% - 144px);
	}

	.corporate-dot-right {
		right: calc(50% - 144px);
	}
}

/* ===== FV v2（2026-07 デザインリニューアル / FV.psd 再現） =====
   旧FVに戻す場合: FirstViewLegacy.tsx を使用（fv-hero 系の旧CSSは上に残置） */

.fv2 {
	background: #f4f5f7;
}

.fv2-inner {
	position: relative;
	max-width: 1512px;
	margin: 0 auto;
	aspect-ratio: 1512 / 1000;
	overflow: hidden;
}

.fv2-copy {
	position: absolute;
	left: 5.2%;
	top: 12%;
	z-index: 3;
	width: 62%;
}

.fv2-badge {
	display: inline-block;
	margin-bottom: clamp(14px, 1.8vw, 26px);
	padding: 7px 22px;
	border: 2px solid #1d5fd0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.85);
	color: #1d5fd0;
	font-size: clamp(11px, 1vw, 15px);
	font-weight: 700;
	letter-spacing: 0.08em;
}

.fv2-title {
	margin: 0 0 clamp(16px, 2vw, 30px);
	color: #2e3138;
	font-size: clamp(42px, 5.55vw, 84px);
	font-weight: 900;
	line-height: 1.22;
	letter-spacing: 0.03em;
}

.fv2-title-sm {
	font-size: 0.68em;
}

.fv2-title-blue {
	position: relative;
	z-index: 0;
	display: inline-block;
	color: #1d5fd0;
}

.fv2-title-blue::after {
	content: "";
	position: absolute;
	right: -0.28em;
	bottom: -0.04em;
	left: -0.04em;
	z-index: -1;
	height: 0.22em;
	background: var(--brand);
}

.fv2-lead {
	margin: 0 0 clamp(20px, 2.6vw, 40px);
	color: #33363e;
	font-size: clamp(14px, 1.5vw, 22px);
	font-weight: 700;
	line-height: 1.85;
}

.fv2-cta-group {
	display: flex;
	gap: clamp(12px, 1.9vw, 28px);
	align-items: stretch;
}

.fv2-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: clamp(52px, 4.8vw, 72px);
	padding: 10px clamp(20px, 2.6vw, 40px);
	border-radius: 10px;
	font-size: clamp(14px, 1.32vw, 20px);
	font-weight: 700;
	text-decoration: none;
	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.fv2-btn:hover {
	opacity: 0.88;
}

.fv2-btn:active {
	transform: translateY(1px);
}

.fv2-btn-black {
	background: #17181d;
	color: #fff;
}

.fv2-btn-line {
	border: 2px solid #14306b;
	background: #fff;
	color: #14306b;
}

.fv2-arrow {
	display: inline-flex;
	align-items: center;
}

.fv2 .lp-cta-note {
	margin-top: 14px;
}

/* --- ビジュアル（写真コラージュ＋装飾） --- */

.fv2-visual {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.fv2-img {
	position: absolute;
	height: auto;
	filter: drop-shadow(0 6px 24px rgba(23, 48, 90, 0.12));
}

.fv2-circle {
	position: absolute;
	left: 48.5%;
	top: 6.8%;
	width: 45.3%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: #dfe6f3;
}

.fv2-img02 {
	left: 65.4%;
	top: 2.9%;
	width: 28%;
	z-index: 1;
}

.fv2-img01 {
	left: 35.9%;
	top: 19.8%;
	width: 32%;
	z-index: 2;
}

.fv2-img03 {
	left: 66.7%;
	bottom: -1%;
	width: 36.2%;
	z-index: 3;
}

.fv2-ring {
	position: absolute;
	left: 38.5%;
	top: 50%;
	width: 15.5%;
	aspect-ratio: 1;
	border: 5px solid var(--brand);
	border-radius: 50%;
}

.fv2-chart {
	position: absolute;
	left: 30%;
	top: 15.5%;
	width: 19%;
	height: auto;
}

.fv2-dots {
	position: absolute;
	background-image: radial-gradient(currentColor 2.4px, transparent 2.9px);
	background-size: 22px 22px;
}

.fv2-dots-tl {
	left: 2.3%;
	top: 5.8%;
	width: 8%;
	height: 9%;
	color: #d3d7df;
}

.fv2-dots-tr {
	left: 90.5%;
	top: 8.5%;
	width: 7%;
	height: 8.5%;
	color: #2b62d9;
}

.fv2-dots-br {
	left: 74.5%;
	top: 90%;
	width: 6.5%;
	height: 6.5%;
	color: #d8322f;
}

@media (max-width: 720px) {
	.fv2-inner {
		aspect-ratio: auto;
		overflow: visible;
		padding: 28px 20px 0;
	}

	.fv2 {
		overflow: hidden;
	}

	.fv2-copy {
		position: static;
		width: 100%;
	}

	.fv2-badge {
		display: none;
	}

	.fv2-title {
		font-size: clamp(34px, 11vw, 46px);
		line-height: 1.28;
	}

	.fv2-title-blue::after {
		right: -20vw;
	}

	.fv2-visual {
		position: relative;
		inset: auto;
		height: 96vw;
		margin: 6px -20px 18px;
	}

	.fv2-circle {
		left: 6%;
		top: 34%;
		width: 88%;
	}

	.fv2-img01 {
		left: -7%;
		top: 12%;
		width: 44%;
	}

	.fv2-img02 {
		left: 29%;
		top: 0;
		width: 39%;
	}

	.fv2-img03 {
		left: 62%;
		top: 22%;
		bottom: auto;
		width: 48%;
	}

	.fv2-ring,
	.fv2-chart,
	.fv2-dots {
		display: none;
	}

	.fv2-lead {
		font-size: 15px;
		line-height: 1.7;
	}

	.fv2-cta-group {
		display: grid;
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.fv2-btn {
		width: 100%;
		min-height: 56px;
	}

	.fv2 .lp-cta-note {
		padding-bottom: 8px;
	}
}

/* ===== FV v3（1枚画像＋CTAボタンのみコーディング） =====
   画像: fv_main_pc.webp / fv_main_sp.webp（FV.psd からボタン抜きで書き出し）
   ボタン位置は --fv3-* 変数で画像の実寸に合わせて調整する。
   フルコーディング版に戻す場合: FirstViewFullCoded.tsx（fv2 系CSSは上に残置） */

.fv3 {
	/* PC: 画像左下（リード文の下）の空きスペースに合わせて調整 */
	--fv3-cta-left: 5.9%;
	--fv3-cta-bottom: 9%;
	/* フル幅表示のため .section の幅制限・余白を打ち消す */
	max-width: none;
	padding: 0;
	background: #f4f5f7;
}

.fv3-inner {
	position: relative;
	width: 100%;
}

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

.fv3-cta-group {
	position: absolute;
	bottom: var(--fv3-cta-bottom);
	left: var(--fv3-cta-left);
	z-index: 1;
	display: flex;
	gap: clamp(12px, 1.9vw, 28px);
	align-items: stretch;
	width: max-content;
}

.fv3-cta-group .fv2-btn {
	white-space: nowrap;
}

@media (max-width: 720px) {
	.fv3 {
		/* SP: 画像内のボタン用余白に合わせて調整 */
		--fv3-cta-left: 20px;
		--fv3-cta-bottom: 5%;
	}

	.fv3-cta-group {
		right: 20px;
		display: grid;
		grid-template-columns: 1fr;
		gap: 12px;
		width: auto;
	}

	.fv3-cta-group .fv2-btn {
		width: 100%;
		min-height: 56px;
	}
}

/* ------------------------------------------------------------------
   給付金（Reスキル講座 / 最大80%）— 2026-09 追加
   PRICING セクション内で「受講料 − 給付金 = 実質負担」を提示する
------------------------------------------------------------------ */
.subsidy-card {
	width: min(920px, 100%);
	margin: 34px auto 0;
	padding: 28px;
	border: 2px solid #0b75ff;
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--shadow);
}

.subsidy-logos {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
}

.subsidy-logo {
	width: min(220px, 40%);
	height: auto;
}

.subsidy-breakdown {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr) 28px minmax(0, 1fr);
	align-items: stretch;
	gap: 8px;
	margin-top: 24px;
}

.subsidy-cell {
	padding: 18px 12px;
	border: 1px solid #e0e8f0;
	border-radius: 14px;
	background: #f7faff;
	text-align: center;
}

.subsidy-cell-net {
	border-color: #0b75ff;
	background: #0b75ff;
}

.subsidy-cell-label {
	margin: 0;
	color: #64708a;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}

.subsidy-cell-net .subsidy-cell-label {
	color: rgba(255, 255, 255, 0.82);
}

.subsidy-cell-value {
	margin: 6px 0 0;
	color: #0f1d33;
	font-family: var(--number-font);
	font-size: clamp(24px, 3.4vw, 36px);
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.2;
}

.subsidy-cell-value-red {
	color: #ff321c;
}

.subsidy-cell-net .subsidy-cell-value {
	color: #ffe14d;
}

.subsidy-op {
	display: grid;
	place-items: center;
	color: #64708a;
	font-size: 22px;
	font-weight: 600;
}

.subsidy-detail {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	margin-top: 26px;
	padding-top: 24px;
	border-top: 1px solid #e0e8f0;
}

.subsidy-detail-title {
	margin: 0 0 10px;
	color: #0f1d33;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.5;
}

.subsidy-list {
	display: grid;
	gap: 8px;
}

.subsidy-list li {
	position: relative;
	padding-left: 18px;
	color: #334057;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.7;
}

.subsidy-list li::before {
	position: absolute;
	top: 0.55em;
	left: 2px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #0b75ff;
	content: "";
}

.subsidy-link {
	width: min(560px, 100%);
	min-height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 26px auto 0;
	padding: 12px 24px;
	border-radius: 999px;
	background: #eaf4ff;
	color: #0b56e7;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	text-decoration: underline;
	box-shadow: var(--shadow);
}

.pricing-plan-lead {
	margin: 44px 0 0;
	color: #334057;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.6;
	text-align: center;
}

/* FV 直下の給付金バッジ（画像には焼き込まないためコーディングで補う） */
.fv3-subsidy-bar {
	display: flex;
	justify-content: center;
	padding: 16px 16px 20px;
	background: #f4f5f7;
	text-align: center;
}

.fv3-subsidy-badge {
	display: inline-block;
	margin: 0;
	padding: 8px 18px;
	text-align: center;
	border-radius: 999px;
	background: #0f1d33;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	box-shadow: var(--shadow);
}

.fv3-subsidy-badge strong {
	color: #ffe14d;
	font-weight: 600;
}

@media (max-width: 720px) {
	.subsidy-card {
		padding: 20px 16px;
	}

	.subsidy-breakdown {
		grid-template-columns: minmax(0, 1fr);
		gap: 6px;
	}

	.subsidy-cell {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 12px;
		padding: 14px 16px;
		text-align: left;
	}

	.subsidy-cell-value {
		font-size: 26px;
	}

	.subsidy-op {
		font-size: 18px;
	}

	.subsidy-detail {
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
	}

	.fv3-subsidy-bar {
		padding: 12px 12px 16px;
	}

	.fv3-subsidy-badge {
		padding: 7px 14px;
		font-size: 13px;
	}
}
