@charset "utf-8";


/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");

/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&display=swap');


/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("inview.css");



/*animation1のキーフレーム設定（開閉ブロックのアニメーションに使用）
---------------------------------------------------------------------------*/
@keyframes animation1 {
	0% {left: -200px;}
	100% {left: 0px;}
}


/*opa1のキーフレーム設定（汎用的）
---------------------------------------------------------------------------*/
@keyframes opa1 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}


/*全体の設定
---------------------------------------------------------------------------*/
body * {box-sizing: border-box;}
html,body {
	font-size: 15px;	/*基準となるフォントサイズ。*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	html, body {
		font-size: 16px;	/*基準となるフォントサイズ。*/
	}

	}/*追加指定ここまで*/


body {
	margin: 0;
  padding:0;
	font-family: "Noto Serif JP", "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "MS P明朝", "MS PMincho", serif;	/*フォント種類*/
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	-webkit-text-size-adjust: none;
	line-height: 2;
}

/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav,ul,li,ol {margin: 0;padding: 0;}
nav ul {list-style: none;}
section li {margin-left: 1rem;}
input {font-size: 1rem;}

/*table全般の設定*/
table {border-collapse:collapse;}

/*画像全般の設定*/
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}

/*videoタグ*/
video {max-width: 100%;}

/*iframeタグ*/
iframe {width: 100%;}

/*sectionが続く場合*/
section + section {
	margin-top: var(--global-space);
}


/*リンク（全般）設定
---------------------------------------------------------------------------*/
a {
	transition: 0.3s;
}

/*ヘッダー
---------------------------------------------------------------------------*/
/*トップページ以外のヘッダー*/
body:not(.home) header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0rem var(--global-space) 0.3rem;
  min-height: 50px;
}

/*
  ロゴの仕様
  正方形の場合 .square 付与： （PC）140px x 140px （SP）80px x 80pxのサイズで設置する
  横長の場合 クラス追加なし： （PC）240px x 縦はフリー （SP）180px x 縦はフリーのサイズで設置する
*/
  .h-logo {
  width: 180px;
  margin: 0;
  padding: 0;
}

/*正方形の場合*/
.h-logo.square {
  width: 80px;
  height: 80px;
}

.h-logo img {
	display: block;
  max-height: 70px;
}
.h-logo.square img {
  max-height: inherit;
}

/*ロゴ画像がない場合*/
.h-logo.no-img {
  line-height: 1.2;
  font-size: min(4.8vw, 24px);
  width: auto;
  max-width: 60vw;
  text-align: center;
  z-index: 1;
}
.h-logo.no-img a {
  text-decoration: none;
}
@media screen and (min-width:900px) {
  .h-logo {
    width: 240px;
  }
  /*正方形の場合*/
  .h-logo.square {
    width: 140px;
    height: 140px;
  }
  .home .h-logo img {
    max-height: 100px;
  }
  .h-logo.square img {
    max-height: inherit;
  }
}

/*トップページのヘッダー - 通常ページと同じレイアウトを使用*/
.home header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0rem var(--global-space) 0.3rem;
  min-height: 50px;
}
/*サイドの問い合わせボタン
---------------------------------------------------------------------------*/
.top-bt-contact {
}
.top-bt-contact a {
  position: fixed;
  top: 170px;
  right: 0;
  z-index: 3;
  border-radius: 10px 0 0 10px;
  display: flex;
  align-items: center;
  padding: 20px 10px;
  text-decoration: none;
  writing-mode: vertical-rl;
  text-orientation: upright;
}
.top-bt-contact ._text {
  letter-spacing: 0.1em;
  margin-top: 5px;
}

@media screen and (min-width:900px) {
  .top-bt-contact a {
    padding: 20px 15px;
  }
}

/*パンくず
---------------------------------------------------------------------------*/
.breadcrumb {
  margin: 10px 20px;
}

/*mainの中にある場合*/
main .breadcrumb {
  margin: 0;
}

.breadcrumb ul {
  display: flex;
  align-items: center;
  gap: 0 1em;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
}
.breadcrumb li {
  display: flex;
  align-items: center;
  font-size: 12px;
  line-height: 1.2;
  gap: 0 1em;
  margin: 0.5em 0;
}
.breadcrumb li:not(:last-child)::after {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  transform: rotate(45deg);
}
@media screen and (min-width:900px) {
  .breadcrumb {
    margin: 10px var(--global-space);
  }
}

/*メニューブロック初期設定
---------------------------------------------------------------------------*/
#menubar {
  line-height: 1.5;
  display: none; /* スマホ: 初期状態で非表示 */
}
#menubar ul {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

/* スマホ: display-blockクラスが付いた時のみ表示 */
#menubar.display-block {
  display: block;
  position: fixed;
  overflow: auto;
  z-index: 100;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  padding-top: 90px;
  background: var(--col-main);
  animation: animation1 0.2s both;
}

/* PC: 常に表示（display-blockクラスの影響を無効化） */
@media screen and (min-width: 900px) {
  #menubar,
  #menubar.display-block {
    display: block !important;
    opacity: 1 !important;
    width: auto !important;
    height: auto !important;
    padding-top: 0 !important;
    overflow: visible !important;
    animation: none !important;
    left: auto !important;
    background: transparent !important;
  }

  /* stickyとz-indexは通常のメニュー設定を維持 */
  #menubar {
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
  }
}

/* 3本バー: スマホでのみ表示 */
#menubar_hdr {
  display: flex; /* スマホ: デフォルトで表示 */
}

/* PC: 非表示 */
@media screen and (min-width: 900px) {
  #menubar_hdr {
    display: none;
  }
}

/*ドロップダウンをデフォルトで非表示*/
.ddmenu_parent ul {display: none;}

/*ddmenuを指定しているメニューに矢印アイコンをつける設定*/
a.ddmenu::before {
	font-family: "Font Awesome 5 Free";
	content: "\f078";	/*使いたいアイコン名（Font Awesome）をここで指定*/
	font-weight: bold;	/*この手の設定がないとアイコンが出ない場合があります*/
	margin-right: 1em;	/*アイコンとテキストとの間に空けるスペース*/
	position: absolute;
	left: 2rem;	/*左から２文字分のところに配置する。*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	/*ddmenuを指定しているメニューに矢印アイコンをつける設定*/
	a.ddmenu::before {
		left: 1rem;	/*左から1文字分のところに配置する。*/
	}

	}/*追加指定ここまで*/


/*大きな端末、小さな端末共通のメニューブロック設定
---------------------------------------------------------------------------*/
/*メニュー１個あたりの設定*/
#menubar a {
	display: block;text-decoration: none;
}

/*小文字の英語部分*/
#menubar span {
	font-size: 0.7em;	/*文字サイズを親要素の70%に*/
	letter-spacing: 0.1em;	/*文字間隔を少しだけ広くとる*/
	opacity: 0.6;		/*透明度。色が60%出た状態。*/
}


/*大きな端末用のメニューブロック設定（900px以上）
---------------------------------------------------------------------------*/
@media screen and (min-width: 900px) {
  /*メニューブロックを囲むボックス*/
  #menubar {
    position: sticky;
    top: 0;
    z-index: 1000;
  }

  /*メニューブロック全体の設定*/
  #menubar > nav > ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  /*メニュー１個あたりの設定*/
  #menubar li {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    text-align: center;
  }

  /*リンク（a要素）の設定*/
  #menubar li a {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 0.5rem 1rem;
    white-space: nowrap;
  }

  /*画面上部に到達した場合（fixed）*/
  #menubar.fixed a {
    opacity: 0.8;
  }

  /*マウスオン時*/
  #menubar.fixed a:hover {
    opacity: 1;
  }

  /*メニューの上下の余白を狭くする*/
  #menubar.fixed2 li a {
    padding: 0.5rem 1rem;
  }
}


/*ドロップダウンメニュー設定
---------------------------------------------------------------------------*/
/*ドロップダウンブロック（共通）*/
#menubar ul ul {
	animation: opa1 0.5s 0.1s both;
}

/*大きな端末用のドロップダウンメニュー（900px以上）*/
@media screen and (min-width: 900px) {
  #menubar ul ul {
    position: absolute;
    width: 100%;
    top: 100%;
    left: 0px;
  }

  #menubar ul ul a {
    padding: 0.6rem 1rem !important;
  }
}

/*小さな端末用のメニュー設定（900px未満）*/
@media screen and (max-width: 899px) {
  /* display-blockクラスが付いた時のメニュー１個あたりの設定 */
  #menubar.display-block li {
    border: 1px solid #fff;
    margin: 1rem;
    border-radius: 5px;
  }

  #menubar.display-block > nav > ul > li > a {
    padding: 2rem 3rem;
    display: flex;
    flex-direction: column;
  }

  #menubar.display-block li a {
    padding: 1rem 3rem;
  }
}

/*900px以下でのみ表示させるブロック*/
#menubar .sh {
	padding: 1rem 2rem 2rem;	/*上、左右、下へのブロック内の余白*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーを囲むブロック（スマホ: デフォルト表示）*/
#menubar_hdr {
	position: fixed;
	z-index: 101;
	cursor: pointer;
	right: 3vw;
	top: 1vw;
	padding: 16px 14px;
	width: 46px;
	height: 46px;
	flex-direction: column;
	justify-content: space-between;
}

/*バー１本あたりの設定*/
#menubar_hdr span {
	display: block;
	 transition: 0.3s; 
}

/*×印が出ている状態の設定。※１本目および２本目のバーの共通設定。*/
#menubar_hdr.ham span:nth-of-type(1),
#menubar_hdr.ham span:nth-of-type(3) {
	transform-origin: center center;	/*変形の起点。センターに。*/
	width: 20px;						/*バーの幅*/
}

/*×印が出ている状態の設定。※１本目のバー。*/
#menubar_hdr.ham span:nth-of-type(1){
	transform: rotate(45deg) translate(3.8px, 5px);	/*回転45°と、X軸Y軸への移動距離の指定*/
}

/*×印が出ている状態の設定。※３本目のバー。*/
#menubar_hdr.ham span:nth-of-type(3){
	transform: rotate(-45deg) translate(3.8px, -5px);	/*回転-45°と、X軸Y軸への移動距離の指定*/
}

/*×印が出ている状態の設定。※２本目のバー。*/
#menubar_hdr.ham span:nth-of-type(2){
	display: none;	/*２本目は使わないので非表示にする*/
}

/*mainブロック
---------------------------------------------------------------------------*/
/*mainブロック（横スライドslick対策）*/
main * {min-width: 0;}

/*mainブロック*/
main {
	/*margin: 2.5vw var(--global-space);*/
  margin: 2.5vw auto;
  max-width: calc(1200px + var(--global-space));
  padding: 0 var(--global-space);
  /*min-height: 600px*/
}





/*お知らせブロック
---------------------------------------------------------------------------*/
/*お知らせブロック*/
.new {
	margin-bottom: 4rem;
}
.new dt {
  border-radius: 6px 6px 0 0;
	display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  padding: 1rem;
}
.new dd {
  position: relative;
  padding: 0 1rem 1rem;
}
/*.new dd::before {下線入れる場合
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
}*/
.new dd a {
  text-decoration: none;
}

/*2・3カラム（main-contents、sub-contents設定）
---------------------------------------------------------------------------*/
/*main-contentsブロック*/
.main-contents {
	margin-bottom: var(--global-space);	/*ボックスの下に空けるスペース。subとの間の余白で、css冒頭で指定しているglobal-spaceを読み込みます*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	/*カラムで使う為の指定*/
	main.column {
		display: flex;					/*横並びにする*/
		justify-content: space-between;	/*並びかたの種類の指定*/
		gap: 3vw;						/*main-contentsとsub-contentsの間のマージン的な隙間*/
	}
	
	/*main-contentsブロック*/
	.main-contents {
		margin-bottom: 0;
		order: 2;		/*並び順。数字の小さい順番に表示されます。*/
		flex: 1;
	}
	
	/*sub-contentsブロック共通*/
	.sub-contents {
		width: 210px;	/*幅。お好みで変更して下さい。*/
	}
	
	/*1つ目のsub-contents*/
	.sub-contents:nth-child(2) {
		order: 1;	/*並び順。数字の小さい順番に表示されます。*/
	}
	
	/*2つ目のsub-contents（※３カラムで使いたい場合用）*/
	.sub-contents:nth-child(3) {
		order: 3;	/*並び順。数字の小さい順番に表示されます。３番目という意味なので一番右側に表示されます。*/
	}
	
	}/*追加指定ここまで*/


/*サブコンテンツ内のh3要素(見出し)*/
.sub-contents h3 {
	display: block;
	margin: 0;
	text-align: center;
	border-radius: 5px 5px 0px 0px;
	border: 1px solid #ccc;
	background: linear-gradient(transparent, rgba(0,0,0,0.03));
	padding: 0.5rem 0;
  font-size: 1.125rem;
}


/*サブメニュー設定
---------------------------------------------------------------------------*/
/*サブメニューブロック全体*/
.submenu {
	padding: 0;
	margin: 0 0 1rem;
}

/*メニュー１個あたり*/
.submenu a {
	display: block;text-decoration: none;
	padding: 0.5rem 1rem;
}

/*メニュー１個あたり（子メニュー以外）*/
.submenu > li {
	border: 1px solid #ccc;
	border-top: none;
  font-size: 0.875rem;
}

/*子メニュー*/
.submenu li li a {
	padding-left: 2rem;
}

/*h3見出しの下にサブメニューが続く場合にメニューの上の線をなくす*/
.sub-contents h3 + nav .submenu {
	border-top: none;
}



/*テーブル
---------------------------------------------------------------------------*/
/*ta1テーブルブロック設定*/
.ta1 {
	table-layout: fixed;
	border-top: 1px solid #999;	/*テーブルの一番上の線。幅、線種、色*/
	width: 100%;				/*幅*/
	margin-bottom: var(--global-space);	/*テーブルの下に空けるスペース。css冒頭で指定しているglobal-spaceを読み込みます*/
}

/*tr（１行分）タグ設定*/
.ta1 tr {
	border-bottom: 1px solid #999;	/*テーブルの下線。幅、線種、色*/
}

/*th（左側）、td（右側）の共通設定*/
.ta1 th, .ta1 td {
	padding: 1rem;		/*ボックス内の余白*/
	word-break: break-all;	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}

/*th（左側）のみの設定*/
.ta1 th {
	width: 30%;			/*幅*/
	text-align: left;	/*左よせにする*/
	background: #eee;	/*背景色*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

		/*th（左側）のみの設定*/
		.ta1 th {
			width: 20%;		/*幅*/
		}

	}/*追加指定ここまで*/

/*top用営業時間*/
.tbl-top {
  border-radius: 6px 6px 0 0;
  overflow: hidden;
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
}
.tbl-top th,
.tbl-top td {
  text-align: center;
  padding: 12px 6px;
  line-height: 1.4;
}
/*topの表の下のフリーエリア*/
.tbl-top-note {
  margin-top: 1em;
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
}


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {display: block;}

/*ボタンの設定*/
.pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 99;
	position: fixed;
	right: 20px;
	bottom: 20px;
	font-size: 1.5rem;
	width: 60px;
	line-height: 60px;
	border-radius: 50%;
}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.color-check, .color-check a {color: #ff0000 !important;}
.l {text-align: left !important;}
.c1 {text-align: center !important;}
.r {text-align: right !important;}
.ws {width: 95%;display: block;}
.wl {width: 95%;display: block;}
.mb0 {margin-bottom: 0px !important;}
.mb30 {margin-bottom: 30px !important;}
.look {display: inline-block;padding: 0px 10px;background: #eee;color: #333;border: 1px solid #ccc; border-radius: 3px;margin: 5px 0; word-break: break-all;}
.small {font-size: 0.75em;}
.large {font-size: 2em; letter-spacing: 0.1em;}
.pc {display: none;}
.dn {display: none !important;}
.block {display: block !important;}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	.ws {width: 48%;display: inline;}
	.sh {display: none;}
	.pc {display: block;}

	}/*追加指定ここまで*/




/*Layout-1
---------------------------------------------------------------------------*/
.layout01-container {}

/* カード共通スタイル */
.layout01-container .c2,
.layout01-container .c1 {
  background: #fff;
  border-radius: 5px;
  box-shadow: 5px 5px 20px rgba(0,0,0,0.1);
  padding: 1.25rem;
  margin-bottom: 30px;
  transition: box-shadow 0.3s, transform 0.3s;
}

/* c2（画像+テキスト）のレイアウト */
.layout01-container .c2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}

.layout01-container .c2 .image {
  order: -1;
  width: 100%;
  border-radius: 4px;
  overflow: hidden;
  line-height: 0;
}

.layout01-container .c2 .image img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.3s;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.layout01-container .c2 .text {
  width: 100%;
  /*text-align: center;*/
}

/* タイトルスタイル */
.layout01-container .text .ttl01 {
  font-size: 1.25rem;
  font-weight: bold;
  line-height: 1.5;
  margin: 0 0 0.75rem;
}

/* コンテンツスタイル */
.layout01-container .text p {
  font-size: 1rem;
  line-height: 1.8;
  margin: 0;
}

/* c1（テキストのみ） */
.layout01-container .c1 {
  text-align: center;
  padding: 1.5rem;
}

.layout01-container .c1 .ttl01 {
  font-size: 1.25rem;
  font-weight: bold;
  line-height: 1.5;
  margin: 0 0 0.75rem;
}

.layout01-container .c1 p {
  /* font-size: 0.875rem; */
  font-size: 1rem;
  line-height: 1.8;
  margin: 0;
}

/* タブレット・PC表示 */
@media screen and (min-width:900px) {
  .layout01-container .c2,
  .layout01-container .c1 {
    padding: 2rem 4rem;
    margin-bottom: 30px;
  }

  .layout01-container .c2 {
    flex-direction: row-reverse;
    align-items: center;
    gap: 0.75rem;
  }

  .layout01-container .c2 .image {
    width: 44%;
    order: 0;
    flex-shrink: 0;
  }

  .layout01-container .c2 .image img {
    aspect-ratio: 3 / 2;
    height: auto;
  }

  .layout01-container .c2 .text {
    width: 56%;
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.5rem 0;
  }

  .layout01-container .text .ttl01 {
    font-size: 1.5rem;
    margin: 0 0 1rem;
  }

  .layout01-container .text p {
    /* font-size: 1rem; */
    font-size: 1.05rem;
    line-height: 1.75;
  }

  .layout01-container .c1 {
    text-align: center;
    padding: 2.25rem 2.5rem;
  }

  .layout01-container .c1 .ttl01 {
    font-size: 1.5rem;
    margin: 0 0 1rem;
  }

  .layout01-container .c1 p {
    font-size: 1rem;
    line-height: 1.75;
  }
}

/*layout02
---------------------------------------------------------------------------*/
.list-menu {
	display: grid;
	grid-template-columns: repeat(2, 1fr);	/*２列にする。*/
	gap: 1.25rem;
	margin-bottom: var(--global-space);
}

@media screen and (min-width:900px) {
  .list-menu.c5 {
    grid-template-columns: repeat(3, 1fr);	/*3列にする*/
    gap: 1.875rem;
  }
  .list-menu.c4 {
    grid-template-columns: repeat(3, 1fr);	/*3列にする*/
    gap: 1.875rem;
  }
}

@media screen and (min-width:1400px) {
  .list-menu.c5 {
    grid-template-columns: repeat(5, 1fr);	/*4列にする*/
    gap: 1.25rem;
  }
  .list-menu.c4 {
    grid-template-columns: repeat(4, 1fr);	/*4列にする*/
    gap: 2rem;
  }
  .list-menu.c3 {
    grid-template-columns: repeat(3, 1fr);	/*3列にする*/
    gap: 2.5rem;
  }
  .list-menu.c2 {
    grid-template-columns: repeat(2, 1fr);	/*2列にする*/
    gap: 2.5rem;
  }

}

/*list（メニュー写真や説明が入ったボックス一個あたり）
---------------------------------------------------------------------------*/
/*list内の全ての要素のマージンを一旦リセット*/
.list * {
	margin: 0;
}

/*ボックス１個あたり*/
.list {
	position: relative;
  display: flex;
	flex-direction: column;
	padding: 1rem;
	background: #fff;
	box-shadow: 5px 5px 20px rgba(0,0,0,0.1);
}

/*ブロック内のp要素*/
.list p {
	margin: 0;
  padding: 0;
	font-size: 0.875rem;
	line-height: 1.8;	/*行間を少し狭く*/
}

/*アイコン*/
.list .newicon {
	position: absolute;
	left: -5px;
	top: -10px;
	font-size: 0.7rem;
	width: 5em;
	line-height: 5em;
	border-radius: 50%;
	text-align: center;
}

/*ボックス内のfigure画像*/
.list figure img {
	margin-bottom: 0.5rem;
  transition: 0.3s;
}
@media (hover: hover) {
  .list figure a:hover img {
    opacity: 0.8;
  }
}


/*Title
---------------------------------------------------------------------------*/
/*h2見出し*/
.main-ttl {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 0 2rem;
	font-size: 1.5rem;
	position: relative;
	font-weight: bold;
	letter-spacing: 0.05em;
  line-height: 1.6;
}

/*h2のアクセントラインの設定*/
.main-ttl .uline {
	display: inline-block;
  position: relative;
	padding: 0.5rem 0;
	bottom: -2px;
}

/*右側の装飾文字の設定*/
.main-ttl .small {
	font-size: 0.6em;
  font-weight: normal;
	opacity: 0.7;
}

.ttl01 {/*記事タイトル*/
  border-bottom: none;
  font-size: 1.5rem;/*24px*/
  }
.ttl02 {/*一覧の記事タイトル*/
  font-size: 1.125rem;/*18px*/
  font-weight: bold;
}
.ttl02 a {
  text-decoration: none;
}
.ttl03 {/*ブログカテゴリータイトル*/
  border-bottom: none;
  font-size: 1.375rem;/*22px*/
  margin-top: 0;
  }
.ttl04 {/*お知らせ詳細*/
  position: relative;
  font-size: 1.5rem;/*24px*/
  padding-bottom: 10px;
  width: 100%;
}
.ttl04::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  height: 2px;
  width: 20%;
}
/*マーカー*/
.ttl01 span.marker {
  /*padding-bottom: 2px;*/
  position: relative;
  display: block;
  padding-left: 0.5em;
}
.ttl01 span.marker::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  border-radius: 2px;
  margin: auto 0;
  width: 4px;
  height: 1.1em;
}

/*Button
---------------------------------------------------------------------------*/
.btn1 {
  width: 100%;
  margin: 30px auto 0;
}
.btn1 a {/*メインカラー*/
  border-radius: 4px;
	display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
	padding: 10px 5px;
}
@media screen and (min-width: 900px) {
  .btn1 {
    max-width: 360px;
    margin: 60px auto 0;
  }
}

/*Footer
---------------------------------------------------------------------------*/
footer {
	font-size: 0.875rem;
	text-align: center;
  padding: 10px;
}
footer a {text-decoration: none;}
#footermenu {
	/*margin: 0;*/
	padding: 10px 0 20px;
}
/*著作部分*/
footer .pr {display: block;}

/*copyrightと著作部分*/
footer .copy {
  margin: 20px 0 0;
}

/*メニュー１個あたり*/
#footermenu li {
	display: inline-block;
	padding: 0 10px;
}
.footer_info {
  margin: 0px 20px;
}
.footer_info ._cp_info {
  line-height: 1.8;
}
.footer_info ._cp_info ._name { font-size: 1rem; font-weight: bold; letter-spacing: 0.1em;}
.footer_info ._cp_info ._add { font-size: 0.875rem;}
.footer_info ._cp_info ._tel { font-size: 1rem; font-weight: bold;}

/*sns*/
.footer_info ._sns_icons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 30px;
  margin: 30px 0;
  list-style: none;
  padding-left: 0;
}
.footer_info ._sns_icons li a {
  display: block;
  font-size: 0;
  line-height: 1;
  height: 26px;
  overflow: hidden;
}
.footer_info ._sns_icons li.icon-instagram a {
  width: 26px;
}
.footer_info ._sns_icons li.icon-facebook a {
  width: 26px;
}
.footer_info ._sns_icons li.icon-x a {
  width: 23px;
}
.footer_info ._sns_icons li.icon-youtube a {
  width: 28px;
}
@media screen and (min-width:900px) {
  .footer_info ._cp_info ._name { font-size: 1.125rem; font-weight: bold;}
  .footer_info ._cp_info ._add { font-size: 0.875rem;}
  .footer_info ._cp_info ._tel { font-size: 1.125rem; font-weight: bold;}
}

/*404
---------------------------------------------------------------------------*/
.error-container {
  margin: 60px auto;
}
.error-container h3 {
  font-size: 1.375rem;
}

/*ページネーション
---------------------------------------------------------------------------*/
.page-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 40px auto;
  list-style: none;
  padding: 0;
}
.page-nav li {
  position: relative;
}
.page-nav li.omit {
  margin: 0 -3px;
}
.page-nav li.prev span {
  padding-left: 2px;
}
.page-nav li.prev span,
.page-nav li.next span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: 20px;
  transition: 0.3s;
}
.page-nav li.next span {
  padding-right: 2px;
}
.page-nav li.prev span::after,
.page-nav li.next span::after {
  content: '';
  display: block;
  width: 8px;
  height: 8px;
  margin: auto;
  transition: 0.3s;
}
.page-nav li.prev span::after {
  transform: rotate(-135deg);
}
.page-nav li.next span::after {
  transform: rotate(45deg);
}
.page-nav li._on,
.page-nav li a {
  display: flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  width: 40px;
  height: 40px;
}
.page-nav li._on span {
  font-size: 1.25rem;
  font-weight: bold;
  margin: auto;
}
@media screen and (min-width:900px) {
  .page-nav {
    margin: 60px auto;
  }
}

/*ブログのカテゴリーアイコン
---------------------------------------------------------------------------*/
.post-info {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 0.812rem;
  margin: 10px 0;
  line-height: 1.2;
}
.post-info .news-icon,
.post-info .new-mark {
  border-radius: 100px;
  width: auto;
  padding: 4px 10px;
}
.post-info a {
  text-decoration: none;
}


/*ブログ詳細
---------------------------------------------------------------------------*/
.post-info + .blog-post-container {
  margin: 20px auto 60px;
}

.blog-post-container {
  margin: 0 auto 60px;
/*  max-width: 1400px;*/
}
.blog-post-container .post-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 20px 0;
}
.blog-post-container .post-info .date {
  font-size: 0.875rem;
}
.blog-post-container .eye-catch-image {
  text-align: center;
}
.blog-post-container .eye-catch-image img {/*アイキャッチ画像*/
  /*16:9で強制的にトリミングする場合
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;*/
}

/*layout04
---------------------------------------------------------------------------*/
/*FAQボックス全体*/
.faq {
	padding: 0 5px;
}

/*質問*/
.faq dt {
	border-radius: 6px 6px 0 0;
	margin-bottom: 1em;
	text-indent: -2em;
	padding: 5px 1em 5px 3em;		/*ボックス内の余白。ここを変更する場合、上のtext-indentも調整します。*/
}

/*アイコン（Font Awesome）*/
.faq dt::before {
	font-family: "Font Awesome 5 Free";
	/*content: "\f059";*/	/*？*/
  content: "\f075"; /*吹き出し*/
  /*content: "\f007";*/ /*ユーザー*/
  /*content: "\f058";*/ /*チェック*/
  /*content: "\f111";*/ /*○*/
  
	padding-right: 1em;
  font-size: 1.25em;
  font-weight: bold
}

/*回答*/
.faq dd {
	padding: 5px 1em 30px 3em;
}

/*opencloseを適用した要素のカーソル*/
.openclose-parts {
	cursor: pointer;
}

.faq dt span {text-indent: 0;}

/*layout05 ギャラリー
---------------------------------------------------------------------------*/
/*ブログの「.list-menu」を親として使用する*/
.list-menu .gallery * {
    margin: 0;
}
.list-menu .gallery figure {}
.list-menu .gallery figure img {
  aspect-ratio: 1 / 1;
  object-fit: cover;/*1:1でトリミングされる*/
  width: 100%;
  margin-bottom: 0.5rem;
  box-shadow: 5px 5px 20px rgba(0,0,0,0.1);
}
/*ブロック内のp要素*/
.list-menu .gallery p {
  padding: 0;
	font-size: 0.875rem;
	line-height: 1.8;	/*行間を少し狭く*/
}

/*layout06 マップ
---------------------------------------------------------------------------*/
.access-info dt {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-weight: bold;
  line-height: 1.6;
  position: relative;
  margin-bottom: 5px;
}
.access-info dt::before {
  content: '';
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 100px;
}
.access-info dd {
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.access-info dd ul {
  margin: 0 1.5em;
}
  
/*layout08 プライバシーポリシー
---------------------------------------------------------------------------*/
.privacypolicy-txt {
  margin: 0 auto 80px;
}

/*トップページ　.home 独自の設定
---------------------------------------------------------------------------*/
/*layout03*/
.home .home-layout03 .new {
  max-width: 1200px;
  margin: 0 auto;
}

/*layout04*/
.home .home-layout04 .faq {
  max-width: 1200px;
  margin: 0 auto;
}

/*layout06*/
.home .home-layout06 {
  margin-top: var(--global-space);
}
.home .home-layout06 .home-container {
  display: flex;
  align-items: center;
  flex-direction: column-reverse;
}
.home .home-layout06 .home-container ._map {
  line-height: 0;
  margin-top: 30px;
  width: 100%;
}
.home .home-layout06 .home-container ._info {
  padding: 30px var(--global-space);
}
@media screen and (min-width:900px) {
  .home .home-layout06 .home-container {
    display: flex;
    align-items: center;
    flex-direction: row-reverse;
  }
  .home .home-layout06 .home-container ._map {
    margin-top: 0;
    width: 50%;
  }
  .home .home-layout06 .home-container ._info {
    width: 50%;
  }
}

/*WPのフリーエディターエリア
---------------------------------------------------------------------------*/
.free-edit-container {}
.free-edit-container h1,
.free-edit-container h2,
.free-edit-container h3,
.free-edit-container h4,
.free-edit-container h5,
.free-edit-container h6 {
  display: block;
  text-align: left;
  line-height: 1.3;
  margin: 0 0 1em;
  border: none;
}
.free-edit-container h1 {font-size: 1.625em;}
.free-edit-container h2 {font-size: 1.5em;}
.free-edit-container h3 {font-size: 1.375em;}
.free-edit-container h4 {font-size: 1.25em;}
.free-edit-container h5 {font-size: 1.125em;}
.free-edit-container h6 {font-size: 1em;}

.free-edit-container blockquote { position: relative;}
.free-edit-container blockquote p::before {
  content: '“';
  font-size: 1.25em;
  padding-right: 5px;
}
.free-edit-container blockquote p::after {
  content: '”';
  font-size: 1.25em;
  padding-left: 5px;
}
/*続きを読む*/
.readmore {
  margin: 1em 0;
  text-align: center;
}
.readmore .bt-readmore {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.875rem;
  padding: 0.5em 0;
  position: relative;
  margin: 0 auto;
  width: 130px;
  cursor: pointer;
}
.readmore .bt-readmore ._txt {
  letter-spacing: 0.1em;
}
.readmore .bt-readmore i.fas {}

/*トップページ　はじめに*/
.introduction-wrap {
  /*max-width: 1200px;*/
  margin: 10px auto 0;
}
.introduction-wrap .introduction-ttl {
  font-size: 1.5rem;
  letter-spacing: 0.5em;
}
.introduction-wrap p {
  font-size: 1.125rem;
}
@media screen and (min-width:900px) {
  .introduction-wrap {
    margin: 10px auto 0;
  }
  .introduction-wrap .introduction-ttl {
    font-size: 1.8rem;
  }
}
