section.content {
	padding: 60px 5% 0px 5%;
	> div {
		max-width: 1200px;
		margin-inline: auto;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		column-gap: 30px;
		@media (width < 1000px) {
			row-gap: 20px;
			grid-template-columns: repeat(1, 1fr);
		}
		> article {
			> div.category {
				display: grid;
				grid-template-columns: 2fr 2fr 1fr;
				column-gap: 5px;
				@media (width < 1300px) {
					grid-template-columns: auto auto;
				}
				> p {
					background-color: #fbe9ed;
					padding: 10px 15px;
					font-size: min(0.9rem, 4.5vw);
					line-height: 1.0;
					color: #111;
					font-weight: 500;
				}
			}
			> h2 {
				padding-top: 30px;
				font-size: min(2.0rem, 7vw);
				line-height: 1.6;
				color: #000;
				font-weight: 700;
				font-family: var(--font-serif);
				@media (width < 1000px) {
					padding-top: 10px;
				}
			}
			> h3 {
				padding-top: 30px;
				font-size: min(1.4rem, 5.5vw);
				line-height: 1.6;
				color: #a41e2e;
				font-weight: 600;
				@media (width < 1000px) {
					padding-top: 10px;
				}
			}
			> p {
				padding-top: 10px;
				font-size: min(1.0rem, 5.0vw);
				line-height: 2.0;
				color: #111;
				text-align: justify;
			}
			> div.viewer {
				> figure {
					max-width: 100%;
					overflow: hidden;
					> img {
						display: block;
						width: 100%;
						height: 100%;
						object-fit: cover;
						opacity: 1;
						transition: opacity 100ms;
						&.changing {
							opacity: 0;
						}
					} 
				}
			}
			> div.thumbs {
				padding-top: 10px;
				display: grid;
				grid-template-columns: repeat(2, 1fr);
				column-gap: 10px;
				&:has(> figure:nth-of-type(2)) {
					grid-template-columns: repeat(2, 1fr);
				}
				&:has(> figure:nth-of-type(3)) {
					grid-template-columns: repeat(3, 1fr);
				}
				> figure {
					overflow: hidden;
					> img {
						max-width: 100%;
						&[data-switchImage="sub"] {
							cursor: pointer;
							&:hover {
								opacity: 0.8;
							}
						}
					}
				}
			}
		}
	}
}
section.benefit01 {
	padding: 100px 5% 0px 5%;
	> div {
		background-color: #fbe9ed;
		padding-block: 30px;
		padding-inline: 20px;
		border-radius: 20px;
		max-width: 1000px;
		margin-inline: auto;
		display: grid;
		grid-template-columns: auto 1fr;
		@media (width < 990px) {
			grid-template-columns: 1fr;
			row-gap: 20px;
			justify-self: center;
		}
		@media (width < 490px) {
			padding-block: 10px;
			padding-inline: 10px;
		}
		> div.member {
			padding-right: 20px;
			border-right: 1px solid #333;
			display: grid;
			grid-template-columns: 60px 1fr;
			column-gap: 20px;
			align-items: center;
			@media (width < 990px) {
				border-right: none;
				justify-self: center;
				padding-right: 0px;
			}
			> figure {
				> img {
					width: 60px;
				}
			}
			> div {
				> p {
					font-size: min(1.5rem, 7.0vw);
					line-height: 1.1;
					color: #333;
					font-weight: 800;
					> small {
						font-size: min(1.0rem, 5.0vw);
						color: #dc2850;
						line-height: 1.0;
						font-weight: 900;
					}
				}
			}
		}
		> div.service {
			padding-left: 20px;
			@media (width < 990px) {
				justify-self: center;
				padding-left: 0px;
			}
			> div {
				display: flex;
				flex-direction: column;
				justify-content: center;
				height: 100%;
				> p {
					font-size: min(1.3rem, 6vw);
					line-height: 1.5;
					color: #dc2850;
				}
			}
		}
	}
}
section.benefit02 {
	padding: 100px 5% 0px 5%;
	> div {
		max-width: 1000px;
		margin-inline: auto;
		display: grid;
		grid-template-columns: 1fr 1fr;
		column-gap: 20px;
		row-gap: 10px;
		@media (width < 800px) {
			grid-template-columns: 1fr;
		}
		> div.benefit {
			background-color: #fbe9ed;
			padding-block: 30px;
			padding-inline: 40px;
			border-radius: 20px;
			@media (width < 490px) {
				padding-block: 15px;
				padding-inline: 15px;
			}
			> div.member {
				display: flex;
				column-gap: 20px;
				justify-content: center;
				align-items: center;
				@media (width < 990px) {
					border-right: none;
					justify-self: center;
					padding-right: 0px;
				}
				> figure {
					> img {
						width: 60px;
					}
				}
				> div {
					> p {
						font-size: min(1.5rem, 7.0vw);
						line-height: 1.1;
						color: #333;
						font-weight: 800;
						> small {
							font-size: min(1.0rem, 5.0vw);
							color: #dc2850;
							line-height: 1.0;
							font-weight: 900;
						}
					}
				}
			}
			> div.service {
				padding-top: 30px;
				> div {
					display: flex;
					flex-direction: column;
					justify-content: center;
					> p {
						font-size: min(1.3rem, 6vw);
						line-height: 1.5;
						color: #dc2850;
						small {
							color: #111;
						}
						a {
							color: #dc2850;
							&:hover {
								color: #000;
							}
						}
					}
				}
			}
		}
		> div.gist {
			padding-block: 0px 20px;
			padding-inline: 10px;
			border-radius: 20px;
			background-color: #e6eef5;
			@media (width < 490px) {
				padding-block: 0 10px;
				padding-inline: 10px;
			}
			> figure {
				margin-inline: auto;
				width: 150px;
				@media (width < 490px) {
					width: 100px;
				}
				> img {
					max-width: 100%;
				}
			}
			> div {
				margin-top: 20px;
				padding-inline: 45px 10px;
				@media (width < 490px) {
					padding-inline: 25px 5px;
				}
				> ul {
					list-style: disc;
					> li {
						padding-block: 5px;
						font-size: min(1.1rem, 5.0vw);
						line-height: 1.4;
						color: #008;
						> br {
							@media (width < 500px) {
								display: none;
							}
						}
					}
				}
			}
		}
	}
}
section.subtitle {
	padding: 80px 5% 0px 5%;
	> div {
		max-width: 1200px;
		margin-inline: auto;
		> div {
			display: flex;
			align-items: center;
			gap: 15px;
			> div {
				height: 2px;
				width: 12px;
				background-color: #a41e2e;
			}
			> h2 {
				font-size: min(2.2rem, 7vw);
				line-height: 1.0;
				color: #333;
				font-weight: 600;
				font-family: var(--font-serif);
			}
		}
		> p {
			font-size: min(1.0rem, 5.0vw);
			line-height: 1.6;
			color: #a41e2e;
			font-weight: 800;
			padding-top: 10px;
			padding-left: 25px;
		}
	}
}
section.profile {
	padding: 40px 5% 0px 5%;
	> div {
		max-width: 1300px;
		margin-inline: auto;
		> div.content.single {
			display: grid;
			grid-template-columns: 1fr 1.3fr;
			column-gap: 40px;
			@media (width < 1150px) {
				grid-template-columns: 1fr;
				row-gap: 40px;
			}
			> dl {
				@media (width < 1150px) {
					grid-template-columns: 1fr;
					row-gap: 40px;
				}
				> div {
					display: grid;
					grid-template-columns: 100px 1fr;
					&:first-child {
						> dt {
							border-top: 1px solid #333;
							@media (width < 630px) {
								border-top: none;
							}
						}
						> dd {
							border-top: 1px solid #333;
							@media (width < 630px) {
								border-top: none;
							}
						}
					}
					&:last-child {
						> span {
							margin-left: 1em;
							@media (width < 630px) {
								margin-left: 0.5em;
							}
						}
					}
					@media (width < 630px) {
						grid-template-columns: 1fr;
						height: auto;
					}
					> dt {
						background-color: #eee;
						align-content: center;
						font-size: min(0.9rem,4.5vw);
						line-height: 1.3;
						color: #111;
						font-weight: 500;
						padding-block: 20px;
						padding-inline: 10px;
						border-bottom: 1px solid #333;
						@media (width < 630px) {
							border: none;
							line-height: 1.1;
							padding-block: 5px;
						}
					}
					> dd {
						align-content: center;
						border-bottom: 1px solid #333;
						color: #111;
						font-size: min(0.9rem,4.5vw);
						line-height: 1.6;
						padding-block: 20px;
						padding-inline: 10px;
						> a {
							text-decoration: none;
							color: var(--color-accent);
							&:hover {
								text-decoration: underline;
							}
						}
						@media (width < 630px) {
							border: none;
							padding-block: 5px 15px;
						}
					}
				}
			}
			> div.map {
				> iframe {
					width: 100%;
					height: 100%;
					border: none;
					min-height: 400px;
				}
				> a {
					text-decoration: none;
					font-size: 0.8rem;
					line-height: 1;
					color: #888;
					border: solid 1px #ccc;
					border-radius: 5px;
					padding-block: 3px;
					padding-inline: 10px 20px;
					background-image: url(../common/image/mark_external.svg);
					background-repeat: no-repeat;
					background-position: right 5px top 50%;
					&:hover {
						opacity: 0.7;
					}
				}
				> img {
					max-width: 100%;
					min-height: 400px;
					object-fit: cover;
				}
			}
		}
		> div.content.multiple {
			display: grid;
			grid-template-columns: repeat(3,1fr);
			column-gap: 20px;
			row-gap: 20px;
			@media (width < 1120px) {
				grid-template-columns: repeat(2,1fr);
			}
			@media (width < 750px) {
				grid-template-columns: repeat(1,1fr);
			}
			> article {
				border: solid 1px #aaa;
				border-radius: 10px;
				padding-inline: 8px;
				padding-block: 8px;
				> h3 {
					font-size: min(1rem,5vw);
					line-height: 1.3;
					color: #111;
					font-weight: 500;
				}
				> dl {
					margin-top: 8px;
					> div {
						display: grid;
						grid-template-columns: 100px 1fr;
						&:first-child {
							> dt {
								border-top: 1px dotted #333;
								@media (width < 630px) {
									border-top: none;
								}
							}
							> dd {
								border-top: 1px dotted #333;
								@media (width < 630px) {
									border-top: none;
								}
							}
						}
						&:last-child {
							> span {
								margin-left: 1em;
								@media (width < 630px) {
									margin-left: 0.5em;
								}
							}
						}
						@media (width < 630px) {
							grid-template-columns: 1fr;
							height: auto;
						}
						> dt {
							background-color: #eee;
							align-content: center;
							font-size: min(0.9rem,4.5vw);
							line-height: 1.3;
							color: #111;
							font-weight: 500;
							padding-block: 5px;
							padding-inline: 5px;
							border-bottom: 1px dotted #333;
							@media (width < 630px) {
								border: none;
								line-height: 1.1;
								padding-block: 5px;
							}
						}
						> dd {
							align-content: center;
							border-bottom: 1px dotted #333;
							color: #111;
							font-size: min(0.9rem,4.5vw);
							line-height: 1.6;
							padding-block: 5px;
							padding-inline: 5px;
							> a {
								text-decoration: none;
								color: var(--color-accent);
								&:hover {
									text-decoration: underline;
								}
							}
							@media (width < 630px) {
								border: none;
								padding-block: 5px 15px;
							}
						}
					}
				}
				> div.map {
					margin-top: 10px;
					> iframe {
						width: 100%;
						height: 100%;
						border: none;
						min-height: 200px;
					}
					> a {
						display: inline-block;
						text-decoration: none;
						font-size: 0.7rem;
						line-height: 1;
						color: #888;
						border: solid 1px #ccc;
						border-radius: 5px;
						padding-block: 5px;
						padding-inline: 10px 20px;
						background-image: url(../common/image/mark_external.svg);
						background-repeat: no-repeat;
						background-position: right 5px top 50%;
						&:hover {
							opacity: 0.7;
						}
					}
					> img {
						max-width: 100%;
						min-height: 400px;
						object-fit: cover;
					}
				}
			}
		}
	}
}
section.sns {
	padding: 40px 5% 50px 5%;
	> div {
		max-width: 1200px;
		margin-inline: auto;
		display: flex;
		flex-wrap: wrap;
		column-gap: 10px;
		row-gap: 10px;
		@media (width < 500px) {
			display: block;
		}
		> a {
			text-decoration: none;
			&:hover {
				opacity: 0.7;
			}
			> div {
				border-radius: 10px;
				border: 1px solid #333;
				width: 240px;
				height: 70px;
				display: flex;
				justify-content: center;
				align-items: center;
				column-gap: 10px;
				@media (width < 500px) {
					width: 100%;
				}
				> img {
				}
				> p {
					font-size: min(1.0rem, 5.0vw);
					line-height: 1.3;
					color: #333;
					font-weight: 500;
				}
			}
		}
	}
}
section.lastSpacer {
	padding-top: 50px;
}
section.previous {
	padding: 40px 5% 100px 5%;
	> div {
		max-width: 600px;
		margin-inline: auto;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		column-gap: 50px;
		row-gap: 10px;
		> a {
			display: inline-block;
			text-decoration: none;
			width: 240px;
			height: 70px;
			display: flex;
			justify-content: center;
			align-items: center;
			column-gap: 10px;
			font-size: min(1.1rem, 5.0vw);
			line-height: 1;
			color: #333;
			font-weight: 500;
			cursor: pointer;
			user-select: none;
			border: solid 2px #d92e52;
			&:nth-of-type(1) {
				color: #d92e52;
				background-color: #fff;
			}
			&:nth-of-type(2) {
				color: #fff;
				background-color: #d92e52;
			}
			&:hover {
				opacity: 0.7;
			}
		}
	}
}
