@charset "UTF-8";
@import url(reset.css);
/*------------------------------------------
	fonts
-------------------------------------------*/
@font-face {
  font-family: "zen-kaku-gothic-antique";
  src:
    local("ZenKakuGothic"),
    url("../../fonts/ZenKakuGothicAntique-Light.woff") format("woff");
	font-weight: 300; 
	font-style: normal;
}
@font-face {
  font-family: "zen-kaku-gothic-antique";
  src:
    local("ZenKakuGothic"),
    url("../../fonts/ZenKakuGothicAntique-Regular.woff") format("woff");
	font-weight: 400; 
	font-style: normal;
}
@font-face {
  font-family: "zen-kaku-gothic-antique";
  src:
    local("ZenKakuGothic"),
    url("../../fonts/ZenKakuGothicAntique-Medium.woff") format("woff");
	font-weight: 500; 
	font-style: normal;
}
@font-face {
  font-family: "zen-kaku-gothic-antique";
  src:
    local("ZenKakuGothic"),
    url("../../fonts/ZenKakuGothicAntique-Bold.woff") format("woff");
	font-weight: 700; 
	font-style: normal;
}
@font-face {
  font-family: "zen-kaku-gothic-antique";
  src:
    local("ZenKakuGothic"),
    url("../../fonts/ZenKakuGothicAntique-Black.woff") format("woff");
	font-weight: 900; 
	font-style: normal;
}
@font-face {
  font-family: "zen-maru-gothic";
  src:
    local("ZenMaruGothic"),
    url("../../fonts/ZenMaruGothic-Light.woff") format("woff");
	font-weight: 300; 
	font-style: normal;
}
@font-face {
  font-family: "zen-maru-gothic";
  src:
    local("ZenMaruGothic"),
    url("../../fonts/ZenMaruGothic-Regular.woff") format("woff");
	font-weight: 400; 
	font-style: normal;
}
@font-face {
  font-family: "zen-maru-gothice";
  src:
    local("ZenMaruGothic"),
    url("../../fonts/ZenMaruGothic-Medium.woff") format("woff");
	font-weight: 500; 
	font-style: normal;
}
@font-face {
  font-family: "zen-maru-gothic";
  src:
    local("ZenKakuGothic"),
    url("../../fonts/ZenMaruGothic-Bold.woff") format("woff");
	font-weight: 700; 
	font-style: normal;
}
@font-face {
  font-family: "zen-maru-gothic";
  src:
    local("ZenMaruGothic"),
    url("../../fonts/ZenMaruGothic-Black.woff") format("woff");
	font-weight: 900; 
	font-style: normal;
}
@font-face {
  font-family: "zen-old-mincho";
  src:
    local("ZenOldMincho"),
    url("../../fonts/ZenOldMincho-Regular.woff") format("woff");
	font-weight: 400; 
	font-style: normal;
}
@font-face {
  font-family: "zen-old-mincho";
  src:
    local("ZenOldMincho"),
    url("../../fonts/ZenOldMincho-Medium.woff") format("woff");
	font-weight: 500; 
	font-style: normal;
}
@font-face {
  font-family: "zen-old-mincho";
  src:
    local("ZenOldMincho"),
    url("../../fonts/ZenOldMincho-SemiBold.woff") format("woff");
	font-weight: 600; 
	font-style: normal;
}
@font-face {
  font-family: "zen-old-mincho";
  src:
    local("ZenOldMincho"),
    url("../../fonts/ZenOldMincho-Bold.woff") format("woff");
	font-weight: 700; 
	font-style: normal;
}
@font-face {
  font-family: "zen-old-mincho";
  src:
    local("ZenOldMincho"),
    url("../../fonts/ZenOldMincho-Black.woff") format("woff");
	font-weight: 900; 
	font-style: normal;
}


/*------------------------------------------
	基本css
-------------------------------------------*/
* html body {
	background: url(null) fixed;
}
html, body {
	width: 100%;
}
html {
	overflow-x: hidden;
	font-size: 10px;
}
body {
	position: relative;
	margin: 0;
	padding: 0;
	font-family: "zen-kaku-gothic-antique", sans-serif;
	font-weight: 500;
	font-style: normal;
	font-size: 1.6rem;
	line-height: 1.6;
	color: #222;
	overflow: hidden;
	background-color: #FFFFFF;
	-webkit-text-size-adjust: 100%;
}

img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-backface-visibility: hidden;
	border-radius: 10px;
}
*:focus {
	outline: none;
}
input[type="submit"] {
  -webkit-appearance: none;
  border-radius: 0;
}
a {
	position: relative;
	display: block;
	color: #000;
	text-decoration: none;
	transition: all ease-out 0.6s ;
}
a:hover {
	text-decoration: none;
	opacity: 0.6;
	transition: all ease-out 0.4s ;
}
a img:hover {
	text-decoration: none;
	opacity: 0.6;
	transition: 0.4s;
}
.pcnone {
	display: none!important;
}
@media screen and (max-width: 896px) {
	.spnone {
		display: none!important;
	}
	.pcnone {
		display: block!important;
	}
}
.home h2 {
	text-align: center;
	font-size: 3.0rem; 
	font-family: "zen-old-mincho", sans-serif;
	font-weight: 400;
	font-style: normal;
}
.home h2 span {
	display: block;
	font-size: 1.5rem; 
	font-weight: 500;
	font-family: "zen-kaku-gothic-antique", sans-serif;
	font-style: normal;
}

/*------------------------------------------
サブページタイトル共通css
-------------------------------------------*/ 
.sub_page .title-a h1,
.sub_page .title-b h1 {
	position: relative;
	padding-bottom: 10px;
	width: 100%;
	height: auto;
	text-align: center;
	font-family: "zen-old-mincho", sans-serif;
	font-size: 3.3rem;
	font-weight: 400;
	border-bottom: 5px solid #F0EDDF;
}
@media screen and (max-width: 896px) {
	.sub_page .title-a h1,
	.sub_page .title-b h1 {
		position: relative;
		padding-bottom: 24px;
		width: 100%;
		height: auto;
		text-align: center;
		font-family: "zen-old-mincho", sans-serif;
		font-size: 3.3rem;
		font-weight: 400;
		border-bottom: 5px solid #F0EDDF;
	}
}
.sub_page .title-a h1::after,
.sub_page .title-b h1::after {
	content: '';
	position: absolute;
	margin: 0 auto;
	width: 60px;
	height: 5px;
	right: 0;
	left: 0;
	bottom: 0;
	background-color: #085C28;
	transform: translateY(5px);
}
.sub_page .title-c,
.sub_page .title-d {
	display: flex;
	justify-content: space-between;
	max-height: 360px;
}
@media screen and (max-width: 896px) {
	.sub_page .title-c, 
	.sub_page .title-d {
		display: flex;
		flex-flow: row wrap-reverse;
		justify-content: flex-end;
		max-height: 360px;
	}
}
.sub_page .title-c h1,
.sub_page .title-d h1 {
	padding: 0 0 10px 10%;
	width: 33%;
	height: auto;
	align-self: center;
	font-family: "zen-old-mincho", sans-serif;
	font-size: 3.3rem;
	font-weight: 400;
	border-bottom: 5px solid #F0EDDF;
} 
@media screen and (max-width: 896px) {
	.sub_page .title-c h1,
	.sub_page .title-d h1 {
		padding: 0 0 10px 20px;
		width: 100%;
		height: auto;
		align-self: center;
		font-family: "zen-old-mincho", sans-serif;
		font-size: 3.3rem;
		font-weight: 400;
		border-bottom: 5px solid #F0EDDF;
	} 
}

.sub_page .title-a h1 .sub_title,
.sub_page .title-b h1 .sub_title,
.sub_page .title-c h1 .sub_title,
.sub_page .title-d h1 .sub_title {
	width: 100%;
	color: #085C28;
	font-size: 1.5rem;
	text-transform: uppercase;
} 
.sub_page .title-a h1 .sub_title:first-of-type,
.sub_page .title-c h1 .sub_title:first-of-type {
	display: none;
}
.sub_page .title-b h1 .sub_title:last-of-type,
.sub_page .title-d h1 .sub_title:last-of-type {
	display: none;
}
.sub_page .title-c .firstview,
.sub_page .title-d .firstview {
	width: 65%;
	height: 360px;
}
@media screen and (max-width: 896px) {
	.sub_page .title-c .firstview,
	.sub_page .title-d .firstview {
		margin-bottom: 20px;
		width: 98%;
		height: 200px;
		align-items: flex-end;
		align-self: flex-end;	
	}
}
.sub_page .title-c .firstview img,
.sub_page .title-d .firstview img {
	border-top-left-radius: 10px;
	border-bottom-left-radius: 10px;
	border-top-right-radius: 0px;
	border-bottom-right-radius: 0px;
}

.sub_page h2 {
	position: relative;
	margin: 0 auto 40px;
	padding-bottom: 10px;
	max-width: 960px;
	width: 100%;
	text-align: center;
	font-size: 2.5rem; 
	font-weight: 700;
	/*border-bottom: 1px solid #085C28;*/
	border-bottom: 4px solid #D4D0BC;
}
.sub_page h2::after {
	content: '';
	position: absolute;
	display: block;
	right: 0;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: #085C28;
	/*border-bottom: 1px solid #085C28;*/
}
.sub_page#junior-high-students h2 {
	
	border-bottom:none
}
.sub_page#junior-high-students h2::after {
	display: none;
}


/*------------------------------------------
	general
-------------------------------------------*/
.u-mgb-10 {
	margin-bottom: 10px;
}
.u-mgb-20 {
	margin-bottom: 20px;
}
.u-mgb-30 {
	margin-bottom: 30px;
}
.u-mgb-40 {
	margin-bottom: 40px;
}
@media screen and (max-width: 896px) {
	.u-mgb-50 {
		margin-bottom: 30px;
	}
}
.u-mgb-60 {
	margin-bottom: 60px;
}
@media screen and (max-width: 896px) {
	.u-mgb-60 {
		margin-bottom: 40px;
	}
}
.u-mgb-70 {
	margin-bottom: 70px;
}

.u-mgb-80 {
	margin-bottom: 80px;
}
@media screen and (max-width: 896px) {
	.u-mgb-80 {
		margin-bottom: 40px;
	}
}
.u-mgb-90 {
	margin-bottom: 90px;
}
.u-mgb-100 {
	margin-bottom: 100px;
}
.u-flex_sb {
	display: flex;
	justify-content: space-between;
}

/*--flex box--*/
.flex_wrapper {
	display: flex;
}
.u-flex_rw_f-star {
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-start;
}
.u-flex_rrw_f-star {
	display: flex;
	flex-flow: row-reverse wrap;
	justify-content: flex-start;
}
.u-flex_rw_f-end {
	display: flex;
	flex-flow: row wrap;
	justify-content: flex-end;
}
.u-flex_rrw_f-end {
	display: flex;
	flex-flow: row-reverse wrap;
	justify-content: flex-end;
}
.u-flex_rw_cent {
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
}
.u-flex_nw_s-bet {
	display: flex;
	justify-content: space-between;
}
.u-flex_rw_s-bet {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}
.u-flex_rrw_s-bet {
	display: flex;
	flex-flow: row-reverse wrap;
	justify-content: space-between;
}


/*------------------------------------------
フォント
-------------------------------------------*/
.f-mincho {
	font-family: "zen-old-mincho", sans-serif;
	font-weight: 400;
}


/*------------------------------------------
	header
-------------------------------------------*/
header .access a {
	position: relative;
	padding-left: 30px;
	color: #fff;
	width: 190px;
	height: 70px;
	top: 0;
	right: 0;
	text-align: center;
	font-size: 1.5rem;
	line-height: 70px;
	background: #008B35 url("../../img/tel_icon.svg") center left 20px no-repeat;
	background-size: 30px auto;
	border-bottom-left-radius: 10px;
	z-index: 30;
	transition: all 0.4s;
}
@media screen and (min-width:896px) and ( max-width:1080px) {
	header .access a {
		position: relative;
		padding-top: 10px;
		padding-left: 0;
		color: #fff;
		width: 120px;
		height: 70px;
		top: 0;
		right: 0;
		text-align: center;
		font-size: clamp(1.2rem, 1.5vw, 1.5rem);
		line-height: 70px;
		background: #008B35 url("../../img/tel_icon.svg") top 10px center no-repeat;
		background-size: 20px auto;
		border-bottom-left-radius: 10px;
		z-index: 30;
		transition: all 0.4s;
	}
}
@media screen and (max-width: 896px) {
	header .access a {
		position: relative;
		padding-left: 30px;
		color: #fff;
		width: 50px;
		height: 50px;
		top: 0;
		right: 0;
		text-align: center;
		font-size: 1.5rem;
		line-height: 70px;
		background: #008B35 url("../../img/tel_icon.svg") center center no-repeat;
		background-size: 25px auto;
		border-bottom-left-radius: 0;
		z-index: 30;
		transition: all 0.4s;
	}
}
.active header .access {
	display: none;
	transition: all 0.8s;
}
.fv_left_contents {
	max-width: 203px;
	width: 20%;
}
.fv_left_contents img{
	border-radius: 0px;
}


/*------------------------------------------
ハンバーガーメニュー
-------------------------------------------*/
.head_box {
	position: fixed;
	width: 100%;
	height: 70px;
	display: flex;
	top: 0;
	justify-content: space-between;
	background: rgba(255,255,255,0.60);
	z-index: 90;
}
@media screen and (max-width: 896px) {
	.head_box {
		height: 50px;
	}
}
.head_box_02 {
	position: fixed;
	margin-bottom: 60px;
	width: 100%;
	top: 0;
	background: rgba(255,255,255,0.60);
	z-index: 10;
}
@media screen and (max-width: 896px) {
	.sub_page .head_box_02 {
		margin-bottom: 40px;
	}
}
.nav_wrapper {
	display: flex;
	justify-content: space-between;
}
.global_menu {
	margin-right: 20px;
	width: 570px;
}

.global_menu > ul li {
	position: relative;
	padding-left: 10px;
}
.global_menu > ul li::before {
	content: '';
	position: absolute;
	width: 2px;
	height: 20px;
	top: 50%;
	left: 0;
	background: #008B35;
	transform: translateY(-50%) scaleX(0.5);
}
.global_menu > ul li a {
	line-height: 70px;
	font-size: 1.5rem;
}
.global_menu > ul li a.activ {
	color: #085C28;
}
.nav_right {
	position: relative;
	display: flex;
	justify-content: flex-start;
}

.sub_page .header_logo {
	margin: 0;
	padding: 20px 24px;
	max-width: 320px;
	width: 25%;
	height: auto;
	background: #fff;
}
@media screen and (max-width: 896px) {
	.sub_page .header_logo {
		margin: 0;
		padding: 12px 24px;
		max-width: 320px;
		width: 60%;
		height: auto;
		background: #fff;
	}
}
.sub_page .header_logo img {
	width: 100%;
	height: auto;
	border-radius: 0;
}

header #h_btn {
	position: relative;
	display: block;
	width: 70px;
	height: 70px;
	pointer-events: auto;
	box-sizing: border-box;
	background: #F0EDDF;
	z-index: 90;
}
@media screen and (max-width: 896px) {
	header #h_btn {
		position: relative;
		display: block;
		width: 50px;
		height: 50px;
		pointer-events: auto;
		box-sizing: border-box;
		background: #F0EDDF;
		z-index: 50;
	}
}
#h_btn .h_bar,
#h_btn .h_bar span {
  display: block;
  transition: all .4s;
  box-sizing: border-box;
}
header #h_btn .h_bar {
	position: absolute;
	width: 25px;
	height: 17px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%)
}
header #h_btn .h_bar span {
	position: absolute;
	width: 100%;
	height: 2px;
	left: 0;
	background-color: #085C28;
	transform: scaleY(0.5);
}
header #h_btn .h_bar span::before {
	position: absolute;
	content: '';
	width: 3px;
	height: 2px;
	top: 0;
	left: 3px;
	background-color: #F0EDDF;
}
header #h_btn .h_bar span:first-child {
	top: 0;
}
header #h_btn .h_bar span:nth-child(2) {
	top: calc(50% - 1px);
	/*transform: translateY(-1px);*/
}
header #h_btn .h_bar span:last-child {
	width: 16px;
	bottom: 0;
}
header #h_btn.active .h_bar span {
  width: 30px;
  background: #085C28;
}
header #h_btn.active .h_bar span::before {
	display: none;
}
header #h_btn.active .h_bar span:first-child {
  transform: translateY(8px) rotate(-30deg) scaleY(0.5);
}
header #h_btn.active .h_bar span:nth-child(2) {
  opacity: 0;
}
header #h_btn.active .h_bar span:last-child {
  transform: translateY(-7px) rotate(30deg) scaleY(0.5);
}
header #h_content {
  position: fixed;
  right: 0;
  top: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(0,38,15,0.85);
  overflow-x: hidden;
  pointer-events: auto;
  transition: all 0.4s;
  transform: translateX(100%);
  opacity: 0;
  z-index: 30;
}
header #h_content.active {
  transform: translateX(0px);
  transition: all 0.8s;
  opacity: 1;
}
header #h_content .nav_inner {
	position: absolute;
	margin: 0 auto;
	max-width: 1000px;
	width: 70%;
	height: fit-content;
	display: block;
	top: 50%;
	left: 0;
	right: 0;
	bottom: 0;
	transform: translateY(-45%);
}
@media screen and (max-width: 896px) {
	header #h_content .nav_inner {
		position: absolute;
		margin: 0 auto;
		max-width: 1000px;
		width: 70%;
		height: fit-content;
		display: block;
		top: 100px;
		left: 0;
		right: 0;
		bottom: 0;
		transform: translateY(0);
	}
}
@media screen and (max-width: 896px) {
	header #h_content .nav_inner .nav_list {
		display: block;
	}
}

header #h_content .nav_inner .nav_list li {
	position: relative;
	margin-bottom: 20px;
}
@media screen and (max-width: 896px) {
	header #h_content .nav_inner .nav_list li {
		margin: 0 auto 20px;
		width: 200px;
	}
}

header #h_content .nav_inner .nav_list li a {
	display: block;
	min-width: 200px;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.6;
	white-space: nowrap;
	background-size: 12px auto;
}
@media screen and (max-width: 896px) {
	header #h_content .nav_inner .nav_list li a {
		display: block;
		color: #fff;
		font-size: 1.5rem;
		font-weight: 500;
		line-height: 1.6;
		white-space: nowrap;
		background-size: 12px auto;
	}
}
header #h_content .nav_inner .nav_list li.main a {
	padding-right: 25px;
	padding-bottom: 5px;
	border-bottom: 1px solid #fff;
} 
header #h_content .nav_inner .nav_list li.sub a {
	padding-left: 25px;
} 
header #h_content .nav_inner .nav_logo {
	position: relative;
	width: 52px;
}
@media screen and (max-width: 896px) {
	header #h_content .nav_inner .nav_logo {
		position: relative;
		margin: 0 auto;
		width: 200px;
		text-align: center;
	}
}
header #h_content .nav_inner .nav_logo .logo {
	margin: 0 auto;
	width: 26px;
	height: auto;
	
}
header #h_content .nav_inner .nav_logo img {
	border-radius: 0;
}
@media screen and (max-width: 896px) {
	header #h_content .nav_inner .nav_logo .logo {
		margin: 0 auto 35px;
		width: 176px;
		height: auto;
	}
}
header #h_content .nav_inner .nav_logo .heder_instagram {
	position: absolute;
	margin: 0 auto;
	bottom: 0;
	right: 0;
	left: 0;
}
@media screen and (max-width: 896px) {
	header #h_content .nav_inner .nav_logo .heder_instagram {
		position: relative;
		margin: 0 auto 35px;
		width: 76px;
	}
}

/*------------------------------------------
link
-------------------------------------------*/
.btn_left_white {
	background-image: url("../../img/btn_item_white.svg");
	background-position: left center;
	background-repeat: no-repeat;
}
.btn_right_white {
	background: url("../../img/btn_item_white.svg");
	background-position: right center;
	background-repeat: no-repeat;
}
.btn_left_green {
	background-image: url("../../img/btn_item_green.svg");
	background-position: left center;
	background-repeat: no-repeat;
}
.btn_right_green {
	background: url("../../img/btn_item_green.svg");
	background-position: right center;
	background-repeat: no-repeat;
}

.btn_download {
	padding-left: 30px;
	background: url("../../img/btn_download_icon.svg");
	background-position: left bottom;
	background-repeat: no-repeat;
}
/*------------------------------------------
pdf_link
-------------------------------------------*/
.event_pdf  {
	margin: 0 auto 40px;
}
.pdf_link {
	margin: 0 auto 70px;
}

.pdf_link{
	width: auto;
	display: grid;
    gap: 10px;
}
@media screen and (max-width: 896px) {
	.pdf_link {
		margin: 0 auto 40px;
		width: 100%;
		display: grid;
		gap: 10px;
	}
}

.pdf_link.cols-1,
.pdf_link.cols-2 {
	max-width: 100%;
	width: auto;
	display: grid;
    gap: 10px;
	grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
}
.pdf_link.cols-1 {
	max-width: 380px;
}
.pdf_link.cols-3 {
	max-width: 100%;
	width: auto;
	display: grid;
    gap: 10px;
	grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
}
.pdf_link a, 
.pdf_link div, 
.event_pdf a {
	padding-left: 70px;
	width: 100%;
	height: 70px;
	display: flex;
	align-items: center;
	align-self: center;
	font-size: 1.5rem;
	font-weight: 700;
	background-color:  #FAF8F5;
	background-image: url('../../img/pdf_icon.svg'), url("../../img/btn_item_green.svg");
	background-position: left 24px center, right 20px center;
	background-repeat: no-repeat;
	border-radius: 10px;
}
.pdf_link a,
.pdf_link div {
	font-size: 1.4rem;
	letter-spacing: -0.5px;
	font-weight: 700;
}
.pdf_link img,
.event_pdf img {
	width: 30px;
	height: auto;
}

#more_disp {
	position: relative;
	margin: 0 auto;
	padding-left: 20px;
	width: 240px;
	height: 46px;
	display: flex;
	color: #085C28;
	font-size: 1.4rem;
	line-height: 46px;
	background: #FAF8F5;
	border: 1px solid #F0EDDF;
	border-radius: 10px;
	pointer-events: all;
	cursor: pointer;
}
#more_disp::before {
	content: '';
	display: inline-block;
		align-self: center;
	width: 16px;
	height: 16px;
	margin-right: 15px; /* 文字との隙間 */
	/* 縦線と横線を背景グラデーションで描画して交差させる */
	background: 
		linear-gradient(#085C28, #085C28) center / 2px 100% no-repeat,
		linear-gradient(#085C28, #085C28) center / 100% 2px no-repeat;
}
#more_disp:hover {
	opacity: 0.5;
	transition: 0.4s;
}

#principal #more_disp {
	background: #fff;
}
.exam_notice_list,.exam_schedule_list {
	list-style: disc;
}
.exam_notice_list li,.exam_schedule_list li {
	margin-bottom: 20px;
}
.pdf_link_text .notice_title {
	padding-right: 40px;
	display: inline-block;
	text-decoration: underline;
	background: url(../../img/pdf_icon.svg) center right no-repeat;
	background-size: auto 100%;
}
.exam_notice_list .notice_title,
.exam_schedule_list .schedule_title {
	font-weight: 700;
}
.schedule_desc a {
	display: inline-block;
	
}

/*------------------------------------------
サブページ
-------------------------------------------*/
.sub_page header {
	padding-top: 100px;
	margin-bottom: 100px;
}
@media screen and (max-width: 896px) {
.sub_page header {
		padding-top: 60px;
		margin-bottom: 60px;
	}
}
.sub_page .page_link {
	margin:  0 auto 70px;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
	gap: 10px;
}
.sub_page .page_link.cols-1 {
	max-width: 320px;
	width: 90%;
}
.sub_page .page_link.cols-2 {
	max-width: 640px;
	width: 90%;
}
.sub_page .page_link.cols-3 {
	max-width: 960px;
	width: 90%;
}
@media screen and (max-width: 768px) {
	.sub_page .page_link {
		margin:  0 auto 70px;
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
		gap: 10px;
	}
}
.sub_page .page_link li {
	max-width: 100%;
	width: 100%;
	height: 64px;
}
.sub_page .page_link li a {
	position: relative;
	padding: 20px 15px;
	border: 1px solid #F0EDDF;
	border-radius: 10px;
	background: #FAF8F5;
}
.sub_page .page_link li a::before {
	content: url("../../img/btn_item_green.svg");
	position: absolute;
	top: 50%;
	right: 15px;
	transform: translateY(-50%) rotate(90deg);
}

.sub_page dl {
	display: block;
}
.sub_page dl dt,
.sub_page dl dd {
	display: inline-block;;
}


/*------------------------------------------
アバウトインデックス
-------------------------------------------*/
.sub_page .about_index {
	margin: 0 auto;
	max-width: 960px;
	width: 90%;
	display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: 15px;   
}
.sub_page .about_index .item {
	margin-right: 15px;
	max-width: 100%;
	width: 100%;
	height: auto;
	background: #FAF8F5;
	border: 1px solid #F0EDDF;
	border-radius: 10px;
}
@media screen and (max-width: 896px) {
	.sub_page .about_index .item {
		margin-right: 0;
		max-width: 100%;
		width: 100%;
		background: #FAF8F5;
		border: 1px solid #F0EDDF;
		border-radius: 10px;
		align-self: flex-end;
	}
}

.sub_page .about_index .item .photo {
	padding: 5px 5px 0 5px;
	width: 100%;
	height: auto;
	aspect-ratio: 300/225;
}
.sub_page .about_index .item .photo img {
	border-radius: 5px;
}
.sub_page .about_index .item a {
	padding-left: 10px;
	width: 100%;
	height: 64px;
	line-height: 64px;
	background-position: center right 10px;
}

/*------------------------------------------
contents
-------------------------------------------*/
.content_inner {
	margin: 0 auto;
	max-width: 1100px;
	width: 90%;
}
.inner {
	margin: 0 auto;
/*	padding-top: 100px;*/
	width: 90%;
}
.inner_770 {
	margin: 0 auto;
	max-width: 770px;
	width: 90%;
}
.inner_960 {
	margin: 0 auto 70px;
	max-width: 960px;
	width: 90%;
}
@media screen and (max-width: 896px) {
}
.inner_1050 {
	margin: 0 auto;
	max-width: 1050px;
	width: 90%;
}
.inner_1160 {
	margin: 0 auto;
	max-width: 1160px;
	width: 90%;
}

/*------------------------------------------
banner
-------------------------------------------*/

.jh_banner a {
	position: relative;
}
.jh_banner a::after {
	content: '詳しくはこちら';
	position: absolute;
	padding-left: 30px;
	width: 170px;
	height: 50px;
	right: 0;
	bottom: 0;
	line-height: 50px;
	color: #fff;
	background: url("../../img/btn_item_white.svg")left center no-repeat;
}


/*------------------------------------------
news
-------------------------------------------*/
.news_wrapper h2 {
	margin-right: 35px;
	padding: 30px 30px 0;
	height: 50%;
	max-height: 200px;
	color: #fff;
	background: #085C28;
	border-bottom-right-radius: 10px;
	border-bottom-left-radius: 10px;
}

.news_wrapper .post_content .title_erea {
	position: relative;
}
.news_wrapper .post_content .title_erea a {
	position: absolute;
	margin-right: 35px;
	padding: 0 25px 0 30px;
	right: 0;
	left: 0;
	bottom: 40px;
	color: #085C28;
	text-align: right;
	font-size: 1.4rem;
	/*background: url("../../img/btn_item_green.svg")left 25px center no-repeat;*/
	background-position: left 25px center;
}
.news_wrapper .post_content .items {
	padding: 40px 0 20px;
}
@media screen and (max-width: 896px) {
	.news_wrapper .post_content .items {
		padding: 30px 0 20px;
	}
}
.news_wrapper .post_content .item {
	margin-bottom: 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid #D4D0BC;
}
.news_wrapper .post_content .item .day_time {
	margin-right: 10px;
	font-size: 1.4rem;
	letter-spacing: 1px;
}
.news_wrapper .post_content .item .badge {
	padding: 2px 10px;
	min-width: 120px;
	display: inline-block;
	color: #fff;
	font-size: 1.2rem;
	border-radius: 5px;
}
.news_wrapper .post_content .item.important_news .badge {
	background: #B41E1E;
}
.news_wrapper .post_content .item.news .badge {
	background: #085C28;
}
.news_wrapper .post_content .item.information .badge, 
.news_wrapper .post_content .item.future .badge, 
.news_wrapper .post_content .item.activity .badge {
	background: #085C28;
}
.news_wrapper .post_content .item .text {
	font-size: 1.4rem;
}
.news_wrapper .post_content .item.important_news .text {
	color: #B41E1E;
}
.news_wrapper .post_content .item.news .text {
	color: #085C28;
}

/*------------------------------------------
single
-------------------------------------------*/
.single  {
	color: #222;
}
.single.sub_page .header_logo {
	padding: 20px 0 0 24px;
}
.single.sub_page .post_title {
	position: relative;
	margin-bottom: 60px;
	padding-bottom: 24px;
	border-bottom: 5px solid #F0EDDF;
}
.single.sub_page .single_title, 
.single.sub_page .post_title h1 {
	margin: 0 auto;
	max-width: 960px;
	width: 90%;
}
.single.sub_page .post_title::after {
	content: '';
	position: absolute;
	margin: 0 auto;
	max-width: 960px;
	width: 100%;
	height: 5px;
	right: 0;
	left: 0;
	bottom: 0;
	background-color: #085C28;
	transform: translateY(5px);
}
.single.sub_page .post_title h1 {
	font-family: "zen-old-mincho", sans-serif;
	font-size: clamp(2.0rem, 2.3vw, 2.3rem);
	font-weight: 700;
}
.single.sub_page .post_title .single_title .cat_slug {
	margin-right: 10px;
	font-family: "zen-old-mincho", sans-serif;
	color: #085C28;
	font-size: 1.8rem;
	text-transform: uppercase;
}
.single.sub_page .post_title .single_title .day_time {
	margin-right: 10px;
	font-size: 1.4rem;
	letter-spacing: 1px;
}
.single.sub_page .post_title .single_title .badge {
	padding: 2px 10px;
	min-width: 120px;
	display: inline-block;
	color: #fff;
	font-size: 1.2rem;
	border-radius: 5px;
}
.single.sub_page .post_title.important_news .badge {
	background: #B41E1E;
}
.single.sub_page .post_title.news .badge {
	background: #085C28;
}
.single.sub_page .post_title .single_title .text {
	font-size: 1.4rem;
}
.single.sub_page .post_title.important_news .text {
	color: #B41E1E;
}
.single.sub_page .post_title.news .text {
	color: #085C28;
}

/* H3のデザイン */
.sub_page h3 {
	margin-bottom: 25px;
	color: #085C28;
	font-size: 2.1rem;
	font-weight: 700;
	border-bottom: 2px solid #D4D0BC;
}
/* H4のデザイン */
.sub_page h4 {
	position: relative;
	margin-bottom: 15px;
    padding-left: 15px;
    font-size: 1.9rem;
    font-weight: bold;
	color: #000000;
	/*border-left: 5px solid #2e7d32;*/ 
}
.sub_page h4::before {
 	content: url("../../img/single_post_h4title_item.svg");
	position: absolute;
	display: block;
	width: auto;
	height: 15px;
	top: 15px;
	left: 0;
	transform: translateY(-100%);
}
/* H5のデザイン */
.sub_page h5 {
    color: #085C28; /* 緑色の文字 */
    font-size: 1.7rem;
    font-weight: bold;
    margin-bottom: 10px;
}
.sub_page b {
	margin-bottom: 30px;
	display: block;
	font-family: "zen-old-mincho", sans-serif;
	font-size: clamp(2.0rem, 2.3vw, 2.2rem);
	font-weight: 700;
	color: #085C28;
}
@media screen and (max-width: 896px) {
	.sub_page b {
		letter-spacing: -0.8px;
	}
}
.sub_pag strong {
	font-weight: 700;
}
.single img {
	border-radius: 10px;
}
.single p {
	margin-bottom: 30px;
	color: #222222;
	font-weight: 500;
}
@media screen and (max-width: 896px) {
	.single p {
		color: #222222;
		font-weight: 500;
		letter-spacing: -0.5px;
	}
}


/*------------------------------------------
footer
-------------------------------------------*/
footer {
	padding: 100px 0 0;
	border-top: 2px solid #085C28;
	background: #fff;
	
}
footer .inner {
	margin: 0 auto 100px;
	max-width: 1155px;
	width: 90%;	
}
@media screen and (min-width:896px) and ( max-width:1180px) {
	footer .inner.u-flex_rw_s-bet {
		flex-flow: nowrap;
	}
	footer .inner.u-flex_rw_s-bet > div {
		margin-right: 40px;
	}
}
@media screen and (max-width: 896px) {
	footer .inner {
		margin: 0 auto 100px;
		max-width: 1155px;
		width: fit-content;	
		display: flow;
	}
}
footer .footer_logo {
	margin-bottom: 20px;
	width: 210px;
	height: auto;
}
footer .inner .add {
	margin-bottom: 15px;
	font-size: 1.4rem;
	line-height: 1.4;
	font-weight: 400;
}
footer .inner .tel {
	margin-bottom: 15px;
	font-size: 1.8rem;
	line-height: 1.4;
	font-weight: 500;
	color: #085C28;
}
footer .inner .tel > span {
	margin-bottom: 15px;
	font-size: 1.3rem;
	line-height: 1.4;
	font-weight: 500;
	color: #085C28;
}
footer .inner .instagram_icon {
	width: 120px;
	height: auto
}
@media screen and (max-width: 896px) {
	footer .inner .instagram_icon {
		margin-bottom: 40px;
		width: 120px;
		height: auto
	}
}
footer .inner ul {
	margin-right: 30px;
	min-width: 200px;
	width: calc(100%/4 - 30px)
}
footer .inner ul:last-of-type {
	margin-right: 0;
}
footer .inner ul li {
	margin-bottom: 16px;
}
ul li.circle {
	display: flex;
	align-self: center;
	align-items: center;
	font-size: 1.4rem;
}
.nav_list ul li.circle {
	display: flex;
	align-self: center;
	align-items: center;
	font-size: 1.2rem;
	color: #fff;
}
ul li.circle::before {
	content: '●';
	margin-right: 5px;
	display: inline-block;
	font-size: 8px;
}

footer .inner .main a {
	color: #085C28;
	font-size: 1.6rem;
	font-weight: 700;
	border-bottom: 2px solid #085C28;
	background-size: 13px auto;
}
footer .inner .sub a {
	padding-left: 20px;
	font-size: 1.5rem;
	background-size: 13px auto;
}

small {
	display: block;
	background: #085C28;
	text-align: center;
	font-family: "zen-old-mincho", sans-serif;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 50px;
}




/*------------------------------------------
  ページビルダー：スペーサー
-------------------------------------------*/
.builder-spacer {
	width: 100%;
	height: var(--spacer-pc); /* PC用の高さを適用 */
	clear: both;
}

@media screen and (max-width: 896px) {
	.builder-spacer {
		height: var(--spacer-sp); /* スマホ用の高さを適用 */
	}
}
/*------------------------------------------
  ページビルダー
-------------------------------------------*/
/* 全体の余白 */
hr {
	border: 1px solid #085C28;
}
.builder-section {
}

@media screen and (max-width: 896px) {
	.builder-section {
		margin:0 auto;
		width: 90%;
	}
	.builder-section.layout-standard {
		margin: 0 auto;
		width: 100%;
	}
	.builder-section.layout-standard b, 
	.builder-section.layout-standard .text {
		margin: 0 auto;
		width: 90%;
	}
	.builder-section.layout-standard .photo img {
		border-radius: 0;
	}
	.builder-section.has-bg-color {
		width: 100%;
	}	
}
/* 画像レスポンシブ */
.builder-section .photo {
    max-width: 100%;
    height: auto;
    display: block;
}
@media screen and (max-width: 896px) {
	.builder-section .photo {
		max-width: 100%;
		height: auto;
		display: block;
	}
}
.builder-section .caption {
	padding-top: 10px;
	font-size: 1.3rem;
	font-weight: 400;
}
@media screen and (max-width: 896px) {
	.builder-section .caption {
		margin: 0 auto 30px;
		padding-top: 10px;
		width: 90%;
	   font-size: 1.3rem;
		font-weight: 400;
	}
}
.builder-section .btn_left_green {
	padding-left: 24px;
}
.builder-section .btn_left_green.back_g_link {
	padding-left: 45px;
	max-width: 240px;
	width: 90%;
	height: 46px;
	line-height: 46px;
	background-color: #FAF8F5;
	background-position: left 20px center;
	border: 1px solid #F0EDDF;
	border-radius: 10px;
}

/* B. 画像2枚並び */
.layout-2images .image-row {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}
.layout-2images .image-row .photo {
    width: 49%; /* 隙間を考慮して半分弱 */
}

/* C. 文章＋画像（左右） */
.layout-flex.has-bg-color {
	padding: 50px;
    background-color: #FAF8F5; /* ベージュ背景 */
	border-radius: 10px;
}
@media screen and (max-width: 896px) {
	.layout-flex.has-bg-color {
		padding: 35px 20px;
		border-radius: 0;
	}
}
.layout-flex .flex-wrap {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}
.layout-flex .flex-text {
    flex: 1;
}
.layout-flex .flex-image {
	max-width: 540px;
    width: 58%; /* 画像の幅 */
}
/* 左画像の場合は逆順にするクラス */
.layout-flex .flex-wrap.row-reverse {
    flex-direction: row-reverse;
}

/* D. 2カラム独立ブロック */
.layout-2col-block {
    display: flex;
    gap: 30px;
}
.layout-2col-block .col-item {
    flex: 1; /* 均等割 */
}


.sub_page > ul > li, 
.custom-builder-area .free-content > ul > li {
	margin-bottom: 10px;
	padding-left: 15px;
	position: relative;
}
.sub_page > ul > li, 
.custom-builder-area .free-content > ul > li::before {
	content: '　';
	position: absolute;
	display: block;
	width: 5px;
	height: 5px;
	top: 10px;
	left: 0;
	background-color: #085C28;
	
}
.custom-builder-area .free-content table tr {
	border-top: 1px solid #D4D0BC;
	border-bottom: 1px solid #D4D0BC;
	
}
.custom-builder-area .free-content table tr th,
.custom-builder-area .free-content table tr td {
	padding: 15px 10px;
}
.custom-builder-area .free-content table tr th {
	max-width: 270px;
	width: 30%;
	color: #085C28;
	font-weight: 700;
	background: #FAF8F5;
}

/* スマホ対応 */
@media (max-width: 768px) {
    .layout-2images .image-row,
    .layout-flex .flex-wrap,
    .layout-2col-block {
        display: block; /* 縦並びに戻す */
    }
    .layout-2images .image-row .photo,
    .layout-flex .flex-image {
        width: 100%;
        margin-top: 20px;
    }
}



/*==================================================
  共通コンポーネント (Global Components)
==================================================*/

/*------------------------------------------
  メディア＆テキストブロック (.media_text_block)
-------------------------------------------*/
.img_text_block {
	margin-bottom: 50px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
@media screen and (max-width: 896px) {
	.img_text_block {
		margin-bottom: 40px;
		display: block;
	}
}

/* 画像エリア */
.img_text_block .photo {
	width: 60%;
}
@media screen and (max-width: 896px) {
	.img_text_block .photo {
		margin-bottom: 20px;
		width: 100%;
	}
}
.img_text_block .photo img {
	width: 100%;
	height: auto;
	border-radius: 10px;
}

/* テキストエリア */
.img_text_block .text_area {
	max-width: 430px;
	width: 38%;
}
@media screen and (max-width: 896px) {
	.img_text_block .text_area {
		width: 100%;
	}
}

/* 逆配置（右画像・左テキスト） */
.img_text_block.reverse {
	flex-direction: row-reverse;
}

/* 説明文 */
.img_text_block .img_text_desc {
	margin-bottom: 30px;
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.8;
}

/* グレーの矢印ボタン */
.btn_right_gray {
	padding: 0 40px 0 20px;
	max-width: 310px;
	width: 90%;
	height: 64px;
	display: flex;
	align-items: center;
	color: #333;
	font-size: 1.4rem;
	font-weight: 500;
	background-color: #FAF8F5;
	background-image: url("../../img/btn_item_green.svg");
	background-position: right 15px center;
	background-repeat: no-repeat;
	border-radius: 10px;
	transition: opacity 0.3s;
	border: 1px solid #F0EDDF;
}
@media screen and (max-width: 896px) {
	.btn_right_gray {
		max-width: 100%;
	}
}
a.text_link {
	display: inline-block;
	color: #085C28;
	font-weight: 700;
	border-bottom: 1.5px solid #085C28;
}


/*------------------------------------------
fadein
-------------------------------------------*/
.fadein {
 opacity: 0;
 -webkit-transition: all 3s;
 -moz-transition: all 3s;
 -o-transition: all 3s;
 -ms-transition: all 3s;
 transition: all 3s;
 transform: translateY(100px);
}
@media screen and (max-width: 896px) {
	.fadein {
	 opacity: 0;
	 -webkit-transition: all 2s;
	 -moz-transition: all 2s;
	 -o-transition: all 2s;
	 -ms-transition: all 2s;
	 transition: all 2s;
	 transform: translateY(100px);
	}
}

.fade_on {
 opacity: 1;
 transform: translateY(0px);
}