@charset "utf-8";

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
HOME
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- ヘッダー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-header {
	padding: 0 0 10px;
}

.home-header-intro {
	position: relative;
	z-index: 0;
	padding: 50px 0 70px;
	background: url(../img/home/mv.png) top 95px right no-repeat, linear-gradient(var(--color-green) 235px, #fff 235px);
	text-align: left;
}

.bnr_present {
	position: absolute;
	right: -20px;
	top: 110px;
}

@media (min-width: 768px) and (max-width: 1400px) {
	.bnr_present {
		width: 380px
	}

	.home-header-intro {
		background: url(../img/home/mv.png) top 95px right -200px / 930px auto no-repeat, linear-gradient(var(--color-green) 235px, #fff 235px);
	}
}

@media (min-width: 768px) and (max-width: 1080px) {
	.bnr_present {
		width: 300px
	}
}

.home-header .inner {
	max-width: 1600px;
}

.home-header .copy {
	margin-bottom: 8px;
	color: #fff;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.1em;
}

.home-header-logo-container {
	display: inline-flex;
	position: relative;
	width: 260px;
	height: 29px;
	margin-bottom: 22px;
	border-top-right-radius: 50px;
	border-bottom-right-radius: 50px;
	background: #fff;
	justify-content: flex-start;
	align-items: center;
	line-height: 1;
	border: solid 3px var(--color-green);
	overflow: visible;
}

.home-header-logo-container::after {
	position: absolute;
	top: -3px;
	left: -100%;
	content: "";
	width: 100%;
	background: #fff;
	display: block;
	height: calc(100% + 6px);
	border-top: solid 3px var(--color-green);
	border-bottom: solid 3px var(--color-green);
}

.home-header-logo {
	display: flex;
	width: 45%;
	justify-content: center;
	align-items: center;
}

.home-header-logo a:hover {
	opacity: 0.7;
}

.home-header-logo img {
	display: block;
}

.home-header .section-description {
	font-weight: 700;
	font-size: 1rem;
}

.home-header-ul {
	display: flex;
	position: relative;
	z-index: 1;
	margin: -45px 10px -20px;
	justify-content: center;
	flex-flow: wrap;
}

.home-header-li {
	margin: 0 10px 20px;
}

.home-header-container {
	overflow: hidden;
	position: relative;
	margin-bottom: 5px;
	padding: 5px;
	border-radius: 20px;
	background: #fff;
}

.home-header-li .image {
	border-radius: 15px;
}

.home-header-li .paypay {
	display: flex;
	position: absolute;
	bottom: 5px;
	left: 50%;
	padding: 0.8em 3em 0em;
	border-radius: 30px 30px 0px 0px;
	background: rgba(255, 255, 255, 1);
	font-weight: 500;
	font-size: 0.8rem;
	letter-spacing: 0.05em;
	white-space: nowrap;
	transform: translateX(-50%);
	align-items: center;
}

.home-header-li .paypay::before {
	display: inline-block;
	width: 2.5em;
	height: 1.5em;
	margin-right: 0.8em;
	border-right: 1px solid;
	background: url("../img/common/paypay.svg") left center no-repeat;
	background-size: 1.5em 1.5em;
	content: "";
}

.home-header-detail {
	display: flex;
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	min-height: 100%;
	padding: 30px 8.4%;
	background: rgba(255, 255, 255, 0.94);
	transition: 0.4s ease-in-out;
	flex-flow: column;
	justify-content: center;
	align-items: center;
}

.home-header-detail .heading {
	margin-bottom: 30px;
	color: var(--color-green-dark);
	font-size: 3.5rem;
	letter-spacing: 0.07em;
}

.home-header-detail .heading-number {
	margin-right: 0.2em;
	font-weight: 500;
	font-size: 3.9rem;
	font-family: var(--font-english);
	letter-spacing: normal;
	vertical-align: -1px;
}

.home-header-detail .title {
	width: 100%;
	margin-bottom: 25px;
	background: var(--color-green-dark);
	color: #fff;
	font-weight: 700;
	font-size: 2rem;
	letter-spacing: 0.12em;
	text-align: center;
}

.home-header-detail .description {
	font-weight: 500;
	font-size: 1.4rem;
	line-height: 2.1;
}

.home-header-detail .introduce {
	display: flex;
	flex-wrap: wrap;
	margin: 30px auto;
}

.home-header-detail .introduce img {
	width: 200px;
	margin-top: 5px;
}

.home-header-detail .introduce a:hover {
	opacity: 0.6;
}

.home-header-detail .introduce a+p {
	width: calc(100% - 200px);
	padding-left: 20px;
	font-size: 1.4rem;
	font-weight: 500;
}

.home-header-detail .introduce_link {
	background: #00aca5;
	border: solid 2px #00aca5;
	color: #fff;
	border-radius: 30px;
	padding: 10px 25px;
}

.home-header-detail .introduce_link:hover {
	background: #fff;
	color: #00aca5;
}

.home-header-li .period {
	font-weight: 500;
	font-size: 1.1rem;
	letter-spacing: 0.05em;
	text-align: center;
}

.home-header-li .period-number {
	display: inline-flex;
	width: 18px;
	height: 18px;
	margin-right: 0.7em;
	border-radius: 50%;
	background: var(--color-green);
	color: #fff;
	font-size: 0.9rem;
	font-family: var(--font-english);
	justify-content: center;
	align-items: center;
}

@media (min-width: 768px) {
	.home-header {
		padding-bottom: 70px;
	}

	.home-header-intro {
		padding: 150px 0 40px;
	}

	.home-header .copy {
		margin-bottom: 8px;
		font-size: 1.85rem;
	}

	.home-header-logo-container {
		width: 524px;
		height: 94px;
		margin-bottom: 45px;
	}

	.home-header-logo-container::after {}

	.home-header .section-description {
		font-size: 1.6rem;
		line-height: 2;
	}

	.home-header-ul {
		margin: -180px -20px -10px;
	}

	.home-header-li {
		margin: 0 20px 20px;
	}

	.home-header-container {
		margin-bottom: 12px;
		border: solid 10px #fff;
		border-radius: 35px;
		padding: 0;
	}

	.home-header-container .home-header-detail {
		display: none;
	}

	.home-header-li .image {
		border-radius: 30px;
		transition: all .3s;
	}

	.home-header-li .image:hover {
		transform: scale(1.05);
		filter: brightness(1.05);
		cursor: pointer;
	}

	.home-header-li .paypay {
		bottom: -1px;
		font-size: 1.2rem;
	}

	.home-header-detail {
		/* display: none; */
	}

	.home-header-detail>* {
		max-width: 600px;
	}

	/*
.home-header-detail {
	padding: 0 50px 10px;
	transform: translateY(100%);
}

.home-header-container:hover .home-header-detail {
	transform: translateY(0);
}
*/

	.home-header-detail .heading {
		margin-bottom: 10px;
		font-size: 3rem;
	}

	.home-header-detail .heading-number {
		font-size: 3.6rem;
	}

	.home-header-detail .title {
		margin-bottom: 20px;
		line-height: 1.4;
	}

	.home-header-detail .description {
		line-height: 1.9;
	}

	.home-header-li .period {
		font-size: 1.6rem;
	}

	.home-header-li .period-number {
		width: 32px;
		height: 32px;
		font-size: 1.5rem;
	}
}

@media (max-width: 767.9px) {
	.home-header-logo-company img {
		width: 80px;
	}

	.home-header-logo-sbenergy img {
		width: 74px;
		position: relative;
		top: 1px;
	}

	.home-header .page-heading img {
		width: 284px;
	}

	.home-header-container {
		cursor: pointer;
	}

	.home-header-li .image {
		width: 260px;
	}

	.home-header-container .home-header-detail {
		display: none;
	}

	.home-header-detail .heading-number {
		display: inline;
		text-align: center;
	}

	.home-header-detail .introduce {
		flex-direction: column;
		margin: 20px auto 30px;
	}

	.home-header-detail .introduce a {
		text-align: center;
		margin-bottom: 20px;
	}

	.home-header-detail .introduce a+p {
		width: 100%;
		padding-left: 0;
	}

	.header-logo-container>div.company_logo {
		margin-left: 10px;
		padding-left: 9px;
	}

	.site_logo{
		height: 50px;
	}

	.company_logo>img:nth-of-type(1) {
		width: 60px;
		margin-bottom: 2px;
		margin-top: 0;
	}

	.company_logo a img {
		width: 140px;
		height: 32px;
		object-fit: contain;
	}

	.home-header .copy {
		text-align: center;
	}

	.home-header .copy span {
		display: block;
	}

	.home-header-logo-container {
		margin-left: auto;
		margin-right: auto;
		border-radius: 30px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.home-header-logo-container::after {
		display: none;
	}

	.page-heading {
		margin-top: max(260px, 68vw);
		text-align: center;
	}

	.home-header-intro {
		position: relative;
		z-index: 0;
		padding: 50px 0 10px;
		background: url(../img/home/mv_sp.png) top 136px right / 80% auto no-repeat, linear-gradient(var(--color-green) 175px, #fff 175px);
		text-align: left;
	}

	.bnr_present {
		width: 35%;
		right: auto;
		left: 10px;
		top: 150px;
	}

	.home-header .section-description {
		max-width: 284px;
		;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 30px;
	}

	.home-header .section-description br {
		display: none;
	}

	.home-header-duration {
		max-width: 284px;
		;
		margin-left: auto;
		margin-right: auto;
	}

	.button-blue {
		margin: 25px auto 25px;
	}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- 世界観について
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-world {
	background: var(--color-green);
}

.home-world img {}

.home-world .inner {
	max-width: none;
	display: flex;
	justify-content: center;
	gap: 0 100px;
}

.home-world .world_img {
	width: 800px;
	position: relative;
	top: -50px;
	margin-left: -230px;
}

.home-world .world_text {
	width: 520px;
	color: #fff;
	padding-top: 45px;
}

.home-world .world_text .world-heading-sub {
	font-size: 26px;
	margin-bottom: 20px;
	font-weight: bold;
	letter-spacing: 0.09em;
}

.home-world .world_text span {
	color: var(--color-yellow);
}

.home-world .world_text .world-heading {
	font-size: 62.5px;
	color: var(--color-yellow);
	margin-bottom: 15px;
}

.home-world .world_text span {
	color: var(--color-yellow);
}

.home-world .world_text p:not([class])+p:not([class]) {
	margin-top: 0;
}

.home-world .world-description {
	margin-top: 55px;
	letter-spacing: 0.08em;
	font-size: 16px;
	line-height: 2.25;
}

@media (min-width: 768px) and (max-width: 1400px) {
	.home-world .inner {
		gap: 0 60px;
	}

	.home-world .world_img {
		width: 650px;
		margin-left: -100px;
	}

	.home-world .world_text .world-heading-sub {
		font-size: 22px;
	}

	.home-world .world_text .world-heading {
		font-size: 54px;
	}

	.home-world .world-description {
		margin-top: 30px;
	}
}

@media (max-width: 767.9px) {
	.home-world .inner {
		flex-direction: column-reverse;
	}

	.home-world .world_text {
		width: 100%;
		padding-top: 10px;
	}

	.home-world .world_img {
		width: 100%;
		margin: 0 auto;
		position: static;
	}

	.home-world .world_text .world-heading-sub {
		font-size: 16px;
		margin-bottom: 10px;
		font-weight: bold;
		letter-spacing: 0.09em;
	}

	.home-world .world_text .world-heading {
		font-size: 37.5px;
		margin-bottom: 11px;
	}

	.home-world .world_text span {
		color: var(--color-yellow);
	}

	.home-world .world_text p:not([class])+p:not([class]) {
		margin-top: 0;
	}

	.home-world .world-description {
		margin-top: 30px;
		margin-bottom: 30px;
		letter-spacing: 0.05em;
		font-size: 11px;
		line-height: 2.25;
	}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- yOURについて
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-about {
	padding-bottom: 5px;
}

.home-about .inner {
	position: relative;
	z-index: 0;
	max-width: 1190px;
}

.home-about [class^="shape"] {
	position: absolute;
	z-index: -1;
}

.home-about .shape01 {
	top: 19%;
	left: -1%;
}

.home-about .shape02 {
	top: 38%;
	right: -4%;
	transform: scaleX(-1);
}

.home-about .shape03 {
	bottom: 3%;
	left: -7%;
}

.home-about .shape04 {
	bottom: -9%;
	right: -7%;
}

.home-about .copy {
	display: block;
	margin: 0 auto 35px;
	text-align: center;
}

.home-about .logo {
	display: block;
	margin: 0 auto 25px;
}

.home-about .section-description {
	margin-bottom: 40px;
	line-height: 2;
	letter-spacing: 0.06em;
}

.home-about-li .heading {
	margin-bottom: 5px;
	color: var(--color-green-dark);
	font-size: 1.8rem;
	letter-spacing: 0.05em;
}

.home-about-li .description {
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.04em;
}

.home-about .illust {
	display: block;
	margin: 0 auto;
}

.home-about-control {
	position: relative;
	z-index: 1;
	padding: 20px;
	border: 3px solid #7fe1dc;
	border-radius: 25px;
	background: #fff;
}

.home-about-control .heading {
	margin-bottom: 10px;
	color: var(--color-green-dark);
	font-size: 1.8rem;
	letter-spacing: 0.07em;
}

.home-about-control .description {
	margin-bottom: 1.5em;
	letter-spacing: 0.04em;
}

.home-about-control .source {
	font-size: 1rem;
}

@media (min-width: 768px) {
	.home-about {
		padding-bottom: 130px;
	}

	.home-about .section-heading {
		margin-bottom: 55px;
	}

	.home-about .copy {
		margin-bottom: 70px;
	}

	.home-about .logo {
		margin-bottom: 55px;
	}

	.home-about .section-description {
		margin-bottom: 95px;
		font-size: 1.7rem;
		line-height: 2.4;
		letter-spacing: 0.09em;
	}

	.home-about-li .heading {
		margin-bottom: 10px;
		font-size: 2.1rem;
	}

	.home-about-li .description {
		font-size: 1.4rem;
		letter-spacing: 0.07em;
	}

	.home-about-control {
		display: flex;
		max-width: 912px;
		margin: 0 auto;
		padding: 35px 4.2%;
		border-width: 6px;
		border-radius: 35px;
		align-items: center;
	}

	.home-about-control .text {
		margin-right: 30px;
	}

	.home-about-control .heading {
		margin-bottom: 25px;
		font-size: 2.1rem;
	}

	.home-about-control .description {
		font-size: 1.6rem;
	}

	.home-about-control .source {
		font-size: 1.2rem;
	}

	.home-about-control .image {
		width: 44%;
		flex: none;
	}
}

@media (min-width: 1112px) {
	.home-about-ul {
		display: flex;
		background: url("../img/home/about-arrow.svg") center 60px no-repeat;
		background-size: contain;
	}

	.home-about-li {
		width: 200px;
	}

	.home-about-li:nth-child(1) {
		margin: 300px 15px 0 0;
	}

	.home-about-li:nth-child(2) {
		margin: 75px 95px 0 0;
	}

	.home-about-li:nth-child(3) {
		margin-right: 95px;
	}

	.home-about-li:nth-child(4) {
		margin: 75px 15px 0 0;
	}

	.home-about-li:nth-child(5) {
		margin-top: 300px;
	}

	.home-about-li .image {
		margin-bottom: 15px;
	}

	.home-about-li .heading {
		text-align: center;
	}

	.home-about .illust {
		margin-top: -295px;
	}
}

@media (max-width: 1111.9px) {
	.home-about-ul {
		display: table;
		margin: 0 auto;
	}

	.home-about-li {
		display: flex;
		margin-bottom: 30px;
		align-items: center;
	}

	.home-about-li .image {
		position: relative;
		margin-right: 5%;
		flex: none;
	}

	.home-about-li:not(:last-child) .image::after {
		position: absolute;
		bottom: -25px;
		right: 0;
		left: 0;
		width: 24px;
		height: 38px;
		margin: auto;
		background: url("../img/home/s/about-arrow.svg") center center no-repeat;
		background-size: contain;
		content: "";
	}
}

@media (max-width: 767.9px) {
	.home-about .section-heading img {
		height: 21px;
	}

	.home-about .copy {
		width: 236px;
	}

	.home-about .logo {
		width: 154px;
	}

	.home-about .section-description {
		text-align: left;
	}

	.home-about .section-description span {
		display: inline;
	}

	.home-about-li .image {
		width: 92px;
	}

	.home-about .illust {
		width: 73%;
	}

	.home-about-control .heading {
		text-align: center;
	}

	.home-about-control .source {
		margin-bottom: 25px;
	}

	.home-about-control .image {
		display: block;
		max-width: 80%;
		min-width: 220px;
		margin: 0 auto;
	}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- ビジネスの構造について
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-structure {
	padding-bottom: 0;
}

.home-structure .section-description {
	margin-bottom: 50px;
	line-height: 2;
	letter-spacing: 0.06em;
	text-align: left;
}

.home-structure .annotation {
	margin-top: 12px;
	font-weight: 500;
	font-size: 1rem;
	letter-spacing: 0.02em;
}

.home-structure .background-image {
	position: relative;
	z-index: -1;
	text-align: center;
}

@media (min-width: 768px) {
	.home-structure .inner {
		display: flex;
		justify-content: space-between;
	}

	.home-structure .text {
		width: 33%;
	}

	.home-structure .section-heading {
		margin-bottom: 40px;
		text-align: left;
	}

	.home-structure .copy {
		margin-bottom: 45px;
	}

	.home-structure .section-description {
		font-size: 1.7rem;
	}

	.home-structure .image {
		width: 62%;
	}

	.home-structure .annotation {
		font-size: 1.3rem;
	}

	.home-structure .background-image {
		margin-top: -100px;
	}
}

@media (max-width: 767.9px) {
	.home-structure .text {
		margin-bottom: 40px;
	}

	.home-structure .section-heading img {
		height: 21px;
	}

	.home-structure .copy {
		display: block;
		width: 210px;
		margin: 0 auto 27px;
	}

	.home-structure .image {
		max-width: 400px;
		margin: 0 auto 30px;
	}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- 募集・実施期間
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-period {
	position: relative;
	padding-top: 40px;
	background: var(--color-green-light);
}

.home-period::before {
	position: absolute;
	bottom: 100%;
	right: 0;
	left: 0;
	height: 3.3vw;
	background: url("../img/home/period-separator.svg") center bottom no-repeat;
	background-size: 100% 100%;
	content: "";
}

.home-period .inner {
	position: relative;
	z-index: 0;
	max-width: 1010px;
}

.home-period .illust {
	position: absolute;
	bottom: 107%;
	left: 11%;
	z-index: 1;
	width: 34%;
	min-width: 122px;
	max-width: 200px;
}

.home-period [class^="shape"] {
	position: absolute;
	z-index: -1;
}

.home-period .shape01 {
	right: -7.5%;
	top: 32.5%;
	transform: scaleX(-1);
}

.home-period .shape02 {
	left: -8%;
	bottom: 6%;
}

.home-period .shape03 {
	right: -10.5%;
	bottom: -4%;
}

.home-period-container {
	position: relative;
	margin-top: 40px;
	padding-bottom: 20px;
	border: 3px solid #7fe1dc;
	border-radius: 25px;
	background: #fff;
}

.home-period-container::before {
	position: absolute;
	right: 0;
	bottom: calc(100% - 1px);
	left: 0;
	width: 230px;
	height: 40px;
	margin: auto;
	border-top: 3px solid #7fe1dc;
	border-right: 3px solid #7fe1dc;
	border-left: 3px solid #7fe1dc;
	border-radius: 20px 20px 0 0;
	background: inherit;
	content: "";
}

.home-period-container .inner {
	max-width: 824px;
}

.home-period-dl {
	margin-bottom: 25px;
}

.home-period-dt {
	display: flex;
	margin-top: 20px;
	padding: 0 0.6em;
	border-radius: 5px;
	background: var(--color-green-dark);
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.04em;
	align-items: center;
}

.home-period-dt::before {
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 0.4em;
	border: 4px solid;
	border-radius: 50%;
	content: "";
}

.home-period-dd {
	display: flex;
	padding: 15px 0;
	border-bottom: 2px dotted var(--color-green-dark);
	align-items: center;
}

.home-period-dd .heading {
	padding: 0 1.3em;
	border-radius: 15px;
	background: var(--color-green-dark);
	color: #fff;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.02em;
	flex: none;
}

.home-period-dd .date {
	display: flex;
	font-weight: 500;
	font-size: 1.7rem;
	line-height: 1;
	letter-spacing: 0.05em;
	align-items: center;
}

.home-period-dd .date::after {
	width: 21px;
	height: 18px;
	margin: 0 15px;
	background: url("../img/common/arrow-green.svg") center center no-repeat;
	background-size: contain;
	content: "";
}

.home-period-dd .date-end {
	order: 3;
}

.home-period-dd .number {
	font-size: 2.8rem;
	font-family: var(--font-english);
}

.home-period .ul {
	letter-spacing: 0.02em;
}

@media (min-width: 768px) {
	.home-period {
		padding: 25px 0 130px;
	}

	.home-period::before {
		height: 3.5vw;
	}

	.home-period .illust {
		bottom: 90%;
		left: 5%;
		width: 20vw;
		max-width: 308px;
	}

	.home-period-container {
		padding-bottom: 40px;
		border-width: 5px;
		border-radius: 45px;
	}

	.home-period-container::before {
		width: 430px;
		border-width: 5px;
	}

	.home-period .section-heading {
		margin-bottom: 67px;
	}

	.home-period-dt {
		margin-top: 40px;
		border-radius: 10px;
		font-size: 1.9rem;
	}

	.home-period-dt::before {
		width: 20px;
		height: 20px;
		border-width: 6px;
	}

	.home-period-dd {
		padding: 29px 0;
	}

	.home-period-dd .heading {
		font-size: 1.8rem;
	}

	.home-period-dd .date {
		font-size: 2.2rem;
	}

	.home-period-dd .date::after {
		width: 23px;
		height: 20px;
	}

	.home-period-dd .number {
		font-size: 3.5rem;
	}

	.home-period .ul {
		letter-spacing: 0.06em;
	}
}

@media (min-width: 896px) {
	.home-period-dd .heading {
		margin-right: 20px;
	}
}

@media (min-width: 1112px) {
	.home-period .illust {
		bottom: 106%;
		left: -2.5%;
	}
}

@media (min-width: 1700px) {
	.home-period::before {
		height: 60px;
	}
}

@media (max-width: 895.9px) {
	.home-period-dd {
		flex-flow: column;
	}

	.home-period-dd .heading {
		margin-bottom: 15px;
	}
}

@media (max-width: 767.9px) {
	.home-period .section-heading {
		margin-top: -20px;
	}

	.home-period-dd .year {
		display: block;
	}

	.home-period-dd .year .number {
		font-size: 1.9rem;
	}

	.home-period .ul {
		font-size: 1rem;
	}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- 参加方法・応募資格
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-entry {
	font-weight: 500;
}

.home-entry .inner {
	position: relative;
}

.home-entry .illust {
	position: absolute;
	top: -130px;
	right: 40px;
	width: 19.5%;
}

.home-entry-heading {
	margin: 2em 0 0.5em;
	color: var(--color-green-dark);
	font-size: 1.8rem;
	letter-spacing: 0.1em;
}

.home-entry-heading::before {
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-right: 0.3em;
	border: 5px solid;
	border-radius: 50%;
	vertical-align: -0.1em;
	content: "";
}

.home-entry-container {
	margin-bottom: 20px;
	padding: 27px 20px;
	border-radius: 25px;
	background: var(--color-green-light);
}

.home-entry .heading {
	margin-bottom: 1.5em;
	color: var(--color-green-dark);
	font-size: 1.6rem;
	letter-spacing: 0.03em;
	text-align: center;
}

.home-entry-li {
	counter-increment: number;
}

.home-entry-li .image {
	position: relative;
	border: 1.5px solid var(--color-green-dark);
	border-radius: 20px;
	background: #fff;
}

.home-entry-li:not(:last-child) .image::after {
	position: absolute;
	top: calc(100% + 12px);
	left: 0;
	width: 20px;
	height: 17px;
	margin: auto;
	background: url("../img/common/arrow-green.svg") center center no-repeat;
	background-size: contain;
	content: "";
}

.home-entry-registration02 img {
	transform: translateY(-2%);
}

.home-entry-flow04 img {
	width: 105%;
	max-width: none;
}

.home-entry-li .description {
	margin-top: 5px;
}

.home-entry-li .description::before {
	display: flex;
	width: 26px;
	height: 26px;
	margin-bottom: 5px;
	border-radius: 50%;
	background: var(--color-green-dark);
	color: #fff;
	font-weight: 700;
	font-family: var(--font-english);
	content: counter(number);
	justify-content: center;
	align-items: center;
}

.home-entry-li .annotation {
	font-size: 1rem;
}

.home-entry-dt {
	margin-bottom: 1.5em;
	padding-bottom: 0.3em;
	border-bottom: 2px solid;
}

.home-entry-dd {
	letter-spacing: 0.05em;
}

.home-entry-dd li {
	margin-bottom: 1.1em;
	padding-left: 1.5em;
}

.home-entry-dd li::before {
	color: var(--color-green-dark);
	content: "●";
}

@media (min-width: 768px) {
	.home-entry {
		padding: 120px 0 140px;
	}

	.home-entry .illust {
		top: -240px;
	}

	.home-entry-heading {
		font-size: 2.6rem;
	}

	.home-entry-heading::before {
		width: 24px;
		height: 24px;
		border-width: 7px;
	}

	.home-entry-container {
		margin-bottom: 40px;
		padding-right: 3%;
		padding-left: 3%;
	}

	.home-entry .heading {
		font-size: 2.2rem;
	}

	.home-entry-ul {
		display: flex;
		justify-content: space-between;
	}

	.home-entry-li {
		position: relative;
		width: 22%;
	}

	.home-entry-li .image {
		margin-bottom: 15px;
		border-radius: 30px;
	}

	.home-entry-li:not(:last-child) .image::after {
		top: 0;
		bottom: 0;
		left: 105%;
		width: 9%;
		height: 9%;
	}

	.home-entry-li .description::before {
		position: absolute;
		top: -8px;
		left: -8px;
		width: 40px;
		height: 40px;
		font-size: 2.1rem;
	}

	.home-entry-li .annotation {
		font-size: 1.1rem;
	}

	.home-entry-dl {
		margin-bottom: 130px;
	}

	.home-entry-dd {
		font-size: 1.8rem;
	}
}

@media (max-width: 767.9px) {
	.home-entry-li {
		display: flex;
		margin-bottom: 40px;
		align-items: flex-start;
	}

	.home-entry-li .image {
		width: 44%;
		max-width: 160px;
		margin-right: 6%;
		flex: none;
	}

	.home-entry-li:not(:last-child) .image::after {
		right: 0;
		transform: rotate(90deg);
	}
}

@media (max-width: 567.9px) {
	.home-entry .illust {
		display: none;
	}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- よくあるご質問
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-faq {
	background: var(--color-green-light);
}

.home-faq .inner {
	max-width: 1072px;
}

.home-faq-header {
	display: flex;
	margin-bottom: 30px;
	justify-content: center;
	align-items: center;
}

.home-faq .illust {
	max-width: 25%;
	flex: none;
}

.home-faq .section-description {
	margin: 0 4%;
	letter-spacing: 0.04em;
}

.home-faq-dt {
	display: flex;
	position: relative;
	min-height: 74px;
	margin-top: 12px;
	padding: 10px 50px;
	border: 1.5px solid var(--color-green-dark);
	border-radius: 10px;
	font-weight: 500;
	background: #fff;
	cursor: pointer;
	transition: 0.3s ease-in-out;
	align-items: center;
}

.home-faq-dd {
	display: none;
	position: relative;
	margin: 20px 0 40px;
	padding: 0 50px;
}

.home-faq-dt::before,
.home-faq-dd::before {
	display: flex;
	position: absolute;
	top: 0;
	left: 15px;
	width: 26px;
	height: 26px;
	padding-left: 0.2em;
	border-radius: 50%;
	font-weight: 500;
	font-family: var(--font-english);
	justify-content: center;
	align-items: center;
}

.home-faq-dt::before {
	bottom: 0;
	margin: auto;
	background: var(--color-green-dark);
	color: #fff;
	content: "Q.";
}

.home-faq-dt:hover {
	border-color: #fff;
	color: var(--color-green-dark);
}

.home-faq-dd::before {
	background: #fff;
	color: var(--color-green-dark);
	content: "A.";
}

.home-faq-toggle::before,
.home-faq-toggle::after {
	position: absolute;
	top: 0;
	right: 15px;
	bottom: 0;
	width: 12px;
	height: 0;
	margin: auto;
	border-top: 2px solid;
	content: "";
	transition: 0.3s ease-in-out;
}

.home-faq-dt:not(.open) .home-faq-toggle::after {
	transform: rotate(-90deg);
}

.home-faq-dt:hover .home-faq-toggle::before,
.home-faq-dt:hover .home-faq-toggle::after {
	border-color: var(--color-green-dark);
}

.home-faq-button {
	position: relative;
}

.home-faq-button::before,
.home-faq-button::after {
	position: absolute;
	top: 0;
	right: 10px;
	bottom: 0;
	width: 12px;
	height: 0;
	margin: auto;
	border-top: 2px solid;
	content: "";
	transition: 0.3s ease-in-out;
}

.home-faq-button:not(.open)::after {
	transform: rotate(-90deg);
}

.home-faq-button:hover::before,
.home-faq-button:hover::after {
	border-color: var(--color-green-dark);
}

@media (min-width: 768px) {
	.home-faq .section-heading {
		margin-bottom: -9%;
	}

	.home-faq .section-description {
		margin: 8% 5% 0;
		font-size: 1.8rem;
	}

	.home-faq-dl {
		margin-bottom: 50px;
		font-size: 1.8rem;
	}

	.home-faq-dt {
		min-height: 100px;
		margin-top: 15px;
		padding: 15px 90px 15px 110px;
		border-radius: 15px;
	}

	.home-faq-dd {
		margin: 30px 0 60px;
		padding: 0 90px 0 110px;
	}

	.home-faq-dt::before,
	.home-faq-dd::before {
		left: 35px;
		width: 48px;
		height: 48px;
		margin-right: 20px;
		font-size: 2.4rem;
	}

	.home-faq-dd::before {
		top: -6px;
	}

	.home-faq-toggle::before,
	.home-faq-toggle::after {
		right: 40px;
		width: 14px;
	}

	.home-faq-button::before,
	.home-faq-button::after {
		right: 20px;
	}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- お問い合わせ
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-contact {
	text-align: center;
}

.home-contact .company {
	display: table;
	margin: 0 auto 10px;
	padding: 0 1.8em;
	/*	border: 1.5px solid; */
	color: var(--color-green-dark);
	font-weight: 500;
	font-size: 1.2rem;
	line-height: 1.2;
}

.home-contact .tel {
	display: inline-flex;
	color: var(--color-green-dark);
	font-weight: 700;
	font-size: 2.8rem;
	font-family: var(--font-english);
	line-height: 1;
	letter-spacing: 0.05em;
	align-items: center;
}

.home-contact .tel::before {
	display: inline-block;
	width: 31px;
	height: 31px;
	margin-right: 5px;
	border-radius: 50%;
	background: url("../img/common/tel.svg") center center no-repeat var(--color-green-dark);
	background-size: 15px 15px;
	content: "";
}

.home-contact .hour {
	color: var(--color-green-dark);
	font-weight: 500;
	line-height: 0.5;
	letter-spacing: 0.05em;
}

.home-contact-button {
	position: relative;
	padding-left: 1.5em;
}

.home-contact-button svg {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 10px;
	margin: auto;
	fill: #fff;
}

.home-contact-button:hover svg {
	fill: var(--color-green-dark);
}

@media (min-width: 768px) {
	.home-contact .section-description {
		font-size: 2rem;
		text-align: center;
	}

	.home-contact .company {
		font-size: 2rem;
	}

	.home-contact .tel {
		font-size: 4.6rem;
	}

	.home-contact .tel::before {
		width: 50px;
		height: 50px;
		margin-right: 18px;
		background-size: 25px 25px;
	}

	.home-contact-button svg {
		left: 15px;
	}
}

@media (max-width: 767.9px) {
	.home-contact .section-description {
		text-align: center;
	}
	.home-contact .hour {
		font-size: 1rem;
	}

	.home-contact-button svg {
		width: 12px;
	}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- ー協賛団体ー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.home-support {
	padding: 30px 0 0;
	border-top: 1.5px solid #99dedb;
}

.home-support .inner {
	max-width: 1240px;
}

.home-support-ul {
	display: flex;
	margin-bottom: 20px;
	flex-flow: wrap;
	justify-content: space-between;
}

.home-support-li {
	width: 49%;
	margin-bottom: 10px;
}

.home-support-li a {
	display: flex;
	height: 43px;
	padding: 0 1em;
	border: 1.5px solid #99dedb;
	border-radius: 10px;
	font-weight: 500;
	font-size: 1.1rem;
	line-height: 1.4;
	text-align: center;
	justify-content: center;
	align-items: center;
}

.home-support-li a:hover {
	background: var(--color-green-light);
}

@media (min-width: 568px) {
	.home-support-li {
		width: 24%;
	}
}

@media (min-width: 768px) {
	.home-support {
		padding-top: 40px;
	}

	.home-support-ul {
		margin-bottom: 50px;
	}

	.home-support-li {
		margin-bottom: 15px;
	}

	.home-support-li a {
		height: 78px;
		border-radius: 15px;
		font-size: 1.6rem;
	}
}

@media (max-width: 767.9px) {
	.home-support .section-heading img {
		height: 16px;
	}
}
