/*
 * base css 
 * pc width 1000px fixed
 */

@media (max-width: 599px) {
}

@media (min-width: 600px) and (max-width:959px) {
}

@media (min-width: 960px) {
}

@media (max-width: 480px) {
}

@media (min-width: 481px) and (max-width:767px) {
}

@media (min-width: 768px) and (max-width:959px) {
}

@media (min-width: 960px) {
}

@media (max-width: 750px) {
}

@media (min-width: 751px) {
}


/* ---------------------------------------- common */
/* 13-18px */

@media (max-width: 750px) {
	.pc { display: none !important; }
	body { font-size: clamp(0.813rem, 0.58rem + 1.16vw, 1.125rem); }
}

@media (min-width: 751px) {
	.sp,
	#drawer-menu,
	#drawer {
		display: none !important; 
	}
	a[href^="tel:"] { pointer-events: none; }
	body { font-size: clamp(0.813rem, 0.14rem + 1.43vw, 1.125rem); }
}

/* ---------------------------------------- header */

header .inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
header .catch {
	color: #019644;
	line-height: 1.4;
	font-weight: 700;
}

@media (max-width: 750px) {

	header .sitelink { display: none; }

	header {
		position: sticky;
		top: 0;
		z-index: 999;
		background: #fff;
		padding: .5em .75em;
	}

	header .logo { 
		width: 31%; 
		min-width: 130px;
	}
	header .catch {
		font-size: clamp(0.75rem, 0.517rem + 1.16vw, 1.063rem);
		text-align: center;
		padding: 0 1em;
	}
	header .space { 
		width: 2.25em; 
		aspect-ratio: 1;
	}

}

@media (min-width: 751px) {

#headerWrap {
	position: sticky;
	top: 0;
	z-index: 999;
	background: #fff;
}

	header .space { display: none; }
	header { 
		padding: .5em 1em;
	}
	header .inner {
		max-width: 1100px;
		margin: 0 auto;
	}
	header .logo {
		width: 19.5454545%;
		max-width: 215px;
	}
	header .catch {
		font-size: clamp(0.75rem, 0.078rem + 1.43vw, 1.063rem);
	}
	header .sitelink a {
		display: block;
		color: #fff;
		background: #019644;
		font-size: clamp(0.75rem, 0.078rem + 1.43vw, 1.063rem);
		font-weight: 700;
		line-height: 1.4;
		text-align: center;
		padding: .4em 2em;
		border-radius: 100px;
	}

}

/* ---------------------------------------- globalnav */

@media (max-width: 750px) {
	#globalnav { display: none; }
}

@media (min-width: 751px) {

	#globalnav {
		color: #fff;
		background: #019644;
		padding: 1em;
	}
	#globalnav ul {
		display: flex;
		justify-content: center;
		font-size: clamp(0.813rem, 0.14rem + 1.43vw, 1.125rem);
	}
	#globalnav ul li:not(:last-child){ border-right: 1px #fff solid; }
	#globalnav ul li a {
		display: block;
		line-height: 1;
		padding: 0 1em;
	}

}

/* ---------------------------------------- mv */

#mv { position: relative; }
#mv figure { position: relative; }
#mv figure::after {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: rgba( 0,0,0,.5 );
	mix-blend-mode: multiply;
	position: absolute;
	top: 0;
	left: 0;
}
#mv .inner { 
	padding: 0 1em; 
	position: relative;
}
#mv h1 {
	width: 100%;
	color: #fff;
	font-weight: 800;
	line-height: 1.4;
	text-align: center;
	padding: 1em;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

@media (max-width: 750px) {

	#mv figure img { 
		width: 100%;
		height: 16.6666666em;
		object-fit: cover;
		object-position: center;
	}
	#mv h1 { font-size: clamp(1.25rem, 0.32rem + 4.65vw, 2.5rem); }

}

@media (min-width: 751px) {

	#mv figure img { 
		width: 100%;
		height: 22.2222222em;
		object-fit: cover;
		object-position: center;
	}
	#mv h1 { font-size: clamp(2.125rem, -0.027rem + 4.58vw, 3.125rem); }

}

/* ---------------------------------------- breadcrumbs */

@media (max-width: 750px) {
	#breadcrumbWrap { display: none !important; }
}

@media (min-width: 751px) {

	#breadcrumbWrap { 
		padding: 1em 1.5em 0; 
	}
	#breadcrumbWrap .inner { 
		max-width: 1100px;
		margin: 0 auto;
	}
	#breadcrumbWrap p { font-size: clamp(0.75rem, 0.482rem + 0.57vw, 0.875rem); }
	#breadcrumbWrap p span span {
		display: inline-block;
		letter-spacing: normal;
	}
	#breadcrumbWrap a {
		color: var( --heavenly-blue );
		font-weight: 500;
		-webkit-transition: all 0.5s ease-out;
		transition: all 0.5s ease-out;
	}
	#breadcrumbWrap a:hover { opacity: .3; }

}

/* ---------------------------------------- main */

/* 13-18px */

h2 {
	color: #fff;
	background: #019644;
	line-height: 1.4;
	font-weight: 700;
	position: relative;
}
main h2::before,
main h2::after {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: #fff;
	position: absolute;
	left: 0;
}
h2::before { top: 2px; }
h2::after { bottom: 2px; }

h2 small { margin: 0 0 0 1em; }

h3 { 
	color: #019644;
	border-top: 1px #019644 solid;
	border-bottom: 1px #c8c8c8 solid;
	font-weight: 700;
	line-height: 1.4;
}
h4 { 
	background: #f6faf6;
	border-bottom: 2px #019644 solid;
	font-weight: 700;
	line-height: 1.4;
}
h5 { 
	border-left: 3px #019644 solid;
	font-weight: 700;
	line-height: 1.4;
}
.large {
	font-weight: 700;
	line-height: 1.4;
}

@media (max-width: 750px) {
	main { 
		font-size: clamp(0.813rem, 0.58rem + 1.16vw, 1.125rem); 
		padding: 2.5em 1em 3.5em;
	}
	main .inner.columns #sidebar {
		margin: 3em 0 0;
	}

	h2 { 
		font-size: clamp(1.25rem, 0.692rem + 2.79vw, 2rem);
		padding: .5em;
		margin: 0 0 1.25em;
	}
	h2 small { font-size: clamp(1rem, 0.442rem + 2.79vw, 1.75rem); }
	h3 { 
		font-size: clamp(1.125rem, 0.567rem + 2.79vw, 1.875rem);
		padding: .5em 0;
		margin: 0 0 1em;
	}
	h4 { 
		font-size: clamp(1rem, 0.442rem + 2.79vw, 1.75rem);
		padding: .5em;
		margin: 0 0 1.25em;
	}
	h5 { 
		font-size: clamp(0.938rem, 0.519rem + 2.09vw, 1.5rem);
		padding: .3em 0 .3em .5em;
		margin: 0 0 .5em;
	}
	.large {
		font-size: clamp(0.938rem, 0.519rem + 2.09vw, 1.5rem);
		margin: 0 0 .75em;
	}
}

@media (min-width: 751px) {
	main { 
		font-size: clamp(0.813rem, 0.14rem + 1.43vw, 1.125rem); 
		padding: 2.5em 1em 3.5em;
	}
	main .inner {
		max-width: 1100px;
		margin: 0 auto;
	}
	main .inner.columns {
		display: grid;
		grid-template-columns: 1fr 180px;
		gap: 3em;
	}

	h2 { 
		font-size: clamp(1.375rem, 0.03rem + 2.87vw, 2rem);
		padding: .5em;
		margin: 0 0 1.5em;
	}
	h2 small { font-size: clamp(1.063rem, 0.121rem + 2.01vw, 1.5rem); }
	h3 { 
		font-size: clamp(1.25rem, -0.095rem + 2.87vw, 1.875rem);
		padding: .5em 0;
		margin: 0 0 1.25em;
	}
	h4 { 
		font-size: clamp(1.063rem, 0.121rem + 2.01vw, 1.5rem);
		padding: .5em;
		margin: 0 0 1.75em;
	}
	h5 { 
		font-size: clamp(0.938rem, -0.004rem + 2.01vw, 1.375rem);
		padding: .3em 0 .3em .5em;
		margin: 0 0 .5em;
	}
	.large {
		font-size: clamp(0.938rem, -0.004rem + 2.01vw, 1.375rem);
		margin: 0 0 .75em;
	}
}

main p { line-height: 2; }

/* ---------------------------------------- footline */

#footline .upper {
	background: #019644;
	text-align: center;
	padding : 0 1em;
}

#area h2 {
	color: #333;
	background: none;
	font-size: clamp(1.173rem, 5.87vw, 2.75rem);
	line-height: 1.4;
	font-weight: 700;
	text-align: center;
	padding: 0 0 .5em;
	margin: 0 0 1em;
	position: relative;
}
#area h2::after {
	content: "";
	display: block;
	width: 2em;
	aspect-ratio: 1 / 0.057;
	background: #019644;
	position: absolute;
	bottom: 0;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

@media (max-width: 750px) {

	#area {
		background: #fdff08 url( ../images/commons-sp/area-back.jpg ) no-repeat center top;
		background-size: cover;
		padding: 2.5em 1.4em 2.857em;
	}
	#area h2 { font-size: clamp(1.173rem, 5.87vw, 2.75rem); }
	#area figure,
	#area p {
		font-weight: 600;
		line-height: 1.6;
		text-align: center;
		font-size: clamp(0.75rem, 0.285rem + 2.33vw, 1.375rem);
		margin: 0 0 1.25em;
	}

	#area ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	#area ul li {
		width: 47.7678571%;
	}
	#area ul li:nth-child( n+3 ){ margin: 1em 0 0; }
	#area ul li a {
		display: block;
		-webkit-transition: all 0.3s ease-out;
		transition: all 0.3s ease-out;
	}
	#area ul li a:hover,
	#area ul li a:active { opacity: .5; }

}

@media (min-width: 751px) {

	#footline .upper .inner {
		max-width: 1100px;
		margin: 0 auto;
	}

	#area {
		background: #fdff08 url( ../images/commons-pc/area-pc-back.jpg ) no-repeat center top;
		background-size: cover;
		padding: 3.8em 1em;
	}
	#area .inner { 
		max-width: 1100px;
		margin: 0 auto;
	}
	#area h2 { font-size: clamp(1.688rem, -0.061rem + 3.72vw, 2.5rem); }
	#area .bnr {
		display: table;
		width: 100%;
		margin: 0 0 2em;
	}
	#area .bnr > * {
		display: table-cell;
		vertical-align: middle;
		font-size: clamp(0.938rem, -0.004rem + 2.01vw, 1.375rem);
		font-weight: 700;
		line-height: 1.6;
		text-align: left;
	}
	#area .bnr > figure { width: 63.272727%; }

	#area .inside ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 100%;
	}
	#area .inside ul li {
		width: 31%;
	}
	#area .inside ul li:nth-child( n+4 ){
		margin: 1.5em 0 0;
	}
	#area .inside ul li a {
		display: block;
		-webkit-transition: all 0.3s ease-out;
		transition: all 0.3s ease-out;
	}
	#area .inside ul li a:hover { opacity: .5; }

}

/* ---------------------------------------- footer */

footer { text-align: center; }
footer .upper p.sitelink {
	color: #019644;
	text-decoration: underline;
	margin: 1em 0 0;
}

footer .sns { margin: 1.5em 0 0; }
footer .sns a { 
	display: inline-block; 
	margin: 0 1em 0 0;
}
footer .sns a img {
	width: 3em;
	aspect-ratio: 1;
}

@media (max-width: 750px) {

	footer .upper .inner {
		font-size: clamp(0.813rem, 0.673rem + 0.7vw, 1rem);
		padding: 1.75em 1.428571428em;
	}
	footer .upper .logo { margin: 0 0 1em; }
	footer .upper .logo span {
		display: block;
		font-size: clamp(0.625rem, 0.346rem + 1.4vw, 1rem);
		margin: 0 0 .5em;
	}
	footer .upper .logo img { 
		width: 40%; 
		max-width: 220px;
	}
	footer .upper .sitelink {
		margin: 1em 0 0;
	}
	footer .upper .sitelink a {
		color: #019644;
		text-decoration: underline;
	}
	
	footer .bottom {
		color: #fff;
		background: #019644;
		font-size: clamp(0.625rem, 0.253rem + 1.86vw, 1.125rem);
		text-align: center;
		padding: .5em 1.428571428em;
	}
	footer .bottom .inner {
		font-size: clamp(0.625rem, 0.439rem + 0.93vw, 0.875rem);
		padding: 0 1.428571428em;
	}

}

@media (min-width: 751px) {

/* upper */

	footer .upper { 
		font-size: clamp(0.813rem, 0.411rem + 0.86vw, 1rem);
		padding: 3.75em 1em 2.75em;
	}
	footer .upper .inner {
		max-width: 1100px;
		margin: 0 auto;
	}
	footer .upper .logo { margin: 0 0 2em; }
	footer .upper .logo span {
		display: block;
		font-size: clamp(0.625rem, 0.491rem + 0.29vw, 0.688rem);
		margin: 0 0 .5em;
	}
	footer .upper .logo img {
		width: 19.545454%;
		height: auto;
	}

	/* bottom */
	
	footer .bottom { 
		color: #fff;
		background: #019644;
		font-size: clamp(0.625rem, 0.491rem + 0.29vw, 0.688rem);
		padding: .5em 0;
	}

}