@charset "utf-8";



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

/*lightbox.cssの読み込み
---------------------------------------------------------------------------*/
@import url(https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.10.0/css/lightbox.css);

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

/*vegas.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/vegas/2.5.4/vegas.min.css");



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


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


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

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

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

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


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

/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav,ul,li,ol {margin: 0;padding: 0;}
nav ul {list-style: none;}

/*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;
}

.scrollable-list {
    width: 100%;      /* 固定幅 */
    height: 500px;     /* 固定高さ */
    overflow-y: scroll; /* 垂直方向にスクロール可能 */
    border: 1px solid #ccc; /* ボーダーの設定（オプション） */
    padding: 5px;    /* 内側の余白（オプション） */
    margin: 0; /* リストの外側の余白を削除 */

}

.scrollable-list ul {
    list-style-type: none; /* デフォルトのリストマーカーを削除 */
    padding: 0; /* リストの内側の余白を削除 */
    margin: 0; /* リストの外側の余白を削除 */
}

.scrollable-list li {
    padding: 0px 0; /* リストアイテムの上下に余白を追加 */
}

/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: #777;	/*文字色*/
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
	filter: brightness(1.1);	/*少しだけ明るくする*/
}


/*コンテナー（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
	height: 100%;
	display: flex;	/*flexボックスを使う指定*/
	flex-direction: column;	/*子要素を縦並びにする*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	max-width: 1080px;	/*サイトの最大幅。これ以上広がらない。*/
	margin: 0 auto;
}


/*コンテンツ（フッター関連「以外」を囲むブロック）
---------------------------------------------------------------------------*/
#contents {
	flex: 1;
	padding: 2vw;	/*コンテンツ内の余白*/
	margin-top: 0; /* ヘッダーとの間隔を狭めるためにマージンを設定 */
    padding-top: 0; /* 必要に応じてパディングも設定 */
}

/*コンテンツ内のulとol*/
#contents ul,#contents ol {
	margin-left: 2rem;
}


/*header（ロゴが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
	padding: 10px 120px 10px 3vw; /*上下、左右へのヘッダー内の余白*/
	display: flex;					/*flexボックスを使う指定*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	margin: 0; /* ヘッダーのマージンをリセット */
	align-items: center;			/*垂直揃えの指定。天地中央に配置されるように。*/
	background: #eee;				/*背景色*/
}

/*ロゴ*/
#logo img {display: block;}
#logo {
	max-width: 250px;	/*幅*/
}

	/*画面幅600px以下の追加指定*/
	@media screen and (max-width:600px) {

	/*ヘッダーブロック*/
	header {
		flex-direction: column;	/*子要素を縦並びにする*/
		align-items: stretch;	/*デフォルトに戻す*/
		padding-right: 50px;	/*右側へのpaddingだけ上書き*/
	}

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


/*ヘッダー右側のブロック*/
#header-right {
	font-size: 0.8rem;	/*文字サイズ。bodyで指定したサイズの80%に。*/
}

/*headerアイコン（facebookやtwitterなどのアイコンブロック）
---------------------------------------------------------------------------*/
/*アイコンを囲むブロック全体の設定*/
header .icon {
	position: fixed;
	right: 5%;		/*ヘッダーブロックに対して右から3%の場所に配置*/
	top:  120px;	/*ヘッダーブロックに対して下から10pxの場所に配置*/
	z-index: 0;
}
/*アイコン１個あたりの設定*/
header .icon li {
	display: inline;	/*横並びにさせる指定*/
}
/*アイコン画像の設定*/
header .icon img {
	width: 35px;		/*画像の幅*/
	margin-left: 5px;	/*画像同士の余白*/
}


/*メニューブロック初期設定
---------------------------------------------------------------------------*/
/*メニューをデフォルトで非表示*/
#menubar {display: none;}
#menubar ul {list-style: none;margin: 0;padding: 0;}

/*上で非表示にしたメニューを表示させる為の設定*/
.large-screen #menubar {display: block;}
.small-screen #menubar.display-block {display: block;}

/*3本バーをデフォルトで非表示*/
#menubar_hdr.display-none {display: none;}

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

/*ドロップダウンの親メニューのカーソル表示を変更*/
a.ddmenu {cursor: default;}

/*ddmenuを指定しているメニューに矢印アイコンをつける設定*/
a.ddmenu::before {
	font-family: "Font Awesome 6 Free";	/*Font Awesome Free版を使う指定*/
	content: "\f078";	/*使いたいアイコン名（Font Awesome）をここで指定*/
	font-weight: bold;	/*この手の設定がないとアイコンが出ない場合があります*/
	margin-right: 1em;	/*アイコンとテキストとの間に空けるスペース*/
}


/*大きな端末、小さな端末共通のメニューブロック設定
---------------------------------------------------------------------------*/
/*メニュー１個あたりの設定*/
#menubar a {
	display: block;text-decoration: none;
	padding: 0.5rem 0;	/*上下、左右へのメニュー内の余白*/
    color: #555555;
}


/*大きな端末用のメニューブロック設定
---------------------------------------------------------------------------*/
/*メニューブロック全体の設定*/
.large-screen #menubar > nav > ul {
	display: flex;	/*横並びにする*/
	justify-content: space-between;
}
.large-screen #menubar ul {
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
}

/*メニュー１個あたりの設定*/
.large-screen #menubar li {
	flex: 1;			/*個々のメニューを均等にし、幅いっぱいまで使う設定*/
	position: relative;	/*ドロップダウンの幅となる基準を作っておく*/
	text-align: center;	/*テキストをセンタリング*/
}
.large-screen #menubar li a {
	background: #ddd;	/*背景色*/
}


/*大きな端末、小さな端末、共通のドロップダウンメニュー設定
---------------------------------------------------------------------------*/
/*ドロップダウンブロック*/
.large-screen #menubar ul ul,
.small-screen #menubar ul ul {
	animation: opa1 0.5s 0.1s both;	/*0.1秒待機後、0.5秒かけてフェードイン表示*/
}


/*大きな端末用のドロップダウンメニュー
---------------------------------------------------------------------------*/
/*ドロップダウンメニューブロック全体*/
.large-screen #menubar ul ul {
	position: absolute;z-index: 100;
	width: 100%;
}


/*小さな端末用の開閉ブロック
---------------------------------------------------------------------------*/
/*メニューブロック設定*/
.small-screen #menubar.display-block {
	position: fixed;
	overflow: auto;
	z-index: 100;
	left: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding-top: 90px;
	background: rgba(0,0,0,0.9);		/*背景色*/
	animation: animation1 0.2s both;	/*animation1を実行する。0.2sは0.2秒の事。*/
	font-color: #000;
}

/*メニュー１個あたりの設定*/
.small-screen nav > ul > li {
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	margin: 1rem;			/*メニューの外側に空けるスペース*/
	border-radius: 5px;	/*角を丸くする指定*/
	padding: 0 2rem;		/*メニュー内の余白。上下、左右へ。*/
}

/*文字色*/
.small-screen #menubar, .small-screen #menubar a {
	color: #fff;
}

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


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーを囲むブロック*/
#menubar_hdr {
	animation: opa1 0s 0.2s both;
	position: fixed;z-index: 101;
	cursor: pointer;
	right: 30px;			/*右からの配置場所指定*/
	top: 30px;				/*上からの配置場所指定*/
	padding: 16px 14px;		/*上下、左右への余白*/
	width: 46px;			/*幅（３本バーが出ている場合の幅になります）*/
	height: 46px;			/*高さ*/
	display: flex;					/*flexボックスを使う指定*/
	flex-direction: column;			/*子要素（３本バー）部分。flexはデフォルトで横並びになるので、それを縦並びに変更。*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	background: rgba(0,0,0,0.5);	/*背景色。0,0,0は黒のことで0.5は色が50%出た状態。*/
}

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

/*×印が出ている状態の3本バーの背景色*/
#menubar_hdr.ham {
	background: #777777;
}

/*×印が出ている状態の設定。※１本目および２本目のバーの共通設定。*/
#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;	/*２本目は使わないので非表示にする*/
}


/*フッター設定
---------------------------------------------------------------------------*/
footer small {font-size: 100%;}
footer {
	font-size: 0.7rem;		/*文字サイズ。bodyのfont-sizeの70%です。*/
	background: #eee;		/*背景色*/
	text-align: center;		/*内容をセンタリング*/
	padding: 20px;			/*ボックス内の余白*/
}

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

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


/*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%;	/*円形にする*/
}


/*その他
---------------------------------------------------------------------------*/
.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: #eee;border: 1px solid #ccc; border-radius: 3px;margin: 5px 0; word-break: break-all;}
.small {font-size: 0.75em;}
.large {font-size: 1.5em; letter-spacing: 0.05em;}
.pc {display: none;}
.dn {display: none !important;}
.block {display: block !important;}

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

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

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



/* styles.css */
.photo-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3列 */
    grid-gap: 10px; /* 画像間のスペース */
    max-width: 1200px; /* ギャラリーの最大幅 */
    margin: 0 auto; /* 中央寄せ */
}

.photo-gallery img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover; /* 画像を枠内にフィットさせる */
}

/* 480px以下の画面サイズでは2列にする */
@media (max-width: 480px) {
    .photo-gallery {
        grid-template-columns: repeat(2, 1fr); /* 2列 */
    }
}



/*テーブル
---------------------------------------------------------------------------*/
/*テーブルブロック設定*/
.ta3-parts {
	border-collapse: separate;
	border-spacing: 0 0.2rem;	/*ここと、この下の数字は揃えておきます。要素間の隙間みたいなものです。*/
	table-layout: fixed;
	width: 100%;
	margin-bottom: 0.01rem;		/*テーブルの下に空けるスペース。２文字分。*/
	margin-top: 0.01rem;
}

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

/*th（左側）のみの設定*/
.ta3-parts th {
	width: 22.5%; /*幅*/
	background: rgba(0,0,0,0.07); /*背景色。0,0,0は黒のことで0.07は色が7%出た状態。*/
	border-radius: 4px; /*角を丸くする指定*/
}










/*スライダー*/
.carousel-inner img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.carousel-caption {
    background: rgba(0, 0, 0, 0.5);
    padding: 10px;
}

/* 480px以上の場合 */
@media (min-width: 480px) {
    .carousel-inner img {
        max-height: none; /* 高さ制限を解除 */
    }
}

/*スライダー*/

/*ロゴ表示*/
.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: black;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.preloader-logo {
    width: 30%;
    height: auto;
    opacity: 0;
    animation: fadeIn 2s forwards;
}
/* 480px以下の場合 */
@media (max-width: 480px) {
    .preloader-logo {
        width: 80%; /* 70%の幅で表示 */
    }
}
@keyframes fadeIn {
    to {
        opacity: 1;
    }
}

.hidden {
    display: none;
}

.content {
    display: none;
}

@media (min-width: 480px) {
    .carousel-inner img {
        max-height: none;
    }
}
/*ロゴ表示*/

/*動画埋め込みの設定
---------------------------------------------------------------------------*/
#video {
    /*天地中央配置*/
    position: absolute;
    z-index: -1;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /*縦横幅指定*/
    width: 177.77777778vh; /* 16:9 の幅→16 ÷ 9＝ 177.77% */
    height: 56.25vw; /* 16:9の幅 → 9 ÷ 16 = 56.25% */
    min-height: 100%;
    min-width: 100%;
}

/* 動画全体の横幅を指定するためのdiv */
.video-wrap {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

/* 動画を囲うdiv */
.video {
  position: relative;
  width:100%;
  height:0;
  padding-top: 56.25%;
}

/* YouTube埋め込み用のiframe */
.video iframe{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*動画埋め込みの設定ここまで

---------------------------------------------------------------------------*/

	/*フッターメニュー設定
---------------------------------------------------------------------------*/
/*ボックス全体の設定*/
#footermenu2-parts {
	background: #333;	/*背景色*/
	color: #999;		/*文字色*/
	font-size: 0.8rem;	/*文字サイズ。bodyのfont-sizeの80%です。*/
	padding: 10px 5px;	/*上下、左右へのボックス内の余白*/
	display: flex;		/*flexボックスを使う指定*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	align-items: flex-start;		/*垂直揃えの指定。上に配置されるように。*/
}

/*ボックス内のリンクテキスト設定*/
#footermenu2-parts a {
	text-decoration: none;
	color: inherit;
}

/*ulタグ（メニューの１列あたり）*/
#footermenu2-parts ul {
	margin: 0;list-style: none;
	padding: 0 2px;
	flex: 1;
}

/*メニューの見出し(title)*/
#footermenu2-parts .title {
	font-weight: bold;		/*太字にする*/
	color: #ccc;			/*文字色*/
	padding-bottom: 5px;	/*下に空けるスペース*/
}
---------------------------------------------------------------------------*/

	/*フッターメニュー設定
---------------------------------------------------------------------------*/

/*テキストセンタリング用*/
.text-center {
    text-align: center; /* テキストを中央に配置 */
}

h3 {
	margin-bottom: 20px;
	clear: both;
	padding: 0 20px;
	font-size: 20px;		/*文字サイズ*/
	text-align: center;		/*文字をセンタリング*/
	letter-spacing: 0em;	/*文字間隔を少しだけ広くする指定*/
	background: #000;		/*背景色*/
	color: #fff;			/*文字色*/
	border-radius: 3px;	/*角を丸くする指定。大きめであれば適当で構いません。*/
}

h4 {
	margin-bottom: 20px;
	clear: both;
	padding: 0 20px;
	font-size: 20px;		/*文字サイズ*/
	text-align: center;		/*文字をセンタリング*/
	letter-spacing: 0em;	/*文字間隔を少しだけ広くする指定*/

}

h5 {
	margin-bottom: 20px;
	clear: both;
	padding: 0 20px;
	font-size: 20px;		/*文字サイズ*/
	text-align: center;		/*文字をセンタリング*/
	letter-spacing: 0.15em;	/*文字間隔を少しだけ広くする指定*/
	color: #888;			/*文字色*/
	border-radius: 3px;	/*角を丸くする指定。大きめであれば適当で構いません。*/
}
/*テキストセンタリング用*/












/* ベーススタイル */
.table-container {
    width: 100%;
    overflow-x: auto;
}

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

th, td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: left;
}

/* 480px以上のスクリーンに対するスタイル */
@media (min-width: 480px) {
    table {
        display: table;
    }
}

/* 480px以上のスクリーンに対するスタイル */
@media (min-width: 480px) {

    /* iFrameをレスポンシブにする */
    .iframe-container {
        width: 100%; /* 幅を100%に */
        overflow-x: hidden; /* 有効 */
    }

    .iframe-container iframe {
        width: 100%; /* 幅を100%に */
        height: auto; /* 高さを自動調整 */
        border: none !important;
    }
}