* {
	box-sizing: border-box;
}

html {
	margin: 0;
/*	width: 1920px;
	min-height: 1080px;*/
	scroll-behavior: smooth;
	scroll-padding-top: var(--headerHeight);
}

body {
	margin: 0;
	-webkit-text-size-adjust: 100%;
/*	min-width: 1920px;
	min-height: 1080px;*/
	overflow-x: hidden;
	overflow-y: auto;
}

ul {
	margin: 0;
	padding: 0;
}

a {
	text-decoration: none;
}

a:hover img {
	opacity: 1;
}

.right_fadein {
	transform: translate(250px, 0px);
}

@keyframes ripple-01 {
	0% {box-shadow: 0 0 0 0 #f15a24;}
	70% {box-shadow: 0 0 0 10px rgb(241 90 36 / 0%);}
	100% {box-shadow: 0 0 0 0 rgb(241 90 36 / 0%);}
}

@keyframes ripple-02 {
	0% {box-shadow: 0 0 0 0 #bababa;}
	70% {box-shadow: 0 0 0 10px rgb(186 186 186 / 0%);}
	100% {box-shadow: 0 0 0 0 rgb(186 186 186 / 0%);}
}

@keyframes ripple-03 {
	0% {box-shadow: 0 0 0 0 #007aff;}
	70% {box-shadow: 0 0 0 10px rgb(0 122 255 / 0%);}
	100% {box-shadow: 0 0 0 0 rgb(0 122 255 / 0%);}
}

@keyframes ripple-04 {
	0% {box-shadow: 0 0 0 0 #ffffff;}
	70% {box-shadow: 0 0 0 10px rgb(255 255 255 / 0%);}
	100% {box-shadow: 0 0 0 0 rgb(255 255 255 / 0%);}
}

@media (any-hover: hover) {
	.logo:focus,
	.logo:hover {
		opacity: 0.5;
	}

	#main_visual .subsidy .subsidy_btn_block > a:nth-of-type(1):focus,
	#main_visual .subsidy .subsidy_btn_block > a:nth-of-type(1):hover,
	.MenuOpen .nav-unitLink > a:nth-of-type(1):focus,
	.MenuOpen .nav-unitLink > a:nth-of-type(1):hover,
	.consultation > a:focus,
	.consultation > a:hover,
	.estimated_cost > a:focus,
	.estimated_cost > a:hover,
	.form-submit-wrapper .btn:focus,
	.form-submit-wrapper .btn:hover,
	.entryLink > a:nth-of-type(1):focus,
	.entryLink > a:nth-of-type(1):hover {
		color: #f15a24;
		background-color: #ffffff;
		-webkit-animation: pulse 2s infinite;
		animation: ripple-01 1.5s infinite;
	}

	#main_visual .subsidy .subsidy_btn_block > a:nth-of-type(2):focus,
	#main_visual .subsidy .subsidy_btn_block > a:nth-of-type(2):hover,
	.MenuOpen .nav-unitLink > a:nth-of-type(2):focus,
	.MenuOpen .nav-unitLink > a:nth-of-type(2):hover,
	.application_area .area > a:focus,
	.application_area .area > a:hover,
	.form-submit-wrapper a:focus,
	.form-submit-wrapper a:hover,
	.entryLink > a:nth-of-type(2):focus,
	.entryLink > a:nth-of-type(2):hover {
		color: #ffffff;
		border: 1px solid #bababa;
		background-color: #bababa;
		-webkit-animation: pulse 2s infinite;
		animation: ripple-02 1.5s infinite;
	}

	.navMenu-bt:hover img {
		border-radius: 100vmax;
		-webkit-animation: pulse 2s infinite;
		animation: ripple-04 1.5s infinite;
	}

	.MenuOpen .menuItem:focus,
	.MenuOpen .menuItem:hover {
		text-shadow: 2px 2px 4px rgb(0, 0, 0);
	}

	.header-container.scrollColor-top .navMenu-bt:hover img {
		border-radius: 100vmax;
		-webkit-animation: pulse 2s infinite;
		animation: ripple-03 1.5s infinite;
	}

	.header__login:focus,
	.header__login:hover {
		background-color: #0062ff;
		-webkit-animation: pulse 2s infinite;
		animation: ripple-03 1.5s infinite;
	}

	.header__login:focus .header__login-text,
	.header__login:hover .header__login-text {
		color: #ffffff;
	}
}


/* 見出し */
.secondHeading-group {
	display: flex;
	flex-direction: column;
	margin-bottom: 50px;
	letter-spacing: 0.2em;
}

.secondHeading-group.center {
	align-items: center;
}

.secondHeading-group::after {
	content: "";
	width: 110px;
	height: 3px;
	background-color: #f7931e;
	margin-block-start: 50px;
}

.secondHeading {
	font-size: 38px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #00070c;
	opacity: 0;
	transform: translateY(50px);
	filter: blur(2px);
	transition:
		opacity 0.7s ease,
		transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
		filter 0.9s ease;
}

.secondHeading.is-visible {
	opacity: 1;
	transform: translateY(0);
	filter: blur(0);
}

.res_br,
.res_br_519 {
	display: none;
}

.secondHeading > span {
/*	font-size: 38px;
	font-family: "Noto Sans JP", sans-serif;*/
	font-weight: 900;
	color: #0062ff;
}

.subHeading-text {
	font-size: 14px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #727171;
	margin-bottom: 40px;
}

@media screen and (max-width: 1199px) {
	.secondHeading {
		font-size: clamp(32px, calc(38 / 1199 * 100vw), 38px);
	}

	.res_br {
		display: block;
	}
}

@media screen and (max-width: 519px) {
	.secondHeading {
		font-size: clamp(20px, calc(24 / 519 * 100vw), 24px);
	}

	.res_br_519 {
		display: block;
	}
}

/* header */
.header-container {
	display: flex;
	justify-content: center;
	align-items: center;
/*	gap: 50px;*/
	width: 100vw;
/*	background: linear-gradient(
		to bottom,
		#007aff 0,
		#007aff 625px,
		transparent 625px,
		transparent 100%
	);*/
	background-image: url(img/main_visual/heroback.png);
	background-repeat: no-repeat;
	background-size: 1920px;
	background-position: top center;
	padding: 26px 0 24px 0;
	position: absolute;
	z-index: 10;
}

.header__login {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 150px;
	height: 40px;
	background: #ffffff;
	border: 1px solid #ffffff;
	border-radius: 20px;
	text-decoration: none;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	position: absolute;
	right: 50px;
	top: 24.4785px;
}

.header__login-text {
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 500;
	color: #0062ff;
	letter-spacing: 0.75px;
	line-height: 1;
	white-space: nowrap;
	margin: 0;
	padding: 0;
}

.header__login-icon {
	display: block;
	width: 20.5878px;
	height: 17.7104px;
	margin: 0;
	padding: 0;
}

.header-container.scrollColor-top {
	background-image: none;
	background-color: #ffffff;
	position: fixed;
	animation: showHeader 0.7s ease;
}

@keyframes showHeader {
	0% {opacity:0;}
	100% {opacity:1;}
}

.logo-mark {
	width: 205.4583px;
	margin-right: 20px;
}

@media screen and (max-width: 719px) {
	.header__login {
		display: none;
	}

	.MenuOpen .header__login {
		display: flex;
		border: 1px solid #0062ff;
		top: calc(100dvh - 60px);
		left: 50%;
		transform: translateX(-50%);
		z-index: 9999;
	}
}

@media screen and (max-width: 576px) {
	.header-container {
		background-image: url(img/main_visual/heroback576.png);
		background-size: 576px;
		background-position: top center;
	}
}

@media screen and (max-width: 519px) {
	.header-container {
		padding-inline: 16px;
	}

/*	.logo-mark {
		width: 250px;
	}*/
}

/* navi */
/* custom.jsにて「#globalMenu-bt」押下時、<body>に「.MenuOpen」を追加 */
.nav {
	display: none;
}

.MenuOpen {
	overflow: hidden;
}

.MenuOpen .siteSize {
	padding: 0;
}

.MenuOpen .header-container {
	background-image: none;
	background-color: #007aff;
	z-index: 1000;
}

.MenuOpen .header-container.scrollColor-top {
	background-image: none;
	background-color: #ffffff;
	position: fixed;
	z-index: 1000;
}

.MenuOpen .navWrap-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	height: 100vh;
	background-color: #007aff;
	z-index: 980;
	animation: showMenu 0.7s ease;
}

.MenuOpen .nav {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: fit-content;
	/*height: 100vh;*/
	max-height: calc(100svh - var(--headerHeight));
	/*padding-block: calc(8px + var(--headerHeight)) 0;*/
	overflow-y: auto;
	overscroll-behavior-y: contain;
	margin: auto;
/*	background-color: var(--basic-white-color);*/
	position: fixed;
	left: 50%;
	top: calc(8px + var(--headerHeight));
	translate: -50% 0;
	z-index: 9999;
	animation: showMenu 0.7s ease;
}

@keyframes showMenu {
	0% {opacity:0;}
	100% {opacity:1;}
}

.MenuOpen .navList {
	font-size: min(25px, (25 / 480 * 100vw));
	color: #ffffff;
	width: fit-content;
	max-height: 650px;
	overflow-y: auto;
	margin-block-end: 18px;
	display: block;
	position: relative;
}

.MenuOpen .navList li {
	padding-inline-start: 35px;
	position: relative;
}

/*.MenuOpen .navList li::before {
	content: "";
	width: 1px;
	height: 100%;
	padding-inline-start: 1px; 
	border-inline-start: 1px solid;
	position: absolute;
	left: 0;
}

.MenuOpen .navList li:first-child::before {
	height: calc(100% - ((45 / 2) / 25 * 1em));
	bottom: 0;
}

.MenuOpen .navList li:last-child::before {
	height: calc(100% - ((45 / 2) / 25 * 1em));
	top: 0;
}*/

.MenuOpen .menuItem {
	display: block;
	width: fit-content;
	font-size: 1em;
	font-weight: 700;
	color: currentColor;
	line-height: calc(61 / 25 * 1em);
	white-space: nowrap;
}
.MenuOpen .nav-unitLink {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	width: 100vw;
	background-color: #ffffff;
	padding: 50px 0 90px 0;
	position: relative;
	bottom: 0;
}

.MenuOpen .nav-unitLink > a:nth-of-type(1) {
	width: 250px;
	font-size: 20px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #ffffff;
	text-align: center;
	padding: 10px 0 9px 0;
	border: 1px solid #f15a24;
	border-radius: 100vmax;
	background-color: #f15a24;
}

.MenuOpen .nav-unitLink > a:nth-of-type(2) {
	width: 250px;
	font-size: 20px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #00070c;
	text-align: center;
	padding: 10px 0 9px 0;
	border: 1px solid #bababa;
	border-radius: 100vmax;
	background-color: #ffffff;
}

.MenuOpen .toTop {
	display: none;
}

/* main visual */
#main_visual {
	position: relative;
	width: 100vw;
	overflow-x: clip;
/*	background: linear-gradient(
		to bottom,
		#007aff 0,
		#007aff 625px,
		transparent 625px,
		transparent 100%
	);*/
	background-image: url(img/main_visual/heroback.png);
	background-repeat: no-repeat;
	background-size: 1920px;
	background-position: top center;
}

.main_visual_wapper {
	width: 1200px;
	margin-inline: auto;
	position: relative;
	min-height: 1040px;
	letter-spacing: 0.3em;
}

.heading-text, 
.main_visual_wapper h1 {
	position: relative;
	z-index: 150;
}

#main_visual h1 {
	font-size: 42px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #ffffff;
	margin: 0;
	position: absolute;
	top: 125px;
	z-index: 10;
}

#main_visual .heading-text {
	position: absolute;
	top: 240px;
	left: 40px;
	z-index: 10;
}

#main_visual .heading-text .heading-text-cont > p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	line-height: 1.8;
	color: #ffffff;
	margin-bottom: 35px;
}

#main_visual .heading-text .heading-text-cont > ul {
	margin-bottom: 160px;
}

#main_visual .heading-text .heading-text-cont > ul li {
	font-size: 34px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #ffffff;
	list-style: none;
	padding-bottom: 10px;
}

#main_visual .heading-text .heading-text-cont > ul li::before {
	content: "";
	display: inline-block;
	width: 35px;
	height: 30px;
	background-image: url(img/main_visual/checkgold01.svg);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
	top: 5px;
	margin-right: 10px;
}

#main_visual .subsidy {
	margin-left: 50px;
	text-align: center;
	letter-spacing: 0;
}
	
#main_visual .subsidy > p {
	font-size: 20px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #133e97;
	margin-bottom: 5px;
}

#main_visual .subsidy > img {
	width: 300px;
	margin-bottom: 30px;
}

#main_visual .subsidy .subsidy_btn_block {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
}

#main_visual .subsidy .subsidy_btn_block > a:nth-of-type(1) {
	width: 250px;
	font-size: 20px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #ffffff;
	text-align: center;
	padding: 10px 0 9px 0;
	border: 1px solid #f15a24;
	border-radius: 100vmax;
	background-color: #f15a24;
	-webkit-transition: all 0.5s;
	transition: all 0.5s;
}

#main_visual .subsidy .subsidy_btn_block > a:nth-of-type(2) {
	width: 250px;
	font-size: 20px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #00070c;
	text-align: center;
	padding: 10px 0 9px 0;
	border: 1px solid #bababa;
	border-radius: 100vmax;
	background-color: #ffffff;
}

@media screen and (max-width: 1199px) {
	#main_visual h1 {
		font-size: clamp(36px, calc(42 / 1199 * 100vw), 42px);
		text-indent: -40px;
		left: 50%;
		transform: translateX(-50%);
	}

	.main_visual_wapper {
		width: 100vw;
		height: 1690px;
	}

	#main_visual .heading-text {
		display: flex;
		flex-direction: column;
		position: relative;
		top: 900px;
		left: 50%;
		transform: translateX(-50%);
	}

	#main_visual .heading-text .heading-text-cont {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100vw;
		background-image: url(img/main_visual/heroback.png);
		background-repeat: no-repeat;
		background-size: 1920px;
		background-position: top center;
		order: 2;
		padding: 100px 0 90px 0;
	}

	#main_visual .heading-text .heading-text-cont > ul {
		margin-bottom: 0;
	}

	#main_visual .heading-text .subsidy {
		order: 1;
		text-align: center;
		margin-bottom: 50px;
		margin-left: 0;
	}
}

@media screen and (max-width: 979px) {
	#main_visual h1 {
		left: calc(6vw + 19vw * (100vw - 540px) / (979px - 540px));
		transform: none;
	}

	#main_visual .heading-text .heading-text-cont > p {
		letter-spacing: 0.2em;
	}
}

@media screen and (max-width: 576px) {
	#main_visual {
		background-image: url(img/main_visual/heroback576.png);
		background-size: 576px;
		background-position: top center;
	}
}


@media screen and (max-width: 539px) {
	#main_visual h1 {
		font-size: clamp(22px, calc(36 / 519 * 100vw), 36px);
		text-indent: clamp(-40px, calc(-40 / 519 * 100vw), -22px);
		left: calc(50% - (431 / 519 * 100vw) / 2);
	}

	.main_visual_wapper {
		height: 1550px;
		letter-spacing: 0.1em;
	}

	#main_visual .heading-text {
		top: 800px;
	}

	#main_visual .heading-text .heading-text-cont {
		padding: 30px 16px 30px 16px;
	}

	#main_visual .heading-text .heading-text-cont p br {
		display: none;
	}

	#main_visual .heading-text .heading-text-cont > ul li,
	#main_visual .heading-text .heading-text-cont > ul li::before {
		font-size: 20px;
	}
}

/* hero animation */
.hero {
	width: 1920px;
	height: 1080px;
	object-fit: cover;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	pointer-events: none;
}

.hero img {
	position: absolute;
	display: block;
}

.hero01\.png {
	left: 998.7445px;
	top: 352.8075px;
	width: 410.6667px;
	height: 447.6667px;
	z-index: 90;
}

.hero02\.png {
	left: 1027.4855px;
	top: 260.2557px;
	width: 209.3333px;
	height: 229.6667px;
	z-index: 80;
}

.hero03\.png {
	left: 1186.2227px;
	top: 223.6413px;
	width: 133px;
	height: 153.3333px;
	z-index: 70;
}

.hero04\.png {
	left: 887.2178px;
	top: 465.0789px;
	width: 234px;
	height: 208.6667px;
	z-index: 30;
}

.hero05\.png {
	left: 1223.4248px;
	top: 366.746px;
	width: 320.6667px;
	height: 275.6667px;
	z-index: 20;
}

.hero06\.png {
	left: 1127.604px;
	top: 717.3553px;
	width: 239.6667px;
	height: 262px;
	z-index: 60;
}

.hero07\.png {
	left: 960.0544px;
	top: 665.9433px;
	width: 196.3333px;
	height: 206.6667px;
	z-index: 50;
}

.hero08\.png {
	left: 1213.1579px;
	top: 259.7836px;
	width: 254px;
	height: 297.6667px;
	z-index: 0;
	opacity: 0;
}

.hero09\.png {
	left: 1304.4811px;
	top: 677.2042px;
	width: 171.6667px;
	height: 313px;
	z-index: 100;
}

.hero10\.png {
	left: 1391.8753px;
	top: 947.7228px;
	width: 94px;
	height: 12px;
	z-index: 110;
	opacity: 0;
}

.hero11\.png {
	left: 1115.7021px;
	top: 461.326px;
	width: 334px;
	height: 404px;
	z-index: 40;
	mix-blend-mode: multiply;
}

@media screen and (max-width: 1199px) {
	.hero {
		top: 140px;
		left: calc(63vw - 6vw * (100vw - 520px) / (1199px - 520px));
/*		transform: translateX(calc(-50% * 0.738) );*/
	}

	.hero01\.png {
		left: calc(998.7445px * 0.738);
		top: calc(352.8075px * 0.738);
		width: calc(410.6667px * 0.738);
		height: calc(447.6667px * 0.738);
	}

	.hero02\.png {
		left: calc(1027.4855px * 0.738);
		top: calc(260.2557px * 0.738);
		width: calc(209.3333px * 0.738);
		height: calc(229.6667px * 0.738);
	}

	.hero03\.png {
		left: calc(1186.2227px * 0.738);
		top: calc(223.6413px * 0.738);
		width: calc(133px * 0.738);
		height: calc(153.3333px * 0.738);
	}

	.hero04\.png {
		left: calc(887.2178px * 0.738);
		top: calc(465.0789px * 0.738);
		width: calc(234px * 0.738);
		height: calc(208.6667px * 0.738);
	}

	.hero05\.png {
		left: calc(1223.4248px * 0.738);
		top: calc(366.746px * 0.738);
		width: calc(320.6667px * 0.738);
		height: calc(275.6667px * 0.738);
	}

	.hero06\.png {
		left: calc(1127.604px * 0.738);
		top: calc(717.3553px * 0.738);
		width: calc(239.6667px * 0.738);
		height: calc(262px * 0.738);
	}

	.hero07\.png {
		left: calc(960.0544px * 0.738);
		top: calc(665.9433px * 0.738);
		width: calc(196.3333px * 0.738);
		height: calc(206.6667px * 0.738);
	}

	.hero08\.png {
		left: calc(1213.1579px * 0.738);
		top: calc(259.7836px * 0.738);
		width: calc(254px * 0.738);
		height: calc(297.6667px * 0.738);
	}

	.hero09\.png {
		left: calc(1304.4811px * 0.738);
		top: calc(677.2042px * 0.738);
		width: calc(171.6667px * 0.738);
		height: calc(313px * 0.738);
	}

	.hero10\.png {
		left: calc(1391.8753px * 0.738);
		top: calc(947.7228px * 0.738);
		width: calc(94px * 0.738);
		height: calc(12px * 0.738);
	}

	.hero11\.png {
		left: calc(1115.7021px * 0.738);
		top: calc(461.326px * 0.738);
		width: calc(334px * 0.738);
		height: calc(404px * 0.738);
	}

}

@media screen and (max-width: 519px) {
	.hero {
		left: calc(120vw - 25vw * (100vw - 320px) / (519px - 320px));
	}

	.hero01\.png {
		left: calc(998.7445px * 0.6);
		top: calc(352.8075px * 0.6);
		width: calc(410.6667px * 0.6);
		height: calc(447.6667px * 0.6);
	}

	.hero02\.png {
		left: calc(1027.4855px * 0.6);
		top: calc(260.2557px * 0.6);
		width: calc(209.3333px * 0.6);
		height: calc(229.6667px * 0.6);
	}

	.hero03\.png {
		left: calc(1186.2227px * 0.6);
		top: calc(223.6413px * 0.6);
		width: calc(133px * 0.6);
		height: calc(153.3333px * 0.6);
	}

	.hero04\.png {
		left: calc(887.2178px * 0.6);
		top: calc(465.0789px * 0.6);
		width: calc(234px * 0.6);
		height: calc(208.6667px * 0.6);
	}

	.hero05\.png {
		left: calc(1223.4248px * 0.6);
		top: calc(366.746px * 0.6);
		width: calc(320.6667px * 0.6);
		height: calc(275.6667px * 0.6);
	}

	.hero06\.png {
		left: calc(1127.604px * 0.6);
		top: calc(717.3553px * 0.6);
		width: calc(239.6667px * 0.6);
		height: calc(262px * 0.6);
	}

	.hero07\.png {
		left: calc(960.0544px * 0.6);
		top: calc(665.9433px * 0.6);
		width: calc(196.3333px * 0.6);
		height: calc(206.6667px * 0.6);
	}

	.hero08\.png {
		left: calc(1213.1579px * 0.6);
		top: calc(259.7836px * 0.6);
		width: calc(254px * 0.6);
		height: calc(297.6667px * 0.6);
	}

	.hero09\.png {
		left: calc(1304.4811px * 0.6);
		top: calc(677.2042px * 0.6);
		width: calc(171.6667px * 0.6);
		height: calc(313px * 0.6);
	}

	.hero10\.png {
		left: calc(1391.8753px * 0.6);
		top: calc(947.7228px * 0.6);
		width: calc(94px * 0.6);
		height: calc(12px * 0.6);
	}

	.hero11\.png {
		left: calc(1115.7021px * 0.6);
		top: calc(461.326px * 0.6);
		width: calc(334px * 0.6);
		height: calc(404px * 0.6);
	}
}

/* manamiの強み */
.strengths {
	padding-block: 120px;
	text-align: center;
	background-color: #f9f9f4;
}

.strengths > p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	line-height: 1.8;
}

.strengths > p:nth-of-type(2) {
	margin-bottom: 95px;
}

.manami_function {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 48px;
}

.manami_function .function {
	width: 368px;
	border-radius: 10px;
	background-color: #007aff;
	padding: 100px 0 50px 0;
	margin-inline: 0;
	position: relative;
}

.manami_function .function > img {
	width: 100px;
	position: absolute;
	top: -50px;
	left: 50%;
	transform: translateX(-50%);
}

.manami_function .function > h3 {
	font-size: 27px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #ffffff;
	letter-spacing: 0.2em;
	padding-bottom: 38px;
	margin-bottom: 38px;
	position: relative;
}

.manami_function .function > h3::after {
	content: "";
	display: block;
	width: 115px;
	height: 2px;
	background-color: #ffffff;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

.manami_function .function > p {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #ffffff;
	line-height: 2.0;
}

@media screen and (max-width: 1199px) {
	.strengths {
		padding-block: 100px;
	}

	.manami_function {
		flex-direction: column;
		align-items: center;
		gap: 100px;
	}
}

@media screen and (max-width: 519px) {
	.strengths > p {
		font-size: 16px;
		margin-inline: 16px;
		text-align: left;
	}

	.strengths > p br {
		display: none;
	}

	.manami_function .function {
		width: clamp(288px, calc(368 / 519 * 100vw), 368px);
		padding-inline: 16px;
	}

	.manami_function .function > h3 {
		font-size: 24px;
	}

	.manami_function .function > p {
		text-align: left;
	}

	.manami_function .function > p br {
		display: none;
	}
}

/* 学修証明 */
.certification {
	padding: 120px 0 90px 0;
	text-align: center;
}

.certification > p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	line-height: 1.8;
}

.certification > p:nth-of-type(2) {
	margin-bottom: 50px;
}

.certification > img {
	width: 568px;
	margin-bottom: 50px;
}

.certification_features {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 32px;
	max-width: 968px;
	margin: 0 auto;
	padding-bottom: 57px;
}

.certification_features .features {
	width: 468px;
	background-color: #163663;
	padding: 60px 50px;
	text-align: left;
	border-radius: 10px;
}

.certification_features .features h3 {
	font-size: 27px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #ffffff;
	letter-spacing: 0.2em;
	margin-bottom: 15px;
}

.certification_features .features p:nth-of-type(1) {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #5fd6ff;
	padding-bottom: 39px;
	margin-bottom: 39px;
	position: relative;
}

.certification_features .features p:nth-of-type(1)::after {
	content: "";
	display: block;
	width: 115px;
	height: 2px;
	background-color: #ffffff;
	position: absolute;
	top: 62px;
}

.certification_features .features p:nth-of-type(2) {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #ffffff;
	line-height: 1.8;
}

.explanation {
	max-width: 968px;
	text-align: left;
	margin: 0 auto;
	padding: 45px 0;
	border-top: 1px solid #dedfe2;
	border-bottom: 1px solid #dedfe2;
}

.explanation p {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	line-height: 1.8;
	padding-left:20px;
}

.explanation p:nth-of-type(1),
.explanation p:nth-of-type(2) {
	text-indent: -8px;
}

.explanation p:nth-of-type(1) {
	color: #0062ff;
}

@media screen and (max-width: 1199px) {
	.certification {
		padding-block: 100px 70px;
	}
}

@media screen and (max-width: 999px) {
	.certification_features {
		flex-direction: column;
		align-items: center;
		gap: 50px;
	}

	.certification > img {
		width: 512px;
	}

	.explanation {
		width: clamp(468px, calc(468px + 500 * ((100vw - 578px) / (999 - 578))), 968px);
		padding-inline: 20px;
	}
}

@media screen and (max-width: 519px) {
	.certification > p,
	.certification > img {
		margin-inline: 16px;
	}

	.certification > p {
		font-size: 16px;
		text-align: left;
	}

	.certification > p br {
		display: none;
	}

	.certification > img {
		width: 288px;
	}

	.certification_features .features {
		width: clamp(288px, calc(468 / 519 * 100vw), 468px);
		padding: 60px 20px;
	}

	.explanation {
		width: clamp(288px, calc(468 / 519 * 100vw), 468px);
	}
}


/* 活用分野 */
/* data animation */
.data_animation {
	width: 100vw;
	overflow-x: clip;
	overflow-y: visible;
	position: relative;
	z-index: 6;
}

.animation-section {
	position: relative;
	width: 1920px;
	height: 250px;
	left: 50%;
	transform: translateX(-50%);
	margin: 0;
}

/*
	PNGは300%画像として扱うため、W/Hを1/3で表示。
	Yはposition.txtの最小Y(3629.9174)を基準に相対化し、
	セクション内の上端ら100px下へ一律移動。
*/
.data01\.png {
	position: absolute;
	left: 574.6696px;
	top: calc(151.1028px - 70px);
	width: 157.6667px;
	height: 168.6667px;
	z-index: 0;
}

.data02\.png {
	position: absolute;
	left: 722.1953px;
	top: calc(152.4232px - 70px);
	width: 173.6667px;
	height: 165.6667px;
	z-index: 1;
}

.data03\.png {
	position: absolute;
	left: 846.7205px;
	top: calc(100px - 70px);
	width: 162px;
	height: 218.3333px;
	z-index: 2;
}

.data04\.png {
	position: absolute;
	left: 962.6986px;
	top: calc(152.4232px - 70px);
	width: 192.6667px;
	height: 166px;
	z-index: 3;
}

.data05\.png {
	position: absolute;
	left: 1150.8429px;
	top: calc(227.3761px - 70px);
	width: 52.6667px;
	height: 91px;
	z-index: 4;
}

.data06\.png {
	position: absolute;
	left: 1221.5162px;
	top: calc(128.1696px - 70px);
	width: 122.6667px;
	height: 223.6667px;
	z-index: 5;
}

/* =========================
	 Animation
	 ========================= */

/* アニメーション開始前は画面外 */
.data01\.png {
	transform-origin: center center;
}

/* 揺れ用 */
.data02\.png,
.data03\.png,
.data04\.png,
.data05\.png,
.data06\.png {
	transform-origin: center center;
}

.area_of_application {
	padding: 120px 0;
	text-align: center;
	background-color: #f9f9f4;
	position: relative;
	z-index: 0;
}

.application_area {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 100px 32px;
	max-width: 768px;
	margin: 100px auto 0 auto;
}

.application_area .area {
	width: 368px;
	text-align: center;
	border-radius: 10px;
	background-color: #007aff;
	padding: 100px 0 50px 0;
	position: relative;
}

.application_area .area > img {
	width: 100px;
	position: absolute;
	top: -50px;
	left: 50%;
	transform: translateX(-50%);
}

.application_area .area > h3 {
	font-size: 23px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #f9da23;
	letter-spacing: 0.2em;
	margin-bottom: 18px;
}

.application_area .area > h4 {
	font-size: 27px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #ffffff;
	letter-spacing: 0.2em;
	padding-bottom: 38px;
	margin-bottom: 38px;
	position: relative;
}

.application_area .area > h4::after {
	content: "";
	display: block;
	width: 115px;
	height: 2px;
	background-color: #ffffff;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

.application_area .area > p {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #ffffff;
	line-height: 2.0;
}

.application_area .area > a {
	display: inline-block;
	width: 210px;
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #00070c;
	background-color: #ffffff;
	border: 1px solid #ffffff;
	border-radius: 100vmax;
	margin-top: 38px;
	padding-block: 11px;
}

@media screen and (max-width: 1199px) {
	.area_of_application {
		padding: 100px 0;
	}
}

@media screen and (max-width: 999px) {
	.animation-section {
		width: calc(1920px * 0.6);
		height: calc(250px * 0.6);
	}

	.data01\.png {
		left: calc(574.6696px * 0.6);
		top: calc((151.1028px - 70px) * 0.6);
		width: calc(157.6667px * 0.6);
		height: calc(168.6667px * 0.6);
	}

	.data02\.png {
		left: calc(722.1953px * 0.6);
		top: calc((152.4232px - 70px) * 0.6);
		width: calc(173.6667px * 0.6);
		height: calc(165.6667px * 0.6);
	}

	.data03\.png {
		left: calc(846.7205px * 0.6);
		top: calc((100px - 70px) * 0.6);
		width: calc(162px * 0.6);
		height: calc(218.3333px * 0.6);
	}

	.data04\.png {
		left: calc(962.6986px * 0.6);
		top: calc((152.4232px - 70px) * 0.6);
		width: calc(192.6667px * 0.6);
		height: calc(166px * 0.6);
	}

	.data05\.png {
		left: calc(1150.8429px * 0.6);
		top: calc((227.3761px - 70px) * 0.6);
		width: calc(52.6667px * 0.6);
		height: calc(91px * 0.6);
	}

	.data06\.png {
		left: calc(1221.5162px * 0.6);
		top: calc((128.1696px - 70px) * 0.6);
		width: calc(122.6667px * 0.6);
		height: calc(223.6667px * 0.6);
	}

	.application_area {
		flex-direction: column;
		align-items: center;
	}

}

@media screen and (max-width: 519px) {
	.animation-section {
		width: calc(1920px * 0.4);
		height: calc(250px * 0.4);
	}

	.data01\.png {
		left: calc(574.6696px * 0.4);
		top: calc((151.1028px - 70px) * 0.4);
		width: calc(157.6667px * 0.4);
		height: calc(168.6667px * 0.4);
	}

	.data02\.png {
		left: calc(722.1953px * 0.4);
		top: calc((152.4232px - 70px) * 0.4);
		width: calc(173.6667px * 0.4);
		height: calc(165.6667px * 0.4);
	}

	.data03\.png {
		left: calc(846.7205px * 0.4);
		top: calc((100px - 70px) * 0.4);
		width: calc(162px * 0.4);
		height: calc(218.3333px * 0.4);
	}

	.data04\.png {
		left: calc(962.6986px * 0.4);
		top: calc((152.4232px - 70px) * 0.4);
		width: calc(192.6667px * 0.4);
		height: calc(166px * 0.4);
	}

	.data05\.png {
		left: calc(1150.8429px * 0.4);
		top: calc((227.3761px - 70px) * 0.4);
		width: calc(52.6667px * 0.4);
		height: calc(91px * 0.4);
	}

	.data06\.png {
		left: calc(1221.5162px * 0.4);
		top: calc((128.1696px - 70px) * 0.4);
		width: calc(122.6667px * 0.4);
		height: calc(223.6667px * 0.4);
	}

	.application_area .area {
		width: clamp(288px, calc(368 / 519 * 100vw), 368px);
	}

	.application_area .area > h4 {
		font-size: 24px;
	}
}

/* 導入実績 */
.track_record {
	display: grid;
	grid-template-columns: 460px 1fr;
	grid-template-rows: 330px 1fr;
	gap: 0 100px;
	width: 1200px;
	margin-inline: auto;
	padding: 120px 0 170px 0;
	position: relative;
}

.track_record .secondHeading-group {
	align-items: flex-start;
	grid-column: 1 / 2;
	grid-row: 1 / 2;
	margin-bottom: 0;
}

.track_record > img {
/*	grid-column: 1 / 2;
	grid-row: 2 / 3;
	justify-self: end;
	width: calc(100% + (100vw - 1200px) / 2);
	margin-left: calc((100vw - 1200px) / -2);
	width: 50vw;
	margin-left: calc(50% - 50vw);
	position: absolute;
	bottom: 0;
	right: 0;
	object-fit: cover;
	object-position: right;
	height: 100%;*/

	position: absolute;
	top: 460px; /* 1行の高さ分下げて、2行目の位置に合わせる */
	bottom: 0;
	
	/* 1200pxコンテナの「左側のはみ出し分」＋「1列目の幅460px」 */
	width: calc((100vw - 1200px) / 2 + 454px);
	left: calc((100vw - 1200px) / -2); /* 画面の左端まで引き延ばす */
	
	object-fit: cover;
	object-position: right; /* 画像の右側を基準にトリミング */
	height: calc(100% - 630px); /* 1行目の高さを引いた残りの高さ */
}

.track_record .track_record_text {
	grid-column: 2 / 3;
	grid-row: 1 / 3;
}

.subHeading-text02 {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #6d6d6d;
	margin-bottom: 50px;
}

.track_record_text {
	padding-top: 165px;
}

.text_cont {
	margin-bottom: 50px;
}

.text_cont h3 {
	width: 200px;
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #ffffff;
	text-align: center;
	background-color: #f15a24;
	border-radius: 100vmax;
	padding-block: 6px;
	margin-bottom: 24px;
}

.text_cont:nth-of-type(2) h3 {
	background-color: #0062ff;
}

.text_cont p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	line-height: 1.8;
}

.director_message {
	width: 567px;
	background-color: #f9f9f4;
	padding: 50px 70px;
}

.director_message p {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	line-height: 1.8;
}

@media screen and (max-width: 1199px) {
	.track_record {
		grid-template-columns: 1fr;
		grid-template-rows: 400px 852px 400px;
		gap: 0;
		justify-content: center;
		width: 680px;
		margin-inline: auto;
		padding: 100px 0;
	}

	.track_record .secondHeading-group {
		align-items: flex-start;
		grid-column: 1 / 2;
		grid-row: 1 / 2;
		margin-bottom: 0;
	}

	.track_record > img {
		position: absolute;
		top: 1200px;
		bottom: 0;
		width: 100%;
		left: 0;
		margin-left: calc(50% - 50vw);
		object-fit: cover;
		object-position: right; /* 画像の右側を基準にトリミング */
		height: 400px;
	}

	.track_record .track_record_text {
		grid-column: 1 / 2;
		grid-row: 2 / 3;
		padding-top: 0;
	}
}

@media screen and (max-width: 739px) {
	.track_record {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: 370px 852px 400px;
		gap: 0;
		width: 100%;
		padding: 100px 48px;
	}

	.track_record > img {
		width: calc(100% - 16px);
		left: 0;
		margin-left: calc(50% - 50vw);
		height: 500px;
	}

	.text_cont > p br {
		display: none;
	}

	.director_message {
		width: 100vw;
		margin-inline: calc(50% - 50vw);
		padding: 50px;
	}
}

@media screen and (max-width: 621px) {
	.track_record > img {
		top: calc(1260px - 40 * (100vw - 520px) / (621 - 520));
	}
}

@media screen and (max-width: 519px) {
	.director_message > p br {
		display: none;
	}

	.track_record {
		padding: 100px 16px;
		grid-template-rows: 345px calc(852px - 162 * (100vw - 320px) / (519 - 320)) 400px;
	}

	.director_message {
		padding: 50px 16px;
	}

	.track_record > img {
		top: calc(1380px - 230 * (100vw - 320px) / (519 - 320));
		height: 350px;
	}
}

/* 導入の流れ */
.process {
	padding-block: 120px;
	margin-bottom: 90px;
	background-color: #f9f9f4;
	text-align: center;
}

.process > p {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	line-height: 1.8;
}

.process_contents {
	display: grid;
	justify-content: center;
	grid-template-columns: repeat(5, 220px);
	grid-template-rows: 1fr;
	gap: 15px;
	margin-top: 90px;
}

.process_contents .content {
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 3;
/*	width: 220px;*/
	background-color: #ffffff;
	border: 3px solid #007aff;
	border-radius: 10px;
	padding: 100px 0 70px 0;
	position: relative;
}

.process_contents .content p:nth-of-type(1) {
	font-size: 40px;
	font-family: Arial, sans-serif;
	font-weight: 700;
	color: #ffffff;
	width: 80px;
	height: 80px;
	padding-top: 20px;
	background-color: #0062ff;
	border-radius: 100vmax;
	position: absolute;
	top: -40px;
	left: 50%;
	transform: translateX(-50%);
}

.process_contents .content:nth-of-type(even) p:nth-of-type(1) {
	background-color: #0091fe;
}

.process_contents .content p:nth-of-type(2) {
	font-size: 27px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #00070c;
	letter-spacing: 0.2em;
	padding-bottom: 38px;
	margin-bottom: 38px;
	position: relative;
	align-self: center;
}

.process_contents .content p:nth-of-type(2)::after {
	content: "";
	display: block;
	width: 115px;
	height: 2px;
	background-color: #f15a24;
	position: absolute;
	top: 95px;
	left: 50%;
	transform: translateX(-50%);
}

.process_contents .content p:nth-of-type(2):has(br)::after {
	top: 115px;
}

.process_contents .content p:nth-of-type(3) {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
}

@media screen and (max-width: 1199px) {
	.process {
		padding-block: 100px;
		margin-bottom: 30px;
	}

	.process_contents {
		grid-template-columns: 320px;
		grid-template-rows: repeat(5, auto 1fr);
		align-items: center;
		gap: 70px;
	}

	.process_contents .content {
		grid-row: span 2;
		padding: 70px 0 50px 0;
		gap: 15px;
	}

	.process_contents .content p:nth-of-type(2)::after {
		top: 80px;
	}
}

@media screen and (max-width: 519px) {
	.process_contents {
		grid-template-columns: calc(288px + 32 * (100vw - 320px) / (519 - 320));
	}
}

/* 料金プラン */
.pricing_plans {
	padding: 120px 0 0 0;
	background-color: #007aff;
	text-align: center;
}

.pricing_plans .subHeading-text,
.pricing_plans .secondHeading {
	color: #ffffff;
}

.pricing_plans .secondHeading-group::after {
	background-color: #ffffff;
}

.pricing_plans > p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #ffffff;
	line-height: 1.8;
}

.plans {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
/*	display: grid;
	grid-template-columns: repeat(3, 368px);
	grid-template-rows: 1fr;
	justify-content: center;*/
	align-items: flex-end;
	gap: 32px;
	background-color: #163663;
	padding: 0;
	margin-top: 150px;
	position: relative;
}

.plan {
/*	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 60px 60px 60px 60px 235px 163px 213px 285px;*/
	width: 368px;
	height: 1072px;
	border: 3px solid #007aff;
	border-radius: 10px;
	background-color: #ffffff;
	gap: 0;
	position: relative;
	top: -50px;
}

.plan_header {
/*	grid-row: 3 / 5;*/
	padding: 30px 0 25px 0;
	background-color: #007aff;
	position: relative;
}

/*.plan:nth-of-type(2) .plan_header {
	grid-row: 1 / 5;
}*/

.plan:nth-of-type(2) {
	height: 1163px;
	border: 3px solid #f15a24;
}

.plan:nth-of-type(2) .plan_header {
	background-color: #f15a24;
	padding-top: 72px;
	position: relative;
}

.plan_header h3,
.plan_header p {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #ffffff;
}

.plan_header h3 {
	font-size: 27px;
}

.plan_header p {
	font-size: 18px;
}

.plan_header img:nth-of-type(1) {
	display: block;
	width: 100px;
	position: absolute;
	top: -50px;
	left: 50%;
	transform: translateX(-50%);
}

.plan_header img:nth-of-type(2) {
	width: 104px;
	margin-bottom: 20px;
}

.cost,
.scale,
.function {
	padding: 50px 0;
	margin-inline: 12px;
	border-bottom: 1px solid #dedfe2;
}

.breakdown {
	margin-inline: 24px;
	padding: 50px 0;
}

/*.cost {
	grid-row: 5 / 6;
}*/

.cost p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #00070c;
}

.cost p:nth-of-type(1) {
	position: relative;
	margin-bottom: 20px;
}

.cost p:nth-of-type(1)::before {
	content: "";
	display: inline-block;
	width: 290px;
	height: 1px;
	background-color: #0091fe;
	position: absolute;
	top: 50%;
	left: 20px;
}

.plan:nth-of-type(2) .cost p:nth-of-type(1)::before {
	background-color: #f12a24;
}

.cost p:nth-of-type(3) {
	font-size: 24px;
}

.cost p:nth-of-type(3) span {
	font-size: 44px;
	font-family: Arial, sans-serif;
	font-weight: 900;
}

/*.scale {
	grid-row: 6 / 7;
}*/

.scale p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
}

.scale p:nth-of-type(1) {
	font-size: 25px;
	font-weight: 700;
	color: #0062ff;
}

.plan:nth-of-type(2) .scale p:nth-of-type(1) {
	color: #f15a24;
}

/*.function {
	grid-row: 7 / 8;
}*/

.plan .function p {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	text-align: left;
	margin-bottom: 20px;
	margin-left: 15px;
}

.plan .function p:last-child {
	margin-bottom: 0;
}

.plan .function p::before {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-right: 5px;
	background-image: url(img/pricing_plans/checkblue.svg);
	background-repeat: no-repeat;
	background-position: bottom;
}

.plan:nth-of-type(2) .function p::before {
	background-image: url(img/pricing_plans/checkred.svg);
}

/*.breakdown {
	grid-row: 8 / 9;
}*/

.plan:nth-of-type(odd) .breakdown {
	padding-bottom: 100px;
}

.breakdown p {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	text-align: left;
}

.breakdown p:nth-of-type(1) {
	font-weight: 700;
	margin-bottom: 15px;
}

.breakdown p:nth-of-type(1) span {
	color: #0062ff;
	margin-right: 5px;
}

.plan:nth-of-type(2) .breakdown p:nth-of-type(1) span {
	color: #f15a24;
}

.breakdown p:nth-of-type(3),
.breakdown p:nth-of-type(5) {
	margin-bottom: 25px;
}

@media screen and (max-width: 1199px) {
	.pricing_plans {
		padding: 100px 0 0 0;
	}

	.plans {
		flex-direction: column;
		align-items: center;
		gap: 50px;
		padding-bottom: 40px;
	}

	.plan {
		height: auto;
	}

	.plan:nth-of-type(1) {
		order: 2;
	}

	.plan:nth-of-type(2) {
		height: auto;
		order: 1;
	}

	.plan:nth-of-type(3) {
		order: 3;
	}

	.plan .breakdown,
	.plan:nth-of-type(odd) .breakdown {
		padding-bottom: 50px;
	}
}

@media screen and (max-width: 519px) {
	.plan {
		width: calc(288px + 80 * (100vw - 320px) / (519 - 320));
/*		height: 1072px;*/
	}

/*	.plan:nth-of-type(2) {
		height: 1263px;
	}*/

	.pricing_plans > p {
		text-align: left;
		padding-inline: 16px;
	}

	.cost p:nth-of-type(1)::before {
		width: 260px;
		left: calc(-5px + 40 * (100vw - 320px) / (519 - 320));
	}

	.cost p {
		font-size: 16px;
	}
}

/* 導入相談 */
.consultation {
	padding: 120px 0;
	text-align: center;
}

.consultation_box {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 45px;
}

.consultation_text > img {
	width: 350px;
	margin-bottom: 30px;
}

.consultation_text > p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	line-height: 1.8;
	text-align: left;
}

.consultation_box > img {
	width: 130px;
}

.consultation > a {
	display: inline-block;
	width: 485px;
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #ffffff;
	text-align: center;
	padding: 10px 0 9px 0;
	border: 1px solid #f15a24;
	border-radius: 100vmax;
	background-color: #f15a24;
}

@media screen and (max-width: 1199px) {
	.consultation {
		padding: 100px 0;
	}
}

@media screen and (max-width: 519px) {
	.consultation {
		padding: 100px 16px;
	}

	.consultation_text > p {
		text-align: center;
	}

	.consultation > a {
		width: clamp(288px, calc(288px + 197 * (100vw - 320px) / 519), 485px);
	}
}

/* コンテンツ制作サービス */
.production_services {
	max-width: 100vw;
	padding-bottom: 120px;
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid #dedfe2;
}

.production_services_about {
	padding-top: 120px;
	padding-bottom: 350px;
	background-color: #f9f9f4;
	text-align: center;
}

.production_services_about > p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #00070c;
	line-height: 1.8;
}

.services_box {
	margin-top: -300px;
}

.services_box ul {
	max-width: 1200px;
	padding-top: 90px;
	position: absolute;
	left: 30%;
	transform: translateX(-30%);
	z-index: 5;
}

.services_box ul li {
	font-size: 30px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #ffffff;
	letter-spacing: 0.1em;
	margin-bottom: 25px;
	position: relative;
}

.services_box ul li::before {
	content: "";
	display: inline-block;
	width: 41px;
	height: 36px;
	background-image: url(img/production_services/checkgold02.svg);
	background-repeat: no-repeat;
	position: relative;
	top: 10px;
	margin-right: 10px;
}

/* contents animation */
.animation-section02 {
	position: relative;
	left: 0;
/*	width: 1920px;
	height: 1080px;*/
	width: calc(1400 / 1920 * 100vw);
	height: 600px;
	background: #007aff;
	border-radius: 0 10px 10px 0;
	overflow: visible;
	margin-left: calc(50% - 50vw);
	object-fit: cover;
}

.movieimage\.png {
	position: absolute;
	left: calc(940.2962 / 1920 * 100vw);
	top: 80px;
	width: 603.6667px;
	height: 482.3333px;
	z-index: 0;
}

.estimated_cost {
	padding-top: 50px;
	max-width: 968px;
	margin-inline: auto;
}

.estimated_cost > p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #0062ff;
	margin-bottom: 25px;
}

.estimated_cost > dl {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 5px 0;
	margin-bottom: 50px;
}

.estimated_cost > dl dt {
	width: 484px;
	height: 75px;
	display: flex;
	align-items: center;
	font-size: 21px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 900;
	color: #00070c;
	background-color: #ebebeb;
	padding-left: 70px;
	border-left: 5px solid #0062ff;
}

.estimated_cost > dl dt:nth-of-type(even) {
	border-left: 5px solid #0091fe;
}

.estimated_cost > dl dt span {
	font-size: 16px;
	font-weight: 500;
	margin-left: 10px;
}

.estimated_cost > dl dd {
	width: 484px;
	height: 75px;
	display: flex;
	align-items: center;
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #00070c;
	background-color: #f9f9f4;
	padding-left: 70px;
}

.estimated_cost > dl dd span {
	font-size: 28px;
	font-weight: 700;
}

.estimated_cost > dl dd:nth-of-type(3),
.estimated_cost > dl dd:nth-of-type(4) {
	font-size: 21px;
	font-weight: 900;
}

.estimated_cost > a {
	display: block;
	width: 485px;
	margin-inline: auto;
	background-color: #f15a24;
	border: 1px solid #f15a24;
	border-radius: 100vmax;
	padding-block: 11px;
	text-align: center;
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #ffffff;
}

@media screen and (max-width: 1199px) {
	.production_services {
		padding-bottom: 100px;
	}

	.production_services_about {
		padding-top: 100px;
		padding-bottom: 450px;
	}

	.animation-section02 {
		width: 100vw;
		height: 800px;
		border-radius: 10px 10px 0 0;
	}

	.movieimage\.png {
		position: absolute;
		left: calc(50vw - (603.6667px * 0.7) / 2);
		top: -110px;
		width: calc(603.6667px * 0.7);
		height: calc(482.3333px * 0.7);
	}

	services_box {
		position: relative;
	}

	.services_box ul {
		position: absolute;
		top: 900px;
		left: 50%;
		transform: translateX(-50%);
	}

	.estimated_cost {
		text-align: center;
	}

	.estimated_cost > dl {
		flex-direction: column;
		align-items: center;
		gap: 0;
	}

	.estimated_cost > dl dd {
		border-left: 5px solid #0062ff;
		margin-bottom: 10px;
	}

	.estimated_cost > dl dd:nth-of-type(even) {
		border-left: 5px solid #0091fe;
	}
}

@media screen and (max-width: 799px) {
	.services_box ul {
		left: calc(50% - 346px / 2);
		transform: none;
	}
}

@media screen and (max-width: 519px) {
	.production_services_about {
		padding-inline: 16px;
	}

	.production_services_about > p {
		font-size: 16px;
		text-align: left;
	}

	.production_services_about > p br {
		display: none;
	}

	.animation-section02 {
		height: 550px;
	}

	.movieimage\.png {
		position: absolute;
		left: calc(50vw - (603.6667px * 0.5) / 2);
		top: -110px;
		width: calc(603.6667px * 0.5);
		height: calc(482.3333px * 0.5);
	}

	.services_box ul {
		top: 700px;
		left: calc(50% - 286px / 2);
	}
	
	.services_box ul li {
		font-size: 22px;
	}

	.services_box ul li::before {
		width: 31px;
		height: 26px;
		top: 5px;
	}

	.estimated_cost > dl {
		padding-inline: 16px;
	}

	.estimated_cost > dl dt,
	.estimated_cost > dl dd {
		width: 100%;
		font-size: 18px;
		padding-inline: 10px;
		text-align: left;
	}

	.estimated_cost > dl dd:nth-of-type(3),
	.estimated_cost > dl dd:nth-of-type(4) {
		font-size: 16px;
	}

	.estimated_cost > a {
		width: calc(485 / 519 * 100vw);
	}
}

@media screen and (max-width: 449px) {
	.services_box ul {
		top: 730px;
	}
}

@media screen and (max-width: 386px) {
	.services_box ul {
		top: 750px;
	}
}

@media screen and (max-width: 367px) {
	.services_box ul {
		top: 790px;
	}
}

/* FAQ */
.faqInner {
	justify-content: center;
	padding-inline: min(20px, (20 / 480 * 100vw));
	padding-block: 120px;
}

/* .faqGroup-item */
.faqGroup-item {
	max-width: 968px;
	margin-inline: auto;
}

.faq-linkBT {
	justify-self: center;
	margin-block-start: min(80px, (80 / 480 * 100vw));
}

.faq .details:first-child {
	border-block-start: 1px solid #dedfe2;
}

/* details summary	start */
.details {
	padding-inline: min(30px, (30 / 1280 * 100vw));
	border-bottom: 1px solid #dedfe2;
}

.summary {
	font-size: calc(21 / 16 * 1rem);
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #00070c;
}

details summary {
	padding-block: clamp(20px, (50 / 480 * 100vw), 50px);
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	gap: min(90px, (90 / 1280 * 100vw));
}

details[open] {
	padding-block-end: clamp(20px, (50 / 480 * 100vw), 50px);
}

/* 開閉のアニメーション */
details::details-content {
	content-visibility: unset;
	display: block grid;
	transition-duration: 300ms;
	transition-property: grid-template-rows;
}

details:not([open])::details-content {
	grid-template-rows: 0fr;
}

details[open]::details-content {
	grid-template-rows: 1fr;
}

/*「.content.js-content直下に.content_inner」がある場合「Q」のアイコンを表示*/
details summary:has( + .summaryCont > .summaryCont-inner)::before {
	flex-shrink: 0;
	content: "";
	width: calc(30 / 21 * 1em);
	aspect-ratio: 211 / 150;/* 対象 "svg" 211×150 */
	background: url(img/faq/faq_q.svg) no-repeat top center / contain;
	margin-block-start: calc(8.5 / 21 * 1em);
}

/*「.content.js-content直下に.content_inner」がある場合「＋」のアイコンを表示*/
details summary:has( + .summaryCont > .summaryCont-inner)::after {
	flex-shrink: 0;
	margin-inline-start: auto;
	content: "";
	width: calc(26 / 21 * 1em);
	aspect-ratio: 1;/* 対象 "svg" 150×150 */
	background: url(img/faq/faq_plus.svg) no-repeat center center / contain;
	translate: 0 5px;
}

/* [open]属性が付加された場合「-」のアイコンを表示*/
details[open] summary:has( + .summaryCont > .summaryCont-inner)::after {
	background: url(img/faq/faq_minus.svg) no-repeat center center /	contain;
}
 
/* 縦棒は90度回転 */
details summary::after {
	transform: rotate(90deg);
}

/* 閉じる際の「＋」のアイコンのアニメーション指定 */
details summary::after {
	animation: closing-after 0.3s ease-in;
}

/* 閉じる際の「＋」のアイコンのアニメーション */
@keyframes closing-after {
	0% {
		transform: rotate(180deg);
		opacity: 0;
	}
	100% {
		transform: rotate(90deg);
		opacity: 1;
	}
}

/* 開く際の「-」のアインのアニメーション指定 */
details[open] summary::after {
	animation: opening-after 0.3s ease-in forwards;
}

/* 開く際の「-」のアインのアニメーション */
@keyframes opening-after {
	0% {
		transform: rotate(90deg);
		opacity: 0;
	}
	100% {
		transform: rotate(180deg);
		opacity: 1;
	}
}

/* summaryCont（隠され部分） */
.summaryCont {
	font-size: 1rem;
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	gap: min(90px, (90 / 1280 * 100vw));
	padding-inline-end: min(90px, (90 / 1280 * 100vw));
}

.summaryCont::before {
	flex-shrink: 0;
	content: "";
	width: calc(36 / 21 * 1em);
	aspect-ratio: 118 / 75;/* 対象 "svg" 236×150 */
	background: url(img/faq/faq_a.svg) no-repeat center center / contain;
	margin-block-start: calc(10 / 16 * 1em);
}

.summaryCont-inner {
	max-width: 760px;
}

@media screen and (max-width: 1199px) {
	.faqInner {
		padding-block: 100px;
	}
}

/* お問い合わせ */
.contact-section {
	background-color: #007aff;
	position: relative;
	overflow: hidden;
	padding-block: 120px;
	margin-bottom: 50px;
}

.contact-inner {
	max-width: 720px;
	margin: 0 auto;
	padding-inline: 16px;
	position: relative;
	z-index: 5;
}

.contact-inner {
	text-align: center;
}

.contact-inner .subHeading-text,
.contact-inner .secondHeading,
.contact-inner > p {
	color: #ffffff;
}

.contact-inner .secondHeading-group::after {
	background-color: #ffffff;
}

.contact-inner > p {
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	line-height: 1.8;
	margin-bottom: 50px;
}

.contact-card-form {
	background: #ffffff;
	border-radius: 10px;
	padding: 48px;
/*	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);*/
	color: #00070c;
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 20px;
}

.form-group {
	margin-bottom: 20px;
	text-align: left;
}

.form-group label {
	display: block;
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	margin-bottom: 8px;
}

.form-group label .required {
	display: inline-block;
	font-size: 12px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	color: #f15a24;
	margin-left: 4px;
}

.form-control {
	width: 100%;
	padding: 12px 18px;
	font-family: inherit;
	font-size: 0.95rem;
	color: #00070c;
	background: #f8fafc;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	transition: all 0.3s ease;
}

.form-control:focus {
	outline: none;
	border-color: #3b82f6;
	background: #ffffff;
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

textarea.form-control {
	min-height: 120px;
	resize: vertical;
}

.radio-group-container {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 8px;
}

.radio-item {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	font-size: 0.9rem;
	color: #475569;
}

.radio-item input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: #3b82f6;
}

.form-submit-wrapper {
	margin-top: 32px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.form-submit-wrapper .btn {
	display: block;
	width: 100%;
	max-width: 485px;
	margin-inline: auto;
	background-color: #f15a24;
	border: 1px solid #f15a24;
	border-radius: 100vmax;
	padding-block: 11px;
	text-align: center;
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #ffffff;
}

.form-submit-wrapper a {
	display: block;
	width: 100%;
	max-width: 485px;
	margin-inline: auto;
	background-color: #ffffff;
	border: 1px solid #dedfe2;
	border-radius: 100vmax;
	padding-block: 11px;
	text-align: center;
	font-size: 18px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #00070c;
}


#contact-error {
	background: #fef2f2;
	border: 1px solid #fca5a5;
	color: #b91c1c;
	padding: 14px;
	border-radius: 8px;
	margin-bottom: 20px;
	font-size: 0.9rem;
	text-align: left;
	display: none;
}

#contact-success {
	background: #ecfdf5;
	border: 1px solid rgba(16, 185, 129, 0.2);
	color: #065f46;
	padding: 20px;
	border-radius: 16px;
	margin-bottom: 20px;
	font-size: 0.95rem;
	text-align: center;
	display: none;
}

@media screen and (max-width: 1199px) {
	.contact-section {
		padding-block: 100px;
	}
}

@media screen and (max-width: 799px) {
	.form-row {
		display: grid;
		grid-template-columns: 1fr;
		gap: 20px;
		margin-bottom: 20px;
	}
}

@media screen and (max-width: 519px) {
	.contact-inner > p {
		text-align: left;
	}

	.contact-inner > p br {
		display: none;
	}
}

/* 企業情報 */
.about_us {
	padding: 90px 0 15px 0;
	background-color: #f9fafb;
	text-align: center;
}

.about_us > img {
	margin-bottom: 40px;
}

.about_us > p {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	color: #00070c;
	margin-bottom: 10px;
}

.about_us > p:nth-of-type(4) {
	margin-bottom: 80px;
}

.footer_menu {
	display: flex;
	justify-content: center;
}

.footer_menu > a:nth-of-type(1) {
	border-right: 1px solid #00070c;
	padding-right: 5px;
}

.footer_menu > a:nth-of-type(2) {
	padding-left: 5px;
}

/* ページトップへボタン、無料相談、無料トライアル */
/*.bottomSticky-wrap {
	display: none;
	width: 250px;
	position: -webkit-sticky;
	position: sticky;*//*.main 下部にて固定される*/
/*	right: 0;
	bottom: 25px;
	z-index: 10;
	margin-inline-start: auto;
	margin-block-end: 25px;
}*/

/* -- .entryLink start-- */
.entryLink {
	width: 220px;
	position: fixed;
	right: 0;
	bottom: 25%;
	z-index: 10;
	margin-inline-start: auto;
	margin-block-end: 25px;
}

.entryLink > a:nth-of-type(1) {
	display: block;
	width: 250px;
	font-size: 20px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #ffffff;
	text-align: left;
	padding: 10px 0 9px 30px;
	border: 1px solid #f15a24;
	border-right: none;
	border-top-left-radius: 25px;
	border-bottom-left-radius: 25px;
	background-color: #f15a24;
	margin-bottom: 20px;
}

.entryLink > a:nth-of-type(2) {
	display: block;
	width: 250px;
	font-size: 20px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	color: #00070c;
	text-align: left;
	padding: 10px 0 9px 30px;
	border: 1px solid #bababa;
	border-right: none;
	border-top-left-radius: 25px;
	border-bottom-left-radius: 25px;
	background-color: #ffffff;
}

/* PCのみに適用（モバイルには適用させない） */
@media (any-hover: hover) {
	.entryLink-bt:hover .linkArrow {
		translate: 0 calc(10 / 18 * 1em) ;
	}

	.entryLink-group .linkBT:hover .linkArrow {
		translate: calc(-10 / 18 * 1em) 0;
	}
}

/* キーボード操作時（PC時時と同じスタイル） */
.entryLink-bt:focus-visible .linkArrow {
	translate: 0 calc(10 / 18 * 1em) ;
}
.entryLink-group .linkBT:focus-visible .linkArrow {
	translate: calc(-10 / 18 * 1em) 0;
}

@media screen and (max-width: 640px) {
	.entryLink {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 20px;
		width: 100vw;
		bottom: 0;
		right: 50%;
		transform: translate(50%, 200px);
		background-color: rgba(0, 0, 0, 0.6);
		margin: 0;
		padding: 20px 16px;
	}

	.right_fadein.is-show {
		opacity: 1;
		transform: translate(50%, 0);
	}

	.entryLink > a:nth-of-type(1),
	.entryLink > a:nth-of-type(2) {
		width: calc(130px + 90 * (100vw - 320px) / (640 - 320));
		font-size: calc(16px + 4 * (100vw - 320px) / (640 - 320));
		text-align: center;
		border-right: 1px solid #f15a24;
		border-radius: 100vmax;
		padding: 10px 0 9px 0;
		margin: 0;
	}

	.entryLink > a:nth-of-type(2) {
		border: 1px solid #bababa;
	}

}

/* -- .entryLink end -- */
/* ---  .toTop start -- */
.toTop {
	width: fit-content;
	display: none;
	position: fixed;/*.main 下部にて固定される*/
	right: 25px;
	bottom: 25px;
	z-index: 10;
	margin-inline-start: auto;
	margin-block-end: 25px;
}

.toTop a {
	display:block;
	width: 75px;
	height: 75px;
	border-radius: 50%;
	transition: opacity 0.5s;
}

/* 'hover'が可能な環境限定 */
@media (any-hover: hover) {
	.toTop a:hover {
		opacity: 0.5;
	}
}

/* キーボード操作時（PC時時と同じスタイル） */
.toTop a:focus-visible {
	opacity: 0.5;
}

@media screen and (width <= 640px){
	.toTop {
		display: none;
	}
}

/* footer */
footer {
	border-top: 1px solid #e5e7eb;
	text-align: center;
	padding-block: 43px;
}

footer p {
	font-size: 14px;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	color: #00070c;
}

/* OSでアニメーションを減らす設定の場合、制限する */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.001s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001s !important;
    scroll-behavior: auto !important;
  }
}

