@charset "utf-8";
/*
	* 基本スタイルシート
	* CMSのパーツ、テンプレートのスタイル
	* ver1
	* Copyright (C) ●●など
	* 更新履歴
		└ 
*/
/* *{
	border: solid 1px #ccc;
} */
/* ////////////////////////////////////////////////////////////////////////////////////////////////////
	CMSスタイル設定
//////////////////////////////////////////////////////////////////////////////////////////////////// */
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	テンプレート > フロントページ
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/* ============================================================
	共通
============================================================ */
.front-page-main{
	padding-top: 1rem;
    padding-bottom: 2rem;
}

.bl_section-ttl {
   font-size: var(--fontSize30);
    font-weight: bold;
    margin-bottom: 2rem;
    font-family: "Zen Old Mincho", serif;
    font-weight: 500;
    font-style: normal;
    position: relative;
    padding-left: 40px;
}
.bl_section-ttl::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%; /* 縦方向中央に配置 */
  transform: translateY(-50%); /* 縦方向中央揃えの微調整 */
  width: 1em; /* 横線の長さ */
  height: 2px; /* 横線の太さ */
  background-color: var(--mainColor); /* 横線の色 (任意の色に変更) */
 }

/* フロントページのセクション間の余白 */
.page-template-front-page section + section{
	margin-top: 6rem;
}

.page-template-front-page section:last-of-type {
  /* ここにスタイルを記述 */
  margin-bottom: 8rem;
}

/* 一覧を見るボタン */
.bl_more_link{
    text-align: end;
    display: flex;
    justify-content: flex-end;
}
.bl_more_link a {
    position: relative; /* 疑似要素を配置するために必要 */
    padding-right: 25px; /* 矢印のためのスペースを確保 */
	text-decoration: none;
	font-weight: 500;
}

/* 円を作成 */
.bl_more_link a::after {
    content: ""; /* 疑似要素を表示するために必須 */
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    display: inline-block;
    width: 20px; /* 円の大きさ */
    height: 20px; /* 円の大きさ */
    border: 1px solid var(--mainColor); /* 円の枠線 */
    border-radius: 50%; /* 円形にする */
}

/* 矢印（くの字）を作成 */
.bl_more_link a::before {
    content: ""; /* 疑似要素を表示するために必須 */
    position: absolute;
    top: 50%;
    right: 8px; /* 矢印の位置を調整 */
    transform: translateY(-50%) rotate(45deg);
    display: inline-block;
    width: 6px; /* 矢印の大きさ */
    height: 6px; /* 矢印の大きさ */
    border-top: 2px solid var(--mainColor); /* 矢印の上辺 */
    border-right: 2px solid var(--mainColor); /* 矢印の右辺 */
}


@media screen and (max-width: 992px) {
	.front-page-main{
	padding-top: 0;
    padding-bottom: 2rem;
}
}



@media screen and (max-width: 768px) {
	
section:last-of-type {
  /* ここにスタイルを記述 */
  margin-bottom: 3rem;
}
.page-template-front-page section + section{
	margin-top: 3rem;
}

.page-template-front-page .bl_section-ttl {
font-size: 1.5rem;
margin-bottom: 1.25rem;
}
.page-template-front-page section:last-of-type {
    margin-bottom: 3rem;
}

}

/* ============================================================
　bl_mv
============================================================ */
.bl_mv img{
	width: 100%;
	box-shadow: 0px 0px 14px rgba(0, 0, 0, 0.09);
}

/* ============================================================
　bl_news
============================================================ */

.bl_news-list-item {
    list-style-type: none;
}
.bl_news_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 4rem;
  align-items: center;
}

.bl_news-list-item br,.news_title br,.bl_post-ttl br {
    display:none;
}

/* ニュースタイトルのエリアを固定幅にする */
.bl_news_ttl_area {
  flex-shrink: 0; /* 縮小させない */
  width: calc(23rem + 40px); /* 任意の固定幅を指定 */
}

/* ニュースリストのエリアが残りの幅を埋め、スクロールを可能にする */
.bl_news_area {
  flex-grow: 1;
  max-height: 300px; /* ★ここを任意で調整：ボックスの最大高さを指定 */
  overflow-y: scroll; /* ★ここを追加：高さを超えた場合にスクロールバーを表示 */
}


/* ニュースリストのエリアが残りの幅を埋める */
.bl_news_area {
  flex-grow: 1;
  width: calc((23rem + 40px) - 4rem);
  margin-bottom: 2rem;
}

/* ニュースリストの項目 */
.bl_news-list-item {
  list-style-type: none;
  padding: .75rem 0; /* 上下のパディングを追加 */
  border-bottom: 1px solid #ccc; /* 薄い下線を追加 */
position: relative;
    overflow: hidden;
}
.bl_news-list-item:hover{
	background-color: var(--accentColor);
	transition: .8s;
}
span.cat {
    position: relative;
    z-index: 1;
}

/* 最後のリスト項目に下線を表示しない */
.bl_news-list-item:last-child {
  border-bottom: none;
}

/* NEWアイコン */
span.new-icon {
    background-color: #fff59a;
    padding: 0 5px;
    font-size: 12px;
    font-weight: bold;
}

.news_title {
    text-decoration: none;
    font-weight: 400;
}
.news_title:hover{
	opacity: initial;
}
.news_title::before {
content: "";
position: absolute;
top: -1px;
left: -1px;
right: -1px;
bottom: -1px;}

span.date {
    color: #505150;
    /* font-weight: bold; */
}
.bl_news-top {
    margin-bottom: .25rem;
}
.cat-item {
    padding: 0 10px;
    font-size: var(--fontSize14);
    text-decoration: none;
    border: solid 1px #71b160;
	background-color: #fff;
}

.cat-item:hover{
	opacity: initial;
}

/* --- レスポンシブ対応 --- */

@media screen and (max-width: 1220px){
	.bl_news_area{
		width: 100%;
	}
	  .bl_news_wrap {
    flex-direction: column; /* 縦並びにする */
    gap: 0; /* 縦の余白を調整 */
  }
    .bl_news_wrap {
    flex-direction: column; /* 縦並びにする */
    gap: 0; /* 縦の余白を調整 */
  }
  .bl_news_ttl_area{
	width: 100%;
  }
}

/* ============================================================
　bl_about
============================================================ */

.bl_about_wrap{
	display: flex;
	    justify-content: flex-end;
	gap: 5rem;
}

.bl_about_txt{
	font-size: var(--fontSize18);
	line-height: 1.75;
	/* font-weight: bold; */
	max-width: 550px;
	padding: 9rem 0 10rem 0;
}

.bl_about_img{
	max-width: 900px;
	    padding: 4rem 0 2rem 0;
}

/* 背景画像 */
.bl_about_bg{
	background-color: #f5fbf4;
	position: relative;
}
.wave{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
}

.wave svg {
    position: relative;
    display: block;
    width: calc(100% + 1.3px);
    height: 70px;
}

.wave .shape-fill {
    fill: #FFFFFF;
}

.bl_about_img img{
	height: 100%;
	object-fit: cover;
}

/* --- レスポンシブ対応 --- */
@media screen and (max-width: 768px){
	.bl_about_wrap {
    flex-direction: column-reverse;
	align-items: center;
	gap: 2rem;
}
.bl_about_txt{
width: calc(100% - 2rem);
        max-width: 100%;
        padding: 0;
        padding-bottom: 5rem;
        line-height: 1.5;
        font-size: 1rem;
}
}

@media screen and (max-width: 576px){
.bl_about_img img{
	max-width: 300px;
	height: auto;
}
}


/* ============================================================
bl_sub-contents
============================================================ */

/* ====================================
   サブコンテンツボックスの共通スタイル
   ==================================== */
.bl_sub-contents_box_wrap {
  display: flex;
  justify-content: center;
  gap: 4rem;
  flex-wrap: wrap;
}

.bl_sub-contents_box {
  position: relative;
  /* flex-basis: 50%; */
  width: calc((100% - 4rem) / 2);
  height: 300px; /* 任意の高さに調整してください */
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; /* ★重要：背景画像がはみ出すのを防ぎます */
  cursor: pointer;
  font-size: var(--fontSize30);
  border-radius: 10px;
  box-shadow: 0px 0px 14px rgba(0, 0, 0, 0.09);
  position: relative;
}

.bl_sub-contents_box .txt-serif{
	font-weight: 500;
}
.bl_sub-contents_box a{
  color: #ffffff; /* 白色の文字 */
  font-weight: bold;
  text-decoration: none;
}
.bl_sub-contents_box a::after{
content: "";
position: absolute;
top: -1px;
left: -1px;
right: -1px;
bottom: -1px;
}

.bl_sub-contents_box a:hover{
	opacity: initial;
}

/* ====================================
   背景画像とフィルターの設定
   ==================================== */
.bl_sub-contents_box::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  /* ホバー時のアニメーション設定 */
  transition: transform 0.5s ease;
  z-index: -1;
}

/* ホバー時の背景画像拡大アニメーション */
.bl_sub-contents_box:hover::before {
  transform: scale(1.1);
}

/* ====================================
   個別の背景画像とフィルター
   ==================================== */

/* 1つ目のボックス */
.bl_sub-contents_box--first::before {
    background-image: linear-gradient(rgb(0 0 0 / 29%), rgb(0 0 0 / 55%)), url(../img/sub-contents01.png);
}

/* 2つ目のボックス */
.bl_sub-contents_box--second::before {
    background-image: linear-gradient(rgb(0 0 0 / 29%), rgb(0 0 0 / 55%)), url(../img/sub-contents02.png);
}

/* --- レスポンシブ対応 --- */
@media screen and (max-width: 768px){
.bl_sub-contents_box {
         flex-basis: 100%;
        aspect-ratio: 2 / 1;
        width: 100%;
        height: auto;
		font-size: 1.25rem;
}
.bl_sub-contents_box_wrap{
	gap: 2rem;
}
}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	テンプレート > デフォルトテンプレート
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/*
 * 下層ページタイトルのスタイル
 */
.bl_page-ttl {
  background-color: #f5f5f5; /* 背景色（薄いグレー） */
  padding: 5rem 0; /* 上下の余白 */
  margin-bottom: 4rem;
  background-image: url(../img/bg-page-ttl.jpg);
  background-size: cover;
  background-repeat: no-repeat;
background-position: center;
    font-size: 2.5rem;
    text-align: center;
    font-weight: 500;
	letter-spacing: 5px;
}

/*
 * h1（タイトルテキスト）のスタイル
 */
.bl_page-ttl h1 {
  font-size: 2.5rem; /* フォントサイズ */
  font-weight: bold; /* 太字 */
  color: #333; /* 文字色 */
  margin: 0; /* h1のデフォルトマージンをリセット */
  text-align: center; /* 中央揃え */
}

/*
 * ly_inner（コンテンツ幅を制限するラッパー）
 */
.bl_page-ttl .ly_inner {
  max-width: 1100px; /* 任意：コンテンツの最大幅 */
  margin: 0 auto; /* 中央寄せ */
  padding: 0 20px; /* 左右の余白 */
}
@media screen and (max-width: 992px){


.bl_page-ttl {
    background-color: #f5f5f5;
    padding: 3rem 0;
    margin-bottom: 2rem;
    background-image: url(../img/bg-page-ttl.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    font-size: 1.5rem;
    text-align: center;
    font-weight: 500;
    letter-spacing: 5px;
}

}
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	テンプレート > 子ページの目次を表示する
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
/*
 * 子ページリストの共通スタイル
 */
.st_pageList {
  list-style: none; /* リストのデフォルトのマーカーを削除 */
  padding: 0;
  margin: 0;
}

/*
 * 各リストアイテム（子ページ）
 */
.st_pageList li {
  border-bottom: 2px dotted #bebebe;
}
.st_pageList li:last-child {
  border-bottom: none; /* 最後の要素の下線は削除 */
}

/*
 * アイキャッチ画像とテキストを格納するコンテナ
 */
.st_pageList li > a {
  display: flex; /* 画像とテキストを横並びにする */
  align-items: center; /* 垂直方向中央揃え */
  gap: 20px; /* 画像とテキストの間隔 */
  padding: 1rem;
  text-decoration: none;
  color: #333;
  transition: background-color 0.3s;
}

/*
 * ホバー時のスタイル
 */
.st_pageList li > a:hover {
  background-color: var(--accentColor);
  opacity: initial;
}

/*
 * アイキャッチ画像のスタイル
 */
.st_pageList .st_pageList_img {
width: 250px;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 5px;
}

/*
 * タイトルと矢印アイコンを囲むコンテナ
 */
.st_pageList .st_pageList_body {
  flex-grow: 1; /* 残りのスペースを全て使用 */
  position: relative;
  font-size: 1.25rem;
  font-weight: 500;
}

/*
 * 矢印アイコン
 */
.st_pageList .st_pageList_body::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-left: 8px solid var(--mainColor); /* 矢印の色 */
}
@media screen and (max-width:768px){
	.st_pageList .st_pageList_img {
    width: 100px;
}
.st_pageList .st_pageList_body {
font-size: var(--fontSize16);
padding-right: 1rem;
}

}

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	テンプレート > 行事予定
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
.bl_page_news-list-item{
	list-style-type: none;
	position: relative;
}
.bl_page_news-list-item a{
    display: flex;
    align-items: center;
    flex-grow: 1;
    position: relative;
    font-size: 1.25rem;
    font-weight: 500;
    gap: 20px;
    border-bottom: 2px dotted #bebebe;
    padding: 1rem;
	text-decoration: none;
}
.bl_page_news-list-item a:hover{
    background-color: var(--accentColor);
    opacity: initial;
	transition: .3s
}
.bl_page_news-list-item::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    border: 5px solid transparent;
    border-left: 8px solid var(--mainColor);
}

.bl_news-thumbnail {
    width: 250px;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 5px;
}

.bl_news-thumbnail img{
	width: 250px;
	height: auto;
	object-fit: cover;
	aspect-ratio: 3 / 2;
	border-radius: 5px
}

/* ウェーブ */
.custom-shape-divider-top-1754632801 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
}

@media screen and (max-width:768px){
	.bl_page_news-list-item .news_title{
		font-size: var(--fontSize16);
	}
	.bl_news-btm {
    line-height: 1.1;
}
.bl_news-thumbnail img {
    width: 120px;
}
.bl_news-thumbnail {
    width: 120px;
}
}

/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	テンプレート > 子ページの目次を2カラム表示する
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
.st_pageList.st_pageList__col2{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.st_pageList.st_pageList__col2 li{
	width: calc(50% - 1rem);
}
@media screen and (max-width: 576px){
	.st_pageList.st_pageList__col2{
		display: block;
	}
	.st_pageList.st_pageList__col2 li{
		width: 100%;
	}
}
/* ******************************************************************************************
	パーツ > ページャー
****************************************************************************************** */
.bl_pager{
	display: flex;
	justify-content: space-between;
	margin-top: calc(1.5rem + 5rem);/* editor相殺分 + 余白 */
}
.bl_pager_prev, .bl_pager_next{
	width: calc(50% - 1rem);
}
.bl_pager_prev a, .bl_pager_next a{
	display: block;
	position: relative;
	margin: 0 auto;
	padding-top: 1rem;
	padding-bottom: 1rem;
	border: 1px solid var(--black);
	border-radius: 5px;
	color: var(--black);
	text-decoration: none;
}
.bl_pager_prev a:before, .bl_pager_next a:before{
	position: absolute;
	top: 0;
	bottom: 0;
	width: 12px;
	height: 12px;
	margin: auto;
	color: var(--black);
}
.bl_pager_prev a{
	display: flex;
	align-items: center;
	height: 100%;
	padding-right: 1.25rem;
	padding-left: 2.5rem;
}
.bl_pager_next a{
	padding-right: 2.5rem;
	padding-left: 1.25rem;
}
/*左向き, 右向きの矢印*/
.bl_pager_prev a, .bl_pager_next a{
	position: relative;
}
.bl_pager_prev a:before, .bl_pager_next a:before{
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	transition: .3s;
	width: 13px;
	height: 13px;
	margin: auto;
	border-top: 2px solid var(--black);
	border-right: 2px solid var(--black);
}
/*左向きの矢印*/
.bl_pager_prev a:before{
	right: auto;
	left: 1rem;
	transform: rotate(-135deg);
}
/*右向きの矢印*/
.bl_pager_next a:before{
	right: 1rem;
	left: auto;
	transform: rotate(45deg);
}

@media (max-width:768px){
	.bl_pager{
		display: block;
	}
	.bl_pager_prev, .bl_pager_next{
		width: 100%;
	}
	.bl_pager_prev + .bl_pager_next{
		margin-top: 1rem;
	}
}

/* ******************************************************************************************
	home.php
****************************************************************************************** */
.bl_page-flex{
	display: flex;
	gap: 3rem;
}
.ly_page-main{
	width: calc(100% - 300px);
}

/* ******************************************************************************************
 single.php
****************************************************************************************** */
.st_editor h2.bl_post-ttl {
  border-bottom: solid 3px var(--mainColor);/*下線*/
    border-bottom: solid 3px var(--mainColor);
    background: none;
    color: var(--black);
    font-size: var(--fontSize38);
    padding-left: 0;
	margin-top: 0;
}

.st_editor .bl_post-ttl::before {
content: none;
}
.bl_post-top{
	display: flex;
	gap: 1rem;
	margin-top: 2rem;
}

@media (max-width:768px){
	.st_editor h2.bl_post-ttl {
    font-size: var(--fontSize20);
}
}

/* ******************************************************************************************
	sidebar.php
****************************************************************************************** */
.ly_sideBar{
	width: 300px;
}

.ly_sideBar li{
	list-style-type: none;
}
.ly_sideBar .wp-block-heading {
    position: relative;
    padding: 0.25em 0 .5em 0;
    font-weight: 500;
    font-size: var(--fontSize20);
}
.ly_sideBar h2.wp-block-heading:after {
  content: "";
  display: block;
  height: 4px;
  background: -webkit-linear-gradient(to right, rgb(230, 90, 90), transparent);
     background: linear-gradient(to right, #8BC34A, #f6ffaf);
}

.wp-block-heading{
	margin-top: 2rem;
}

.wp-block-heading:first-of-type{
	margin-top: 0;
}

.wp-block-archives-list li a,.wp-block-categories-list li a{
	padding: .5rem 0;
}

.ly_sideBar .cat-item {
    font-size: var(--fontSize16);
    border: none;
}
@media (max-width:768px){
	.bl_page-flex{
	flex-direction: column;
}
.ly_page-main,.ly_sideBar{
	width: 100%;
}
}


/* ******************************************************************************************
	404ページ
****************************************************************************************** */
.st_editor .el_errorUrl{
	padding: 10px 0;
	border-bottom: 3px solid var(--mainColor);
	font-size: 1.1rem;
	letter-spacing: 2px;
}
.st_editor .el_errorUrl:before{
	content: "\f138";
	padding-right: 10px;
	color: var(--mainColor);
	font-weight: bold;
	font-size: 1rem;
	font-family: "Font Awesome 5 Free";
}
.st_editor .bl_errorList li::marker{
	color: var(--mainColor);
	font-size: 1.125rem;
}