@charset "UTF-8";

/*reason
----------------------------------------*/
.reason {
	margin: 10.3rem 0 10.9rem;
}
.reason h2 {
	margin: 0 auto 3.9rem;
	font-size: 2.6rem;
	font-weight: 500;
	color: #6A9383;
	position: sticky;
	top: 13rem;
}
.reason_inner {
	max-width: 132rem;
	margin: 0 auto;
}
.reason_item {
	display: flex;
	align-items: center;
	flex-direction: row-reverse;
	background: #fff;
	position: sticky;
	top: 20.8rem;
}
.reason_item + .reason_item {
	margin-top: 5.1rem;
}
.reason_item figure {
	width: 50%;
}
.reason_item_box {
	width: 50%;
	padding: .3rem 9.2rem 0;
	position: static;
}
.reason_item_box h3 {
	font-size: 2rem;
	letter-spacing: .05em;
	font-weight: 500;
	line-height: 1.3;
	margin-bottom: 3.9rem;
}
.reason_item_box p {
	font-size: 1.4rem;
	letter-spacing: .05em;
	line-height: 1.5714;
}
.reason_item_num {
	position: absolute;
	top: 2.1rem;
	left: 3rem;
	font-size: 3rem;
	line-height: 1.2;
	color: #6A9383;
}
@media only screen and (max-width: 768px) {
	.reason {
		margin: 8.5rem 0 9.2rem;
	}
	.reason h2 {
		margin: 0 auto 4.2rem;
		line-height: 1.2308;
		position: relative;
		top: auto;
	}
	.reason_inner {
		max-width: 34rem;
	}
	.reason_item {
		display: block;
		position: relative;
		top: auto;
	}
	.reason_item + .reason_item {
		margin-top: 3rem;
	}
	.reason_item figure {
		width: auto;
	}
	.reason_item_box {
		width: auto;
		padding: 7.9rem 3.4rem 2.7rem;
		position: relative;
	}
	.reason_item_box h3 {
		margin-bottom: 1.6rem;
	}
	.reason_item_num {
		top: 2.5rem;
		left: 3.5rem;
	}
}

/*wedding_inner
----------------------------------------*/
.wedding {
	padding-bottom: 15rem;
}
.wedding_inner {
	width: 132rem;
	margin: 0 auto;
}
.wedding_ttl {
	display: flex;
	margin-bottom: 6.2rem;
}
.wedding_ttl h2 {
	width: 50%;
	font-size: 2.6rem;
	font-weight: 500;
	color: #6A9383;
}
.wedding_ttl_box {
	flex: 1;
	padding: .6rem 0 0 1rem;
}
.wedding_ttl_box h3 {
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: .05em;
	line-height: 1.3;
	margin-bottom: 3.7rem;
}
.wedding_ttl_box p {
	font-size: 1.4rem;
	letter-spacing: .05em;
	line-height: 1.5714;
}
.wedding_table table {
	width: 100%;
	border-collapse: collapse;
}
.wedding_table th {
	background: #9C9C9C;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: .05em;
	padding: 1.3rem;
	border: .1rem solid rgba(201, 199, 199, 0.4);
}
.wedding_table th:first-child {
	width: 25.7rem;
}
.wedding_table .wedding_table_green {
	background: #6A9383;
	width: 53.2rem;
}
.wedding_table tbody th {
	text-align: left;
	font-size: 1.4rem;
	line-height: 1.4286;
	padding-left: 3rem;
}
.wedding_table tbody td {
	background: #fff;
	padding: 3.4rem 4.6rem;
	font-size: 1.4rem;
	letter-spacing: .05em;
	line-height: 1.4286;
	border: .1rem solid rgba(201, 199, 199, 0.4);
}
.wedding_table tbody td span {
	font-size: 78%;
	vertical-align: middle;
}
@media only screen and (max-width: 768px) {
	.wedding {
		padding-bottom: 12rem;
	}
	.wedding_inner {
		width: 34rem;
	}
	.wedding_ttl {
		display: block;
		margin-bottom: 5.7rem;
	}
	.wedding_ttl h2 {
		width: auto;
		line-height: 1.2308;
		margin-bottom: 3.6rem;
	}
	.wedding_ttl_box {
		padding: 0;
	}
	.wedding_ttl_box h3 {
		margin-bottom: 3.6rem;
	}
	.wedding_comparison h3 {
		font-size: 1.4rem;
		font-weight: 500;
		letter-spacing: .05em;
		margin-bottom: 1.4rem;
	}
	.wedding_comparison dt {
		background: #6A9383;
		color: #fff;
		font-size: 1.4rem;
		letter-spacing: .05em;
		padding: 1.9rem 2rem;
	}
	.wedding_comparison dd + dt {
		margin-top: 1rem;
	}
	.wedding_comparison dt::before,
	.wedding_comparison dt::after {
		content: '';
		display: block;
		width: 1.5rem;
		height: .1rem;
		background: #fff;
		position: absolute;
		top: 0;
		bottom: 0;
		right: 2rem;
		margin: auto 0;
	}
	.wedding_comparison dt:not(.open)::after {
		transform: rotate(90deg);
	}
	.wedding_comparison dd {
		background: #fff;
		padding: 2.3rem 3.3rem 4.2rem 3.4rem;
	}
	.wedding_comparison dd h4 {
		font-size: 1.6rem;
		font-weight: 500;
		letter-spacing: .05em;
		margin-bottom: 1.8rem;
	}
	.wedding_comparison dd h4:nth-of-type(1) {
		color: #6A9383;
	}
	.wedding_comparison dd p {
		font-size: 1.4rem;
		letter-spacing: .05em;
		line-height: 1.4286;
	}
	.wedding_comparison dd h4:nth-of-type(2) {
		margin-top: 3.3rem;
		padding-top: 3.3rem;
		border-top: .1rem solid rgba(201, 199, 199, 0.4);
	}
	.wedding_comparison dd span {
		font-size: 78%;
		vertical-align: middle;
	}
}

/*seasons
----------------------------------------*/
.seasons {
	background: #fff;
	padding: 14.1rem 0 14.4rem;
}
.seasons_inner {
	max-width: 132rem;
	margin: 0 auto;
}
.seasons h2 {
	font-size: 2.6rem;
	font-weight: 500;
	color: #6A9383;
	letter-spacing: .05em;
	margin-bottom: 5.9rem;
}
.seasons_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 4rem;
}
.seasons h3 {
	font-size: 1.6rem;
	letter-spacing: .05em;
	font-weight: 500;
	margin: 2.4rem 0 1.8rem;
}
.seasons p {
	font-size: 1.4rem;
	letter-spacing: .05em;
	line-height: 1.4286;
}
@media only screen and (max-width: 768px) {
	.seasons {
		padding: 11.2rem 0 11.4rem;
	}
	.seasons_inner {
		max-width: 34rem;
	}
	.seasons h2 {
		line-height: 1.2308;
		margin-bottom: 4.2rem;
	}
	.seasons_list {
		grid-template-columns: repeat(1, 1fr);
		gap: 4.4rem;
	}
	.seasons h3 {
		margin: 2.3rem 0 1.8rem;
	}
}

/*flow
----------------------------------------*/
.flow_movie {
	background: #fff;
	padding: 0;
}
.flow_movie_inner {
	max-width: 132rem;
	margin: 0 auto;
}
.flow_movie_ttl {
	font-size: 2.6rem;
	font-weight: 500;
	letter-spacing: .05em;
	color: #6A9383;
	text-align: center;
	margin-bottom: 5.9rem;
}
.flow_movie_frame {
	position: relative;
	display: block;
	width: 90rem;
	max-width: 100%;
	margin: 0 auto;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.flow_movie_frame iframe {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
}
.flow_bg {
	background: #fff;
	padding: 13.8rem 0 15rem;
	z-index: 2;
}
.flow_inner {
	max-width: 132rem;
	margin: 0 auto;
}
.flow_ttl {
	padding-bottom: 6.2rem;
	display: flex;
}
.flow_ttl h2 {
	width: 50%;
	font-size: 2.6rem;
	font-weight: 500;
	letter-spacing: .05em;
	color: #6A9383;
}
.flow_ttl p {
	width: 50%;
	font-size: 1.4rem;
	letter-spacing: .05em;
	line-height: 1.5714;
	padding: .6rem 0 0 1rem;
}
.flow_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 4rem;
	overflow: hidden;
	margin-bottom: 4.1rem;
}
.flow_list li {
	padding: 2rem 0 .3rem;
}
.flow_list li::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: -2.5rem;
	right: -2.5rem;
	border-bottom: .1rem solid #C9C7C7;
	pointer-events: none;
}
.flow_step {
	font-size: 1.4rem;
	font-weight: 500;
	color: #6A9383;
	margin-bottom: 1.9rem;
}
.flow_step span {
	font-size: 3rem;
	font-weight: 400;
	line-height: 1;
	margin-left: 1.1rem;
}
.flow_list h3 {
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: .05em;
	margin: 1.8rem 0 1.3rem;
}
.flow_list p {
	font-size: 1.4rem;
	letter-spacing: .05em;
	line-height: 1.4286;
}
.flow .btn {
	margin: 0 auto;
}
@media only screen and (max-width: 768px) {
	.flow_movie {
		padding: 0;
	}
	.flow_movie_inner {
		max-width: 34rem;
	}
	.flow_movie_ttl {
		line-height: 1.2308;
		text-align: left;
		margin-bottom: 4.2rem;
	}
	.flow_movie_frame {
		width: 100%;
	}
	.flow_bg {
		padding: 11.2rem 0 15rem;
	}
	.flow_inner {
		max-width: 34rem;
	}
	.flow_ttl {
		padding-bottom: 1.7rem;
		display: block;
	}
	.flow_ttl h2 {
		width: auto;
		line-height: 1.2308;
		margin-bottom: 3.6rem;
	}
	.flow_ttl p {
		width: auto;
		padding: 0;
	}
	.flow_list {
		grid-template-columns: repeat(1, 1fr);
		gap: 2.8rem;
		margin-bottom: 4.4rem;
	}
	.flow_list li {
		padding: 0;
	}
	.flow_list figure img {
		width: 100%;
		aspect-ratio: 34 / 20;
		object-fit: cover;
	}
	.flow_list li::before {
		display: none;
	}
	.flow_step span {
		margin-left: 1.2rem;
	}
	.flow .btn {
		width: 100%;
	}
}

/*p_contact
----------------------------------------*/
.p_contact {
	background: none;
}
