@charset "utf-8";



/*リセットCSS（sanitize.css）の読み込み
---------------------------------------------------------------------------*/
@import url("https://unpkg.com/sanitize.css");

/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css");

/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css");

/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/

@import url("animation.css");

/*Q19CMS専用のスタイルの読み込み
※style.cssの設定を、このstyle_q19.cssで上書きしている場合もあるので注意して下さい。
---------------------------------------------------------------------------*/
@import url("style_q19.css");




/* 例：style.cssに追加するオレンジテーマ（任意） */
.orange-theme {
  background-color: #f46824;
  color: white;
}
.orange-theme a {
  color: white;
}



/*全体の設定
---------------------------------------------------------------------------*/
html,body {
	height: 100%;
	font-size: 13px;	/*基準となるフォントサイズ。*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width : 895px ){

	html, body {
		font-size: 16px;	/*基準となるフォントサイズ。*/
	}

	}/*追加指定ここまで*/


body {
	font-family: "ヒラギノ丸ゴ Pro", "Hiragino Maru Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;	/*フォント種類*/
	-webkit-text-size-adjust: none;
	background: #fff;	/*背景色*/
	color: #777;		/*文字色*/
	line-height: 2;		/*行間*/
}

/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav {margin: 0;padding: 0;}

/*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%;}

/*他*/
input {font-size: 1rem;}
section + section {
	margin-top: 3rem;
}


/*opa1のキーフレーム設定
---------------------------------------------------------------------------*/
@keyframes opa1 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: #777;		/*文字色*/
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
	color: var(--primary-color);	/*css冒頭で指定しているテーマカラーを読み込みます*/
}


/*コンテナー（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
	height: 100%;
	display: flex;					/*flexを使う指定*/
	flex-direction: column;			/*子要素を縦並びにする*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	max-width: 1800px;	/*サイトの最大幅。これ以上広がらない。*/
	margin: 0 auto;
	position: relative;
}


/*header（ロゴが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/

.site-title {
  display: flex;
  gap: 1rem; /* 名前とサブタイトルの間の余白 */
  margin-left: 1rem;
	  line-height: 1;
	  align-items: baseline; /* 文字のベースラインで揃える */
}

/* 名前：大きく太く */
.site-title .name {
  font-size: 1.8rem;
  font-weight: bold;
  color: #000;
  line-height: 1;
}

/* サブタイトル：2行、小さめ */
.site-title .subtitle {
  font-size: 0.75rem;
  line-height: 1;
  color: #000;
	  font-weight: bold;
  display: flex;
  flex-direction: column;
 /* justify-content: flex-end;
/*	margin-top: auto; /* 下に押し付ける */
}



.home header .category-menu {
  top: 0;
  left: 0;
  width: 100%;
  background: white; /* ← 背景を透明に変更 */
  z-index: 10;
}

.category-menu a::before {
  display: none;
}

/*ロゴ*/
#logo img {
  display: block;
  height: auto;
  max-width: 100%;
}

.home #logo img {
  width: 55%;
  max-width: 800px;
}

@media screen and (max-width: 500px) {
  .home #logo img {
    width: 60%;
    max-width: 300px;
  }
}



/*カテゴリーメニュー（カテゴリーメニューは、header内と、開閉ブロックの#menubar内で使っています）
---------------------------------------------------------------------------*/
/*メニューブロック*/

.category-menu ul {
 position: static;        /* ← 重要：absolute＋transformをやめる */
  transform: none;
  display: flex;
  gap: 1rem;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: nowrap;       /* 折り返し防止（足りなければ下のメディアクエリへ） */
  min-width: 0;
}

/*開閉メニューの中のメニューブロック*/


.category-menu {
  position: relative;        /* 絶対配置は使わない */
  display: flex;
  align-items: baseline;     /* 文字のベースラインを揃える */
  gap: 1rem;
  padding: .5rem 1rem;       /* ← マイナスpaddingは禁止 */
  background: #fff;
  z-index: 10;
}


/*リンクテキスト*/
.category-menu a {
	text-decoration: none;display: block;
	color: inherit;
	padding: -2rem 1rem 1rem;		/*上、左右、下へのメニュー内の余白。*/
	position: relative;				/*アイコンを絶対配置する為に必要な指示*/
}

/* タイトル（名前＋公式サイト）を横並びで1ブロックに */
.category-menu .site-title{
  display: flex;
  align-items: baseline;
  gap: .6rem;
  margin: 0;
  white-space: nowrap;       /* 2行化を防ぐ */
  min-width: 0;
}

.category-menu ul li{ flex: 0 0 auto; }

/* 以前の「右寄せ」「中央寄せ」指定が残っていたら上書き */
.category-menu ul{ justify-content: flex-start; }

/* 小さな画面では縦積みに切り替え（重なり回避） */
@media (max-width: 900px){
  .category-menu{
    flex-wrap: wrap;
    row-gap: .5rem;
  }
  .category-menu ul{
    flex-basis: 100%;
    justify-content: center; /* スマホではメニューだけ中央に */
    flex-wrap: wrap;         /* 幅が足りない時は気持ちよく折り返す */
  }
}


.category-menu li a {
  background: none;
  padding: 0 1rem;
  color: black;
  font-weight: bold;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: all 0.3s;
}

.category-menu li a:hover {
  border-bottom: 2px solid var(--primary-color);
  color: #000;
}





/*メニューの１行目の強調文字*/
.category-menu a .line1 span {
	font-size: 2rem;				/*文字サイズを1.5倍に*/
	margin-right: 0.2em;			/*右側に空けるスペース。「を探す」との間に空ける余白です。*/
}


	/*画面幅800px以下の追加指定*/
	@media screen and (max-width:800px) {

	/*ヘッダーのカテゴリーメニューブロックを非表示に*/
	header .category-menu {
		display: none;
	}

	}/*追加指定ここまで*/


/*メニューブロック設定
---------------------------------------------------------------------------*/
#menubar a {display: block;text-decoration: none;}
#menubar ul {list-style: none;margin: 0;padding: 0;}
#menubar {display: none;}
#menubar.d-b, #menubar_hdr.d-b {display: block;}
#menubar.d-n, #menubar_hdr.d-n {display: none;}


/*メニューブロック設定
---------------------------------------------------------------------------*/
/*メニューブロック*/
#menubar {
	position: fixed;overflow: auto;z-index: 100;
	left: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding: 100px 20px 20px;			/*ブロック内の余白。上、左右、下。*/
	background: rgba(0,0,0,0.9);		/*背景色。0,0,0は黒の事で0.9は色が90%出た状態。*/
	text-align: center;					/*内容をセンタリング*/
	animation: animation1 0.2s both;	/*animation.cssのanimation1を実行する。0.2sは0.2秒の事。*/
	color: #fff;						/*文字色*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width : 895px ){

	#menubar {
		width: 70%;		/*メニュー幅を上書き*/
	}

	}/*追加指定ここまで*/


/*メニュー１個あたりの設定*/
#menubar a {
	color: inherit;
	padding: 10px;		/*メニュー内の余白*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーを囲むブロック*/
#menubar_hdr {
	position: fixed;
	cursor: pointer;
	right: 16px;			/*右からの配置場所指定*/
	top: 16px;				/*上からの配置場所指定*/
	padding: 10px 8px;		/*上下、左右への余白*/
	width: 48px;			/*幅（３本バーが出ている場合の幅になります）*/
	height: 48px;			/*高さ*/
	z-index: 999;
	display: flex;					/*flexを使う指定*/
	flex-direction: column;			/*子要素（３本バー）を縦並びにする*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	  align-items: center;
	background: rgba(0,0,0,0.8);	/*背景色*/
	border-radius: 0;				/*円形にする*/
	transform: none;			/*本来のサイズの1.3倍にする*/
}

/*バー１本あたりの設定*/
#menubar_hdr span {
	display: block;
	transition: 0.3s;	/*アニメーションにかける時間。0.3秒。*/
	border-top: 1.5px solid #fff;	/*線の幅、線種、色*/
}

/*×印が出ている状態の設定。※１本目および２本目のバーの共通設定。*/
#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;	/*２本目は使わないので非表示にする*/
}


/*コンテンツ
---------------------------------------------------------------------------*/
#contents {
	flex: 1;
	padding: 3%;	/*コンテンツ内の余白*/
}


/*mainブロック設定
---------------------------------------------------------------------------*/
/*mainブロックの設定（※頭にドットのある.mainとは異なる要素なので間違わないようにして下さい）*/
main {
	margin: 2rem 0;	/*ブロックの外側（上下、左右）に空けるスペース*/
}

/*mainブロック内のh2*/
main h2 {
  text-align: center;
  font-size: 1.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--primary-color);
  background: none;
  color: #f46824;
  border-radius: 0;
  margin-bottom: 2rem;
}



/*mainブロック内のh2の中にある最後のspan。つまり、見出し右側の装飾文字（英語）です。*/
main h2 span:last-of-type {
	color: #333 !important;
	font-size: 0.7em;	/*文字サイズを親要素の0.7倍に。*/
}

/*mainブロックのh2内にあるアイコン*/
main h2 i {
	margin-right: 1rem;	/*右側に空けるスペース。テキストとの間の余白になります。*/
}

/*mainブロック内のh3*/
main h3 {
	font-size: 1.2rem;		/*文字サイズ*/
	margin: 0 0 2rem;		/*h3の外側にとるスペース。上、左右、下への順番。*/
	padding: 7px 2rem;		/*h3内の余白。上下、左右への順番。*/
	background: #fff;		/*背景色*/
	border-radius: 30px;	/*角を丸くする指定。ある程度大きければ適当でいいです。*/
}

/*pタグ*/
main p {
	margin: 0 2rem 2rem;	/*pの外側にとるスペース。上、左右、下への順番。*/
}

/*微調整*/
main h2 + p, main h3 + p, main p + p {
	margin-top: -1rem;	/*少し上に詰める。*/
}

/*2カラムの中にある.main要素（頭にドットがない「main」とは異なるので注意して下さい）*/
main.column .main {
	margin-bottom: 30px;		/*ボックスの下に空けるスペース。subとの間の余白です。*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width : 895px ){

	/*カラムで使う為の指定*/
	main.column {
		display: flex;					/*flexを使う指定*/
		justify-content: space-between;	/*並びかたの種類の指定*/
	}
	
	/*2カラムの中にある.main要素（頭にドットがない「main」とは異なるので注意して下さい）*/
	main.column .main {
		margin-bottom: 0;
		order: 2;					/*並び順。数字の小さい順番に表示されます。*/
		width: 100%	/*幅。ここの260pxの数字は下の.subの幅(230px)に、左右ブロックの間の余白(30px)を追加したものです。*/
	}
	
	/*2カラムの中にある.sub要素*/
	main.column .sub {
		display: none;
	}

	}/*追加指定ここまで*/


/*sub,sideブロック設定
---------------------------------------------------------------------------*/
#contents .sub h3::before, #contents .side h3::before {border: none;padding: 0;}
/*ブロック内のh3タグ*/
#contents .sub h3, #contents .side h3 {
	margin: 0;border: none;border-radius: 0;
	font-weight: normal;
	padding: 5px;		/*余白*/
	background-color: var(--primary-color);	/*css冒頭で指定しているprimary-colorを読み込みます*/
	color: #fff;		/*文字色*/
	text-align: center;	/*内容をセンタリング*/
}
#contents .sub h3 a, #contents .side h3 a {color: inherit;}


/*サブメニュー設定
---------------------------------------------------------------------------*/
/*サブメニューブロック全体*/
.submenu {
	padding: 0;
	margin: 0 0 1rem;	/*上、左右、下へのマージン*/
}

/*メニュー１個あたり*/
.submenu li {
	border-bottom: 1px solid rgba(0,0,0,0.2);	/*下線の幅、線種、色。0,0,0は黒の事で0.2は色が20%出た状態。*/
}
.submenu a {
	display: block;text-decoration: none;
	padding: 0.2rem 1rem;	/*上下、左右へのメニュー内の余白*/
}

/*アイコン（Font Awesome）*/
.submenu a::before {
	transition: 0.3s;
	font-family: "Font Awesome 5 Free";	/*Font Awesomeを使う指定*/
	content: "\f0da";		/*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
	color: #ABABAB;			/*アイコンの色*/
	padding-right: 0.8em;	/*アイコンとテキストの間の余白*/
	font-weight: bold;		/*この設定がないとアイコンが出ない場合があります*/
}

/*マウスオン時のアイコン設定*/
.submenu a:hover::before {
	color: #666;			/*アイコンの色*/
}


/*box1設定（このテンプレートでは、2カラム時のsubブロックでのみ使用しています）
---------------------------------------------------------------------------*/
/*ボックス全体の設定*/
.box1 {
	background: #fff;		/*背景色*/
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	padding: 10px;			/*ボックス内の余白*/
	border-radius: 5px;		/*角を丸くする指定*/
	margin-bottom: 1rem;	/*ボックスの下に空けるスペース*/
}

/*box1内で使った場合、下のマージンをなくす*/
.box1 .submenu {
	margin-bottom: 0;
}



/*テーブル（week）footer-contents内で使っています。
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.week caption {
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	border-bottom: none;	/*下線だけ消す*/
	background: #333;		/*背景色*/
	padding: 0.5rem 1rem;	/*caption内の余白。上下、左右に１文字分ずつとる。*/
}

/*weekテーブルブロック設定*/
.week {
	width: 100%;
	table-layout: fixed;
	text-align: center;	/*テーブル内のテキストをセンタリング*/
}
.week, .week td, .week th {
	border: 1px solid #ccc;	/*テーブルの枠線の幅、線種、色。*/
}


/*footer-contents内のマップ(iframe)と、詳細ページのYouTube(iframe)動画をレスポンシブにする設定。
---------------------------------------------------------------------------*/
.iframe-box {
	width: 100%;
	height: 0;
	padding-top: 56.25%;	/*アスペクト比を調整するところです*/
	position: relative;
}
.iframe-box iframe {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
}


/*フッター設定
---------------------------------------------------------------------------*/
footer small {font-size: 100%;}
footer {
  font-size: 0.85rem;
  text-align: center;
  padding: 1rem;
}
footer a {
  text-decoration: none;
}
/*著作部分*/
footer .pr {display: block;}



/*「お知らせ」ブロック
---------------------------------------------------------------------------*/
/*お知らせブロック*/
.new {
	margin: 0;
	display: flex;		/*flexを使う指定*/
	flex-wrap: wrap;	/*折り返す指定*/
	padding: 0 2rem;	/*上下、左右へのボックス内の余白*/
}

/*日付(dt)、記事(dd)共通設定*/
.new dt,
.new dd {
	padding: 5px 0;		/*上下、左右へのボックス内の余白*/
}

/*日付(dt)設定*/
.new dt {
	width: 8em;	/*幅。8文字(em)分*/
}

/*日付の横のマーク（共通設定）*/
.new dt span {
	display: none;	/*小さな端末では非表示にしておく。*/
}

/*記事(dd)設定*/
.new dd {
	width: calc(100% - 8em);	/*「8em」は上の「.new dt」のwidthの値です*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width : 895px ){

	/*日付(dt)設定*/
	.new dt {
		width: 14em;	/*幅。14文字(em)分。アイコン分も含んだ幅にします。*/
		display: flex;	/*flexを使う指定*/
		justify-content: space-between;	/*日付とアイコンをそれぞれ端に寄せる*/
	}

	/*日付の横のマーク（共通設定）*/
	.new dt span {
		display: inline-block;	/*表示させる*/
		width: 7em;				/*幅。7文字(em)分。*/
		background: #999;		/*背景色*/
		color: #fff;			/*文字色*/
		font-size: 0.8em;		/*文字サイズを80%に。*/
		text-align: center;		/*文字をセンタリング*/
		margin-right: 1em;		/*アイコンの右側に空けるスペース*/
		align-self: flex-start;	/*高さを間延びさせない指定*/
		line-height: 1.8;		/*行間を少し狭く*/
		position: relative;top: 0.4em;	/*上下の配置バランスの微調整*/
		border-radius: 2px;		/*角を丸くする指定*/
	}

	/*icon-bg1設定。サンプルテンプレートでは「●●●重要」と書いてあるマーク*/
	.new dt span.icon-bg1 {
		background: #cd0000;	/*背景色*/
	}

	/*icon-bg2設定。サンプルテンプレートでは「●●●サービス」と書いてあるマーク*/
	.new dt span.icon-bg2 {
		background: #006acd;	/*背景色*/
	}

	/*記事(dd)設定*/
	.new dd {
		width: calc(100% - 8em);	/*「14em」は上の「.new dt」のwidthの値です。*/
	}

	}/*画面幅900px以上の追加指定ここまで*/


/*FAQ
---------------------------------------------------------------------------*/
/*FAQボックス全体*/
.faq {
	padding: 0 2rem;	/*上下、左右へのボックス内の余白*/
}

/*質問*/
.faq dt {
	border-radius: 3px;		/*枠を角丸にする指定*/
	margin-bottom: 1rem;	/*下に空けるスペース*/
	background: #fff;		/*背景色*/
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	text-indent: -2rem;				/*テキストのインデント。質問が複数行になった際に、テキストの冒頭を揃える為に設定しています。*/
	padding: 5px 1em 5px 3em;		/*ボックス内の余白。ここを変更する場合、上のtext-indentも調整します。*/
}

/*アイコン（Font Awesome）*/
.faq dt::before {
	font-family: "Font Awesome 5 Free";	/*Font Awesomeを使う指定*/
    content: "\f059";	/*アイコンのコード*/
	color: var(--primary-color);	/*アイコンの色。css冒頭で指定しているprimary-colorを読み込みます*/
	padding-right: 1rem;	/*アイコンとテキストとの間のスペース*/
}

/*回答*/
.faq dd {
	padding: 5px 1rem 30px 3rem;		/*ボックス内の余白**/
}

/*opencloseを適用した要素のカーソル*/
.openclose {
	cursor: pointer;	/*カーソルの形状。リンクと同じスタイルにしてクリックできると認識してもらう。*/
}


/*テーブル
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	font-weight: bold;		/*太字に*/
	padding: 10px 5px;		/*上下、左右へのボックス内の余白。基本的に数行下の「.ta1 th, .ta1 td」のpaddingと揃えておけばOKです。*/
	background: #777;		/*背景色*/
	color: #fff;			/*文字色*/
	margin-bottom: 15px;	/*下に空けるスペース*/
	border-radius: 5px;		/*角を丸くする指定*/
}

/*ta1テーブルブロック設定*/
.ta1 {
	border-top: 1px solid #ccc;	/*テーブルの一番上の線。幅、線種、色*/
	width: 100%;
	margin: 0 auto 2em;		/*最後の「2em」がテーブルの下に空けるスペースです*/
}

/*tr（１行分）タグ設定*/
.ta1 tr {
	border-bottom: 1px solid #ccc;	/*テーブルの下線。幅、線種、色*/
}

/*th（左側）、td（右側）の共通設定*/
.ta1 th, .ta1 td {
	padding: 10px 5px;		/*上下、左右へのボックス内の余白*。基本的に数行上の「.ta1 caption」のpaddingと揃えておけばOKです。*/
	word-break: break-all;	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}

/*th（左側）のみの設定*/
.ta1 th {
	width: 30%;				/*幅*/
	background: #f0f0f0;	/*背景色*/
}


	/*画面幅900px以上の追加指定*/
	@media screen and (min-width : 895px ){

	/*テーブル１行目に入った見出し部分（※caption）*/
	.ta1 caption {
		padding: 5px 15px;		/*上下、左右へのボックス内の余白*/
	}

	/*th（左側）、td（右側）の共通設定*/
	.ta1 th, .ta1 td {
		padding: 20px 15px;		/*上下、左右へのボックス内の余白*/
	}

	/*th（左側）のみの設定*/
	.ta1 th {
		width: 20%;		/*幅*/
	}

	}/*追加指定ここまで*/


/*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;		/*下からの配置場所指定*/
	color: #fff;		/*文字色*/
	font-size: 1.5rem;	/*文字サイズ*/
	background: rgba(0,0,0,0.2);	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
	width: 60px;		/*幅*/
	line-height: 60px;	/*高さ*/
	border-radius: 50%;	/*円形にする*/
}


/*詳細ページ（item.html）で使っている「前のページに戻る」ボタン
---------------------------------------------------------------------------*/
.back {
	text-align: center;
}
.back a {
	text-decoration: none;display: inline-block;
	padding: 0.5rem 2rem;	/*ボタン内の余白。上下、左右。*/
	border-radius: 30px;	/*角を丸くする指定。ある程度大きければ適当でいいです。*/
	background: #eee;		/*背景色*/
}
.back a::before {
	font-family: "Font Awesome 5 Free";	/*Font Awesomeを使う指定*/
	content: "\f0d9";		/*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
	padding-right: 0.8em;	/*アイコンとテキストの間の余白*/
	font-weight: bold;		/*この設定がないとアイコンが出ない場合があります*/
	opacity: 0.5;			/*色を50%だけ出す*/
}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.color-check, .color-check a {color: #ff0000 !important;}
.l {text-align: left !important;}
.c {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: rgba(0,0,0,0.03);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;}



.profile-section {
  padding: 1rem 5%;
  max-width: 1200px;
  margin: auto;
}

.section-title {
  color: #f46824;
  border-bottom: 2px solid #f46824;
  font-size: 1.8rem;
  margin-bottom: 2rem;
  text-align: center; /* 見出しは中央寄せ */
}

.profile-wrapper {
  display: flex;
  flex-wrap: wrap;     /* スマホ対応で折り返し */
  gap: 2rem;
  align-items: flex-start;
}

.profile-text {
  flex: 1 1 60%;
  font-size: 1.2rem;
  line-height: 1.4;
}

.profile-photo {
  flex: 1 1 35%;
  text-align: center;
}

.profile-photo img {
  width: 100%;
  max-width: 300px;
  border-radius: 8px;
  /*box-shadow: 0 4px 8px rgba(0,0,0,0.1);*/
}

/* スマホでは縦並びに */
@media (max-width: 768px) {
  .profile-wrapper {
    flex-direction: column;
    align-items: center;
  }
  .profile-photo img {
    max-width: 200px;
  }
}


	
	

ul {
    list-style-type: none;
}

li, ul, dl, dd{
	margin: 0;
    font-style: normal;
    font-size: 100%;
    font-weight: normal;
}
ul {
    display: block;
    margin-block-start: 1em;
    margin-block-end: 1em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    padding-inline-start: 40px;
    unicode-bidi: isolate;
}

li {
    display: list-item;
    text-align: -webkit-match-parent;
    unicode-bidi: isolate;
}
.profile-section .section-wrapper .profile-infomation>ul>li>dl {
        padding: 15px 0px;
    }
dl {
    display: block;
    margin-block-start: 1em;
    margin-block-end: 1em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    unicode-bidi: isolate;
}
dt {
    display: block;
    unicode-bidi: isolate;
}
dd {
    margin-left: 0;
}
dd {
    display: block;
    margin-inline-start: 40px;
    unicode-bidi: isolate;
}
.profile-section .section-wrapper .profile-infomation .img-himono figure img {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.profile-section .section-wrapper {
        width: 100%;
        max-width: 980px;
        margin: auto;
    }
img {
    overflow-clip-margin: content-box;
    overflow: clip;
}

html {
  scroll-behavior: smooth;
}




	/*画面幅900px以上の追加指定*/
	@media screen and (min-width : 895px ){

	.ws {width: 48%;display: inline;}
	.sh {display: none;}
	.pc {display: block;}

	}/*追加指定ここまで*/



/* --- 県政報告カード型デザイン --- */
/* 活動報告のグリッド：PCで3列、幅が狭いと自動で2→1列 */
.video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  margin-top: 2rem;
  margin-bottom: 3rem; /* 県政報告との間に余白 */
}

/* 県政報告セクションの上部余白（任意） */
#pref-report {
  margin-top: 1rem;
}


.video-item {
  display: flex;
  flex-direction: column; /* 子要素を縦に並べる */
  justify-content: flex-start; /* 上から詰める */
  background: #fff;
  padding: 1rem;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  text-align: center;
  height: 100%; /* 高さを揃える！ */
}

.video-description {
  font-size: 0.8rem; /* 小さめ */
  color: #555; /* ちょっと薄めの色 */
  margin-top: 0.5rem; /* タイトルとの間をちょっと開ける */
  line-height: 1.4; /* 行間少し詰め気味 */
	 text-align: left;
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px); /* 下から */
  }
  100% {
    opacity: 1;
    transform: translateY(0); /* 元の位置へ */
  }
}

.video-subtitle {
  display: inline-block;
  color: #f46824;
  border: 2px solid #f46824;
  padding: 0.3rem 1.5rem;
  border-radius: 20px;
  margin-bottom: 0.8rem;
  font-weight: bold;
}


.video-item a {
  display: block;
}

.video-item img {
  width: 100%;
  aspect-ratio: 1/1; /* 正方形 */
  object-fit: cover;
  border-radius: 8px;
}

.video-item h3 {
  margin-top: 1rem;
  font-size: 0.9rem;
  color: #f46824;
  line-height: 1.2;
  word-break: keep-all;
  overflow-wrap: break-word;
}


.video-item:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2); /* ホバー時はもっと影が濃く */
  transform: translateY(-5px); /* ちょっと浮き上がる */
}



.video-link {
  position: relative;
  display: block;
}

.play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 3rem;
  color: white;
  text-shadow: 0 0 10px rgba(0,0,0,0.7);
  pointer-events: none; /* 再生ボタンをクリックできないようにする（aリンク優先） */
}

input {
  width: 50%;
  box-sizing: border-box;
}


textarea {
  width: 90%;
  box-sizing: border-box;
}

input[type="submit"].fa {
  font-family: "Font Awesome 5 Free", sans-serif;
  font-weight: 900;
  background-color: var(--primary-color);
  color: white;
  border: none;
  border-radius: 30px;
  padding: 0.8rem 2.2rem;
  font-size: 1rem;
  cursor: pointer;
  transition: background 0.3s, transform 0.2s;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

input[type="submit"].fa:hover {
  background-color: #ff8a00;
  transform: translateY(-2px);
}


#greeting {
  margin-bottom: 0rem; /* ← 少なめに */
	  margin-top: 2rem; 
}

#greeting {
  margin-top: -5rem; /* ← ここを小さくする */
}

#greeting {
  margin-top: 1rem;
}

/* ごあいさつをお知らせ風に */
#greeting .greeting-text {
  font-size: 1.1rem; /* お知らせに合わせたサイズ */
  line-height: 1.6;
  color: black;
}

#greeting h2 {
  border-bottom: 2px solid #f48024; /* お知らせの見出し色 */
  padding-bottom: 0rem;
  margin-bottom: 0rem;
	  font-size: 1.8rem;
}



.profile-subtitle {
  font-size: 1rem;
  margin-top: 1.5rem;
  color: #f46824; /* オレンジ色強調 */
  border-left: 4px solid #f46824;
  padding-left: 0.6rem;
}

.greeting-section {
  padding: 2rem 5%;
  margin-top: 4rem;
  box-sizing: border-box;
}


.greeting-image img {
  width: 10%;
	  height: auto;       /* アスペクト比維持 */
	  display: block;
  margin: 0 auto;     /* 中央寄せしたい場合 */
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

/* 最初にすべて非表示にしておく */
#menubar,
#menubar_hdr {
  display: none;
}

#menubar_hdr {
  position: fixed;
  top: 16px;
  right: 16px;
  width: 48px;
  height: 48px;
  z-index: 999;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: 10px 8px;
  background: rgba(0,0,0,0.8);
  border-radius: 0; /* ← 角丸やめる */
  transform: none;  /* ← 拡大やめる */
}


/* ハンバーガー線の見た目 */
#menubar_hdr span {
  display: block;
  width: 30px;
  height: 3px;
  background-color: #000;
  margin: 4px 0;
  transition: 0.3s;
}

/* ☓にするアニメーション */
#menubar_hdr.ham span:nth-child(1) {
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
}
#menubar_hdr.ham span:nth-child(2) {
  opacity: 0;
}
#menubar_hdr.ham span:nth-child(3) {
  transform: rotate(-45deg);
  position: absolute;
  top: 50%;
}



/* スマホ（800px以下）のときだけ表示 */
@media screen and (max-width: 800px) {
  #menubar_hdr {
    display: block;
    right: 16px !important;
    top: 16px;
  }

  #menubar.d-b {
    display: block;
  }

  #menubar {
    display: none; /* ← 追加（安全のため明示） */
  }
}

/* PC表示用（801px以上） */
@media screen and (min-width: 801px) {
  #menubar,
  #menubar_hdr {
    display: none;
  }

  .category-menu {
    display: flex; /* または block / grid など、元の表示形式 */
  }
}

/* スマホ表示用（800px以下） */
@media screen and (max-width: 800px) {
  #menubar_hdr {
    display: block;
  }

  #menubar.d-b {
    display: block;
  }

  .category-menu {
    display: none;
  }
}



/* スマホ（800px以下）：カテゴリーメニューを非表示 */
/*@media screen and (max-width: 800px) {
  .category-menu {
    display: none !important;
  }

  #menubar_hdr {
    display: block;
  }

  #menubar.d-b {
    display: block;
  }
}/*

/* PC（801px以上）：カテゴリーメニューを表示 */
@media screen and (min-width: 801px) {
  .category-menu {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: -2rem 3%;
    flex-wrap: wrap;
  }

  #menubar,
  #menubar_hdr {
    display: none;
  }
}


.site-title {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.site-title .name {
font-size:1.8rem; font-weight:700; line-height:1; color:#000;
}

.site-title .subtitle {
font-size:.75rem; font-weight:700; line-height:1; color:#000;
}

.category-menu ul {
  position: static;          /* absolute/transformを無効化 */
  transform: none;
  display: flex;
  justify-content: flex-start;
  flex-wrap: nowrap;         /* 1行に収める（足りなければ下のMQで折返し） */
  gap: 1rem;
  list-style: none;
  margin: 0 0 0 1rem;        /* タイトルとの間隔 */
  padding: 0;
  min-width: 0;
}

.category-menu ul li{ flex: 0 0 auto; }

.category-menu li a {
  display: block;
  text-decoration: none;
  color: #000;
  font-weight: 700;
  padding: .25rem .75rem;    /* クリック余白 */
  border-bottom: 2px solid transparent;
  transition: border-color .2s ease;
}

.category-menu li a:hover{
  border-bottom-color: var(--primary-color, #f46824);
}


/* スマホでは気持ちよく折り返し＆中央寄せ */
@media (max-width: 900px){
  .category-menu{ flex-wrap: wrap; row-gap: .5rem; }
  .category-menu ul{
    flex-basis: 100%;
    justify-content: center;
    flex-wrap: wrap;
    margin-left: 0;
  }
}

/* これがあるとスマホでヘッダーメニューが消えるので無効化 */
@media (max-width:800px){
  header .category-menu{ display: block; }
}

.hero-text {
  position: absolute;
  top: 20%;
  left: 5%;
  z-index: 10;
  color: #000;
  text-align: left;
  line-height: 0.1;
}

.hero-line1 {
  font-size: 4rem;
	  font-weight: bold;
  color: #f46824;
  margin-bottom: 0.3em;
}

.hero-line2 {
  font-size: 8rem;
  font-weight: bold;
  color: #f46824;
  margin-bottom: 1.2em;
}

.hero-ruby {
  font-size: 2.5rem;
	  font-weight: bold;
  letter-spacing: 0.2em;
  margin-bottom: 0em;
}

.hero-name {
  font-size: 8rem;
  font-weight: bold;
  margin-bottom: 0.4em;
}

.hero-title-wrap {
  display: flex;
  align-items: center;
  gap: 3rem; /* ← 横の余白調整（必要に応じて調整） */
  margin-bottom: 2em;
}

.hero-title {
  font-size: 2rem;
  font-weight: 1000;
  margin-bottom: 0.5;
}

.hero-en {
  font-size: 1rem;
  margin-bottom: 0.5;
}



@media screen and (max-width: 768px) {
  .hero-text {
    top: 5%;
    left: 5%;
    line-height: 1.2;
    text-align: left;
  }

  .hero-line1 {
    font-size: 1.5rem;
    margin-bottom: -1.5em;
  }

  .hero-line2 {
    font-size: 3rem;
    margin-bottom: 0em;
  }

  .hero-ruby {
    font-size: 0.7rem;
    margin-bottom: -2em;
	 margin-right: 0rem;
  }

  .hero-name {
    font-size: 2.5rem;
    margin-bottom: 0em;
  }

  .hero-title-wrap {
	    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0em;
  }

  .hero-title {
    font-size: 1rem;
	    margin-right: 1rem;
  }

  .hero-en {
    font-size: 0.7rem;
	  
  }
}



.info-section {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  margin-bottom: 3rem;
}

#greeting, #instagram {
  flex: 1 1 48%;
}

@media screen and (max-width: 768px) {
  .info-section {
    flex-direction: column;
  }
  #greeting, #instagram {
    flex: 1 1 100%;
  }
}



.greeting-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: flex-start;
}

.greeting-text {
  flex: 2 1 400px;
  font-size: 1.2rem;
  line-height: 1.8;
  text-align: left;
}




/* スマホ対応 */
@media screen and (max-width: 768px) {
  .greeting-wrapper {
    flex-direction: column;
  }
  .greeting-text, .greeting-photo {
    flex: 1 1 100%;
    text-align: center;
  }
}

.greeting-text h2,
.greeting-text p {
  text-align: left;
}

section h2 {
  text-align: left;
}



.greeting-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: flex-start;
}


.greeting-photo {
  flex: 1 1 250px;
}

.greeting-photo img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}



@media (max-width: 768px) {
  .greeting-flex {
    flex-direction: column;
    align-items: center;
  }
  .greeting-text {
    text-align: left;
  }
}



.policy-grid {
  display: grid;
  grid-template-columns: 1.7fr 1.5fr; /* ← 左の列をやや広くする */
  gap: 0.2rem;
  padding: 0rem 3%;
}

.policy-box {
  background-color: #fff;
  border: 2px solid #ffa733;
  padding: 0rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  border-radius: 0;
	  max-width: 100%; /* ← 不要な制限があれば削除または上書き */
}

.policy-heading {
  font-size: 1.3rem;
  color: #1a5bcc;
  font-weight: bold;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid #1a5bcc;
  padding-bottom: 0.2rem;
}

.policy-list {
  list-style: none;
  padding-left: 0;
  font-size: 1.1rem;
  font-weight: bold !important;
  line-height: 1.8;
}

.policy-list li::before {
  content: "○";
  margin-right: 0.5em;
  color: #333;
}

.policy-image img {
  width: 85%;
  height: auto;
}

/* スマホ対応 */
@media screen and (max-width: 800px) {
  .policy-grid {
    grid-template-columns: 1fr;
  }

  .policy-image img {
    width: 90%;
    margin: 0 auto;
    display: block;
  }
}



.policy-column {
  flex: 2;
}





.policy-boxes {
  flex: 1 1 80%;
  max-width: 80%;
}

.policy-box {
  width: 95%;
  display: block;
  justify-content: space-between;
  align-items: flex-start;
  border: 2px solid #f46824; /* オレンジの枠線 */
  padding: 0rem 1rem;
	margin-bottom: 1rem;       /* ボックス間の余白 */
  /*border-left: 6px solid #1a5bcc; /* 小見出しの色と合わせる */
	border-radius: 0;          /* 丸みをなくす */
  background-color: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  gap: 2rem;
}

.policy-text {
  flex: 2;
}

.policy-heading {
  font-size: 1.8rem;
  color: #1a5bcc;
  font-weight: bold;
  margin-bottom: 1rem;
	line-height: 1;
	border-bottom: 1px solid #1a5bcc; /* ← 下線を追加 */
  padding-bottom: 0rem; /* 下線と文字の間に少し余白 */
	border-radius: 0; /* ← 念のためここにも追加 */
}

.policy-list {
  list-style: none;
  padding-left: 0;
  line-height: 1;
	  font-weight: bold !important;
  font-size: 1.3rem; /* ← この行を追加・調整 */
}

.policy-list li::before {
  content: "○";
  color: #333;
	
  margin-right: 0.5em;
}

.policy-box li {
  margin-bottom: 0.8em;
  padding-left: 1em;
  position: relative;
}




.policy-grid h2 {
  border-bottom: 2px solid #f46824;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
  color: #f46824;
  font-size: 2rem;
  font-weight: bold;
	text-align: center; /* ← これを追加 */
  width: 100%; /* これで全幅に伸ばせる */
}


.policy-wrapper {
  display: block;
	  width: 100%;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
}



.report-section h2 {
  border-bottom: 2px solid #f46824;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
  color: #f46824;
  font-size: 1.5rem;
  font-weight: bold;
	text-align: center; /* ← これを追加 */
  width: 100%; /* これで全幅に伸ばせる */
}

.report2-section h3 {
  border-bottom: 2px solid #f46824;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
  color: #f46824;
  font-size: 1.5rem;
  font-weight: bold;
	text-align: center; /* ← これを追加 */
  width: 100%;
}



.report-section {
  padding: 2rem;
  margin: 3rem auto;
}

.report2-section {
  padding: 2rem;
  margin: 3rem auto;
}

.report-title {
  text-align: center;
  color: #f46824;
  font-size: 1.8rem;
  margin-bottom: 2rem;
}

.report-wrapper {
  display: flex;
  gap: 4rem;
  justify-content: center;
  flex-wrap: wrap;
}

.report-box {
  text-align: center;
	/* ← ここが大事。カードの基準幅を決めて縮む許可を出す */
  flex: 0 1 450px;   /* 基準幅340px、必要なら縮む */
  min-width: 0;      /* 画像のせいで縮まなくなるのを防止 */
  text-align: center;
}

.report-label {
  display: inline-block;
  border: 2px solid #f46824;
  border-radius: 30px;
  padding: 0.3em 1.5em;
  margin-bottom: 1rem;
  color: #f46824;
  font-weight: bold;
}

.report-box img {
  width: 100%;
  max-width: 100%;   /* 親に合わせて縮む */
  height: auto;
}



.report-box:hover img {
  transform: scale(1.03);
}

.profile-section h2 {
  border-bottom: 2px solid #f46824;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
  color: #f46824;
  font-size: 1.5rem;
  font-weight: bold;
	text-align: center; /* ← これを追加 */
  width: 100%; /* これで全幅に伸ばせる */
}




.footer-access {
  background: #f46824;
  padding: 3rem 5%;
  color: #fff;
}

.access-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
  max-width: 1200px;
  margin: auto;
}

.access-left {
  flex: 1 1 300px;
}

.access-left h4 {
  font-size: 3.5rem;
  line-height: 1.5;
  margin-bottom: 1rem;
}

.access-left span {
  font-weight: bold;
  font-size: 2.5rem;
}

.access-left p {
  margin-bottom: 5rem;
  line-height: 1.6;
	font-size: 1.2rem;
}

.btn-contact {
  display: block;
	width: 70% ;
  padding: 0.7rem 1.5rem;
	text-align: center;
  background: #fff;
  color: #333;
  text-decoration: none;
  border-radius: 8px;
  font-weight: bold;
  transition: 0.3s;
}

.btn-contact:hover {
  background: #ffcc8c;
  color: #000;
}

.access-map {
  flex: 1 1 400px;
  max-width: 100%;
}

.footer-logos {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin: 2rem 0; /* 下に余白 */
  flex-wrap: wrap;
}

.footer-logos a {
  display: inline-block;
  /*border: 1px solid #ccc;     /* 四角い枠 */
  padding: 0px;
  border-radius: 0px;
  background: #fff;
  /*transition: box-shadow 0.3s;*/
}

.footer-logos a:hover {
  /*box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);  /* ホバー時に影を出す */
}

.footer-logos img {
  height: 70px;
  width: auto;
  display: block;
}


#greeting,
#policy {
  padding-left: 5%;
  padding-right: 5%;

}
#policy h2 {
  border-bottom: 2px solid #f46824;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
  color: #f46824;
  font-size: 3rem;
  font-weight: bold;
	text-align: center; /* ← これを追加 */
  width: 100%; /* これで全幅に伸ばせる */
}
#greeting{
  padding-left: 5%;
}


@media screen and (max-width: 800px) {
  .policy-section {
    display: block;
  }

  .policy-column {
    display: block;
    width: 100%;
  }

  .policy-image {
    width: 40%;
    max-width: 40%;
    margin-top: 2rem;
    text-align: center;
  }

  .policy-image img {
    width: 70%;
    max-width: 300px;
    height: auto;
  }
}

@media screen and (max-width: 800px) {
  .policy-box {
    margin: 0 auto 2rem;
  }
}
.hero {
  position: relative;
  width: 100%;
  height: auto;
}

.hero-title-image {
  position: absolute;
  top: 15%;
  left: 5%;
  width: 55%; /* 必要に応じて調整 */
  max-width: 800px;
  height: auto;
  z-index: 10;
}

@media screen and (max-width: 768px) {
  .hero-title-image {
    top: 10%;
    left: 5%;
    width: 80%;
  }
}



#report-wrapper {
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  align-items: flex-start;
  padding: 2rem 5%;
  flex-wrap: wrap;
}

.report-slider {
  flex: 2;
  min-width: 300px;
}

.report-greeting {
  flex: 1;
  min-width: 250px;
  border-radius: 8px;
}

.report-greeting h2 {
  font-size: 1.5rem;
  color: #1a5bcc;
  margin-bottom: 1rem;
}

.report-greeting ul {
  padding-left: 1rem;
  font-size: 1rem;
  line-height: 1.6;
  list-style-type: disc;
}

@media screen and (max-width: 768px) {
  #report-wrapper {
    flex-direction: column;
  }

  .report-slider,
  .report-greeting {
    width: 100%;
  }
}

.report-area {
  display: flex;
  align-items: flex-start; /* ← 上揃え */
  gap: 2rem;
}
.report-left, .report-right {
  flex: 1;
}


.report-backnumber {
  text-align: center;
  margin-top: 2rem;
}


.report-link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.report-box img { transition: transform .2s ease; }
.report-box:hover img { transform: scale(1.02); }

.backnumber-button {
	color: black;
	font-size: 1.8rem;
}

.qa-archive {
  text-align: center;
  margin-top: 1.5rem;      /* セクションとの間隔 */
}

/*.backnumber-button {
  display: inline-block;
  background-color: #f46824;
  color: white;
  padding: 0.8rem 2rem;
  border-radius: 30px;
  font-weight: bold;
  text-decoration: none;
  transition: background 0.3s;
}

.backnumber-button:hover {
  background-color: #f46824;
}
*/
.hero {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.hero-image {
  display: block;
  width: 100%;
  height: auto; /* 高さ自動 */
	
}

.hero-title-image {
  position: absolute;
  top: 10%; /* 必要に応じ調整 */
  left: 5%;
  width: 60%; /* PC時のサイズ */
  max-width: 750px;
}

@media screen and (max-width: 768px) {
  .hero-title-image {
    top: 10%;
    left: 5%;
    width: 55%;
    max-width: none;
  }
}
.category-menu {
  overflow-y: hidden;
}
/* ロゴ余白ゼロ（PC・スマホ共通） */
#logo {
  margin: 0;
  padding: 0;
  line-height: 1;
}

#logo img {
  display: block;
  margin: 0;
  padding: 0;
}



.policy-clean {
  text-align: center; /* 全体を中央揃え */
}

.policy-clean .policy-block {
  text-align: left; /* この中だけ左揃えに */
  margin: 0 auto 2.5rem; /* 中央寄せ＋下に余白 */
  max-width: 1000px; /* 一番長い行に合わせて幅を調整 */
}

.policy-heading {
	text-align: left; /* この中だけ左揃えに */}

.policy-clean .policy-heading {
  color: #1a5bcc;
  font-size: 2.5rem;
  font-weight: bold;
  border-bottom: 2px solid #1a5bcc; /* 下線 */
  padding-bottom: 0.2rem;
  margin: 0 auto 1rem auto;
  display: inline-block; /* 文字幅に合わせる */
  text-align: left;
  margin-left: 10rem; /* ← これで左に寄せる */
}

#policy .policy-clean .policy-list li {
  font-weight: bold;
}


.policy-clean .policy-list {
  list-style: none;
  padding-left: 0;
	color: black;
	  margin: 1.5rem 0 2rem; /* 上下に余白（上1.5rem, 下2rem） */
  font-size: 1.5rem;
  display: inline-block; /* 箇条書き全体を中央寄せ */
  text-align: left; /* 箇条書き内は左寄せ */
}

.policy-clean .policy-list li::before {
  content: "○";
  margin-right: 0.5em;
  color: #333;
}

.policy-clean li {
  margin-bottom: 0.8rem;
}

@media screen and (max-width: 600px) {
  .policy-clean .policy-heading {
    font-size: 1.5rem; /* ← 小さくする（調整可） */
    white-space: nowrap; /* ← 強制的に1行表示 */
	    margin-left: 1rem; /* ← これで左に寄せる */
  }
	.policy-clean .policy-list {
  list-style: none;
  padding-left: 0;
	color: black;
	  margin: 1.5rem 0 2rem; /* 上下に余白（上1.5rem, 下2rem） */
  font-size: 1rem;
  display: inline-block; /* 箇条書き全体を中央寄せ */
  text-align: left; /* 箇条書き内は左寄せ */
}
}




#activity h2 {
  border-bottom: 2px solid #f46824;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
  color: #f46824;
  font-size: 3rem;
  font-weight: bold;
	text-align: center; /* ← これを追加 */
  width: 100%; /* これで全幅に伸ばせる */
}

#pref-report h3 {
  border-bottom: 2px solid #f46824;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
  color: #f46824;
  font-size: 3rem;
  font-weight: bold;
	text-align: center; /* ← これを追加 */
  width: 100%; /* これで全幅に伸ばせる */
}

#profile h2 {
  border-bottom: 2px solid #f46824;
  padding-bottom: 0.5rem;
  margin-bottom: 2rem;
  color: #f46824;
  font-size: 3rem;
  font-weight: bold;
	text-align: center; /* ← これを追加 */
  width: 100%; /* これで全幅に伸ばせる */
}





/* ===== Backnumber page ===== */
.backnumber-hero {
  text-align: center;
  margin: 2.5rem auto 1.5rem;
}
.backnumber-hero h2 {
  display: inline-block;
  font-size: 1.8rem;
  color: #f46824;
  font-weight: bold;
  border-bottom: 2px solid #f46824;
  padding-bottom: .3rem;
  margin: 0;
}

/* Backnumber 一覧 */
.backnumber-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:2rem;
  align-items:start;
  max-width:1100px;
  margin:2rem auto 3rem;
  padding:0 1rem;
}
.backnumber-item{text-align:center;}
.backnumber-thumb{
  position:relative;display:block;border-radius:10px;overflow:hidden;
  box-shadow:0 6px 18px rgba(0,0,0,.08);
  transition:transform .2s ease, box-shadow .2s ease;
}
.backnumber-thumb img{
  width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;
}
.backnumber-thumb:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.16);}
.backnumber-thumb::after{
  content:"PDFを見る";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  padding:.4rem .8rem;font-size:.85rem;color:#fff;background:rgba(0,0,0,.45);
  border-radius:20px;opacity:0;transition:opacity .2s ease;pointer-events:none;
}
.backnumber-thumb:hover::after{opacity:1;}
.backnumber-item p{margin:.6rem 0 0;font-weight:600;color:#333;font-size:.95rem;}
@media (max-width:600px){
  .backnumber-list{gap:1.25rem;}
  .backnumber-item p{font-size:.9rem;}
}

/* スマホ最適化：政策リストの読みやすさ改善 */
@media (max-width: 600px) {
  .policy-clean { padding: 0 1rem; }

  .policy-clean .policy-heading {
    font-size: 1.3rem;      /* 見出し少しだけ小さく */
    margin-bottom: .8rem;
  }

  .policy-clean .policy-list {
    display: block;         /* 横幅いっぱいにして余白を確保 */
    font-size: 1rem;        /* 本文少し小さく */
    line-height: 1.9;       /* 行間ゆったり */
    margin: 1rem 0 1.5rem;
  }

  .policy-clean .policy-list li {
    position: relative;     /* 疑似要素の位置基準 */
    padding-left: 1.2em;    /* ○と本文の間に確実なスペース */
    margin-bottom: .7rem;   /* 項目間の余白 */
    word-break: normal;     /* 和文の自然な改行 */
    overflow-wrap: anywhere;/* 長い語（英数）でのはみ出し防止 */
    letter-spacing: .01em;  /* ほんの少し字間を広げる（任意） */
  }

  .policy-clean .policy-list li::before {
    content: "●";
    position: absolute;
    left: 0;
    top: .25em;             /* バレットの縦位置を微調整 */
  }
}

.policy-clean h3 {
  margin-top: 2rem;     /* 政策項目の前に余白 */
  margin-bottom: 0.8rem;
  font-size: 1.1rem;
}


/* ---- タイトルは左、メニューは中央に配置 ---- */

/* 親を相対位置基準にする */
.category-menu {
  position: relative;
  display: flex;
  align-items: center;
  padding: .5rem 1rem;
}

/* サイトタイトルは左寄せ */
.category-menu .site-title {
  margin: 0;
  white-space: nowrap;
}

/* メニューULだけ画面中央に強制配置 */
.category-menu ul {
  position: absolute;
  left: 54%;
  transform: translateX(-50%);
  display: flex;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
