@charset "UTF-8";
/**
 * /bpkeihiseisan/
 */
:root  {
    --color-Text-Primary: #2D2C2C;
    --color-Text-White: #FFFFFF;
    --color-Main-150: #416902;
    --color-Main-100: #82D20F;
    --color-Main-50: #C1E987;
    --color-Main-20: #E6F6CF;
}
/* β記号だけを特定のフォントで定義する */
@font-face {
	font-family: 'BetaStandard';
	src: local('Arial'), local('Helvetica'); /* 確実に真っ直ぐなフォント */
	unicode-range: U+03B2; /* β記号のみ指定 */
}
html {
	overflow: inherit;
}
body {
    color: var(--color-Text-Primary);
    font-family: 'BetaStandard', 'Noto Sans JP', sans-serif;
    font-size: 16px;
	letter-spacing: 0;
	overflow: inherit;
}
body * {
	box-sizing: border-box;
}
img {
	max-width: 100%;
    vertical-align: middle;
}
a {
	color: inherit;
}
main {
	position: relative;
}
.section {
    position: relative;
    padding: min(calc(80 / 750 * 100vw), 80px) 0;
}
.container {
    position: relative;
	width: calc(100% - min(calc(40 / 750 * 100vw), 40px) * 2);
	max-width: 1200px;
	margin-inline: auto;
}
@media (min-width: 768px) {
	.section {
		padding: 80px 0;
	}
	.container {
		width: calc(100% - 40 * 2);
	}
}

/* section_heading */
.section_heading {
	margin-bottom: min(calc(80 / 750 * 100vw), 80px);
	font-size: min(calc(48 / 750 * 100vw), 48px);
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	font-feature-settings: "palt";
}
@media (min-width: 768px) {
	.section_heading {
		margin-bottom: 80px;
		font-size: min(calc(48 / 1200 * 100vw), 48px);
		line-height: 1.6;
	}
}
.color_main {
	color: var(--color-Main-150);
}

/* header */
.header {
	position: sticky;
    top: 0;
    width: 100%;
	height: 100%;
	background-color: #FFFFFF;
	.header_inner {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: min(calc(32 / 750 * 100vw), 32px) min(calc(40 / 750 * 100vw), 40px);
		.header_logo img {
			width: min(calc(290 / 750 * 100vw), 290px);
			height: inherit;
			margin: 0;
			float: inherit;
		}
		.header_cta {
			.btn {
				display: inline-block;
				margin: 0;
				padding: min(calc(20 / 750 * 100vw), 20px);
				background-color: #FF7800;
				border-radius: min(calc(10 / 750 * 100vw), 10px);
				color: var(--color-Text-White);
				font-size: min(calc(24 / 750 * 100vw), 24px);
				font-weight: 700;
				line-height: 1.0;
				letter-spacing: -.02em;
				transition: .3s;
				&:hover {
					filter: brightness(120%);
				}
			}
		}
	}
}
@media (min-width: 768px) {
	.header {
		.header_inner {
			padding: 32px 40px;
			border-radius: 10px;
			.header_logo img {
				width: 290px;
			}
			.header_cta {
				.btn {
					padding: 20px;
					font-size: 20px;
				}
			}
		}
	}
}

/* footer */
.footer {
	padding: min(calc(80 / 750 * 100vw), 80px) 0;
	background-color: #333333;
	.footer_logo {
		img {
			display: block;
			margin-inline: auto;
			width: min(calc(262 / 750 * 100vw), 262px)
		}
	}
	.footer_list {
		display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		align-items: center;
		gap: min(calc(40 / 750 * 100vw), 40px);
		margin: min(calc(48 / 750 * 100vw), 48px) auto 0;
		width: fit-content;
		li {
			a {
				display: flex;
				flex-wrap: wrap;
				flex-flow: row;
				align-items: center;
				gap: 4px;
				font-size: min(calc(24 / 750 * 100vw), 24px);
				line-height: 1.25;
				color: var(--color-Text-White);
				transition: .3s;
			}
			&:hover {
				opacity: .7;
			}
			.new_tab::after {
				content: "";
				display: inline-block;
				margin-left: .2em;
				width: .75em;
				aspect-ratio: 1;
				background-position: center;
				background-repeat: no-repeat;
				background-size: contain;
				background-image: url(/web/jp/images/pr/icon_new-tab.svg);
			}
		}
	}
	.footer_copyright {
		margin-top: min(calc(48 / 750 * 100vw), 48px);
		color: #999999;
		font-size: min(calc(20 / 750 * 100vw), 20px);
		line-height: 1.0;
		text-align: center;
	}
}
@media (min-width: 768px) {
	.footer {
		padding: 80px 0;
		.footer_logo {
			img {
				width: 262px;
			}
		}
		.footer_list {
			margin: 48px auto 0;
			flex-direction: row;
			justify-content: center;
			gap: 20px;
			li {
				a {
					gap: 4px;
					font-size: 16px;
					line-height: 1.0;
				}
				&:not(:last-child) {
					padding-right: 20px;
					border-right: solid 1px var(--color-Text-White);
				}
				.new_tab::after {
					width: 10px;
				}
			}
		}
		.footer_copyright {
			margin-top: 48px;
			font-size: 12px;
		}
	}
}


/* FV */
.fv {
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	height: min(calc(1666 / 750 * 100vw), 1666px);
	background: url(/web/jp/bpkeihiseisan/images/fv_bg_sp.png) no-repeat top center / cover #FFFFFF;
	.container {
		.fv_content {
			max-width: min(calc(640 / 750 * 100vw), 640px);
			margin-inline: auto;
			padding-top: min(calc(50 / 750 * 100vw), 50px);
			hgroup {
				display: flex;
				flex-direction: column;
				align-items: center;
				gap: min(calc(20 / 750 * 100vw), 20px);
				margin-inline: auto;
				.fv_bubble {
					position: relative;
					padding: .25em 2em;
					border-radius: 999px;
					background-color: var(--color-Text-Primary);
					color: var(--color-Text-White);
					font-size: min(calc(24 / 750 * 100vw), 24px);
					font-weight: 700;
					line-height: 1.2;
					text-align: center;
					&::after {
						content: "";
						position: absolute;
						bottom: 0;
						left: 50%;
						border-style: solid;
						border-width: .5em .4em 0 ;
						border-color: var(--color-Text-Primary) transparent transparent;
						translate: -50% 100%;
					}
				}
				.fv_info01 {
					color :var(--color-Main-150);
					font-size: min(calc(40 / 750 * 100vw), 40px);
					font-weight: 700;
					line-height: 1.2;
					letter-spacing: -.02em;
					text-align: center;
					font-feature-settings: "palt";
				}
				h1 {
					display: flex;
					flex-direction: row;
					flex-wrap: wrap;
					align-items: center;
					justify-content: center;
					gap: min(calc(10 / 750 * 100vw), 10px);
					color :#595757;
					font-size: min(calc(48 / 750 * 100vw), 48px);
					font-weight: 700;
					line-height: 1.6;
					font-feature-settings: "palt";
					img {
						width: min(calc(432 / 750 * 100vw), 432px);
					}
				}
				.fv_info02 {
					width: 100%;
					background-color: var(--color-Main-50);
					color: var(--color-Text-Primary);
					font-size: min(calc(32 / 750 * 100vw), 32px);
					font-weight: 700;
					line-height: 1.4;
					text-align: center;
					font-feature-settings: "palt";
				}
			}
			.fv_lead {
				margin-top: min(calc(40 / 750 * 100vw), 40px) ;
				font-size: min(calc(24 / 750 * 100vw), 24px);
				color: var(--color-Text-Primary);
				line-height: 1.8;
				font-feature-settings: "palt";
			}
		}
	}
}

@media (min-width: 768px) {
	.fv {
		height: min(calc(620 / 1600 * 100vw), 620px);
		background: url(/web/jp/bpkeihiseisan/images/fv_bg_pc.png) no-repeat top center / cover #FFFFFF;
		.container {
			.fv_content {
				padding-top: 0;
				max-width: min(calc(640 / 1600 * 100vw), 640px);
				hgroup {
					gap: min(calc(20 / 1600 * 100vw), 20px);
					.fv_bubble {
						font-size: clamp(14px, calc(24 / 1600 * 100vw), 24px);
					}
					.fv_info01 {
						font-size: min(calc(40 / 1600 * 100vw), 40px);
					}
					h1 {
						gap: min(calc(10 / 1600 * 100vw), 10px);
						font-size: min(calc(48 / 1600 * 100vw), 48px);
						img {
							width: min(calc(432 / 1600 * 100vw), 432px);
						}
					}
					.fv_info02 {
						font-size: min(calc(32 / 1600 * 100vw), 32px);
					}
				}
				.fv_lead {
					margin-top: min(calc(40 / 1600 * 100vw), 40px) ;
					font-size:  clamp(12px, calc(16 / 1600 * 100vw), 16px);
					line-height: 1.6;
				}
			}
		}
	}
}
@media (min-width: 1024px) {
	.fv {
		height: min(calc(620 / 1920 * 100vw), 620px);
		.container {
			.fv_content {
				max-width: min(calc(640 / 1920 * 100vw), 640px);
			}
		}
	}
}
/* section problem */
.problem {
	background-color: #F8FAFB;
    .container {
		.problem_list {
			.problem_list_item {
				padding: min(calc(24 / 750 * 100vw), 24px);
				background-color: #FFFFFF;
				border-radius: min(calc(30 / 750 * 100vw), 30px);
				.problem_list_heading {
					margin-bottom: min(calc(32 / 750 * 100vw), 32px);
					font-size: min(calc(36 / 750 * 100vw), 36px);
					font-weight: 700;
					line-height: 1.6;
					font-feature-settings: "palt";
				}
				.problem_img {
					img {
						display: block;
						margin-inline: auto;
					}
				}
				& + .problem_list_item {
						margin-top: min(calc(64 / 750 * 100vw), 64px);
					}
			}
		}
	}
}
@media (min-width: 768px) {
	.problem {
		.container {
			.section_heading {
				letter-spacing: -.03em;
			}
			.problem_list {
				display: grid;
				grid-template-columns: 1fr 1fr 1fr;
				gap: min(calc(48 / 1200 * 100vw), 48px);
				.problem_list_item {
					display: grid;
					grid-template-rows: subgrid;
					grid-row: span 2;
					gap: 24px;
					padding: 24px 0;
					background-color: #FFFFFF;
					border-radius: 30px;
					.problem_list_heading {
						margin-bottom: 0;
						padding: 0 24px;
						font-size: min(calc(24 / 1200 * 100vw), 24px);
						line-height: 1.4;
					}
					& + .problem_list_item {
						margin-top: 0;
					}
				}
			}
		}
	}
}

/* section solution */
.solution {
	background: url(/web/jp/bpkeihiseisan/images/solution_bg_sp.png) no-repeat top center / cover;
	.container {
		.section_heading {
			margin-bottom: min(calc(40 / 750 * 100vw), 40px);
			.heading_logo {
				display: flex;
				align-items: center;
				flex-wrap: wrap;
				gap: min(calc(8 / 750 * 100vw), 8px);
				margin: 0 auto 8px;
				width: fit-content;
				img {
					width: min(calc(290 / 750 * 100vw), 290px);
				}
				span {
					font-size: min(calc(36 / 750 * 100vw), 36px);
					font-weight: 700;
					line-height: 1;
				}
			}
		}
		.solution_lead {
			margin: 0 auto min(calc(40 / 750 * 100vw), 40px);
			width: fit-content;
			font-size: min(calc(24 / 750 * 100vw), 24px);
			line-height: 1.8;
			text-align: left;
			font-feature-settings: "palt";
		}
		.solution_list {
			.solution_list_item {
				padding: min(calc(40 / 750 * 100vw), 40px);
				background-color: var(--color-Main-20);
				.solution_text {
					margin-bottom: min(calc(40 / 750 * 100vw), 40px);
					.solution_list_heading {
						display: flex;
						flex-wrap: wrap;
						flex-direction: row;
						align-items: center;
						gap: min(calc(10 / 750 * 100vw), 10px);
						margin-bottom: min(calc(20 / 750 * 100vw), 20px);
						padding-bottom: min(calc(20 / 750 * 100vw), 20px);
						border-bottom: 1px solid var(--color-Main-150);
						.point {
							display: flex;
							flex-direction: column;
							align-items: center;
							color: var(--color-Main-150);
							font-family: "Oswald", sans-serif;
							font-optical-sizing: auto;
							font-size: min(calc(24 / 750 * 100vw), 24px);
							font-weight: 700;
							line-height: 1;
							.number {
								padding: 0 .075em;
								font-size: min(calc(58 / 750 * 100vw), 58px);
							}
						}
						h3 {
							font-size: min(calc(32 / 750 * 100vw), 32px);
							font-weight: 700;
							line-height: 1.4;
							font-feature-settings: "palt";
							flex: 1;
						}
					}
					p {
						font-size: min(calc(24 / 750 * 100vw), 24px);
						line-height: 1.8;
						font-feature-settings: "palt";
					}
				}
				.solution_img {
					img {
						width: 100%;
					}
				}
				& + .solution_list_item {
					margin-top: min(calc(40 / 750 * 100vw), 40px);
				}
			}
		}
	}
}
@media (min-width: 768px) {
	.solution {
		background: url(/web/jp/bpkeihiseisan/images/solution_bg_pc.png) no-repeat top center / cover;
		.container {
			.section_heading {
				margin-bottom: 40px;
				.heading_logo {
					gap: 8px;
					margin: 0 auto 8px;
					img {
						width: 290px;
					}
					span {
						font-size: 36px;
					}
				}
			}
			.solution_lead {
				margin: 0 auto min(calc(40/ 1200 * 100vw), 40px);
				font-size: 16px;
				line-height: 1.5;
			}
			.solution_list {
				.solution_list_item {
					display: flex;
					flex-wrap: wrap;
					flex-direction: row;
					align-items: center;
					justify-content: space-between;
					gap: 0;
					padding: min(calc(40/ 1200 * 100vw), 40px) 0 min(calc(40/ 1200 * 100vw), 40px) min(calc(40/ 1200 * 100vw), 40px);
					background-color: var(--color-Main-20);
					.solution_text {
						margin-bottom: 0;
						width: 53%;
						.solution_list_heading {
							gap: 10px;
							margin-bottom: 20px;
							padding-bottom: 20px;
							.point {
								font-size: min(calc(24 / 1200 * 100vw), 24px);
								.number {
									font-size: min(calc(58 / 1200 * 100vw), 58px);
								}
							}
							h3 {
								font-size: min(calc(32 / 1200 * 100vw), 32px);
							}
						}
						p {
							font-size: min(calc(16 / 1200 * 100vw), 16px);
							line-height: 1.6;
						}
					}
					.solution_img {
						width: 43.535%;
					}
					&:nth-child(even) {
						padding-right: min(calc(40/ 1200 * 100vw), 40px);
						padding-left: 0;
						.solution_text {
							order: 2;
						}
						.solution_figure {
							order: 1;
						}
					}
					& + .solution_list_item {
						margin-top: min(calc(40/ 1200 * 100vw), 40px);
					}
				}
			}
		}
	}
}

/* section philosophy */
.philosophy {
	padding: min(calc(1072 / 750 * 100vw), 1072px) 0 min(calc(80 / 750 * 100vw), 80px);
	background: url(/web/jp/bpkeihiseisan/images/philosophy_bg_sp.png), linear-gradient(50deg, #FFFFFF 19.45%, #A7F3D8 52.89%);
	background-position: top center;
	background-repeat: no-repeat;
	background-size: contain;
	.container {
		.philosophy_content {
			padding-top: min(calc(80 / 750 * 100vw), 80px);
			.section_heading {
				margin-bottom: min(calc(40 / 750 * 100vw), 40px);
				padding: .125em 0;
				.heading_logo {
					display: flex;
					align-items: center;
					flex-direction: column;
					gap: min(calc(20 / 750 * 100vw), 20px);
					margin-inline: auto;
					width: fit-content;
					img {
						display: block;
						width: min(calc(482 / 750 * 100vw), 482px);
					}
					span {
						font-size: min(calc(48 / 750 * 100vw), 48px);
					}
				}
			}
			.philosophy_text {
				p {
					font-size: min(calc(24 / 750 * 100vw), 24px);
					line-height: 2.6;
					letter-spacing: .1em;
					font-feature-settings: "palt";
				}
			}
		}
	}
}

@media (min-width: 768px) {
	.philosophy {
		padding: min(calc(127 / 1200 * 100vw), 127px) 0;
		background: url(/web/jp/bpkeihiseisan/images/philosophy_bg_pc.png), linear-gradient(-120deg, #ffffff 34%, #a7f3d8 51%);
		background-position: center center;
		background-size: cover;
		.container {
			.philosophy_content {
				padding-top: 0;
				width: 51%;
				.section_heading {
					margin-bottom: min(calc(40 / 1200 * 100vw), 40px);
					padding: .125em 0;
					.heading_logo {
						flex-direction: row;
						gap: min(calc(16 / 1200 * 100vw), 16px);
						img {
							width: min(calc(290 / 1200 * 100vw), 308px);
						}
						span {
							font-size: min(calc(40 / 1200 * 100vw), 48px);
						}
					}
				}
				.philosophy_text {
					p {
						font-size: min(calc(16 / 1200 * 100vw), 16px);
					}
				}
			}
		}
	}
}

/* cta */
.cta {
	padding: 0;
	display: flex;
	align-items: center;
	height: min(calc(1482 / 750 * 100vw), 1482px);
	background: url(/web/jp/bpkeihiseisan/images/cta_bg_sp.png) no-repeat top center / cover #0FBA93;
	.container {
		.section_heading {
			margin-bottom: 0;
			color: var(--color-Text-White);
		}
		.cta_inner {
			margin-top: min(calc(24 / 750 * 100vw), 24px);
			.btn_cta {
				display: block;
				margin-inline: auto;
				padding: min(calc(40 / 750 * 100vw), 40px) min(calc(100 / 750 * 100vw), 100px);
				width: fit-content;
				background-color: #FF7800;
				border-radius: 999px;
				color: var(--color-Text-White);
				font-size: min(calc(32 / 750 * 100vw), 32px);
				font-weight: 700;
				transition: 0.3s;
				&:hover {
					filter: brightness(120%);
				}
			}
		}
	}
}
@media (min-width: 768px) {
	.cta {
		height: min(calc(565 / 1920 * 100vw), 565px);
		background: url(/web/jp/bpkeihiseisan/images/cta_bg_pc.png) no-repeat top center / cover;
		.container {
			.section_heading {
				margin-bottom: min(calc(24 / 1920 * 100vw), 24px);
				font-size: min(calc(48 / 1920 * 100vw), 48px);
			}
			.cta_inner {
				margin-top: min(calc(24 / 1920 * 100vw), 24px);
				.btn_cta {
					padding: min(calc(40 / 1920 * 100vw), 40px) min(calc(100 / 1920 * 100vw), 100px);
					font-size: min(calc(32 / 1920 * 100vw), 32px);
				}
			}
		}
	}
}



/* section solution */
.section.constructionbanner a:hover{
	opacity: 0.8;
}