/* スムーススクロール */
html { scroll-behavior: smooth; }

/* unitone の text-wrap: pretty を打ち消す（意図しない改行を防ぐ） */
:where(.is-layout-constrained:not([data-unitone-layout~=text])) :where(h1, h2, h3, h4, h5, h6),
:where(.is-root-container) :where(h1, h2, h3, h4, h5, h6),
:where(.wp-block-post-content.is-layout-flow) :where(h1, h2, h3, h4, h5, h6) {
	text-wrap: auto;
}

/* スポンサー見出し: スマホで左右に横線を伸ばす */
@media (max-width: 600px) {
	.sponsor-heading {
		display: flex;
		align-items: center;
		gap: 1em;
		text-align: center;
	}

	.sponsor-heading::before,
	.sponsor-heading::after {
		content: "";
		flex: 1;
		height: 1px;
		background: #ddd;
	}

	/* プラチナスポンサーグリッド: スマホ用 gap 調整 */
	.platinum-grid {
		gap: 10px 20px !important;
	}
}

/* カテゴリー一覧（投稿タイプ別）: ターム一覧ブロックをラップした unitone div に
   追加CSSクラス `post-type-category-list` を付与した想定 */
.post-type-category-list {
	color: #1D1B49;
	background: #fff;
	padding: 15px;
}

.post-type-category-list :is(h1, h2, h3, h4, h5, h6) {
	font-size: 13px;
	color: #1D1B49;
	font-weight: 700;
	margin: 0 0 0.5em;
	padding-bottom: 0.4em;
	border-bottom: 2px solid #707070;
}

.post-type-category-list .wp-block-categories {
	list-style: none;
	margin: 13px 0 0;
	padding: 0 0 0 10px;
}

.post-type-category-list .cat-item {
	margin: 0;
	padding: 0;
	line-height: 1.5;
}

.post-type-category-list .cat-item > a {
	color: inherit;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	font-size: 13px;
}

.post-type-category-list .cat-item > a::before {
	content: "▶";
	font-size: 0.7em;
	color: #707070;
}

.post-type-category-list .cat-item > a:hover {
	text-decoration: underline;
}

.post-type-category-list .children {
	list-style: none;
	margin: 0 0 0 1em;
	padding: 0;
}

/* イベント詳細（カード表示項目）:
   ラベル直後に値が続き、値が折り返してもラベル下には回り込まない */
.event-details {
	margin: 0;
}

.event-details > dt {
	float: left;
	margin: 0;
}

.event-details > dt::after {
	content: "／";
	font-size: 10px;
	position: relative;
	top: -1px;
}

.event-details > dd {
	margin: 0 0 2px;
	overflow: hidden;
}

/* 投稿/ページ共通のタイトルバー: バー直下に白い隙間 + 紺のアンダーバー */
.post-title-bar {
	background-color: #1d1b49;
	padding-left: 10px;
	padding-right: 10px;
	position: relative;
}

.post-title-bar::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -5px;
	height: 2px;
	background: #1d1b49;
}

.post-title-bar a {
	color: inherit;
}

/* パンくずリスト: 横の隙間を詰める / 縦の隙間は0 */
.unitone-breadcrumbs {
	column-gap: 5px;
	row-gap: 0;
}

.unitone-breadcrumbs__item {
	gap: 5px;
}

.unitone-breadcrumbs__item a {
	text-decoration: none;
}

.unitone-breadcrumbs__item a:hover {
	text-decoration: underline;
}

/* パンくずの最後の項目: 長すぎるタイトルは省略表示 */
.unitone-breadcrumbs__item:last-child {
	min-width: 0;
}

.unitone-breadcrumbs__item:last-child span {
	display: inline-block;
	max-width: min(20em, 60vw);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}

/* ナビゲーション: descriptionをサブテキストとして表示 */
.wp-block-navigation .wp-block-navigation-item__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.3;
	gap: 0.3em;
}

.wp-block-navigation .wp-block-navigation-item__description {
	display: block !important;
	font-size: 13px;
	font-weight: 400;
}

/* ヘッダーメニュー（1種〜審判委員会）: 6列グリッドで2段 */
.gfa-main-nav {
	position: relative;
}

.gfa-main-nav .wp-block-navigation__container {
	display: grid !important;
	grid-template-columns: repeat(6, auto);
	justify-content: center;
	gap: 0.8em 2.5em !important;
}

/* 1段目と2段目の間に仕切り線（1本の連続線） */
/* 2段目を中央揃え（4アイテムを6列の2列目から配置） */
.gfa-main-nav .wp-block-navigation__container > .wp-block-navigation-item:nth-child(7) {
	grid-column-start: 2;
}

.gfa-main-nav::after {
	content: "";
	position: absolute;
	left: -1em;
	right: -1em;
	top: calc(55% + 3px);
	height: 1px;
	background: #9ab59b;
}


/* PC: サブナビを「常時オーバーレイ」から通常インライン表示に戻す */
@media (min-width: 1541px) {
	.gfa-sub-nav .wp-block-navigation__responsive-container-open {
		display: none !important;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container {
		display: block !important;
		position: static !important;
		width: auto !important;
		height: auto !important;
		background: transparent !important;
		overflow: visible !important;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container-content {
		display: flex !important;
		flex-direction: row !important;
		gap: 1.5em;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container-close {
		display: none !important;
	}

	/* 右端付近の「協会について」のサブメニューが画面外にはみ出すので、右揃えで左に開く */
	.gfa-sub-nav .wp-block-navigation__container > .wp-block-navigation-item.has-child:nth-last-child(2) > .wp-block-navigation__submenu-container {
		left: auto;
		right: 0;
	}
}

/* サブナビ: 1540px以下はスライドインパネル */

/* タブレット〜中幅: メインナビの間隔・文字サイズ縮小 */
@media (max-width: 1540px) and (min-width: 1025px) {
	.gfa-main-nav .wp-block-navigation__container {
		gap: 0.5em clamp(0.8em, 1.5vw, 2.5em) !important;
		font-size: clamp(0.8em, 1.1vw, 1em);
	}

	.gfa-main-nav .wp-block-navigation-item__description {
		font-size: clamp(9px, 0.9vw, 13px);
	}
}

/* メインナビ: 角丸の領域を全項目に常時確保（レイアウトずれ防止） */
/* padding で背景の見た目を作り、同サイズの negative margin で占有幅を元に戻す */
.gfa-main-nav.is-style-unitone .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	min-width: 5em;
	padding-left: 0.8em;
	padding-right: 0.8em;
	margin: 0 -0.8em;
	border-radius: 32px;
	transition: background-color 0.15s ease, color 0.15s ease;
}

/* ホバー: 現在地より薄い塗りでフィードバック（現在地項目には適用しない） */
.gfa-main-nav.is-style-unitone .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
	background-color: #e7ebf1;
	color: #314764;
}

/* 現在地ハイライト: 色だけ切り替え */
body.post-type-archive-type1     .gfa-main-nav .menu-item-type1     > .wp-block-navigation-item__content,
body.single-type1                .gfa-main-nav .menu-item-type1     > .wp-block-navigation-item__content,
body.tax-type1_cat               .gfa-main-nav .menu-item-type1     > .wp-block-navigation-item__content,
body.post-type-archive-type2     .gfa-main-nav .menu-item-type2     > .wp-block-navigation-item__content,
body.single-type2                .gfa-main-nav .menu-item-type2     > .wp-block-navigation-item__content,
body.tax-type2_cat               .gfa-main-nav .menu-item-type2     > .wp-block-navigation-item__content,
body.post-type-archive-type3     .gfa-main-nav .menu-item-type3     > .wp-block-navigation-item__content,
body.single-type3                .gfa-main-nav .menu-item-type3     > .wp-block-navigation-item__content,
body.tax-type3_cat               .gfa-main-nav .menu-item-type3     > .wp-block-navigation-item__content,
body.post-type-archive-type4     .gfa-main-nav .menu-item-type4     > .wp-block-navigation-item__content,
body.single-type4                .gfa-main-nav .menu-item-type4     > .wp-block-navigation-item__content,
body.tax-type4_cat               .gfa-main-nav .menu-item-type4     > .wp-block-navigation-item__content,
body.post-type-archive-senior    .gfa-main-nav .menu-item-senior    > .wp-block-navigation-item__content,
body.single-senior               .gfa-main-nav .menu-item-senior    > .wp-block-navigation-item__content,
body.tax-senior_cat              .gfa-main-nav .menu-item-senior    > .wp-block-navigation-item__content,
body.post-type-archive-women     .gfa-main-nav .menu-item-women     > .wp-block-navigation-item__content,
body.single-women                .gfa-main-nav .menu-item-women     > .wp-block-navigation-item__content,
body.tax-women_cat               .gfa-main-nav .menu-item-women     > .wp-block-navigation-item__content,
body.post-type-archive-futsal    .gfa-main-nav .menu-item-futsal    > .wp-block-navigation-item__content,
body.single-futsal               .gfa-main-nav .menu-item-futsal    > .wp-block-navigation-item__content,
body.tax-futsal_cat              .gfa-main-nav .menu-item-futsal    > .wp-block-navigation-item__content,
body.post-type-archive-kids      .gfa-main-nav .menu-item-kids      > .wp-block-navigation-item__content,
body.single-kids                 .gfa-main-nav .menu-item-kids      > .wp-block-navigation-item__content,
body.tax-kids_cat                .gfa-main-nav .menu-item-kids      > .wp-block-navigation-item__content,
body.post-type-archive-technical .gfa-main-nav .menu-item-technical > .wp-block-navigation-item__content,
body.single-technical            .gfa-main-nav .menu-item-technical > .wp-block-navigation-item__content,
body.tax-technical_cat           .gfa-main-nav .menu-item-technical > .wp-block-navigation-item__content,
body.post-type-archive-referee   .gfa-main-nav .menu-item-referee   > .wp-block-navigation-item__content,
body.single-referee              .gfa-main-nav .menu-item-referee   > .wp-block-navigation-item__content,
body.tax-referee_cat             .gfa-main-nav .menu-item-referee   > .wp-block-navigation-item__content {
	background-color: #314764;
	color: #fff;
}

/* ユーティリティクラス: マージン */
.m-0  { margin: 0 !important; }
.mt-0 { margin-top: 0 !important; }
.mt-05 { margin-top: 2px !important; }
.mt-1 { margin-top: 4px !important; }
.mt-2 { margin-top: 8px !important; }
.mt-3 { margin-top: 12px !important; }
.mt-4 { margin-top: 16px !important; }
.mt-5 { margin-top: 20px !important; }
.mt-6 { margin-top: 24px !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-05 { margin-bottom: 2px !important; }
.mb-1 { margin-bottom: 4px !important; }
.mb-2 { margin-bottom: 8px !important; }
.mb-3 { margin-bottom: 12px !important; }
.mb-4 { margin-bottom: 16px !important; }
.mb-5 { margin-bottom: 20px !important; }
.mb-6 { margin-bottom: 24px !important; }
.ml-0 { margin-left: 0 !important; }
.ml-05 { margin-left: 2px !important; }
.ml-1 { margin-left: 4px !important; }
.ml-2 { margin-left: 8px !important; }
.ml-3 { margin-left: 12px !important; }
.ml-4 { margin-left: 16px !important; }
.ml-5 { margin-left: 20px !important; }
.ml-6 { margin-left: 24px !important; }
.mr-0 { margin-right: 0 !important; }
.mr-05 { margin-right: 2px !important; }
.mr-1 { margin-right: 4px !important; }
.mr-2 { margin-right: 8px !important; }
.mr-3 { margin-right: 12px !important; }
.mr-4 { margin-right: 16px !important; }
.mr-5 { margin-right: 20px !important; }
.mr-6 { margin-right: 24px !important; }
.mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.mx-05 { margin-left: 2px !important; margin-right: 2px !important; }
.mx-1 { margin-left: 4px !important; margin-right: 4px !important; }
.mx-2 { margin-left: 8px !important; margin-right: 8px !important; }
.mx-3 { margin-left: 12px !important; margin-right: 12px !important; }
.mx-4 { margin-left: 16px !important; margin-right: 16px !important; }
.mx-5 { margin-left: 20px !important; margin-right: 20px !important; }
.mx-6 { margin-left: 24px !important; margin-right: 24px !important; }
.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.my-05 { margin-top: 2px !important; margin-bottom: 2px !important; }
.my-1 { margin-top: 4px !important; margin-bottom: 4px !important; }
.my-2 { margin-top: 8px !important; margin-bottom: 8px !important; }
.my-3 { margin-top: 12px !important; margin-bottom: 12px !important; }
.my-4 { margin-top: 16px !important; margin-bottom: 16px !important; }
.my-5 { margin-top: 20px !important; margin-bottom: 20px !important; }
.my-6 { margin-top: 24px !important; margin-bottom: 24px !important; }
.-mt-05 { margin-top: -2px !important; }
.-mt-1 { margin-top: -4px !important; }
.-mt-2 { margin-top: -8px !important; }
.-mt-10px { margin-top: -10px !important; }
.-mt-3 { margin-top: -12px !important; }
.-mt-4 { margin-top: -16px !important; }
.-mt-5 { margin-top: -20px !important; }
.-mt-6 { margin-top: -24px !important; }

/* ユーティリティクラス: パディング */
.p-0  { padding: 0 !important; }
.pt-0 { padding-top: 0 !important; }
.pt-05 { padding-top: 2px !important; }
.pt-1 { padding-top: 4px !important; }
.pt-2 { padding-top: 8px !important; }
.pt-3 { padding-top: 12px !important; }
.pt-4 { padding-top: 16px !important; }
.pt-5 { padding-top: 20px !important; }
.pt-6 { padding-top: 24px !important; }
.pb-0 { padding-bottom: 0 !important; }
.pb-05 { padding-bottom: 2px !important; }
.pb-1 { padding-bottom: 4px !important; }
.pb-2 { padding-bottom: 8px !important; }
.pb-3 { padding-bottom: 12px !important; }
.pb-4 { padding-bottom: 16px !important; }
.pb-5 { padding-bottom: 20px !important; }
.pb-6 { padding-bottom: 24px !important; }
.pl-0 { padding-left: 0 !important; }
.pl-05 { padding-left: 2px !important; }
.pl-1 { padding-left: 4px !important; }
.pl-2 { padding-left: 8px !important; }
.pl-3 { padding-left: 12px !important; }
.pl-4 { padding-left: 16px !important; }
.pl-5 { padding-left: 20px !important; }
.pl-6 { padding-left: 24px !important; }
.pr-0 { padding-right: 0 !important; }
.pr-05 { padding-right: 2px !important; }
.pr-1 { padding-right: 4px !important; }
.pr-2 { padding-right: 8px !important; }
.pr-3 { padding-right: 12px !important; }
.pr-4 { padding-right: 16px !important; }
.pr-5 { padding-right: 20px !important; }
.pr-6 { padding-right: 24px !important; }
.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.px-05 { padding-left: 2px !important; padding-right: 2px !important; }
.px-1 { padding-left: 4px !important; padding-right: 4px !important; }
.px-2 { padding-left: 8px !important; padding-right: 8px !important; }
.px-3 { padding-left: 12px !important; padding-right: 12px !important; }
.px-4 { padding-left: 16px !important; padding-right: 16px !important; }
.px-5 { padding-left: 20px !important; padding-right: 20px !important; }
.px-6 { padding-left: 24px !important; padding-right: 24px !important; }
.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.py-05 { padding-top: 2px !important; padding-bottom: 2px !important; }
.py-1 { padding-top: 4px !important; padding-bottom: 4px !important; }
.py-2 { padding-top: 8px !important; padding-bottom: 8px !important; }
.py-3 { padding-top: 12px !important; padding-bottom: 12px !important; }
.py-4 { padding-top: 16px !important; padding-bottom: 16px !important; }
.py-5 { padding-top: 20px !important; padding-bottom: 20px !important; }
.py-6 { padding-top: 24px !important; padding-bottom: 24px !important; }

/* ユーティリティクラス: 背景画像の縦位置 */
.bg-y-top    { background-position-y: top !important; }
.bg-y-center { background-position-y: center !important; }
.bg-y-bottom { background-position-y: bottom !important; }

/* ユーティリティクラス: テキストの折り返し制御 */
/* nowrap: 折り返さない。unitone の text-wrap も上書きする */
.nowrap { white-space: nowrap !important; text-wrap: nowrap !important; }
/* nowrap-pc: PC幅（1025px以上）でのみ折り返さない（スマホは折り返す） */
@media (min-width: 1025px) {
	.nowrap-pc { white-space: nowrap !important; text-wrap: nowrap !important; }
}


/* overlay-only項目: 通常時は非表示（PC・中幅ドロップダウンとも）
   !important必須: WPコアが .wp-block-navigation-item に display:flex を設定するため */
.gfa-sub-nav .overlay-only,
.gfa-sub-nav .overlay-ground {
	display: none !important;
}

/* 1540px以下: スライドインパネル + ハンバーガーアニメーション */
@media (max-width: 1540px) {

	/* スクロールバー消失によるハンバーガー位置ずれ防止 */
	html.has-modal-open {
		scrollbar-gutter: stable;
	}

	/* ===== パネル構造 ===== */

	/* オーバーレイ背景: 半透明の暗幕（タップで閉じる領域を兼ねる） */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100% !important;
		background: rgba(0, 0, 0, 0.35) !important;
		padding: 0 !important;
		overflow: visible !important;
		box-shadow: none;
		border-radius: 0;
		min-width: unset;
		animation: overlayFadeIn 0.3s ease;
	}

	/* サイドパネル本体: 右からスライドイン */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: auto;
		width: 85vw;
		max-width: 380px;
		background: #fff;
		overflow-y: auto;
		box-shadow: -6px 0 30px rgba(0, 0, 0, 0.1);
		animation: panelSlideIn 0.3s ease;
	}

	@keyframes overlayFadeIn {
		from { opacity: 0; }
		to { opacity: 1; }
	}

	@keyframes panelSlideIn {
		from { transform: translateX(100%); }
		to { transform: translateX(0); }
	}

	/* 閉じるアニメーション（JSが is-menu-closing クラスを付与） */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open.is-menu-closing {
		animation: overlayFadeOut 0.3s ease forwards;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open.is-menu-closing .wp-block-navigation__responsive-dialog {
		animation: panelSlideOut 0.3s ease forwards;
	}

	@keyframes overlayFadeOut {
		from { opacity: 1; }
		to { opacity: 0; }
	}

	@keyframes panelSlideOut {
		from { transform: translateX(0); }
		to { transform: translateX(100%); }
	}

	/* 管理バー表示時: オーバーレイを管理バーの下に配置 */
	.admin-bar .gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open {
		top: var(--wp-admin--admin-bar--height, 32px) !important;
	}

	/* ===== ハンバーガー → × アニメーション ===== */

	/* デフォルトの閉じるボタンを視覚的に非表示（JS経由のclick用に残す） */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: absolute !important;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
		margin: 0 !important;
		padding: 0;
	}

	/* ハンバーガーボタン: 元のアイコンを残しつつ、擬似要素で×を準備 */
	.gfa-sub-nav .wp-block-navigation__responsive-container-open {
		position: relative;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container-open::before,
	.gfa-sub-nav .wp-block-navigation__responsive-container-open::after {
		content: "";
		position: absolute;
		left: 50%;
		top: 50%;
		width: 22px;
		height: 2px;
		background: currentColor;
		opacity: 0;
		transition: opacity 0.25s ease, transform 0.25s ease;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container-open::before {
		transform: translateX(-50%) translateY(-50%) rotate(45deg);
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container-open::after {
		transform: translateX(-50%) translateY(-50%) rotate(-45deg);
	}

	/* メニュー開時: ハンバーガーをオーバーレイの上に表示 + テキストアイコン(≡)を消す */
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open {
		z-index: 100001;
		font-size: 0;
		color: inherit;
	}

	/* メニュー開時: 元のアイコンを消す */
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open svg,
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open .wp-block-navigation__responsive-container-open__icon {
		opacity: 0;
		transition: opacity 0.25s ease;
	}

	/* メニュー開時: ×の擬似要素を表示 */
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open::before,
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open::after {
		opacity: 1;
		font-size: 16px; /* font-size:0の影響を受けないよう */
	}

	/* 閉じアニメーション中: ×をフェードアウト */
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open.is-icon-closing::before,
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open.is-icon-closing::after {
		opacity: 0;
	}

	/* 閉じアニメーション中: ハンバーガーアイコンを復帰 */
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open.is-icon-closing svg,
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open.is-icon-closing .wp-block-navigation__responsive-container-open__icon {
		opacity: 1;
	}

	/* 閉じアニメーション中: font-sizeを元に戻す */
	html.has-modal-open .gfa-sub-nav .wp-block-navigation__responsive-container-open.is-icon-closing {
		font-size: inherit;
	}

	/* コンテンツエリア: 閉じるボタン分の余白 + カード上の余白を確保 */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding: 4.5em 1.3em 2.5em !important;
	}

	/* ===== メニューレイアウト ===== */

	/* ul: CSS Grid 2列 */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 0.5em !important;
		width: 100%;
	}

	/* ===== 通常メニューセクション ===== */

	/* 通常項目: 2列を跨いでフル幅 */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.overlay-only) {
		grid-column: 1 / -1;
		padding: 0;
		border-bottom: none;
	}

	/* カードグリッドとの区切り線 */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .overlay-only + .wp-block-navigation-item:not(.overlay-only) {
		margin-top: 1.2em;
		padding-top: 1.2em;
		border-top: 1px solid #eee;
	}

	/* 親メニュー項目のリンク（セクション見出し） */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.overlay-only) > .wp-block-navigation-item__content {
		align-items: flex-start !important;
		font-size: 0.78em;
		font-weight: 700;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: #888;
		padding: 0;
		background: none;
		border-radius: 0;
		margin-bottom: 0.4em;
	}

	/* 子メニュー: "- " 廃止、クリーンなリストに */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item::before {
		content: none !important;
	}

	/* 子メニュー項目 */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
		font-size: 0.9em;
		font-weight: 400;
		color: #333;
		padding: 0.4em 0;
		border-bottom: 1px solid #f5f5f5;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item:last-child {
		border-bottom: none;
	}

	/* 子メニューリンク */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.15em 0;
	}

	/* 子メニューコンテナ */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		padding-left: 0;
		margin-top: 0;
	}

	/* 通常メニュー項目間のスペース */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.overlay-only) + .wp-block-navigation-item:not(.overlay-only) {
		margin-top: 1.2em;
		padding-top: 1.2em;
		border-top: 1px solid #eee;
	}

	/* グラウンド申請: ハンバーガー内で通常メニュー項目として表示 */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container .overlay-ground {
		display: flex !important;
		grid-column: 1 / -1;
		margin-top: 1.2em;
		padding-top: 1.2em;
		border-top: 1px solid #eee;
	}
}

/* グラウンド申請: デコレーター位置調整 */
.ground-shinsei {
	margin: 0 auto;
}

/* グラウンドボタン: タブレット以下は通常ボタン、PC以上はまん丸 */
@media (min-width: 1200px) {
	.ground-btn {
		aspect-ratio: 1 / 1;
	}
}

@media (min-width: 1025px) and (max-width: 1199px) {
	.ground-shinsei {
		bottom: 0;
		padding-left: 0;
	}

	.ground-btn .wp-block-button__link {
		aspect-ratio: auto;
		border-radius: 0 !important;
	}
}

/* 1024px以下: メインナビ非表示 + overlay-onlyカード表示 */
@media (max-width: 1024px) {
	.gfa-main-nav,
	.ground-shinsei {
		display: none !important;
	}

	/* overlay-onlyカード項目の表示 */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container .overlay-only {
		display: flex !important;
		background: #f7f7f8 !important;
		border: none;
		border-radius: 8px;
		padding: 0.75em 0.85em;
		font-weight: 600;
		font-size: 0.88em;
		box-sizing: border-box;
		transition: background 0.12s;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container .overlay-only:active {
		background: #ededef !important;
	}

	/* カード内リンク */
	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .overlay-only .wp-block-navigation-item__content {
		align-items: center !important;
		width: 100%;
		gap: 0.1em;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .overlay-only .wp-block-navigation-item__label {
		font-size: 0.92em;
		letter-spacing: 0.01em;
		color: #1a1a1a;
	}

	.gfa-sub-nav .wp-block-navigation__responsive-container.is-menu-open .overlay-only .wp-block-navigation-item__description {
		font-size: 10px;
		color: #999;
		font-weight: 400;
	}
}

/* 投稿タイプごとの色を変数にセット */
.type-type1     { --post-type-color: #307FAA; }
.type-type2     { --post-type-color: #07448C; }
.type-type3     { --post-type-color: #4654A3; }
.type-type4     { --post-type-color: #1D8691; }
.type-senior    { --post-type-color: #937B54; }
.type-women     { --post-type-color: #A03838; }
.type-futsal    { --post-type-color: #715093; }
.type-kids      { --post-type-color: #DD8E2F; }
.type-technical { --post-type-color: #1E6042; }
.type-referee   { --post-type-color: #778187; }
.type-post      { --post-type-color: #1E1B4B; }
.type-post.info_tag-jfa { --post-type-color: #042567; }

/* 投稿タイプラベル */
.all-post-types .wp-block-query-title,
.colored-post-type-label .wp-block-query-title { display: inline-block; }
.all-post-types .wp-block-post .unitone-flex { align-items: center !important; }
.all-post-types .wp-block-query-title,
.colored-post-type-label .wp-block-query-title { background-color: var(--post-type-color); color: #fff; }

/* 試合結果カード（フロントページ クエリループ） */
.match-result-heading { background-color: var(--post-type-color); color: #fff; }
.match-result-accent  { border: solid 2px var(--post-type-color); }

/* カードサムネイル: 投稿タイプ別・info_tag別の背景画像 */
.card-thumbnail {
	background-size: cover;
	background-position: center;
}

/* 講習会（投稿タイプで背景が変わる） */
.type-technical .card-thumbnail,
.type-kids .card-thumbnail      { background-image: url('../images/card-thumbnails/coach.webp'); }
.type-referee .card-thumbnail   { background-image: url('../images/card-thumbnails/referee.webp'); }

/* coach.webp（サッカーコート）はコート全体を必ず表示。
   周りの余白（ベンチ的スペース）は背景色で埋める */
.type-technical .card-thumbnail,
.type-kids .card-thumbnail {
	background-size: 65% auto;
	background-position: center;
	background-repeat: no-repeat;
	background-color: #292927;
}

/* 試合結果・参加者募集（info_tag テーマで背景が決まる・投稿タイプ不問） */
/* 横幅基準で表示し、左右が切れないようにする（高さは比率で自動） */
.info_tag-result .card-thumbnail,
.info_tag-entry .card-thumbnail {
	background-size: 100% auto;
	background-position: center top;
	background-repeat: no-repeat;
}
.info_tag-result .card-thumbnail { background-image: url('../images/card-thumbnails/result.webp'); }
.info_tag-entry .card-thumbnail  { background-image: url('../images/card-thumbnails/event.webp'); }

/* PC では背景エリアの高さを揃える（スマホは縦並びのため不要） */
@media (min-width: 601px) {
	.info_tag-result .card-thumbnail {
		min-height: 128px;
	}
	.info_tag-entry .card-thumbnail {
		min-height: 173px;
	}
}

/* タイトルリンクのホバー */
.title-link {
	transition: color 0.15s ease;
}
.title-link:hover {
	color: #2c4b82;
}

/* カードホバー: 全体リンクのカードを持ち上げ＋影で「押せる」感を出す。
   クエリループに card-hover クラスを付けて使う。
   li.wp-block-post はグリッドで行高さまで伸びるため、影は実コンテンツ分の
   高さしか持たない直下のカード箱（decorator）に当てる */
.card-hover .wp-block-post > div {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card-hover .wp-block-post:hover > div {
	transform: translateY(-4px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

/* サイトロゴのホバー: わずかに透明化（ロゴ画像のサイズには触れない） */
.custom-logo-link {
	transition: opacity 0.15s ease;
}
.custom-logo-link:hover {
	opacity: 0.7;
}

/* 汎用ホバーエフェクト: 画像やリンク要素に付けるとホバーで透明化する */
.hover-fade {
	transition: opacity 0.15s ease;
}
.hover-fade:hover {
	opacity: 0.7;
}

/* INFORMATION 見出し: フォントの上下余白を詰める */
.information-heading {
	line-height: 0.68;
}

/* ===== 年間計画イベント一覧 =====
 * PC（601px〜）: テーブル風 Grid
 * スマホ（〜600px）: カード型レイアウト
 */
.annual-plan-content {
	padding-left: 15px;
	padding-right: 15px;
}

.annual-plan-latest__link {
	margin-top: 20px;
	text-align: center;
}

.annual-plan-title {
	font-size: 18px;
	color: #fff;
	background: #1D1B49;
	min-height: 37px;
	padding: 0 16px;
	margin: 7px 0 0;
	display: flex;
	align-items: center;
	position: relative;
}

/* バーの上に「線2px → 隙間5px → バー本体」を作る */
.annual-plan-title::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -7px;
	height: 2px;
	background: #1D1B49;
}

.annual-plan-section {
	margin-top: 2.5em;
}

.annual-plan-section:first-child {
	margin-top: 0;
}

.annual-plan-section__title {
	font-size: 1em;
	font-weight: 700;
	margin-bottom: 0;
	padding-bottom: 0.4em;
	border-bottom: 2px solid #1D1B49;
	display: flex;
	align-items: center;
	gap: 0.3em;
}

.annual-plan-section__title::before {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #074389;
	flex-shrink: 0;
}

/* セクション全体を包む2層 */
.annual-plan-frame {
	background: #F5F4F4;
	padding: 40px;
}

.annual-plan-frame__inner {
	background: #fff;
	padding: 19px;
}

.annual-plan-list {
	background: #fff;
	border-top: 1px solid #000;
	border-bottom: 1px solid #000;
}

/* PC では .annual-plan-files は無いものとして扱う（中の cell が直接 grid 子になる） */
.annual-plan-files {
	display: contents;
}

/* PC: .annual-plan-organization はテーブルの一セルとして扱う */
.annual-plan-organization {
	padding: 0 0.6em;
	min-height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-left: 1px solid #000;
}

/* 行: 列構成は data-cols 属性で出し分け */
.annual-plan-list[data-cols="3"] .annual-plan-row { grid-template-columns: 40px 1fr 100px 100px; }
.annual-plan-list[data-cols="4"] .annual-plan-row { grid-template-columns: 40px 1fr 100px 100px 100px; }
.annual-plan-list[data-cols="5"] .annual-plan-row { grid-template-columns: 40px 1fr 100px 100px 100px 140px; }

.annual-plan-row {
	display: grid;
}

.annual-plan-row + .annual-plan-row {
	border-top: 1px solid #000;
}

.annual-plan-row--head {
	background: #707070;
	color: #fff;
	font-size: 0.85em;
	font-weight: 700;
}

/* セル基本 */
.annual-plan-cell {
	padding: 0 0.6em;
	min-height: 50px;
	display: flex;
	align-items: center;
	min-width: 0;
	border-left: 1px solid #000;
}

/* 表の左端（No.セル）と大会名は左ボーダーなし */
.annual-plan-cell.col-no,
.annual-plan-cell.col-name {
	border-left: none;
}

/* No.セル（データ行）は紺色テキスト */
.annual-plan-cell.col-no {
	justify-content: center;
	color: #1D1B49;
	font-size: 0.9em;
}

/* データ行の大会名は紺色 */
.annual-plan-row:not(.annual-plan-row--head) .annual-plan-cell.col-name {
	color: #1D1B49;
}

/* 大会名以外のカラム（ファイルリンク等）は中央揃え */
.annual-plan-cell:not(.col-no):not(.col-name) {
	justify-content: center;
}

/* ヘッダー行: 全セル中央揃え + 高さ35px */
.annual-plan-row--head .annual-plan-cell {
	min-height: 35px;
	justify-content: center;
	color: inherit;
}

.annual-plan-file-link {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	font-size: 0.85em;
	color: #1d1b49;
	text-decoration: none;
	font-weight: 600;
}

.annual-plan-file-link:hover {
	text-decoration: underline;
}

.annual-plan-file-link__icon {
	width: 1.7em;
	height: 1.7em;
	flex-shrink: 0;
}

/* PCではラベル非表示、アイコンのみ */
.annual-plan-file-link__label {
	display: none;
}

/* 単一PDFセクション（年間カレンダー・組織・チーム一覧）: ラベルを必ず表示し、
   アイコン＋ラベルを横並びにする。各PDFを縦に並べる。 */
.annual-plan-pdf-links {
	display: flex;
	flex-direction: column;
	gap: 1.2em;
	align-items: flex-start;
}
.annual-plan-pdf-links .annual-plan-file-link {
	gap: 0.5em;
	font-size: 1.05em;
}
.annual-plan-pdf-links .annual-plan-file-link__label {
	display: inline;
	order: 1;
}
.annual-plan-pdf-links .annual-plan-file-link__icon {
	order: 0;
	width: 2em;
	height: 2em;
}

/* スマホ（600px以下）: カード型レイアウト
   .annual-plan-row(grid 2x2): col-no(左縦長) / col-name(右上) / .annual-plan-files(右下flex) */
@media (max-width: 600px) {
	.annual-plan-section__title {
		margin-bottom: 12px;
	}

	/* 外枠のグレー枠と内パディングは不要（フル幅） */
	.annual-plan-frame,
	.annual-plan-frame__inner {
		padding: 0;
		background: transparent;
	}

	/* リスト全体: カード積み重ね */
	.annual-plan-list {
		border: none;
		background: transparent;
		display: flex;
		flex-direction: column;
		gap: 12px;
	}

	.annual-plan-list[data-cols] .annual-plan-row.annual-plan-row--head {
		display: none;
	}

	/* 各行: 2列(22px / 1fr) のGrid。行数は中身に応じて自動 */
	.annual-plan-list .annual-plan-row,
	.annual-plan-list[data-cols="3"] .annual-plan-row,
	.annual-plan-list[data-cols="4"] .annual-plan-row,
	.annual-plan-list[data-cols="5"] .annual-plan-row {
		display: grid;
		grid-template-columns: 22px 1fr;
		background: #F5F4F4;
		gap: 0;
		padding: 0;
		border: none;
		min-height: 100px;
	}

	.annual-plan-list .annual-plan-row + .annual-plan-row {
		border-top: none;
	}

	/* セル基本リセット */
	.annual-plan-cell {
		padding: 0;
		min-height: 0;
		border: none;
	}

	/* 左の縦長 No. セル: span 99 で何段あっても全高に伸びる */
	.annual-plan-cell.col-no {
		grid-column: 1;
		grid-row: 1 / span 99;
		background: #707070;
		color: #fff;
		font-weight: 600;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	/* 大会名: 右上 */
	.annual-plan-cell.col-name {
		grid-column: 2;
		grid-row: 1;
		font-weight: 700;
		font-size: 0.95em;
		color: #1D1B49;
		padding: 12px;
		justify-content: flex-start;
	}

	/* ファイル群: 右下、flexで横並び（中央揃え）。
	   border-topは内側に余白を持たせるため、margin で左右をインデントする */
	.annual-plan-files {
		display: flex;
		flex-wrap: wrap;
		grid-column: 2;
		grid-row: 2;
		gap: 8px 16px;
		padding: 8px 0 12px;
		align-items: center;
		justify-content: center;
		border-top: 1px solid #B9B9B9;
		margin: 0 12px;
	}

	.annual-plan-files .annual-plan-cell {
		display: inline-flex;
		align-items: center;
		gap: 0.3em;
		font-size: 0.9em;
	}

	/* スマホではファイルリンク内のラベルを表示する。
	   data-label の ::before は使わない（リンク内の __label と二重表示になるため） */
	.annual-plan-file-link__label {
		display: inline;
		color: #000;
		font-weight: 400;
		font-size: 13px;
		margin-right: 0.4em;
	}

	/* スマホでは値が空の主催団体セルは非表示（カードが3段になるのを防ぐ） */
	.annual-plan-organization.is-empty {
		display: none;
	}

	/* 主催団体 (3段目): 全幅 + 上ボーダー（左右にmargin、内部paddingなし） */
	.annual-plan-organization {
		grid-column: 2;
		grid-row: 3;
		padding: 8px 0 12px;
		margin: 0 12px;
		border-top: 1px solid #B9B9B9;
		border-left: none;
		color: #000;
		font-size: 13px;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.4em;
		min-height: 0;
	}

	.annual-plan-organization::before {
		content: attr(data-label);
		color: #000;
		font-size: 13px;
	}
}

/* info-menu: スマホ時の左右余白と gap 調整 */
@media (max-width: 600px) {
	.info-menu {
		padding-left: 5px;
		padding-right: 5px;
		gap: 5px !important;
	}

	.info-inner {
		padding: 0 !important;
		overflow: hidden;
	}
}

/* ===== ファイルブロック: 種別アイコン =====
 * core/file ブロックに付与された is-file-{type} クラスに応じて
 * ファイル名リンクの後ろにアイコンを表示する。
 * クラス付与は PHP の render_block（フロント） + JS（エディタ編集中）で行う。
 *
 * type の種類: pdf / word / excel / image / other
 *
 * フロントとエディタでHTML構造が違う:
 *   - フロント: .wp-block-file > a
 *   - エディタ: .wp-block-file > .wp-block-file__content-wrapper > a
 */
.wp-block-file[class*="is-file-"] > a:not(.wp-block-file__button),
.wp-block-file[class*="is-file-"] > .wp-block-file__content-wrapper > a:not(.wp-block-file__button) {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-size: 16px;
}

.wp-block-file[class*="is-file-"] > a:not(.wp-block-file__button)::after,
.wp-block-file[class*="is-file-"] > .wp-block-file__content-wrapper > a:not(.wp-block-file__button)::after {
	content: "";
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	flex-shrink: 0;
	vertical-align: middle;
}

.wp-block-file.is-file-pdf > a:not(.wp-block-file__button)::after,
.wp-block-file.is-file-pdf > .wp-block-file__content-wrapper > a:not(.wp-block-file__button)::after {
	background-image: url('../images/file-icons/pdf_icon.png');
}
.wp-block-file.is-file-word > a:not(.wp-block-file__button)::after,
.wp-block-file.is-file-word > .wp-block-file__content-wrapper > a:not(.wp-block-file__button)::after {
	background-image: url('../images/file-icons/word_icon.png');
}
.wp-block-file.is-file-excel > a:not(.wp-block-file__button)::after,
.wp-block-file.is-file-excel > .wp-block-file__content-wrapper > a:not(.wp-block-file__button)::after {
	background-image: url('../images/file-icons/excel_icon.png');
}
.wp-block-file.is-file-image > a:not(.wp-block-file__button)::after,
.wp-block-file.is-file-image > .wp-block-file__content-wrapper > a:not(.wp-block-file__button)::after {
	background-image: url('../images/file-icons/image_icon.png');
}
.wp-block-file.is-file-other > a:not(.wp-block-file__button)::after,
.wp-block-file.is-file-other > .wp-block-file__content-wrapper > a:not(.wp-block-file__button)::after {
	background-image: url('../images/file-icons/file_icon.png');
}
