@charset "UTF-8";

.blue {
	color: #0071bc;
}

strong.blue {
	font-weight: inherit;
}

.en {
	font-family: var(--font-en);
}

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

.kakumei-head {
	position: relative;
	padding-left: 50px;
	max-width: 1014px;
	margin: 0 auto 80px;
	width: 100%;
}

.kakumei-head::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 20px;
	height: 139px;
	background: linear-gradient(to bottom, #0071bc, #2e3192);
}

.kakumei-head h2 {
	font-size: 56px;
	line-height: 1.3;
	letter-spacing: .02em;
	color: #1a1a1a;
	margin-bottom: 14px;
	white-space: nowrap;
}

.kakumei-head h2 .blue {
	font-size: 82px;
	font-weight: 900;
	margin-left: 8px;
}

.kakumei-head p {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: .05em;
}

.kakumei-scroll {
	height: calc(738px + 200vh);
	position: relative;
}

.kakumei-stage {
	position: sticky;
	top: calc(var(--header-h) + var(--products-h));
	height: 738px;
	background: linear-gradient(to bottom, #ffffff, #eff6ff);
	overflow: hidden;
}

.kakumei-stage-inner {
	max-width: 1200px;
	width: calc(100% - 50px);
	margin: 0 auto;
	position: relative;
	height: 100%;
}

.kakumei-tabs {
	position: absolute;
	left: 268px;
	right: 0;
	top: 80px;
	display: flex;
	height: 72px;
	border-radius: 36px;
	overflow: hidden;
}

.kakumei-tabs span {
	width: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .1em;
}

.kakumei-tabs .tab-other {
	background: #333;
}

.kakumei-tabs .tab-secu {
	background: linear-gradient(90deg, #5c88c7, #2c3ea0);
}

.kakumei-panels {
	position: absolute;
	inset: 0;
}

.kakumei-panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 256px;
	height: 440px;
	opacity: 0;
	transform: translateY(60px);
	transition: opacity .6s ease, transform .6s ease;
	pointer-events: none;
}

.kakumei-panel.is-active {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
	z-index: 2;
}

.kakumei-panel.is-out-up {
	transform: translateY(-60px);
}

.kakumei-panel.is-out-down {
	transform: translateY(60px);
}

.kk-badge {
	position: absolute;
	left: 0;
	top: 0;
	width: 270px;
	height: 270px;
	border-radius: 50%;
	background: linear-gradient(135deg, #2e3192, #0071bc);
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 8px;
}

.kk-badge::after {
	content: "";
	position: absolute;
	right: -14px;
	top: 50%;
	transform: translateY(-50%);
	border-top: 17px solid transparent;
	border-bottom: 17px solid transparent;
	border-left: 22px solid #1c5fb6;
	z-index: -1;
}

.kk-num {
	font-size: 26px;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1;
}

.kk-num em {
	font-family: var(--font-en);
	font-style: italic;
	font-weight: 700;
	font-size: 30px;
	margin-left: 4px;
}

.kk-name {
	font-size: 26px;
	font-weight: 700;
	color: #fff100;
	line-height: 1.35;
	letter-spacing: .05em;
}

.kk-content {
	position: absolute;
	left: 300px;
	top: 0;
	right: 0;
}

.risk-title {
	text-align: center;
	font-size: 42px;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1.4;
	margin-bottom: 60px;
}

.risk-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 40px 34px;
	max-width: 1200px;
	margin: 0 auto;
}

.risk-list li {
	width: 377px;
	flex: 0 0 auto;
}

@media screen and (max-width: 1400px) {
	.kakumei-head h2 {
		font-size: 48px;
	}

	.kakumei-head h2 .blue {
		font-size: 70px;
	}
}

@media screen and (max-width: 834px) {
	.kakumei {
		padding-top: 60px;
	}

	.kakumei-head {
		padding-left: 0;
		margin-bottom: 30px;
	}

	.kakumei-head::before {
		display: none;
	}

	.kakumei-head h2 {
		font-size: 24px;
		white-space: normal;
		text-align: center;
		margin-bottom: 14px;
	}

	.kakumei-head h2 .blue {
		font-size: 40px;
		display: block;
		margin: 0;
	}

	.kakumei-head p {
		font-size: 16px;
	}

	.kakumei-scroll {
		height: auto;
	}

	.kakumei-stage {
		position: static;
		height: auto;
		padding: 40px 0 30px;
		overflow: visible;
	}

	.kakumei-stage-inner {
		width: calc(100% - 36px);
	}

	.kakumei-tabs {
		display: none;
	}

	.kakumei-panels {
		position: static;
	}

	.kakumei-panel,
	.kakumei-panel.is-out-up,
	.kakumei-panel.is-out-down {
		position: static;
		height: auto;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		margin-bottom: 40px;
	}

	.kakumei-panel:last-child {
		margin-bottom: 0;
	}

	.kk-badge {
		position: relative;
		width: 150px;
		height: 150px;
		margin: 0 auto 16px;
		gap: 4px;
	}

	.kk-badge::after {
		right: 50%;
		top: auto;
		bottom: -12px;
		transform: translateX(50%);
		border-left: 12px solid transparent;
		border-right: 12px solid transparent;
		border-top: 14px solid #1c5fb6;
		border-bottom: 0;
	}

	.kk-num {
		font-size: 15px;
	}

	.kk-num em {
		font-size: 18px;
	}

	.kk-name {
		font-size: 14px;
	}

	.kk-tabs-sp {
		display: flex;
		height: 45px;
		margin-bottom: 14px;
	}

	.kk-content {
		position: static;
	}

	.kk-content::before {
		content: "他のSOC";
		display: block;
	}

	.kk-content::before {
		display: none;
	}

	.risk-title {
		font-size: 20px;
		margin-bottom: 26px;
	}

	.risk-list {
		display: block;
		max-width: 300px;
		margin: 0 auto;
	}

	.risk-list li {
		width: 100%;
		margin-bottom: 20px;
	}
}

.kakumei-title {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 18px;
}

.kakumei-title .t1 {
	width: 533px;
	margin-bottom: 8px;
}

.kakumei-title .t2 {
	width: 386px;
}

.kakumei-panel:nth-child(1) .kk-content {
	left: 355px;
	right: auto;
	top: 22px;
}

.kakumei-panel:nth-child(2) .kk-content {
	left: 331px;
	right: auto;
	top: -51px;
}

.kakumei-panel:nth-child(3) .kk-content {
	left: 326px;
	right: auto;
	top: 14px;
}

.kakumei-panel:nth-child(4) .kk-content {
	left: 268px;
	right: auto;
	top: -38px;
}

.kakumei-panel:nth-child(5) .kk-content {
	left: 360px;
	right: auto;
	top: -25px;
}

.risk-list li {
	width: 377px;
	height: 377px;
	border-radius: 50%;
	background: #fff;
	position: relative;
	box-shadow: 0 0 20px rgba(0, 0, 0, .12);
}

@media screen and (max-width: 1400px) {
	.kakumei-title .t1 {
		width: 440px;
	}

	.kakumei-title .t2 {
		width: 320px;
	}
}

@media screen and (max-width: 834px) {
	.kakumei-title {
		flex-direction: column;
		align-items: center;
		gap: 6px;
	}

	.kakumei-title .t1 {
		width: 70%;
		max-width: 300px;
		margin-bottom: 0;
	}

	.kakumei-title .t2 {
		width: 60%;
		max-width: 260px;
	}

	.kakumei-panel .kk-content,
	.kakumei-panel:nth-child(n) .kk-content {
		top: auto;
	}

	.risk-list li {
		width: 300px;
		height: 300px;
		margin: 0 auto 20px;
	}
}

@media screen and (max-width: 834px) {
	.risk-title {
		font-size: 18px;
		letter-spacing: .02em;
	}
}

.kakumei-stage {
	background: linear-gradient(to bottom, #fff 74.519%, #eef6ff);
	border-radius: 50px 50px 0 0;
	box-shadow: 0 -5px 15px rgba(171, 182, 196, .2);
	overflow: visible;
}

.kakumei-stage-inner {
	overflow: hidden;
}

.kakumei-stage::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	height: 100vh;
	max-height: 1200px;
	background: #eef6ff;
	pointer-events: none;
}

.policy {
	--arc-r: 116.0417vw;
	position: relative;
	isolation: isolate;
	background: #eef6ff;
	color: #fff;
	padding: 180px 0 120px;
}

.policy::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to bottom, #2088cb, #2c369b);
	-webkit-mask:
		radial-gradient(circle var(--arc-r) at 50% var(--arc-r), #000 calc(var(--arc-r) - 1px), transparent var(--arc-r)) no-repeat,
		linear-gradient(#000, #000) 0 var(--arc-r) / 100% 100% no-repeat;
	mask:
		radial-gradient(circle var(--arc-r) at 50% var(--arc-r), #000 calc(var(--arc-r) - 1px), transparent var(--arc-r)) no-repeat,
		linear-gradient(#000, #000) 0 var(--arc-r) / 100% 100% no-repeat;
}

.policy-head {
	width: 1000px;
	max-width: 100%;
	margin: 0 auto;
}

.policy-title img {
	width: 969px;
	max-width: 100%;
}

.policy-sub {
	margin-top: 60px;
}

.policy-sub img {
	width: 1000px;
	max-width: 100%;
}

.policy .risk-title {
	font-size: 42px;
	line-height: 61px;
	letter-spacing: 0;
	margin: 52px 0 60px;
}

@media screen and (max-width: 834px) {
	.kakumei-stage {
		border-radius: 30px 30px 0 0;
	}

	.kakumei-stage::after {
		display: none;
	}

	.kakumei-stage-inner {
		overflow: visible;
	}

	.policy {
		--arc-r: 97.3333vw;
		padding: 59px 0 60px;
		margin-bottom: calc(100vw / 375 * -85);
		background: linear-gradient(#eef6ff, #eef6ff) 0 0 / 100% var(--arc-r) no-repeat;
	}

	.policy::before {
		background: linear-gradient(to bottom, #2088cb, #2b3da0);
		-webkit-mask:
			radial-gradient(circle var(--arc-r) at 50% var(--arc-r), #000 calc(var(--arc-r) - 1px), transparent var(--arc-r)) no-repeat,
			linear-gradient(#000, #000) 0 var(--arc-r) / 100% calc(100% - var(--arc-r) * 2) no-repeat,
			radial-gradient(circle var(--arc-r) at 50% calc(100% - var(--arc-r)), #000 calc(var(--arc-r) - 1px), transparent var(--arc-r)) no-repeat;
		mask:
			radial-gradient(circle var(--arc-r) at 50% var(--arc-r), #000 calc(var(--arc-r) - 1px), transparent var(--arc-r)) no-repeat,
			linear-gradient(#000, #000) 0 var(--arc-r) / 100% calc(100% - var(--arc-r) * 2) no-repeat,
			radial-gradient(circle var(--arc-r) at 50% calc(100% - var(--arc-r)), #000 calc(var(--arc-r) - 1px), transparent var(--arc-r)) no-repeat;
	}

	.policy .inner {
		max-width: 339px;
	}

	.policy-head {
		width: 100%;
	}

	.policy-title img {
		display: block;
		max-width: 100%;
	}

	.policy-title .policy-lead-sp {
		width: 302px;
		margin: 0 auto 21px;
	}

	.policy-title .policy-h2-sp {
		width: 337px;
	}

	.policy-sub {
		margin-top: 40px;
	}

	.policy-sub img {
		width: 339px;
	}

	.policy .risk-title {
		font-size: 20px;
		line-height: 30px;
		margin: 12px 0 20px;
	}

	.policy .risk-list li {
		width: 275px;
		height: 275px;
		margin: 0 auto 20px;
	}

	.policy .risk-list li:last-child {
		margin-bottom: 0;
	}
}

/* ==========================================================
   FV・AI-SOCとは・代表メッセージ・パートナー（HTMLで組む）
   ========================================================== */
.blue {
	color: #0071bc;
}

.en {
	font-family: var(--font-en);
}

.fv {
	position: relative;
	background: #ebf1f5;
}

.fv-circles {
	display: none;
}

.about {
	position: relative;
	background: linear-gradient(to bottom, #ffffff 0%, #e3f5fd 45%, #bce1f3 100%);
	padding: 36px 0 120px;
}

.about .inner {
	position: relative;
	z-index: 1;
}

.about-intro {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	padding: 0 0 0 74px;
	margin-bottom: 66px;
}

.about-photo {
	width: 475px;
	flex: 0 0 auto;
}

.about-txt {
	flex: 1 1 auto;
	padding-top: 62px;
	max-width: 545px;
}

.about-title {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin-bottom: 22px;
	line-height: 1;
}

.about-title::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: #0071bc;
	margin-left: 10px;
	align-self: center;
}

.about-title .mincho {
	font-size: 42px;
	color: #0071bc;
	letter-spacing: .02em;
}

.about-title .toha {
	font-size: 30px;
	font-weight: 700;
	color: #1a1a1a;
}

.about-txt p {
	font-size: 18px;
	line-height: 1.8;
	letter-spacing: .05em;
	margin-bottom: 10px;
	font-weight: 400;
}

.about-txt p strong {
	font-weight: 700;
	color: #0071bc;
}

.about-card {
	background: #fff;
	border-radius: 30px;
	overflow: hidden;
	box-shadow: 0 10px 40px rgba(0, 60, 120, .12);
}

.about-card-head {
	background: linear-gradient(90deg, #1f87cb, #2e3192);
	color: #fff;
	text-align: center;
	padding: 35px 20px;
}

.about-card-head p {
	font-size: 22px;
	font-weight: 600;
	line-height: 1.73;
	letter-spacing: .05em;
}

.hl {
	color: #fff100;
}

.about-card-head .hl {
	font-size: 1.23em;
}

.about-card-body {
	position: relative;
	padding: 40px 100px 56px 98px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.threats {
	width: 340px;
	flex: 0 0 auto;
	padding-top: 0;
}

.threats li {
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 30px 0 32px;
	border-bottom: 1px solid #b5b5b5;
}

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

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

.threat-ico {
	width: 112px;
	flex: 0 0 auto;
	text-align: center;
}

.threat-ico img {
	width: auto;
	max-height: 128px;
	margin: 0 auto;
}

.threat-txt h3 {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	margin-bottom: 4px;
	color: #0071bc;
}

.threat-txt p {
	font-size: 17px;
	font-weight: 400;
	line-height: 1.9;
	letter-spacing: .04em;
}

.diag-arrow {
	position: absolute;
	left: 514px;
	top: 263px;
	width: 22px;
	height: 38px;
}

.diag-arrow span {
	display: block;
	width: 0;
	height: 0;
	border-top: 19px solid transparent;
	border-bottom: 19px solid transparent;
	border-left: 22px solid #0071bc;
}

.diag {
	position: relative;
	width: 522px;
	height: 471px;
	background: #e9f3fc;
	border-radius: 20px;
	flex: 0 0 auto;
	margin-top: -15px;
}

.diag-aisoc {
	position: absolute;
	left: 45px;
	top: 76px;
	width: 146px;
}

.diag-robot {
	position: absolute;
	right: 5px;
	top: -33px;
	width: 300px;
}

.diag-pill {
	position: absolute;
	left: 62px;
	top: 229px;
	width: 415px;
	height: 40px;
	border-radius: 20px;
	background: linear-gradient(90deg, #2e3192, #0071bc);
	color: #fff;
	font-size: 22px;
	font-weight: 700;
	text-align: center;
	line-height: 40px;
	letter-spacing: .08em;
}

.diag-pill::after {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	margin-left: 10px;
	vertical-align: -3px;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><circle cx='7.5' cy='7.5' r='5.5' fill='none' stroke='%23fff' stroke-width='2.2'/><path d='M11.5 11.5L17 17' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/></svg>") no-repeat center / 100%;
}

.diag-list {
	position: absolute;
	left: 63px;
	top: 289px;
	right: 60px;
}

.diag-list li {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: .03em;
	margin-bottom: 11px;
	color: #1a1a1a;
}

.diag-list li:first-child {
	font-size: 20px;
	margin-bottom: 0;
}

.diag-list .ico {
	flex: 0 0 44px;
	width: 44px;
	text-align: center;
	padding-top: 2px;
}

.diag-list .ico img {
	width: auto;
	max-width: 44px;
	max-height: 36px;
	margin: 0 auto;
}

.support {
	padding: 0 100px 72px;
}

.support-title {
	background: linear-gradient(90deg, #1f87cb, #2e3192);
	color: #fff;
	text-align: center;
	font-size: 28px;
	font-weight: 700;
	line-height: 72px;
	height: 72px;
	letter-spacing: .08em;
	margin-bottom: 36px;
}

.hl-w {
	color: #fff100;
}

.support-list {
	display: flex;
	justify-content: space-between;
	gap: 35px;
	margin-bottom: 48px;
}

.support-list li {
	width: 310px;
	text-align: center;
}

.support-ico {
	height: 140px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	margin-bottom: 18px;
}

.support-ico img {
	width: auto;
	max-height: 134px;
}

.support-label {
	display: inline-block;
	min-width: 266px;
	height: 46px;
	line-height: 46px;
	border-radius: 23px;
	background: linear-gradient(90deg, #1f87cb, #2e3192);
	color: #fff;
	font-size: 19px;
	font-weight: 600;
	letter-spacing: .08em;
	margin-bottom: 7px;
	padding: 0 20px;
}

.support-list h4 {
	font-size: 20px;
	font-weight: 700;
	color: #0071bc;
	line-height: 1.5;
	margin-bottom: 10px;
	letter-spacing: .04em;
}

.support-list li>p:last-child {
	font-size: 17px;
	font-weight: 400;
	line-height: 1.88;
	letter-spacing: .03em;
}

.support-list small {
	font-size: 14px;
	color: #555;
}

.support-note {
	text-align: center;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.73;
	letter-spacing: .05em;
	max-width: 820px;
	margin: 0 auto;
}

.support-note strong {
	font-weight: 700;
	color: #0071bc;
}

.kakumei-head {
	position: relative;
	padding-left: 50px;
	max-width: 1014px;
	margin: 0 auto 80px;
	width: 100%;
}

.kakumei-head::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 20px;
	height: 139px;
	background: linear-gradient(to bottom, #0071bc, #2e3192);
}

.kakumei-head h2 {
	font-size: 56px;
	line-height: 1.3;
	letter-spacing: .02em;
	color: #1a1a1a;
	margin-bottom: 14px;
	white-space: nowrap;
}

.kakumei-head h2 .blue {
	font-size: 82px;
	font-weight: 900;
	margin-left: 8px;
}

.kakumei-head p {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: .05em;
}

.president {
	background: linear-gradient(to bottom, #f6fefb, #dae7e9);
	padding: 120px 0 120px;
}

.president .inner {
	display: flex;
	align-items: flex-start;
	gap: 37px;
}

.president-photo {
	width: 522px;
	flex: 0 0 auto;
	margin-left: -33px;
}

.president-txt {
	flex: 1 1 auto;
	padding-top: 10px;
}

.president-txt h2 {
	font-size: 42px;
	line-height: 1.55;
	letter-spacing: .02em;
	color: #1a1a1a;
	margin-bottom: 36px;
	white-space: nowrap;
}

.president-name {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 26px;
}

.president-name .post {
	display: inline-block;
	background: linear-gradient(90deg, #2e3192, #0071bc);
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	line-height: 39px;
	padding: 0 22px;
	border-radius: 3px;
	letter-spacing: .1em;
}

.president-name .name {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: .1em;
}

.president-txt p:last-child {
	font-size: 18px;
	font-weight: 500;
	line-height: 1.85;
	letter-spacing: .05em;
}

.president-txt p strong {
	font-weight: 700;
	color: #0071bc;
}

.president-txt p strong.plain {
	color: inherit;
	font-weight: 500;
}

.partner {
	background: #f7f7f7;
	padding: 120px 0 120px;
}

.sec-title {
	position: relative;
	padding-left: 55px;
	font-size: 56px;
	line-height: 1.3;
	letter-spacing: .04em;
	color: #0071bc;
	margin-bottom: 60px;
}

.sec-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 20px;
	height: 90px;
	background: linear-gradient(to bottom, #0071bc, #2e3192);
}

.sec-title small {
	font-size: 22px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	margin-left: 20px;
	color: #1a1a1a;
}

.partner-list {
	display: flex;
	justify-content: space-between;
	gap: 28px;
}

.partner-list li {
	position: relative;
	width: 381px;
	height: 234px;
	background: #fff;
	border-radius: 10px;
	margin-top: 21px;
	padding: 60px 20px 0;
	text-align: center;
	flex: 0 0 auto;
}

.partner-tag {
	position: absolute;
	left: 50%;
	top: -21px;
	transform: translateX(-50%);
	height: 41px;
	line-height: 41px;
	padding: 0 20px;
	border-radius: 21px;
	background: linear-gradient(90deg, #2e3192, #0071bc);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	white-space: nowrap;
	letter-spacing: .08em;
}

.partner-logo {
	height: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 14px;
}

.partner-logo img {
	width: auto;
	max-height: 100px;
}

.partner-logo.dis img {
	height: 65px;
}

.partner-logo.sgplus img {
	height: 99px;
}

.partner-logo.snowpeak img {
	height: 100px;
}

.partner-list li p {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: .03em;
}

.partner-kind {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 80px 0 30px;
	font-size: 36px;
	letter-spacing: .04em;
	color: #1a1a1a;
	line-height: 1.3;
}

.partner-kind span {
	flex: 0 0 auto;
	color: #0071bc;
}

.partner-kind strong {
	font-family: var(--font-en);
	font-size: 48px;
	font-weight: 500;
	margin: 0 2px;
}

.partner-kind::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: #0071bc;
}

.partner-note {
	font-size: 20px;
	line-height: 1.9;
	letter-spacing: .05em;
	margin-bottom: 60px;
}

.partner-note strong {
	font-weight: 700;
}

.pattern-card {
	background: #fff;
	border-radius: 20px;
	padding: 60px 70px 60px;
	display: flex;
	justify-content: space-between;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
}

.pattern {
	position: relative;
	width: 528px;
	height: 448px;
}

.pattern-label {
	position: absolute;
	left: 30px;
	top: 0;
	z-index: 2;
	line-height: 1;
}

.pattern-label .pt {
	display: block;
	font-family: var(--font-en);
	font-style: italic;
	font-weight: 500;
	font-size: 21px;
	color: #0071bc;
	margin-bottom: 8px;
	letter-spacing: .05em;
}

.pattern-label .pt em {
	font-size: 34px;
	font-weight: 600;
}

.pattern-label .pt-name {
	display: block;
	font-size: 35px;
	font-weight: 700;
	color: #0071bc;
	line-height: 1.2;
	letter-spacing: .05em;
}

.pattern-num {
	position: absolute;
	left: 26px;
	top: 150px;
	font-family: var(--font-en);
	font-size: 184px;
	font-weight: 600;
	line-height: 1;
	color: #e6eef9;
	letter-spacing: -.02em;
	z-index: 0;
}

.pattern-photo {
	position: absolute;
	left: 137px;
	top: 36px;
	width: 372px;
	z-index: 1;
}

.pattern-txt {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	text-align: center;
	font-size: 16px;
	font-weight: 500;
	line-height: 2;
	letter-spacing: .05em;
}

.pattern:nth-child(2) .pattern-photo {
	left: 156px;
}

.slider-ctrl {
	display: none;
}

@media screen and (max-width: 1400px) {
	.about-intro {
		padding-left: 20px;
	}

	.about-card-body {
		padding: 40px 60px 50px;
	}

	.support {
		padding: 0 60px 50px;
	}

	.kakumei-head h2 {
		font-size: 48px;
	}

	.kakumei-head h2 .blue {
		font-size: 70px;
	}
}

@media screen and (max-width: 834px) {
	.fv {
		background: #fff;
	}

	.fv-circles {
		display: block;
		background: #ebf1f5;
		padding: 40px 0 0;
	}

	.fv-circles ul {
		max-width: 340px;
		width: calc(100% - 36px);
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
		gap: 12px 14px;
	}

	.fv-circles li {
		width: calc(50% - 7px);
	}

	.about {
		padding: 30px 0 60px;
	}

	.about-intro {
		display: block;
		padding: 0;
		margin-bottom: 40px;
	}

	.about-photo {
		width: 100%;
		max-width: 345px;
		margin: 0 auto 20px;
	}

	.about-txt {
		padding-top: 0;
		max-width: 100%;
	}

	.about-title {
		gap: 10px;
		margin-bottom: 14px;
	}

	.about-title .mincho {
		font-size: 30px;
	}

	.about-title .toha {
		font-size: 22px;
	}

	.about-txt p {
		font-size: 16px;
		line-height: 1.8;
	}

	.about-card {
		border-radius: 20px;
	}

	.about-card-head {
		padding: 22px 16px;
	}

	.about-card-head p {
		font-size: 16px;
		line-height: 1.8;
	}

	.about-card-head p br {
		display: none;
	}

	.about-card-body {
		display: block;
		padding: 20px 20px 30px;
	}

	.threats {
		width: 100%;
		padding-top: 0;
	}

	.threats li {
		gap: 14px;
		padding: 16px 0;
	}

	.threat-ico {
		width: 86px;
	}

	.threat-ico img {
		max-height: 96px;
	}

	.threat-txt h3 {
		font-size: 18px;
	}

	.threat-txt p {
		font-size: 14px;
	}

	.diag-arrow {
		position: static;
		width: auto;
		height: auto;
		margin: 16px 0 18px;
		display: flex;
		justify-content: center;
	}

	.diag-arrow span {
		border-left: 14px solid transparent;
		border-right: 14px solid transparent;
		border-top: 18px solid #0071bc;
		border-bottom: 0;
	}

	.diag {
		width: 100%;
		height: auto;
		margin-top: 0;
		padding: 40px 20px 26px;
		border-radius: 15px;
	}

	.diag-aisoc {
		position: static;
		width: 108px;
		margin-bottom: 14px;
	}

	.diag-robot {
		position: absolute;
		right: -12px;
		top: -40px;
		width: 154px;
	}

	.diag-pill {
		position: static;
		width: 100%;
		max-width: 260px;
		height: 30px;
		line-height: 30px;
		font-size: 15px;
		margin-bottom: 18px;
	}

	.diag-pill::after {
		width: 14px;
		height: 14px;
		margin-left: 6px;
		vertical-align: -2px;
	}

	.diag-list {
		position: static;
	}

	.diag-list li,
	.diag-list li:first-child {
		font-size: 15px;
		gap: 10px;
		margin-bottom: 8px;
	}

	.diag-list .ico {
		flex-basis: 32px;
		width: 32px;
	}

	.diag-list .ico img {
		max-width: 32px;
		max-height: 26px;
	}

	.support {
		padding: 10px 20px 20px;
	}

	.support-title {
		height: auto;
		line-height: 1.6;
		font-size: 18px;
		padding: 14px 10px;
		margin-bottom: 20px;
	}

	.support-list {
		display: block;
		margin-bottom: 30px;
	}

	.support-list li {
		width: 100%;
		text-align: left;
		display: grid;
		grid-template-columns: 56px 1fr;
		grid-template-rows: auto auto auto;
		column-gap: 16px;
		align-items: start;
		margin-bottom: 18px;
		padding-bottom: 18px;
		border-bottom: 1px solid #ddd;
	}

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

	.support-ico {
		grid-row: 1 / 4;
		height: auto;
		align-items: flex-start;
		margin: 6px 0 0;
	}

	.support-ico img {
		max-height: 66px;
		max-width: 56px;
	}

	.support-label {
		min-width: 0;
		height: 38px;
		line-height: 38px;
		font-size: 14px;
		margin-bottom: 8px;
		width: 100%;
		text-align: center;
	}

	.support-list h4 {
		font-size: 18px;
		margin-bottom: 4px;
	}

	.support-list li>p:last-child {
		font-size: 14px;
	}

	.support-list li>p:last-child br {
		display: none;
	}

	.support-note {
		font-size: 14px;
		line-height: 1.8;
		text-align: left;
	}

	.support-note br {
		display: none;
	}

	.kakumei-head {
		padding-left: 0;
		margin-bottom: 30px;
	}

	.kakumei-head::before {
		display: none;
	}

	.kakumei-head h2 {
		font-size: 24px;
		white-space: normal;
		text-align: center;
		margin-bottom: 14px;
	}

	.kakumei-head h2 .blue {
		font-size: 40px;
		display: block;
		margin: 0;
	}

	.kakumei-head p {
		font-size: 16px;
	}

	.president {
		padding: 60px 0;
	}

	.president .inner {
		display: block;
	}

	.president-photo {
		width: 100%;
		max-width: 368px;
		margin: 0 auto 24px;
	}

	.president-txt h2 {
		font-size: 24px;
		white-space: normal;
		margin-bottom: 20px;
	}

	.president-name {
		gap: 12px;
		margin-bottom: 16px;
	}

	.president-name .post {
		font-size: 13px;
		line-height: 28px;
		padding: 0 12px;
	}

	.president-name .name {
		font-size: 18px;
	}

	.president-txt p:last-child {
		font-size: 15px;
		line-height: 1.8;
	}

	.partner {
		padding: 60px 0;
	}

	.sec-title {
		font-size: 32px;
		padding-left: 24px;
		margin-bottom: 40px;
	}

	.sec-title::before {
		width: 10px;
		height: 44px;
	}

	.sec-title small {
		font-size: 14px;
		margin-left: 8px;
	}

	.partner-slider {
		overflow: hidden;
		width: 100%;
	}

	.partner-list {
		display: flex;
		gap: 0;
		transition: transform .4s ease;
		width: 100%;
		justify-content: flex-start;
	}

	.partner-list li {
		flex: 0 0 100%;
		width: 100%;
		max-width: 100%;
		height: auto;
		min-height: 200px;
		margin: 14px 0 0;
		padding: 46px 20px 24px;
	}

	.partner-tag {
		height: 28px;
		line-height: 28px;
		font-size: 13px;
		top: -14px;
	}

	.partner-logo {
		height: 88px;
	}

	.partner-logo.dis img {
		height: 43px;
	}

	.partner-logo.sgplus img {
		height: 66px;
	}

	.partner-logo.snowpeak img {
		height: 88px;
	}

	.partner-list li p {
		font-size: 14px;
	}

	.slider-ctrl {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 16px;
		margin-top: 16px;
	}

	.slider-prev,
	.slider-next {
		width: 32px;
		height: 32px;
		border-radius: 50%;
		border: 0;
		background: #0071bc url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path d='M13 10l6 6-6 6' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") center / 100% no-repeat;
		cursor: pointer;
	}

	.slider-prev {
		transform: scaleX(-1);
	}

	.slider-dots {
		display: flex;
		gap: 8px;
	}

	.slider-dots li {
		width: 10px;
		height: 10px;
		border-radius: 50%;
		background: #c8d3e3;
		cursor: pointer;
	}

	.slider-dots li.is-active {
		background: #0071bc;
	}

	.partner-kind {
		font-size: 22px;
		gap: 12px;
		margin: 50px 0 16px;
	}

	.partner-kind strong {
		font-size: 30px;
	}

	.partner-note {
		font-size: 15px;
		line-height: 1.8;
		margin-bottom: 30px;
	}

	.partner-note br {
		display: none;
	}

	.pattern-card {
		display: block;
		padding: 30px 20px 30px;
		border-radius: 15px;
	}

	.pattern {
		width: 100%;
		height: auto;
		padding-top: 0;
		margin-bottom: 40px;
	}

	.pattern:last-child {
		margin-bottom: 0;
	}

	.pattern-label {
		position: relative;
		left: 0;
		margin-bottom: 10px;
	}

	.pattern-label .pt {
		font-size: 16px;
	}

	.pattern-label .pt em {
		font-size: 26px;
	}

	.pattern-label .pt-name {
		font-size: 22px;
	}

	.pattern-num {
		left: 0;
		top: 70px;
		font-size: 120px;
	}

	.pattern-photo,
	.pattern:nth-child(2) .pattern-photo {
		position: relative;
		left: auto;
		top: auto;
		width: 78%;
		max-width: 300px;
		margin: 0 0 16px auto;
	}

	.pattern-txt {
		position: static;
		font-size: 14px;
		line-height: 1.8;
		text-align: left;
	}

	.pattern-txt br {
		display: none;
	}
}

.fv-circles-pc {
	position: absolute;
	left: 18.75%;
	width: 62.5%;
	top: 83.09%;
	display: flex;
	justify-content: space-between;
	z-index: 2;
}

.fv-circles-pc li {
	width: 19.17%;
	position: relative;
}

.about {
	background: linear-gradient(to bottom, #ffffff 0%, #e3f5fd 45%, #bce1f3 100%);
}

/* PC：FV画像はデザインでは下を切って高さ674px（1920px幅時）。
   その下端40pxに角丸の「AI-SOCとは」が重なり、革命の丸は境目にまたがる */
@media screen and (min-width: 835px) {
	.page-top .fv h1 {
		aspect-ratio: 1920 / 674;
		overflow: hidden;
	}

	.page-top .about {
		margin-top: -40px;
		padding-top: 194px;
		border-radius: 40px 40px 0 0;
	}
}

.about::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1545px;
	max-height: 100%;
	background: url(../img/top/bg_texture_about.webp) no-repeat center bottom / 100% auto;
	pointer-events: none;
}

.about-title {
	display: flex;
	align-items: center;
	gap: 0;
}

.about-title img {
	width: 257px;
	flex: 0 0 auto;
}

.about-title::after {
	margin-left: 24px;
}

.diag-aisoc {
	position: absolute;
	left: 64px;
	top: 53px;
	width: 148px;
	height: 145px;
}

.diag-aisoc span {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff100;
	font-weight: 700;
	font-size: 36px;
	letter-spacing: .02em;
	padding-bottom: 6px;
	font-family: var(--font-en);
}

.kakumei-title {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 18px;
}

.kakumei-title .t1 {
	width: 533px;
	margin-bottom: 8px;
}

.kakumei-title .t2 {
	width: 386px;
}

.president {
	background: #f4fbf8 url(../img/top/bg_president.webp) no-repeat center top / cover;
}

.president-title img {
	width: 658px;
}

.president-title {
	margin-bottom: 36px;
}

.sec-title {
	display: flex;
	align-items: flex-end;
	gap: 20px;
}

.sec-title img {
	width: 358px;
	flex: 0 0 auto;
}

.sec-title small {
	margin-left: 0;
	margin-bottom: 4px;
}

.partner-kind img {
	width: 496px;
	flex: 0 0 auto;
}

@media screen and (max-width: 1400px) {
	.kakumei-title .t1 {
		width: 440px;
	}

	.kakumei-title .t2 {
		width: 320px;
	}

	.president-title img {
		width: 520px;
	}
}

@media screen and (max-width: 834px) {
	.fv-circles-pc {
		display: none;
	}

	.about::after {
		height: 60%;
		background-size: 200% auto;
	}

	.about-title img {
		width: 200px;
	}

	.diag-aisoc {
		position: static;
		width: 108px;
		height: 106px;
		margin-bottom: 14px;
	}

	.diag-aisoc span {
		font-size: 18px;
	}

	.kakumei-title {
		flex-direction: column;
		align-items: center;
		gap: 6px;
	}

	.kakumei-title .t1 {
		width: 70%;
		max-width: 300px;
		margin-bottom: 0;
	}

	.kakumei-title .t2 {
		width: 60%;
		max-width: 260px;
	}

	.president {
		background-size: 200% auto;
	}

	.president-title img {
		width: 100%;
	}

	.sec-title {
		gap: 10px;
	}

	.sec-title img {
		width: 220px;
	}

	.partner-kind img {
		width: 70%;
		max-width: 320px;
	}
}

.support-title .hl-w {
	display: inline-block;
}

@media screen and (max-width: 834px) {
	.diag-aisoc {
		position: relative;
	}

	.support-list h4 {
		font-size: 16px;
		letter-spacing: .02em;
	}

	.support-list small {
		display: block;
	}
}

@media screen and (min-width: 500px) and (max-width: 834px) {
	.fv-circles ul {
		max-width: 600px;
		justify-content: center;
		gap: 16px 20px;
	}

	.fv-circles li {
		width: calc(33.333% - 14px);
	}
}

@media screen and (max-width: 834px) {
	.diag-aisoc {
		left: auto;
		top: auto;
	}
}

@media screen and (max-width: 834px) {
	.president {
		padding-top: 145px;
	}
}

/* ---------- 5つの革命（PC）: Figma の値 ---------- */
.kakumei {
	background: #fff;
	padding: 0;
}

.kakumei-tabs span {
	font-size: 30px;
	letter-spacing: .06em;
}

.kakumei-tabs .tab-secu {
	background: linear-gradient(90deg, #2088cb, #2e3192);
}

.kk-badge {
	background: linear-gradient(135deg, #2088cb, #2e3192);
	gap: 15px;
}

@media screen and (max-width: 834px) {
	:root {
		--u: calc(100vw / 375);
	}

	/* SP も PC と同じく、スクロールで「革命1〜5」を切り替える */
	.kakumei-scroll {
		height: calc(var(--u) * 515 + 200vh);
	}

	.kakumei-stage {
		position: sticky;
		top: 0;
		height: calc(var(--u) * 515);
		padding: 0;
		border-radius: calc(var(--u) * 30) calc(var(--u) * 30) 0 0;
		overflow: visible;
	}

	.kakumei-stage-inner {
		width: 100%;
		max-width: none;
		height: 100%;
		overflow: visible;
	}

	.kakumei-tabs {
		display: flex;
		position: absolute;
		left: 0;
		right: 0;
		top: calc(var(--u) * 150);
		height: calc(var(--u) * 45);
		border-radius: 0;
		z-index: 1;
	}

	.kakumei-tabs span {
		font-size: calc(var(--u) * 18);
		letter-spacing: .02em;
	}

	.kakumei-panels {
		position: absolute;
		inset: 0;
	}

	.kakumei-panel,
	.kakumei-panel.is-out-up,
	.kakumei-panel.is-out-down {
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		height: 100%;
		margin: 0;
		opacity: 0;
		pointer-events: none;
	}

	.kakumei-panel {
		transform: translateY(calc(var(--u) * 30));
	}

	.kakumei-panel.is-out-up {
		transform: translateY(calc(var(--u) * -30));
	}

	.kakumei-panel.is-active {
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}

	.kk-badge {
		position: absolute;
		left: calc(var(--u) * 112.5);
		top: calc(var(--u) * -30);
		width: calc(var(--u) * 150);
		height: calc(var(--u) * 150);
		margin: 0;
		gap: calc(var(--u) * 4);
		background: linear-gradient(to bottom left, #2088cb, #2e3192);
		z-index: 2;
	}

	.kk-badge::after {
		right: 50%;
		top: auto;
		bottom: calc(var(--u) * -9);
		transform: translateX(50%);
		border-left: calc(var(--u) * 7) solid transparent;
		border-right: calc(var(--u) * 7) solid transparent;
		border-top: calc(var(--u) * 10) solid #2c4aa4;
		border-bottom: 0;
	}

	.kk-num {
		font-size: calc(var(--u) * 16);
		font-weight: 500;
	}

	.kk-num em {
		font-size: calc(var(--u) * 24);
		margin-left: calc(var(--u) * 3);
	}

	.kk-name {
		font-size: calc(var(--u) * 15);
		line-height: 1.4;
	}

	.kk-tabs-sp,
	.kk-content::before {
		display: none;
	}

	.kk-content,
	.kakumei-panel:nth-child(n) .kk-content {
		position: absolute;
		right: auto;
	}

	.kakumei-panel:nth-child(1) .kk-content {
		left: calc(var(--u) * 18);
		top: calc(var(--u) * 256);
		width: calc(var(--u) * 338);
	}

	.kakumei-panel:nth-child(2) .kk-content {
		left: calc(var(--u) * 15);
		top: calc(var(--u) * 215);
		width: calc(var(--u) * 344);
	}

	.kakumei-panel:nth-child(3) .kk-content {
		left: calc(var(--u) * 12);
		top: calc(var(--u) * 250);
		width: calc(var(--u) * 341);
	}

	.kakumei-panel:nth-child(4) .kk-content {
		left: calc(var(--u) * 18);
		top: calc(var(--u) * 216);
		width: calc(var(--u) * 348);
	}

	.kakumei-panel:nth-child(5) .kk-content {
		left: calc(var(--u) * 38.5);
		top: calc(var(--u) * 221);
		width: calc(var(--u) * 300.5);
	}

	/* ---------- FV下ボタン（TOPのデザインの背景色） ---------- */
	.page-top .fv-under-btns {
		width: 100%;
		padding: calc(var(--u) * 30) calc(var(--u) * 32.5) calc(var(--u) * 4);
		background: linear-gradient(#fff, #fcfeff);
	}

	.page-top .fv-under-btns .cmn-btn {
		height: calc(var(--u) * 58);
		margin-bottom: calc(var(--u) * 20.5);
		font-size: calc(var(--u) * 22);
		letter-spacing: .05em;
		gap: calc(var(--u) * 17.5);
		padding-bottom: calc(var(--u) * 3);
		box-shadow: 0 calc(var(--u) * 6) 0 var(--btn-shadow);
	}

	.page-top .fv-under-btns .cmn-btn .ico {
		width: calc(var(--u) * 25);
		height: calc(var(--u) * 26);
	}

	.page-top .fv-under-btns .cmn-btn.btn-contact .ico {
		height: calc(var(--u) * 19.5);
	}

	.page-top .fv-under-btns .cmn-btn.btn-agency .ico {
		height: calc(var(--u) * 27.5);
	}

	/* 電話：受話器アイコンを2行の左に大きく置く */
	.page-top .fv-under-btns .header-tel {
		position: relative;
		width: max-content;
		margin: calc(var(--u) * 30) auto 0;
		padding-left: calc(var(--u) * 40);
	}

	.page-top .fv-under-btns .header-tel small {
		font-size: calc(var(--u) * 18);
		font-weight: 500;
		letter-spacing: .02em;
		margin-bottom: calc(var(--u) * 5);
	}

	.page-top .fv-under-btns .header-tel {
		color: #333;
	}

	.page-top .fv-under-btns .header-tel strong {
		font-family: "Noto Sans JP", sans-serif;
		font-size: calc(var(--u) * 34);
		font-weight: 600;
		letter-spacing: 0;
		gap: 0;
	}

	.page-top .fv-under-btns .header-tel strong .ico {
		position: absolute;
		left: 0;
		top: calc(var(--u) * 5);
		width: calc(var(--u) * 30.5);
		height: calc(var(--u) * 47.5);
		background: url(../img/top/tel_sp.webp) center / 100% 100% no-repeat;
	}

	.page-top .fv-under-btns .header-tel strong .ico img {
		display: none;
	}

	/* ---------- パートナー（SPはスライダー） ---------- */
	.partner .partner-slider {
		position: relative;
		height: calc(var(--u) * 250);
		background: url(../img/top/cv/sp/partner_grid.webp) 0 0 / 100% 100% no-repeat;
		overflow: hidden;
	}

	.partner .partner-list {
		position: absolute;
		left: calc(var(--u) * 18.5);
		top: calc(var(--u) * 5);
		display: flex;
		gap: calc(var(--u) * 10);
		margin: 0;
		width: auto;
		transition: transform .4s ease;
	}

	.partner .partner-list li {
		position: relative;
		flex: 0 0 calc(var(--u) * 252);
		width: calc(var(--u) * 252);
		max-width: none;
		height: calc(var(--u) * 162.5);
		min-height: 0;
		margin: calc(var(--u) * 13.5) 0 0;
		padding: 0;
		background: #fff;
		border: 1px solid #e3e8ef;
		border-radius: calc(var(--u) * 8);
		box-shadow: 0 0 calc(var(--u) * 4) rgba(0, 0, 0, .04);
		text-align: center;
	}

	.partner .partner-tag {
		position: absolute;
		left: 50%;
		top: calc(var(--u) * -13.5);
		transform: translateX(-50%);
		height: calc(var(--u) * 27.5);
		line-height: calc(var(--u) * 27.5);
		padding: 0 calc(var(--u) * 22.5);
		border-radius: calc(var(--u) * 14);
		background: linear-gradient(90deg, #2e3192, #2088cb);
		color: #fff;
		font-size: calc(var(--u) * 17);
		font-weight: 700;
		letter-spacing: 0;
		white-space: nowrap;
	}

	.partner .partner-tag::before {
		content: "";
		position: absolute;
		left: 50%;
		top: 100%;
		width: 1px;
		height: calc(var(--u) * 7);
		background: #0057c3;
	}

	.partner .partner-tag::after {
		content: "";
		position: absolute;
		left: 50%;
		top: calc(100% + var(--u) * 5.5);
		width: calc(var(--u) * 5);
		height: calc(var(--u) * 5);
		margin-left: calc(var(--u) * -2);
		border-radius: 50%;
		background: #0057c3;
	}

	.partner .partner-logo {
		position: absolute;
		left: 0;
		right: 0;
		top: calc(var(--u) * 40);
		height: calc(var(--u) * 56);
		margin: 0;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.partner .partner-logo img {
		width: auto;
		max-height: none;
	}

	.partner .partner-logo.dis img {
		height: calc(var(--u) * 43.5);
	}

	.partner .partner-logo.snowpeak img {
		height: calc(var(--u) * 78);
	}

	.partner .partner-logo.sgplus img {
		height: calc(var(--u) * 58);
	}

	.partner .partner-list li p {
		position: absolute;
		left: 0;
		right: 0;
		top: calc(var(--u) * 103);
		font-size: calc(var(--u) * 14);
		font-weight: 500;
		line-height: calc(var(--u) * 21.5);
		letter-spacing: .03em;
		color: #333;
	}

	.partner .slider-ctrl {
		position: absolute;
		left: 0;
		top: calc(var(--u) * 201);
		width: 100%;
		height: calc(var(--u) * 32);
		margin: 0;
	}

	.partner .slider-prev,
	.partner .slider-next {
		position: absolute;
		top: 0;
		width: calc(var(--u) * 32);
		height: calc(var(--u) * 32);
		border: 0;
		border-radius: 50%;
		background: #0057c3;
		cursor: pointer;
		padding: 0;
	}

	.partner .slider-prev {
		left: calc(var(--u) * 122);
	}

	.partner .slider-next {
		left: calc(var(--u) * 222);
	}

	.partner .slider-prev::after,
	.partner .slider-next::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: calc(var(--u) * 7);
		height: calc(var(--u) * 7);
		border-top: calc(var(--u) * 2) solid #fff;
		border-right: calc(var(--u) * 2) solid #fff;
		transform: translate(-65%, -50%) rotate(45deg);
	}

	.partner .slider-prev::after {
		transform: translate(-35%, -50%) rotate(-135deg);
	}

	.partner .slider-prev:disabled,
	.partner .slider-next:disabled {
		background: #d9d9d9;
		cursor: default;
	}

	.partner .slider-dots {
		position: absolute;
		left: calc(var(--u) * 173.5);
		top: 50%;
		display: flex;
		gap: calc(var(--u) * 6.75);
		transform: translateY(-50%);
		margin: 0;
	}

	.partner .slider-dots li {
		width: calc(var(--u) * 5);
		height: calc(var(--u) * 5);
		border-radius: 50%;
		background: #d9d9d9;
		cursor: pointer;
	}

	.partner .slider-dots li.is-active {
		background: #0057c3;
	}
}

@media screen and (max-width: 834px) {
	.policy .risk-title {
		font-size: 18px;
		font-size: calc(var(--u) * 18);
		letter-spacing: -.02em;
	}
}

/* PCはbodyの最小幅が1200px。ステージの中身（1200px基準）が切れないよう左右余白なしで収める */
@media screen and (min-width: 835px) and (max-width: 1249px) {
	.kakumei-stage-inner {
		width: 100%;
	}
}

/* ---------- SP「AI-SOCとは」: Figma（SP 375px）の値 ---------- */
@media screen and (max-width: 834px) {

	/* FV下の「5つの革命」の丸：Figma では丸（影を除く）143px・横158px/縦163px間隔。画像は影の余白込みで162px */
	.page-top .fv-circles {
		padding-top: 30px;
		background: #fbfeff;
	}

	.page-top .fv-circles ul {
		max-width: 320px;
		gap: 2.5px 0;
		justify-content: space-between;
	}

	.page-top .fv-circles li {
		width: 162px;
		margin-right: -2px;
		margin-left: -2px;
	}

	.page-top .about {
		padding: 30px 0 60px;
		background: #f8fcff;
	}

	.page-top .about::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: 48px;
		bottom: 0;
		background: linear-gradient(to bottom, #c7eafb 0%, #cdecfb 100%);
		border-radius: 50% 50% 40px 40px / 150px 150px 40px 40px;
		pointer-events: none;
	}

	.page-top .about-photo {
		width: 345px;
		max-width: none;
		margin: 0 0 30px -3px;
	}

	.page-top .about-title {
		margin-bottom: 20px;
	}

	.page-top .about-title img {
		width: 168px;
	}

	.page-top .about-title::after {
		margin-left: 7px;
	}

	.page-top .about-txt p {
		font-size: 16px;
		line-height: 28px;
		letter-spacing: .02em;
		margin-bottom: 14px;
	}

	.page-top .about-intro {
		margin-bottom: 40px;
	}

	.page-top .about-card {
		border-radius: 6px;
	}

	.page-top .about-card-head {
		padding: 23px 20px;
	}

	.page-top .about-card-head p {
		font-size: 16px;
		line-height: 29px;
		letter-spacing: .02em;
	}

	.page-top .about-card-body {
		padding: 24px 20px 0 22px;
	}

	.page-top .threats li {
		gap: 19px;
		padding: 16px 0 20px;
	}

	.page-top .threats li:first-child {
		padding-top: 0;
	}

	.page-top .threats li:last-child {
		padding-bottom: 0;
	}

	.page-top .threat-ico {
		width: 90px;
	}

	.page-top .threat-ico img {
		max-height: 99px;
	}

	.page-top .threat-txt h3 {
		font-size: 18px;
		line-height: 26px;
		margin-bottom: 5px;
	}

	.page-top .threat-txt p {
		font-size: 16px;
		line-height: 24px;
	}

	.page-top .diag-arrow {
		margin: 32px 0 17px;
	}

	.page-top .diag-arrow span {
		border-left-width: 13.5px;
		border-right-width: 13.5px;
		border-top-width: 18px;
	}

	.page-top .diag {
		height: 297px;
		padding: 0;
		border-radius: 15px;
	}

	.page-top .diag-aisoc {
		position: absolute;
		left: 7px;
		top: 46px;
		width: 108px;
		height: 108px;
		margin: 0;
	}

	.page-top .diag-aisoc span {
		font-size: 20px;
	}

	.page-top .diag-robot {
		right: -15px;
		top: -65px;
		width: 213px;
	}

	.page-top .diag-pill {
		position: absolute;
		left: 20px;
		top: 126px;
		width: 259px;
		max-width: none;
		height: 30px;
		line-height: 30px;
		font-size: 14px;
		margin: 0;
	}

	.page-top .diag-list {
		position: absolute;
		left: 20px;
		right: 20px;
		top: 173px;
	}

	.page-top .diag-list li,
	.page-top .diag-list li:first-child {
		align-items: center;
		gap: 14px;
		font-size: 14px;
		font-weight: 400;
		line-height: 20px;
		letter-spacing: 0;
		margin-bottom: 4px;
	}

	.page-top .diag-list .ico {
		flex-basis: 31px;
		width: 31px;
		padding-top: 0;
	}

	.page-top .support {
		padding: 40px 20px 40px;
	}

	.page-top .support-title {
		font-size: 17px;
		line-height: 26px;
		padding: 14px 10px;
		margin-bottom: 20px;
	}

	.page-top .support-list {
		margin-bottom: 20px;
	}

	.page-top .support-list li {
		grid-template-columns: 72px 1fr;
		grid-template-rows: auto auto auto;
		column-gap: 13px;
		margin-bottom: 20px;
		padding-bottom: 0;
		border-bottom: 0;
	}

	.page-top .support-label {
		grid-column: 1 / -1;
		grid-row: 1;
		height: 38px;
		line-height: 38px;
		font-size: 17px;
		margin-bottom: 16px;
	}

	.page-top .support-ico {
		grid-column: 1;
		grid-row: 2 / 4;
		justify-content: center;
		margin: 8px 0 0;
	}

	.page-top .support-ico img {
		max-width: 58px;
		max-height: 66px;
	}

	.page-top .support-list h4 {
		grid-column: 2;
		font-size: 16px;
		line-height: 23px;
		letter-spacing: .02em;
		margin-bottom: 6px;
	}

	.page-top .support-list li>p:last-child {
		grid-column: 2;
		font-size: 13px;
		line-height: 22px;
		letter-spacing: .05em;
	}

	/* デザインの改行位置に合わせる（2つ目だけ文字枠が広い） */
	.page-top .support-list li:nth-child(2)>p:last-child {
		margin-right: -17px;
	}

	.page-top .support-list li>p:last-child br {
		display: inline;
	}

	.page-top .support-note {
		font-size: 16px;
		line-height: 28px;
		letter-spacing: .02em;
	}

	.page-top .support-note br {
		display: inline;
	}
}

/* ==========================================================
   TOP：文字を画像に焼き込むのをやめ、HTMLで組む
   （FVの革命の丸・5つの革命の比較・リスク・パートナーの2パターン）
   画像はアイコン・イラスト・写真だけ（img/top/parts/：元の書き出し画像から文字を除いて切り出し）
   ========================================================== */
/* ---------- FV：革命の丸（PCはFVの幅に比例、--k はデザイン上の1px） ---------- */
.page-top .fv-circles-pc {
	container-type: inline-size;
	justify-content: flex-start;
}

.page-top .kc {
	--k: 1px;
	position: relative;
	flex: 0 0 auto;
	width: calc(var(--k) * 225);
	height: calc(var(--k) * 225);
	border-radius: 50%;
	background:
		radial-gradient(circle closest-side, #fff calc(100% - var(--k) * 2.5), transparent calc(100% - var(--k) * 2.5 + .5px)),
		linear-gradient(60deg, #2e3192, #2188ca);
	box-shadow: 0 0 calc(var(--k) * 20) rgba(46, 49, 146, .28);
	color: #333;
	text-align: center;
}

.page-top .fv-circles-pc .kc {
	--k: calc(100cqw / 1200);
	margin-left: calc(var(--k) * 17.5);
}

.page-top .fv-circles-pc .kc:first-child {
	margin-left: calc(var(--k) * 5);
}

.page-top .kc-badge {
	position: absolute;
	left: calc(var(--k) * -5);
	top: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: calc(var(--k) * 2);
	width: calc(var(--k) * 74);
	height: calc(var(--k) * 74);
	border-radius: 50%;
	background: linear-gradient(135deg, #2188ca, #2e3192);
	color: #fff;
	font-size: calc(var(--k) * 20);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

.page-top .kc-badge em {
	font-family: var(--font-en);
	font-size: calc(var(--k) * 32);
	font-style: italic;
	font-weight: 700;
	position: relative;
	left: -2px;
}

.page-top .kc-ico {
	position: absolute;
	max-width: none;
	height: auto;
}

.page-top .kc:nth-child(1) .kc-ico {
	left: calc(var(--k) * 58.6);
	top: calc(var(--k) * 58.6);
	width: calc(var(--k) * 107.9);
}

.page-top .kc:nth-child(2) .kc-ico {
	left: calc(var(--k) * 72.2);
	top: calc(var(--k) * 34.2);
	width: calc(var(--k) * 80);
}

.page-top .kc:nth-child(3) .kc-ico {
	left: calc(var(--k) * 76.1);
	top: calc(var(--k) * 44.9);
	width: calc(var(--k) * 71.7);
}

.page-top .kc:nth-child(4) .kc-ico {
	left: calc(var(--k) * 71.3);
	top: calc(var(--k) * 45.9);
	width: calc(var(--k) * 81);
}

.page-top .kc:nth-child(5) .kc-ico {
	left: calc(var(--k) * 68.8);
	top: calc(var(--k) * 35.1);
	width: calc(var(--k) * 91.3);
}

.page-top .kc p {
	position: absolute;
	left: 0;
	right: 0;
	font-size: calc(var(--k) * 22);
	font-weight: 700;
	line-height: calc(var(--k) * 30);
	letter-spacing: .03em;
	white-space: nowrap;
}

.page-top .kc p .blue {
	color: #015ac5;
}

.page-top .kc:nth-child(1) p,
.page-top .kc:nth-child(2) p {
	top: calc(var(--k) * 125);
}

.page-top .kc:nth-child(3) p,
.page-top .kc:nth-child(4) p {
	top: calc(var(--k) * 135);
}

.page-top .kc:nth-child(5) p {
	top: calc(var(--k) * 118);
}

/* ---------- 5つの革命：比較のイラストと説明（PC：コンテンツ枠の中の位置はデザインの値） ---------- */
.page-top .kakumei-panel:nth-child(1) .kk-content {
	width: 762.5px;
	height: 306.5px;
}

.page-top .kakumei-panel:nth-child(2) .kk-content {
	width: 768px;
	height: 440.5px;
}

.page-top .kakumei-panel:nth-child(3) .kk-content {
	width: 778px;
	height: 308px;
}

.page-top .kakumei-panel:nth-child(4) .kk-content {
	width: 900px;
	height: 413px;
}

.page-top .kakumei-panel:nth-child(5) .kk-content {
	width: 747px;
	height: 377px;
}

.page-top .kk-art {
	position: absolute;
	max-width: none;
	height: auto;
}

.page-top .kk-arrow {
	position: absolute;
	width: 0;
	height: 0;
	border-top: 21.5px solid transparent;
	border-bottom: 21.5px solid transparent;
	border-left: 25px solid #015ac5;
}

.page-top .kk-cap {
	position: absolute;
	margin: 0;
	color: #333;
	font-size: 22px;
	font-weight: 700;
	line-height: 40px;
	letter-spacing: .03em;
	white-space: nowrap;
}

.page-top .kk-cap mark {
	display: inline-block;
	margin: 0 6px;
	padding: 0 14px;
	background: #333;
	color: #fff;
	line-height: 33px;
}

.page-top .kk-cap mark.kk-blue {
	background: #015ac5;
}

.page-top .kk-c1 .kk-art--other {
	left: 0;
	top: 13.5px;
	width: 295px;
}

.page-top .kk-c1 .kk-art--secu {
	left: 467px;
	top: 6.5px;
	width: 295.5px;
}

.page-top .kk-c1 .kk-arrow {
	left: 370.5px;
	top: 84px;
}

.page-top .kk-c1 .kk-cap--other {
	left: 56px;
	top: 270px;
}

.page-top .kk-c1 .kk-cap--secu {
	left: 553.5px;
	top: 270px;
}

.page-top .kk-c1 .kk-cap--secu mark {
	padding: 0 9px;
}

.page-top .kk-c2 .kk-art--other {
	left: 0;
	top: .5px;
	width: 306px;
}

.page-top .kk-c2 .kk-art--secu {
	left: 448px;
	top: 0;
	width: 320px;
}

.page-top .kk-c2 .kk-arrow {
	left: 376.5px;
	top: 155px;
}

.page-top .kk-c2 .kk-cap {
	text-align: center;
}

.page-top .kk-c2 .kk-cap--other {
	left: 0;
	top: 335px;
	width: 300px;
}

.page-top .kk-c2 .kk-cap--other mark {
	padding: 0 12.5px;
}

.page-top .kk-c2 .kk-cap--secu {
	left: 460px;
	top: 332.5px;
	width: 310px;
	line-height: 34px;
}

.page-top .kk-c2 .kk-cap--secu mark {
	margin: 6px 0 0;
	padding: 0 13px;
}

.page-top .kk-c3 .kk-art--other {
	left: 0;
	top: 32px;
	width: 343.5px;
}

.page-top .kk-c3 .kk-art--secu {
	left: 517px;
	top: 0;
	width: 261px;
}

.page-top .kk-c3 .kk-arrow {
	left: 399.5px;
	top: 93.5px;
}

.page-top .kk-c3 .kk-cap--other {
	left: 60px;
	top: 271.5px;
}

.page-top .kk-c3 .kk-cap--other mark {
	padding: 0 15px;
}

.page-top .kk-c3 .kk-cap--secu {
	left: 513.5px;
	top: 272px;
}

.page-top .kk-c3 .kk-cap--secu mark {
	margin: 0 0 0 4px;
	padding: 0 14.5px;
}

.page-top .kk-c5 .kk-art--other {
	left: 21px;
	top: 0;
	width: 239.5px;
}

.page-top .kk-c5 .kk-art--secu {
	left: 474px;
	top: 0;
	width: 264.5px;
}

.page-top .kk-c5 .kk-arrow {
	left: 364.5px;
	top: 122.5px;
}

.page-top .kk-c5 .kk-cap--other {
	left: 0;
	top: 302.5px;
	width: 280px;
	line-height: 39px;
	text-align: center;
}

.page-top .kk-c5 .kk-cap--secu {
	left: 464.5px;
	top: 320.5px;
}

.page-top .kk-c5 .kk-cap--secu mark {
	padding: 0 15px;
}

/* 革命04：コストのグラフはCSSで描く */
.page-top .kk-pill {
	position: absolute;
	margin: 0;
	height: 40px;
	border-radius: 20px;
	background: #333;
	color: #fff;
	font-size: 21px;
	font-weight: 700;
	line-height: 40px;
	letter-spacing: -.02em;
	text-align: center;
	white-space: nowrap;
}

.page-top .kk-pill--other {
	left: 95px;
	top: 0;
	width: 212px;
}

.page-top .kk-pill--m365 {
	left: 528.5px;
	top: 0;
	width: 278px;
	background: #015ac5;
}

.page-top .kk-pill--fg {
	left: 547.5px;
	top: 141.5px;
	width: 240px;
	background: #015ac5;
}

.page-top .kk-price {
	position: absolute;
	display: flex;
	align-items: baseline;
	margin: 0;
	color: #333;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}

.page-top .kk-price small {
	font-size: 22px;
	font-weight: 700;
}

.page-top .kk-price b {
	font-weight: 900;
}

.page-top .kk-price--other {
	left: 95px;
	top: 44.7px;
}

.page-top .kk-price--other b {
	margin: 0;
	font-size: 48px;
	letter-spacing: -.07em;
}

.page-top .kk-price--m365 {
	left: 537px;
	top: 40.9px;
}

.page-top .kk-price--fg {
	left: 530px;
	top: 183.4px;
}

.page-top .kk-price--m365 b,
.page-top .kk-price--fg b {
	margin: 0 3px;
	font-size: 72px;
	letter-spacing: -.03em;
	background: linear-gradient(90deg, #fa4949, #e81616);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.page-top .kk-price .kk-unit {
	margin-left: 2px;
	font-size: 13px;
}

.page-top .kk-chart span {
	position: absolute;
	display: block;
}

.page-top .kk-bar-high {
	left: 106px;
	top: 110px;
	width: 180px;
	height: 232px;
	border-radius: 12px 12px 0 0;
	background: #333;
}

.page-top .kk-slope {
	left: 286px;
	top: 110px;
	width: 291px;
	height: 232px;
	background: #e7f3ff;
	clip-path: polygon(0 0, 100% 80.2%, 100% 100%, 0 100%);
}

.page-top .kk-bar-low {
	left: 577px;
	top: 296px;
	width: 179.5px;
	height: 46px;
	border-radius: 10px 10px 0 0;
	background: #015ac5;
}

.page-top .kk-base {
	left: 0;
	top: 340px;
	width: 900px;
	height: 3px;
	background: #333;
}

.page-top .kk-c4 .kk-arrow {
	left: 425.5px;
	top: 80.5px;
}

.page-top .kk-c4 .kk-cap--other {
	left: 117px;
	top: 375.5px;
}

.page-top .kk-c4 .kk-cap--secu {
	left: 584px;
	top: 375.5px;
}

.page-top .kk-c4 .kk-cap mark {
	margin: 0 0 0 5px;
	padding: 0 13.5px;
	line-height: 35px;
}

/* ---------- リスク（--r はデザイン上の1px。PCは直径377px） ---------- */
.page-top .risk-list li {
	--r: 1px;
	position: relative;
	width: calc(var(--r) * 377);
	height: calc(var(--r) * 377);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 20px rgba(0, 0, 0, .12);
	color: #1e1e1e;
	text-align: center;
}

.page-top .risk-badge {
	position: absolute;
	left: calc(var(--r) * 13.5);
	top: calc(var(--r) * 13);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: calc(var(--r) * 82);
	height: calc(var(--r) * 82);
	border-radius: 50%;
	background: #015ac5;
	box-shadow: 0 0 0 calc(var(--r) * 3) #fff;
	color: #fff;
	font-family: var(--font-en);
	font-size: calc(var(--r) * 17);
	font-style: italic;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

.page-top .risk-badge em {
	margin-top: calc(var(--r) * -2);
	font-size: calc(var(--r) * 38);
	font-style: italic;
	left: -4.5px;
	position: relative;
}

.page-top .risk-ico {
	position: absolute;
	max-width: none;
	height: auto;
}

.page-top .risk-list li:nth-child(1) .risk-ico {
	left: calc(var(--r) * 102.5);
	top: calc(var(--r) * 45);
	width: calc(var(--r) * 180);
}

.page-top .risk-list li:nth-child(2) .risk-ico {
	left: calc(var(--r) * 98.5);
	top: calc(var(--r) * 64);
	width: calc(var(--r) * 199);
}

.page-top .risk-list li:nth-child(3) .risk-ico {
	left: calc(var(--r) * 117.5);
	top: calc(var(--r) * 59);
	width: calc(var(--r) * 161.5);
}

.page-top .risk-list li:nth-child(4) .risk-ico {
	left: calc(var(--r) * 88.5);
	top: calc(var(--r) * 48);
	width: calc(var(--r) * 205.5);
}

.page-top .risk-list li:nth-child(5) .risk-ico {
	left: calc(var(--r) * 104);
	top: calc(var(--r) * 49.5);
	width: calc(var(--r) * 175);
}

.page-top .risk-name {
	position: absolute;
	margin: 0;
	height: calc(var(--r) * 42);
	border-radius: calc(var(--r) * 21);
	background: #015ac5;
	color: #fff;
	font-size: calc(var(--r) * 22);
	font-weight: 700;
	line-height: calc(var(--r) * 42);
	letter-spacing: .03em;
	white-space: nowrap;
}

.page-top .risk-list li:nth-child(1) .risk-name {
	left: calc(var(--r) * 54.6);
	top: calc(var(--r) * 216);
	width: calc(var(--r) * 273);
}

.page-top .risk-list li:nth-child(2) .risk-name {
	left: calc(var(--r) * 38.6);
	top: calc(var(--r) * 197);
	width: calc(var(--r) * 305);
}

.page-top .risk-list li:nth-child(3) .risk-name {
	left: calc(var(--r) * 54.6);
	top: calc(var(--r) * 216);
	width: calc(var(--r) * 273);
}

.page-top .risk-list li:nth-child(4) .risk-name {
	left: calc(var(--r) * 38);
	top: calc(var(--r) * 187);
	width: calc(var(--r) * 305);
}

.page-top .risk-list li:nth-child(5) .risk-name {
	left: calc(var(--r) * 52.1);
	top: calc(var(--r) * 187);
	width: calc(var(--r) * 279);
}

.page-top .risk-list li p {
	position: absolute;
	left: 0;
	right: 0;
	margin: 0;
	font-size: calc(var(--r) * 18);
	font-weight: 400;
	line-height: calc(var(--r) * 28);
	letter-spacing: .03em;
}

.page-top .risk-list li:nth-child(1) p,
.page-top .risk-list li:nth-child(3) p {
	top: calc(var(--r) * 267.6);
}

.page-top .risk-list li:nth-child(2) p {
	top: calc(var(--r) * 248.6);
}

.page-top .risk-list li:nth-child(4) p,
.page-top .risk-list li:nth-child(5) p {
	top: calc(var(--r) * 238.7);
}

/* ---------- パートナーの2パターン（PC：カード1200×568px の中の位置） ---------- */
.page-top .pattern-card {
	position: relative;
	display: block;
	height: 568px;
	padding: 0;
	border-radius: 10px;
}

.page-top .pattern {
	position: static;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
}

.page-top .pattern-label {
	position: absolute;
	top: 60px;
	z-index: 2;
	margin: 0;
	line-height: 1;
}

.page-top .pattern--01 .pattern-label {
	left: 100px;
}

.page-top .pattern--02 .pattern-label {
	left: 640px;
}

.page-top .pattern-label .pt {
	display: flex;
	align-items: baseline;
	height: 40px;
	margin: 0;
	color: #333;
	font-family: var(--font-en);
	font-size: 19px;
	font-style: italic;
	font-weight: 400;
	letter-spacing: .02em;
}

.page-top .pattern-label .pt em {
	margin-left: 6px;
	color: #015ac5;
	font-size: 36px;
	font-style: italic;
	font-weight: 700;
}

.page-top .pattern-label .pt-name {
	display: block;
	margin-top: 6px;
	color: #015ac5;
	font-size: 28px;
	font-weight: 700;
	line-height: 35px;
	letter-spacing: .05em;
}

.page-top .pattern-num {
	position: absolute;
	top: 224px;
	z-index: 0;
	color: #f3f6fb;
	font-family: var(--font-en);
	font-size: 190px;
	font-style: italic;
	font-weight: 700;
	line-height: 214px;
	letter-spacing: -.04em;
}

.page-top .pattern--01 .pattern-num {
	left: 96px;
}

.page-top .pattern--02 .pattern-num {
	left: 638px;
}

.page-top .pattern-photo {
	position: absolute;
	z-index: 1;
	margin: 0;
}

.page-top .pattern-photo img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
}

.page-top .pattern--01 .pattern-photo {
	left: 237.5px;
	top: 81px;
	width: 319px;
}

.page-top .pattern--02 .pattern-photo {
	left: 779.5px;
	top: 84.5px;
	width: 338.5px;
}

.page-top .pattern-txt {
	position: absolute;
	top: 444px;
	margin: 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 32px;
	letter-spacing: .03em;
	text-align: center;
	white-space: nowrap;
}

.page-top .pattern--01 .pattern-txt {
	left: 111px;
	width: 427px;
}

.page-top .pattern--02 .pattern-txt {
	left: 647px;
	width: 459px;
}

/* ---------- SP（375px基準） ---------- */
@media screen and (max-width: 834px) {

	/* FV下の革命の丸：丸143px、横158px・縦163px間隔 */
	.page-top .fv-circles {
		padding: calc(var(--u) * 39.5) 0 calc(var(--u) * 8);
	}

	.page-top .fv-circles ul {
		width: calc(var(--u) * 301);
		max-width: none;
		gap: calc(var(--u) * 20) calc(var(--u) * 15);
		justify-content: flex-start;
	}

	.page-top .fv-circles .kc {
		--k: calc(var(--u) * 143 / 225);
		width: calc(var(--u) * 143);
		height: calc(var(--u) * 143);
		margin: 0;
	}

	.page-top .fv-circles .kc:nth-child(1) p {
		top: calc(var(--k) * 131);
	}

	/* 5つの革命 */
	.page-top .kakumei-panel:nth-child(1) .kk-content {
		height: calc(var(--u) * 158);
	}

	.page-top .kakumei-panel:nth-child(2) .kk-content {
		height: calc(var(--u) * 260);
	}

	.page-top .kakumei-panel:nth-child(3) .kk-content {
		height: calc(var(--u) * 170.5);
	}

	.page-top .kakumei-panel:nth-child(4) .kk-content {
		height: calc(var(--u) * 238.5);
	}

	.page-top .kakumei-panel:nth-child(5) .kk-content {
		height: calc(var(--u) * 228);
	}

	.page-top .kk-arrow {
		border-top-width: calc(var(--u) * 8.25);
		border-bottom-width: calc(var(--u) * 8.25);
		border-left-width: calc(var(--u) * 10);
	}

	.page-top .kk-cap {
		font-size: calc(var(--u) * 14);
		line-height: calc(var(--u) * 26);
		letter-spacing: 0;
	}

	.page-top .kk-cap mark,
	.page-top .kk-c4 .kk-cap mark {
		margin: 0 calc(var(--u) * 4);
		padding: 0 calc(var(--u) * 10);
		line-height: calc(var(--u) * 23.5);
	}

	.page-top .kk-c1 .kk-art--other {
		left: 0;
		top: calc(var(--u) * 12);
		width: calc(var(--u) * 150);
	}

	.page-top .kk-c1 .kk-art--secu {
		left: calc(var(--u) * 188);
		top: calc(var(--u) * 8.5);
		width: calc(var(--u) * 150);
	}

	.page-top .kk-c1 .kk-arrow {
		left: calc(var(--u) * 166.5);
		top: calc(var(--u) * 51.5);
	}

	.page-top .kk-c1 .kk-cap--other {
		left: calc(var(--u) * 18);
		top: calc(var(--u) * 132.75);
	}

	.page-top .kk-c1 .kk-cap--secu {
		left: calc(var(--u) * 219.5);
		top: calc(var(--u) * 132.75);
	}

	.page-top .kk-c1 .kk-cap--secu mark {
		padding: 0 calc(var(--u) * 8.5);
	}

	.page-top .kk-c2 .kk-art--other {
		left: calc(var(--u) * 8);
		top: calc(var(--u) * 1);
		width: calc(var(--u) * 141);
	}

	.page-top .kk-c2 .kk-art--secu {
		left: calc(var(--u) * 196.5);
		top: 0;
		width: calc(var(--u) * 138.5);
	}

	.page-top .kk-c2 .kk-arrow {
		left: calc(var(--u) * 179);
		top: calc(var(--u) * 59);
	}

	.page-top .kk-c2 .kk-cap {
		width: auto;
		text-align: left;
	}

	.page-top .kk-c2 .kk-cap--other {
		left: calc(var(--u) * 9);
		top: calc(var(--u) * 143.75);
		line-height: calc(var(--u) * 25.5);
	}

	.page-top .kk-c2 .kk-cap--other mark {
		margin: 0 calc(var(--u) * 4) 0 0;
		padding: 0 calc(var(--u) * 13);
	}

	.page-top .kk-c2 .kk-cap--secu {
		left: calc(var(--u) * 201.5);
		top: calc(var(--u) * 147.4);
		line-height: calc(var(--u) * 20.25);
	}

	.page-top .kk-c2 .kk-cap--secu mark {
		display: inline;
		margin: 0;
		padding: calc(var(--u) * 4.75) calc(var(--u) * 12.5);
		line-height: calc(var(--u) * 26);
		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;
	}

	.page-top .kk-c3 .kk-art--other {
		left: 0;
		top: calc(var(--u) * 18);
		width: calc(var(--u) * 163);
	}

	.page-top .kk-c3 .kk-art--secu {
		left: calc(var(--u) * 206);
		top: 0;
		width: calc(var(--u) * 132);
	}

	.page-top .kk-c3 .kk-arrow {
		left: calc(var(--u) * 172.5);
		top: calc(var(--u) * 54.5);
	}

	.page-top .kk-c3 .kk-cap--other {
		left: calc(var(--u) * 14);
		top: calc(var(--u) * 145.25);
	}

	.page-top .kk-c3 .kk-cap--other mark {
		padding: 0 calc(var(--u) * 12);
	}

	.page-top .kk-c3 .kk-cap--secu {
		left: calc(var(--u) * 180);
		top: calc(var(--u) * 145.25);
	}

	.page-top .kk-c3 .kk-cap--secu mark {
		margin: 0 0 0 calc(var(--u) * 3.5);
		padding: 0 calc(var(--u) * 11.75);
	}

	.page-top .kk-pill {
		height: calc(var(--u) * 23);
		border-radius: calc(var(--u) * 11.5);
		background: #333;
		font-size: calc(var(--u) * 12);
		line-height: calc(var(--u) * 23);
	}

	.page-top .kk-pill--other {
		left: calc(var(--u) * 19);
		top: 0;
		width: calc(var(--u) * 113);
		font-size: calc(var(--u) * 14);
	}

	.page-top .kk-pill--m365 {
		left: calc(var(--u) * 177);
		top: 0;
		width: calc(var(--u) * 171);
		background: #333;
	}

	.page-top .kk-pill--fg {
		left: calc(var(--u) * 187);
		top: calc(var(--u) * 77);
		width: calc(var(--u) * 151);
		background: #333;
	}

	.page-top .kk-price small {
		font-size: calc(var(--u) * 12);
	}

	.page-top .kk-price--other {
		left: calc(var(--u) * 19);
		top: calc(var(--u) * 26.3);
	}

	.page-top .kk-price--other b {
		margin: 0 calc(var(--u) * 2);
		font-size: calc(var(--u) * 23);
	}

	.page-top .kk-price--m365 {
		left: calc(var(--u) * 187);
		top: calc(var(--u) * 23.6);
	}

	.page-top .kk-price--fg {
		left: calc(var(--u) * 194);
		top: calc(var(--u) * 101.6);
	}

	.page-top .kk-price--m365 b,
	.page-top .kk-price--fg b {
		margin: 0 calc(var(--u) * 2);
		font-size: calc(var(--u) * 34);
	}

	.page-top .kk-price .kk-unit {
		margin-left: 0;
		font-size: calc(var(--u) * 9);
		letter-spacing: -.05em;
	}

	.page-top .kk-bar-high {
		left: calc(var(--u) * 42);
		top: calc(var(--u) * 63);
		width: calc(var(--u) * 67);
		height: calc(var(--u) * 132);
		border-radius: calc(var(--u) * 6) calc(var(--u) * 6) 0 0;
	}

	.page-top .kk-slope {
		left: calc(var(--u) * 109);
		top: calc(var(--u) * 63);
		width: calc(var(--u) * 121);
		height: calc(var(--u) * 132);
		clip-path: polygon(0 0, 100% 87.1%, 100% 100%, 0 100%);
	}

	.page-top .kk-bar-low {
		left: calc(var(--u) * 230);
		top: calc(var(--u) * 178);
		width: calc(var(--u) * 67);
		height: calc(var(--u) * 17);
		border-radius: calc(var(--u) * 4) calc(var(--u) * 4) 0 0;
	}

	.page-top .kk-base {
		left: 0;
		top: calc(var(--u) * 193.5);
		width: calc(var(--u) * 348);
		height: calc(var(--u) * 1.5);
	}

	.page-top .kk-c4 .kk-arrow {
		left: calc(var(--u) * 166.5);
		top: calc(var(--u) * 54.5);
	}

	.page-top .kk-c4 .kk-cap--other {
		left: calc(var(--u) * 22);
		top: calc(var(--u) * 213.25);
	}

	.page-top .kk-c4 .kk-cap--secu {
		left: calc(var(--u) * 207);
		top: calc(var(--u) * 210.25);
	}

	.page-top .kk-c4 .kk-cap mark {
		margin: 0 0 0 calc(var(--u) * 4);
		padding: 0 calc(var(--u) * 8.5);
	}

	.page-top .kk-c5 .kk-art--other {
		left: 0;
		top: 0;
		width: calc(var(--u) * 104.5);
	}

	.page-top .kk-c5 .kk-art--secu {
		left: calc(var(--u) * 185);
		top: 0;
		width: calc(var(--u) * 115.5);
	}

	.page-top .kk-c5 .kk-arrow {
		left: calc(var(--u) * 146);
		top: calc(var(--u) * 59);
	}

	.page-top .kk-c5 .kk-cap--other {
		left: calc(var(--u) * 5);
		top: calc(var(--u) * 143.6);
		width: auto;
		line-height: calc(var(--u) * 18.75);
		text-align: left;
	}

	.page-top .kk-c5 .kk-cap--other mark {
		margin: calc(var(--u) * 2) 0 0;
		padding: 0 calc(var(--u) * 12);
	}

	.page-top .kk-c5 .kk-cap--secu {
		left: calc(var(--u) * 192);
		top: calc(var(--u) * 141.75);
		line-height: calc(var(--u) * 18.75);
	}

	.page-top .kk-c5 .kk-cap--secu mark {
		margin: calc(var(--u) * 2) 0 0;
		padding: 0 calc(var(--u) * 13);
	}

	/* リスク：直径275px */
	.page-top .policy .risk-list li {
		--r: calc(275px / 377);
	}

	.page-top .risk-badge {
		left: 10px;
		top: 10px;
		width: 65px;
		height: 65px;
		font-size: 13px;
	}

	.page-top .risk-badge em {
		margin-top: -1px;
		font-size: 30px;
		left: -3.5px;
	}

	.page-top .risk-list li:nth-child(1) .risk-ico {
		left: 76.3px;
		top: 34px;
		width: 124px;
	}

	.page-top .risk-list li:nth-child(2) .risk-ico {
		left: 74.8px;
		top: 33px;
		width: 137.4px;
	}

	.page-top .risk-list li:nth-child(3) .risk-ico {
		left: 87.8px;
		top: 36px;
		width: 110.7px;
	}

	.page-top .risk-list li:nth-child(4) .risk-ico {
		left: 69px;
		top: 40px;
		width: 141.9px;
	}

	.page-top .risk-list li:nth-child(5) .risk-ico {
		left: 83.4px;
		top: 35px;
		width: 109px;
	}

	.page-top .risk-list li .risk-name {
		left: 50%;
		height: 33.5px;
		border-radius: 17px;
		font-size: 18px;
		line-height: 33.5px;
		letter-spacing: 0;
		transform: translateX(-50%);
	}

	.page-top .risk-list li:nth-child(1) .risk-name {
		left: 50%;
		top: 159px;
		width: 216px;
	}

	.page-top .risk-list li:nth-child(2) .risk-name {
		left: 50%;
		top: 139.5px;
		width: 242px;
	}

	.page-top .risk-list li:nth-child(3) .risk-name {
		left: 50%;
		top: 149.1px;
		width: 216px;
	}

	.page-top .risk-list li:nth-child(4) .risk-name {
		left: 50%;
		top: 137.4px;
		width: 242px;
	}

	.page-top .risk-list li:nth-child(5) .risk-name {
		left: 50%;
		top: 126.8px;
		width: 222px;
	}

	.page-top .risk-list li p {
		font-size: 14px;
		line-height: 20px;
		letter-spacing: 0;
	}

	.page-top .risk-list li:nth-child(1) p {
		top: 200.2px;
	}

	.page-top .risk-list li:nth-child(2) p {
		top: 180.7px;
	}

	.page-top .risk-list li:nth-child(3) p {
		top: 190.3px;
	}

	.page-top .risk-list li:nth-child(4) p {
		top: 178.6px;
	}

	.page-top .risk-list li:nth-child(5) p {
		top: 168px;
	}

	/* パートナーの2パターン：カード339×672px */
	.page-top .pattern-card {
		height: calc(var(--u) * 672);
		padding: 0;
		border-radius: calc(var(--u) * 10);
	}

	.page-top .pattern--01 .pattern-label,
	.page-top .pattern--02 .pattern-label {
		left: calc(var(--u) * 20);
	}

	/* 旧コーディングのSP用 .pattern-photo（position:relative）を打ち消す */
	.page-top .pattern--01 .pattern-photo,
	.page-top .pattern--02 .pattern-photo {
		position: absolute;
		max-width: none;
		margin: 0;
	}

	.page-top .pattern--01 .pattern-label {
		top: calc(var(--u) * 42.6);
	}

	.page-top .pattern--02 .pattern-label {
		top: calc(var(--u) * 349);
	}

	.page-top .pattern-label .pt {
		height: calc(var(--u) * 26);
		font-size: calc(var(--u) * 14);
	}

	.page-top .pattern-label .pt em {
		margin-left: calc(var(--u) * 5);
		font-size: calc(var(--u) * 24);
	}

	.page-top .pattern-label .pt-name {
		margin-top: calc(var(--u) * 3);
		font-size: calc(var(--u) * 18);
		line-height: calc(var(--u) * 22);
	}

	.page-top .pattern-num {
		font-size: calc(var(--u) * 125);
		line-height: calc(var(--u) * 140);
	}

	.page-top .pattern--01 .pattern-num {
		left: calc(var(--u) * 26.2);
		top: calc(var(--u) * 130);
	}

	.page-top .pattern--02 .pattern-num {
		left: calc(var(--u) * 26.2);
		top: calc(var(--u) * 467.6);
	}

	.page-top .pattern--01 .pattern-photo {
		left: calc(var(--u) * 105.3);
		top: calc(var(--u) * 28.4);
		width: calc(var(--u) * 209.4);
	}

	.page-top .pattern--02 .pattern-photo {
		left: calc(var(--u) * 99.5);
		top: calc(var(--u) * 365.2);
		width: calc(var(--u) * 221.9);
	}

	.page-top .pattern-txt {
		left: calc(var(--u) * 22);
		width: calc(var(--u) * 297);
		font-size: calc(var(--u) * 14);
		line-height: calc(var(--u) * 24);
		text-align: left;
		white-space: normal;
	}

	.page-top .pattern--01 .pattern-txt {
		left: calc(var(--u) * 22);
		top: calc(var(--u) * 269.6);
		width: calc(var(--u) * 297);
	}

	.page-top .pattern--02 .pattern-txt {
		left: calc(var(--u) * 22);
		top: calc(var(--u) * 599.6);
		width: calc(var(--u) * 297);
	}
}

/* ==========================================================
   TOP：デザインとの差分の修正（2026-09-15）
   ========================================================== */
/* AI-SOCとは：図解の背景は枠を見せず、上が白・下が薄い青のグラデーション */
.page-top .diag {
	background: linear-gradient(to bottom, #fff 0%, #e9f3ff 100%);
}

/* 「3つ」だけ黄色、「3」は大きく */
.page-top .support-title .hl-w b {
	font-size: 1.3em;
	font-weight: 700;
	line-height: 1;
}

/* お問い合わせフォームの背景（左上の水色から右下の紺へ） */
.page-top .form {
	background: linear-gradient(to bottom right, #2088cb 20%, #2e3192 95%);
}

/* パートナー：背景の方眼 */
.page-top .partner {
	background-color: #f7f7f7;
	background-image: linear-gradient(#f2f2f2 1px, transparent 1px), linear-gradient(90deg, #f2f2f2 1px, transparent 1px);
	background-size: 44px 44px;
	background-position: 32px 33px;
}

.page-top .pattern-card {
	box-shadow: 0 0 0 1px #e3e3e3, 0 0 6px rgba(0, 0, 0, .05);
}

@media screen and (min-width: 835px) {
	.page-top .about-txt p {
		letter-spacing: .01em;
	}

	/* 5つの革命の見出し：左端はコンテンツの左から100px、1行の説明文、ステージとの間は約90px */
	.page-top .kakumei {
		padding-top: 127px;
	}

	.page-top .kakumei-head {
		width: 1014px;
		max-width: none;
		margin: 0 0 90.6px calc(50% - 500px);
		padding-left: 52px;
	}

	.page-top .kakumei-head::before {
		top: 3.4px;
		width: 20px;
		height: 139px;
		background: linear-gradient(to bottom, #2f3593, #c0e6f7);
	}

	.page-top .kakumei-title {
		margin-bottom: 0;
	}

	.page-top .kakumei-head p {
		margin-top: 18.4px;
		font-size: 18px;
		line-height: 32px;
		letter-spacing: 0;
		white-space: nowrap;
	}

	/* 代表メッセージ本文 */
	.page-top .president-txt p:last-child {
		font-size: 22px;
		line-height: 40px;
		letter-spacing: .05em;
	}

	/* パートナーのカード */
	.page-top .partner-list li {
		padding-top: 50px;
		box-shadow: 0 0 0 1px #e1e1e1, 0 0 6px rgba(0, 0, 0, .05);
	}

	.page-top .partner-tag {
		padding: 0 20px;
		font-size: 20px;
		letter-spacing: .12em;
	}

	.page-top .partner-tag::before {
		content: "";
		position: absolute;
		left: 50%;
		top: 100%;
		width: 1px;
		height: 10px;
		background: #80ace1;
	}

	.page-top .partner-tag::after {
		content: "";
		position: absolute;
		left: 50%;
		top: calc(100% + 9px);
		width: 5px;
		height: 5px;
		margin-left: -2px;
		border-radius: 50%;
		background: #005ac3;
	}

	.page-top .partner-logo {
		margin-bottom: 7px;
	}

	.page-top .partner-logo img {
		max-height: none;
	}

	.page-top .partner-logo.snowpeak img {
		height: 132px;
	}

	.page-top .partner-list li p {
		font-size: 18px;
		line-height: 26px;
	}

	.page-top .partner-list li:nth-child(2) p {
		margin-top: -8px;
	}

	.page-top .partner-kind::after {
		height: 2px;
		background: #005ac3;
	}

	/* パートナー見出しとカードの間はデザインで150px */
	.page-top .partner .sec-title {
		margin-bottom: 84px;
	}

	.page-top .president-title {
		margin-bottom: 39px;
	}

	.page-top .president-name {
		margin-bottom: 18px;
	}
}

@media screen and (max-width: 834px) {
	.page-top .about-txt p {
		letter-spacing: .05em;
	}

	.page-top .partner {
		background-size: 22px 22px;
		background-position: 16px 16px;
	}

	/* 5つの革命の見出し：左に細いグラデーションの線、2行のタイトルを左揃え */
	.page-top .kakumei {
		padding-top: calc(var(--u) * 60);
	}

	.page-top .kakumei-head {
		position: relative;
		width: 100%;
		margin: 0 0 calc(var(--u) * 60);
		padding-left: 0;
	}

	.page-top .kakumei-head::before {
		display: block;
		left: calc(var(--u) * 50);
		top: 0;
		width: calc(var(--u) * 5);
		height: calc(var(--u) * 71.6);
		background: linear-gradient(to bottom, #2f3593, #c0e6f7);
	}

	.page-top .kakumei-title {
		flex-direction: column;
		align-items: flex-start;
		gap: calc(var(--u) * 6.7);
		margin: 0 0 0 calc(var(--u) * 72);
	}

	.page-top .kakumei-title .t1,
	.page-top .kakumei-title .t2 {
		width: calc(var(--u) * 205);
		max-width: none;
		margin: 0;
	}

	.page-top .kakumei-head p {
		margin-top: calc(var(--u) * 20.2);
		font-size: calc(var(--u) * 16);
		line-height: calc(var(--u) * 28);
		letter-spacing: .03em;
		text-align: left;
	}

	/* 代表メッセージ：見出し → 写真 → 肩書き → 本文 の順 */
	.page-top .president {
		padding: calc(var(--u) * 145) 0 calc(var(--u) * 60);
		background-size: cover;
	}

	.page-top .president .inner {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.page-top .president-txt {
		display: contents;
	}

	.page-top .president-title {
		order: 1;
		margin: 0;
	}

	/* 見出しは明朝のアウトライン画像。PCの2行版を切り出して3行に並べる */
	.page-top .president-title-sp {
		display: block;
	}

	.page-top .president-title-sp span {
		display: block;
		background: url(../img/top/president_title.svg) no-repeat;
	}

	.page-top .president-title-sp .l1 {
		width: calc(var(--u) * 213);
		height: calc(var(--u) * 20.3);
		margin-left: calc(var(--u) * 3.3);
		background-size: calc(var(--u) * 405.3) auto;
		background-position: 0 calc(var(--u) * -5.24);
	}

	.page-top .president-title-sp .l2 {
		width: calc(var(--u) * 199.9);
		height: calc(var(--u) * 28.9);
		margin: calc(var(--u) * 14.3) 0 0 calc(var(--u) * 1.9);
		background-size: calc(var(--u) * 431.6) auto;
		background-position: calc(var(--u) * -231.4) 0;
	}

	.page-top .president-title-sp .l3 {
		width: calc(var(--u) * 272.1);
		height: calc(var(--u) * 28.9);
		margin: calc(var(--u) * 17.7) 0 0 calc(var(--u) * 1);
		background-size: calc(var(--u) * 417.5) auto;
		background-position: calc(var(--u) * -1.27) calc(var(--u) * -43.5);
	}

	.page-top .president-photo {
		order: 2;
		width: calc(var(--u) * 368);
		max-width: none;
		margin: calc(var(--u) * 4.1) 0 0 calc(var(--u) * -4);
	}

	.page-top .president-name {
		order: 3;
		gap: calc(var(--u) * 12);
		margin: calc(var(--u) * 30.6) 0 0;
	}

	.page-top .president-name .post {
		padding: 0 calc(var(--u) * 7);
		font-size: calc(var(--u) * 14);
		line-height: calc(var(--u) * 28);
		letter-spacing: .09em;
	}

	.page-top .president-name .name {
		font-size: calc(var(--u) * 18);
	}

	.page-top .president-txt p:last-child {
		order: 4;
		margin-top: calc(var(--u) * 14);
		font-size: calc(var(--u) * 16);
		line-height: calc(var(--u) * 28.6);
		letter-spacing: .06em;
	}

	/* パートナーの種類：見出しは中央、下に全幅の線 */
	.page-top .partner .sec-title {
		margin-bottom: calc(var(--u) * 31);
	}

	.page-top .partner-kind {
		display: block;
		margin: calc(var(--u) * 40.9) 0 0;
		padding-bottom: calc(var(--u) * 14.2);
		border-bottom: 1px solid #005ac3;
		text-align: center;
	}

	.page-top .partner-kind::after {
		display: none;
	}

	.page-top .partner-kind img {
		display: inline-block;
		width: calc(var(--u) * 277.8);
		max-width: none;
	}

	.page-top .partner-note {
		margin: calc(var(--u) * 9) 0 calc(var(--u) * 20);
		font-size: calc(var(--u) * 16);
		line-height: calc(var(--u) * 28.7);
		letter-spacing: .04em;
	}

	.page-top .partner-note br {
		display: inline;
	}
}

/* フッター（PC）：白い部分234px、リンクは行の高さ38px、コピーライトの帯72px */
@media screen and (min-width: 835px) {
	.page-top .footer-inner {
		gap: 81px;
		padding: 60px 0;
	}

	.page-top .footer-logo {
		width: 237px;
		margin-top: 12px;
	}

	.page-top .footer-links li {
		margin-bottom: 0;
	}

	.page-top .footer-links li a {
		font-weight: 400;
		line-height: 38px;
		color: #333;
	}

	.page-top .footer-links li.child {
		margin-left: 21.4px;
	}

	.page-top .copyright {
		padding: 25px 0;
		font-weight: 400;
	}
}

/* フッター（SP）：ロゴは中央、リンクは左寄せで行の高さ38px。帯は下の固定ボタンの分も含めて156px */
@media screen and (max-width: 834px) {
	.page-top .footer-inner {
		gap: calc(var(--u) * 40.7);
		padding: calc(var(--u) * 40) 0;
	}

	.page-top .footer-logo {
		width: calc(var(--u) * 221);
	}

	.page-top .footer-links {
		width: calc(var(--u) * 299);
		max-width: none;
	}

	.page-top .footer-links li {
		margin-bottom: 0;
	}

	.page-top .footer-links li a {
		gap: calc(var(--u) * 9.6);
		font-size: calc(var(--u) * 18);
		font-weight: 400;
		line-height: calc(var(--u) * 38);
		color: #333;
	}

	.page-top .footer-links li.child {
		margin-left: calc(var(--u) * 21.4);
	}

	.page-top .copyright {
		padding: calc(var(--u) * 20) 0 calc(var(--u) * 113.6);
		font-size: calc(var(--u) * 14);
		font-weight: 400;
	}
}

/* ==========================================================
   5つの革命：スクロールで切り替えるのをやめ、5つを縦に並べる
   ========================================================== */
.page-top .kakumei-scroll {
	height: auto;
}

.page-top .kakumei-stage {
	position: static;
	height: auto;
	padding: 70px 0 110px;
	overflow: hidden;
}

.page-top .kakumei-stage::after {
	display: none;
}

.page-top .kakumei-stage-inner {
	height: auto;
}

.page-top .kakumei-tabs {
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	width: calc(100% - 268px);
	margin: 0 0 50px auto;
}

.page-top .kakumei-panels {
	position: static;
	inset: auto;
}

.page-top .kakumei-panel,
.page-top .kakumei-panel.is-out-up,
.page-top .kakumei-panel.is-out-down {
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	height: auto;
	margin: 0 0 70px;
	pointer-events: auto;
}

.page-top .kakumei-panel:last-child {
	margin-bottom: 0;
}

.page-top .kk-badge {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
}

/* 図は「他のSOC／セキュアヴェイル」の帯の真下にくるよう、デザインの左位置のまま */
.page-top .kakumei-panel:nth-child(n) .kk-content {
	position: relative;
	top: 0;
	right: auto;
}

@media screen and (max-width: 834px) {
	.page-top .kakumei-stage {
		padding: calc(var(--u) * 30) 0 calc(var(--u) * 45);
		border-radius: calc(var(--u) * 30) calc(var(--u) * 30) 0 0;
	}

	.page-top .kakumei-stage-inner {
		width: 100%;
	}

	.page-top .kakumei-tabs {
		width: 100%;
		height: calc(var(--u) * 45);
		margin: 0 0 calc(var(--u) * 40);
	}

	.page-top .kakumei-panel,
	.page-top .kakumei-panel.is-out-up,
	.page-top .kakumei-panel.is-out-down {
		margin: 0 0 calc(var(--u) * 55);
	}

	.page-top .kk-badge {
		position: relative;
		left: auto;
		top: auto;
		transform: none;
		margin: 0 auto calc(var(--u) * 26);
	}

	.page-top .kakumei-panel:nth-child(n) .kk-content {
		margin: 0;
	}
}

/* 革命バッジの吹き出しの尖り：円の外にきちんと出す（PCは右、SPは下） */
.page-top .kk-badge::after {
	right: -18px;
	border-top-width: 20px;
	border-bottom-width: 20px;
	border-left-width: 20px;
}

@media screen and (max-width: 834px) {
	.page-top .kk-badge::after {
		right: 50%;
		bottom: calc(var(--u) * -10);
	}

	/* 革命02の右側：帯（対応策まで／無人化できる）が上の行と重ならないようにする */
	.page-top .kk-c2 .kk-cap--secu mark {
		padding: calc(var(--u) * 1.6) calc(var(--u) * 12.5);
	}

	/* 図の枠の幅もSPの値にする（PCの幅のままだと右にはみ出す） */
	.page-top .kakumei-panel:nth-child(1) .kk-content {
		width: calc(var(--u) * 338);
	}

	.page-top .kakumei-panel:nth-child(2) .kk-content {
		width: calc(var(--u) * 344);
	}

	.page-top .kakumei-panel:nth-child(3) .kk-content {
		width: calc(var(--u) * 341);
	}

	.page-top .kakumei-panel:nth-child(4) .kk-content {
		width: calc(var(--u) * 348);
	}

	.page-top .kakumei-panel:nth-child(5) .kk-content {
		width: calc(var(--u) * 300.5);
	}
}

/* ==========================================================
   5つの革命：比較の帯（他のSOC／セキュアヴェイル）を革命ごとに置く
   縦に伸びる分、文字と帯の高さを少し小さくする
   ========================================================== */
.page-top .kakumei-panel .kakumei-tabs {
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	width: calc(100% - 268px);
	height: 52px;
	border-radius: 26px;
	margin: 0 0 24px auto;
}

.page-top .kakumei-panel .kakumei-tabs span {
	font-size: 22px;
	letter-spacing: .05em;
}

/* 帯の分だけ、革命の丸は下にずらして図の中央に合わせる */
.page-top .kk-badge {
	top: calc(50% + 38px);
}

@media screen and (max-width: 834px) {
	.page-top .kakumei-panel .kakumei-tabs {
		display: flex;
		position: relative;
		left: auto;
		right: auto;
		top: auto;
		width: 100%;
		height: calc(var(--u) * 34);
		margin: 0 0 calc(var(--u) * 16);
	}

	.page-top .kakumei-panel .kakumei-tabs span {
		font-size: calc(var(--u) * 15);
		letter-spacing: .02em;
	}

	.page-top .kk-badge {
		top: auto;
		margin: 0 auto calc(var(--u) * 16);
	}
}
