/*
Theme Name: 前橋競輪場イベントサイト
Theme URI: https://www.maebashi-keirin.com/
Author: 株式会社ティーネットエンタープライズ
Author URI: https://www.t-net-g.co.jp/
Description: 前橋競輪場イベントサイトのオリジナルWordPressテーマです。
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.3
Tested up to: 7.0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

/* ==========================================================================
  パレット
   ========================================================================== */
:root {
	--clamp-negative-90-150: clamp(-9.375rem, -9.26vw - 0.56rem, -5.625rem);
	--clamp-size-0-120: clamp(0rem, 11.11vw - 2.50rem, 7.5rem);
	--clamp-size-0-150: clamp(0rem, 13.89vw - 3.12rem, 9.375rem);
	--clamp-size-0-30: clamp(0rem, 2.78vw - 0.62rem, 1.875rem);
	--clamp-size-0-60: clamp(0rem, 5.56vw - 1.25rem, 3.75rem);
	--clamp-size-0-90: clamp(0rem, 8.33vw - 1.88rem, 5.625rem);
	--clamp-size-30-120: clamp(1.875rem, 8.33vw, 7.5rem);
	--clamp-size-30-150: clamp(1.875rem, 11.11vw - 0.63rem, 9.375rem);
	--clamp-size-30-60: clamp(1.875rem, 2.78vw + 1.25rem, 3.75rem);
	--clamp-size-30-90: clamp(5.56vw + 0.63rem, 5.56vw + 0.63rem, 5.625rem);
	--clamp-size-90-150: clamp(5.625rem, 9.26vw + 0.56rem, 9.375rem);
	--clamp-size-40-80: clamp(2.5rem, 5.3vw + 1.25rem, 5.0rem);
}

/* ==========================================================================
   スクロールアニメーション
   ========================================================================== */
.js-fade-up,
.js-fade-left,
.js-fade-right {
	opacity: 0;
	transition: opacity 1.5s ease, transform 1.5s ease;
}

.js-fade-up.is-inview,
.js-fade-left.is-inview,
.js-fade-right.is-inview {
	opacity: 1;
}

.js-fade-up {
	transform: translateY(45px);
}

.js-fade-up.is-inview {
	transform: translateY(0);
}

.js-fade-left {
	transform: translateX(45px);
}

.js-fade-left.is-inview {
	transform: translateX(0);
}

.js-fade-right {
	transform: translateX(-45px);
}

.js-fade-right.is-inview {
	transform: translateX(0);
}

/* ==========================================================================
   基本設定
   ========================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	color: var(--wp--preset--color--darkgray);
	font-family: "Noto Sans JP", sans-serif;
	font-size: 100%;
	font-style: normal;
	font-weight: 400;
	line-height: 1.75;
	min-height: 100vh;
}

body .english {
	font-family: "Elms Sans", sans-serif !important;
	font-weight: 800 !important;
}

a {
	color: var(--wp--preset--color--darkgold);
}

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

ul,
ol {
	list-style-position: inside;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 700;
	line-height: 1.5em;
}

h2 {
	font-size: var(--wp--preset--font-size--heading-2);
}

h3 {
	font-size: var(--wp--preset--font-size--heading-3);
}

h4 {
	font-size: var(--wp--preset--font-size--heading-4);
}

h5 {
	font-size: var(--wp--preset--font-size--heading-5);
}

h6 {
	font-size: var(--wp--preset--font-size--heading-6);
}

/* ==========================================================================
   404エラーページ（#error-404）
   ========================================================================== */
#error-404 {
	background-color: var(--wp--preset--color--darkgray);
	padding: 90px 0;
	text-align: center;
}

#error-404 .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.error-header {
	margin-bottom: 45px;
}

.error-header h2 {
	color: var(--wp--preset--color--white);
	font-size: 1.25rem;
	line-height: 1.3;
}

.error-header h2 span.english {
	color: var(--wp--preset--color--gold);
	font-size: var(--clamp-size-40-80);
}

.error-text {
	color: var(--wp--preset--color--white);
	font-size: 1rem;
	line-height: 1.8;
	margin-bottom: 45px;
	opacity: 0.9;
}

.btn-home {
	background-color: var(--wp--preset--color--gold);
	border-radius: 5px;
	color: var(--wp--preset--color--white) !important;
	display: inline-block;
	font-size: 1rem;
	font-weight: 700;
	padding: 15px 45px;
	text-decoration: none;
	transition: background-color 0.3s;
}

.btn-home::after {
	content: "▶";
	font-size: 0.7rem;
	margin-left: 15px;
	vertical-align: middle;
}

.btn-home:hover {
	background-color: var(--wp--preset--color--darkgold);
}

@media (max-width: 767px) {
	#error-404 {
		padding: 60px 0; /* */
	}
	br.sp-only {
		display: block;
	}
}

@media (min-width: 768px) {
	br.sp-only {
		display: none;
	}
}

/* ==========================================================================
   お知らせ一覧ページ（#archive-news）
   ========================================================================== */
#archive-news {
	background-color: var(--wp--preset--color--darkgray);
	padding: 45px 0;
}

#archive-news .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.archive-header {
	margin-bottom: 45px;
	text-align: center;
}

.archive-header h2 {
	color: var(--wp--preset--color--white);
	font-size: 1.25rem;
	line-height: 1.3;
}

.archive-header h2 span.english {
	color: var(--wp--preset--color--gold);
	font-size: var(--clamp-size-40-80);
}

.archive-news-list {
	list-style: none;
}

.archive-news-item {
	border-bottom: 1px dotted rgba(255, 255, 255, 0.3);
}

.archive-news-item a {
	color: var(--wp--preset--color--white);
	display: flex;
	flex-direction: column;
	padding: 20px 0;
	text-decoration: none;
	transition: opacity 0.3s;
}

.archive-news-item a:hover {
	opacity: 0.7;
}

.archive-news-date {
	color: var(--wp--preset--color--white);
	flex-shrink: 0;
	font-size: 0.9rem;
	font-weight: 700;
	margin-bottom: 5px;
}

.archive-news-title {
	font-size: 0.95rem;
	line-height: 1.6;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.no-archive-news {
	color: var(--wp--preset--color--white);
	font-size: 0.95rem;
	font-weight: 700;
	padding: 45px 0;
	text-align: center;
}

.archive-pagination {
	margin-top: 60px;
	text-align: center;
}

.archive-pagination .nav-links {
	align-items: center;
	display: flex;
	gap: 15px;
	justify-content: center;
}

.archive-pagination a,
.archive-pagination .current {
	border: 1px solid var(--wp--preset--color--white);
	border-radius: 4px;
	display: inline-block;
	font-size: 0.9rem;
	font-weight: 700;
	padding: 10px 18px;
	text-decoration: none;
}

.archive-pagination a {
	color: var(--wp--preset--color--white);
	transition: all 0.3s ease;
}

.archive-pagination a:hover {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--darkgray);
}

.archive-pagination .current {
	background-color: var(--wp--preset--color--gold);
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--white);
}

.archive-actions {
	margin-top: 45px;
	text-align: center;
}

@media (min-width: 768px) {
	#archive-news {
		padding: 90px 0;
	}

	.archive-news-item a {
		align-items: flex-start;
		flex-direction: row;
	}

	.archive-news-date {
		margin-bottom: 0;
		width: 150px;
	}
}

/* ==========================================================================
   投稿詳細ページ（#single-post）
   ========================================================================== */
#single-post {
	background-color: var(--wp--preset--color--darkgray);
	padding: 45px 0;
}

#single-post .container {
	margin: 0 auto;
	max-width: 800px;
	width: 90%;
}

.entry-article {
	color: var(--wp--preset--color--white);
}

.entry-date {
	color: var(--wp--preset--color--gold);
	font-size: 0.95rem;
	font-weight: 700;
}

.entry-footer {
	margin-top: 60px;
	text-align: center;
}

.entry-header {
	border-bottom: 1px dotted rgba(255, 255, 255, 0.3);
	margin-bottom: 45px;
	padding-bottom: 30px;
}

.entry-title {
	font-size: clamp(1.4rem, 2.5vw + 0.8rem, 2.0rem);
	font-weight: 700;
	line-height: 1.4;
	margin-top: 15px;
}

.entry-content {
	line-height: 1.8;
}

.entry-content p {
	margin-bottom: 30px;
}

.entry-content p:last-child {
	margin-bottom: 0;
}

.entry-content h2,
.entry-content h3 {
	color: var(--wp--preset--color--white);
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 30px;
	margin-top: 45px;
}

.entry-content h2 {
	border-left: 4px solid var(--wp--preset--color--gold);
	font-size: 1.5rem;
	padding-left: 15px;
}

.entry-content h3 {
	font-size: 1.25rem;
}

.entry-content h2 span.english,
.entry-content h3 span.english {
	color: var(--wp--preset--color--gold);
}

.btn-back {
	background-color: transparent;
	border: 1px solid var(--wp--preset--color--white);
	border-radius: 5px;
	color: var(--wp--preset--color--white) !important;
	display: inline-block;
	font-size: 0.95rem;
	font-weight: 700;
	padding: 12px 45px;
	text-decoration: none;
	transition: all 0.3s ease;
}

.btn-back::before {
	content: "◀";
	font-size: 0.65rem;
	margin-right: 15px;
	vertical-align: middle;
}

.btn-back:hover {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--darkgray) !important;
}

@media (min-width: 768px) {
	#single-post {
		padding: 90px 0;
	}
}

/* ==========================================================================
   セクション背景に連動するヘッダー見出しカラー設計（A-Z順）
   ========================================================================== */
#race-program .program-header,
#campaign .campaign-header,
#media .media-header,
#online-voting .voting-header {
	color: var(--wp--preset--color--darkgray);
}

#race-program .program-header span.english,
#campaign .campaign-header span.english,
#media .media-header span.english,
#online-voting .voting-header span.english {
	color: var(--wp--preset--color--gold);
}

.news-header h3,
#about-facility .facility-header,
#events .events-header,
#race-time .time-header {
	color: var(--wp--preset--color--white);
}

.news-header h3 span.english,
#about-facility .facility-header span.english,
#events .events-header span.english,
#race-time .time-header span.english {
	color: var(--wp--preset--color--gold);
}

#racers .racers-header {
	color: var(--wp--preset--color--white);
}

#racers .racers-header span.english {
	color: var(--wp--preset--color--white);
}

/* ==========================================================================
   オープニングローダー（#opening-loader）
   ========================================================================== */
#opening-loader {
	align-items: center;
	animation: zoomOutContainer 0.6s cubic-bezier(0.7, 0, 0.84, 0) 2.8s forwards;
	background-color: var(--wp--preset--color--black);
	display: flex;
	height: 100dvh;
	justify-content: center;
	left: 0;
	position: fixed;
	top: 0;
	width: 100vw;
	z-index: 9999;
}

.loader-content {
	max-width: 320px;
	width: 70%;
}

.loader-text {
	animation: fadeInText 1.2s ease-out 0.6s forwards;
	height: auto;
	max-height: 70vh;
	object-fit: contain;
	opacity: 0;
	transform: scale(0.82);
	width: 100%;
}

@media (min-width: 768px) {
	.loader-content {
		max-width: 450px;
		width: 100%;
	}
	.loader-text {
		transform: scale(1.0) translateY(0);
	}
}

@keyframes fadeInText {
	0% {
		filter: blur(10px);
		opacity: 0;
		transform: scale(0.95);
	}

	100% {
		filter: blur(0);
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes zoomOutContainer {
	0% {
		filter: blur(0);
		opacity: 1;
		transform: scale(1);
	}

	100% {
		filter: blur(4px);
		opacity: 0;
		transform: scale(5.0);
		visibility: hidden;
	}
}

#opening-loader.is-loaded {
	display: none !important;
}

/* ==========================================================================
   アニメーション中のスクロールロック制御
   ========================================================================== */
body {
	animation: lockScroll 3.5s forwards;
}

@keyframes lockScroll {
	0% {
		overflow: hidden;
	}

	99% {
		overflow: hidden;
	}

	100% {
		overflow: visible;
	}
}

/* ==========================================================================
   メインビジュアル（#mainvisual）
   ========================================================================== */
#mainvisual {
	aspect-ratio: 720 / 1280;
	background-image: url('https://www.maebashi-keirin.com/wp-content/uploads/back_mainvisual_sp_02.jpg');
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin: 0 auto;
	max-width: 100%;
	position: relative;
	width: 100%;
}

#mainvisual h1 {
	animation: logoLanding 3.0s cubic-bezier(0.25, 1, 0.5, 1) 2.8s both;
	left: 50%;
	max-width: 1280px;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	z-index: 10;
}

@media (min-width: 768px) {
	#mainvisual {
		aspect-ratio: 1 / 1;
		background-image: url('https://www.maebashi-keirin.com/wp-content/uploads/back_mainvisual_pc_02.jpg');
	}

	#mainvisual h1 {
		top: 45vh;
	}
}

@keyframes logoLanding {
	0% {
		filter: blur(15px);
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.5);
	}

	100% {
		filter: blur(0);
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}
}
#opening-loader.is-loaded ~ #mainvisual h1 {
	animation-delay: 0s;
}

/* ==========================================================================
   基本情報（#information）
   ========================================================================== */
#information {
	background-color: var(--wp--preset--color--darkgray);
	position: relative;
	z-index: 1;
}

#information .container {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 15px;
	margin: 0 auto;
	max-width: 1140px;
	position: relative;
	top: var(--clamp-negative-90-150);
	width: 90%;
}

#information .day-news {
	margin: 0 auto;
	max-width: 720px;
	width: 100%;
}

/* ==========================================================================
   ニュース
   ========================================================================== */
.news-area {
	margin-top: 45px;
}

.news-header {
	align-items: flex-end;
	display: flex;
	flex-direction: row;
	gap: 15px;
	justify-content: space-between;
	margin-bottom: 30px;
}

.news-header h3 {
	font-size: 1.5rem;
	line-height: 1.2;
}

.news-header h3 span.english {
	font-size: var(--clamp-size-40-80);
}

.btn-archive {
	background-color: var(--wp--preset--color--gold);
	border-radius: 5px;
	color: var(--wp--preset--color--white) !important;
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 700;
	padding: 10px 20px;
	position: relative;
	text-decoration: none;
	transition: background-color 0.3s;
}

.btn-archive::after {
	content: "▶";
	font-size: 0.6rem;
	margin-left: 10px;
	vertical-align: middle;
}

.btn-archive:hover {
	background-color: var(--wp--preset--color--darkgold);
}

@media (min-width: 500px) {
	.news-header {
		align-items: flex-end;
		flex-direction: row;
		justify-content: space-between;
	}
}

.news-list {
	list-style: none;
}

.news-item {
	border-bottom: 1px dotted rgba(255, 255, 255, 1);
}

.news-item a {
	color: var(--wp--preset--color--white);
	display: flex;
	flex-direction: column;
	padding: 20px 0;
	text-decoration: none;
	transition: opacity 0.3s;
}

.news-item a:hover {
	opacity: 0.7;
}

.news-date {
	color: var(--wp--preset--color--white);
	flex-shrink: 0;
	font-size: 0.9rem;
	font-weight: 700;
	margin-bottom: 5px;
}

.news-title {
	font-size: 0.9rem;
	line-height: 1.6;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.no-news {
	color: var(--wp--preset--color--white);
	font-size: 0.95rem;
	font-weight: 700;
	padding: 45px 0;
	text-align: center;
}

@media (min-width: 768px) {
	.news-item a {
		align-items: flex-start;
		flex-direction: row;
	}

	.news-date {
		margin-bottom: 0;
		width: 120px;
	}
}

/* ==========================================================================
   前回優勝者（#last-champion）
   ========================================================================== */
#last-champion {
	background-color: var(--wp--preset--color--white);
	padding: 45px 0 0;
	position: relative;
	z-index: 10;
}

#last-champion .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.champion-body {
	margin: 0 auto;
	max-width: 1000px;
	text-align: center;
	width: 100%;
}

.champion-caption {
	color: var(--wp--preset--color--black);
	font-size: clamp(1.0rem, 2.5vw, 1.3rem);
	font-weight: 700;
	line-height: 1.5;
	margin-top: 30px;
}

.champion-header {
	margin-bottom: 45px;
	text-align: center;
}

.champion-header h2 {
	color: var(--wp--preset--color--darkgray);
	font-size: 1.25rem;
	line-height: 1.3;
}

.champion-header h2 span.english {
	color: var(--wp--preset--color--gold);
	font-size: var(--clamp-size-40-80);
}

.champion-main-img {
	width: 100%;
}

.champion-main-img img {
	border-radius: 10px;
	display: block;
	height: auto;
	margin: 0 auto;
	width: 100%;
}

@media (min-width: 768px) {
	#last-champion {
		padding: 90px 0 0;
	}
}

/* ==========================================================================
   出場予定選手（#racers）
   ========================================================================== */
#racers {
	background-color: var(--wp--preset--color--gold);
	margin-top: var(--clamp-size-90-150);
	padding: 45px 0;
	position: relative;
	z-index: 10;
}

#racers .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.racers-header {
	margin-bottom: 30px;
	text-align: center;
}

.racers-header h2 {
	font-size: 1.25rem;
	line-height: 1.3;
}

.racers-header h2 span.english {
	font-size: var(--clamp-size-40-80);
}

.racers-grid {
	display: grid;
	gap: 30px 20px;
	grid-template-columns: repeat(2, 1fr);
}

.racer-card {
	width: 100%;
}

.racer-thumb {
	aspect-ratio: 3 / 4;
	background-color: var(--wp--preset--color--darkgray);
	border-radius: 10px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
	margin-bottom: 15px;
	overflow: hidden;
}

.racer-thumb img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.racer-info {
	color: var(--wp--preset--color--white);
}

.racer-name {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 0;
}

.racer-meta {
	font-size: 0.8rem;
	opacity: 0.9;
}

.racer-link {
	display: block;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.racer-link:hover {
	opacity: 0.85;
}

@media (min-width: 768px) {
	#racers {
		padding: 90px 0;
	}

	.racers-grid {
		gap: 45px 30px;
		grid-template-columns: repeat(5, 1fr);
	}
}

/* ==========================================================================
   概定番組表（#race-program）
   ========================================================================== */
#race-program {
	background-color: var(--wp--preset--color--white);
	padding: 45px 0;
}

#race-program .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.program-header {
	margin-bottom: 45px;
	text-align: center;
}

.program-header h2 {
	font-size: 1.25rem;
	line-height: 1.3;
}

.program-header h2 span.english {
	font-size: var(--clamp-size-40-80);
}

.program-body {
	margin: 0 auto;
	max-width: 1000px;
	width: 100%;
}

.program-body img {
	display: block;
	height: auto;
	margin: 0 auto;
	width: 100%;
}

@media (min-width: 768px) {
	#race-program {
		padding: 90px 0;
	}
}

/* ==========================================================================
   イベントセクション（#events）
   ========================================================================== */
#events {
	background-color: var(--wp--preset--color--darkgray);
	padding: 45px 0;
}

#events .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.events-header {
	margin-bottom: 45px;
	text-align: center;
}

.events-header h2 {
	font-size: 1.25rem;
	line-height: 1.3;
}

.events-header h2 span.english {
	font-size: var(--clamp-size-40-80);
}

.events-grid-large {
	display: grid;
	gap: 45px;
	grid-template-columns: repeat(1, 1fr);
	margin-bottom: 45px;
}

.events-grid-small {
	display: grid;
	gap: 30px 15px;
	grid-template-columns: repeat(2, 1fr);
}

.event-card {
	width: 100%;
}

.event-thumb {
	aspect-ratio: 1 / 1;
	background-color: var(--wp--preset--color--darkgray);
	border-radius: 10px;
	margin-bottom: 15px;
	overflow: hidden;
	position: relative;
	-webkit-mask-image: -webkit-radial-gradient(white, black);
	z-index: 1;
}

.event-thumb::before {
	background-attachment: scroll;
	background-image: inherit;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	content: "";
	filter: blur(12px) brightness(0.75);
	height: 120%;
	left: -10%;
	position: absolute;
	top: -10%;
	width: 120%;
	z-index: -1;
}

.event-thumb img {
	height: 100%;
	object-fit: contain;
	position: relative;
	width: 100%;
	z-index: 2;
}

.event-info {
	color: var(--wp--preset--color--white);
}

.event-title {
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 15px;
}

.event-detail {
	font-size: 0.85rem;
	line-height: 1.6;
	opacity: 0.85;
}

@media (min-width: 768px) {
	#events {
		padding: 90px 0;
	}

	.events-grid-large {
		gap: 60px 90px;
		grid-template-columns: repeat(2, 1fr);
		margin-bottom: 60px;
	}

	.events-grid-small {
		gap: 30px 45px;
		grid-template-columns: repeat(3, 1fr);
	}

	.card-large .event-title {
		font-size: 1.3rem;
	}

	.card-large .event-detail {
		font-size: 0.95rem;
	}
}

/* ==========================================================================
   キャンペーン（#campaign）
   ========================================================================== */
#campaign {
	background-color: var(--wp--preset--color--white);
	padding: 45px 0;
}

#campaign .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.campaign-header {
	margin-bottom: 45px;
	text-align: center;
}

.campaign-header h2 {
	font-size: 1.25rem;
	line-height: 1.3;
}

.campaign-header h2 span.english {
	font-size: var(--clamp-size-40-80);
}

.campaign-list {
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.campaign-item {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.campaign-thumb {
	aspect-ratio: 16 / 10;
	background-color: #D9D9D9;
	border-radius: 10px;
	overflow: hidden;
	width: 100%;
}

.campaign-thumb img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.campaign-info {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
}

.campaign-title {
	color: var(--wp--preset--color--darkgray);
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 15px;
}

.campaign-detail {
	color: var(--wp--preset--color--darkgray);
	font-size: 0.9rem;
	line-height: 1.7;
	margin-bottom: 0;
}

.campaign-btn {
	background-color: var(--wp--preset--color--gold);
	border-radius: 4px;
	color: var(--wp--preset--color--white) !important;
	display: inline-block;
	font-size: 0.95rem;
	font-weight: 700;
	margin-top: 30px;
	padding: 12px 35px;
	text-decoration: none;
	transition: background-color 0.3s;
}

.campaign-btn::after {
	content: "▶";
	font-size: 0.65rem;
	margin-left: 15px;
	vertical-align: middle;
}

.campaign-btn:hover {
	background-color: var(--wp--preset--color--darkgold);
}

@media (min-width: 768px) {
	#campaign {
		padding: 90px 0;
	}

	.campaign-list {
		gap: 90px;
	}

	.campaign-item {
		align-items: flex-start;
		flex-direction: row;
		gap: 45px;
	}

	.campaign-thumb {
		flex-shrink: 0;
		width: 45%;
	}

	.campaign-info {
		width: 55%;
	}

	.campaign-title {
		font-size: 1.6rem;
	}
}

/* ==========================================================================
   発走予定時刻（#race-time）
   ========================================================================== */
#race-time {
	background-color: var(--wp--preset--color--darkgray);
	padding: 45px 0;
}

#race-time .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.time-header {
	margin-bottom: 40px;
	text-align: center;
}

.time-header h2 {
	font-size: 1.25rem;
	line-height: 1.3;
}

.time-header h2 span.english {
	font-size: var(--clamp-size-40-80);
}

.time-table-wrapper {
	color: var(--wp--preset--color--white);
	font-size: 0.85rem;
	margin: 0 auto;
	max-width: 720px;
}

.time-table-head,
.time-table-row {
	align-items: center;
	display: grid;
	grid-template-columns: 1fr 1.2fr 1.5fr 1.5fr;
	text-align: center;
}

.time-table-head {
	color: var(--wp--preset--color--gold);
	font-weight: 700;
	padding-bottom: 5px;
}

.time-table-row {
	font-weight: 700;
	padding: 0;
}

.time-table-row:nth-child(odd) {
	background-color: rgba(255, 255, 255, 0.05);
	border-radius: 4px;
}

.col-race {
	color: var(--wp--preset--color--gold);
	font-size: 1.1rem;
}

.col-start {
	font-size: 1.3rem;
	font-weight: 800;
}

.col-honba,
.col-jogai {
	font-size: 1.1rem;
	opacity: 0.9;
}

@media (min-width: 768px) {
	#race-time {
		padding: 90px 0;
	}

	.time-table-wrapper {
		font-size: 1rem;
	}

	.col-start {
		font-size: 2.2rem;
	}

	.col-honba,
	.col-jogai {
		font-size: 1.4rem;
	}
}

/* ==========================================================================
   発走予定時刻表（グリッド表示）
   ========================================================================== */
.schedule-day-title {
	border-left: 4px solid var(--wp--preset--color--gold);
	color: var(--wp--preset--color--white);
	font-size: 1.1rem;
	font-weight: 700;
	margin-bottom: 15px;
	padding-left: 10px;
}

/* 📱 スマホ時は縦一列に1つずつテーブルを並べる */
.schedule-grid {
	display: grid;
	gap: 45px;
	grid-template-columns: repeat(1, 1fr);
	margin: 45px auto 0;
	max-width: 100%;
	width: 100%;
}

.schedule-card {
	width: 100%;
}

/* 💻 PC時（画面幅768px以上）は横に2列、計4つが美しく並ぶ */
@media (min-width: 768px) {
	.schedule-grid {
		gap: 60px 40px;
		/* 縦の隙間を60px、横の隙間を40pxに設定（A-Z順） */
		grid-template-columns: repeat(2, 1fr);
		/* 均等に2カラムに分割 */
	}
}

/* ==========================================================================
   メディア情報（#media）
   ========================================================================== */
#media {
	background-color: var(--wp--preset--color--white);
	padding: 45px 0;
}

#media .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.media-header {
	margin-bottom: 45px;
	text-align: center;
}

.media-header h2 {
	font-size: 1.25rem;
	line-height: 1.3;
}

.media-header h2 span.english {
	font-size: var(--clamp-size-40-80);
}

.media-grid {
	display: grid;
	gap: 45px;
	grid-template-columns: repeat(1, 1fr);
}

.media-card {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	width: 100%;
}

.media-card-type {
	color: var(--wp--preset--color--darkgray);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 0.25em;
}

.media-card-title {
	color: var(--wp--preset--color--darkgray);
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 0.5em;
}

.media-card-date {
	color: var(--wp--preset--color--darkgray);
	font-weight: 400;
	line-height: 1.4;
}

.media-btn {
	background-color: var(--wp--preset--color--gold);
	border-radius: 4px;
	color: var(--wp--preset--color--white) !important;
	display: inline-block;
	font-size: 0.95rem;
	font-weight: 700;
	margin-top: 1em;
	padding: 12px 35px;
	text-decoration: none;
	transition: background-color 0.3s;
}

.media-btn::after {
	content: "▶";
	font-size: 0.65rem;
	margin-left: 15px;
	vertical-align: middle;
}

.media-btn:hover {
	background-color: var(--wp--preset--color--darkgold);
}

@media (min-width: 768px) {
	#media {
		padding: 90px 0;
	}

	.media-grid {
		gap: 60px 45px;
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==========================================================================
   前橋競輪場の特徴・アクセス（#about-facility）
   ========================================================================== */
#about-facility {
	background-color: var(--wp--preset--color--darkgray);
	padding: 45px 0;
}

#about-facility .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.facility-header {
	margin-bottom: 40px;
	text-align: center;
}

.facility-header.is-left {
	text-align: left;
}

.facility-header h2,
.facility-header h3 {
	font-size: 1.25rem;
	line-height: 1.3;
}

.facility-header h2 span.english {
	font-size: var(--clamp-size-40-80);
}

.facility-header h3 span.english {
	font-size: clamp(1.6rem, 3.2vw + 0.85rem, 3.43rem);
}

.facility-about {
	margin-bottom: 60px;
}

.about-content {
	color: var(--wp--preset--color--white);
	margin: 0 auto;
	width: 100%;
}

.about-lead {
	font-size: clamp(2.0rem, 3.5vw + 1.18rem, 3.75rem);
	font-weight: 700;
	line-height: 1.4;
	margin: 0 auto 30px;
	max-width: 1140px;
	text-align: center;
}

.about-text {
	font-size: 0.9rem;
	line-height: 1.8;
	margin: 0 auto 30px;
	max-width: 720px;
	opacity: 0.9;
	text-align: justify;
}

.about-img {
	margin-bottom: 30px;
	width: 100%;
}

.about-img img {
	border-radius: 10px;
	width: 100%;
}

.about-spec-list {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.8;
	list-style: none;
	margin: 0 auto;
	max-width: 100%;
}

.facility-access {
	margin-bottom: 60px;
}

.access-content {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.access-info-block {
	width: 100%;
}

.access-info-block .facility-header {
	margin-bottom: 30px;
}

.access-info {
	color: var(--wp--preset--color--white);
}

.access-name {
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 20px;
}

.access-address {
	font-size: 0.95rem;
	font-style: normal;
	line-height: 1.8;
	opacity: 0.9;
}

.access-map {
	width: 100%;
}

.access-map iframe {
	display: block;
	height: 360px;
	width: 100%;
}

.bus-note {
	display: block;
	font-size: 0.9rem;
	font-weight: 700;
	margin-top: 15px;
}

.bus-tables-grid {
	display: flex;
	flex-direction: column;
	gap: 45px;
}

.bus-table-box {
	width: 100%;
}

.bus-route-title {
	color: var(--wp--preset--color--white);
	font-size: 1.1rem;
	font-weight: 700;
	margin-bottom: 15px;
}

.bus-table {
	color: var(--wp--preset--color--white);
	font-size: 0.9rem;
}

.bus-table-head,
.bus-table-row {
	align-items: center;
	display: grid;
	grid-template-columns: 1fr 1.5fr 1.5fr;
	text-align: center;
}

.bus-table-head {
	color: var(--wp--preset--color--gold);
	font-weight: 700;
	line-height: 1.2;
	padding-bottom: 5px;
}

.bus-table-row {
	font-weight: 700;
	padding: 6px 0;
}

.bus-table-row:nth-child(odd) {
	background-color: rgba(255, 255, 255, 0.05);
	border-radius: 4px;
}

.is-multi-time {
	display: flex;
	gap: 15px;
	justify-content: center;
}

.text-red {
	color: #F56597 !important;
}

@media (min-width: 768px) {
	#about-facility {
		padding: 90px 0;
	}

	.access-content {
		align-items: flex-start;
		display: flex;
		flex-direction: row;
		gap: 45px;
	}

	.access-info-block {
		width: 45%;
	}

	.access-map {
		width: 55%;
	}

	.bus-note {
		display: inline-block;
		font-size: 0.95rem;
		margin-left: 20px;
		margin-top: 0;
		vertical-align: bottom;
	}

	.bus-tables-grid {
		flex-direction: row;
		gap: 45px;
	}

	.bus-table-box {
		width: 50%;
	}
}

/* ==========================================================================
   ネット投票（#online-voting）
   ========================================================================== */
#online-voting {
	background-color: var(--wp--preset--color--white);
	padding: 45px 0;
}

#online-voting .container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.voting-header {
	margin-bottom: 45px;
	text-align: center;
}

.voting-header h2 {
	font-size: 1.25rem;
	line-height: 1.3;
}

.voting-header h2 span.english {
	font-size: var(--clamp-size-40-80);
}

.voting-grid {
	display: grid;
	gap: 30px 15px;
	grid-template-columns: repeat(2, 1fr);
}

.voting-item {
	width: 100%;
}

.voting-item a {
	display: block;
	transition: opacity 0.3s;
}

.voting-item a:hover {
	opacity: 0.75;
}

.voting-item img {
	aspect-ratio: 640 / 200;
	background-color: #EEE;
	border: 1px solid #CCC;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

@media (min-width: 768px) {
	#online-voting {
		padding: 90px 0;
	}

	.voting-grid {
		gap: 45px 60px;
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ==========================================================================
   三山王冠用ヘッダー（#miyama-header）
   ========================================================================== */
#miyama-header {
	left: 0;
	position: fixed;
	top: 0;
	transition: background-color 0.3s ease, padding 0.3s ease;
	width: 100%;
	z-index: 100;
}

#miyama-header.is-scrolled {
	background-color: rgba(0, 0, 0, 0.85);
}

#miyama-header .header-inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	padding: 24px 4%;
	width: 100%;
}

#miyama-header.is-scrolled .header-inner {
	padding: 15px 4%;
}

.header-logo {
	max-width: 160px;
	transition: transform 0.3s ease;
	width: 100%;
}

#miyama-header.is-scrolled .header-logo {
	transform: scale(0.9);
}

@media (min-width: 768px) {
	.header-logo {
		max-width: 180px;
	}
}

.menu-trigger {
	background: none;
	border: none;
	cursor: pointer;
	height: 28px;
	position: relative;
	width: 38px;
	z-index: 110;
}

.menu-trigger span {
	background-color: var(--wp--preset--color--white);
	display: block;
	height: 3px;
	left: 0;
	position: absolute;
	transition: all 0.3s ease;
	width: 100%;
}

.menu-trigger span:nth-child(1) {
	top: 0;
}

.menu-trigger span:nth-child(2) {
	top: 12px;
}

.menu-trigger span:nth-child(3) {
	top: 24px;
}

.menu-trigger.is-active span:nth-child(1) {
	transform: translateY(12px) rotate(-45deg);
}

.menu-trigger.is-active span:nth-child(2) {
	opacity: 0;
}

.menu-trigger.is-active span:nth-child(3) {
	transform: translateY(-12px) rotate(45deg);
}

.miyama-nav-overlay {
	background-color: rgba(0, 0, 0, 0.95);
	height: 100vh;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	top: 0;
	transition: opacity 0.3s ease;
	width: 100vw;
	z-index: 105;
}

.miyama-nav-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.miyama-nav-menu {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 20px;
	height: 100%;
	justify-content: center;
	list-style: none;
}

.miyama-nav-menu a {
	color: var(--wp--preset--color--white) !important;
	font-size: 1.25rem;
	font-weight: 700;
	text-decoration: none;
	transition: color 0.3s;
}

.miyama-nav-menu a:hover {
	color: var(--wp--preset--color--gold) !important;
}

/* ==========================================================================
   フッター
   ========================================================================== */
#footer {
	background-color: var(--wp--preset--color--black);
	color: var(--wp--preset--color--white);
	padding: 45px 0;
}

.footer-container {
	margin: 0 auto;
	max-width: 1140px;
	width: 90%;
}

.footer-container a {
	color: var(--wp--preset--color--white);
}

.footer-grid {
	display: flex;
	flex-direction: column;
	gap: 30px;
	margin-bottom: 30px;
}

.footer-block h3 {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 0.25em;
}

.footer-block address {
	font-size: 0.95rem;
	font-style: normal;
	line-height: 1.8;
	opacity: 0.9;
}

.footer-links {
	list-style: none;
	margin-bottom: 30px;
}

.footer-links li {
	font-size: 0.85rem;
}

.footer-links a {
	font-size: 0.9rem;
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: opacity 0.3s;
}

.footer-links a:hover {
	opacity: 0.7;
}

.copyright {
	font-size: 0.85rem;
	opacity: 0.8;
	text-align: center;
}

@media (min-width: 768px) {
	#footer {
		padding: 90px 0;
	}

	.footer-grid {
		display: grid;
		gap: 45px 90px;
		grid-template-columns: repeat(3, 1fr);
		margin-bottom: 30px;
	}

	.copyright {
		text-align: right;
	}
}