@charset "utf-8";




/*リセットCSS（sanitize.css）の読み込み
---------------------------------------------------------------------------*/
@import url("https://unpkg.com/sanitize.css");

/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css");

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

/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=BIZ+UDPGothic&display=swap');

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





/*全体の設定
---------------------------------------------------------------------------*/
html,body {
	margin: 0;padding: 0;
	height: 100%;
	font-size: 13px;	/*基準となるフォントサイズ。下の方にある「画面幅900px以上」で基準を大きなサイズに再設定しています。*/
}

body {
	font-family: 'BIZ UDPGothic', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;	/*フォント種類*/
	-webkit-text-size-adjust: none;
	background: #fff;	/*背景色*/
	color: #333;		/*全体の文字色*/
	line-height: 2;		/*行間*/
	overflow-x: hidden;
}

/*リセット*/
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%;}

/*ul,olタグ*/
ul, ol {margin-bottom: 30px;}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: #666;	/*文字色*/
	transition: 0.3s;
}

a:hover {
	opacity: 0.8;	/*マウスオン時に80%の透明度にする*/
}

a {
    text-decoration: none;
    color: blue; /* 青色に設定 */
}

a:visited {
    color: purple; /* リンク先に飛んだ後のテキストの色を紫に設定 */
}


/*sectionタグと、詳細ページの共通設定
---------------------------------------------------------------------------*/
section,
main > article {
	padding: 3% 5%;		/*上下、左右へのボックス内の余白*/
}


/*containerブロック
---------------------------------------------------------------------------*/
#container {
	height: 100%;
	max-width: 1920px;				/*サイトの最大幅*/
	margin: 0 auto;
	display: flex;					/*flexボックスを使う指定*/
	flex-direction: column;			/*子要素を縦並びにする*/
	justify-content: space-between;	/*並びかたの種類の指定*/
}


/*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
	background: #00b1d4;	/*背景色*/
	color: #fff;			/*文字色*/
	position: relative;
}

/*ヘッダーのリンクテキストの文字色*/
header a {
	color: #fff;
}

/*ロゴ画像*/
header #logo img {display: block;}
header #logo {
    max-width: 600px; /* 最大幅を700pxに設定 */
	margin: 0 auto;		/*ロゴを左右中央に配置*/
}

/*トップページのロゴ画像*/
.home header #logo {
	position: absolute; z-index: 1;
	width: 90%;		/*ロゴの幅*/
	left: 5%;		/*headerに対して、左からの配置場所*/
	top: 10%;		/*headerに対して、上からの配置場所*/
}

/*トップページのロゴ下に書いている説明文*/
header #logo p {
	font-size: 0.8em;
}


/*menubarブロック初期設定
---------------------------------------------------------------------------*/
#menubar ul {list-style: none;margin: 0;padding: 0;}

/*メニューを非表示にしておく*/
#menubar {display: none;}

/*開閉用のスタイル*/
#menubar.db {display: block;}
#menubar.dn {display: none;}

/*メニュー１個あたりの設定*/
#menubar a {
	display: block;text-decoration: none;
	text-align: center;	/*テキストを中央に*/
	padding: 14px 0;	/*上下、左右へのメニュー内の余白*/
}

/*マウスオン時*/
#menubar ul li a:hover {
	opacity: 1;
	background: #00b1d4;	/*背景色*/
	color: #fff;			/*文字色*/
}


/*大きな端末用のメニュー設定
---------------------------------------------------------------------------*/
/*メニューブロック設定*/
.p #menubar {
	border-bottom: 1px solid #ccc;	/*下線の幅、線種、色*/
}

/*メニュー１個あたりの設定*/
.p #menubar a {
	background: #fff;	/*背景色*/
}


/*小さな端末用の設定（開閉ブロック）
---------------------------------------------------------------------------*/
/*メニューブロック設定*/
.s #menubar.db {
	position: fixed;overflow: auto;z-index: 100;
	left: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding: 70px 0;	/*上下、左右へのブロック内の余白*/
	background: rgba(0,0,0,0.9);		/*背景色。0,0,0は黒の事で0.9は色が90%出た状態の事。*/
	color: #fff;						/*文字色*/
	animation: animation1 0.2s both;	/*animation.cssの、animation1を実行する。0.2sは0.2秒の事。*/
	text-align: center;
}

/*メニュー１個あたりの設定*/
.s #menubar.db a {
	display: block;text-decoration: none;
	text-align: center;		/*テキストを中央に*/
	color: #fff;	/*文字色*/
	padding: 20px;	/*メニュー内の余白*/
}


/*ドロップダウンメニュー
---------------------------------------------------------------------------*/
/*ドロップダウンを非表示にしておく*/
#menubar .ddmenu_parent ul {
	display: none;
}

/*ドロップダウンメニューの親のリンク先が空なので、カーソルをデフォルトにしておく。*/
a.ddmenu {
	cursor: default;
}

/*ドロップダウンメニューを持つ親に矢印アイコンをつける設定*/
a.ddmenu::before {
	font-family: "Font Awesome 5 Free";	/*Font Awesomeを使う指定*/
	content: "\f150";		/*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
	font-weight: bold;		/*この手の設定がないとアイコンが出ない場合があります*/
	margin-right: 0.5em;	/*アイコンとテキストとの間に空けるスペース*/
	opacity: 0.6;			/*アイコンの透明度。色を60%出した状態。*/
}

/*ドロップダウンメニュー全体の設定*/
.ddmenu_parent ul {
	border: 1px solid #ccc;	/*線の幅、線種、色*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*開閉用のスタイル*/
#menubar_hdr.db {display: flex;}
#menubar_hdr.dn {display: none;}

/*３本バーを囲むブロック*/
#menubar_hdr {
	position: fixed;z-index: 101;
	cursor: pointer;
	left: 0.5%;			/*左からの配置場所指定*/
	top: 2px;			/*上からの配置場所指定*/
	padding: 16px 14px;	/*上下、左右への余白*/
	width: 52px;		/*幅（３本バーが出ている場合の幅になります）*/
	height: 52px;		/*高さ*/
	display: flex;					/*flexボックスを使う指定*/
	flex-direction: column;			/*子要素（３本バー）を縦並びにする*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	transform: scale(1.2);			/*元々準備していたサイズの1.2倍にしました。お好みでサイズ調整して下さい。*/
}

/*バー１本あたりの設定*/
#menubar_hdr span {
	display: block;
	transition: 0.3s;	/*アニメーションにかける時間。0.3秒。*/
	border-top: 2px solid #fff;	/*線の幅、線種、色*/
	box-shadow: 1px 1px 2px #000;
}

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

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

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

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


/*mainブロック設定
---------------------------------------------------------------------------*/
/*mainブロックの設定*/
main {	
	flex: 1;
}

/*mainブロック内のh2タグ*/
main h2 {
	margin: 0;
	margin-bottom: 1em;	/*下に空けるスペース*/
	position: relative;		/*アニメーションに必要な設定*/
	letter-spacing: 0.1em;	/*文字間隔を少しだけ広くとる設定*/
	border-bottom: 3px solid #f5f5f5;	/*デフォルトのラインの色。下の「bottom」と「height」の３ヶ所の数字部分を合わせる*/
}

/*下線スタイル*/
main h2 .uline {
	display: inline-block;position: relative;
	padding: 10px 20px;	/*h2タグ内の余白。上下、左右への順番。*/
	bottom: -3px;		/*上の「border-bottom」と下の「height」の３ヶ所の数字部分を合わせる。※この行だけマイナスをつけるように。*/
}
main h2 .uline::before {
	content: "";position: absolute;bottom: 0px;left: 0px;width: 100%;
	height: 3px;	/*ラインの高さ。上の「border-bottom」と「bottom」の３ヶ所の数字部分を合わせる*/
	background: #00b1d4;		/*アニメーション時のラインの色*/
	transition: 1s 0.5s;		/*1sはアニメーションの実行時間は1秒。0.5秒遅れてスタートする指定。*/
	transform: scaleX(0);		/*幅。最初は0にして見えなくしておく。*/
	transform-origin: left top;	/*線の出現起点が左からになるように。中央からの出現がよければこの１行削除。*/
}
main h2.linestyle .uline::before {
	transform: scaleX(1);
}

/*mainブロック内のh3タグ*/
main h3 {
	padding: 0 20px;
	margin-bottom: 1em;	/*下に空けるスペース*/
	border-bottom: 1px solid #ddd;
}

/*mainブロックのpタグ*/
main p {
	margin: 0 20px 2em;	/*上、左右、下へ空けるスペース*/
}
main p + p {
	margin-top: -1em;
}


/*2カラムの場合
---------------------------------------------------------------------------*/
/*2カラム（.mainと.sub）を囲むブロック*/
.c2 {
	display: flex;			/*flexボックスを使う指定*/
	flex-direction: column;	/*子要素を縦並びにする*/
	padding: 5%;			/*ボックス内の余白*/
}

/*.mainのsectionのpaddingを一旦リセット*/
.main section {
	padding: 0;
}

/*１つ目以外のsectionの上部に空ける余白。section同士の上下間にとる余白です。*/
.main section:not(:nth-of-type(1)) {
	padding-top: 5%;
}

/*main（※頭にドット「.」のない「main」とは全く異なります。）*/
.main {
	order: 2;	/*表示させる順番。数字が小さい方が最初に表示されます。*/
}

/*sub*/
.sub {
	order: 1;	/*表示させる順番。数字が小さい方が最初に表示されます。*/
}

/*sub内のh3タグ*/
.sub h3 {
	font-weight: normal;
	font-size: 1em;
	margin: 0;
	border: none;
	background: #00b1d4;	/*背景色*/
	color: #fff;			/*文字色*/
	text-align: center;		/*テキストをセンタリング*/
}


/*submenu（２カラム時にsubで使っているメニュー）
---------------------------------------------------------------------------*/
/*メニュー全体の設定*/
ul.submenu {
	list-style: none;
	padding: 0;margin: 0;
	margin-bottom: 20px;		/*メニューブロックの下に空けるスペース*/
	border-top: solid 1px #ccc;	/*上の線の幅、線種、色*/
}

/*メニュー１個あたりの設定*/
ul.submenu li {
	display: block;margin: 0;
	border-bottom: solid 1px #ccc;	/*下線の幅、線種、色*/
}
ul.submenu li a {
	text-decoration: none;display: block;
	padding: 5px 10px;	/*上下、左右へとる余白*/
}

/*マウスオンj時の背景色*/
ul.submenu li a:hover {
	background: #f0f0f0;
}


/*フッター設定
---------------------------------------------------------------------------*/
footer small {font-size: 100%;}

footer {
	font-size: 0.7rem;		/*文字サイズ*/
	text-align: center;		/*内容をセンタリング*/
	background: #00b1d4;	/*背景色*/
	color: #fff;			/*文字色*/
}

/*リンクテキスト*/
footer a {text-decoration: none;color: #fff;}

/*著作部分*/
.pr {display: block;}

/*copyrightと著作部分*/
.copy {padding: 1%;}


/*フッターメニュー
---------------------------------------------------------------------------*/
/*メニューブロック全体*/
#footermenu {
	margin: 0;
	padding: 1%;		/*ブロック内の余白*/
}

/*メニュー１個あたり*/
#footermenu li {
	display: inline-block;	/*横並びにする*/
	padding: 0 10px;		/*上下、左右への余白*/
	font-size: 1.2em;		/*文字サイズ*/
}


/*「お知らせ」ブロック
---------------------------------------------------------------------------*/
/*お知らせブロック*/
#new {
	margin: 0;
	display: flex;		/*flexボックスを使う指定*/
	flex-wrap: wrap;	/*折り返す指定*/
	padding: 0 20px;	/*上下、左右へのボックス内の余白*/
}

/*日付(dt)、記事(dd)共通設定*/
#new dt,
#new dd {
	padding: 5px 0;		/*上下、左右へのボックス内の余白*/
}

/*日付(dt)設定*/
#new dt {
	width: 8em;	/*幅。8文字(em)分。※下の「900px以上」の端末用の設定に再設定があります。*/
}

/*日付の横のマーク（共通設定）*/
#new dt span {
	display: none;	/*小さな端末では非表示にしておく。*/
}

/*記事(dd)設定*/
#new dd {
	width: calc(100% - 8em);	/*「8em」は上の「#new dt」のwidthの値です。※下の「900px以上」の端末用の設定に再設定があります。*/
}


/*listブロック
---------------------------------------------------------------------------*/
.list {
	margin-bottom: 30px;	/*ボックス同士の上下間に空けるスペース*/
	padding: 20px;			/*ボックス内の余白*/
	background: #fff;		/*背景色*/
	color: #999;			/*文字色*/
	box-shadow: 5px 5px 20px rgba(0,0,0,0.1);	/*ボックスの影。右へ、下へ、ぼかし幅、0,0,0は黒の事で0.1は色が10%出た状態。*/
	position: relative;
}

/*ボックス内のh4タグ*/
.list h4 {
	margin: 0;
	color: #666;	/*文字色*/
}
.list h4 a {
	color: #666;	/*リンクテキストの文字色*/
}

/*ボックス内のpタグ*/
.list p {
	margin: 0;
	font-size: 0.8em;	/*文字サイズを80%に*/
}

/*list内のNEWマーク*/
.list .new {
	font-size: 0.6em;		/*文字サイズ*/
	background: #ff0000;	/*背景色*/
	color: #fff;			/*文字色*/
	width: 50px;			/*幅*/
	line-height: 50px;		/*高さ*/
	border-radius: 50%;		/*角丸のサイズ。円形になります。*/
	text-align: center;		/*テキストをセンタリング*/
	position: absolute;
	left: -10px;			/*listブロックに対して左からの配置場所の指定*/
	top: -10px;				/*listブロックに対して上からの配置場所の指定*/
	transform: rotate(-30deg);	/*回転。まっすぐ表示させたいならこの１行を削除。*/
}

/*list内でのbtn*/
.list .btn {
	margin-top: 1em;	/*ボタンの上に１文字分のスペースを空ける*/
}
.list .btn a {
	display: block;
}


/*FAQ
---------------------------------------------------------------------------*/
/*FAQボックス全体*/
.faq {
	padding: 0 5px;	/*上下、左右へのボックス内の余白*/
}

/*質問*/
.faq dt {
	border-radius: 3px;		/*枠を角丸にする指定*/
	margin-bottom: 20px;	/*下に空けるスペース*/
	background: linear-gradient(#fff, #f7f7f7);	/*背景グラデーション*/
	text-indent: -2em;				/*テキストのインデント。質問が複数行になった際に、テキストの冒頭を揃える為に設定しています。*/
	padding: 5px 1em 5px 3em;		/*ボックス内の余白。ここを変更する場合、上のtext-indentも調整します。*/
	border: 1px solid #e4e2d7;		/*枠線の幅、線種、色*/
}

/*アイコン（Font Awesome）*/
.faq dt::before {
	font-family: "Font Awesome 5 Free";	/*Font Awesomeを使う指定*/
	content: "\f059";		/*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
	color: #00b1d4;			/*アイコンの色*/
	padding-right: 1em;		/*アイコンとテキストの間の余白*/
}

/*回答*/
.faq dd {
	padding: 5px 1em 30px 3em;		/*ボックス内の余白**/
}

/*opencloseを適用した要素のカーソル*/
.openclose {
	cursor: pointer;	/*カーソルの形状。リンクと同じスタイルにしてクリックできると認識してもらう。*/
}

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


/*STATSU
---------------------------------------------------------------------------*/
/*画像の中央揃え*/
.statsu table {
    width: 100%;
    border-collapse: collapse;
}

.statsu table td {
    text-align: center;
}

.statsu img {
    max-width: 100%;
    height: auto;
    display: block;
}

@media screen and (max-width: 767px) {
  img {
    max-width: 100%;
    height: auto;
  }
}

/* 画像、文字をレスポンシブにして中央に配置するためのCSS
---------------------------------------------------------------------------*/
table {
    width: 100%;
    border-collapse: collapse;
}

td {
    text-align: left;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/*btnの設定
---------------------------------------------------------------------------*/
p.btn {margin: 0;}

/*ボタンを囲むブロック*/
.btn {
	text-align: center;	/*内容をセンタリング*/
}

/*ボタン*/
.btn a,
.btn input {
	display: inline-block;text-decoration: none;border: none;
	font-size: 1em;
	box-shadow: 2px 2px 5px rgba(0,0,0,0.2);	/*ボックスの影。右へ、下へ、ぼかし幅の順。0,0,0は黒の事で0.2は色が20%出た状態。*/
	background: #00b1d4;	/*背景色*/
	letter-spacing: 0.1em;	/*文字間隔を少し広くする指定*/
	color: #fff;			/*文字色*/
	transition: 0.3s;		/*hoverまでにかける時間。0.3秒。*/
	padding: 1em 2em;		/*余白*/
	margin: 0 auto 30px;	/*ボタンの外側に空けるスペース。上、左右、下への順番。*/
}

/*ボタンのマウスオン時*/
.btn a:hover,
.btn input:hover {
	cursor: pointer;		/*inputタグを使う場合に「手」のマークになるように。リンクと同じ表示になるようにという事です。*/
	opacity: 1;
	filter: brightness(1.2);
	transform: scale(1.02);	/*実寸の102%に拡大*/
}

/*listブロック内のボタン*/
.list .btn a {
	margin: 0;
}


/*テーブル
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	font-weight: bold;		/*太字に*/
	padding: 10px 5px;		/*上下、左右へのボックス内の余白。基本的に数行下の「.ta1 th, .ta1 td」のpaddingと揃えておけばOKです。*/
	background: #eee;		/*背景色*/
	margin-bottom: 15px;	/*下に空けるスペース*/
}

/*ta1テーブルブロック設定*/
.ta1 {
	border-top: 1px solid #ccc;	/*テーブルの一番上の線。幅、線種、色*/
	width: 100%;
	margin: 0 auto 30px;		/*最後の「30px」がテーブルの下に空けるスペースです*/
}

/*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;	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
	vertical-align: top;   /* ← 追加 */
}

/*th（左側）のみの設定*/
.ta1 th {
	width: 200px;      /* ← 30%をやめて固定幅にする */
	text-align: left;
	white-space: nowrap; /* ← 見出しを折り返さない */
}


/*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.5em;	/*文字サイズ*/
	background: rgba(0,0,0,0.2);	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
	width: 60px;		/*幅*/
	line-height: 60px;	/*高さ*/
	border-radius: 50%;	/*円形にする*/
}


/*bg1（背景に色がついたタイプ）
---------------------------------------------------------------------------*/
.bg1 {
	background: #111;	/*背景色*/
	color: #fff;		/*文字色*/
}
.bg1 a {
	color: #fff;		/*リンクテキストの文字色*/
}


/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.color-theme, .color-theme a {color: #00b1d4 !important;}
.color-check, .color-check a {color: #f00 !important;}
.c {text-align: center !important;}
.ws {width: 95%;display: block;}
.wl {width: 95%;display: block;}
.mb30 {margin-bottom: 30px !important;}
.mt30 {margin-top: 30px !important;}
.look {display: inline-block;padding: 0px 10px;background: #666; color: #fff; border-radius: 3px;margin: 5px 0; word-break: break-all;}
.look .color-check {color: #ffcc00 !important;}
.small {font-size: 0.6em;}
.pc {display: none;}





/*---------------------------------------------------------------------------
ここから下は画面幅400px以上の追加指定
---------------------------------------------------------------------------*/
@media screen and (min-width:400px) {

/*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*トップページのロゴ画像*/
.home header #logo {
	padding-top: 5%;	/*上に空ける余白。上下間のバランスをとって下さい。*/
}

/*　※注意！　下の閉じカッコ　}　はこのブロックに必要なので、削除しないで下さい。　*/

}





/*---------------------------------------------------------------------------
ここから下は画面幅600px以上の追加指定
---------------------------------------------------------------------------*/
@media screen and (min-width:600px) {


/*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*トップページのロゴ画像*/
.home header #logo {
	width: 40%;			/*ロゴの幅*/
	padding-top: 10%;	/*上に空ける余白。上下間のバランスをとって下さい。*/
}


/*listブロック
---------------------------------------------------------------------------*/
.list {
	display: flex;					/*flexボックスを使う指定*/
	justify-content: space-between;	/*並びかたの種類の指定*/
}

/*ボックス内のfigure画像*/
.list figure {
	width: 30%;			/*幅*/
	margin-right: 5%;	/*画像の右側に空けるスペース*/
}

/*ボックス内のtextブロック*/
.list .text {
	flex: 1;
	margin-right: 5%;
}


/*　※注意！　下の閉じカッコ　}　はこのブロックに必要なので、削除しないで下さい。　*/

}





/*---------------------------------------------------------------------------
ここから下は画面幅800px以上の追加指定
---------------------------------------------------------------------------*/
@media screen and (min-width:800px) {


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


/*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*トップページのロゴ画像*/
.home header #logo {
	left: 10%;			/*headerに対して、左からの配置場所*/
	padding-top: 13%;	/*上に空ける余白。上下間のバランスをとって下さい。*/
}


/*menubarブロック設定
---------------------------------------------------------------------------*/
/*メニューブロック全体*/
#menubar ul {
	margin: 0;
	display: flex;
	justify-content: space-around;
	line-height: 1.6;	/*行間を少しだけ狭くする*/
}

/*メニュー１個あたりの設定*/
#menubar ul li {
	flex: 1;
}

	
/* 上部メニューをスクロール追従（PCのみ） */
#menubar {
  position: sticky;
  top: 0;
  z-index: 200;
  background: #fff;
  border-bottom: 1px solid #ccc;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}


/*ドロップダウンメニュー
---------------------------------------------------------------------------*/
#menubar .ddmenu_parent{
	position: relative;	/*ddmenu ulの幅となる基準を作っておく*/
}

/*ドロップダウンメニューブロック全体*/
#menubar .ddmenu_parent ul {
	position: absolute;			/*絶対配置するための指定*/
	z-index: 100;
	width: 100%;				/*親のliタグに幅を合わせる*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*ハンバーガーメニューを非表示にする*/
#menubar_hdr {display: none;}


/*2カラムの場合
---------------------------------------------------------------------------*/
/*2カラム（.mainと.sub）を囲むブロック*/
.c2 {
	flex-direction: row;			/*子要素を横並びにする*/
	justify-content: space-between;	/*並びかたの種類の指定*/
}

/*main（※頭にドット「.」のない「main」とは全く異なります。）*/
.main {
	width: calc(100% - 250px);	/*幅。250pxというのは、下のsubのwidthの値に余白分を加えた数字です。ちょうど200pxにしてしまうとキツキツになるので。*/
}

/*sub*/
.sub {
  width: 200px;  /* 幅。変更する際は上の.mainのwidthも調整して下さい。 */

  /* ★ ここから追加（←この位置が重要）★ */
  position: sticky;
  top: 80px;
  align-self: flex-start;
}

	
	
/*「お知らせ」ブロック
---------------------------------------------------------------------------*/
/*日付(dt)設定*/
#new dt {
	width: 14em;	/*幅。14文字(em)分。*/
	display: flex;	/*flexボックスを使う指定*/
	justify-content: space-between;	/*日付とアイコンをそれぞれ端に寄せる*/
}

/*日付の横のマーク（共通設定）*/
#new dt span {
	display: inline-block;	/*表示させる*/
	width: 6em;				/*幅。6文字(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;	/*上下の配置バランスの微調整*/
}

/*bg1設定。サンプルテンプレートでは「サービス」と書いてあるマーク*/
#new dt span.icon-bg1 {
	background: #00b1d4;	/*背景色*/
}

/* Newsカテゴリ：活動報告 */
#new dt span.icon-bg2 {
	background: #2f855a;
}

/* Newsカテゴリ：お知らせ */
#new dt span.icon-bg3 {
	background: #b45309;
}

/*記事(dd)設定*/
#new dd {
	width: calc(100% - 14em);	/*「14em」は上の「#new dt」のwidthの値です。*/
}


/*listブロック
---------------------------------------------------------------------------*/
/*listブロック全体を囲むブロック*/
.list-container {
	display: flex;		/*flexボックスを使う指定*/
	flex-wrap: wrap;	/*折り返す指定*/
	/*justify-content: space-between;	並びかたの種類の指定*/
}

/*１個あたりのボックス設定*/
.list {
	flex-direction: column;			/*子要素を縦並びにする*/
	width: 32%;			/*幅。３列になります。*/
	margin-right: 2%;	/*右側へのマージン*/
}

/*３の倍数のボックスへの追加設定*/
.list:nth-of-type(3n) {
	margin-right: 0;	/*右側マージンをなくす*/
}

/*ボックス内のfigure画像*/
.list figure {
	width: 100%;
	margin-right: 0;
}

/*ボックス内のtextブロック*/
.list .text {
	margin-right: 0;
}

/*ボックス内のh4タグ*/
.list h4 {
	margin: 10px 0;	/*上下、左右への余白*/
}
}  /* ← ★これを953行目に追加（PC用 @media を閉じる） */

/*テーブル２
-------------------------*/
/* 5×5のマス */
/* 会員名簿（FAQ内）の表だけに限定 */

.faq table {
  border-collapse: collapse; /* セルの境界線を結合 */
  width: 100%;               /* 表の幅を100%に設定 */
}

.faq th,
.faq td {
  border: 1px solid #ddd;    /* セルの境界線を設定 */
  padding: 8px;              /* セル内の余白を設定 */
  text-align: left;          /* セル内のテキストを左寄せ */
  word-wrap: break-word;     /* セル内の文字列を折り返す */
}

.faq th {
  background-color: #f2f2f2; /* 背景色を設定 */
  font-weight: bold;         /* フォントを太字に設定 */
}

/* 各セルの幅を指定（会員名簿の表だけ） */
.faq td:nth-child(1) { width: 25%; }   /* 社名 */
.faq td:nth-child(2) { width: 10%; }   /* 郵便番号 */
.faq td:nth-child(3) { width: 30%; }   /* 住所 */
.faq td:nth-child(4) { width: 17.5%; }
.faq td:nth-child(5) { width: 17.5%; }

.faq td:nth-child(1) {
  word-break: keep-all;
}

	
	
/*その他
---------------------------------------------------------------------------*/
.ws {width: 48%;display: inline;}
.sh {display: none;}
.pc {display: block;}


/*　※注意！　下の閉じカッコ　}　はこのブロックに必要なので、削除しないで下さい。　*/

	
/* mainimg：横幅に応じて高さも縮小（内容優先の最小設定） */
#mainimg {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

#mainimg img,
#mainimg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* =========================================================
   スマホ用：会員一覧テーブルを見やすく・列幅を均等にする
   ========================================================= */
@media screen and (max-width: 799px) {

  /* 会員一覧テーブルのみ対象 */
  .faq table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
  }

  .faq table th,
  .faq table td {
    border: 1px solid #ccc;
    padding: 10px 6px;
    vertical-align: top;
    word-break: break-word;
  }

  .faq table th {
    background: #f5f5f5;
    font-weight: bold;
  }

  .faq table th:nth-child(1),
  .faq table td:nth-child(1) { width: 28%; }

  .faq table th:nth-child(2),
  .faq table td:nth-child(2) { width: 14%; }

  .faq table th:nth-child(3),
  .faq table td:nth-child(3) { width: 30%; }

  .faq table th:nth-child(4),
  .faq table td:nth-child(4) { width: 14%; }

  .faq table th:nth-child(5),
  .faq table td:nth-child(5) { width: 14%; }
}


/* 正会員・賛助会員ページではFAQアイコンを消す */
.main .faq::before,
.main .faq dt::before {
  content: none !important;
}

/* =========================================================
   スマホ用：協会概要（.ta1）テーブル最適化
   ・左列が広すぎる問題を解消
   ・地図行のムダな余白を削減
   ========================================================= */
@media screen and (max-width: 799px) {

  /* 概要テーブルだけ対象にする（会員一覧の fixed を解除） */
  .ta1 {
    table-layout: auto;
  }

  /* 左列（項目名） */
  .ta1 th {
    width: 95px;          /* 90〜110pxで微調整可 */
    padding: 8px 6px;
    white-space: normal;
    vertical-align: top;
  }

  /* 右列（内容） */
  .ta1 td {
    width: auto;
    padding: 8px 6px;
    vertical-align: top;
  }
}


/* 協会概要（.ta1）テーブル：縦線も表示する */
.ta1 {
  border-collapse: collapse;
  width: 100%;
}

.ta1 th,
.ta1 td {
  border: 1px solid #ccc;
  vertical-align: top;
}

.ta1 th {
  background: #f5f5f5;   /* ← 薄いグレー */
}

/* =========================================
   協会支部一覧テーブル 専用レイアウト
   ========================================= */

.branch-table {
  table-layout: fixed; /* 列幅指定を有効にする */
}

/* 支部 */
.branch-table th:nth-child(1),
.branch-table td:nth-child(1) {
  width: 10%;
  white-space: nowrap;
}

/* 郵便番号 */
.branch-table th:nth-child(2),
.branch-table td:nth-child(2) {
  width: 12%;
  white-space: nowrap;
}

/* 住所（最重要） */
.branch-table th:nth-child(3),
.branch-table td:nth-child(3) {
  width: 43%;
  white-space: normal;
  word-break: break-word;
}

/* 電話番号 */
.branch-table th:nth-child(4),
.branch-table td:nth-child(4) {
  width: 17%;
  white-space: nowrap;
}

/* FAX番号 */
.branch-table th:nth-child(5),
.branch-table td:nth-child(5) {
  width: 18%;
  white-space: nowrap;
}

/* =========================================
   協会支部一覧テーブル（branch-table）
   ・PC：列幅最適化
   ・スマホ：折り返し＋はみ出し防止
   ========================================= */

/* PC/共通：列幅（必要なら微調整） */
.branch-table {
  table-layout: fixed;
}
.branch-table th:nth-child(1), .branch-table td:nth-child(1) { width: 10%; }
.branch-table th:nth-child(2), .branch-table td:nth-child(2) { width: 12%; }
.branch-table th:nth-child(3), .branch-table td:nth-child(3) { width: 43%; }
.branch-table th:nth-child(4), .branch-table td:nth-child(4) { width: 17%; }
.branch-table th:nth-child(5), .branch-table td:nth-child(5) { width: 18%; }

/* スマホ：はみ出し防止＋全列折り返し */
@media screen and (max-width: 799px) {

  /* 表を横スクロール可能に（はみ出し完全防止） */
  .table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* テーブルが潰れすぎない最低幅（好みで650〜800px） */
  .branch-table {
    min-width: 720px;
    table-layout: auto; /* スマホでは自然な折返し */
  }

  /* ★最重要：全セルを確実に折り返す（電話・FAX含む） */
  .branch-table th,
  .branch-table td {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* =========================================
   スマホ：支部一覧（branch-table）最適化
   ・住所が広すぎて電話/FAXがはみ出る問題を解消
   ・電話/FAXも折り返す
   ・th の nowrap を確実に上書き
   ========================================= */
@media screen and (max-width: 799px) {

  /* 横スクロールは許可（はみ出し防止の保険） */
  .table-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* ★重要：スマホでは「縮めて収める」モードにする */
  .branch-table {
    width: 100%;
    min-width: 0;          /* ← 以前入れた min-width があれば打ち消す */
    table-layout: fixed;   /* ← 列幅%を効かせる */
  }

  /* ★重要：ta1の th nowrap を確実に解除して折り返し */
  .branch-table th,
  .branch-table td {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-size: 0.92em;     /* 少しだけ小さく（任意） */
  }

  /* 列幅（合計100%） */
  .branch-table th:nth-child(1),
  .branch-table td:nth-child(1) { width: 16%; }  /* 支部 */

  .branch-table th:nth-child(2),
  .branch-table td:nth-child(2) { width: 18%; }  /* 郵便番号 */

  .branch-table th:nth-child(3),
  .branch-table td:nth-child(3) { width: 36%; }  /* 住所（広すぎを抑える） */

  .branch-table th:nth-child(4),
  .branch-table td:nth-child(4) { width: 15%; }  /* 電話 */

  .branch-table th:nth-child(5),
  .branch-table td:nth-child(5) { width: 15%; }  /* FAX */
}


/* ===== 協会情報：定款などを「確実に枠で囲む」ための追加 ===== */
.content-box{
  border: 1px solid #ddd;
  padding: 20px;
  background: #fff;
  box-sizing: border-box;
}

/* 見出し下の二重線を完全に排除 */
.main h2 {
    border-bottom: none !important;
}

/* member.html と同じ下線だけを表示 */
.main h2::after {
    content: "";
    display: block;
    width: 80px;              /* member.html と同じ */
    height: 4px;
    background: #00b3d6;
    margin: 10px auto 0;      /* 中央・余白一致 */
}

/* コンテンツ枠を member.html と完全一致 */
.main .box {
    background: #f5f5f5;
    border: 1px solid #dcdcdc;
    padding: 30px;
    margin-top: 30px;
}

/* リンクリストの体裁を統一 */
.main ul {
    margin: 0;
    padding-left: 20px;
}

.main ul li {
    margin-bottom: 12px;
    line-height: 1.8;
}

/* 左メニューの現在地色（member.html と同じ） */
.submenu li a.current {
    color: #0066ff;
    font-weight: bold;
}

/* ===== リンクページ：見出し下線を member.html と同じ（青1本）に固定 =====
   ※以前追加した h2::after 等の装飾が残っていても、このページだけで無効化します。
*/
body.link main h2{
  border-bottom: 3px solid #f5f5f5 !important; /* デフォルト（薄いグレー）に戻す */
}
body.link main h2::after{
  content: none !important;
  display: none !important;
}

/* ===========================
   リセット：誤って追加された見出しの青線（h2::after）を全ページで無効化
   =========================== */
.main h2::after{
  content: none !important;
  display: none !important;
}

/* ===========================
   リンクページだけ：見出し下線を1本に固定
   =========================== */
body.link .uline::after{
  content: none !important;
  display: none !important;
}

/* ===========================
   リンク集ページ：見出し下のグレーラインを消す
   =========================== */
body.link .main h2,
body.link .main .ttl,
body.link .main .title {
  border-bottom: none !important;
}

/* ===========================
   リンク集：member.html風「枠リンク」
   =========================== */

/* ===========================
   リンク集：member.html と同じ薄グレー枠
   =========================== */
body.link .link-box {
  background: #fafafa;          /* ← 薄いグレー */
  border: 1px solid #e6e6e6;    /* ← やさしい枠線 */
  border-radius: 6px;
  padding: 18px 22px;
  margin-bottom: 15px;
}

body.link .link-box a {
  display: block;
  color: #333;
  font-size: 16px;
  font-weight: bold;
  text-decoration: none;
}

body.link .link-box a:hover {
  color: #00b3d6;
  background: #f7fbfd;
}

body.link .link-box {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

body.link .link-box:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  transform: translateY(-1px);
}

body.link .ext {
  font-size: 0.9em;
  margin-left: 6px;
  color: #999;
}

/* =========================================================
   branch.html：郵便番号・電話・FAX が枠からはみ出る対策
   ・数字＋ハイフンは nowrap だと崩れやすいので折り返し許可
   ・既存の .branch-table の nowrap 指定を最後に上書き
   ========================================================= */

/* 郵便番号・電話番号・FAX番号（2,4,5列）は折り返しOK */
.branch-table td:nth-child(2),
.branch-table td:nth-child(4),
.branch-table td:nth-child(5) {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-all; /* 数字・ハイフンも確実に折り返す */
}

/* 見出し行も、万一狭い環境では折り返してOK（レイアウト崩れ防止） */
.branch-table th:nth-child(2),
.branch-table th:nth-child(4),
.branch-table th:nth-child(5) {
  white-space: normal !important;
  overflow-wrap: anywhere;
}

/* =========================================
   トップページ メインビジュアル文字 完成版
   ========================================= */

/* 協会名全体の位置調整 */
.home header #logo {
  left: 8%;
  top: 22%;
  width: 84%;
  max-width: 1100px;
}

/* 協会名 */
.home header #logo h1 {
  margin: 0;
  line-height: 1.25;
}

.home header #logo h1 img {
  display: block;
  max-width: 760px;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.45));
}

/* キャッチコピーの土台 */
.home header #logo .leadtext {
  margin: 22px 0 0;
  text-align: left;
  line-height: 1.6;
}

/* 実際のキャッチコピー文字 */
.home header #logo .leadtext .small {
  display: inline-block;
  font-size: 40px !important;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #fff;
  text-shadow:
    0 3px 8px rgba(0,0,0,0.9),
    0 0 15px rgba(0,0,0,0.5);
  background: rgba(0,0,0,0.22);
  padding: 10px 18px;
  border-radius: 8px;
}

/* タブレット */
@media screen and (max-width: 999px) {
  .home header #logo {
    left: 7%;
    top: 18%;
    width: 86%;
  }

  .home header #logo h1 img {
    max-width: 620px;
  }

  .home header #logo .leadtext .small {
    font-size: 30px !important;
    padding: 8px 14px;
  }
}

/* スマホ */
@media screen and (max-width: 799px) {
  .home header #logo {
    left: 5%;
    top: 14%;
    width: 90%;
  }

  .home header #logo h1 img {
    max-width: 100%;
  }

  .home header #logo .leadtext {
    margin-top: 14px;
  }

  .home header #logo .leadtext .small {
    font-size: 20px !important;
    line-height: 1.7;
    letter-spacing: 0.04em;
    padding: 7px 12px;
  }
}

/* =========================================
   トップ画像の文字を読みやすくする（協会サイト向け）
   ========================================= */

/* 背景写真を少し暗くする */
.home header::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,0.28);
  z-index:1;
}

/* ロゴとキャッチコピーを前面に出す */
.home header #logo{
  z-index:2;
}

/* ロゴの影を少し強くする */
.home header #logo h1 img{
  filter:drop-shadow(0 5px 12px rgba(0,0,0,0.6));
}

/* キャッチコピーの可読性を上げる */
.home header #logo .small{
  color:#ffffff;
  text-shadow:
    0 4px 12px rgba(0,0,0,0.9),
    0 0 8px rgba(0,0,0,0.6);
}

/* キャッチコピーを大きくする */

.home header #logo .small{
    font-size:42px !important;
    line-height:1.6;
}

/* =========================================
   トップヒーロー 完全版（公的サイト向け）
   ========================================= */

/* 背景写真を少し暗くする */
.home header::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,0.30);
  z-index:1;
}

/* ロゴブロック */
.home header #logo{
  position:absolute;
  top:28%;
  left:50%;
  transform:translateX(-50%);
  width:90%;
  max-width:1100px;
  text-align:center;
  z-index:2;
}

/* ロゴ画像 */
.home header #logo h1 img{
  width:100%;
  max-width:640px;
  height:auto;
  filter:drop-shadow(0 6px 16px rgba(0,0,0,0.7));
}

/* キャッチコピー */
.home header #logo .small{
  display:block;
  margin-top:18px;
  font-size:44px !important;
  line-height:1.8;
  letter-spacing:0.04em;
  color:#ffffff;
  text-align:center;

  text-shadow:
    0 4px 16px rgba(0,0,0,0.95),
    0 0 10px rgba(0,0,0,0.6);
}


/* ================================
   タブレット
================================ */

@media screen and (max-width:1024px){

.home header #logo{
  top:24%;
}

.home header #logo h1 img{
  max-width:520px;
}

.home header #logo .small{
  font-size:30px !important;
}

}


/* ================================
   スマホ
================================ */

@media screen and (max-width:768px){

.home header #logo{
  top:20%;
  width:92%;
}

.home header #logo h1 img{
  max-width:420px;
}

.home header #logo .small{
  font-size:22px !important;
  line-height:1.6;
}

}

/* =========================================
   トップヒーロー 最終調整
   ・写真を少し明るく
   ・王道シャドウ
   ========================================= */

/* 背景写真を少しだけ暗く（今より明るく） */
.home header::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,0.18); /* ← 以前より弱く */
  z-index:1;
}

/* ロゴブロック */
.home header #logo{
  position:absolute;
  top:28%;
  left:50%;
  transform:translateX(-50%);
  width:90%;
  max-width:1100px;
  text-align:center;
  z-index:2;
}

/* ロゴ */
.home header #logo h1 img{
  width:100%;
  max-width:640px;
  height:auto;

  /* 王道ロゴシャドウ */
  filter:drop-shadow(0 6px 18px rgba(0,0,0,0.7));
}

/* キャッチコピー */
.home header #logo .small{
  display:block;
  margin-top:18px;
  font-size:44px !important;
  line-height:1.8;
  letter-spacing:0.04em;
  color:#ffffff;
  text-align:center;

  /* 王道シャドウ */
  text-shadow:
    0 3px 6px rgba(0,0,0,0.7),
    0 8px 20px rgba(0,0,0,0.5);
}


/* ================================
   タブレット
================================ */

@media screen and (max-width:1024px){

.home header #logo{
  top:24%;
}

.home header #logo h1 img{
  max-width:520px;
}

.home header #logo .small{
  font-size:30px !important;
}

}


/* ================================
   スマホ
================================ */

@media screen and (max-width:768px){

.home header #logo{
  top:20%;
  width:92%;
}

.home header #logo h1 img{
  max-width:420px;
}

.home header #logo .small{
  font-size:22px !important;
  line-height:1.6;
}

}

/* =========================================
   ロゴを主役にする調整
   ========================================= */

/* ロゴサイズ少しアップ */
.home header #logo h1 img{
  max-width:720px;

  /* 強めシャドウ */
  filter:drop-shadow(0 8px 22px rgba(0,0,0,0.85));
}

/* キャッチコピー少し小さく */
.home header #logo .small{
  font-size:38px !important;
}

/* =========================================
   ヒーロー画像 グラデーション暗幕
   ========================================= */

.home header::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,0.35) 0%,
    rgba(0,0,0,0.25) 30%,
    rgba(0,0,0,0.10) 60%,
    rgba(0,0,0,0.00) 100%
  );
  z-index:1;
}

/* =========================================
   トップヒーロー 仕上げ版（公的サイト向け）
   ・上品なグラデーション暗幕
   ・中央の見出しを自然に引き立てる
   ========================================= */

/* ヒーロー全体を少しだけドラマチックにする */
.home header{
  position: relative;
  overflow: hidden;
}

/* 上をやや暗く、下は自然に抜く */
.home header::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      to bottom,
      rgba(0,0,0,0.34) 0%,
      rgba(0,0,0,0.22) 32%,
      rgba(0,0,0,0.10) 62%,
      rgba(0,0,0,0.02) 100%
    );
  z-index:1;
}

/* 中央の文字まわりだけ、ほんのり整える光のベール */
.home header::after{
  content:"";
  position:absolute;
  left:50%;
  top:16%;
  transform:translateX(-50%);
  width:52%;
  height:52%;
  background:radial-gradient(
    ellipse at center,
    rgba(255,255,255,0.06) 0%,
    rgba(255,255,255,0.03) 35%,
    rgba(255,255,255,0.00) 75%
  );
  z-index:1;
  pointer-events:none;
}

/* ロゴブロック */
.home header #logo{
  position:absolute;
  top:28%;
  left:50%;
  transform:translateX(-50%);
  width:90%;
  max-width:1100px;
  text-align:center;
  z-index:2;
}

/* ロゴ画像 */
.home header #logo h1{
  margin:0;
  line-height:1;
}

.home header #logo h1 img{
  width:100%;
  max-width:720px;
  height:auto;
  filter:drop-shadow(0 8px 22px rgba(0,0,0,0.82));
}

/* キャッチコピー */
.home header #logo .small{
  display:block;
  margin-top:16px;
  font-size:40px !important;
  line-height:1.75;
  letter-spacing:0.04em;
  color:#ffffff;
  text-align:center;
  text-shadow:
    0 3px 6px rgba(0,0,0,0.72),
    0 8px 20px rgba(0,0,0,0.50);
}

/* タブレット */
@media screen and (max-width:1024px){
  .home header #logo{
    top:24%;
  }

  .home header #logo h1 img{
    max-width:560px;
  }

  .home header #logo .small{
    font-size:30px !important;
    margin-top:14px;
  }

  .home header::after{
    width:68%;
    height:46%;
    top:15%;
  }
}

/* スマホ */
@media screen and (max-width:768px){
  .home header #logo{
    top:20%;
    width:92%;
  }

  .home header #logo h1 img{
    max-width:430px;
  }

  .home header #logo .small{
    font-size:22px !important;
    line-height:1.6;
    margin-top:12px;
  }

  .home header::after{
    width:82%;
    height:40%;
    top:14%;
  }
}

/* =========================================
   トップ画像が消えた時の復旧 + ヒーロー完成版
   ========================================= */

/* トップのheader自体に高さを持たせる */
.home header{
  position: relative;
  min-height: 720px;
  overflow: hidden;
}

/* 背景画像・動画を全体表示 */
.home #mainimg,
.home #mainimg img,
.home #mainimg video{
  width: 100%;
  height: 720px;
  display: block;
  object-fit: cover;
}

/* 上品なグラデーション暗幕 */
.home header::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,0.34) 0%,
    rgba(0,0,0,0.22) 32%,
    rgba(0,0,0,0.10) 62%,
    rgba(0,0,0,0.02) 100%
  );
  z-index:1;
  pointer-events:none;
}

/* 中央の見出し周辺を少しだけ整える */
.home header::after{
  content:"";
  position:absolute;
  left:50%;
  top:16%;
  transform:translateX(-50%);
  width:52%;
  height:52%;
  background:radial-gradient(
    ellipse at center,
    rgba(255,255,255,0.06) 0%,
    rgba(255,255,255,0.03) 35%,
    rgba(255,255,255,0.00) 75%
  );
  z-index:1;
  pointer-events:none;
}

/* ロゴブロック */
.home header #logo{
  position:absolute;
  top:28%;
  left:50%;
  transform:translateX(-50%);
  width:90%;
  max-width:1100px;
  text-align:center;
  z-index:2;
}

/* ロゴ */
.home header #logo h1{
  margin:0;
  line-height:1;
}

.home header #logo h1 img{
  width:100%;
  max-width:720px;
  height:auto;
  filter:drop-shadow(0 8px 22px rgba(0,0,0,0.82));
}

/* キャッチコピー */
.home header #logo .small{
  display:block;
  margin-top:16px;
  font-size:40px !important;
  line-height:1.75;
  letter-spacing:0.04em;
  color:#ffffff;
  text-align:center;
  text-shadow:
    0 3px 6px rgba(0,0,0,0.72),
    0 8px 20px rgba(0,0,0,0.50);
}

/* タブレット */
@media screen and (max-width:1024px){
  .home header{
    min-height: 560px;
  }

  .home #mainimg,
  .home #mainimg img,
  .home #mainimg video{
    height: 560px;
  }

  .home header #logo{
    top:24%;
  }

  .home header #logo h1 img{
    max-width:560px;
  }

  .home header #logo .small{
    font-size:30px !important;
    margin-top:14px;
  }

  .home header::after{
    width:68%;
    height:46%;
    top:15%;
  }
}

/* スマホ */
@media screen and (max-width:768px){
  .home header{
    min-height: 420px;
  }

  .home #mainimg,
  .home #mainimg img,
  .home #mainimg video{
    height: 420px;
  }

  .home header #logo{
    top:20%;
    width:92%;
  }

  .home header #logo h1 img{
    max-width:430px;
  }

  .home header #logo .small{
    font-size:22px !important;
    line-height:1.6;
    margin-top:12px;
  }

  .home header::after{
    width:82%;
    height:40%;
    top:14%;
  }
}

/* =========================================
   最終仕上げ
   ・トップの完成度アップ
   ・ナビゲーションを上品に改善
   ========================================= */

/* ================================
   トップヒーロー
================================ */

/* トップのheaderに高さを確保 */
.home header{
  position: relative;
  min-height: 720px;
  overflow: hidden;
}

/* 背景画像・動画 */
.home #mainimg,
.home #mainimg img,
.home #mainimg video{
  width: 100%;
  height: 720px;
  display: block;
  object-fit: cover;
}

/* 上品なグラデーション暗幕 */
.home header::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,0.34) 0%,
    rgba(0,0,0,0.22) 32%,
    rgba(0,0,0,0.10) 62%,
    rgba(0,0,0,0.02) 100%
  );
  z-index:1;
  pointer-events:none;
}

/* 中央見出しの周辺を少し整える光のベール */
.home header::after{
  content:"";
  position:absolute;
  left:50%;
  top:16%;
  transform:translateX(-50%);
  width:52%;
  height:52%;
  background:radial-gradient(
    ellipse at center,
    rgba(255,255,255,0.06) 0%,
    rgba(255,255,255,0.03) 35%,
    rgba(255,255,255,0.00) 75%
  );
  z-index:1;
  pointer-events:none;
}

/* ロゴブロック */
.home header #logo{
  position:absolute;
  top:28%;
  left:50%;
  transform:translateX(-50%);
  width:90%;
  max-width:1100px;
  text-align:center;
  z-index:2;
}

/* ロゴ */
.home header #logo h1{
  margin:0;
  line-height:1;
}

.home header #logo h1 img{
  width:100%;
  max-width:780px; /* 少し大きく */
  height:auto;
  filter:drop-shadow(0 8px 22px rgba(0,0,0,0.82));
}

/* キャッチコピー */
.home header #logo .small{
  display:block;
  margin-top:16px;
  font-size:40px !important;
  line-height:1.8; /* 少し広げる */
  letter-spacing:0.04em;
  color:#ffffff;
  text-align:center;
  text-shadow:
    0 3px 6px rgba(0,0,0,0.72),
    0 8px 20px rgba(0,0,0,0.50);
}

/* タブレット */
@media screen and (max-width:1024px){
  .home header{
    min-height: 560px;
  }

  .home #mainimg,
  .home #mainimg img,
  .home #mainimg video{
    height: 560px;
  }

  .home header #logo{
    top:24%;
  }

  .home header #logo h1 img{
    max-width:600px;
  }

  .home header #logo .small{
    font-size:30px !important;
    margin-top:14px;
    line-height:1.7;
  }

  .home header::after{
    width:68%;
    height:46%;
    top:15%;
  }
}

/* スマホ */
@media screen and (max-width:768px){
  .home header{
    min-height: 420px;
  }

  .home #mainimg,
  .home #mainimg img,
  .home #mainimg video{
    height: 420px;
  }

  .home header #logo{
    top:20%;
    width:92%;
  }

  .home header #logo h1 img{
    max-width:430px;
  }

  .home header #logo .small{
    font-size:22px !important;
    line-height:1.65;
    margin-top:12px;
  }

  .home header::after{
    width:82%;
    height:40%;
    top:14%;
  }
}

/* ================================
   上部ナビゲーション改善
================================ */

/* PC用ナビ全体 */
@media screen and (min-width:800px){

  #menubar{
    position: sticky;
    top: 0;
    z-index: 300;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(6px);
    border-bottom: 1px solid #d9e2ea;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  }

  #menubar ul{
    display:flex;
    justify-content:space-around;
    align-items:center;
  }

  #menubar ul li{
    flex:1;
  }

  #menubar a{
    position:relative;
    display:block;
    padding:18px 8px;
    text-align:center;
    font-weight:600;
    color:#334155 !important;     /* 濃いグレー */
    letter-spacing:0.03em;
    background:none !important;
  }

  #menubar a:visited{
    color:#334155 !important;
  }

  #menubar a:hover{
    color:#0ea5c6 !important;     /* テーマに近い青 */
    opacity:1;
    background:none !important;
  }

  /* 下線アニメーション */
  #menubar a::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:8px;
    width:0;
    height:2px;
    background:#0ea5c6;
    transform:translateX(-50%);
    transition:width 0.25s ease;
  }

  #menubar a:hover::after{
    width:48%;
  }
}

/* スマホ用メニュー文字色も整える */
.s #menubar.db a{
  color:#ffffff !important;
}

.s #menubar.db a:visited{
  color:#ffffff !important;
}

/* ================================
   左サイドメニューも少し整える
================================ */

.sub h3{
  background:#17b4d4;
  color:#fff;
  letter-spacing:0.05em;
}

ul.submenu li a{
  color:#4b5563 !important;
  font-weight:600;
}

ul.submenu li a:visited{
  color:#4b5563 !important;
}

ul.submenu li a:hover{
  color:#0ea5c6 !important;
  background:#f7fafc;
}

/* ================================
   フッターも少しだけ上品に
================================ */

footer{
  background:#17b4d4;
  color:#fff;
}

footer a{
  color:#fff !important;
}

/* =========================================
   サイト最終仕上げ
   ========================================= */

/* ------------------------------
   ヒーロー画像 少し明るく
--------------------------------*/
.home #mainimg img{
  filter:brightness(1.08) contrast(1.05);
}

/* ------------------------------
   ヒーロー画像 ゆっくりズーム
--------------------------------*/
.home #mainimg img{
  animation: heroZoom 18s ease-in-out infinite alternate;
}

@keyframes heroZoom{
  0%{
    transform:scale(1);
  }

  100%{
    transform:scale(1.05);
  }
}

/* ------------------------------
   News 見出しを少し強く
--------------------------------*/
h2{
  font-weight:700;
  letter-spacing:0.04em;
}

/* ------------------------------
   見出し下ラインを強化
--------------------------------*/
h2::after{
  height:3px;
}

/* ------------------------------
   ニュースリスト余白
--------------------------------*/
.list{
  line-height:1.8;
}

/* ------------------------------
   ニュース日付
--------------------------------*/
.list .date{
  font-weight:600;
  color:#64748b;
}

/* ------------------------------
   お知らせラベル
--------------------------------*/
.list .icon{
  background:#17b4d4;
  color:#fff;
  font-size:12px;
  padding:4px 8px;
  border-radius:3px;
}

/* ------------------------------
   ニュース行ホバー
--------------------------------*/
.list li:hover{
  background:#f6fbfd;
}

/* ------------------------------
   Newsタイトル余白
--------------------------------*/
main h2{
  margin-bottom:25px;
}

/* ------------------------------
   フッター余白
--------------------------------*/
footer{
  padding:18px 0;
  font-size:14px;
}

/* =========================================
   スマホ時：下層ページのロゴとハンバーガーの重なり防止
   header全体は触らず、ロゴだけ少し逃がす
   ========================================= */
@media screen and (max-width: 799px) {

  /* 下層ページのロゴだけ左に余白を作る */
  body:not(.home) header #logo {
    padding-left: 72px;
    padding-right: 12px;
    box-sizing: border-box;
  }

  /* ロゴ画像の収まり */
  body:not(.home) header #logo img {
    display: block;
    max-width: 100%;
    height: auto;
  }

  /* ハンバーガーは少しだけ位置調整 */
  #menubar_hdr {
    left: 8px;
    top: 8px;
    z-index: 1000;
  }
}

/* =========================
   支部テーブル（PC）
========================= */

.branch-table {
  width: 100%;
  border-collapse: collapse;
}

.branch-table th,
.branch-table td {
  padding: 10px;
  border-bottom: 1px solid #ddd;
}

.branch-table th {
  background: #f3f6f8;
}

/* =========================
   スマホカード表示
========================= */

@media (max-width: 768px){

.card-table thead {
  display: none;
}

.card-table,
.card-table tbody,
.card-table tr,
.card-table td {
  display: block;
  width: 100%;
}

.card-table tr {
  background: #f7f7f7;
  margin-bottom: 20px;
  padding: 15px;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

.card-table td {
  border: none;
  padding: 6px 0;
  font-size: 15px;
}

.card-table td:nth-child(1)::before {
  content: "支部：";
  font-weight: bold;
}

.card-table td:nth-child(2)::before {
  content: "郵便番号：";
  font-weight: bold;
}

.card-table td:nth-child(3)::before {
  content: "住所：";
  font-weight: bold;
}

.card-table td:nth-child(4)::before {
  content: "電話：";
  font-weight: bold;
}

.card-table td:nth-child(5)::before {
  content: "FAX：";
  font-weight: bold;
}

}

/* 郵便番号・電話番号の改行防止 */
.card-table td:nth-child(2),
.card-table td:nth-child(4),
.card-table td:nth-child(5){
  white-space: nowrap;
}

@media screen and (max-width: 768px) {

  /* 見出し行を消す */
  .card-table tr:first-child {
    display: none;
  }

  /* テーブル全体をカード化 */
  .card-table,
  .card-table tbody,
  .card-table tr,
  .card-table td {
    display: block;
    width: 100%;
  }

  .card-table {
    border: none;
  }

  .card-table tr {
    background: #f7f7f7;
    margin-bottom: 20px;
    padding: 16px 18px;
    border: 1px solid #e3e3e3;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
  }

  .card-table td {
    border: none !important;
    padding: 6px 0;
    font-size: 15px;
    line-height: 1.8;
    word-break: normal;
    overflow-wrap: break-word;
  }

  /* 郵便番号・電話・FAXは改行させない */
  .card-table td:nth-child(2),
  .card-table td:nth-child(4),
  .card-table td:nth-child(5) {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  /* 項目名 */
  .card-table td:nth-child(1)::before {
    content: "支部：";
    font-weight: bold;
  }

  .card-table td:nth-child(2)::before {
    content: "郵便番号：";
    font-weight: bold;
  }

  .card-table td:nth-child(3)::before {
    content: "住所：";
    font-weight: bold;
  }

  .card-table td:nth-child(4)::before {
    content: "電話：";
    font-weight: bold;
  }

  .card-table td:nth-child(5)::before {
    content: "FAX：";
    font-weight: bold;
  }
}

/* 支部名の改行防止 */
.card-table td:nth-child(1){
  white-space: nowrap;
}

@media screen and (max-width: 768px) {

  .card-table td:nth-child(1) {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

}

/* =========================
   member.html スマホカード化
========================= */
@media screen and (max-width: 768px) {

  .member-table tr:first-child {
    display: none;
  }

  .member-table,
  .member-table tbody,
  .member-table tr,
  .member-table td {
    display: block;
    width: 100%;
  }

  .member-table {
    border: none;
    background: transparent;
  }

  .member-table tr {
    background: #f7f7f7;
    margin: 0 0 16px 0;
    padding: 16px 18px;
    border: 1px solid #e3e3e3;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
  }

  .member-table td {
    border: none !important;
    padding: 6px 0;
    font-size: 15px;
    line-height: 1.8;
    word-break: normal !important;
    overflow-wrap: break-word;
  }

  .member-table td::before {
    display: inline-block;
    min-width: 92px;
    font-weight: bold;
    color: #444;
  }

  .member-table td:nth-child(1)::before {
    content: "社名：";
  }

  .member-table td:nth-child(2)::before {
    content: "郵便番号：";
  }

  .member-table td:nth-child(3)::before {
    content: "住所：";
  }

  .member-table td:nth-child(4)::before {
    content: "電話：";
  }

  .member-table td:nth-child(5)::before {
    content: "FAX：";
  }

  /* 郵便番号・電話・FAXは改行させない */
  .member-table td:nth-child(2),
  .member-table td:nth-child(4),
  .member-table td:nth-child(5) {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  /* 支部見出しを少し見やすく */
  .faq dt {
    font-size: 1.1em;
    font-weight: 700;
    margin: 24px 0 10px;
    padding: 10px 12px;
    background: #eef8fb;
    border-left: 4px solid #20b7d2;
    border-radius: 6px;
  }

  .faq dd {
    margin-bottom: 24px;
  }
}

/* =========================
   member.html スマホ幅調整
   branch.html に近づける
========================= */
@media screen and (max-width: 768px) {

  /* faq全体の余白リセット */
  .faq {
    margin: 0;
    padding: 0;
  }

  .faq dt,
  .faq dd {
    margin-left: 0;
    margin-right: 0;
  }

  /* 支部見出しをbranch寄りに揃える */
  .faq dt {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 12px 0;
    padding: 12px 14px;
    background: #eef8fb;
    border-left: 4px solid #20b7d2;
    border-radius: 6px;
    font-size: 1.05em;
    font-weight: 700;
    line-height: 1.5;
  }

  /* ddの余白を消してカードを広げる */
  .faq dd {
    margin: 0 0 24px 0;
    padding: 0;
  }

  /* テーブル全体を横幅いっぱいに */
  .member-table {
    width: 100%;
    margin: 0;
    border: none;
    background: transparent;
  }

  /* branchのカード幅に寄せる */
  .member-table tr {
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 16px 0;
    padding: 16px 18px;
    background: #f7f7f7;
    border: 1px solid #e3e3e3;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
  }

  /* 念のためセルの内幅も安定化 */
  .member-table td {
    box-sizing: border-box;
  }
}

@media screen and (max-width: 768px) {

  /* memberページはbranchと同じ見え方にする */
  .member-table td::before {
    display: inline !important;
    min-width: 0 !important;
    width: auto !important;
    margin-right: 0 !important;
  }

}

@media screen and (max-width: 768px) {

  /* 支部見出しを完全リセットして、branch寄りに整える */
  .faq dt {
    position: static !important;
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 12px 0;
    padding: 12px 14px !important;
    text-indent: 0 !important;
    line-height: 1.5;
    background: #eef8fb;
    border-left: 4px solid #20b7d2;
    border-radius: 6px;
  }

  /* 以前入れた擬似要素の線を消す */
  .faq dt::before {
    content: none !important;
    display: none !important;
  }

}

/* =========================
   通常本文の文字色
   日本砕石協会サイトの本文に近い濃さへ調整
========================= */
main,
.main,
.main p,
.main li,
.main dd,
.main td,
.content-box,
.main .box,
#new dt,
#new dd {
  color: #333;
}

/* =========================
   メニューの文字色
   日本砕石協会サイトのナビに近い濃いグレーへ調整
========================= */
@media screen and (min-width:800px) {
  #menubar a,
  #menubar a:visited,
  #menubar a.current,
  #menubar a:hover {
    color: #333 !important;
  }

  #menubar a::after,
  #menubar a.current::after {
    background: #333;
  }

  #menubar a.current::after {
    width: 48%;
  }
}

ul.submenu li a,
ul.submenu li a:visited,
ul.submenu li a.current,
ul.submenu li a:hover {
  color: #333 !important;
}

/* =========================
   PC表示：高齢者向けに文字色をさらに濃く統一
   ・本文、表、メニューは #222
   ・郵便番号、電話、FAXなど重要な数字列は #111
========================= */
@media screen and (min-width: 769px) {
  body,
  main,
  .main,
  .main p,
  .main li,
  .main dt,
  .main dd,
  .main th,
  .main td,
  .content-box,
  .main .box,
  #new dt,
  #new dd,
  #menubar a,
  #menubar a:visited,
  #menubar a.current,
  #menubar a:hover,
  ul.submenu li a,
  ul.submenu li a:visited,
  ul.submenu li a.current,
  ul.submenu li a:hover {
    color: #222 !important;
  }

  #menubar a::after,
  #menubar a.current::after {
    background: #222;
  }

  .branch-table td:nth-child(2),
  .branch-table td:nth-child(4),
  .branch-table td:nth-child(5),
  .member-table td:nth-child(2),
  .member-table td:nth-child(4),
  .member-table td:nth-child(5) {
    color: #111 !important;
  }
}
