/*--------------------------------------------------------------
# 汎用
--------------------------------------------------------------*/
.page h4 {
	margin-bottom: .5rem;
}

[class*=text_icon_] {
	display: flex;
	align-items: center;
	gap: .5rem;
}

[class*=text_icon_]::before {
	position: relative;
	display: block;
	font-family: var(--fontawesome);
	font-size: 1.25em;
	font-weight: 700;
	color: var(--color-primary);
	width: 2rem;
	text-align: center;
	z-index: 0;
}

.text_icon_swim::before {
	content: '\f5c4';
	transform: scale(1.1);
}

.text_icon_bike::before {
	content: '\f84a';
	transform: scale(1.1);
}

.text_icon_run::before {
	content: '\f70c';
	transform: scale(1.2);
}

.text_icon_finish::before {
	content: '\f11e';
	transform: scale(1.2);
}

/*--------------------------------------------------------------
# フロントページ - 汎用
--------------------------------------------------------------*/
[class*=front_section] .btn_rounded {
	margin-top: 2rem;
}

@media screen and (min-width: 768px) {
	[class*=front_section] .btn_rounded {
		width: fit-content;
		min-width: 400px;
	}

	[class*=front_section] .btn_rounded > span {
		padding: 0 4rem;
	}
}

@media (min-width: 992px) {
	[class*=front_section] .btn_rounded {
		margin-top: 3rem;
	}
}

/*--------------------------------------------------------------
# フロントページ - メインビジュアル
--------------------------------------------------------------*/
#main-visual {
	position: relative;
	width: 100%;
	height: calc(100vh - var(--header-height));
	padding: 0 1rem 1rem 1rem;
}

#main-visual .container {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	max-width: 100%;
	height: 100%;
}

#splide__main-visual {
	width: 67%;
	height: 100%;
	margin-left: auto;
}

#main-visual .splide__track,
#main-visual .splide__slide__img {
	width: 100%;
	height: 100%;
}

#main-visual .splide__track {
	padding: 0;
}

#main-visual .splide__slide__img {
	overflow: hidden;
}

#main-visual .splide__slide__img > img {
	display: block;
	object-fit: cover;
	width: 100%;
	height: 100%;
}

#main-visual .img_wrapper_cover {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 1;
}

#main-visual .img_wrapper_contain.blur.delay {
	transition: opacity .4s 1.2s, transform .4s 1.2s, filter .4s 1.2s;
}

#main-visual .splide_outer {
	width: 100%;
	height: 100%;
}

.main-visual_content {
	position: absolute;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background: #fff;
	left: 0;
	top: 0;
	width: 45%;
	height: 100%;
	clip-path: polygon(0 0, 75% 0, 100% 100%, 0% 100%);
}

.main-visual_content_inner {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: calc(85% + 1rem);
	margin-bottom: auto;
	padding-right: 12.5%;
}

.main-visual_logo {
	aspect-ratio: 333 / 550;
	width: auto;
	height: 90%;
	margin: auto;
}

.main-visual_logo > img {
	display: block;
	object-fit: contain;
	width: 100%;
	height: 100%;
}

/* カウントダウン */
.main-visual_countdown {
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-primary);
	background: var(--gradient-primary-vertical);
	color: #fff;
	width: 50%;
	height: 15%;
	left: -100%;
	bottom: 0;
	clip-path: polygon(0 0, 95% 0, 100% 100%, 0% 100%);
	text-align: center;
	transition: left .5s ease-in-out 1.2s, opacity .5s ease-in-out 1.2s;
	z-index: 3;
}

.main-visual_countdown p {
	font-family: var(--font-accent);
	font-size: min(1.75vw, 2rem);
	font-weight: 500;
}

.main-visual_countdown p > span {
	display: inline-block;
	font-size: 1.75em;
	font-weight: 700;
	padding: 0 .25rem;
}

@media screen and (max-width: 991px) {
	#main-visual {
		aspect-ratio: 8 / 5;
		height: auto;
	}

	#splide__main-visual {
		width: 63%;
	}

	.main-visual_content {
		width: 50%;
	}

	.main-visual_countdown {
		width: 55%;
	}

	.main-visual_countdown p {
		font-size: 3.25vw;
	}

	.main-visual_countdown .countdown__days {
		font-size: 1.5em;
	}
}

/*--------------------------------------------------------------
# フロントページ - 新着情報
--------------------------------------------------------------*/
#news,
#sns-timeline {
	padding-top: var(--section-padding);
}

#supporter {
	background: var(--color-background-sub);
	margin-top: var(--section-padding);
	padding: var(--section-padding) 0;
}

#news.front_section .container {
	width: var(--container-width-narrow);
	max-width: var(--container-max-width-narrow);
}

#news.front_section .btn_rounded {
	margin-right: auto;
	margin-left: auto;
}

@media screen and (max-width: 767px) {
	.home .post-entry {
		margin-bottom: .75rem;
		padding-bottom: .75rem;
	}

	#news,
	#sns-timeline {
		padding-top: calc(var(--section-padding) * .75);
	}

	#news .page_card_wrapper {
		background: var(--gradient-primary-vertical);
		padding: 1.5rem 1rem 1rem;
	}

	#news h2.front_h2 {
		color: #fff;
		margin-bottom: 1.5rem;
	}

	#news .front_h2 .title_en {
		font-size: 2rem;
	}

	#news .btn_rounded.outer_button {
		display: none;
	}

	#supporter {
		margin-top: calc(var(--section-padding) * .75);
		padding: calc(var(--section-padding) * .75) 0;
	}
	
	.inner_button {
		display: flex;
		justify-content: flex-end;
		align-items: center;
		gap: .5rem;
		font-weight: 700;
		color: var(--color-text-primary)
	}

	.inner_button::after {
		content: '\f138';
		font-family: var(--fontawesome);
		font-size: 1.25rem;
		font-weight: 700;
		color: var(--color-secondary);
	}
}

@media (min-width: 768px) {
	#news .inner_button {
		display: none;
	} 
}

/*--------------------------------------------------------------
# フロントページ - 大会の魅力
--------------------------------------------------------------*/
/* 共通
--------------------------------------------- */
[class*=fascinate_section] {
	position: relative;
	padding: calc(var(--section-padding) / 2) 0;
}

[class*=fascinate_section]:has(.mask_section) {
	padding: 0;
}

.mask_section {
	position: relative;
	width: 100%;
	height: 100%;
	padding: var(--section-padding) 0;
	overflow: hidden;
}

.front_section_has_bg {
	background: var(--color-background-sub);
}

.front_section_has_bg .mask_section::after {
	content: '';
	position: absolute;
	display: block;
	background: url(../img/asset/texture.webp) center center / 50% repeat;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	mix-blend-mode: overlay;
	opacity: .2;
	z-index: 4;
}

.mask_section > [class*=img_wrapper] {
	z-index: 1;
}

.mask_section .container {
	position: relative;
	z-index: 5;
}

[class*=front_section] .grid_wrapper {
	display: grid;
	row-gap: 2.5rem;
}

#fascinate .btn_rounded {
	font-size: 1rem;
}

#fascinate .btn_rounded span {
	font-size: 1rem;
	letter-spacing: .2em;
}

@media (min-width: 992px) {
	[class*=front_section] .grid_wrapper {
		grid-template-columns: repeat(2, 1fr);
	}
}

h2.fascinate_h2 {
	font-family: var(--font-accent);
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-primary);
	text-shadow: var(--shadow-primary);
	line-height: 2em;
	margin-bottom: 1.5rem;
}

#fascinate_video h2.fascinate_h2 {
	color: var(--color-text-primary);
	/* margin-bottom: 0; */
}

#fascinate_video h2.fascinate_h2 span span {
	color: var(--color-secondary);
}

.front_section_has_bg h2.fascinate_h2 {
	color: var(--color-text-primary);
	text-shadow: var(--shadow-secondary);
}

.front_section_has_bg .fascinate_parag {
	text-shadow: var(--shadow-secondary);
}

@media screen and (max-width: 767px) {
	#fascinate_video h2.fascinate_h2 {
		font-size: min(3.8vw, 1.25rem);
	}	
}

@media screen and (min-width: 768px) {
	h2.fascinate_h2 {
		font-size: 1.5rem;
	}
}

@media (min-width: 992px) {
	h2.fascinate_h2 {
		font-size: 2rem;
		margin-bottom: 2rem;
	}
}

.fascinate_parag {
	font-size: 1rem;
	font-weight: 700;
	line-height: 2em;
}

#fascinate .img_wrapper_contain img {
	filter: drop-shadow(var(--shadow-primary));
}

/* 動画
--------------------------------------------- */
#fascinate_video {
	padding-bottom: 0;
}

#fascinate_video h2.fascinate_h2 {
	text-align: center;
}

#fascinate_video .container {
	width: var(--container-width);
	max-width: var(--container-max-width);
}

.modal_wrapper {
	max-width: 720px;
	margin: 2rem auto 0;
	padding: 0;
	border: none;
	border-radius: 0;
}

.modal_btn .img_wrapper_cover {
	position: relative;
}

.modal_btn .img_wrapper_cover::before {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	background: var(--gradient-primary-vertical);
	top: 0;
	left: 0;
	opacity: .5;
	z-index: 2;
}

.modal_btn .note_playvideo {
	position: absolute;
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 1rem;
	font-weight: 500;
	color: var(--color-background);
	top: 50%;
	left: 50%;
	border: 2px solid;
	border-radius: 2rem;
	padding: .5em 1em;
	transform: translate(-50%, -50%);
	z-index: 3;
}

.modal_btn .img_wrapper_cover .note_playvideo::after {
	content: '\f144';
	font-family: var(--fontawesome-sharp);
	font-size: 1.25em;
	font-weight: 700;
}

.video_full {
	display: block;
	width: 100%;
	height: auto;
}

.modaal-close:focus:before, .modaal-close:focus:after,
.modaal-close:hover:before, .modaal-close:hover:after {
	background: var(--color-primary);
}

.modal_btn .img_wrapper_cover > img {
	transition: transform .3s;
}

.modal_btn:hover .img_wrapper_cover > img {
	transform: scale(1.1);
}

@media screen and (min-width: 768px) {
	.modal_btn .note_playvideo {
		font-size: min(2vw, 1.5rem);
	}
}

@media (min-width: 992px) {
	#fascinate_video {
		text-align: center;
	}

	.modal_wrapper {
		margin-top: 3.5rem;
	}
}

/* 2カラム
--------------------------------------------- */
#fascinate_2column .flex_wrapper {
	row-gap: 3rem;
}

#fascinate_2column .img_photo {
	padding: .25rem;
}

#fascinate_duathlon,
#fascinate_family {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

#fascinate_duathlon .photo_wrapper {
	position: relative;
	max-width: 640px;
}

#fascinate_duathlon .img_photo:first-child {
	position: absolute;
	width: 60%;
	top: 50%;
	left: 0;
	transform: translateY(-40%) rotate(-3deg);
	z-index: 2;
}

#fascinate_duathlon .img_photo:nth-child(2) {
	position: relative;
	width: 45%;
	margin-left: auto;
	transform: rotate(3deg);
	z-index: 1;
}

#fascinate_family .img_photo {
	width: 75%;
	max-width: 480px;
	margin-left: auto;
	transform: rotate(3deg);
}

@media (min-width: 992px) {
	#fascinate_2column .flex_wrapper {
		column-gap: 4rem;
		align-items: center;
	}

	#fascinate_2column h2.fascinate_h2 {
		font-size: 1.5rem;
	}

	#fascinate_duathlon h2.fascinate_h2 {
		text-align: right;
	}

	#fascinate_duathlon .photo_wrapper {
		max-width: 480px;
	}

	#fascinate_family .img_photo {
		max-width: 320px;
	}
}

#appeal .flex_wrapper {
	display: grid;
}

@media (min-width: 768px) {
	#appeal .flex_wrapper {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 992px) {
	#appeal .flex_wrapper {
		grid-template-columns: repeat(3, 1fr);
	}
}

#appeal h3.page_content_h3 {
	display: flex;
	align-items: center;
	gap: .25rem;
}

#appeal h3.page_content_h3 .num {
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.25rem;
	line-height: 1em;
	width: 1.5em;
	height: 1.5em;
	padding: 0;
	border: 2px solid;
	border-radius: 50%;
}

#appeal h3.page_content_h3 .text_strong {
	flex: auto;
}

/* 優先出走権
--------------------------------------------- */
/* 背景写真調整 */
#fascinate_qualify .img_photo {
	position: absolute;
	width: 95%;
	right: -10%;
	top: -2rem;
}

#fascinate_qualify .img_photo > img {
	opacity: .5;
}

@media screen and (min-width: 768px) {
	#fascinate_qualify .img_photo {
		width: 85%;
		top: -3rem;
	}
}

@media (min-width: 992px) {
	#fascinate_qualify .img_photo {
		width: 75%;
		top: -4rem;
	}
}

@media screen and (min-width: 1200px) {
	#fascinate_qualify .img_photo {
		width: 70%;
		top: -6rem;
	}
}

/* WORLDロゴ調整 */
#fascinate_qualify #logo_world {
	position: absolute;
	aspect-ratio: 1 / 1;
	top: calc(var(--section-padding) * .75);
	left: 5%;
	width: 45vw;
	z-index: 4;
}

#fascinate_qualify #logo_world > img {
	object-position: left center;
}

#fascinate_qualify .mask_section {
	padding-top: calc(var(--section-padding) + 45vw);
}

@media screen and (min-width: 768px) {
	#fascinate_qualify #logo_world {
		top: calc(var(--section-padding) * .5);
		width: 40vw;
	}

	#fascinate_qualify .mask_section {
		padding-top: calc(var(--section-padding) + 40vw);
	}
}

@media (min-width: 992px) {
	#fascinate_qualify .mask_section {
		padding-top: var(--section-padding);
	}

	#fascinate_qualify #logo_world {
		top: initial;
		right: 10%;
		bottom: calc((35vw * .1) * -1);
		left: initial;
		width: 35vw;
		max-width: calc(var(--container-max-width) * .4);
	}
	
	#fascinate_qualify #logo_world > img {
		object-position: right center;
	}
}

@media screen and (min-width: 1200px) {
	#fascinate_qualify .mask_section {
		padding-bottom: calc(var(--section-padding) + (min(40vw, var(--container-max-width)) * .25));
	}
}

/* Wチャンス
--------------------------------------------- */
#fascinate_chances .img_wrapper_contain {
	width: 100%;
	max-width: 540px;
	margin-top: calc((var(--section-padding) * 1.25)* -1);
}

@media (min-width: 992px) {
	#fascinate_chances .grid_wrapper > * {
		position: relative;
	}

	#fascinate_chances .img_wrapper_contain {
		position: absolute;
		width: calc(100% - 2.5rem);
		max-width: 100%;
		height: calc(100% + var(--section-padding));
		top: 50%;
		left: 0;
		margin: 0;
		transform: translateY(-50%);
	}
}

/* reward
--------------------------------------------- */
/* 背景写真調整 */
#fascinate_reward .img_photo {
	position: absolute;
}

#fascinate_reward .img_photo > img {
	opacity: .4;
}

#fascinate_reward .img_photo:first-child {
	width: 100%;
	right: -5%;
	top: 50%;
	transform: translateY(-95%) rotate(-3deg);
	z-index: 2;
}

#fascinate_reward .img_photo:nth-child(2) {
	width: 95%;
	left: -10%;
	bottom: 50%;
	transform: translateY(97%) rotate(2deg);
	z-index: 1;
}

@media screen and (min-width: 580px) {
	#fascinate_reward .img_photo:first-child {
		width: 70%;
		right: -10%;
		top: -20%;
		transform: rotate(-3deg);
	}
	
	#fascinate_reward .img_photo:nth-child(2) {
		width: 70%;
		left: -10%;
		bottom: -20%;
		transform: rotate(2deg);
	}
}

@media (min-width: 992px) {
	#fascinate_reward .img_photo > img {
		opacity: .5;
	}

	#fascinate_reward .img_photo:first-child {
		width: 50%;
		left: 50%;
		top: -8%;
		transform: translateX(-20%);
	}
	
	#fascinate_reward .img_photo:nth-child(2) {
		width: 50%;
		right: -5%;
		bottom: -8%;
		left: initial;
		transform: initial;
	}
}

@media screen and (min-width: 1200px) {
	#fascinate_reward .img_photo:first-child {
		width: 40%;
		max-width: 580px;
		left: 50%;
		top: -10%;
		transform: translateX(-20%);
	}
	
	#fascinate_reward .img_photo:nth-child(2) {
		width: 40%;
		max-width: 580px;
		left: 50%;
		bottom: -10%;
		transform: translateX(40%);
	}
}

/* トップアスリート
--------------------------------------------- */
#fascinate_top-athlete .grid_wrapper {
	row-gap: 1.5rem;
}

#fascinate_top-athlete .img_wrapper_contain {
	position: relative;
	width: 90%;
	max-width: 400px;
	margin-top: calc((var(--section-padding) * 1.5)* -1);
	margin-left: auto;
	z-index: 5;
}

#fascinate_top-athlete .img_outer {
	position: relative;
	z-index: 5;
}

@media (min-width: 992px) {
	#fascinate_top-athlete .grid_wrapper > * {
		position: relative;
	}

	#fascinate_top-athlete .img_wrapper_contain {
		position: absolute;
		width: calc(100% - 2.5rem);
		max-width: 100%;
		margin: 0;
		top: 50%;
		left: 0;
		transform: translateY(-50%);
	}

	#fascinate_top-athlete .img_wrapper_contain > img {
		object-position: left center;
	}
}

/*--------------------------------------------------------------
# フロントページ - メディカルからのお知らせ
--------------------------------------------------------------*/
#medical-information .container {
	width: var(--container-width-narrow);
	max-width: var(--container-max-width-narrow);
}

#medical-information h2.front_h2 {
	color: var(--color-text-primary);
	margin-bottom: 2.5rem;
	text-shadow: var(--shadow-secondary);
}

#medical-information h2.front_h2 .title_en {
	font-size: 1.5rem;
}

#medical-information .mask_section::before {
	content: '';
	position: absolute;
	display: block;
	background: var(--gradient-primary-vertical);
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	opacity: .2;
	z-index: 3;
}

#medical-information .img_wrapper_cover {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	opacity: .5;
}

#medical-information .btn_card_wrapper {
	gap: 1.5rem;
}

#medical-information .btn_card_inner {
	display: flex;
	align-items: center;
}

#medical-information .btn_card_title {
	font-size: 1rem;
}

@media screen and (min-width: 768px) {
	#medical-information h2.front_h2 {
		margin-bottom: 4.5rem;
	}

	#medical-information .btn_card_title {
		font-size: 1.25rem;
	}
}

/*--------------------------------------------------------------
# フロントページ - SNS
--------------------------------------------------------------*/
#sns-timeline .grid_wrapper {
	display: grid;
	gap: 1.5rem;
	justify-content: center;
}

#facebook_feed {
	margin-right: auto;
	margin-left: auto;
}

.timeline_wrapper > * {
	filter: drop-shadow(var(--shadow-primary));
}

#instafeed {
	padding: .5rem;
	background: var(--color-background);
	border-radius: 8px;
	box-shadow: var(--shadow-primary);
}

@media screen and (min-width: 768px) {
	#sns-timeline .grid_wrapper {
		grid-template-columns: repeat(3, 1fr);
	}
}

/*--------------------------------------------------------------
# フロントページ - パートナー
--------------------------------------------------------------*/
#supporter > .container {
	padding-top: 1.5rem;
}
#supporter h3.page_h3 {
	position: absolute;
	top: -1.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
}

#supporter h3.page_h3 > span {
	font-size: min(3.25vw, 20px);
	white-space: nowrap;
	padding: .25rem 1rem;
	filter: drop-shadow(var(--shadow-primary));
}

.list_partners_wrapper {
	position: relative;
	background: var(--color-background);
	padding: 4rem 0 3rem;
}

h4.partners_h4 {
	font-size: min(4.5vw, 20px);
	font-weight: 500;
	text-align: center;
	margin-bottom: 1.5rem;
}

.list_partners {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	list-style: none;
	width: 90%;
	margin-right: auto;
	margin-left: auto;
	padding: 0;
}

.list_partners:not(:last-child) {
	margin-bottom: 2rem;
}

.list_partners li {
	flex: 1;
	display: block;
	aspect-ratio: 2 / 1;
	width: 100%;
	height: auto;
}

.list_partners a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
}

.list_partners a > img {
	object-fit: contain;
	object-position: center center;
	width: 100%;
	height: 100%;
}

.list_partners.silver {
	/* width: 90%; */
	gap: 1.75rem;
}

.list_partners.bronze {
	/* width: 90%; */
	gap: 1rem;
}

.list_partners.supplier {
	/* width: 90%; */
	column-gap: 1.5rem;
	row-gap: 1rem;
}

.list_partners.yokohamakanazawa {
	/* width: 90%; */
}

.list_partners.main_sponsor li {
	width: 75%;
	max-width: 320px;
}

.list_partners.silver li {
	max-width: 260px;
}

.list_partners.bronze li {
	max-width: 200px;
}

.list_partners.bronze.bronze_top li {
	max-width: 240px;
}

.list_partners.supplier li {
	max-width: 160px;
}

.list_partners.yokohamakanazawa li {
	max-width: 120px;
}

@media screen and (max-width: 767px) {
	.list_partners.yokohamakanazawa {
		gap: .5rem;
	}
}

@media screen and (min-width: 768px) {
	.list_partners.main_sponsor {
		/* width: 50%; */
	}

	.list_partners.silver,
	.list_partners.bronze {
		/* width: 90%; */
		gap: 1.5rem;
	}

	.list_partners.bronze {
		/* width: 90%; */
		gap: 1.5rem;
	}

	.list_partners.supplier {
		/* width: 90%; */
		gap: 1.5rem;
	}

	.list_partners.yokohamakanazawa {
		column-gap: 1rem;
	}
}

@media (min-width: 992px) {
	.list_partners.main_sponsor {
		/* width: 25%; */
	}

	.list_partners.silver {
		/* width: 75%; */
		column-gap: 3.5rem;
	}

	.list_partners.bronze {
		/* width: 80%; */
		gap: 3rem;
	}

	.list_partners.supplier {
		/* width: 85%; */
		column-gap: 4rem;
		row-gap: 2.5rem;
	}

	.list_partners.yokohamakanazawa {
		/* width: 85%; */
		gap: 3rem;
	}

	h4.partners_h4 {
		font-size: min(4.5vw, 24px);
		padding-top: 2rem;
	}
}

/*--------------------------------------------------------------
# 大会概要 - /info
--------------------------------------------------------------*/
.page_2col_table_data li:not(:last-child),
.text_wrapper li:not(:last-child) {
	margin-bottom: .5em;
}

/* トライアスロンを愛するすべての皆様へ
--------------------------------------------- */
#message .page_parag {
	color: var(--color-primary);
	font-weight: 700;
	line-height: 2.5em;
}

/* 大会コンセプト
--------------------------------------------- */
#concept .grid_wrapper {
	align-items: center;
	gap: 2rem;
}

#concept .img_wrapper_contain {
	width: 400px;
}

/* 大会競技スケジュール
--------------------------------------------- */
@media screen and (max-width: 991px) {
	#race-schedule .grid_wrapper {
		gap: 2.5rem;
	}
}

/* 競技カテゴリー・参加料
--------------------------------------------- */
#race-category .sticky_wrapper > *:first-child {
	background: #ffffffe6;
}

#race-category .sticky_wrapper {
	margin-bottom: 2.5rem;
}

#race-category .page_table_scrollable .title:not(:last-child) {
	margin-bottom: .5rem;
}

#race-category .page_table_scrollable [class*=text_icon_]:nth-child(2) {
	margin-top: .5rem
}

#race-category .page_table_scrollable .list_annotation,
#race-category .page_table_scrollable .list_annotation li::marker {
	font-weight: 500;
	color: var(--color-danger);
}

#race-category .table_wrapper {
	margin-bottom: 4rem;
}

.num_people {
	font-weight: 700;
	color: var(--color-primary);
}

@media screen and (min-width: 768px) {
	#race-category .page_table_scrollable tr > td:not(:last-child) {
		text-align: center;
	}
}

/* 参加資格
--------------------------------------------- */
#qualification table ul:not(:last-child) {
	margin-bottom: .5rem;
}

#qualification .list_annotation li::marker {
	color: var(--color-danger);
}

#qualification .table_accordion {
	margin-bottom: 1rem;
}

#qualification .content_accordion {
	padding: .5rem 0;
}

#qualification .page_table_scrollable tbody th {
	vertical-align: top;
}

#qualification .page_table_scrollable tbody th,
#qualification .page_table_scrollable tbody td {
	padding: .5rem 1rem;
}

#qualification .page_table_scrollable {
	border-spacing: 0;
}

#qualification .content_accordion .page_table_scrollable tr {
	padding: 0 .5rem;
}

#qualification .content_accordion .page_table_scrollable tbody tr:not(:last-child) th,
#qualification .content_accordion .page_table_scrollable tbody tr:not(:last-child) td {
	border-bottom: 1px dotted #58CCFF;
}

/* 注意事項
--------------------------------------------- */
#notes .table_accordion,
#insurance .table_accordion,
#commission .table_accordion {
	background: transparent;
}

#notes .label_accordion,
#insurance .label_accordion,
#commission .label_accordion {
	background: var(--color-tertiary);
	border-radius: 4px;
	margin-bottom: 2rem;
}

#insurance .page_table_scrollable {
	font-weight: 500;
	margin: 0;
	background: var(--color-background-sub);
	border-spacing: 10px;
}

@media (min-width: 992px) {
	#notes .page_2col_table_header {
		min-width: 20rem;
	}
}

/* 大会保険
--------------------------------------------- */
@media screen and (min-width: 768px) {
	#insurance .page_table_scrollable tr > td {
		text-align: center;
	}
}

/* エントリー
--------------------------------------------- */
.btn_entry {
	margin-top: 3rem;
	margin-right: auto;
	margin-left: auto;
	letter-spacing: initial;
}

a.btn_entry.btn_disabled {
	font-size: 1rem;
	background: #bebebe;
	letter-spacing: initial;
	padding: 0 .75rem 0 .5rem;
	pointer-events: none;
}

a.btn_entry.btn_disabled span {
	letter-spacing: initial;
}

@media screen and (min-width: 768px) {
	.btn_entry {
		max-width: 480px;
	}
}

/*--------------------------------------------------------------
# スケジュール - /schedule
--------------------------------------------------------------*/
.main_schedule .table_wrapper {
	margin-bottom: 4rem;
}

/*--------------------------------------------------------------
# 文書系ページ
--------------------------------------------------------------*/
.page_section_docs li h4 {
	margin-top: .5rem;
}

.page_section_docs p.page_parag {
	font-weight: 400;
}

.page_section_docs .page_contact_info dl {
	font-size: 1rem;
}

.page_section_docs .page_contact_info dl dd {
	font-family: var(--font-main);
	font-weight: 500;
}

.page_section_docs ul li::marker {
	color: var(--color-text-primary);
}

.page_section_docs .container,
.main_tourism .container,
.main_contact .container {
	width: var(--container-width-narrow);
	max-width: var(--container-max-width-narrow);
}

/*--------------------------------------------------------------
# 交通規制
--------------------------------------------------------------*/
.btn_traffic_dl {
	margin-top: 3rem;
	margin-right: auto;
	margin-left: auto;
}

@media screen and (min-width: 768px) {
	.btn_traffic_dl {
		max-width: 480px;
	}
}

/*--------------------------------------------------------------
# イベント広場 - /expo
--------------------------------------------------------------*/
.page_2col_grid {
	display: grid;
	gap: 3rem;
}

.page_2col_grid:not(:last-child) {
	margin-bottom: 3rem;
}

.guest_wrapper {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 1.5rem;
	row-gap: 1rem;
}

.guest_wrapper .img_photo {
	height: fit-content;
}

.guest_name {
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-family: var(--font-accent);
	font-weight: 900;
	color: var(--color-primary);
	margin-bottom: 1rem;
}

.guest_name_position {
	font-size: 1rem;
	line-height: 1.5em;
	margin-bottom: .5rem;
}

.guest_name_top {
	font-size: 1.5rem;
	line-height: 1.5em;
}

.guest_name_kana {
	font-size: .75rem;
	line-height: 1.5em;
}

.guest_desc {
	grid-column: span 2;
}

.page_2col_grid .photo_wrapper {
	position: relative;
	width: 80%;
	margin-right: auto;
	margin-left: auto;
}

.page_2col_grid .photo_wrapper .img_photo:first-child {
	position: absolute;
	width: 60%;
	top: 50%;
	left: 0;
	transform: translateY(-45%) rotate(-2deg);
	z-index: 2;
}

.page_2col_grid .photo_wrapper .img_photo:nth-child(2) {
	position: relative;
	width: 45%;
	margin-left: auto;
	transform: rotate(3deg);
	z-index: 1;
}

#ceremony .page_table_scrollable tr > *:first-child {
	min-width: 5rem;
	text-align: center;
}

#ceremony .page_table_scrollable tr > *:nth-child(2) {
	min-width: 200px;
}

#ceremony .page_table_scrollable tr > *:nth-child(4) {
	min-width: 6rem;
	text-align: center;
}

#venue .page_2col_table,
#ceremony .page_2col_table,
#fes .page_2col_table {
	margin-bottom: 3rem;
}

#fes .page_h3 {
	margin-top: 4rem;
}

.systemway_qr {
	width: 80px;
	margin-top: 1rem;
}

.flex_wrapper_expo {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.flex_wrapper_expo img {
	width: 75%;
	margin: auto;
}

.list_mark_orange li::marker {
	color: var(--color-secondary);
}

.tag_ticket {
	display: inline-block;
	font-size: .75rem;
	font-weight: 700 !important;
	color: var(--color-danger);
	border: 2px solid var(--color-danger);
	border-radius: 4px;
	line-height: 1em;
	margin-left: .5em;
	padding: .25em .5em;
}

.tag_kanazawa {
	display: inline-block;
	font-size: .75rem;
	font-weight: 700 !important;
	color: #0059b1;
	border: 2px solid #0059b1;
	border-radius: 4px;
	line-height: 1em;
	margin-left: .5em;
	padding: .25em .5em;
}

.img_foodticket {
	box-shadow: 0 3px 10px rgba(26, 86, 114, .16);
}

.text_wrapper_note.kanazawa_brands {
	margin-top: 1rem;
}

.text_wrapper_note.kanazawa_brands h3.page_h3_note {
	color: var(--color-primary);
	border-color: var(--color-primary);
}

.text_wrapper_note.kanazawa_brands .flex_wrapper {
	flex-direction: row;
}

.text_wrapper_note.kanazawa_brands .flex_wrapper > * {
	flex: auto;
}

.text_wrapper_note.kanazawa_brands .img_kanazawabrands_wrapper {
	flex: none;
	width: 40px;
	height: fit-content;
}

.text_wrapper_note.kanazawa_brands .flex_wrapper .img_kanazawabrands {
	width: 40px;
	height: auto;
	box-shadow: 0 3px 10px rgba(26, 86, 114, .16);
	transform: rotate(-2deg);
}

.mt_0 {
	margin-top: 0 !important;
}

a.btn_rounded.btn_pdf {
	font-size: 1rem;
	min-height: 3rem;
	margin: 0 auto 3rem 0;
}

a.btn_rounded.btn_pdf span {
	padding: 0 2rem;
}

@media screen and (min-width: 768px) {
	.flex_wrapper_expo {
		flex-direction: row;
	}

	.flex_wrapper_expo img {
		width: 30%;
	}

	.seminar_table .pc {
		display: table-cell;
	}

	.seminar_table .sp {
		display: none;
	}

	a.btn_rounded.btn_pdf {
		width: fit-content;
	}
}

@media screen and (min-width: 992px) {
	.page_2col_grid {
		gap: 3rem;
		grid-template-columns: repeat(2, 1fr);
	}

	.page_2col_grid:not(:last-child) {
		margin-bottom: 3rem;
	}

	.guest_wrapper {
		column-gap: 2rem;
		row-gap: 0;
	}

	.guest_wrapper .img_photo {
		grid-row: span 2;
	}

	.guest_desc {
		grid-column: span 1;
	}
}

/*--------------------------------------------------------------
# 大会の魅力 /appeal
--------------------------------------------------------------*/
h3.page_content_h3 {
	font-family: var(--font-accent);
	font-size: 1.1rem;
	line-height: 1.75em;
	font-weight: 900;
	color: var(--color-primary);
	margin: 1rem 0;
}

.appeal_parag {
	font-size: 1rem;
	font-weight: 500;
	line-height: 2em;
}

a.btn_page_content.btn_rounded {
	font-size: 1rem;
	min-height: 3.5rem;
	margin: 1.5rem auto 0;
}

#privilege .page_table_scrollable {
	font-size: .9rem;
	background: var(--color-background-sub);
}

#privilege .col_arrow {
	background: transparent;
	padding: 0;
	border: none;
}

#privilege .col_arrow > span {
	display: block;
	background: var(--color-primary);
	width: 1rem;
	height: 2.5rem;
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
}

#privilege .page_table_scrollable .badge_danger {
	margin: 0;
}

/*--------------------------------------------------------------
# サイクリストステーション
--------------------------------------------------------------*/
.recent-fastival__video_wrapper {
	display: flex;
	flex-direction: column;
	row-gap: 1rem;
	column-gap: 0;
}

.youtube__player {
	display: block;
	aspect-ratio: 16 / 9;
	width: 100%;
	height: auto;
}

.video__wrapper__traveltv {
	margin-top: 1.5rem;
}

.video__wrapper__traveltv .button__wrapper {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	margin-top: 1rem;
}

.video__wrapper__traveltv .button__wrapper .btn_rounded {
	margin: 0;
}

.video__wrapper__traveltv .button__wrapper a.btn_rounded::after {
	content: '\f144';
}

.video__wrapper__traveltv .button__wrapper {
	row-gap: 2rem;
}

.button__wrapper_item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
}

.video__wrapper__traveltv:first-child a.btn_rounded {
	min-width: 100%;
	margin-top: 0 !important;
}

.page_section .video__wrapper__traveltv:first-child {
	margin-top: 0;
}

.fascinate_h2_video > span {
	padding-right: .5em;
}

@media screen and (min-width: 992px) {
	.recent-fastival__video_wrapper {
		flex-direction: row;
	}

	.video__wrapper__traveltv {
		margin-top: 3rem;
	}

	.video__wrapper__traveltv:first-child {
		width: 35%;
		padding-right: 2rem;
	}

	.video__wrapper__traveltv:nth-child(2) {
		width: 65%;
	}

	h2.fascinate_h2.fascinate_h2_video {
		font-size: 1.5rem;
		line-height: 1.75em;
	}

	.video__wrapper__traveltv:first-child h2.fascinate_h2.fascinate_h2_video {
		margin-top: 1rem !important;
	}

	.video__wrapper__traveltv .button__wrapper {
		flex-direction: row;
		justify-content: center;
		align-items: center;
		gap: 1rem;
	}

	.video__wrapper__traveltv .button__wrapper .btn_rounded  {
		min-width: 100%;
	}

	#fascinate_video .btn_rounded {
		font-size: 1rem;
	}

	#fascinate_video .btn_rounded > span {
		padding: 0 1rem;
	}

	.page_section #fascinate_video h2.fascinate_h2 {
		font-size: 1.25rem;
	}

	.page_section .video__wrapper__traveltv {
		margin-top: 0;
	}
}

/* 2025年大会後追加 */
@media screen and (min-width: 992px) {
	.fascinate_video_2025 .video__wrapper__traveltv {
		width: 75%;
		margin-right: auto;
		margin-left: auto;
	}
}

/*--------------------------------------------------------------
# 競技カテゴリー
--------------------------------------------------------------*/
.table_accordion {
	background: var(--color-tertiary);
	border-radius: 4px;
}

.input_accordion {
	display: none;
}

.label_accordion {
	display: block;
	cursor: pointer;
}

.input_accordion:checked ~ .content_accordion_wrapper {
	grid-template-rows: 1fr;
}

.content_accordion_wrapper {
	display: grid;
	grid-template-rows: 0fr;
	overflow: hidden;
	transition: grid-template-rows .25s;
}

.content_accordion_wrapper > * {
	overflow: hidden;
}

h4.accordion_h4 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1em;
	color: #fff;
	margin-bottom: 0;
	padding: 1rem;
	line-height: 1.5em;
}

h4.accordion_h4::after {
	content: '\f055';
	font-family: var(--fontawesome);
	font-size: 2rem;
	font-weight: 700;
	z-index: 2;
}

h4.accordion_h4 > span > small {
	font-size: 75%;
	line-height: 1.5em;
}

h4.accordion_h4 > span::before{
	content: '\f219';
	font-family: var(--fontawesome);
	font-size: .5rem;
	font-weight: 700;
	color: var(--color-secondary);
	margin-right: .5rem;
}

h4.accordion_h4 .badge_danger {
	font-size: .75rem;
	background: var(--color-danger);
	color: #fff;
	border: none;
}

.input_accordion:checked ~ .label_accordion h4.accordion_h4::after {
	content: '\f056';
}

#category .content_accordion {
	padding: .5rem 0;
}

.content_accordion .page_table_scrollable {
	font-size: .75rem;
	background: #fff;
	margin: 0 .5rem;
	border-radius: 2px;
}

#category .page_table_scrollable tbody th,
#category .page_table_scrollable tbody td {
	padding: .5rem 1rem;
	text-align: center;
	vertical-align: top;
}

#category [class*=text_icon_] {
	justify-content: center;
	line-height: 2.25em;
	gap: 0;
	align-items: flex-start;
}

#category .table_accordion {
	margin-bottom: 1rem;
}

.content_accordion .js-scrollable {
	overflow-y: hidden !important;
}

.category_kids {
	margin: calc(var(--section-padding) / 2) 0 calc(var(--section-padding) / 4);
}

.category_kids .table_accordion {
	background: #f7be4a;
}

.category_kids h3.page_h3 > span {
	border-color: var(--color-secondary);
}

.category_kids h3.page_h3 {
	color: var(--color-secondary);
}

.category_kids h3.page_h3::after {
	background: var(--color-secondary);
}

@media screen and (min-width: 768px) {
	.content_accordion .page_table_scrollable {
		margin: 0;
	}

	.content_accordion .table_wrapper {
		padding: 0 .5rem;
	}
}

@media screen and (min-width: 992px) {
	.content_accordion .page_table_scrollable {
	}

	#category .page_table_scrollable tbody th,
	#category .page_table_scrollable tbody td {
	}
}

/*--------------------------------------------------------------
# Lumina
--------------------------------------------------------------*/
#lumina {
	padding-top: var(--section-padding);
	padding-bottom: 0;
}

#lumina .container {
	max-width: 720px;
}

.lumina__card__outer {
	background: var(--gradient-primary-vertical);
	padding: .75rem;
	box-shadow: var(--shadow-primary);
}

.lumina__card {
	display: grid;
	grid-template-columns: 1fr 3fr;
	align-items: center;
	gap: 1rem;
	background: #fff;
	text-align: left;
	padding: 1.25rem;
}

.lumina__text {
	font-family: var(--font-accent);
	font-size: .9rem;
}

@media (max-width: 767px) {
	#lumina {
		padding: calc(var(--section-padding) / 2) 0;
	}
	
	.lumina__card__outer {
		padding: .5rem;
	}

	.lumina__text {
		font-size: .75rem;
	}

	.lumina__card {
		padding: 1rem;
	}
}

#fes table.fes_table {
	background: var(--color-background-sub);
	margin-top: 2.5rem;
}

#fes .fes_table .title_verical {
	min-width: fit-content;
	text-align: center;
}

#fes .page_table_scrollable tr > *:nth-child(2) {
	min-width: 320px;
}

#fes .page_table_scrollable tr > *:nth-child(3) {
	min-width: 320px;
}

#fes .fes_table th:has(>.title_number) {
	min-width: 2rem;
	text-align: center;
}

.title_number {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
}

.title_number > span {
	position: relative;
	color: #fff;
	font-weight: 700 !important;
	z-index: 1;
}

.title_number::after {
	content: '';
	position: absolute;
	display: block;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	z-index: 0;
}

#fes .fes_table .title_verical.category_food,
#fes .title_number.category_food::after {
	background: #1f1f87;
}

#fes .fes_table .title_verical.category_sdgs,
#fes .title_number.category_sdgs::after {
	background: #f39a03;
}

#fes .fes_table .title_verical.category_services,
#fes .title_number.category_services::after {
	background: #e20081;
}

#fes .scroll-hint-icon {
	top: 72px !important;
}

#fes .fa-star-sharp,
#ticket .fa-star-sharp {
	color: var(--color-secondary);
}

#ticket ul li::marker {
	color: var(--color-secondary);
}

.title_verical {
	color: #fff;
	writing-mode: vertical-rl;
}

.fes_grid_wrapper {
	display: grid;
	column-gap: 1.5rem;
	margin-bottom: 2.5rem;
}

h3.fes_title {
	display: block;
	color: var(--color-primary);
	width: 100%;
	margin-bottom: 1.5em;
	padding: .25em;
	border-bottom: 4px dashed var(--color-primary);
}

@media (min-width: 768px) {
	.fes_grid_wrapper {
		grid-template-columns: 2fr 1fr;
	}
}