@charset "UTF-8";

html {
	width: 100%;
	height: 100%;
	color: #000;
	margin: 0;
	padding: 0;
	font-feature-settings: "palt" 1;
}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td,figure {
	margin: 0;
	padding: 0;
}

body{
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	line-height: 1.5;
	font-weight: 500;
	letter-spacing: 0.06em;
	counter-reset:number;
	height: 100%;
	overflow-wrap: anywhere;
	word-break: normal;
	line-break: strict;
	-webkit-text-size-adjust: none;
}

table {
	font: 100%;
	font-size: inherit;
	border-collapse: collapse;
	border-spacing: 0;
}
caption,th { text-align:left; }

fieldset,img { border: 0;}

h1,h2,h3,h4,h5,h6 {
	font-size: 100%;
	font-weight: inherit;
}
address,caption,cite,code,dfn,em,th,var {
	font-style: normal;
	font-weight: normal;
}
ol,ul { list-style: none;}

q:before,q:after { content:'';}
abbr,acronym {
	border: 0;
	font-variant: normal;
}
sup { vertical-align: text-top; }
sub { vertical-align: text-bottom;}
input,textarea,select {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	outline: 0;
}
legend{ color: inherit;}

select,input,button,textarea{ font-family: "Noto Sans JP", sans-serif; }

pre,code,kbd,samp,tt{
	font-family: monospace;
	line-height: 100%;
}

main { display: block; }

a {
	color: inherit;
	outline: none;
	text-decoration: none;
}
a:hover,
a:focus,
a:active { text-decoration: none; }

a img { border: none; }

img { vertical-align: top; }

button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

html, body {
	height: 100%;
	text-align: justify;
	text-justify: inter-ideograph;
}
body { -webkit-text-size-adjust: 100%; }

:root {
	--color-brown: #644400;
	--color-orange: #df6d07;
	--color-green: #7ab135;
	--color-beige: #efeee6;

	--shadow-pc: 0 0 30px rgba(142,142,142,0.2), 0 0 8px rgba(142,142,142,0.4);
	--shadow-sp: 0 0 30px rgba(142,142,142,0.4), 0 0 8px rgba(142,142,142,0.4);
}

.fw-regular { font-weight: 400; }
.fw-medium { font-weight: 500; }
.fw-bold { font-weight: 700; }

.arrowLink {
	display: flex;
	align-items: center;
	border-radius: 999px;
	&::after {
		content: "";
		display: block;
		border-radius: 50%;
		aspect-ratio: 1 / 1;
		background: no-repeat center center;
	}
}
@media screen and (min-width:769px), print{
	.sp { display: none !important; }
	a[href^="tel:"] { pointer-events: none; }
	.inner {
		max-width: 1250px;
		margin-inline: auto;
		padding-inline: 25px;
	}
	.arrowLink::after {
		width: 53px;
		background-size: 18px;
	}
}
@media screen and (max-width:768px){
	.pc { display: none !important; }
	.inner { padding-inline: 20px; }
	.arrowLink::after {
		width: 32px;
		background-size: 11px;
	}
}

#header {
	z-index: 5000;
	box-sizing: border-box;
	.contact a {
		color: #fff;
		background-color: var(--color-orange);
	}
	.gMenu {
		.linkList {
			a {
				color: var(--color-brown);
				font-weight: 700;
				&::before {
					content: "";
					display: block;
					margin-inline: auto;
					background: no-repeat center center;
					background-size: 100%;
					aspect-ratio: 1 / 1;
				}
			}
			.overview a::before { background-image: url(../images/icon_overview.svg); }
			.plan a::before { background-image: url(../images/icon_plan.svg); }
			.record a::before { background-image: url(../images/icon_record.svg); }
			.guideline a::before { background-image: url(../images/icon_guideline.svg); }
		}
		.contact a {
			font-weight: 700;
			&::before {
				content: "";
				display: block;
				background: url(../images/icon_mail.svg) no-repeat center center;
				background-size: 100%;
				aspect-ratio: 29 / 24;
			}
		}
	}
	#hLogo a { display: block; }
}
@media screen and (min-width:769px), print{
	#header {
		top: 0;
		left: 0;
		width: 100%;
		padding: 30px;
		display: flex;
		position: absolute;
		align-items: center;
		justify-content: space-between;
		#hLogo a {
			width: 239px;
			padding-block: 8px;
		}
	}
}
@media screen and (max-width:768px){
	#header {
		top: 0;
		left: 0;
		width: 100%;
		padding: 10px;
		position: fixed;
		display: flex;
		justify-content: space-between;
		#hLogo {
			position: relative;
			z-index: 1;
			a {
				width: 155px;
				padding: 5px 10px;
			}
		}
	}
}
@media screen and (min-width:1300px), print{
	#header {
		& > .contact, .icon { display: none; }
		.gMenu {
			display: flex;
			.linkList {
				display: flex;
				font-size: 18px;
				margin-inline: 40px;
				li {
					width: 142px;
					display: flex;
					justify-content: center;
					a {
						display: flex;
						align-items: center;
						justify-content: center;
						flex-direction: column;
						padding-inline: 10px;
						&:hover { color: var(--color-orange); }
						&::before {
							width: 42px;
							margin-bottom: 2px;
						}
					}
				}
			}
			.contact a {
				width: 220px;
				height: 80px;
				display: flex;
				align-items: center;
				justify-content: center;
				border-radius: 999px;
				&:hover { background-color: var(--color-brown); }
				&::before {
					width: 29px;
					margin-right: 19px;
				}
			}
		}
	}
}
@media screen and (max-width:1299px){
	#header {
		& > .contact {
			margin-left: auto;
			margin-right: 6px;
			a {
				width: 50px;
				height: 0;
				display: block;
				overflow: hidden;
				border-radius: 50%;
				padding-top: 50px;
				background-image: url(../images/icon_mail.svg);
				background-repeat: no-repeat;
				background-position: center;
				background-size: 21px;
			}
		}
		.icon {
			width: 50px;
			height: 50px;
			cursor: pointer;
			border-radius: 50%;
			position: relative;
			z-index: 1;
			background-color: var(--color-brown);
			span, &::before, &::after {
				width: 26px;
				top: 0;
				left: 0;
				right: 0;
				bottom: 0;
				display: block;
				position: absolute;
				margin: auto;
				background-color: #fff;
			}
			span {
				height: 0;
				overflow: hidden;
				padding-top: 2px;
			}
			&::before, &::after {
				content: "";
				height: 2px;
			}
			&::before { bottom: 14px; }
			&::after { top: 14px; }
		}
		.gMenu {
			z-index: 0;
			display: none;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			overflow: auto;
			position: fixed;
			box-sizing: border-box;
			padding: 150px 30px 30px;
			background-color: var(--color-green);
			& > * {
				max-width: 600px;
				margin-inline: auto;
			}
			.linkList {
				display: flex;
				flex-wrap: wrap;
				justify-content: space-between;
				font-size: 17px;
				margin-bottom: 20px;
				li {
					width: calc(50% - 10px);
					margin-bottom: 20px;
					a {
						display: flex;
						flex-direction: column;
						align-items: center;
						justify-content: center;
						border-radius: 10px;
						background-color: #fff;
						aspect-ratio: 1 / 1;
						&::before {
							width: 50px;
							margin-bottom: 15px;
						}
					}
				}
			}
			.contact a {
				height: 70px;
				display: flex;
				align-items: center;
				justify-content: center;
				font-weight: 500;
				border-radius: 10px;
				&::before {
					width: 30px;
					margin-right: 26px;
				}
			}
		}
		&.open {
			#hLogo {
				a {
					background: url(../images/logo_white.svg) no-repeat center center;
					background-size: 155px auto;
					img { opacity: 0; }
				}
			}
			.gMenu {
				display: block;
			}
			.icon {
				background-color: transparent;
				span { display: none; }
				&::before {
					bottom: 0;
					transform: rotate(45deg);
				}
				&::after {
					top: 0;
					transform: rotate(-45deg);
				}
			}
		}
	}
}

#guideline {
	position: relative;
	background-color: #b1d355;
	&::before {
		content: "";
		top: 0;
		left: 0;
		width: 100%;
		aspect-ratio: 664 / 57;
		display: block;
		position: absolute;
		z-index: 2;
		pointer-events: none;
		background: url(../images/guideline_outline.svg) no-repeat center top;
		background-size: 100% auto;
	}
	&::after {
		content: "";
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display: block;
		position: absolute;
		z-index: 0;
		mix-blend-mode: multiply;
		pointer-events: none;
		background: url(../images/texture.webp) repeat center center;
	}
	.inner {
		position: relative;
		z-index: 1;
		font-weight: 700;
	}
	.title, .text {
		color: #fff;
		text-align: center;
	}
	.title::before {
		content: "";
		display: block;
		border-radius: 50%;
		aspect-ratio: 1 / 1;
		margin-inline: auto;
		background: url(../images/icon_guideline.svg) no-repeat center center #fff;
	}
	.text { font-weight: 500; }
	.links {
		a {
			display: flex;
			flex-direction: column;
			justify-content: space-between;
			box-sizing: border-box;
			background: var(--color-beige) no-repeat;
			.subTitle {
				color: var(--color-brown);
				position: relative;
				&::before {
					content: "";
					display: block;
					position: absolute;
					border-radius: 50%;
					aspect-ratio: 1 / 1;
					background-color: var(--color-orange);
				}
			}
			.button {
				color: #fff;
				display: flex;
				margin-left: auto;
				align-items: center;
				justify-content: center;
				border-radius: 999px;
				background-color: var(--color-orange);
				&::after {
					content: "";
					display: block;
					aspect-ratio: 1 / 1;
					background: url(../images/arrow_white.svg) no-repeat center center;
					background-size: 100%;
				}
			}
		}
		.disability a {
			background-image: url(../images/guideline_link_disability.svg);
		}
		.scholarship a {
			background-image: url(../images/guideline_link_scholarship.svg);
		}
	}
}
@media screen and (min-width:769px), print{
	#guideline {
		margin-top: 75px;
		padding-block: 45px 100px;
		.title {
			font-size: 32px;
			&::before {
				width: 66px;
				margin-block: 15px;
				background-size: auto 43px;
			}
		}
		.text {
			font-size: 18px;
			margin-top: 25px;
		}
		.links {
			display: flex;
			justify-content: space-between;
			margin-top: 70px;
			li {
				width: calc(50% - 15px);
				a {
					height: 264px;
					padding: 25px 30px 30px 55px;
					border-radius: 20px;
					box-shadow: var(--shadow-pc);
					background-size: auto 215px;
					.subTitle {
						font-size: 24px;
						line-height: 36px;
						&::before {
							width: 9px;
							top: 14px;
							left: -16px;
						}
					}
					.button {
						height: 50px;
						font-size: 18px;
						padding-inline: 25px 20px;
						&::after {
							width: 18px;
							margin-left: 14px;
						}
					}
				}
				&.disability a { background-position: right 105px bottom 26px; }
				&.scholarship a { background-position: right 226px bottom 26px; }
			}
		}
	}
}
@media screen and (max-width:768px){
	#guideline {
		margin-top: 50px;
		padding-block: 35px 50px;
		.title {
			font-size: 20px;
			&::before {
				width: 43px;
				margin-block: 21px;
				background-size: 30px;
			}
		}
		.text {
			font-size: 12px;
			margin-top: 30px;
		}
		.links {
			margin-top: 45px;
			li + li { margin-top: 13px; }
			a {
				height: 258px;
				padding: 25px 11px 11px 35px;
				border-radius: 15px;
				box-shadow: var(--shadow-sp);
				.subTitle {
					font-size: 15px;
					&::before {
						top: 0;
						left: -15px;
						bottom: 0;
						height: 8px;
						margin-block: auto;
					}
				}
				.button {
					height: 40px;
					font-size: 12px;
					padding-inline: 23px 15px;
					&::after {
						width: 13px;
						margin-left: 11px;
					}
				}
			}
			.disability a {
				background-size: auto 172px;
				background-position: center 54%;
			}
			.scholarship a {
				background-size: auto 166px;
				background-position: center 46%;
			}
		}
	}
}

#footer {
	color: #fff;
	background-color: var(--color-green);
	#fLogo a { display: inline-block; }
	.contact a {
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 999px;
		box-sizing: border-box;
		background-color: var(--color-orange);
		&::before {
			content: "";
			display: inline-block;
			background: url(../images/icon_mail.svg) no-repeat center center;
			background-size: 100%;
			aspect-ratio: 1 / 1;
		}
	}
	.linkList {
		a::before {
			content: "";
			top: 0;
			bottom: 0;
			margin-block: auto;
			display: block;
			position: absolute;
			border-radius: 50%;
			aspect-ratio: 1 / 1;
		}
		& > li > a {
			position: relative;
			&::before { background-color: var(--color-orange); }
		}
		.subList a {
			position: relative;
			&::before { background-color: #fff; }
		}
	}
	.copyright { font-weight: 400; }
}
@media screen and (min-width:769px), print{
	#footer {
		font-size: 14px;
		line-height: 26px;
		.inner {
			display: flex;
			justify-content: space-between;
			padding: 100px 35px 45px 15px;
		}
		#fLogo a { width: 305px; }
		.address { margin-top: 25px; }
		.number { margin-top: 5px; }
		.contact a {
			width: 320px;
			height: 80px;
			font-size: 20px;
			font-weight: 700;
			margin-top: 20px;
			padding-right: 50px;
			&:hover { background-color: var(--color-brown); }
			&::before {
				width: 34px;
				margin-right: 46px;
			}
		}
		.column:last-child {
			display: flex;
			flex-direction: column;
			align-items: flex-end;
			justify-content: space-between;
		}
		.linkList {
			height: 280px;
			display: flex;
			flex-wrap: wrap;
			flex-direction: column;
			a:hover { color: var(--color-brown); }
			& > li {
				margin-left: 125px;
				margin-bottom: 35px;
				& > a {
					font-size: 16px;
					&::before {
						height: 9px;
						left: -22px;
					}
				}
			}
			.subList {
				padding-left: 35px;
				li {
					margin-top: 20px;
					a::before {
						height: 5px;
						left: -16px;
					}
				}
			}
		}
	}
}
@media screen and (max-width:768px){
	#footer {
		padding-block: 40px 25px;
		#fLogo img { width: 183px; }
		.address {
			font-size: 12px;
			line-height: 25px;
			margin-top: 38px;
		}
		.number {
			font-size: 12px;
			line-height: 25px;
			margin-bottom: 25px;
		}
		.contact a {
			width: 219px;
			height: 60px;
			font-size: 14px;
			font-weight: 500;
			padding-right: 20px;
			&::before {
				width: 22px;
				margin-right: 24px;
			}
		}
		.linkList {
			margin-top: 70px;
			padding-left: 15px;
			& > li {
				margin-top: 15px;
				& > a {
					font-size: 12px;
					&::before {
						height: 6px;
						left: -14px;
					}
				}
				.subList {
					display: flex;
					flex-wrap: wrap;
					padding-left: 15px;
					li {
						margin-top: 15px;
						margin-right: 44px;
						a {
							font-size: 11px;
							&::before {
								height: 3.5px;
								left: -9px;
							}
						}
					}
				}
			}
		}
		.copyright {
			font-size: 10px;
			margin-top: 40px;
		}
	}
}

/* lower page */
#container.lower { background: no-repeat center top; }
#pageHeader {
	color: var(--color-brown);
	#breadCrumb ul {
		display: flex;
		li + li::before {
			content: "＞";
			display: inline;
			margin-inline: 0.2em;
		}
		a {
			display: inline-block;
			border-bottom: 1px solid var(--color-brown);
		}
	}
	hgroup{
		&::before {
			content: "";
			left: 0;
			display: block;
			position: absolute;
			border-radius: 50%;
			aspect-ratio: 1 / 1;
			background: #fff no-repeat center center;
			background-size: 63%;
		}
	}
}
.textonly {
	#pageHeader hgroup {
		padding-left: 0;
		&::before { content: none; }
	}
	#contents {
		color: var(--color-brown);
		.textBox {
			.textBoxItem {
				background-color: var(--color-beige);
				.title {
					color: var(--color-orange);
					font-weight: 700;
				}
				.list {
					& > li {
						padding-left: 1em;
						position: relative;
						&::before {
							content: "";
							top: 0.95em;
							left: 0.2em;
							width: 0.4em;
							display: block;
							position: absolute;
							border-radius: 50%;
							aspect-ratio: 1 / 1;
							background-color: var(--color-orange);
						}
					}
				}
				.subList {
					& > li {
						padding-left: 1em;
						position: relative;
						&::before {
							content: "";
							top: 0.95em;
							left: 0.2em;
							width: 0.4em;
							display: block;
							position: absolute;
							border-radius: 50%;
							aspect-ratio: 1 / 1;
							background-color: var(--color-brown);
						}
					}
				}
			}
			.mainText { font-weight: 700; }
		}
		.images {
			display: flex;
			flex-wrap: wrap;
			align-items: flex-end;
			figcaption { color: var(--color-orange); }
		}
	}
}
@media screen and (min-width:769px), print{
	#container.lower {
		background-size: auto 673px;
		background-image: url(../images/bg_lower_pc.webp);
	}
	#pageHeader {
		display: flex;
		padding-top: 280px;
		flex-direction: row-reverse;
		justify-content: space-between;
		#breadCrumb {
			font-size: 13px;
			padding-top: 24px;
		}
		hgroup {
			position: relative;
			padding-top: 12px;
			padding-left: 126px;
			&::before {
				top: 0;
				width: 90px;
			}
			#pageTitle { font-size: 46px; }
			#subPageTitle {
				font-size: 18px;
				margin-top: 22px;
			}
		}
	}
	#contents { margin-top: 200px; }
	.textonly {
		#contents {
			.textBox {
				.textBoxItem {
					border-radius: 20px;
					padding: 40px 45px 50px;
					& + .textBoxItem { margin-top: 20px; }
					.title {
						font-size: 24px;
						line-height: 1.5;
					}
					.text {
						line-height: 34px;
						margin-top: 25px;
						& > * + * { margin-top: 10px; }
					}
				}
				.mainText {
					font-size: 20px;
					line-height: 49px;
					margin-bottom: 90px;
				}
			}
			.images {
				gap: 20px;
				line-height: 1.5;
				margin-block: 10px;
				figcaption { font-size: 12px; }
			}
		}
	}
}
@media screen and (min-width:1441px){
	#container.lower { background-size: 100% auto; }
}
@media screen and (max-width:768px){
	#container.lower {
		background-size: 100% 293px;
		background-image: url(../images/bg_lower_sp.webp);
	}
	#pageHeader {
		position: relative;
		padding-top: 105px;
		#breadCrumb ul {
			font-size: 9px;
			justify-content: flex-end;
		}
		hgroup {
			margin-top: 45px;
			&::before {
				top: 105px;
				width: 50px;
			}
			#pageTitle { font-size: 23px; }
			#subPageTitle {
				font-size: 11px;
				margin-top: 10px;
			}
		}
	}
	#contents { margin-top: 45px; }
	.textonly {
		#contents {
			.textBox {
				.textBoxItem {
					border-radius: 10px;
					padding: 25px 30px;
					& + .textBoxItem { margin-top: 10px; }
					line-height: 24px;
					.title { font-size: 15px; }
					.text {
						font-size: 12px;
						margin-top: 7px;
						& > * + * { margin-top: 7px; }
					}
				}
				.mainText {
					font-size: 14px;
					line-height: 38px;
					margin-bottom: 63px;
				}
			}
			.images {
				gap: 10px;
				line-height: 1.2;
				margin-block: 7px;
				figcaption { font-size: 12px; }
			}
		}
	}
}