#key {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	top: 110px;
	background: url(../img/key_visual.jpg) 50% 0% / 100% auto no-repeat;
	margin-bottom: 92px;
	padding: 0px 20px;
	width: 100%;
	aspect-ratio: 1280 / 447;
	z-index: 1;
	overflow: hidden;
}

#key::after {
	content: "";
	display: block;
	position: absolute;
	top: 0px;
	left: 0px;
	background-color: rgba(46, 46, 46, 0.2);
	width: 100%;
	height: 100%;
	animation: animShadow 0.8s;
	z-index: 5;
}

@media (max-width: 767px) {
	#key {
		top: 96px;
		background-size: auto 100%;
		margin-bottom: 96px;
		aspect-ratio: 16 / 9;
	}
}

#key h2 {
	position: relative;
	color: #ffffff;
	font-size: clamp(2.4rem, 1.3199999999999996rem + 2.2500000000000004vw, 4.2rem);
	text-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px;
	animation: fadeIn 1.5s, left2right 1.5s;
	z-index: 10;
}

#key h2 span {
	white-space: nowrap;
}

#key aside {
	position: relative;
	padding-top: 5px;
	color: #ffffff;
	font-size: clamp(1.8rem, 1.4400000000000002rem + 0.7499999999999999vw, 2.4rem);
	text-shadow: rgba(0, 0, 0, 0.16) 0px 3px 6px;
	text-align: center;
	animation: fadeIn 1.5s, right2left 1.5s;
	z-index: 10;
}

@keyframes animShadow {
	0% {
		left: 100%;
		clip-path: polygon(35% 0%, 100% 0%, 100% 100%, 0% 100%);
	}

	100% {
		left: -60%;
		width: 160%;
		clip-path: polygon(35% 0%, 100% 0%, 100% 100%, 0% 100%);
	}
}

@keyframes fadeIn {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes left2right {
	0% {
		top: -20px;
		left: -60px;
	}

	100% {
		top: 0px;
		left: 0px;
	}
}

@keyframes right2left {
	0% {
		top: 20px;
		left: 60px;
	}

	100% {
		top: 0px;
		left: 0px;
	}
}

#business {
	text-align: center;
}

#business h3 {
	padding: 50px 0px 60px;
	font-weight: normal;
	font-size: clamp(1.8rem, 1.4400000000000002rem + 0.7499999999999999vw, 2.4rem);
}

#business p:not(:last-of-type) {
	padding-bottom: 30px;
}

#plan {
	position: relative;
	background-color: var(--bg-color-main);
}

#plan::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0px;
	left: 0px;
	background-color: rgba(255, 255, 255, 0.25);
	mix-blend-mode: normal;
	width: 100%;
	height: 0px;
}

#plan h2 {
	color: var(--text-color-title-reverse);
}

#plan ul {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	position: relative;
	margin-inline: auto;
	padding-top: 60px;
	max-width: var(--max-width);
	z-index: 1;
}

#plan ul li {
	padding-bottom: 30px;
	width: calc((100% / 3) - 24px);
}

@media (max-width: 767px) {
	#plan ul {
		gap: 20px;
	}

	#plan ul li {
		width: calc(50% - 10px);
	}
}

@media (max-width: 480px) {
	#plan ul li {
		width: 100%;
	}
}

#plan ul li dl {
	color: #ffffff;
}

#plan ul li dl::before {
	content: "";
	display: block;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: cover;
	border-radius: 2px;
	width: 100%;
	aspect-ratio: 15 / 8;
}

#plan ul li dl.manners::before {
	background-image: url(../img/plan_manners.svg);
}

#plan ul li dl.communication::before {
	background-image: url(../img/plan_communication.svg);
}

#plan ul li dl.thinking::before {
	background-image: url(../img/plan_thinking.svg);
}

#plan ul li dl.claim::before {
	background-image: url(../img/plan_claim.svg);
}

#plan ul li dl.excel::before {
	background-image: url(../img/plan_excel.svg);
}

#plan ul li dl.generation_ai::before {
	background-image: url(../img/plan_generation_ai.svg);
}

#plan ul li dl.sales_ai::before {
	background-image: url(../img/plan_sales_ai.svg);
}

#plan ul li dl dt {
	padding: 20px 0px;
	font-weight: bold;
	font-size: clamp(1.8rem, 1.6800000000000002rem + 0.24999999999999997vw, 2rem);
	text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.4);
	text-align: center;
}

#plan ul li dl dd {
	text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.4);
}

#price > div {
	margin-inline: auto;
	padding-top: 60px;
	max-width: var(--max-width);
}

#price > div dl {
	display: flex;
	border: solid 1px var(--border-color-table);
	width: 100%;
}

#price > div dl:first-of-type {
	border-top-right-radius: 2px;
	border-top-left-radius: 2px;
}

#price > div dl:last-of-type {
	border-bottom-right-radius: 2px;
	border-bottom-left-radius: 2px;
}

#price > div dl:not(:last-of-type) {
	border-bottom: none;
}

#price > div dl dt {
	display: flex;
	align-items: center;
	background-color: var(--bg-color-main);
	padding: 10px 20px;
	width: 25%;
	color: var(--text-color-title-reverse);
	font-weight: bold;
	font-size: 1.6rem;
}

#price > div dl dd {
	width: 75%;
}

#price > div dl dd div {
	padding: 10px 20px;
	text-align: center;
}

#price > div dl dd div h4 {
	display: inline-block;
	border-bottom: double 3px var(--text-color-main);
	padding-left: 8px;
	font-size: clamp(2.2rem, 1.6000000000000003rem + 0.7812499999999998vw, 2.6rem);
}

#price > div dl dd div h4::after {
	content: "\FF08\7A0E\8FBC\FF09";
	font-size: 1.4rem;
}

#price > div dl dd div aside {
	font-size: 1.8rem;
}

#price > div dl dd ul {
	display: flex;
	border-top: solid 1px var(--border-color-table);
}

#price > div dl dd ul li {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: rgba(150, 144, 27, 0.8);
	padding: 10px 20px;
	color: #ffffff;
	font-weight: bold;
	text-align: center;
}

#price > div dl dd ul li:not(:last-of-type) {
	border-right: solid 1px var(--border-color-table);
}

#price > div dl dd ul li.ex {
	background-color: #eeeeee;
	font-weight: normal;
}

@media (max-width:793px) {
	#price > div dl {
		flex-direction: column;
		border-bottom: solid 1px var(--border-color-table)!important;
	}

	#price > div dl:not(:last-of-type) {
		margin-bottom: 20px;
	}

	#price > div dl dt,
	#price > div dl dd {
		width: 100%;
	}

	#price > div dl dt {
		justify-content: center;
		font-size: 1.8rem;
		text-align: center;
	}
}

@media (max-width:591px) {
	#price > div dl dd ul li.ex {
		display: none;
	}
}

#company {
	background: url(../img/illustration_01.jpg) #f7f7f7 50% 0% / 100% auto no-repeat;
}

#company::before {
	content: "";
	display: block;
	width: 100%;
	aspect-ratio: 128 / 55;
}

@media (max-width:480px) {
	#company {
		background-size: auto calc(900dvw / 16);
		padding-top: calc((900dvw / 16) + 60px);
	}

	#company::before {
		display: none;
	}
}

#company dl {
	display: flex;
	flex-wrap: wrap;
	border-top: solid 1px var(--border-color);
	margin-inline: auto;
	margin-top: 60px;
	max-width: var(--max-width);
}

#company dl dt {
	border-bottom: solid 1px var(--border-color);
	padding: 30px 0px;
	width: 30%;
}

#company dl dd {
	border-bottom: solid 1px var(--border-color);
	padding: 30px 0px;
	width: 70%;
}

@media (max-width: 480px) {
	#company dl dt {
		border-bottom: none;
		padding-bottom: 10px;
		font-weight: bold;
		width: 100%;
	}

	#company dl dd {
		padding-top: 0px;
		width: 100%;
	}
}

#contact aside {
	padding-top: 40px;
	font-size: 1.2em;
	text-align: center;
}

#contact form {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-inline: auto;
	padding-top: 40px;
	max-width: var(--max-width);
}

#contact form dl {
	padding-bottom: 10px;
}

#contact form dl dt {
	padding: 10px 0px;
}

#contact form dl dd {
	padding-bottom: 10px;
}

#contact form p.btn {
	padding-top: 20px;
}

#contact form label.required::after {
	content: "\5FC5\9808";
	margin-left: 1em;
	color: #f17077;
}

#contact form input,
#contact form textarea {
	border: solid 1px var(--border-color);
	border-radius: 2px;
	padding: 4px 6px;
	width: 100%;
}

#thanks {
	margin-inline: auto;
	padding-top: 160px;
	max-width: var(--max-width);
}

#thanks div {
	padding-top: 40px;
}

#thanks div p {
	text-align: center;
}

#thanks div p.btn {
	padding-top: 40px;
}

#thanks div p small {
	font-size: 0.9em;
}