@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
.mainVisual {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100dvh;
}
.mainVisual img {
	width: 100%;
}
.mainVisual .title {
	position: absolute;
	opacity: 0;
	left: 8.4vw;
	top: 18.7rem;
	font-size: 6rem;
	font-weight: 900;
	letter-spacing: -0.1rem;
	line-height: 1;
	-webkit-writing-mode : tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: tb-rl;
	writing-mode: vertical-rl;
	z-index: 1;
	animation: fadein 3s ease forwards;
}
@keyframes fadein {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
.mainVisual .snsBox {
	position: absolute;
	left: 3.5vw;
	bottom: 4.5rem;
	z-index: 1;
}
#main {
	margin-left: 50vw;
	padding: 9rem 4rem;
	position: relative;
	width: 37vw;
	max-width: 48rem;
	min-width: 40rem;
	z-index: 1;
	background: #00C54C;
	box-shadow: 0.5rem 0 1rem rgba(0, 0, 0, 0.05), -0.5rem 0 1rem rgba(0, 0, 0, 0.05);
}
#main p {
	margin-bottom: 2.8rem;
	line-height: 1.83;
	letter-spacing: -0.09rem;
}
#main p .bgTxt {
	padding-bottom: 0.3rem;
	display: inline-block;
	color: #2FBE68;
	line-height: 1;
	background-color: #fff;
}
#main .tag {
	margin: 0 auto 2.4rem;
	padding: 0.8rem;
	width: fit-content;
	min-width: 14.6rem;
	color: #2FBE68;
	font-size: 2.6rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	border-radius: 5rem;
	background-color: #fff;
}
#main h2 {
	margin: 0 -0.5rem 3.7rem;
	color: #fff;
	font-size: 6rem;
	font-weight: 900;
	font-feature-settings: "palt";
	text-align: center;
}
#main .name {
	margin-bottom: 0;
	font-size: 1.6rem;
	font-weight: 500;
	text-align: right;
}
#main .name img {
	margin: 0 -1.8rem 0 auto;
	width: 16.5rem;
	display: block;
}
#main .inner {
	margin-top: 12.2rem;
}
#main h3 {
	margin: 0 auto 3rem;
	padding-bottom: 0.1rem;
	width: fit-content;
	font-size: 3rem;
	letter-spacing: -0.12rem;
	font-weight: 900;
	border-bottom: 4px solid #fff;
}
#main h4 {
	margin-bottom: 1.3rem;
	font-size: 2.6rem;
	font-weight: 900;
	line-height: 1.39;
	letter-spacing: -0.13rem;
}
#main .txtList li {
	letter-spacing: -0.09rem;
	line-height: 1.33;
}
#main .txtList li:before {
	content: "● ";
}
#main .txtList li:not(:last-child) {
	margin-bottom: 2.4rem;
}
#main .subBox:not(:last-child) {
	margin-bottom: 2.4rem;
	padding-bottom: 4.2rem;
	border-bottom: 1px solid #fff;
}
#main .pageTop {
	display: none;
	z-index: 10;
	position: sticky;
	bottom: 2rem;
	margin: 0 auto;
	text-align: right;
}
#main .pageTop a {
	width: 6.4rem;
	height: 6.4rem;
	position: relative;
	display: inline-block;
}
#main .pageTop a img {
	transition: .3s;
}
#main .pageTop .over {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	opacity: 0;
}
@media all and (hover: hover) and (min-width: 641px) {
	#main .pageTop a:hover .out {
		opacity: 0;
	}
	#main .pageTop a:hover .over {
		opacity: 1;
	}
}
@media all and (min-width: 641px) and (max-height: 760px) {
	.mainVisual .title {
		top: 22vh;
		font-size: 7vh;
	}
}
@media all and (min-width: 641px) and (max-width: 1320px) {
	#main h2 {
		font-size: 5.3rem;
	}
}
@media all and (min-width: 641px) and (max-width: 1220px) {
	.mainVisual .title {
		top: 13vw;
  		font-size: 4.918vw;
	}
	.mainVisual .snsBox {
		bottom: auto;
		top: calc(42vw + 6.5rem);
	}
}
@media all and (min-width: 991px) and (max-width: 1220px) and (max-height: 760px) {
	.mainVisual .title {
		top: 17vh;
		font-size: 6.5vh;
	}
	.mainVisual .snsBox {
		top: auto;
		bottom: 4.5rem;
	}
}
@media all and (min-width: 641px) and (max-width: 990px) {
	.mainVisual {
		position: relative;
		height: auto;
	}
	.mainVisual .snsBox {
		top: 47vw;
		bottom: auto;
		width: 34.694vw;
  		padding: 1.02vw 1.02vw 1.837vw;
	}
	.mainVisual .snsBox .ttl {
		font-size: 2.449vw;
	}
	.mainVisual .snsBox .sns {
		gap: 0 2.041vw;
	}
	.mainVisual .snsBox .sns img {
		height: 5.102vw;
	}
	#main {
		margin: 0 20rem 0 0;
		width: auto;
		max-width: inherit;
	}
}
@media all and (max-width: 640px) {
	.mainVisual {
		position: relative;
		height: auto;
	}
	.mainVisual .title {
		left: 4.5rem;
		top: 25%;
		letter-spacing: -0.03rem;
		font-size: 4.2rem;
	}
	.mainVisual .snsBox {
		left: 3.1rem;
		top: auto;
		bottom: 2.3rem;
	}
	#main {
		margin: 0;
		padding: 7rem 3.2rem 11.5rem;
		min-width: inherit;
		width: auto;
		max-width: inherit;
		background-color: #fff;
		box-shadow: none;
	}
	#main p {
		margin-bottom: 2.2rem;
		color: #222;
		letter-spacing: -0.07rem;
	}
	#main p .bgTxt {
		color: #fff;
		background-color: #00C54C;
	}
	#main .tag {
		margin-bottom: 2rem;
		padding: 0.6rem;
		min-width: 11.5rem;
		color: #fff;
		font-size: 2rem;
		background-color: #00C54C;
	}
	#main h2 {
		margin-bottom: 2.8rem;
		color: #00C54C;
		font-size: 4.7rem;
	}
	#main .name {
		font-size: 1.3rem;
		text-align: center;
	}
	#main .name img {
		margin: 0.8rem auto 0;
		width: 17.5rem;
	}
	#main .inner {
		margin-top: 7.5rem;
	}
	#main h3 {
		margin-bottom: 2.4rem;
		color: #222;
		font-size: 2.3rem;
		border-bottom: 3px solid #00C54C;
	}
	#main h4 {
		margin-bottom: 1.1rem;
		color: #00C54C;
		font-size: 2rem;
		letter-spacing: -0.1rem;
	}
	#main .txtList li {
		color: #222;
		letter-spacing: -0.07rem;
		line-height: 1.3;
	}
	#main .txtList li:not(:last-child) {
		margin-bottom: 2rem;
	}
	#main .subBox:not(:last-child) {
		margin-bottom: 1.8rem;
		padding-bottom: 3.3rem;
		border-bottom: 1px solid #00C54C;
	}
	#main .pageTop {
		position: fixed;
		bottom: 2rem;
		margin: 0;
		right: 2rem;
	}
	#main .pageTop a {
		width: 5.5rem;
		height: 5.5rem;
	}
}