#subpage-header {
  position: relative;
  background-image: url('../img/subpage-title-bg.jpg');
  background-size: cover;
  background-position: center;
  text-align: left;
  padding: 105px 20px; 
  .inner{
	max-width: 1100px;
	margin: 0 auto;
	& h1{
		color: var(--theme-black-soft);
		font-size: 4rem;
		margin: 0;
		@media screen and (max-width: 768px){
			font-size: 3rem; 
		}
	}
  }
}
#subpage{
	width: 100%;
	background-color: var(--theme-beige);
	& section{
		padding: 15rem 2rem 9rem;
		&.bg-black{
			color: var(--theme-white);
			background-color: var(--theme-black-base);
		}
		@media screen and (max-width: 768px){
			padding: 5rem 2rem 3rem;
		}
	}

	.inner{
		width: 100%;
		max-width: var(--inner-width);
		margin: 0 auto;
		.content-wrap{ 
			margin-bottom: 6.5rem;
		}
		.text-center{
			font-size: 1.5rem;
			text-align: center;
			max-width: 850px;
			margin: 0 auto;
			@media screen and (max-width: 768px){
				text-align: left;
			} 
		}
		.text-left{
			font-size: 1.5rem;
			text-align: left;
			max-width: 850px;
		}
		.gray-text-box{
			color: var(--theme-white);
			background-color: rgba(51,51,51,0.8);
			font-size: 2.4rem;
			text-align: center;
			padding: 1.4rem 0;
		}
		.media-block{
			display: flex;
			align-items: flex-start;
			width: 100%;
			gap: 5.6rem;
			/* margin-bottom: 6.5rem; */
			@media screen and (max-width: 768px){
				flex-direction: row;
			}

			& p {
				font-size: 1.5rem;
				margin-bottom: 2rem;
			}

			& img{
				width: 100%;
				height: auto;
				display: block;	
			}
			&.img300{
				.image{
					width: 30%;
					& img{
						width: 300px;
						height: auto;
					}
				}
				.content{
					width: 70%;
				}
				@media screen and (max-width: 768px){
					.content {
						width: 100%;
						text-align: center;
						& p{
							text-align: left;
							margin-top: 1rem;
						}
					}
				};
			}
			&.img200{
				max-width: 960px;
				margin: 0 auto 6.5rem;
				align-items: center;
				gap: 10rem;
				& img{
					width: 200px;
					height: auto;

				}
			}
			&.img490{
				align-items: center;
				.image{
					width: 45%;
					& img{
					width: 490px;
					height: auto;
					}
				}
				.content{
					width: 55%;
				}
				@media screen and (max-width: 768px){
					flex-direction: column;
					text-align: center;
					.image{
						width: 100%;
					}
					.content {
						width: 100%;
						text-align: left;					
				}
			}
		}
			&.has-title{
				& h3{
					font-size: 2.4rem;
					font-weight: bold;
					margin-bottom: 2rem;
				}
				& a{
						position: relative;
						display: inline-block;
						padding: 12px 28px;
						color: var(--theme-white);
						text-decoration: none;
						font-weight: bold;
						overflow: hidden;
						z-index: 0;
						background: linear-gradient(to right, #9AC042, #48A851);
						&:hover {
							background: none;
							background-color: var(--theme-black-base);
						}	
				}
			}
			&.reverse{
				flex-direction: row-reverse;
				@media screen and (max-width: 768px){
					flex-direction: column;
					.content {
						width: 100%;
						text-align: center;
						& p{
							text-align: left;
							margin-top: 1rem;
						}
					}
				};
			}
		}
		.text-block{
			display: flex;
			flex-wrap: wrap;
			width: 100%;
			gap: 3rem;
			margin-bottom: 3.4rem;
			.content{
				border: 1px solid #000;
				padding: 2.5rem 2.2rem;
				@media screen and (max-width: 768px){
					padding: 2.5rem 1rem;
				}
				& h3{
					font-size: 2.4rem;
					font-weight: bold;
					margin-bottom: 2.4rem;
					& span{
						font-size: 2.4rem;
						color: var(--theme-lime);
					}
					&.center{
						text-align: center;
					}
					@media screen and (max-width: 768px){
						font-size: 1.6rem;
						word-break: auto-phrase;
						& span{
							font-size: 2rem;
						}
					}
				}
				& p{
					font-size: 1.5rem;
				}
				&.numberd{
					display: flex;
					align-items: baseline;
					gap: 16px;
					.number{
					font-size: 2.4rem;
					font-weight: bold;
					}
				}
			}
			&.col2{
				.content{
					flex: 0 0 calc(50% - 1.5rem);
					max-width: 518px;
					@media screen and (max-width: 768px){
						flex: 0 0 100%;
					} 
				}
			}
			&.col3{
				.content{
					flex: 0 0 calc(33% - 1.5rem);
					max-width: 350px;
					@media screen and (max-width: 768px){
						flex: 0 0 100%;
						max-width: 100%;
					} 
				}
			}
			&.w1100{
				margin-bottom: 5.6rem;
				.content{	
					width: 100%;
					max-width: 1100px;
					margin: 0 auto;
					& a {
						text-decoration: none;
						padding: 5rem;
					}
					.heading{
						display: flex;
						align-items: center;
						padding-bottom: 2rem;
						margin-bottom: 2rem;
						border-bottom: 1px solid #000;
						.date{
							font-size:1.2rem;
							margin-right: 3rem;
						}
						.title{
							font-size: 2rem;;
						}
					}
				}
			}
			&.w768{
				.content{	
					width: 100%;
					max-width: 768px;
					margin: 0 auto;
					& h3{
						border-bottom: 1px solid #000;
						padding-bottom: 2rem;
						margin-bottom: 2rem;;
					}
					.content-body{
						padding: 0 7rem;
						@media screen and (max-width: 768px){
							padding: 0;
							text-align: center;
						}
						.label-badge{
							color: var(--theme-white);
							font-size: 2rem;
							justify-content: center;
							align-items: baseline;
							border-radius: 2rem;
							background-color: var(--theme-lime);
							height: 48px;
							margin-right: 2rem;
							padding: 1rem 2rem;
							display: inline-flex;
							@media screen and (max-width: 768px){
								font-size: 1.6rem;
								margin-right: 1rem;
								padding: 1rem 1.5rem;

							}
							& strong{
								font-size:3.2rem;
								@media screen and (max-width: 768px){
									font-size: 2.6rem;
								}
							}
							&.emphasis{
								line-height: 0.8;
							}
						}
						& p{
							font-size: 2rem;
							font-weight: bold;
							margin-top: 2rem;
							& span{
								font-size: 2rem;
								color: var(--theme-lime);
								& strong{
									font-size:4rem;
								}
							}
						}
					}
				}

			}
		}
		.heading-gradline-h3{
			position: relative;
			font-weight: bold;
			font-size: 4.2rem;
			padding-bottom: 1.2rem;
			color: var(--theme-white);
			&::after{
				content: "";
				position: absolute;
				left: 0;
				bottom: 0;
				width: 100%;
				height: 5px;
				background-image: linear-gradient(to right, #9AC042 0%, #48A851 90%, #1C1C1C 100%);
			}
			@media screen and (max-width: 768px){
				font-size: 2.4rem;
				word-break: auto-phrase;
			} 
		}
		.heading-gradline-h4{
			position: relative;
			font-weight: bold;
			font-size: 3.6rem;
			padding-bottom: 2.6rem;
			margin-bottom: 3.4rem;
			/* color: var(--theme-white); */
			&::after{
				content: "";
				position: absolute;
				left: 0;
				bottom: 0;
				width: 130px;
				height: 15px;
				background: linear-gradient(to right, #9AC042, #48A851);
			}
			@media screen and (max-width: 768px){
				font-size: 2rem;
			}
		}
		.heading-h5{
			font-size: 2.4rem;
			text-align: center;
			@media screen and (max-width: 768px){
				font-size: 2rem;
			}
		}
		.media-grid-block{
			display: flex;
			flex-wrap: wrap;
			width: 100%;
			column-gap: 8rem;
			& ul{
				padding-inline-start: 0;
				text-align: left;
				& li{
					font-size: 1.5rem;
					margin-bottom: 1rem;
				}
				& li + li{
					border-top: 1px solid #000;
					padding-top: 1rem;
				}
			}
		}
		.list-square{
			display: flex;
			justify-content: center;
			margin-top: 5rem;
			margin-bottom: 6.5rem;
			.list-inner{
				max-width: 800px;
				text-align: left;
				padding-inline-start: 0;
			 & li{
				font-size: 2rem;
				@media screen and (max-width: 768px){
					font-size: 1.5rem;
				}
			 }
			}
		}
		.list-border-bottom{
			& dl{
				display: grid;
				grid-template-columns: 28em auto;
				padding: 2rem;
				border-bottom: solid 1px var(--theme-gray);
				&:last-child{
					border-bottom: none;
				}
			}
			& dt, & dd{
				font-size: 2rem;
			}
			@media screen and (max-width: 768px){
				& dl{
					grid-template-columns: 1fr;
					grid-template-rows: 4rem;
				}
				& dd{
					padding-left: 1em;
				}
			}
		}
		.article{
			.heading{
				.date{
					font-size: 2.4rem;
					margin-right: 3rem;
				}
				.title{
					font-size: 2.4rem;
				}
			}
			.content{
				margin: 2rem;
				font-size:2rem;
				& p{
					font-size: 2rem;
				}
			}
		}
		.back-archive{
			text-align: center;
			& a{
				font-size: 2rem;
			}
		}
		.privacy{
			& h4{
				font-size: 2rem;
				margin-bottom: 2rem;
			}
			& p{
				font-size: 1.5rem;
				line-height: 2;
				& span {
					font-size: 1.5rem;
					font-weight: bold;
				}
			}
		}
		.access-map{
			max-width: 1100px;
			height: 690px;
		}
		.contact-page{
			display: flex;
			gap: 6rem;
			.contact-detail{
				width: 45%;
				& p{
					font-size: 1.5rem;
					margin-bottom: 6rem;
					& span{
						font-size: 2.8rem;
						font-weight: bold;
					}
				}
			}
			.contact-form{
				width: 55%;
				background-color: #ece9e5;
				padding: 8.5rem 5rem;
				& form {
					& p{
						margin-bottom: 2.4rem;
					}
					& label{
						font-size: 1.4rem;
						font-weight: bold;
						margin-bottom: 1.4rem;
						& .require {
							color: #ff0000;
						}
					}
					& input{
						font-size: 1.6rem;
						border: 1px #888 solid;
						border-radius: 5px;
						width: 100%;
					}
					& textarea{
						font-size: 1.6rem;
						border: 1px #888 solid;
						border-radius: 5px;
						width: 100%;
					}
					.privacy-check{
						.novalidate{
							.wpcf7-acceptance{
								& label{
									display: flex;
									& input{
										width: unset;
									}
									& a {
										font-size: 1.5rem;
										margin-left: 2em;
									}
								}
							}
						}
						& >span {
							width: 100%;
							& label {
								width: 100%;
								display: flex;
								align-items: center;
								& input{
									width: 10%;
								}
								& span{

								font-size: 1.4rem;
								}
							}
						}
					}
					.wpcf7-submit{
						color: var(--theme-white);
						background: linear-gradient(to right, #9AC042, #48A851);
						width: 100%;
						border: none;
						border-radius: 0;
					}
					.custom-complete-message {
					font-size: 2rem;
					font-weight: bold;
					color: green;
					text-align: center;
					margin-top: 30px;
					}
				}
			}
			@media screen and (max-width: 768px){
				flex-direction: column;
				gap: 0;
					.contact-detail{
						width: 100%;
					}
					.contact-form{
						width: 100%;
						padding: 2.5rem 1rem;
					}
			}
		}
		.notfound{
			text-align: center;
			& h1 {
				font-size: 4rem;
				margin-bottom: 2rem;
			}
			& p {
				font-size: 2rem;
			}
			& a {
				font-size: 2rem;
				text-decoration: none;
			}
		}
	}
}

