@charset "UTF-8";
/* ===========================
アポドル
ブレークポイント
============================== */
@media screen and (min-width: 35.5em) { /* 568px sm */
}
@media screen and (min-width: 48em) { /* 768px md */
}
@media screen and (min-width: 64em) { /* 1024px lg */
}
@media screen and (min-width: 80em) { /* 1280px xl */
}

/* ===========================
全体共通
============================== */
:root {
	--color-body: #333;
	--color-primary: #004190;
	--color-secondary: #8bf;
	--color-accent: #e60012;
	--color-accent2: #fcee87;
	--color-accent3: #93cd93;
	--color-accent4: #ffaf6f;
	--color-accent5: #f06671;
	--color-accent6: #99f;
	--color-outlined: #fff;
	--bg-color-light: #fff;
	--bg-color-secondary: #dbebff;
	--logo-color-primary: #192D78;
	--logo-color-secondary: #00b3ec;
	--cvbtn-bg-color: linear-gradient(90deg, #fff 40%, #8bf 70%, #00B3EC 100%);
	--cvbtn2-bg-color: linear-gradient(90deg, #8bf 40%, #fff 70%, #fff 100%);
}
html {
	overflow-y: scroll;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	scroll-behavior: smooth;
	height: 100%;
}
@keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}
body {
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", Meiryo, sans-serif;
	animation: fadeIn 0.5s ease 0s 1 normal;
	color: var(--color-body);
	min-height: 100%;
	display: flex;
	flex-direction: column;
}
main {
	flex: 1;
}
body, header, footer, article, main, aside, section, div, h1, h2, h3, h4, table, ol, ul, dl, li, dt, dd, p {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
ol, ul, li, dt, dd, h1, h2, h3, h4, p, th, td {
	line-height: 1.5;
	font-size: 0.9375rem;
}
ul, ol, dl {
	list-style: none;
	padding: 0;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
img {
	display: inline-block;
	max-width: 100%;
	height: auto;
	pointer-events: none;
}
section {
	scroll-margin-top: 30px;
}
.narrow-inner {
	margin-left: 4%;
	margin-right: 4%;
	position: relative;
}
.wide-inner {
	margin-left: 4%;
	margin-right: 4%;
	position: relative;
}
.over-sm,
.over-md {
	display: none;
}
@media screen and (min-width: 35.5em) { /* 568px sm */
	.under-sm {
		display: none;
	}
	.over-sm {
		display: block;
	}
}
@media screen and (min-width: 48em) { /* 768px md */
	ol, ul, li, dt, dd, h1, h2, h3, h4, p, th, td {
		line-height: 1.6;
		font-size: 1.125rem;
	}
	section {
		scroll-margin-top: 0;
	}
	.under-md {
		display: none;
	}
	.over-md {
		display: block;
	}
}
@media screen and (min-width: 64em) { /* 1024px lg */
	.narrow-inner {
		width: 900px;
		margin-left: auto;
		margin-right: auto;
	}
	.under-ld {
		display: none;
	}
}
@media screen and (min-width: 80em) { /* 1280px xl */
	.wide-inner {
		width: 1200px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* ===========================
header　グローバルナビゲーション
============================== */
header {
	width: 100%;
	height: 70px;
	padding: 0 15px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	background-color: rgba(255, 255, 255, 0.6);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	position: fixed;
	top: 0;
	z-index: 999;
	transition: all 0.2s;
}
header.is-scroll {
	height: 50px;
}
#top-logo {
	padding: 0 60px 0 0;
	transition: all 0.2s;
	text-align: center;
	line-height: 1.6;
}
#top-logo a {
	display: inline-block;
	font-size: 0.625rem;
	font-weight: 400;
	text-decoration: none;
	color: #333;
}
#top-logo img {
	width: 140px;
	height: auto;
	margin-top: 5px;
	pointer-events: initial;
	transition: all 0.2s;
}
#menu-btn-check {
	display: none;
}
.menu-btn {
	width: 60px;
	height: 60px;
	position: fixed;
	top: 5px;
	right: 5px;
	display: flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	z-index: 900;
	transition: all 0.2s;
}
header.is-scroll .menu-btn {
	width: 50px;
	height: 50px;
	top: 0;
	right: 10px;
}
.menu-btn span,
.menu-btn span::before,
.menu-btn span::after {
	content: '';
	display: block;
	height: 3px;
	width: 40px;
	border-radius: 3px;
	background-color: #858585;
	position: absolute;
	transition: all 0.3s;
}
.menu-btn span::before {
	bottom: 15px;
}
.menu-btn span::after {
	top: 15px;
}
header.is-scroll .menu-btn span::before {
	bottom: 12px;
}
header.is-scroll .menu-btn span::after {
	top: 12px;
}
#menu-btn-check:checked ~ .menu-btn span {
	background-color: rgba(255, 255, 255, 0);
}
#menu-btn-check:checked ~ .menu-btn span::before {
	bottom: 0;
	transform: rotate(-135deg);
}
#menu-btn-check:checked ~ .menu-btn span::after {
	top: 0;
	transform: rotate(-225deg);
}
#nav-area {
	width: 80%;
	height: 100vh;
	margin: 0;
	padding: 0;
	position: absolute;
	top: 0;
	right: -80%;
	transition: all 0.3s;
	background-color: rgba(255,255,255,0.95);
	z-index: 800;
}
#menu-btn-check:checked ~ #nav-area {
	right: 0;
	opacity: 1;
}
#nav-area ul {
	padding: 100px 0 0;
}
#nav-area ul li {
	margin: 0 0 12px;
	padding: 0 9px;
	text-align: center;
	line-height: 1.1rem;
}
#nav-area ul li a {
	display: inline-block;
	position: relative;
	width: 100%;
	padding: 0.6em 0;
	font-size: 1.25rem;
	text-decoration: none;
	font-weight: bold;
	color: #333;
}
#nav-area ul li:nth-child(-n+6) a {
	margin-left: 25%;
	text-align: left;
}
@keyframes triangle-top {
	0% {opacity: 0; transform: scale(1); left: -40px;}
	4% {opacity: 0;}
	4% {opacity: 0.6;transform: scale(1); left: -40px;}
	14% {opacity: 0; transform: scale(3); left: -34px;}
	100% {opacity: 0; transform: scale(1); left: -40px;}
}
@keyframes triangle-bottom {
	0% {left: -40px;}
	2% {left: -35px;}
	4% {left: -40px;}
	100% {left: -40px;}
}
#nav-area ul li:nth-child(-n+6) a::before,
#nav-area ul li:nth-child(-n+6) a::after {
	content: '';
	width: 20px;
	height: 26px;
	clip-path: polygon( 0 0, 100% 50%, 0 100% );
	background-color: var(--color-secondary);
	position: absolute;
	top: 9px;
	left: -40px;
}
#nav-area ul li:nth-child(-n+6) a::before {
	opacity: 0;
	transform: scale(1);
	animation: triangle-top 6s linear infinite;
}
#nav-area ul li:nth-child(-n+6) a::after {
	animation: triangle-bottom 6s linear infinite;
}
#nav-area ul li:nth-child(1) a::before,
#nav-area ul li:nth-child(1) a::after {
	animation-delay: 0s;
}
#nav-area ul li:nth-child(2) a::before,
#nav-area ul li:nth-child(2) a::after {
	animation-delay: 1s;
}
#nav-area ul li:nth-child(3) a::before,
#nav-area ul li:nth-child(3) a::after {
	animation-delay: 2s;
}
#nav-area ul li:nth-child(4) a::before,
#nav-area ul li:nth-child(4) a::after {
	animation-delay: 3s;
}
#nav-area ul li:nth-child(5) a::before,
#nav-area ul li:nth-child(5) a::after {
	animation-delay: 4s;
}
#nav-area ul li:nth-child(6) a::before,
#nav-area ul li:nth-child(6) a::after {
	animation-delay: 5s;
}
#nav-area ul li a.nav-conv {
	display: inline-block;
	width: auto;
	margin: 30px 0 0;
	padding: 0.5em 2em;
	font-size: 1.375rem;
	font-weight: bold;
	text-decoration: none;
	color: var(--color-outlined);
	background: var(--cvbtn-bg-color);
	background-size: 300%;
	background-position:99% 0;
	border: transparent 2px solid;
	border-radius: 1em;
	transition: all 0.6s;
}
#nav-area ul li a.nav-conv:hover,
#nav-area ul li a.nav-conv:active {
	color: var(--color-secondary);
	background-position:0% 0;
	border: var(--color-secondary) 2px solid;
}
@media screen and (min-width: 48em) { /* 768px md */
	header {
		height: 100px;
		padding: 0 4%;
		justify-content: space-between;
	}
	header.is-scroll {
		height: 70px;
	}
	#top-logo {
		padding: 0;
	}
	.menu-btn {
		display: none;
	}
	#nav-area {
		width: auto;
		height: auto;
		position: relative;
		right: 0;
		opacity: 1;
		background-color: transparent;
	}
	#nav-area ul {
		width: 550px;
		padding: 0;
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-end;
		align-items: center;
	}
	header.is-scroll #nav-area ul {
		margin: 10px 0 0;
	}
	#nav-area ul li {
		margin: 0;
		padding: 0;
	}
	#nav-area ul li:first-child {
		display: none;
	}
	#nav-area ul li:nth-child(-n+6) a {
		margin-left: 0;
		text-align: center;
	}
	#nav-area ul li:nth-child(-n+6) a::before,
	#nav-area ul li:nth-child(-n+6) a::after {
		content: none;
	}
	#nav-area ul li a {
		width: auto;
		padding: 2px 2px;
		font-size: 0.9375rem;
	}
	#nav-area ul li:nth-child(-n+6) a span {
		display: block;
		position: relative;
		top: 0;
		left: 0;
		padding: 3px 3px;
		border: transparent 2px solid;
		border-radius: 6px;
		transition: all 0.3s;
	}
	#nav-area ul li:nth-child(-n+6) a:hover span,
	#nav-area ul li:nth-child(-n+6) a:active span {
		top: -15px;
		left: 4px;
		padding: 3px 3px;
		color: var(--color-primary);
		background: var(--bg-color-light);
		border: var(--color-secondary) 2px solid;
		border-radius: 6px;
		box-shadow: #fff 0 0 5px;
		transition: all 0.3s;
	}
	#nav-area ul li:nth-child(-n+6) a span::before,
	#nav-area ul li:nth-child(-n+6) a span::after {
		content: '';
		width: 12px;
		height: 12px;
		clip-path: polygon( 0 0, 100% 0, 50% 100% );
		background-color: transparent;
		position: absolute;
		bottom: -12px;
		left: calc(30% - 6px);
		transition: all 0.3s;
	}
	#nav-area ul li:nth-child(-n+6) a span::before {
		width: 16px;
		height: 16px;
		bottom: -16px;
		left: calc(30% - 8px);
	}
	#nav-area ul li:nth-child(-n+6) a:hover span::before,
	#nav-area ul li:nth-child(-n+6) a:active span::before {
		background-color: var(--color-secondary);
	}
	#nav-area ul li:nth-child(-n+6) a:hover span::after,
	#nav-area ul li:nth-child(-n+6) a:active span::after {
		background-color: var(--bg-color-light);
	}
	#nav-area ul li a.nav-conv {
		margin: 0 0 0 6px;
		padding: 0.3em 1em;
		font-size: 0.9375rem;
	}
}
@media screen and (min-width: 64em) { /* 1024px lg */
	#top-logo a {
		font-size: 0.8125rem;
	}
	#top-logo img {
		width: 190px;
	}
	#nav-area ul {
		width: 730px;
	}
	#nav-area ul li a {
		padding: 3px 3px 3px 2px;
		font-size: 1.125rem;
	}
	#nav-area ul li:nth-child(-n+6) a span {
		padding: 6px 7px;
	}
	#nav-area ul li:nth-child(-n+6) a:hover span,
	#nav-area ul li:nth-child(-n+6) a:active span {
		padding: 6px 7px;
	}
	#nav-area ul li a.nav-conv {
		margin: 0 0 0 11px;
		padding: 0.5em 2em;
		font-size: 1.125rem;
	}
}
@media screen and (min-width: 80em) { /* 1280px xl */
	#nav-area ul {
		width: 950px;
	}
	#nav-area ul li a {
		padding: 2px 10px;
	}
	#nav-area ul li:nth-child(-n+6) a span {
		padding: 10px 15px;
	}
	#nav-area ul li:nth-child(-n+6) a:hover span,
	#nav-area ul li:nth-child(-n+6) a:active span {
		padding: 10px 15px;
	}
	#nav-area ul li a.nav-conv {
		margin: 0 0 0 24px;
		font-size: 1.375rem;
	}
}

/* ===========================
section　コンテンツ
h2　見出し
conv　CVボタン
============================== */
.content-sec {
	padding: 50px 0 0;
}
h2 {
	font-size: 1.5rem;
	font-weight: 500;
	text-align: center;
	line-height: 1.4;
	color: var(--color-primary);
}
h2 strong,
h2 em {
	font-style: normal;
	font-weight: bold;
}
.bg-dark h2 strong,
.bg-dark h2 em {
	color: var(--color-accent2);
}
.sec-intro {
	margin-top: 30px;
	font-size: 0.9375rem;
	text-align: justify;
}
.sec-intro em,
.sec-intro strong {
	font-size: 125%;
	font-style: normal;
	font-weight: bold;
	color: var(--color-primary);
}
.cv-btn {
	display: inline-block;
	position: relative;
	padding: 0.2em 1em 0.2em 2.2em;
	font-size: 1.25rem;
	font-weight: bold;
	text-decoration: none;
	color: var(--color-outlined);
	background: var(--cvbtn-bg-color);
	background-size: 300%;
	background-position:99% 0;
	border: transparent 4px solid;
	border-radius: 1.1em;
	transition: all 0.6s;
}
.cv-btn.outlined {
	border: var(--bg-color-light) 4px solid;
}
.cv-btn.invert {
	color: var(--color-body);
	background: var(--cvbtn2-bg-color);
	background-size: 300%;
	background-position:99% 0;
	border: var(--color-secondary) 4px solid;
}
.cv-btn:hover,
.cv-btn:active {
	color: var(--color-secondary);
	background-position:0% 0;
	border: var(--color-secondary) 4px solid;
}
.cv-btn.invert:hover,
.cv-btn.invert:active {
	color: var(--color-outlined);
	background-position:0% 0;
	border: var(--color-outlined) 4px solid;
}
@keyframes speech {
	0% {top: 10px;}
	10% {top: 0px;}
	20% {top: 10px;}
	30% {top: 0px;}
	40% {top: 10px;}
	100% {top: 10px;}
}
.cv-btn::after {
	content: '';
	width: 30px;
	height: 30px;
	position: absolute;
	top: 10px;
	left: 7px;
	background: url(../img/speech.svg) center center no-repeat;
	background-size: contain;
	animation: speech 4s 4s ease infinite;
	filter: brightness(0) invert(1);
}
.cv-btn.invert::after {
	filter: none;
}
.cv-btn:hover::after,
.cv-btn:active::after {
	filter: none;
}
.cv-btn.invert:hover::after,
.cv-btn.invert:active::after {
	filter: brightness(0) invert(1);
}
@media screen and (min-width: 48em) { /* 768px md */
	.content-sec {
		padding: 120px 0 0;
	}
	h2 {
		font-size: 3rem;
	}
	.sec-intro {
		margin-top: 60px;
		font-size: 1.125rem;
		text-align: center;
	}
	.cv-btn {
		font-size: 1.25rem;
	}
}
@media screen and (min-width: 64em) { /* 1024px lg */
	.cv-btn {
		font-size: 1.75rem;
	}
	.cv-btn::after {
		width: 40px;
		height: 40px;
		top: 10px;
		left: 15px;
	}
}
@media screen and (min-width: 80em) { /* 1280px xl */
	.cv-btn {
		font-size: 2rem;
	}
}

/* ===========================
mv　メインビジュアル
============================== */
main {
	width: 100%;
	padding: 100px 0 0;
	position: relative;
	overflow: hidden;
}
#mv {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 0 0 4%;
}
@keyframes fade-left {
	0% {left: -200px; opacity: 0;}
	40% {left: -200px; opacity: 0;}
	100% {left: 0px; opacity: 1;}
}
#mv h1 {
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.4;
	position: relative;
	animation: fade-left 0.7s ease forwards;
}
#mv h1 strong {
	font-size: 150%;
	font-weight: bold;
}
@keyframes fade-left2 {
	0% {left: -200px; opacity: 0;}
	50% {left: -200px; opacity: 0;}
	100% {left: 0px; opacity: 1;}
}
#mv_lead {
	margin: 20px 0;
	font-size: 2.5rem;
	font-weight: 900;
	line-height: 1.3;
	color: var(--color-primary);
	position: relative;
	animation: fade-left2 1s ease forwards;
}
#mv_lead em {
	display: inline-block;
	width: 3.3em;
	font-size: 34%;
	font-style: normal;
}
#mv_lead strong {
	color: var(--color-accent);
}
#mv > ul {
	position: absolute;
	left: 4%;
	top: 500px;
	display: flex;
}
@keyframes pop-up {
	0% {opacity: 0; transform: scale(0.1) translateY(300px);}
	60% {opacity: 1; transform: scale(1.05) translateY(-10px);;}
	100% {opacity: 1; transform: scale(1) translateY(0);;}
}
#mv > ul li {
	width: 110px;
	margin: 0 10px 0 0;
	aspect-ratio: 1;
	border-radius: 50%;
	background: #fff;
	box-shadow: #000a 5px 5px 16px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-content: center;
	position: relative;
	opacity: 0;
	animation: pop-up 0.5s ease forwards;
	animation-delay: 1.5s;
}
#mv > ul li:nth-child(2) {
	animation-delay: 1.7s;
}
#mv > ul li:nth-child(3) {
	animation-delay: 1.9s;
}
@keyframes rotate {
	0% {transform: rotate(0deg);}
	30% {transform: rotate(360deg);}
	100% {transform: rotate(360deg);}
}
#mv > ul li::before {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background: url(../img/circle.svg) center center no-repeat;
	background-size: contain;
}
#mv > ul li:nth-child(1)::before {
	animation: rotate 30s 2s ease-in-out infinite;
}
#mv > ul li:nth-child(2)::before {
	animation: rotate 30s 12s ease-in-out infinite;
}
#mv > ul li:nth-child(3)::before {
	animation: rotate 30s 22s ease-in-out infinite;
}
#mv > ul li p {
	font-size: 1.125rem;
	font-weight: bold;
	text-align: center;
	line-height: 1;
	color: var(--color-primary);
}
#mv > ul li:nth-child(3) p {
	line-height: 1.4;
}
#mv > ul li p span {
	font-size: 280%;
}
#mv-cv {
	margin: 100px 0 50px;
	text-align: center;
}
#mv-img {
	width: 100%;
	height: 230px;
	z-index: -1;
	overflow: hidden;
	position: relative;
}
#mv-thumbnail {
	width: 100%;
	height: 200px;
	position: relative;
	text-align: right;
	overflow: hidden;
}
@keyframes mv_img01 {
	0% {left: 0; opacity: 0;}
	50% {opacity: 1;}
	100% {left: 60%; opacity: 1;}
}
@keyframes mv_img01_pc {
	0% {left: 0; opacity: 0;}
	50% {opacity: 1;}
	100% {left: 30%; opacity: 1;}
}
@keyframes mv_img02 {
	0% {background-position: 0% center;}
	100% {background-position: 50% center;}
}
@keyframes mv_img02_pc {
	0% {background-position: 5% top;}
	100% {background-position: 30% top;}
}
#mv-thumbnail::before {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	background-image: url(../img/mv_img02.webp);
	background-repeat: no-repeat;
	background-position: 0% center;
	background-size: 130%;
	animation: mv_img02 1.5s .8s ease forwards;
	border: #fff 2px solid;
	border-top-left-radius: 40px;
	border-bottom-left-radius: 40px;
}
#mv-img p:last-child {
	width: 220px;
	position: absolute;
	bottom: 0;
	left: 0;
	opacity: 0;
	animation: mv_img01 1.5s .8s ease forwards;
}
#mv-img p:last-child img {
	vertical-align: bottom;
}
@media screen and (min-width: 35.5em) { /* 568px sm */
	#mv_lead {
		font-size: 4rem;
	}
	#mv-cv {
		margin: 60px 0 50px;
	}
}
@media screen and (min-width: 48em) { /* 768px md */
	main {
		padding: 150px 0 0;
	}
	#mv {
		min-height: 400px;
	}
	#mv h1 {
		font-size: 1.125rem;
	}
	#mv_lead {
		margin: 20px 0 50px;
		font-size: 3rem;
	}
	#mv > ul {
		left: 47%;
		top: 440px;
	}
	#mv > ul li {
		width: 120px;
		margin: 0 15px 0 0;
	}
	#mv > ul li p {
		font-size: 1.25rem;
	}
	#mv-cv {
		margin: 0;
		text-align: left;
	}
	#mv-img {
		width: 50%;
		height: 550px;
		position: absolute;
		top: 0;
		right: 0;
	}
	#mv-thumbnail {
		height: 500px;
	}
	#mv-thumbnail::before {
		background-position: 5% top;
		background-size: 240%;
		border-top-left-radius: 0;
		border-bottom-left-radius: 80px;
		animation: mv_img02_pc 1.5s .8s ease forwards;
	}
	#mv-thumbnail::after {
		content: '';
		width: 100%;
		height: 100%;
		position: absolute;
		bottom: 0;
		left: 0;
		background: linear-gradient(to right, #ffff, #fff0 20%);
	}
	#mv-img p:last-child {
		width: 400px;
		animation: mv_img01_pc 1.5s .8s ease forwards;
	}
}
@media screen and (min-width: 64em) { /* 1024px lg */
	#mv {
		min-height: 500px;
	}
	#mv h1 {
		font-size: 1.25rem;
	}
	#mv_lead {
		margin: 30px 0 70px;
		font-size: 4rem;
	}
	#mv > ul {
		left: 50%;
		top: 520px;
	}
	#mv > ul li {
		width: 150px;
		margin: 0 25px 0 0;
	}
	#mv > ul li p {
		font-size: 1.5rem;
	}
	#mv-img {
		width: 50%;
		height: 650px;
	}
	#mv-thumbnail {
		height: 550px;
	}
	#mv-thumbnail::before {
		background-size: 180%;
	}
	#mv-img p:last-child {
		width: 500px;
	}
}
@media screen and (min-width: 80em) { /* 1280px xl */
	main {
		padding: 200px 0 0;
	}
	#mv {
		min-height: 600px;
		padding: 0;
	}
	#mv h1 {
		font-size: 1.5rem;
	}
	#mv_lead {
		margin: 45px 0 90px;
		font-size: 5rem;
	}
	#mv > ul {
		top: 480px;
	}
	#mv > ul li {
		width: 180px;
	}
	#mv > ul li p {
		font-size: 1.75rem;
	}
	#mv > ul {
		left: 53%;
		top: 640px;
	}
	#mv-img {
		height: 800px;
	}
	#mv-thumbnail {
		height: 700px;
	}
	#mv-img p:last-child {
		width: 600px;
	}
}

/* ===========================
intro　セカンドビュー
============================== */
#intro {
	background: var(--color-secondary);
}
.intro-problem {
	max-width: 400px;
	height: 250px;
	margin: 20px auto 0;
	position: relative;
}
.intro-problem li {
	padding: 0.6em 1.4em;
	background: var(--bg-color-light);
	border-radius: 20px;
	box-shadow: #0006 2px 1px 5px;
	font-size: 0.9375rem;
	opacity: 0.1;
	position: absolute;
}
.intro-problem li em {
	font-style: normal;
	font-weight: bold;
}
.intro-problem li::after {
	content: '';
	width: 20px;
	height: 20px;
	background-color: var(--bg-color-light);
	position: absolute;
}
.intro-problem li:nth-child(1) {
	top: 0;
	left: 5%;
}
.intro-problem li:nth-child(1)::after,
.intro-problem li:nth-child(3)::after {
	clip-path: polygon( 0 0, 100% 0, 0 100% );
	bottom: -18px;
	left: 50px;
}
.intro-problem li:nth-child(2) {
	top: 60px;
	right: 5%;
}
.intro-problem li:nth-child(2)::after,
.intro-problem li:nth-child(4)::after {
	clip-path: polygon( 0 0, 100% 0, 100% 100% );
	bottom: -18px;
	right: 50px;
}
.intro-problem li:nth-child(3) {
	top: 120px;
	left: 5%;
}
.intro-problem li:nth-child(4) {
	top: 180px;
	right: 5%;
}
.intro-problem.is-scroll li:nth-child(1) {
	animation: pop-up 0.5s 0s ease forwards;
}
.intro-problem.is-scroll li:nth-child(2) {
	animation: pop-up 0.5s 0.1s ease forwards;
}
.intro-problem.is-scroll li:nth-child(3) {
	animation: pop-up 0.5s 0.2s ease forwards;
}
.intro-problem.is-scroll li:nth-child(4) {
	animation: pop-up 0.5s 0.3s ease forwards;
}
.intro-img {
	padding: 0 15px;
	text-align: center;
}
.intro-img img {
	width: 480px;
}
.intro-solution {
	padding-bottom: 10px;
	background: var(--bg-color-light);
	border-bottom: var(--bg-color-light) 1px solid;
}
.intro-solution > img {
	width: 100%;
	margin: -1px 0 0;
	vertical-align: top;
}
.intro-solution > ul {
	margin-top: 10px;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-evenly;
}
.intro-solution > ul li {
	width: 40%;
	max-width: 200px;
	margin-bottom: 10px;
	aspect-ratio: 1 / 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-content: center;
	font-size: 0.8125rem;
	line-height: 1.3;
	text-align: center;
	background: var(--bg-color-light);
	box-shadow: #0003 0 0 16px;
	border-radius: 50%;
	opacity: 0;
	transition: all 0.5s;
}
.intro-solution > ul.is-scroll li {
	opacity: 1;
	transition-delay: 0.1s;
}
.intro-solution > ul li:first-child {
	width: 30%;
	border-radius: 0;
}
.intro-solution > ul li:nth-child(2) {
	margin-right: 20%;
}
.intro-solution > ul li:nth-child(3) {
	margin-left: 10%;
}
.intro-solution > ul.is-scroll li:nth-child(2) {
	transition-delay: 0.3s;
}
.intro-solution > ul.is-scroll li:nth-child(3) {
	transition-delay: 0.5s;
}
.intro-solution > ul.is-scroll li:nth-child(4) {
	transition-delay: 0.7s;
}
.intro-solution > ul li img {
	width: 50%;
}
.intro-solution > ul li strong {
	width: 100%;
	display: block;
	font-size: 150%;
	font-weight: bold;
}
.intro-solution > ul li:first-child {
	box-shadow: none;
}
.intro-solution > ul li:first-child img {
	width: 100%;
}
@media screen and (min-width: 48em) { /* 768px md */
	.intro-problem {
		width: 100%;
		max-width: none;
		height: 170px;
		margin: 60px 0 0;
	}
	.intro-problem li {
		font-size: 1rem;
	}
	.intro-problem li:nth-child(1) {
		top: 20px;
		left: 55%;
	}
	.intro-problem li:nth-child(2) {
		top: 50px;
		right: 55%;
	}
	.intro-problem li:nth-child(3) {
		top: 80px;
		left: 65%;
	}
	.intro-problem li:nth-child(3)::after {
		clip-path: polygon( 100% 0, 100% 100%, 0 100% );
		bottom: 20px;
		left: -18px;
	}
	.intro-problem li:nth-child(4) {
		top: 110px;
		right: 64%;
	}
	.intro-problem li:nth-child(4)::after {
		clip-path: polygon( 0 0, 100% 100%, 0 100% );
		bottom: 20px;
		right: -18px;
	}
	.intro-solution > ul {
		margin-top: 40px;
		align-items: center;
	}
	.intro-solution > ul li {
		width: 20%;
		max-width: none;
		line-height: 1.6;
	}
	.intro-solution > ul li:first-child {
		width: 28%;
	}
	.intro-solution > ul li:nth-child(2) {
		margin-right: 0;
	}
	.intro-solution > ul li:nth-child(3) {
		margin-left: 0;
	}
}
@media screen and (min-width: 64em) { /* 1024px lg */
	.intro-problem li {
		padding: 1.4em 2em;
		font-size: 1.125rem;
	}
	.intro-problem li:nth-child(3) {
		top: 115px;
	}
	.intro-problem li:nth-child(4) {
		top: 145px;
		right: 65%;
	}
	.intro-solution > ul li {
		font-size: 0.9375rem;
	}
	.intro-solution > ul li strong {
		font-size: 200%;
	}
	.intro-solution > ul li img {
		width: 60%;
	}
}

/* ===========================
service　サービス内容
============================== */
#service {
	padding-bottom: 50px;
	background: url(../img/service-bg.svg) right bottom no-repeat, linear-gradient(var(--bg-color-light), var(--color-secondary));
}
.service-list {
	margin-top: 30px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.service-list li {
	width: 48%;
	margin: 0 0 10px;
	padding: 10px;
	border: var(--color-primary) 2px solid;
	border-top-color: var(--color-secondary);
	border-left-color: var(--color-secondary);
	border-radius: 5px;
	background: linear-gradient(110deg, #fff 43%, #8bf7 43%);
	background-size: 240%;
	background-position: 100% 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-content: center;
	transition: all 0.4s;
}
.service-list li:nth-child(n+3) {
	width: 32%;
}
.service-list.is-scroll li {
	background-position: 0 0;
}
.service-list.is-scroll li:nth-child(1) {
	transition-delay: 0.1s;
}
.service-list.is-scroll li:nth-child(2) {
	transition-delay: 0.25s;
}
.service-list.is-scroll li:nth-child(3) {
	transition-delay: 0.4s;
}
.service-list.is-scroll li:nth-child(4) {
	transition-delay: 0.55s;
}
.service-list.is-scroll li:nth-child(5) {
	transition-delay: 0.7s;
}
.service-list li p {
	font-size: 1rem;
	font-weight: bold;
	line-height: 1.2;
	text-align: center;
}
.service-list li p span {
	color: var(--color-accent);
}
.service-list li p span.zero {
	font-size: 300%;
}
.service-list li p span.none {
	font-size: 125%;
	line-height: 1.8;
}
.service-list li p small {
	font-size: 70%;
}
#service-unique h3 {
	margin: 40px 0 0;
	padding-right: 30%;
	font-size: 1.5rem;
	font-weight: 500;
	text-align: center;
	line-height: 1.4;
	color: var(--color-primary);
	position: relative;
}
.service-unique-point {
	padding: 15px;
	position: absolute;
	top: -30px;
	right: 0;
	aspect-ratio: 1 / 1;
	font-size: 1.25rem;
	font-weight: bold;
	text-align: center;
	color: var(--color-outlined);
	background: var(--color-primary);
	border-radius: 50%;
	display: flex;
	flex-wrap: wrap;
	align-content: center;
}
@keyframes rotate_service {
	0% {transform: rotate(0deg);}
	20% {transform: rotate(0deg);}
	100% {transform: rotate(360deg);}
}
.service-unique-point::before {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background: url(../img/circle.svg) center center no-repeat;
	background-size: contain;
	animation: rotate_service 10s ease-in-out infinite;
}
#service-unique ol {
	margin: 60px 0 0;
}
#service-unique ol li {
	width: 100%;
	margin: 0 0 30px;
	overflow: hidden;
}
#service-unique ol li h4 {
	position: relative;
	padding-left: 3.2em;
	text-indent: -3.2em;
	font-size: 1.5rem;
	line-height: 0.5;
}
#service-unique ol li h4 span {
	display: inline-block;
	width: 1.3em;
	margin-right: 0.5em;
	padding: 0 0 0 0.3em;
	vertical-align: -0.1em;
	aspect-ratio: 1 / 1;
	background: var(--color-accent3);
	border-radius: 50%;
	font-size: 140%;
	text-align: center;
	text-indent: 0;
	line-height: 1.6;
	color: var(--color-outlined);
	border: var(--color-outlined) 3px solid;
}
#service-unique ol li:nth-child(2) h4 span {
	background: var(--color-accent4);
}
#service-unique ol li:nth-child(3) h4 span {
	background: var(--color-accent5);
}
#service-unique ol li p {
	padding: 30px 0 15px;
	font-size: 0.9375rem;
	text-align: justify;
}
#service-unique ol li p img {
	width: 160px;
	height: auto;
	display: inline;
	margin: 0 0 0 15px;
	float: right;
	position: relative;
	top: 100px;
	opacity: 0;
	transition: 0.5s;
}
#service-unique ol li p img.is-scroll {
	top: -10px;
	opacity: 1;
	transition-delay: 0.3s;
}
#service-unique ol li:nth-child(2) p img {
	margin: 0 15px 0 0;
	float: left;
}
#service-cv {
	margin: 50px 0 0;
	text-align: center;
}
#name-list-plan {
	margin-top: 60px;
	padding: 220px 20px 30px 20px;
	background: var(--bg-color-light);
	border-radius: 15px;
	position: relative;
	scroll-margin-top: 30px;
}
#name-list-plan::before {
	content: '';
	width: 100%;
	height: 200px;
	position: absolute;
	top: 0;
	left: 0;
	background: url(../img/service-meishi.webp) center center no-repeat;
	background-size: cover;
	border-top-left-radius: 15px;
	border-top-right-radius: 15px;
}
#name-list-plan h3 {
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	color: var(--color-primary);
}
#name-list-plan .recommend {
	padding: 10px;
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	aspect-ratio: 1 / 1;
	position: absolute;
	top: 10px;
	left: 10px;
	background: var(--color-accent5);
	border-radius: 50%;
	border: #fff 2px solid;
	font-size: 1.25rem;
	font-weight: bold;
	text-align: center;
	line-height: 1.3;
	color: var(--color-outlined);
}
.name-list-intro {
	margin: 15px 0 0;
	font-size: 1rem;
	text-align: justify;
}
.name-list-intro strong {
	font-weight: bold;
}
.name-list-intro em {
	font-style: normal;
	text-decoration: underline var(--color-accent5) 2px wavy;
	text-underline-offset: 4px;
}
.name-list-content {
	margin: 40px 0 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
.name-list-content ul {
	width: 100%;
	position: relative;
	top: 100px;
	opacity: 0;
	transition: 0.5s;
}
.name-list-content ul.is-scroll {
	top: 0;
	opacity: 1;
	transition-delay: 0.3s;
}
.name-list-content ul:last-child.is-scroll {
	transition-delay: 0.7s;
}
.name-list-content ul h4 {
	margin: 0 0 20px;
	padding: 0.2em 0.5em;
	font-size: 1.125rem;
	text-align: center;
	color: var(--color-primary);
	background: var(--color-outlined);
	border: var(--color-primary) 2px solid;
	border-radius: 20px;
}
.name-list-content ul:last-child h4 {
	color: var(--color-outlined);
	background: var(--color-primary);
	border: transparent 2px solid;
}
.name-list-content ul li {
	font-size: 0.9375rem;
	line-height: 2;
}
.name-list-content ul li::before {
	content: '● ';
	color: var(--color-secondary);
}
.name-list-content ul li:first-child:before {
	content: none;
}
.name-list-content ul:last-child li:before {
	color: var(--color-primary);
}
.name-list-content ul li strong {
	font-weight: bold;
	color: var(--color-primary);
}
.name-list-content .arrow {
	padding: 20px 0;
	width: 100%;
	text-align: center;
	position: relative;
	top: 100px;
	opacity: 0;
	transition: 0.5s;
}
.name-list-content .arrow.is-scroll {
	top: 0;
	opacity: 1;
	transition-delay: 0.5s;
}
@media screen and (min-width: 48em) { /* 768px md */
	#service {
		padding-bottom: 120px;
	}
	.service-list {
		margin-top: 60px;
	}
	.service-list li {
		width: 18%;
		padding: 5px;
	}
	.service-list li:nth-child(n+3) {
		width: 18%;
	}
	.service-list li p {
		font-size: 1rem;
	}
	#service-unique h3 {
		margin: 80px 0 0;
		padding-right: 20%;
		font-size: 2.5rem;
	}
	.service-unique-point {
		padding: 20px;
		top: 0;
		font-size: 1.5rem;
	}
	#service-unique ol {
		margin: 60px 0 0;
	}
	#service-unique ol li {
		width: 75%;
		margin: 0 0 10px;
	}
	#service-unique ol li:nth-child(2) {
		margin-left: 10%;
	}
	#service-unique ol li:nth-child(3) {
		margin-left: 20%;
	}
	#service-unique ol li h4 {
		padding-left: 3.2em;
		font-size: 1.75rem;
		text-indent: -3.2em;
	}
	#service-unique ol li p {
		padding: 15px 0 15px 6em;
		font-size: 1rem;
	}
	#service-unique ol li p img {
		width: 240px;
	}
	#service-unique ol li p img.is-scroll {
		top: -40px;
	}
	#service-cv {
		margin: 100px 0 0;
	}
	#name-list-plan {
		margin-top: 120px;
		padding: 30px 20px 30px 200px;
		scroll-margin-top: 120px;
	}
	#name-list-plan::before {
		width: 180px;
		height: 100%;
		border-top-right-radius: 0;
		border-top-left-radius: 15px;
		border-bottom-left-radius: 15px;
	}
	#name-list-plan h3 {
		font-size: 1.75rem;
	}
	.name-list-content {
		margin: 60px 0 0;
	}
	.name-list-content ul li {
		font-size: 1rem;
	}
}
@media screen and (min-width: 64em) { /* 1024px lg */
	.service-list li {
		padding: 15px 5px;
	}
	.service-list li p {
		font-size: 1.25rem;
	}
	#service-unique h3 {
		font-size: 3rem;
	}
	.service-unique-point {
		padding: 30px;
		font-size: 1.75rem;
	}
	#service-unique ol li {
		margin: 0;
	}
	#service-unique ol li h4 {
		font-size: 1.875rem;
	}
	#service-unique ol li p {
		padding: 15px 0 15px 5em;
		font-size: 1.125rem;
	}
	#service-unique ol li p img {
		width: 340px;
	}
	#name-list-plan h3 {
		font-size: 2.5rem;
	}
	.name-list-intro {
		font-size: 1.125rem;
		text-align: center;
	}
	#name-list-plan .recommend {
		top: 15px;
		left: 15px;
		font-size: 1.5rem;
	}
	.name-list-content ul {
		width: 45%;
	}
	.name-list-content .arrow {
		padding: 0;
		width: auto;
	}
	.name-list-content .arrow img {
		transform: rotate(-90deg);
	}
}
@media screen and (min-width: 80em) { /* 1280px xl */
	.service-list li p {
		font-size: 1.5rem;
	}
	#name-list-plan {
		padding: 40px 30px 40px 330px;
	}
	#name-list-plan::before {
		width: 300px;
	}
	.name-list-content ul h4 {
		font-size: 1.25rem;
	}
	.name-list-content ul li {
		font-size: 1.125rem;
	}
}

/* ===========================
case　導入実績・成功事例
============================== */
#case {
	padding-bottom: 50px;
	background-image:
	radial-gradient(circle at 85% 15%, rgba(136, 187, 255, .3) , transparent 20%),
	radial-gradient(circle at 40% 35%, rgba(255, 136, 136, .2) , transparent 15%),
	radial-gradient(circle at 65% 60%, rgba(255, 175, 111, .3) , transparent 20%),
	radial-gradient(circle at 20% 80%, rgba(147, 205, 147, .2) , transparent 15%),
	radial-gradient(circle at 0% 100%, rgba(136, 187, 255, .4) , transparent 15%),
	radial-gradient(circle at 90% 100%, rgba(136, 187, 255, .2) , transparent 10%)
	;
}
#case article {
	margin: 50px 0 0;
	position: relative;
	left: -20%;
	opacity: 0;
	transition: 0.5s;
}
#case article.invert {
	left: 20%;
}
#case article.is-scroll {
	left: 0;
	opacity: 1;
	transition-delay: 0.3s;
}
#case article::before {
	content: '';
	width: 100%;
	aspect-ratio: 1 / 0.577;
	position: absolute;
	top: 2.5em;
	left: -20%;
	opacity: 0;
	transition: 0.5s;
}
#case article.invert::before {
	left: auto;
	right: -20%;
}
#case article.is-scroll::before {
	transition-delay: 0.5s;
	left: 0;
	opacity: 1;
}
#case article.invert.is-scroll::before {
	transition-delay: 0.5s;
	left: auto;
	right: 0;
	opacity: 1;
}
#case article#case-a::before {
	background: url(../img/case-img1.webp) center center no-repeat;
	background-size: cover;
}
#case article#case-b::before {
	background: url(../img/case-img2.webp) center center no-repeat;
	background-size: cover;
}
#case article#case-c::before {
	background: url(../img/case-img3.webp) center center no-repeat;
	background-size: cover;
}
#case article h3 {
	padding: calc(60vw + 30px) 0 0;
	font-size: 1.625rem;
	font-weight: 500;
}
#case article h3 strong {
	font-weight: 500;
	color: var(--color-primary);
}
.case-company {
	position: absolute;
	top: 0;
	font-size: 1.125rem;
}
.case-company span:first-child {
	display: inline-block;
	padding: 0 0.5em 0.1em;
	font-weight: bold;
	color: var(--color-outlined);
}
.case-company span:last-child {
	display: inline-block;
	padding: 0 0.5em 0.1em;
	background: var(--bg-color-light);
}
article#case-a .case-company span:first-child {
	border: var(--color-accent5) 5px solid;
	background: var(--color-accent5);
}
article#case-a .case-company span:last-child {
	border: var(--color-accent5) 5px solid;
}
article#case-b .case-company span:first-child {
	border: var(--color-accent4) 5px solid;
	background: var(--color-accent4);
}
article#case-b .case-company span:last-child {
	border: var(--color-accent4) 5px solid;
}
article#case-c .case-company span:first-child {
	border: var(--color-accent3) 5px solid;
	background: var(--color-accent3);
}
article#case-c .case-company span:last-child {
	border: var(--color-accent3) 5px solid;
}
#case article dl {
	margin-top: 5px;
}
#case article dt {
	width: 5em;
	margin-top: 10px;
	padding: 0 0 0.1em;
	font-size: 1rem;
	font-weight: bold;
	text-align: center;
	color: var(--color-outlined);
	background: var(--color-secondary);
}
#case article dd {
	margin-top: 10px;
	font-size: 0.9375rem;
	text-align: justify;
}
@media screen and (min-width: 48em) { /* 768px md */
	#case {
		padding-bottom: 100px;
	}
	#case article::before {
		width: 40%;
		top: 5em;
	}
	#case article h3 {
		padding: 0 0 0 calc(36% + 20px);
		font-size: 2rem;
	}
	#case article.invert h3 {
		padding: 0 calc(36% + 20px) 0 0;
		text-align: right;
	}
	.case-company {
		top: 10px;
		right: 60%;
		font-size: 1.375rem;
	}
	article.invert .case-company {
		right: auto;
		left: 60%;
	}
	#case article dl {
		margin-top: 5px;
		padding: 0 0 0 calc(36% + 20px);
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		justify-content: space-between;
	}
	#case article.invert dl {
		padding: 0 calc(36% + 20px) 0 0;
	}
	#case article dd {
		width: calc(100% - 6em);
	}
}
@media screen and (min-width: 64em) { /* 1024px lg */
	#case article {
		margin: 120px 0 0;
		min-height: 25vw;
	}
	#case article h3 {
		font-size: 2.5rem;
	}
	#case article dl {
		margin-top: 15px;
	}
	#case article dt {
		width: 5.5em;
		margin-top: 25px;
		font-size: 1.125rem;
	}
	#case article dd {
		width: calc(100% - 7em);
		margin-top: 25px;
		font-size: 1rem;
	}
}
@media screen and (min-width: 80em) { /* 1280px xl */
	#case article h3 {
		/* padding: 0 0 0 calc(40% - ((100% - 1200px ) / 2)); */
		padding: 0 0 0 calc(630px - 10%);
	}
	#case article.invert h3 {
		padding: 0 calc(630px - 10%) 0 0;
	}
	#case article dl {
		padding: 0 0 0 calc(630px - 10%);
	}
	#case article.invert dl {
		padding: 0 calc(630px - 10%) 0 0;
	}
}

/* ===========================
flow　サービス導入までの流れ
============================== */
#flow {
	padding-bottom: 50px;
}
#flow-content {
	margin-top: 50px;
}
#flow-content h3 {
	display: inline-block;
	position: relative;
	font-size: 1.75rem;
}
#flow-content h3::before {
	content: '';
	width: 2em;
	height: 1em;
	position: absolute;
	bottom: calc(-1em - 5px);
	left: 0;
	clip-path: polygon( 0 0, 100% 0, 50% 100% );
	background: var(--color-secondary);
	filter: brightness(0.8);
}
#flow-content h3.flow-support::before {
	background: var(--color-accent6);
}
#flow-content h3.flow-operation::before {
	background: var(--color-accent3);
}
#flow-content h3::after {
	content: '';
	width: 3em;
	height: 2.8em;
	position: absolute;
	top: -0.5em;
	right: -1.2em;
	clip-path: polygon( 60% 0, 100% 50%, 0 100% );
	background: var(--color-secondary);
	z-index: -1;
}
#flow-content h3.flow-support::after {
	background: var(--color-accent6);
}
#flow-content h3.flow-operation::after {
	background: var(--color-accent3);
}
#flow-content h3 span {
	padding: 0 0.5em 0.1em 1.7em;
	clip-path: polygon( 1.7em 0, 100% 0, calc(100% - 0.5em) 100%, 0 100% );
	color: var(--color-outlined);
	background: var(--color-secondary);
}
#flow-content h3.flow-support span {
	background: var(--color-accent6);
}
#flow-content h3.flow-operation span {
	background: var(--color-accent3);
}
#flow-content ol {
	margin: 40px 0;
}
#flow-content li {
	margin: 0 0 15px;
	padding: 15px;
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	background: #edf5ff;
	position: relative;
	top: 100px;
	opacity: 0;
	transition: 0.5s;
}
#flow-content li.is-scroll {
	top: 0;
	opacity: 1;
}
#flow-content li:nth-child(2).is-scroll {
	transition-delay: 0.2s;
}
#flow-content li:nth-child(3).is-scroll {
	transition-delay: 0.4s;
}
#flow-content ol.flow-support li {
	background: #f0f0ff;
}
#flow-content ol.flow-operation li {
	background: #eff7ef;
}
#flow-content li > * {
	width: 100%;
}
@keyframes flow-next {
	0% {top: -31px; opacity: 0;}
	10% {top: -15px; opacity: 1;}
	15% {top: -15px; opacity: 1;}
	25% {top: 1px; opacity: 0;}
	100% {top: 1px;}
}
@keyframes flow-next-pc {
	0% {left: -13%; opacity: 0;}
	10% {left: -6.25%; opacity: 1;}
	15% {left: -6.25%; opacity: 1;}
	25% {left: 1%; opacity: 0;}
	100% {left: 1%;}
}
#flow-content li::before {
	content: '';
	width: 40px;
	height: 15px;
	clip-path: polygon( 0 0, 100% 0, 50% 100% );
	background: var(--color-secondary);
	position: absolute;
	top: -31px;
	left: calc(50% - 20px);
	animation: flow-next 4s 0s ease infinite;
	opacity: 0;
	z-index: -1;
}
#flow-content li:nth-child(2)::before {
	animation: flow-next 4s 2s ease infinite;
}
#flow-content li:first-child::before {
	content: none;
}
#flow-content ol.flow-support li::before {
	background: var(--color-accent6);
	animation: flow-next 4s 1s ease infinite;
}
#flow-content ol.flow-support li:nth-child(2)::before {
	animation: flow-next 4s 3s ease infinite;
}
#flow-content ol.flow-operation li::before {
	background: var(--color-accent3);
}
#flow-content li .note {
	margin: 0.5em 0 0;
	padding: 10px;
	font-size: 0.875rem;
	background: var(--bg-color-light);
	border-radius: 15px;
	flex-grow: 1;
}
#flow-content h4 {
	position: relative;
	margin: 0 0 0.5em;
	padding: 0 0 0.8em 2.5em;
	font-size: 1em;
	font-weight: bold;
	border-bottom: var(--color-secondary) 2px solid;
}
#flow-content ol.flow-support h4 {
	border-bottom: var(--color-accent6) 2px solid;
}
#flow-content ol.flow-operation h4 {
	border-bottom: var(--color-accent3) 2px solid;
}
#flow-content h4 span {
	width: 1.5em;
	height: 1.5em;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: -0.4em;
	left: -0.4em;
	font-size: 1.75rem;
	font-weight: bold;
	color: var(--color-outlined);
	background: var(--color-secondary);
	border-radius: 50%;
}
#flow-content ol.flow-support h4 span {
	background: var(--color-accent6);
}
#flow-content ol.flow-operation h4 span {
	background: var(--color-accent3);
}
#flow-content li a {
	display: inline-block;
	margin: 10px 0 5px;
	padding: 0 0.5em 0.1em;
	font-weight: bold;
	text-decoration: none;
	color: var(--color-primary);
	border: var(--color-primary) 1px solid;
	background: var(--bg-color-light);
	border-radius: 10px;
	transition: all 0.3s;
}
#flow-content li a:hover {
	background: var(--color-secondary);
}
@media screen and (min-width: 48em) { /* 768px md */
	#flow {
		padding-bottom: 120px;
		background: url(../img/flow-bg.svg) left top no-repeat;
	}
	#flow-content {
		margin-top: 120px;
	}
	#flow-content ol {
		width: 88%;
	}
	#flow-content h3.flow-support,
	#flow-content ol.flow-support {
		margin-left: 6%;
	}
	#flow-content h3.flow-operation,
	#flow-content ol.flow-operation {
		margin-left: 12%;
	}
	#flow-content h4 span {
		top: -0.2em;
		left: -0.2em;
	}
}
@media screen and (min-width: 64em) { /* 1024px lg */
	#flow-content ol {
		width: 94%;
		display: flex;
	}
	#flow-content h3.flow-support,
	#flow-content ol.flow-support {
		margin-left: 3%;
	}
	#flow-content h3.flow-operation,
	#flow-content ol.flow-operation {
		margin-left: 6%;
	}
	#flow-content li {
		width: 32%;
		margin: 0 0 0 2%;
	}
	#flow-content li:first-child {
		margin: 0;
	}
	#flow-content li::before {
		width: 6.25%;
		height: 40px;
		clip-path: polygon( 0 0, 100% 50%, 0 100% );
		top: calc(50% - 20px);
		left: -13%;
		opacity: 0;
		animation: flow-next-pc 4s 0s ease infinite;
	}
	#flow-content li:nth-child(2)::before {
		animation: flow-next-pc 4s 2s ease infinite;
	}
	#flow-content ol.flow-support li::before {
		animation: flow-next-pc 4s 1s ease infinite;
	}
	#flow-content ol.flow-support li:nth-child(2)::before {
		animation: flow-next-pc 4s 3s ease infinite;
	}
}
@media screen and (min-width: 80em) { /* 1280px xl */
	#flow-content ol {
		width: 88%;
	}
	#flow-content h3.flow-support,
	#flow-content ol.flow-support {
		margin-left: 6%;
	}
	#flow-content h3.flow-operation,
	#flow-content ol.flow-operation {
		margin-left: 12%;
	}
	#flow-content h4 {
		font-size: 1.125em;
	}
	#flow-content h4 span {
		font-size: 2rem;
	}
}

/* ===========================
price　料金
============================== */
#price {
	padding-bottom: 50px;
	background: var(--color-secondary);
}
#price table {
	margin-top: 30px;
	border-collapse: separate;
	border-spacing: 1px 2px;
}
#price table tr {
	position: relative;
	top: 100px;
	opacity: 0;
	transition: 0.5s;
}
#price table.is-scroll tr {
	top: 0;
	opacity: 1;
	transition-delay: 0.3s;
}
#price table.is-scroll tr:nth-child(2) {
	transition-delay: 0.4s;
}
#price table.is-scroll tr:nth-child(3) {
	transition-delay: 0.5s;
}
#price table.is-scroll tr:nth-child(4) {
	transition-delay: 0.6s;
}
#price table.is-scroll tr:nth-child(5) {
	transition-delay: 0.7s;
}
#price table.is-scroll tr:nth-child(6) {
	transition-delay: 0.8s;
}
#price table th,
#price table td {
	padding: 5px 10px;
	font-size: 1em;
}
#price table th {
	width: 40%;
	padding: 10px 10px;
	background: var(--bg-color-secondary);
	font-weight: normal;
	text-align: left;
}
#price table td {
	background: var(--bg-color-light);
	text-align: center;
	color: var(--color-accent);
}
#price table td strong {
	font-size: 220%;
	font-weight: 400;
	line-height: 1;
}
#price table tr.seika th {
	font-size: 130%;
	font-weight: bold;
	color: var(--color-primary);
}
#price table tr.seika td {
	font-size: 120%;
	text-align: center;
	color: var(--color-primary);
}
#price table .note {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: normal;
	text-align: left;
	color: var(--color-body);
}
#price table .limit .note {
	width: 100%;
	text-align: left;
	padding-left: 1em;
	text-indent: -1em;
}
#price table .period td {
	text-align: center;
}
#price table .period span {
	color: var(--color-body);
}
@media screen and (min-width: 48em) { /* 768px md */
	#price {
		padding-bottom: 120px;
		background: var(--color-secondary) url(../img/price-bg.svg) right bottom no-repeat;
	}
	#price table {
		margin-top: 50px;
	}
	#price table th,
	#price table td {
		padding: 5px 30px;
		font-size: 1.25em;
	}
	#price table th {
		width: 40%;
		padding: 15px 30px;
	}
	#price table tr.seika th {
		font-size: 200%;
	}
	#price table tr.seika td {
		font-size: 200%;
	}
	#price table .note {
		font-size: 0.9375rem;
	}
}

/* ===========================
price-cta　料金の下
============================== */
#price-cta {
	padding-bottom: 50px;
	background: var(--bg-color-secondary);
}
#price-cta h3 {
	width: 94%;
	margin: 0 auto;
	font-size: 1rem;
	text-align: center;
}
#price-cta > p {
	width: 94%;
	margin: 10px auto 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}
#price-cta > p > img {
	width: 280px;
}
#price-cta > p a {
	margin-top: 20px;
}
@media screen and (min-width: 48em) { /* 768px md */
	#price-cta {
		padding-bottom: 120px;
		background: var(--bg-color-secondary) url(../img/flow-bg.svg) left top no-repeat;
	}
	#price-cta h3 {
		font-size: 1.75rem;
	}
	#price-cta > p {
		margin: 20px auto 0;
	}
	#price-cta > p > img {
		width: auto;
	}
	#price-cta > p a {
		margin-left: 10px;
	}
}

/* ===========================
qanda　よくある質問
============================== */
#qanda {
	padding-bottom: 50px;
}
.qanda-list {
	margin-top: 30px;
}
.qanda-list dt:first-child {
	border-top: #ccc 1px solid;
}
.qanda-list dt,
.qanda-list dd {
	position: relative;
	top: 100px;
	opacity: 0;
	transition: 0.5s;
}
.qanda-list.is-scroll dt,
.qanda-list.is-scroll dd {
	top: 0;
	opacity: 1;
	transition-delay: 0.3s;
}
.qanda-list.is-scroll dt:nth-child(3),
.qanda-list.is-scroll dd:nth-child(4) {
	transition-delay: 0.4s;
}
.qanda-list.is-scroll dt:nth-child(5),
.qanda-list.is-scroll dd:nth-child(6) {
	transition-delay: 0.5s;
}
.qanda-list.is-scroll dt:nth-child(7),
.qanda-list.is-scroll dd:nth-child(8) {
	transition-delay: 0.6s;
}
.qanda-list.is-scroll dt:nth-child(9),
.qanda-list.is-scroll dd:nth-child(10) {
	transition-delay: 0.7s;
}
.qanda-list.is-scroll dt:nth-child(11),
.qanda-list.is-scroll dd:nth-child(12) {
	transition-delay: 0.8s;
}
.qanda-list dt {
	padding: 5px 0 0 1.8em;
	font-size: 1.25rem;
	font-weight: 500;
	text-indent: -1.8em;
	color: var(--color-primary);
}
.qanda-list dt::before {
	content: 'Q.';
	margin-right: 0.2em;
	font-size: 140%;
	font-weight: bold;
	color: var(--color-secondary);
}
.qanda-list dd {
	padding: 10px 0 15px 40px;
	font-size: 0.9375rem;
	border-bottom: #ccc 1px solid;
}
.qanda-list dd a {
	display: inline-block;
	margin: 10px 0 5px;
	padding: 0 0.5em 0.1em;
	font-weight: bold;
	text-decoration: none;
	color: var(--color-secondary);
	border: var(--color-primary) 1px solid;
	background: var(--bg-color-light);
	border-radius: 10px;
	transition: all 0.3s;
}
.qanda-list dd a:hover {
	color: var(--color-primary);
	background: var(--color-secondary);
}
@media screen and (min-width: 48em) { /* 768px md */
	#qanda {
		padding-bottom: 120px;
	}
	.qanda-list {
		margin-top: 60px;
	}
	.qanda-list dt {
		padding: 15px 0 0 1.8em;
		font-size: 1.75rem;
	}
	.qanda-list dd {
		padding: 15px 0 25px 60px;
		font-size: 1.125rem;
	}
}

/* ===========================
contact　ラストCAT
============================== */
#contact {
	padding-bottom: 40px;
	background: var(--color-secondary);
}
.contact-cta {
	margin-top: 30px;
	text-align: center;
}
.contact-note {
	margin-top: 30px;
}
.contact-note li {
	padding-left: 1em;
	font-size: 0.875rem;
	text-align: justify;
	text-indent: -1em;
}
.contact-note li a {
	color: var(--color-primary);
	text-underline-offset: 4px;
	transition: all 0.3s;
}
.contact-note li a:hover {
	text-underline-offset: 1px;
	color: var(--color-outlined);
}
@media screen and (min-width: 48em) { /* 768px md */
	#contact {
		padding-bottom: 60px;
	}
	.contact-cta {
		margin-top: 60px;
	}
	.contact-note {
		margin-top: 30px;
	}
	.contact-note li {
		font-size: 0.9375rem;
		text-align: center;
	}
}

/* ===========================
footer　フッター
============================== */
footer {
	padding: 40px 0;
	background: var(--color-primary);
	color: var(--color-outlined);
}
footer address {
	font-size: 0.875rem;
	font-style: normal;
	text-align: center;
	line-height: 1.6;
	color: var(--bg-color-secondary);
}
footer address img {
	margin-bottom: 10px;
}
footer nav {
	margin-top: 15px;
	text-align: center;
}
footer nav a {
	color: var(--color-secondary);
	text-underline-offset: 4px;
	transition: all 0.3s;
}
footer nav a:hover {
	color: var(--bg-color-secondary);
	text-underline-offset: 1px;
	/* text-decoration: none; */
}
footer .copyright {
	margin-top: 20px;
	font-size: 0.8125rem;
	text-align: center;
	color: var(--bg-color-secondary);
}
@media screen and (min-width: 48em) { /* 768px md */
	footer {
		padding: 60px 0;
	}
	footer address {
		font-size: 0.9375rem;
	}
	footer address img {
		margin-bottom: 20px;
	}
	footer nav {
		margin-top: 25px;
	}
	footer .copyright {
		margin-top: 35px;
		font-size: 0.9375rem;
	}
}

/* ===========================
goto_page_top
============================== */
#page_top {
	position: fixed;
	right: 0;
	bottom: 20px;
	text-indent: -9999px;
}
#page_top a {
	box-sizing: border-box;
	position: relative;
	display: block;
	width: 46px;
	height: 46px;
	background: #fffc;
	border: var(--color-secondary) 2px solid;
	border-radius: 23px;
	transition: opacity .4s ease;
}
#page_top a:hover {
	opacity: .4;
}
#page_top a::before {
	position: absolute;
	top: 10px;
	right: 0;
	bottom: 0;
	left: 0;
	display: block;
	width: 10px;
	height: 10px;
	margin: auto;
	content: '';
	transform: rotate(-45deg);
	border-top: 2px solid var(--color-secondary);
	border-right: 2px solid var(--color-secondary);
	animation: gototop 3s ease infinite;
}
@keyframes gototop{
	0%{ top: 10px; }
	33%{ top: 28px; }
	38%{ top: 10px; }
	43%{ top: 20px; }
	48%{ top: 10px; }
	100%{ top: 10px; }
}
#page_top a::after {
	position: absolute;
	top: 10px;
	right: 0;
	bottom: 0;
	left: 0;
	content: '';
	width: 35px;
	margin: auto;
	border-top: 2px solid var(--color-secondary);
}
@media screen and (min-width: 48em) { /* 768px md */
	#page_top {
		right: 15px;
	}
	#page_top a {
		width: 66px;
		height: 66px;
		border-radius: 33px;
	}
	#page_top a::before {
		top: 15px;
		width: 14px;
		height: 14px;
	}
	#page_top a::after {
		top: 20px;
	}
}

/* ===========================
otayori　お問い合わせ・資料請求
============================== */
::placeholder {
	color: #ccc;
}
#otayori h1 {
	padding: 0 20px;
	font-size: 1.5rem;
	font-weight: 500;
	text-align: center;
	line-height: 1.4;
	color: var(--color-primary);
}
#otayori .caution {
	display: inline-block;
	margin-top: 1em;
	font-size: 90%;
	color: var(--color-accent5);
}
#form {
	margin-top: 50px;
	margin-bottom: 50px;
	padding: 30px 20px;
	background: var(--bg-color-secondary);
	border-radius: 5px;
}
.formset {
	margin: 20px 0 0;
}
.formset label {
	font-size: 0.9375rem;
	line-height: 1.4;
	cursor: pointer;
}
.formset > label span {
	display: inline-block;
	margin-left: 0.5em;
	padding: 0.1em 0.2em;
	font-size: 80%;
	background: var(--color-accent5);
	color: var(--color-outlined);
	border-radius: 2px;
}
.formset input,
.formset textarea {
	display: block !important;
	margin-top: 10px;
	width: 85%;
	font-size: 1rem;
	line-height: 1.6;
}
.formset input:focus,
.formset textarea:focus {
	border-color: var(--color-primary) !important;
}
.input_short {
	width: 70% !important;
}
.input_long {
	width: 100% !important;
}
.formset .privacy_controls {
	padding: 0 0 20px 0;
}
.formset .privacy_controls input:checked + label span::after {
	background-color: var(--color-secondary);
	width: 1rem;
	height: 1rem;
	top: .4rem;
	left: .4rem;
}
.formset .privacy_controls p {
	padding: 10px 0 0 0;
	font-size: 95%;
}
.formset .privacy_controls p a {
	color: #33f;
}
.formset .privacy_controls > input {
	display: none !important;
}
.formset .check_btn_label {
	display: inline-block;
	margin: 20px 0 0;
	padding: 0 0 0 2.5em;
	position: relative;
	cursor: pointer;
	transition: all 0.3s ease;
}
.formset .check_btn_label span {
	width: 1.8rem;
	height: 1.8rem;
	margin: 0 0 0 0.2em;
	position: absolute;
	top: 0;
	left: 0;
	background-color: #fff;
	border: #ccc 1px solid;
	transition: all 0.3s ease;
}
.formset .check_btn_label span::after {
	width: 0rem;
	height: 0rem;
	display: block;
	content: '';
	position: absolute;
	top: .9rem;
	left: .9rem;
	background-color: #ccc;
	transition: all 0.3s ease;
}
.formset .check_btn_label:hover span::after {
	width: 1rem;
	height: 1rem;
	top: .4rem;
	left: .4rem;
}
.formset .precaution-check {
	margin: 15px 0 5px;
	padding: 0 0 15px;
	border: #00aeeb 2px solid;
	border-image: linear-gradient(to bottom right, #b2e7f9, #00aeeb, #00aeeb) 1;
	overflow: hidden;
}
.submit_area {
	padding: 40px 0;
	text-align: center;
	font-size: 125%;
}
.confirm-btn {
	font-weight: 700;
	line-height: 1.5;
	position: relative;
	display: inline-block;
	padding: .7rem 3rem;
	cursor: pointer;
	user-select: none;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	letter-spacing: 0.1em;
	outline: none;
	border: none;
	border-radius: 3px;
	overflow: hidden;
	color: var(--color-outlined);
	background: var(--logo-color-secondary);
	background: var(--logo-color-secondary);
}
.confirm-btn span {
	position: relative;
}
.confirm-btn:before {
	position: absolute;
	top: 0;
	left: 0;
	width: 150%;
	height: 500%;
	content: "";
	transition: all 0.4s ease-in-out;
	transform: translateX(-88%) translateY(-25%) rotate(45deg);
	background: var(--color-primary);
}
.confirm-btn:hover:before {
	transform: translateX(1%) translateY(-25%) rotate(45deg);
}
.otayori-bottom {
	padding: 40px 0;
	text-align: center;
}
.submit_last-btn {
	font-size: 115%;
}
.announcement {
	margin-top: 30px;
	padding: 20px;
	border: var(--color-accent) 2px solid;
	border-radius: 5px;
}
.announcement h2 {
	font-size: 2rem;
	color: var(--color-accent);
}
@media screen and (min-width: 48em) { /* 768px md */
	#otayori h1 {
		font-size: 3rem;
	}
	#form {
		margin-top: 100px;
		margin-bottom: 100px;
		padding: 70px 60px;
	}
	.formset {
		display: flex;
		justify-content: flex-start;
		align-items: flex-start;
	}
	.formset label {
		font-size: 1.125rem;
	}
	.formset > label {
		display: inline-block;
		width: 25%;
		padding: 0.75em 0.75em 0 0;
		text-align: right;
	}
	.formset > label.twolines {
		padding: 0.2em 0.75em 0 0;
	}
	.formset input,
	.formset textarea {
		display: inline-block;
		width: 50%;
		font-size: 1.25rem;
	}
	.input_short {
		width: 35% !important;
	}
	.input_long {
		width: 75% !important;
	}
	.formset .privacy_controls {
		width: 75%;
	}
	.formset .privacy_controls p {
		padding: 10px 0 0 20px;
	}
	.formset .check_btn_label {
		margin: 20px 0 0;
	}
	.submit_area {
		padding: 80px 0;
	}
	.otayori-bottom {
		padding: 80px 0;
	}
}
@media screen and (min-width: 80em) { /* 1280px xl */
	#otayori h1 {
		margin-top: -50px;
	}
}

/* ===========================
フォーム（確認画面等）
============================== */
#formWrap {
	margin: 0 0 70px;
}
#formWrap h1 {
	margin-bottom: 40px;
	font-size: 2rem;
	font-weight: bold;
	text-align: center;
	color: var(--color-primary);
}
table.formTable{
	width:100%;
	margin:30px auto;
	border-collapse:collapse;
}
table.formTable td,table.formTable th{
	border:1px solid #ccc;
	padding:10px;
}
table.formTable th{
	width:30%;
	font-weight:normal;
	background:#efefef;
	text-align:left;
}
p.error_messe{
	margin:5px 0;
	color:red;
}
@media screen and (min-width: 48em) { /* 768px md */
	#formWrap {
		margin: 0 0 140px;
	}
	#formWrap h2 {
		font-size: 2rem;
	}
	table.formTable{
		margin:60px auto;
	}
}
