@charset "utf-8";



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


/*CSSカスタムプロパティ（サイト全体を一括管理する為の設定）
---------------------------------------------------------------------------*/
:root {

	/*余白の一括管理用。主に左右の余白に使っています。2rem＝２文字分。*/
	--content-space: 2rem;
	
}


/*animation11のキーフレーム設定（汎用的）
---------------------------------------------------------------------------*/
@keyframes animation1 {
	0% {left: -200px;}
	100% {left: 0px;}
}


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


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

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

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

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


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: #555;		/*文字色*/
	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 {
	padding: var(--content-space);	/*section内の余白。冒頭のcontent-spaceを読み込みます。*/
}


/* ハンバーガーメニュー表示中は背景スクロール禁止 */
body.noscroll {
  overflow: hidden;
}

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

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


/*h2タグ
---------------------------------------------------------------------------*/
#contents h2.titleset2-parts {
	margin: 0 0 1rem;	/*h2の外側にとるスペース。上、左右、下への順番。*/
	font-size: 1.5rem;	/*文字サイズ*/
	position: relative;	/*ulineを配置する為に必要な指定*/
	border-bottom: 3px solid #f3b4cb; /* 薄いピンク */
}

#contents h2.titleset2-parts .uline {
	display: inline-block;position: relative;
	padding: 10px 1rem;	/*h2内の余白。上下、左右への順番。*/
	bottom: -3px;		/*濃い線を薄い線に重ねる為の指定。枠線の幅と合わせます。*/
	border-bottom: 3px solid #d80a5a; /* ←濃い下線 */
}


/*h3タグ
---------------------------------------------------------------------------*/
#contents h3.titleset2-parts {
	margin: 0 0 1rem;	/*h3の外側にとるスペース。上、左右、下への順番。*/
	font-size: 1.2rem;	/*文字サイズ*/
	padding: 10px 1rem;	/*h3内の余白。上下、左右への順番。*/
	border-bottom: 3px solid #eee;	/*薄い色の線の幅、線種、色*/
}

/*==================================================
  H2：1文字ずつ下から出る（スクロールで毎回再発火）
==================================================*/
.titleset2-parts .uline {
  display: inline-block;
}

.titleset2-parts .uline .char {
  display: inline-block;
  opacity: 0;
  transform: translateY(1.1em);
  will-change: transform, opacity;
}

/* 発火用クラス（JSで付け外し） */
.titleset2-parts.is-animate .uline .char {
  animation: h2CharUp 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) both;
  animation-delay: var(--d, 0ms);
}

@keyframes h2CharUp {
  0%   { opacity: 0; transform: translateY(1.1em); }
  100% { opacity: 1; transform: translateY(0); }
}

/* 動きが苦手な人向け（OS設定で軽減） */
@media (prefers-reduced-motion: reduce) {
  .titleset2-parts .uline .char {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
}

/* ==================================================
  追従タブ（協賛募集 / 出店募集）
  - PC：右上（ハンバーガーの下あたり）
  - 文字：縦書き
  - SP：下に移動＋横書き
  - メニュー（#menubar_hdr.ham）開いてる時は非表示
================================================== */

.cta-tabs{
  position: fixed;
  right: 12px;
  top: 92px;                 /* ← ハンバーガーの下（好みで80〜110） */
  z-index: 90;               /* ← メニューより下に（重要） */
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* タブ本体 */
.cta-tab{
  display: flex;
  align-items: center;
  justify-content: center;

  text-decoration: none;
  color: #fff;

  background: rgba(0,0,0,0.85);
  border-radius: 12px;

  width: 42px;               /* タブの太さ */
  height: 140px;             /* タブの長さ */
  padding: 10px 0;

  /* 縦書き */
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: 0.12em;

  transition: transform .25s ease, filter .25s ease, opacity .2s ease;
}

/* hover */
.cta-tab:hover{
  transform: translateY(-2px);
  filter: brightness(1.05);
}

/* 役割で濃淡をつける（控えめ） */
/* 協賛募集 */
.cta-tab--partner{
    background: #d80a5a;
}

/* 出店募集 */
.cta-tab--shop{
    background: #de7481;
}
/* -----------------------------
  メニュー展開中はタブを隠す
  （#menubar_hdr に .ham が付く仕様を利用）
----------------------------- */
#menubar_hdr.ham ~ #cta-tabs-area,
#menubar_hdr.ham ~ .cta-tabs{
  opacity: 0;
  pointer-events: none;   /* クリックも無効 */
}

/* -----------------------------
  スマホ：下に移動＆横書き
----------------------------- */
@media (max-width: 700px){
  .cta-tabs{
    top: auto;
    bottom: 88px;          /* pagetopと干渉しにくい */
    right: 10px;
    gap: 8px;
  }
  .cta-tab{
    writing-mode: horizontal-tb;  /* 横書き */
    width: auto;
    height: auto;
    padding: 10px 14px;
    border-radius: 999px;         /* ピル型 */
    font-size: 13px;
    letter-spacing: 0.06em;
  }
}




/*コンテナー（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
	overflow-x: hidden;
	position: relative;
	animation: opa1 0.2s 0.4s both;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	max-width: 1800px;	/*サイトの最大幅。これ以上広がらない。*/
	margin: 0 auto;
}


/*header（ロゴが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
	color: #fff;		/*文字色*/
	position: absolute;z-index: 1;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
}
header a {color: inherit;}

/*ロゴ（※画像の場合）*/
#logo img {
	display: block;
	width: 500px;	/*ロゴの幅*/
}

/*ロゴ（※テキストの場合）*/
#logo a {text-decoration: none;}
#logo {
	width: auto;
	font-size: 2rem;	/*文字サイズ。200%*/
}


/*メニュー
---------------------------------------------------------------------------*/
/*メニューブロック共通*/
#menubar {
	animation: animation1 0.2s both;
	position: fixed;overflow: auto;z-index: 100;
	right: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding: 100px var(--content-space) 50px;		/*ブロック内の余白。上に100px、左右についてはcss冒頭のcontent-spaceを読み込む、下に50px。*/
	background: rgba(0,0,0,0.9);	/*背景色。0,0,0は黒の事で0.9は色が90%出た状態。*/
	color: #fff;					/*文字色。白。*/
}

#menubar {display: none;}

/*メニュー１個あたり*/
#menubar a {
	display: block;text-decoration: none;
	color: inherit;
	border: 1px solid #fff;	/*枠線の幅、線種、色*/
	margin-bottom: 1rem;	/*下に１文字分のスペースを空ける。メニュー同士の間隔です。*/
	padding: 1rem 2rem;		/*メニュー内の余白。上下に１文字分、左右に２文字分。*/
}

/*子メニュー（ドロップダウンメニュー）*/
#menubar ul ul a {
	border: none;
	padding: 0;
    margin-left: 3.8rem;	/*左に空けるスペース*/
}

/*ドロップダウンのアイコン*/
a.ddmenu::before {
	font-family: "Font Awesome 6 Free";
	font-weight: bold;
	content: "\f078";
	margin-right: 0.3em;
	transform: scale(0.7);
	display: inline-block;
	transition: transform 0.3s ease; /* ← 回転アニメ */
}

a.ddmenu {cursor: pointer;}

/* 開いているとき（JSで付けるクラス） */
a.ddmenu.is-open::before {
	transform: rotate(180deg) scale(0.7);
}

/* 開いているメニュー文字を太字に */
a.ddmenu.is-open {
	font-weight: bold;
	letter-spacing: 0.05em;
}



/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
#menubar_hdr {
	display: flex;
	animation: opa1 0s 0.2s both;
	position: fixed;
	z-index: 101;
	cursor: pointer;
	right: 0px;	/*右からの配置場所*/
	top: 0px;	/*上からの配置場所*/
	width: 70px;	/*ボタンの幅*/
	height: 70px;	/*ボタンの高さ*/
	background: #000;	/*ボタン色*/
	border-radius: 0px 0px 0px 20px;	/*角を丸くする指定。左上、右上、右下、左下の順番。この場合は左下だけ角を丸くする。*/
	transform-origin: right top;
	transform: scale(0.7);	/*大きさを調整したい場合はここの「1」を変更します。1.2や0.7など。*/
}

/*バツ印が出ている時のボタン色*/
#menubar_hdr.ham {
	background: #d80a5a;
}

/*ハンバーガーアイコンの線*/
#menubar_hdr span {
	display: block;
	position: absolute;
	left: 18px;
	width: 35px;
	height: 2px;		/*線の高さ*/
	background: #fff;	/*線の色*/
	transition: 0.3s;
}

#menubar_hdr span:nth-of-type(1) {
	top: 24px;
}
#menubar_hdr span:nth-of-type(2) {
	top: 34px;
}
#menubar_hdr span:nth-of-type(3) {
	top: 44px;
}

/* ハンバーガーメニュー展開時 */
#menubar_hdr.ham span:nth-of-type(1) {
	transform: translateY(10px) rotate(-45deg);
}
#menubar_hdr.ham span:nth-of-type(2) {
	opacity: 0;
}
#menubar_hdr.ham span:nth-of-type(3) {
	transform: translateY(-10px) rotate(45deg);
}


/* 子メニューは初期状態で非表示（開きっぱなし防止） */
#menubar ul ul {
  display: none;
}


/*お知らせブロック
---------------------------------------------------------------------------*/
.news4-parts {
	margin-left: 1rem;	/*左に１文字分のスペース*/
	margin-right: 1rem;	/*右に１文字分のスペース*/
	background: rgba(0,0,0,0.02);	/*背景色。0,0,0は黒のことで0.02は色が2%出た状態。*/
	border-radius: 30px;			/*角を丸くする指定。お好みで。*/
	overflow: hidden;
}

/*奇数行目を背景色を少し濃くする。全体同じ色がよければここの数行は削除。*/
.news4-parts dt:nth-of-type(odd),
.news4-parts dd:nth-of-type(odd) {
	background: rgba(0,0,0,0.05);
}

/*日付(dt)設定*/
.news4-parts dt {
	padding: 1rem 1rem 0;	/*dt内の余白。上、左右、下への順番。*/
}

/*記事(dd)設定*/
.news4-parts dd {
	padding: 1rem;	/*dd内の余白*/
}

/*ブロック内のspan。日付の横のアイコン的な部分の共通設定*/
.news4-parts dt span {
	display: inline-block;
	text-align: center;
	line-height: 1.8;		/*行間（アイコンの高さ）*/
	border-radius: 3px;		/*角を丸くする指定*/
	padding: 0 1rem;		/*上下、左右へのブロック内の余白*/
	width: 8rem;			/*幅。６文字分。*/
	transform: scale(0.8);	/*80%のサイズに縮小*/
	background: #fff;		/*背景色*/
	color:#777;				/*文字色*/
	border: 1px solid #777;
}

/*icon-bg1-parts。サンプルでは「重要」と書いてあるマーク*/
.news4-parts .icon-bg1-parts {
	border-color: transparent;	/*上の枠線の色を引き継ぎたくないので透明にし、ここの背景色をそのまま出す。*/
	background: #d80a5a;	/*背景色*/
	color: #fff;			/*文字色*/
}

/*icon-bg2-parts。サンプルでは「サービス」と書いてあるマーク*/
.news4-parts .icon-bg2-parts {
	border-color: transparent;	/*上の枠線の色を引き継ぎたくないので透明にし、ここの背景色をそのまま出す。*/
	background: #595757;	/*背景色*/
	color: #fff;			/*文字色*/
}

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

	/*ブロック全体*/
	.news4-parts {
		display: grid;
		grid-template-columns: auto 1fr;	/*横並びの指定。日付とアイコン部分の幅は自動で、内容が入るブロックは残り幅一杯とる。*/
	}

	/*日付(dt)設定*/
	.news4-parts dt {
		padding: 1rem 0 1rem 2rem;	/*dt内の余白。上、右、下、左への順番。*/
	}

	/*記事(dd)設定*/
	.news4-parts dd {
		padding: 1rem 2rem 1rem 0;	/*dd内の余白。上、右、下、左への順番。*/
	}

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





/*コンテンツ
---------------------------------------------------------------------------*/
/*コンテンツブロック*/
#contents {
	flex: 1;
}

/*コンテンツ内で使用するul,ol要素（リストタグ）*/
#contents ul,#contents ol {
	margin-left: 2rem;
	margin-right: 2rem;
}


/*p要素（段落タグ）
---------------------------------------------------------------------------*/
p {
	margin-left: 1rem;	/*左に１文字分のスペース*/
	margin-right: 1rem;	/*右に１文字分のスペース*/
}


/*フッター
---------------------------------------------------------------------------*/
#footer2-parts * {margin: 0;padding: 0;}
#footer2-parts ul {list-style: none;}

/*ブロック全体*/
#footer2-parts {
	background: #faed00;	/*背景色*/
	color: #555;		/*文字色*/
	padding: var(--content-space);	/*フッター内の余白。css冒頭のcontent-spaceを読み込みます。*/
}

/*ロゴやSNSアイコンが入ったブロック*/
#footer2-parts div.footer2-1-parts {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 1rem;	/*このブロック内のボックス同士の間に空ける余白。１文字分。*/
}

/*メニューブロック*/
#footer2-parts div.footer2-2-parts {
    flex: 1;
}

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

	#footer2-parts {
		display: flex;
		gap: 2rem;		/*ロゴのブロックとメニューのブロックとの間の余白。2文字分。*/
	}

	/*ロゴやSNSアイコンが入ったブロック*/
	#footer2-parts div.footer2-1-parts {
		text-align: left;
		width: 40%;	/*幅。40%。*/
	}

	/*メニューブロック*/
	#footer2-parts div.footer2-2-parts {
		/*margin-bottom: 0;	下の余白をなくす*/
	}

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


/*Copyright部分*/
#footer2-parts small {
	display: block;
	text-align: center;
	margin-top: 2rem;
}


/*SNSアイコン
---------------------------------------------------------------------------*/
.sns1-parts {
	list-style: none;
	margin: 0;padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;		/*アイコン同士のマージン的な要素。１文字分。*/
}

.sns1-parts i {
	font-size: 30px;	/*アイコンサイズ*/
}


/*Google Map用
---------------------------------------------------------------------------*/
.iframe-box1-parts {
	width: 100%;
	height: 0;
	padding-top: 56.25% !important;	/*マップの高さを増やしたい場合は、ここの数値を上げてみて下さい。*/
	position: relative;
	overflow: hidden;
}
.iframe-box1-parts iframe {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
}


/*テーブル
---------------------------------------------------------------------------*/
.week2-parts {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	border-radius: 10px;	/*角を丸くする指定*/
	border: 1px solid #ccc;	/*テーブル外側の線の幅、線種、色*/
	table-layout: fixed;	/*幅を均等に*/
	background: #fff;		/*テーブル全体の背景色*/
	color: #555;			/*テーブル全体の文字色*/
}

/*受付時間の幅*/
.week2-parts th:first-child,
.week2-parts td:first-child {
	width: 25%;
}

/*各曜日の幅*/
.week2-parts th:not(:first-child),
.week2-parts td:not(:first-child) {
	width: calc(75% / 7);	/*受付時間で25%とっているので残りの75%を7で割る*/
}

/*th(曜日)とtd(時間)*/
.week2-parts th,
.week2-parts td {
	padding: 1rem 0;	/*ボックス内の余白。上下に１文字分、左右は0。*/
	text-align: center;	/*テキストをセンタリング*/
	border-bottom: 1px solid #ccc;	/*下の線の幅、線種、色*/
	border-right: 1px solid #ccc;	/*右の線の幅、線種、色*/
}

/*th(曜日)とtd(時間)のそれぞれ最後の右側の線を消す*/
.week2-parts th:last-child,
.week2-parts td:last-child {
	border-right: none;
}

/*最後の行の下線を消す*/
.week2-parts tr:last-child td {
	border-bottom: none;
}

/*th(曜日)の追加指定*/
.week2-parts th {
	background: #fafafa;	/*背景色*/
}
.week2-parts td {
	border-bottom: 1px solid #ccc;	/*下の線の幅、線種、色*/
}

/* アクセス案内リストのスタイル調整 */
#footer2-parts .footer2-2-parts ul.disc {
  text-align: left; /* 左寄せ */
}

/* アクセス案内文（pタグ）も左寄せ＆余白ありに */
#footer2-parts .footer2-2-parts p {
  text-align: left;
  margin: 1rem 2rem;
  line-height: 1.6;
}


#footer2-parts {
  background: #f2e634;
  color: #555;
  padding: var(--content-space);
  padding-top: 2rem;   /* ↑ 上に余白 */
  padding-left: 4rem;   /* ← 左に余白 */
  padding-right: 4rem;  /* → 右に余白 */
}

.footer-copyright-wrap {
  background: #f2e634; /* フッターと同じ背景色 */
  padding: 1rem 2rem;
}

.footer-copyright {
  display: block;
  text-align: center;
  font-size: 0.65rem;
  color: #555;
}

/*==================================================
  フッター：開催日時を大きく太字に
==================================================*/
#footer2-parts .big1 {
  font-size: 1.3rem;     /* ← 大きさ（好みで1.2〜1.5） */
  font-weight: 800;      /* ← 太字 */
  line-height: 1.4;
  margin: 0.5rem 0 1rem; /* ← 上下の余白 */
}

/*==================================================
  フッター：開催場所ブロックを少し大きく
  ※「big1 の次の p」だけを狙うので安全
==================================================*/
#footer2-parts .big1 + p {
  font-size: 1.05rem;   /* ← 少しだけ大きく */
  line-height: 1.7;
}

.big1 .date{
    font-size: 2rem;
    font-weight: 700;
}

.big1 .time{
    font-size: 1.4rem;
    font-weight: 600;
}


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

/*ボタンの設定*/
.pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 99;
	animation: opa1 1s 0.4s both;
	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%;	/*円形にする*/
}


/*余白調整用
---------------------------------------------------------------------------*/
section.padding0 {
	padding: 0;
}
div.padding0 {
	margin-left: calc(-1 * var(--content-space));
	margin-right: calc(-1 * var(--content-space));
}


/*その他
---------------------------------------------------------------------------*/
.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; color: #888; 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;}

/*大きな画面の場合*/
.large-screen .ws {width: 48%;display: inline;}
.large-screen .sh {display: none;}
.large-screen .pc {display: block;}


/*ヘッダー下部のSCROLLアニメーション
---------------------------------------------------------------------------*/
/*アニメーション設定*/
@keyframes scroll-line-parts {
  0% {transform: scaleY(1);}
  50% {transform: scaleY(0);}
  100% {transform: scaleY(0);}
}

/*ラインアニメーションを囲むブロック*/
.scroll-container-parts {
	position: absolute;
	width: 100px;
	left: calc(50% - 50px);
	top: calc(var(--vh) - 100px);	/*100px部分が画面の下からの配置場所。アニメーションブロック本体も入れての配置なので0にしてしまうとスライドの下（枠外）になってしまうので注意。*/
	display: flex;
	flex-direction: column;
	align-items: center;
	font-size: 0.7rem;	/*SCROLLのテキストのサイズ。70%*/
	color: #fff;		/*文字色*/
	letter-spacing: 0.2em;	/*文字間隔を少し広くする*/
}

/*ラインアニメーションの土台部分*/
.scroll-line-parts {
	margin: 0 auto;
	position: relative;
	width: 1px;		/*ラインアニメーションの幅。お好みで。*/
	height: 50px;	/*ラインアニメーションの高さ。お好みで。*/
	background: rgba(255,255,255,0.5);	/*ラインアニメーションの土台部分の色。255,255,255は白のことで0.5は色が50%出た状態。*/
}

/*ラインアニメーション本体*/
.scroll-line-parts span {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	background: #fff;	/*ラインアニメーションの色*/
	animation: scroll-line-parts 2s infinite;	/*2sがアニメーションにかける時間。2秒。*/
	transform-origin: bottom;
}


/*スライドショー
---------------------------------------------------------------------------*/
/*スライドショー
---------------------------------------------------------------------------*/
/*動画を囲むブロック（フルブリード対応）*/
#mainimg-parts {
	width: 100vw;
	height: 100vh;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	overflow: hidden;
	z-index: -1;
}

/*動画*/
#mainimg-parts video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/*縦向き用動画を非表示に*/
#mainimg-parts video.display-tate {
	display: none;
}

	/*端末を縦向きにした場合*/
	@media (orientation: portrait) {
	
	/*横向き用動画を非表示に*/
	#mainimg-parts video.display-yoko {
		display: none;
	}
	
	/*縦向き用動画を表示させる*/
	#mainimg-parts video.display-tate {
		display: block;
	}

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



/*listボックス
/*subブロック
---------------------------------------------------------------------------*/
#sub {
	float: left;		/*左に回り込み*/
	width: 25%;			/*ブロックの幅*/
	max-width: 375px;	/*最大幅。これ以上広がらないようにする。*/
	text-align: center;	/*ブロック内を中央に*/
	position: fixed;	/*画面をスクロールしても固定させる指定*/
}
/*subブロックのロゴ。menu.cssにもアニメーションに関連する指定が入っています。*/
#sub .logo {
	border-bottom: 1px solid #ccc;	/*下線の幅、線種、色*/
	padding: 100px 0;	/*上下、左右への余白*/
}
/*ロゴ画像*/
#sub .logo img {
	width: 60%;	/*幅*/
}



.history-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  max-width: 980px;          /* ← 1100〜1400で好み */
  margin: 0 auto 15px;        /* ← 左右autoで中央寄せ */
  padding: 0 1rem;            /* ← 端末小さい時の保険 */
}



.history-grid .list{
  width: auto;
  margin: 0;
  float: none;
  background: transparent;        /* ←黒下地をやめる */
  position: relative;
  overflow: hidden;
  border-radius: 12px;            /* ←好み：ちょい角丸 */
}

.history-grid .list img{
  opacity: 1;                     /* ←常時100%表示 */
  filter: brightness(0.98);       /* ←ほんの少しだけ落ち着かせる（暗くしない） */
  transition: filter .3s ease, transform .3s ease;
}

/* hoverでちょいメリハリ */
.history-grid .list:hover img{
  filter: brightness(1.05);
}


.history-grid .list span{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;

  display: flex;
  align-items: center;        /* 縦中央 */
  justify-content: center;    /* 横中央 */

  height: 24px;               /* ← 背景の高さを固定 */
  padding: 0 8px;             /* ← 横だけ余白 */
  box-sizing: border-box;

  background: rgba(0,0,0,0.30);
  color: #fff;

  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.02em;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.history-grid .list:hover span{
  background: rgba(0,0,0,0.45); /* ← ほんのり濃く */
}

.history-grid .list img{
  transition: transform .35s ease, filter .35s ease;
}

.history-grid .list:hover img{
  transform: scale(1.04);   /* ← 0.02〜0.06で好み */
  filter: brightness(1.05); /* ← 少しだけ持ち上げる */
}



.left{
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.left.leftstyle{
  opacity: 1;
  transform: translateX(0);
}


.right{
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.right.rightstyle{
  opacity: 1;
  transform: translateX(0);
}


/* ==================================================
  partner（1 / 3 / 3 / 5 / 5 固定）
  - 小画面で縮む（見切れない）
  - 大画面で広がりすぎない（上限あり）
  - 1列縦並び事故を防ぐ（行クラスが効かなくても極力守る）
================================================== */

/* partner全体 */
.partner-wrap{
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  gap: 12px;
}

/* レーン共通 */
.partner-row{
  display: grid;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

/* ▼ここが本命：列数固定（縮む＆上限） */
.partner-row--1{
  grid-template-columns: minmax(0, min(520px, 1fr));
}

.partner-row--2{
  grid-template-columns: repeat(2, minmax(0, min(320px, 1fr)));
}

.partner-row--3{
  grid-template-columns: repeat(3, minmax(0, min(240px, 1fr)));
}
.partner-row--5{
  grid-template-columns: repeat(5, minmax(0, min(180px, 1fr)));
}

/* ▼保険：もし行クラスが当たってなくても、
   “子要素の数”でそれっぽく並べる（強制力UP）
   ※最初の行(大スポンサー)はHTML側で partner-row--1 を付けてね */
.partner-row:not(.partner-row--1){
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
}

/* ロゴ枠 */
.partner-item{
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  padding: 2px;
  height: 80px;
  transition: transform .25s ease, filter .25s ease;
}

.partner-item:hover{
  transform: translateY(-2px);
  filter: brightness(1.05);
}

/* ロゴ画像：必ず枠内に収める */
.partner-item img{
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* 料金グレード別（高さ＝格差、最小値を低めにして縮み対応） */
.partner-item--big{   height: clamp(90px, 12vw, 170px); }
.partner-item--mid{   height: clamp(70px, 10vw, 130px); }
.partner-item--small{ height: clamp(55px,  8vw, 105px); }

/* 余白調整 */
@media (max-width: 600px){
  .partner-wrap{ padding: 0 1rem; }
  .partner-row{ gap: 4px; }
}

/* ==================================================
  お問い合わせページの体裁
================================================== */

/*テーブル（ta1）
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	font-weight: bold;		/*太字に*/
	padding: 0.5rem 1rem;	/*ボックス内の余白*/
	background: #333;		/*背景色*/
	color: #fff;
	margin-bottom: 1rem;	/*下に空けるスペース*/
	border-radius: 5px;		/*角を丸くする指定*/
}

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

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

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

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

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

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

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


/* ==================================================
  aboutページ（えどがわ楽市とは）
================================================== */

/*背景画像が少しずつ上に移動する
---------------------------------------------------------------------------*/
/*ブロック全体*/
.bg-slideup-parts {
    background: #eee;	/*背景色*/
}

/*テキストボックス*/
.bg-slideup-parts .text-parts {
    padding: 1rem;	/*余白。２文字分。*/
}

/*画像ボックス*/
.bg-slideup-parts .image-parts {

    background-repeat: no-repeat;
    background-size: cover;
	height: 25vw;	/*高さ。画面幅の半分になる設定ですがお好みで単位なども変更して下さい。*/
}

/* それぞれ別画像 */
.image-parts.img01 {
    background-image: url("../images/about/edoraku.jpg");
}

.image-parts.img02 {
    background-image: url("../images/about/KURUMU.jpg");
}

.image-parts.img03 {
    background-image: url("../images/about/purin.jpg");
}

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

	/*ブロック全体*/
	.bg-slideup-parts {
		display: flex;
		min-height: 300px;	/*最低限の高さ。この行を削除すればテキスト量に応じた背景の高さになります。*/
	}

	/*reverse*/
	.bg-slideup-parts.reverse {
		flex-direction: row-reverse;
	}

	/*画像ボックス*/
	.bg-slideup-parts .image-parts {
		width: 50%;	/*幅*/
	}

	/*テキストボックス*/
	.bg-slideup-parts .text-parts {
		flex: 1;
	}

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


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

}

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

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

/*th（左側）、td（右側）の共通設定*/
.ta3 th, .ta3 td {
	padding: 10px 5px;		/*上下、左右へのボックス内の余白*。基本的に数行上の「.ta3 caption」のpaddingと揃えておけばOKです。*/
	word-break: break-all;	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}

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

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

		/*テーブル１行目に入った見出し部分（※caption）*/
		.ta3 caption {
			padding: 5px 15px;		/*上下、左右へのボックス内の余白*/
		}

		/*th（左側）、td（右側）の共通設定*/
		.ta3 th, .ta3 td {
			padding: 20px 15px;		/*上下、左右へのボックス内の余白*/
		}

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

	}/*画面幅900px以上の追加指定ここまで*/


/* タイムテーブル用：縦線・横線を揃え、3列を同じ幅に */
.ta3.schedule {
  border-collapse: collapse;
  table-layout: fixed; /* 各列の幅を均等にする */
  width: 100%;
}

.ta3.schedule th,
.ta3.schedule td {
  border: 1px solid #ccc;
  text-align: center;
  padding: 10px;
}

/* 最初の「時間」列だけ少し狭くする */
.ta3.schedule th:first-child,
.ta3.schedule td:first-child {
  width: 15%;
}

/* 残り3列を均等にする */
.ta3.schedule th:nth-child(n+2),
.ta3.schedule td:nth-child(n+2) {
  width: 28.33%;
}



/* ==================================================
  下層ページ用：ロゴを左上に配置（非固定）
================================================== */
.page-lower header{
  position: relative;     /* ← fixedやめる */
  top: auto;
  left: auto;
  z-index: 1;
  transform: none;        /* トップの中央寄せ解除 */
  padding: 16px 16px 0;   /* ← 左上に余白つきで置く */
}

/* ロゴサイズを小さめに */
.page-lower #logo img{
  width: 300px;           /* 150〜200で好み */
  max-width: none;
}

/* 下層ページは余白を詰めすぎない */
.page-lower #container{
  padding-top: 0;         /* 固定じゃないので不要 */
}

/* スマホ */
@media (max-width: 700px){
  .page-lower header{
    padding: 12px 12px 0;
  }
  .page-lower #logo img{
    width: 200px;
  }
}



@charset "utf-8";

/* ================================================================
   以下、Builder で選択したパーツのCSS（自動連結）
   ================================================================ */

/* ---- 角丸のカラムレイアウト（list-kadomaru1） (list-kadomaru1) ---- */
/*list-kadomaru1-parts（カラムブロック）
---------------------------------------------------------------------------*/
.list-kadomaru1-parts * {margin: 0;padding: 0;}

/*ボックス全体*/
.list-kadomaru1-parts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));	/*3列*/
	gap: 3rem;		/*ボックス同士の間に空けるスペース。1.5文字分。*/
	font-size: 0.9rem;	/*文字サイズ90%*/
}

/* 900px未満で2列 */
@media screen and (max-width: 899px) {
    .list-kadomaru1-parts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/*ボックス１個あたり*/
.list-kadomaru1-parts .list-parts {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/*画像*/
.list-kadomaru1-parts .list-parts figure {
	border-radius: 20px;	/*角を丸くする。お好みで。*/
	overflow: hidden;
}

/*テキストボックス*/
.list-kadomaru1-parts .list-parts .text-parts {
	flex: 1;
}

/*h4見出し*/
.list-kadomaru1-parts h4 {
	text-align: center;	/*テキストをセンタリング*/
}

/*説明だけ小さめにする*/
.list-kadomaru1-parts .list-parts p {
	font-size: 0.9em;	/*文字サイズ*/
	line-height: 1.5;	/*行間*/
}

/*square（正方形）画像*/
.list-kadomaru1-parts.square .list-parts figure {
	width: 100%;
	aspect-ratio: 1 / 1;	/*幅に対して高さを同じにする*/
}
.list-kadomaru1-parts.square .list-parts figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;			/*コンテナいっぱいにカバー、余分な部分はカット*/
	object-position: center;	/*中央部分を表示*/
}


/*.list-kadomaru1-parts用のアイコン
---------------------------------------------------------------------------*/
/*アイコン共通*/
.list-kadomaru1-parts .icon1-parts,
.list-kadomaru1-parts .icon2-parts,
.list-kadomaru1-parts .icon3-parts {
	display: block;
	pointer-events: none;
	font-size: 0.7rem;	/*文字サイズ70%*/
	text-align: center;
	position: absolute;
}

/*list-kadomaru1-parts内のアイコン用の色変数*/
.list-kadomaru1-parts {
	--icon-bg-color: var(--accent-color);			/*icon-bg-colorに、theme.cssのaccent-colorを読み込みます。*/
	--icon-text-color: var(--accent-inverse-color);	/*icon-text-bg-colorに、theme.cssのaccent-inverse-colorを読み込みます。*/
}

/*背景がbg1-accent-partsの場合のみ、アイコン色を変更する*/
.bg1-accent-parts .list-kadomaru1-parts {
	--icon-bg-color: var(--accent-inverse-color);	/*icon-bg-colorに、theme.cssのaccent-inverse-colorを読み込みます。*/
	--icon-text-color: var(--accent-color);			/*icon-text-colorに、theme.cssのaccent-colorを読み込みます。*/
}

/*icon1-parts*/
.list-kadomaru1-parts .icon1-parts {
	left: 5px;	/*ボックスの左からの配置*/
	top: 5px;	/*ボックスの上からの配置*/
	padding: 0 0.5rem;	/*アイコン内の余白。上下は0、左右に0.5文字分。*/
	background: var(--icon-bg-color);	/*背景色。list-kadomaru1-parts内のicon-bg-colorを読み込みます。*/
	color: var(--icon-text-color);		/*文字色。list-kadomaru1-parts内のicon-text-colorを読み込みます。*/
}

/*icon2-parts*/
.list-kadomaru1-parts .icon2-parts {
	overflow: hidden;
	left: -6px;	/*ボックスの左からの配置*/
	top: -6px;	/*ボックスの上からの配置*/
	width: 40px;
	line-height: 40px;
	border-radius: 50%;
	background: var(--icon-bg-color);	/*背景色。list-kadomaru1-parts内のicon-bg-colorを読み込みます。*/
	color: var(--icon-text-color);		/*文字色。list-kadomaru1-parts内のicon-text-colorを読み込みます。*/
}

/*icon3-parts（帯を入れているボックス。背景色をつけてみると、意味がわかって調整しやすいです。）*/
.list-kadomaru1-parts .icon3-parts {
	left: -20px;	/*場所を変えたい場合は、ここを変更。下のtopと合わせる。*/
	top: -20px;		/*場所を変えたい場合は、ここを変更。上のleftと合わせる。*/
	width: 100px;
	height: 100px;
	z-index: 2;
}
/*icon3-parts（帯）*/
.list-kadomaru1-parts .icon3-parts > span {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 160px;	/*帯の幅。ここだけ変更しても変化しないので、上の帯を入れているボックスの方で調整して下さい。*/
	transform: translate(-50%, -50%) rotate(-45deg);
	white-space: nowrap;
	background: var(--icon-bg-color);	/*背景色。list-kadomaru1-parts内のicon-bg-colorを読み込みます。*/
	color: var(--icon-text-color);		/*文字色。list-kadomaru1-parts内のicon-text-colorを読み込みます。*/
}


.up {
  opacity: 0;
  transform: scale(0.95);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.up.upstyle {
  opacity: 1;
  transform: scale(1);
} 



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