:root{
	--bgclr1:#E3EFF7;
	--bgclr2:#F2F8FC;
	--clr1:linear-gradient(#1C4387, #01255C);
	--clr1_line:3px solid #345283;
	--clr2:linear-gradient(#c2185b, #9b1d3f);
	--clr3:linear-gradient(#fff, #f1f1f1);
	--clr4:linear-gradient(#d96c3f, #c45a2a);
	--clr5:linear-gradient(#1da3a3, #2f8f8f);
	--clrw:#fff;
	--clrb:#000;
	--box_sdw:0px 3px 15px -3px #333;
}
*{
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: <weight>;
	font-style: normal;
	line-height:160%;
}
img{
	vertical-align: top;
	max-width:100%;
	height:auto;
}
a{
	color:#333;
	text-decoration:underline;
	&:has(img):hover{
		opacity:0.7;
	}
}

.b { font-weight:bold; }
.r { color:#ff0000; }
.w { color:#ffffff; }
.g{ color:#b8b69b; }
.db{ color:#000066; }
.gr{ color:#008a42; }
.og{ color:#e91f21; }
.pi{ color:#ee6397; }
.lb{ color:#0033ff; }
.nlf{ font-size:1.2em}
.lf{ font-size:1.5em}
.llf{ font-size:2em}
.rclr {color: #ff0000;}
.gclr {color: #000;}
.bclr {color: #03f;}

body{
	background:var(--bgclr2);
}

section{
	width:100%;
	max-width:1150px;
	margin:0 auto 30px auto;
}
.box_sdw{
	box-shadow:var(--box_sdw);
}

#wrap {
	margin:auto;
	padding:5px 2px;
	min-height: calc(100vh - 426px);
}
@media screen and (min-width: 768px) {
	#wrap {
		padding:25px 0 5px 0;
		background-image: url(../common/img/hed_bg.png);
		background-repeat:no-repeat;
		background-size:100%;
		min-height: calc(100vh - 346px);
	}
}

.main {
    width:calc(100% - 15px);
    height: auto;
}
.clr{
	clear: both;
}
h3 {
    padding:10px 0;
    font-size: 12pt;
    font-style: normal;
    clear: both;
	position:relative;
	&:before{
		content:"》》";
		color:#01255C;
		margin-right: -3px;
	}
}
/*=====================================================
ヘッダー
=====================================================*/
header{
	background:var(--clr1);
	padding:10px 0;
}
#top {
	text-align:left;
	width:100%;
	max-width:1150px;
	margin:auto;
	border-bottom:none;
	position:relative;
	padding:0;
}
.sns{
	position:absolute;
	top:0;
	right:0;
}
@media screen and (min-width: 768px) {
	#nav{
		position: fixed;
		z-index:9998;
		top: 0;
		right:0;
		height: 100%;
		background:#f2f8fc;;
		transition:0.3s all;
		transform: translateX(100%);
		ul{
			margin-top: 65px;
			li{
				display: block;
				box-sizing: border-box;
				border-bottom: 1px solid #0071bd;
				a{
					display: block;
					padding:20px 40px;
					text-decoration:none;
					&:hover{
						background:#fff;
						color:#333;
					}
				}
				&:first-child{
					border-top:1px solid #0071bd;
				}
			}
		}
		&.active{
			transform: translateX(0%);
			box-shadow: 0px 3px 15px #333;
		}
	}
}
@media screen and (max-width: 767px) {
	.sns{
		position:static;
		margin-bottom:5px;
	}
}
/*ヘッダー*/
/*-----------------------------------------------------
お知らせ
-----------------------------------------------------*/

div#notice {
	margin:0px;
	padding:0px;
	width:100%;
	height:25px;
	float:left;
	background:#f00;
	margin:10px 0 5px 15px;
}

div.notice_ttl{
	position:relative;
	width:256px;
	float:left}
div.notice_ttl img{
	width:100%;
	
}
div.notice_main{
	height: 17px;
    padding: 3px 0 3px 0;
    max-width: 100%;
    margin-bottom: 15px;
    background: #fff;
    border: 1px solid #ccc;
}

.u_itx{
    position: absolute;
    top:50%;
    font-size:large;
	margin:0;
	color: #fff;
    font-weight: bold;
    padding-left: 11%;
	transform: translateY(-50%);
}
/*================
/*    nav_btn
================*/
svg {
  height: 40px;
  position: absolute;
  width: 40px;
  cursor: pointer;
}


.plate {
	height:50px;
	width:50px;
	position: fixed;
	z-index: 9999;
	top:10px;
	right:10px;
	background: #f33;
	.burger{
		width:50px;
		height:50px;
		position:relative;
		span{
			position:absolute;
			display:block;
			width:35px;
			height:4px;
			background:#fff;
			border-radius:5px;
			transition:all 0.3s;
		}
		.line1{
			top:calc(67% - 10px);
			left:50%;
			transform:translate(-50%,-50%);
		}
		.line2{
			top:67%;
			left:50%;
			transform:translate(-50%,-50%);
		}
		.line3{
			top:calc(67% + 10px);
			left:50%;
			transform:translate(-50%,-50%);
		}
		.meny_moji{
			background:none;
			color:#fff;
			width: 100%;
			height: auto;
			text-align: center;
		}
	}
	&.active .burger{
		.line1{
			top:50%;
			transform:translate(-50%,-50%) rotate(405deg);
		}
		.line2{
			transform:translate(-50%,-50%) rotateY(90deg);
		}
		.line3{
			top:50%;
			transform:translate(-50%,-50%) rotate(-405deg);
		}
		.meny_moji{
			opacity:0;
		}
	}
}
/*====================================================================
サブバー
====================================================================*/
.sub_bar {
    font-size: large;
    height: 48px;
    padding: 0px;
    margin-bottom: 5px;
    border: 1px solid #330000;
    text-align: left;
    -webkit-border-radius: 8px;
    text-shadow: 0px 1px 1px rgba(5, 0, 0, 0.5);
    display: flex;
    align-items: center;
	text-decoration:none;
	span{
		color:#fff;
		font-weight:bold;
	}
}
.sub_race{
	background:var(--clr1);
	border:var(--clr1_line);
	border-radius:0;
}
/*サブバー*/
/*====================================================================
今日のレース
====================================================================*/
.today_race{
	background:#fff;
	box-shadow:0px 3px 15px -3px #333;
}
.clearfix{
	.header_race_day
	.header_race_day{
		padding-bottom:10px;
		.header_race_place{
			padding:0 5px;
			.header_race_icon{
				display:flex;
				padding:5px 0 5px 3px;
				border-bottom:1px solid #ccc;
				.place_icon{
					margin-right:10px;
					width: 40px;
					height: 25px;
				}
				.race_icon{
					display:flex;
					width: 110px;
					height: 25px;
					img{
						margin-right:10px;
					}
				}
			}
		}
	}

}
@media screen and (min-width: 768px) {
	.clearfix {
    	.header_race_day
		.header_race_day {
			display: grid;
			grid-template-columns: auto auto;
        	.header_race_place {
				box-sizing:border-box;
				&:nth-child(-n+5) {
					grid-column: 1;
				}
				&:nth-child(6) {
					grid-row: 1;
					grid-column: 2;
				}
				&:nth-child(7) {
					grid-row:2;
					grid-column: 2;
				}
				&:nth-child(8) {
					grid-row:3;
					grid-column: 2;
				}
				&:nth-child(9) {
					grid-row:4;
					grid-column: 2;
				}
				&:nth-child(10) {
					grid-row:5;
					grid-column: 2;
				}
			}
		}
	}
}
/*今日のレース*/
/*==========================================================
ボタン
==========================================================*/
.btn{
	width:calc(100% - 4px);
	max-width:100%;
	margin:2px;
	box-sizing:border-box;
	a{
		height: 100%;
        line-height: 160%;
		display: block;
		box-sizing: border-box;
		border: 1px solid;
		padding: 20px 10px 20px 10px;
		text-decoration: none;
		position:relative;
		text-align:center;
		max-width:100%;
		font-size:min(4vw,24px);
		&:after{
			content:">";
			display:inline-block;
			position: relative;
            left: 0px;
			transition:all 0.3s ;
		}
		&:hover{
			opacity:0.7;
			&:after{
            left:5px;
			}
		}
	}
}
/*ボタン*/
/*===============================================
コンテンツ
===============================================*/
.cot_box{
	display:block;
	background-color:var(--clrw);
	box-shadow:var(--box_sdw);
	padding: 15px 16px;
    box-sizing: border-box;
    width: 100%;
    max-width: 1150px;
	&:has(.sub_bar){
		padding-top:0;
	}
	p{
		padding-bottom:10px;
	}
}
@media screen and (max-width: 767px) {
	.cot_box{
		padding: 15px 5px;
	}
}
/*コンテンツ*/
/*===============================================
フッター
===============================================*/
footer{
	width:100%;
	color:var(--clrw);
	#footer{
		max-width:1150px;
		width:100%;
		margin:auto;
	}
	a{
		color:#eee;
		&:hover{
			color:var(--clrw);
		}
	}
}
.footer_navi{
	padding: 0 20px 20px 20px;
	.footer_navi_home,
	.footer_navi_menu{
		padding: 5px 0 5px 20px;
		position:relative;
	}
}
@media screen and (min-width: 768px) {
	.footer_navi_home:hover:before,
	.footer_navi_menu:hover:before{
		content:"▼";
		position: absolute;
        left: 0;
        transform: rotateZ(270deg);
	}
}
@media screen and (max-width: 767px) {
	footer{
		text-align:center;
		a{
			text-align:center;
		}
	}
	.footer_navi{
		padding: 1px;
		display: grid;
    	grid-template-columns:50% 50%;
		gap:1px;
		.footer_navi_home,
		.footer_navi_menu{
			padding:0;
			a{
				display: block;
                border: 1px solid;
                box-sizing: border-box;
                padding: 10px 0;
			}
		}
	}
}
/*フッター*/
/*==============================================
発売日程表
==============================================*/

.table1 {
    width: 1000px;
    border-collapse: collapse;
    margin:auto;
    table-layout: fixed;
	td {
		border: 1px #000 solid;
		color: #fff;
		font-size: 12px;
		line-height: 150%;
		vertical-align: middle;
		text-wrap: auto;
	}
	a{
		color: #fff;
		&.heiwa:link {
			text-decoration: underline;
			overflow: hidden;
			color: #0033ff;
		}
	}
}
/*発売日程表*/
/*==========================================
アイフレーム
==========================================*/
.floor{
	width:100%;
	aspect-ratio: 5 / 4;
	overflow:hidden;
}
/*アイフレーム*/
/*=====================================================
ニュースナビ
=====================================================*/
.news_nav{
	justify-content: center;
    display: flex;
    max-width: 100%;
	flex-wrap: wrap;
	.btn_year{
		margin: 0px 10px;
		a:hover{
			text-decoration:none;
		}
	}
}
@media screen and (max-width: 767px) {
	.news_nav{
		position: sticky;
        bottom: 0;
		&:before{
			content:"";
			display:block;
        	background: var(--clr1);
            width:100%;
            height: 100%;
            position: absolute;
            left:0;
			z-index: -1;
			opacity:0.7;
		}
		.btn_year{
			margin: 0px;
			width:50%;
            border: 1px solid #fff;
            box-sizing: border-box;
			a{
				color:var(--clrw);
				display:block;
				width:100%;
				text-align:center;
				padding:10px 0;
			}
		}
	}
}
/*ニュースナビ*/

@media screen and (min-width: 768px) {
	.pc_none{
		display:none;
	}
	h4{
		float: left;
		margin-right: 16px;
		color:var(--clrb);
		font-weight:normal;
	}
}



.loop-slider{
	touch-action: pan-y;
	overflow: hidden;
	margin:20px 0;
	.track{
	  	display: flex;
	  	white-space: nowrap;
	  	user-select: none;
	  	gap:10px;
		width: fit-content;
		.item{
			display:flex;
			align-content: center;
			width:200px;
			a {
				user-select: none;
				-webkit-user-drag: none;
				height: fit-content;
				img{
					width:200px;
	  				height: auto;
	 				pointer-events: none;
	 				user-select: none;
	 				-webkit-user-drag: none;
				}
			}
		}
	}
}
@media screen and (min-width: 768px) {
	.loop-slider{
		margin:0 0 20px 0;
	}
}
@media screen and (max-width: 767px) {
	.sp_none{
		display:none;
	}
	#nav{
		position: fixed;
		z-index:9998;
		top: 0;
		width: 100%;
		background: #fff;
		transition:0.3s all;
		transform: translateY(-100%);
		ul{
			margin-top: 65px;
			li{
				display: block;
				box-sizing: border-box;
				border-bottom: 1px solid #0071bd;
				a{
					display: block;
					padding:20px 0;
					text-decoration:none;
					text-align:center;
					&:hover{
						background:#eee;
						color:#333;
					}
				}
				&:first-child{
					border-top:1px solid #0071bd;
				}
			}
		}
		&.active{
			transform: translateY(0%);
			box-shadow: 0px 3px 15px #333;
		}
	}
	div.notice_ttl {
		float:none;
		max-width:500px;
		width:100%;
	}
	div.notice_main {
		background-color: #ffffff;
		border: #cccccc 1px solid;
		border-radius: 8px;
		-webkit-border-radius: 8px;
		padding: 10px;
		margin-bottom: 1em;
		width:100%;
		height:auto;
		box-sizing:border-box;
		.marquee_str{
			margin:0;
		}
	}
	h4{
		border-top:1px solid #ccc;
	}
}
/*============================================================
dis
============================================================*/
@media screen and (min-width: 768px) {
	.dis_2_1{
		display:flex;
		.pc_w50{
			width:50%;
		}
	}
}
.dis_3_slide{
	.box{
		display:flex;
        gap: 10px;
		flex-wrap: wrap;
		.item{
			width: calc(33% - 5px);
		}
	}
}
@media screen and (max-width: 767px) {
	.dis_3_slide{
		overflow-x:auto;
		overflow-y: hidden;
		.box{
			width: fit-content;
			flex-wrap:nowrap;
			.item{
				width:200px;
			}
		}
	}
}
.flx{
	display:flex;
	max-width:100%;
}

.txtc{
	text-align:center;
}
.p5_10{
	padding:5px 10px;
}
.mb20{
	margin-bottom:20px;
}
