@charset "utf-8";

/*-------------------------------------------*/
/*	Reset Default Settings
/*-------------------------------------------*/
body, h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd {
	margin: 0;
	padding: 0;
}
a {
	display: inline-block;
	cursor: pointer;
	text-decoration: none;
	color: inherit;
	transition: opacity 0.3s;
}
img {
	max-width: 100%;
	max-height: 100%;
	image-rendering: -webkit-optimize-contrast;
	-webkit-backface-visibility: hidden;
	vertical-align:top;
}
ul, li {
	list-style: none;
	margin: 0;
	padding: 0;
}
input, button, textarea, select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
}
textarea {
	resize: vertical;
}
input[type=checkbox], input[type=radio] {
	display: none;
}
input[type=submit], input[type=button], label, button, select {
	cursor: pointer;
}

/*-------------------------------------------*/
/*	Display Control
/*-------------------------------------------*/
.pc {
	display: block;
}
.sp {
	display: none;
}
@media screen and (max-width: 767px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
}

/*-------------------------------------------*/
/*	Font setting
/*-------------------------------------------*/
html {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
	font-size: 18px;
	font-weight: 500;
	color: #000;
	letter-spacing: 0.01em;
	line-height: 2;
}
.roboto {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: italic;
  font-variation-settings:
    "wdth" 100;
}
h2 {
	font-size: 1.94rem;
	font-weight: 600;
	color: #009a64;
	line-height: 1.57em;
	margin-bottom: 1.22em;
	padding: 0 0 1.22em 3.5em;
	position: relative;
	border-bottom: 1px solid #000;
}
h2::before {
	display: block;
	content: "";
	width: 2.57em;
	aspect-ratio: 1 / 1;
	position: absolute;
	top: 0.2em;
	left: 0;
	background: url(../img/common/icon_h2.svg);
	background-size: contain;
}
@media screen and (max-width: 1536px) {
	html {
		font-size: 16px;
	}
}
@media screen and (max-width: 767px) {
	html {
		font-size: 15px;
	}
	h2 {
		font-size: 1.125rem;
	}
}

/*-------------------------------------------*/
/*	Site width
/*-------------------------------------------*/
.wrap {
	width: 100%;
	margin: 0 auto;
	padding: 0;
	position: relative;
}
.inner {
	width: 100%;
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 20px;
	position: relative;
}
.inner.full {
	max-width: 100%;
	padding: 0;
}
.common #fv .inner {
	padding-left: 10.625%;
}
@media screen and (max-width: 1536px) {
	.inner {
		max-width: 1000px;
	}
	.common #fv .inner {
	}
}
@media screen and (max-width: 1366px) {
	.common #fv .inner {
	}
}
@media screen and (max-width: 1024px) {
	.common #fv .inner {
	}
}
@media screen and (max-width: 767px) {
	.inner {
		padding: 0 15px;
	}
	.common #fv .inner {
		padding-left: 3.2%;
	}
}

/*-------------------------------------------*/
/*	Common Setting
/*-------------------------------------------*/
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}
body {
	max-width: 1920px;
	margin: 0 auto;
	overflow-x: hidden;
	background: #fff;
}
.bg_stripe {
	background-color: rgba(51,51,51,0.05);
	background-image: url(../img/common/bg_stripe.svg);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
	.bg_stripe {
		background-image: url(../img/common/bg_stripe_sp.svg);
		background-size: contain;
		background-position: center top;
		background-repeat: repeat-y;
	}
}

/*-------------------------------------------*/
/*	Animation
/*-------------------------------------------*/
.fadeUpTrigger {
	opacity: 0;
}
.fadeUp {
	animation-name: fadeUpAnime;
	animation-duration: 0.5s;
	animation-delay: 0.4s;
	animation-fill-mode: forwards;
	opacity: 0;
}
@keyframes fadeUpAnime{
  from {
    opacity: 0;
		transform: translateY(50px);
  }
  to {
    opacity: 1;
		transform: translateY(0);
  }
}

/*-------------------------------------------*/
/*	Header
/*-------------------------------------------*/
header {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 90px;
	background: #fff;
}
header a, header img {
	height: 48px;
}
@media screen and (max-width: 1536px) {
	header {
		height: 72px;
	}
	header a, header img {
		height: 38px;
	}	
}
@media screen and (max-width: 1366px) {
	header {
		height: 64px;
	}
	header a, header img {
		height: 34px;
	}	
}
@media screen and (max-width: 767px) {
	header {
		height: 50px;
	}
}

/*-------------------------------------------*/
/*	Footer
/*-------------------------------------------*/
footer {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 80px;
	position: relative;
	background: #009a64;
}
footer p {
	font-size: 12px;
	color: #fff;
	text-align: center;
}
.btn_pagetop {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 54px;
	height: 100%;
	position: absolute;
	top: 0;
	right: 30px;
	z-index: 2;
}
.btn_pagetop a {
	width: 54px;
	height: 54px;
	background-color: #ffe600;
	background-image: url(../img/common/icon_arrow.svg);
	background-size: 18px;
	background-position: center;
	background-repeat: no-repeat;
	border-radius: 50%;
	transition: all 0.3s ease;
}
.btn_pagetop a:hover {
	background-position: top 30% center;
}
@media screen and (max-width: 767px) {
	footer p {
		font-size: 10px;
	}
	.btn_pagetop {
		width: 42px;
		right: 10px;
	}
	.btn_pagetop a {
		width: 42px;
		height: 42px;
	}
}
/*-------------------------------------------*/
/*	Top page
/*-------------------------------------------*/
body.home #fv .wrap{
	width: 100%;
	aspect-ratio: 1 / 0.448;
	background-image: url(../img/top/fv_bg-min.jpg);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
body.home #fv .inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	height: 100%;
}
body.home #fv h1 {
	width: 35%;
	margin: 0;
}
body.home #fv h1 img {
	width: 100%;
	object-fit: contain;
}
body.home #fv .inner .scroll {
	padding-top: 70px;
	position: relative;
	font-size: 24px;
	font-weight: 600;
	color: #fff;
}
body.home #fv .inner .scroll::before {
	display: block;
	content: "";
	width: 1.5px;
	height: 1.5em;
	margin: auto;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2em;
  animation: scroll 2s infinite;
  background-color: #fff;
}
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
body.home #fv .inner .fv_asset {
	display: block;
	width: 35%;
	position: absolute;
	bottom: -17%;
	left: 0;
	right: 0;
	margin: 0 auto;
}
body.home #cont01 .wrap {
	margin: 250px 0 120px;
}
body.home #cont01 p {
	text-align: center;
	font-size: 20px;
}
body.home #cont02 .wrap {
	padding: 160px 0;
}
body.home #cont02 .fadeUpTrigger {
	max-width: 1320px;
	margin: 90px auto 0;
}
body.home #cont02 .fadeUpTrigger:first-child {
	margin-top: 0;
}
body.home #cont02 .fadeUpTrigger a {
	position: relative;
}
body.home #cont02 .fadeUpTrigger a::before {
	display: block;
	content: "";
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: -50%;
	background: #fff;
}
body.home #cont02 .fadeUpTrigger a > img {
	position: relative;
}
body.home #cont02 .fadeUpTrigger a .num {
	width: auto;
	height: 12.78%;
	position: absolute;
	top: -6.39%;
	left: 0;
	z-index: 2;
}
body.home #cont02 .fadeUpTrigger a .txt {
	width: auto;
	height: 28.14%;
	position: absolute;
	top: 35.93%;
	left: 0;
}
body.home #cont02 .fadeUpTrigger a .arrow {
	display:inline-block;
	width: 124px;
	position: absolute;
	bottom: 20.85%;
	left: 0;
}
body.home #cont02 .fadeUpTrigger a .arrow::after{
	display: block;
	content: "";
	width: 100%;
	height: 16px;
	position: absolute;
	bottom: 0;
	left: 0;
	border: none;
	border-right: 2px solid #009a64;
	border-bottom: 1px solid #009a64;
	transform: skew(45deg);
	transition: .3s;
}
body.home #cont02 .fadeUpTrigger a:hover .arrow::after{
	width: 130%;
}
@media screen and (max-width: 1536px) {
	body.home #fv .inner .scroll {
		padding-top: 54px;
		font-size: 20px;
	}
	body.home #cont01 .wrap {
		margin: 220px 0 100px;
	}
	body.home #cont01 p {
		font-size: 18px;
	}
	body.home #cont02 .fadeUpTrigger {
		max-width: 1000px;
		margin: 70px auto 0;
	}
}
@media screen and (max-width: 1024px) {
	body.home #cont01 .wrap {
		margin: 130px 0 70px;
	}
	body.home #cont02 .wrap {
		padding-top: 90px;
	}
	body.home #cont02 .fadeUpTrigger {
		max-width: 767px;
		padding: 0 20px;
	}
}
@media screen and (max-width: 767px) {
	body.home #fv h1 {
		width: auto;
    height: 65%;
	}
	body.home #fv .inner .fv_asset {
		width: 60%;
    bottom: -38%;
	}
	body.home #cont01 .wrap {
		margin: 90px 0 36px;
	}
	body.home #cont01 p {
		font-size: 15px;
	}
	body.home #cont02 .wrap {
		padding: 40px 0 80px;
	}
	body.home #cont02 .fadeUpTrigger {
		margin-top: 50px;
		padding: 0 25px;
	}
	body.home #cont02 .fadeUpTrigger:first-child {
		margin-top: 0;
	}
	body.home #cont02 .fadeUpTrigger a .num {
		height: 15%;
		top: -7.5%;
	}
	body.home #cont02 .fadeUpTrigger a .arrow {
		width: 52px;
		bottom: 18px;
	}
	body.home #cont02 .fadeUpTrigger a .arrow::after {
		height: 12px;
	}
}

/*-------------------------------------------*/
/*	Pages
/*-------------------------------------------*/
/* 全下層ページ共通 */
.common #fv .wrap {
	padding-top: 140px;
	padding-bottom: 170px;
}
.common #fv .inner div {
	width: 100%;
	position: relative;
}
.common #fv .main_img {
	display: block;
	position: relative;
}
.common #fv .num {
	width: auto;
	height: 21%;
	padding-left: 12.23%;
	position: absolute;
	top: -10.5%;
	left: 0;
	z-index: 2;
}
.common #fv .txt {
	width: auto;
	height: 35%;
	padding-left: 12.23%;
	position: absolute;
	top: 32.5%;
	left: 0;
}
.h2_block {
	margin-bottom: 90px;
}
.h2_block p {
	margin-bottom: 1.75em;
	text-align: justify;
}
.h2_block img {
	margin-bottom: 1.75em;
}
.profile .inner {
	padding-top: 90px; /* .h2_block のmargin-bottomと同じ値*/
	border-top: 1px solid #000;
}
.profile .flex_item:first-child {
	width: 52%;
}
.profile .flex_item:last-child {
	width: 48%;
	padding-left: 5.4em;
	padding-right: 1.6em;
}
.profile p {
	font-size: 1.11rem;
	text-align: justify;
}
.profile p.name {
	font-size: 2.94rem;
	color: #009a64;
	margin-bottom: 0.15em;
}
.profile .name span {
	display: inline-block;
	font-size: 1.88rem;
	padding-left: 0.6em;
}
.profile span.border {
	display: inline-block;
	font-size: 0.83rem;
	margin-bottom: 0.15em;
	padding-left: 2.66em;
	color: #009a64;
	position: relative;
}
.profile span.border::before {
	display: block;
	content: "";
	width: 2em;
	height: 1px;
	position: absolute;
	top: 50%;
	left: 0;
	background-color: #009a64;
}
.profile .btn {
	padding: 224px 0 124px;
}
.profile .btn a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 72px;
	background: #009a64;
	border-radius: 36px;
}
.profile .btn a span {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	padding-left: 4.16em;
	position: relative;
}
.profile .btn a span::before {
	display: block;
	content: "";
	width: 50px;
	height: 50px;
	position: absolute;
	top: calc(50% - 25px);
	left: 0;
	background-color: #ffe600;
	background-image: url(../img/common/icon_arrow.svg);
	background-size: 18px;
	background-position: center;
	background-repeat: no-repeat;
	border-radius: 50%;
	transform: rotate(-90deg);
	transition: all 0.3s ease;
}
.profile .btn a:hover span::before {
	transform: translateX(-15px) rotate(-90deg);
}
.flex {
	display: flex;
	justify-content: space-between;
	margin-bottom: 1.75em;
}
.flex .flex_item {
	width: 50%;
}
.parts01 .flex_item:last-child {
	padding-left: 2.7em;
}
.parts02 .flex_item:first-child {
	width: 52%;
}
.parts02 .flex_item:last-child {
	width: 48%;
	padding-left: 3.66em;
}
.parts03 {
	padding: 2.77rem 2.22rem;
	background: #fff;
}
.parts03 .flex_item:first-child {
	padding-right: 1.5em;
}
.parts03 .flex_item p:last-child,
.parts03 .flex_item img {
	margin-bottom: 0;
}
/* 個別調整 */
body.vol01 .parts02 .flex_item:first-child,
body.vol03 .parts02 .flex_item:first-child {
	width: 62.5%;
}
body.vol01 .parts02 .flex_item:last-child,
body.vol03 .parts02 .flex_item:last-child {
	width: 37.5%;
	padding-left: 3.66em;
}

@media screen and (max-width: 1536px) {
	.profile .btn a {
		height: 58px;
		border-radius: 29px;
	}
	.profile .btn a span {
		padding-left: 4.16em;
	}
	.profile .btn a span::before {
		width: 40px;
		height: 40px;
		top: calc(50% - 20px);
	}
}
@media screen and (max-width: 1366px) {
	.common #fv .wrap {
		padding: 120px 0 100px;
	}
	.profile .btn {
		padding: 180px 0 100px;
	}
}
@media screen and (max-width: 1024px) {
}
@media screen and (max-width: 767px) {
	.common #fv .wrap {
		padding: 70px 0 60px;
	}
	.common #fv .num {
		height: 14%;
    top: -7%;
		padding-left: 15.56%;
	}
	.common #fv .txt {
		height: 50%;
    top: 25%;
		padding-left: 15.56%;
	}
	.h2_block {
		margin-bottom: 60px;
	}
	.flex {
		flex-direction: column;
	}
	.flex .flex_item {
		width: 100% !important;
	}
	.parts01 .flex_item:last-child,
	.parts02 .flex_item:last-child {
		padding: 0 !important;
	}
	.parts03 {
		padding: 1.25rem;
	}
	.parts03 .flex_item:first-child {
		padding: 0;
	}
	.profile .inner {
		padding-top: 50px;
	}
	.profile p.name {
		font-size: 2.2rem;
	}
	.profile p.name + span {
		width: 70%;
		margin: 0 auto;
	}
	.profile .name span {
		font-size: 1.3rem;
	}
	.profile .btn {
		max-width: 327px;
		margin: 0 auto;
		padding: 80px 0 50px;
	}
	.profile .btn a {
		height: 72px;
		border-radius: 36px;
	}
	/* 個別調整 */
	body.vol01 .parts02 .flex_item:last-child,
	body.vol03 .parts02 .flex_item:last-child {
		padding: 0;
	}
	body.vol02 .flex.parts02 {
		flex-direction: column-reverse;
	}
}

/*-------------------------------------------*/
/*	404
/*-------------------------------------------*/
