@charset "utf-8";

/* BLOG LAYOUT
-----------------------------------------------------------*/
.blogSide{
	margin: 64px -16px 0;
	padding: 50px 10px;
	background: #f5f5f5;
}
@media screen and (min-width: 960px){
	.blogWp{
		display: flex;
		justify-content: space-between;
	}
	.blogMain{
		width: calc(100% - 450px);
	}	
	.blogSide{
		margin: 0;
		padding: 0;
		width: 400px;
		background: none;
	}
	.blogSideWp{
		position: sticky;
		top: 109px;
		background: none;
	}
}

/*  サイドバー
-----------------------------------------------------------*/
.blogSide > div:not(:first-child){
	margin-top: 32px;
}
.blogSideTtl{
	font-size: 2.4rem;
	font-weight: bold;
}

/* New Diary */
.blogSideEntryItem:not(:first-child){
	border-top: solid 1px #9da7af;
}
.blogSideEntryItem a{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 0;
	text-decoration: none;
	transition: opacity .2s;
}
.blogSideEntryItem_photo{
	width: 30%;
}
.blogSideEntryItem_ttl{
	width: calc(70% - 16px);
	line-height: 1.3;
}

/* チャレンジレース */
.side-sect_charengelist-item{
	margin-top: 5px;
}
.side-sect_charengelist-item a{
	position: relative;
	display: block;
	padding: 12px;
	color: #fff;
	text-decoration: none;
	text-align: center;
	letter-spacing: 0;
}
.side-sect_charengelist-item a:before{
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 10px;
	transform: translate(-50%, -50%);	
	content: "";
	display: inline-block;
	width: calc(100% - 5px);
	height: calc(100% - 5px);
	border: 1px dashed #fff;
	opacity: .5;
}
.side-sect_charengelist-item.-y2022 a{
	background: #2b2a3a;
}
.side-sect_charengelist-item.-y2023 a{
	background: #000;
}

/* アーカイブ */
.blogSideArchive dt{
	display: flex;
}
.blogSideArchive dt:not(:first-of-type){
	margin-top: 2px;
}
.blogSideArchive dt a{
	display: block;
	padding: 10px 20px;
	text-decoration: none;
	width: 100%;
	background-color: rgba(255, 255, 255, 0.8);
	transition: background .3s;
}

.blogSideArchive-down{
	display: flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	padding: 5px;
	color: #fff;
	background: #000d44;
	transition: opacity .2s;
}
.blogSideArchive-down .m-ico{
	line-height: 1;
	font-size: 2.5rem;
}
.blogSideArchive-down .m-ico:before{
	transition: .3s;
}
.blogSideArchive-down.is-open .m-ico:before{
	transform: rotate(180deg);
}
.blogSideArchive dd{
	padding: 15px 20px;
}

.blogSideArchiveList{
	display: flex;
	flex-wrap: wrap;
	margin: -5px 0 0 -5px;
}
.blogSideArchiveItem{
	margin: 5px 0 0 5px;
	width: calc(100% / 4 - 5px);
}
.blogSideArchiveItem span{
	margin-left: 5px;
	font-size: 1.2rem;
}


@media screen and (min-width: 960px){
	/* チャレンジレース */
	.side-sect_charengelist{
		margin-top: 10px;
	}
	.side-sect_charengelist-item a:hover{
		opacity: .6;
	}

	/* New Diary */
	.blogSideEntryItem a:hover{
		opacity: .6;
	}
	
	/* アーカイブ */
	.blogSideArchive{
		margin-top: 10px;
	}
	.blogSideArchive dt a{
		background: #f5f5f5;
	}
	.blogSideArchive dt a:hover{
		background: #eee;
	}
	.blogSideArchive-down:hover{
		opacity: .6;
	}
}

/* ACTIVITY LOG
-----------------------------------------------------------*/
.activityCas{
	display: flex;
	flex-wrap: wrap;
	margin: -32px 0 0 -8px;
}
.activityCas_item{
	margin: 24px 0 0 8px;
	width: calc(100% / 1 - 8px);
}
.activityCas_item a{
	display: flex;
	flex-direction: column;
	padding-bottom: 5px;
	height: 100%;
	text-decoration: none;
	overflow: hidden;
	box-shadow: 0 0 0.5em rgb(0 0 0 / 20%);
	border-radius: 4px;
	background: #fff;
}
.activityCas_item-tag{
	position: absolute;
	left: 0;
	bottom: 5px;
	display: flex;
	flex-wrap: wrap;
	margin: 10px 0 0 -2px;
	padding: 0 5px;
}
.activityCas_item-tagItem{
	margin-left: 2px;
}
.activityCas_item-tagItem span{
    display: block;
    padding: 2px 5px 2px 5px;
    text-decoration: none;
    font-size: 1.2rem;
	color: #fff;
	background-color: rgba(0, 0, 0, 0.7);
}
.activityCas_item-tagItem span:before{
	content: "#";
}
.activityCas_item-img{
	position: relative;
	order: -1;
}
.activityCas_item.-racereport .activityCas_item-img:before{
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	display: inline-block;
	content: "";
	width: 100%;
	height: 19px;
	background: url("/images/racereport.png") repeat-x center 0;
}
.activityCas_item-img figure{
	position: relative;
	overflow: hidden;
	padding-top: calc(588 / 950 * 100%);
}
.activityCas_item-img img{
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
	backface-visibility:hidden;
	transition: .5s ease;
}
.activityCas_item-detail{
	flex: 1;
	padding: 15px 15px 0;
}
.activityCas_item-title{
	font-weight: bold;
}
.activityCas_item-txt{
	margin-top: 8px;
	font-size: 1.6rem;
}
.activityCas_item-bot{
	margin-top: 10px;
}
.activityCas_item-date{
	margin: 24px 15px 0;
	text-align: right;
	font-size: 1.2rem;
}

/* 表示切り替え */
@media screen and (max-width: 959px){
	.sectWrap[aria-dis="2"] .activityCas_item{
		width: calc(100% / 2 - 8px);
	}
	.sectWrap[aria-dis="2"] .activityCas_item-detail{
		padding: 8px 8px 0;
	}
	.sectWrap[aria-dis="2"] .activityCas_item-title{
		font-size: 1.4rem;
		line-height: 1.3;
	}
	.sectWrap[aria-dis="2"] .activityCas_item-txt{
		display: none;
	}
}

@media screen and (min-width: 960px){
	.sectWrap{
		margin-top: 0;
	}

	.activityCas{
		margin: -40px 0 0 -40px;
	}
	.activityCas_item{
		margin: 40px 0 0 40px;
		width: calc(100% / 2 - 40px);
	}
	.activityCas_item a:hover{
		opacity: .6;
	}
	.activityCas_item a:hover img{
		transform: translate(-50%,-50%) scale(1.1);
	}
}

/* DETAIL
-----------------------------------------------------------*/
/* HEAD */
.blogHd{
	display: flex;
	flex-direction: column;
}
.blogDate{
	order: -1;
	margin: 0 -16px;
	text-align: right;
	font-size: 1.2rem;
}
.blogDate span{
	display: inline-block;
	padding: 0 16px 4px 0;
	border-bottom: solid 1px #000d44;
}
.blogTtl{
	margin-top: 8px;
	font-weight: bold;
	font-size: 2.4rem;
}
.blogTtl span{
	background: linear-gradient(transparent 60%, #c6ecf5 60%);
}
.blogCat{
	margin-top: 8px;
}
.blogCatList{
	display: flex;
	flex-wrap: wrap;
	margin: -5px 0 0 -5px;
}
.blogCatItem{
	margin: 5px 0 0 5px;
}
.blogCatItem a{
	display: block;
	padding: 2px 8px;
	font-size: 1.2rem;
	text-decoration: none;
	border: solid 1px #000d44;
	transition: background .3s;
}
.blogMv{
	margin: 16px -16px 0;
}
.blogMv figure {
    position: relative;
}
.blogMv figure img {
    width: 100%;
    height: auto;
}
.blogMv.-racereport figure:before {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    display: inline-block;
    content: "";
    width: 100%;
    height: 19px;
    background: url(/images/racereport.png) repeat-x center 0;
}
.blogDescription{
	margin: 0 -16px;
	padding: 8px 16px;
	color: #fff;
	font-weight: bold;
	background: #000d44;
}

/* コース */
.blogCourse{
	margin: 0 -16px;
	padding: 24px 16px;
	background: #f5f5f5;
}
.blogCourseTtl{
	font-weight: bold;
}
.blogCourseTxt{
	margin-top: 16px;
}

/* ブログ本体 --------------------- */
.blogBd{
	margin-top: 32px;
}
.blogBd p:last-of-type{
	line-height: 2;
}
/* p dl ul */
.blogBd p,
.blogBd dl,
.blogBd ul{
	line-height: 2.0;
}
.blogBd p:first-child,
.blogBd dl:first-child,
.blogBd ul:first-child{
	margin-top: 0;
}
.blogBd dt{
	margin-top: 25px;
	line-height: 2.0;
	font-weight: bold;
}
.blogBd dd{
	line-height: 2.0;
}
.blogBd dd + dd{
	margin-top: 25px;
}
.blogBd dd p:first-child{
	margin-top: 0;
}
.blogBd li{
	position: relative;
	padding-left: 1em;
}
.blogBd li:before{
	position: absolute;
	left: 0;
	top: 0;
	content: "・";
}

/* 吹き出し */
.fukidashi{
	position: relative;
	margin: 32px -16px 0;
	padding: 16px;
	line-height: 1.5!important;
	text-align: center;
	background: #d4f3ff;
}
.fukidashi:before {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -10px;
	border: 10px solid transparent;
	border-top: 10px solid #d4f3ff;
	z-index: 2;
}

/* 囲み */
.photo + p:not(.fukidashi),
.movie-tate + p:not(.fukidashi),
.movie-yoko + p:not(.fukidashi){
	margin-top: 16px;
	padding: 16px 24px;
	border-radius: 8px;
	border: solid 1px #9da7af;
}

/* 表組 */
.tab-cost{
	width: 100%;
	font-size: 1.2rem;
}
@media screen and (min-width: 960px){
	.tab-cost{
		font-size: 1.4rem;
	}
}
.tab-cost th, .tab-cost td{
	padding: 5px 10px;
	border-top: dashed 1px #ccc;
}
.tab-cost td{
	text-align: right;
}
.tabbox{
	margin: 20px auto 0;
		
	max-width: 550px;
}

.tab-blue{
	background: #fbfcfd;
}
.tab-blue:nth-child(odd){
	background: #ecf2f8;
}

.tab-green{
	background: #fbfdfb;
}
.tab-green:nth-child(odd){
	background: #eff8ee;
}

/* 画像 */
.photo{
	margin: 0 -16px;
}

/* 動画 */
.movie{
	position:relative;
	width: 100%;
	max-width: 550px;
	padding-top: 56.25%;
	margin: 25px auto 0;
}
.movie iframe{
	position:absolute;
	top:0;
	right:0;
	width:100%;
	height:100%;
}

.movie-tate{
	position:relative;
	width: 550px;
	padding-top: 977px;
	margin: 25px auto 0;
}
.movie-tate iframe{
	position:absolute;
	top:0;
	right:0;
	width:100%;
	height:100%;
}
.movie-tate *{
	outline: none;
}
@media screen and (max-width: 920px){
	.movie-tate{
		width: 100%;
		max-width: 550px;
		padding-top: calc(977 / 550 * 100%);
	}
}

/* googleマップ */
.gmap {
	margin-top: 20px;
	height: 0;
	overflow: hidden;
	padding-bottom: 56.25%;
	position: relative;
}
.gmap iframe {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
}


/* BLOG下部 */
.blogBot{
	margin: 40px -8px 0;
	padding: 32px 8px 0;
	border-top: dashed 1px #000d44;
}
.blogBotBox{
	display: flex;
}
.blogBotBox:not(:first-of-type){
	margin-top: 16px;
}

.blogBotTtl{
	width: 4.5em;
}
.blogBotBd{
	flex: 1;
	padding-left: 16px;
	border-left: solid 1px #000d44;
}
.blogBotList{
	display: flex;
	margin-left: -16px;
}
.blogBotItem{
	margin-left: 16px;
}
.-tag .blogBotItem a:before{
	content: "#";
}


.activityLink_item{
	margin-top: 32px;
}
.activityLink_item a{
	position: relative;
	display: flex;
	justify-content: space-between;
	flex-direction: row-reverse;
	padding: 8px;
	color: #fff;
	text-decoration: none;
	background: #000d44;
	transition: opacity .3s;
}
.activityLink_item a:before{
	pointer-events: none;
	position: absolute;
	left: 2px;
	top: 2px;
	z-index: 1;
	content: "";
	display: inline-block;
	width: calc(100% - 6px);
	height: calc(100% - 6px);
	border: 1px dashed #fff;
	opacity: .5;
}
.activityLink_detail{
	position: relative;
	padding-bottom: 1em;
	width: 70%;
}
.activityLink_title{
	line-height: 1.3!important;
}
.activityLink_txt{
	margin-top: 4px;
	font-size: 1.4rem;
	line-height: 1.3!important;
	
	overflow: hidden;
	display: -webkit-box;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	max-height: 37px;
}
.challengeItem_more{
	position: absolute;
	right: 0;
	bottom: 0;
	text-align: right;
	font-size: 1.2rem;
	line-height: 1!important;
}
.activityLink_img{
	width: calc(30% - 8px);
}

@media screen and (min-width: 960px){
	.blogHd{
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: center;
	}
	.blogDate{
		margin: 0;
		font-size: 100%;
	}
	.blogDate span{
		padding: 0 8px 4px;
	}
	.blogTtl{
		margin-top: 24px;
		font-size: 3.2rem;
		width: 100%;
	}
	.blogCat{
		order: -2;
		margin-top: 0;
	}
	.blogCatItem a{
		padding: 4px 16px;
		font-size: 100%;
	}
	.blogCatItem a:hover{
		background: #ecf2f6;
	}
	.blogMv{
		margin: 32px 0 0;
	}
	.blogMv figure {
		overflow: hidden;
		padding-top: calc(588 / 950 * 100%);
	}
	.blogMv figure img {
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translate(-50%,-50%);
	}
	.blogDescription{
		margin: 0;
		padding: 24px 32px;
	}
	
	/* ブログ本体 --------------------- */
	/* 記事 */
	.blogBd{
		margin-top: 40px;
	}
	
	/* コース */
	.blogCourse{
		margin: 32px 0 0;
		padding: 32px;
	}	
	
	/* 吹き出し */
	.fukidashi{
		width: 100%;
		margin: 64px auto 0;
		padding: 24px 32px;
		max-width: 700px;
		text-align: center;
		border-radius: 50vw;
	}
	.fukidashi:before {
		margin-left: -14px;
		border-width: 14px;
		border-top-width: 14px;
	}

	/* 囲み */
	.photo + p:not(.fukidashi),
	.movie-tate + p:not(.fukidashi),
	.movie-yoko + p:not(.fukidashi){
		margin: 24px auto 0;
		padding: 24px 32px;
		max-width: 770px;
	}

	/* 画像 */
	.photo{
		margin: 20px auto 0;
		width: 100%;
		max-width: 550px;
		text-align: center;
	}
	.photo img{
		overflow: hidden;
		border-radius: 5px;
	}
	.blogBd img{
		border-radius: 5px;
	}

	/* BLOG下部 */
	.blogBot{
		margin: 64px 0 0;
		padding: 32px 0 0;
	}

	.blogBotTtl{
		width: 6em;
	}
	
	
	.activityLink_item{
		margin: 56px auto 0;
		width: 60%;
	}
	.activityLink_item a:hover{
		opacity: .6;
	}
	.activityLink_txt{
		margin: 8px 8px 0 0;
	}
	.activityLink_img{
		width: calc(30% - 16px);
	}
}

/*  記事送り
-----------------------------------------------------------*/
.paging, .content-nav{
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 40px;
}
.paging_prev, .paging_next{
	display: block;
	margin: 0 8px;
}
.link_page,
.current_page,
.paging_prev a,
.paging_next a,
.content-nav a{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 30px;
	height: 30px;
	text-align: center;
	border: solid 1px #000d44;
	background: #fff;
	transition: all 0.2s ease;
}
.current_page{
	color: #fff;
	font-weight: bold;
	text-decoration: none;
	background: #000d44;
}
.content-nav a[rel="prev"], .content-nav a[rel="next"]{
	margin: 0 -5px;
}
.paging_prev a, .paging_next a, .content-nav a[rel="prev"], .content-nav a[rel="next"]{
	text-decoration: none;
	border: none;
}

@media screen and (min-width: 960px){
	.paging, .content-nav{
		margin-top: 80px;
	}
	.link_page:hover, .content-nav__next a:hover, .content-nav a:hover{
		opacity: 0.6;
		background: #f5f5f5;
		text-decoration: underline;
	}
	a.link_before:hover, a.link_next:hover{
		background: #f5f5f5;
	}
	.link_page, .current_page, .paging_prev a, .paging_next a, .content-nav a{
		width: 40px;
		height: 40px;
	}
}


/*  タイムテーブル
-----------------------------------------------------------*/
.photo.-timetable {
	position: relative;
	transition: opacity .3s;
}
@media screen and (min-width: 960px){
	.photo.-timetable:hover{
		opacity: .6;
	}
}
.pc-zoom {
	cursor: zoom-in;
}
.sp-scroll {
	overflow-x: scroll;
	display: block;
	white-space: nowrap;
	padding: 16px 0;
}

/* 拡大アイコン（PC） */
.zoom-icon {
	position: absolute;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%);
	z-index: 10;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 4px 16px;
	color: #fff;
	line-height: 1;
	border-radius: 8px;
	background: rgba(0, 0, 0, 0.5);
}
.zoom-icon .m-ico{
	font-size: 2.5rem;
}

/* 横スクロールアイコン（SP） */
.scroll-icon {
	position: absolute;
    top: 0;
    bottom: 0;
    left: 40vw;
	display: flex;
	justify-content: center;
	align-items: center;
    margin: auto 0;
	z-index: 10;
	padding: 4px 16px;
	color: #fff;
	opacity: .8;
	font-size: 4.0rem;
	filter: drop-shadow(0px 0px 10px rgba(0, 0, 0, 0.7));
	animation: swipe_animation 1s ease-in-out infinite alternate;
}
@keyframes swipe_animation {
    0% {
        -webkit-transform: translateX(-5.3333333333vw);
        transform: translateX(-5.3333333333vw)
    }

    100% {
        -webkit-transform: translateX(5.3333333333vw);
        transform: translateX(5.3333333333vw)
    }
}

/* モーダル全体 */
.timetable-modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.8);
	z-index: 9999;
}
.timetable-modal-inner{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	padding: 16px;
}

/* モーダル内画像 */
.timetable-modal-img {
	max-width: 1400px;
}



/*
.entrylist_item{
	margin-top: 50px;
}
.entrylist_item a{
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: center;
	padding: 5px;
	text-decoration: none;
	line-height: 1.3;
	border: solid 1px #ccc;
	border-radius: 5px;
	background: #fff;
}
.entrylist_item-img{
	width: 30%;
}
.entrylist_item-detail{
	width: calc(70% - 10px);
}
.entrylist_item-txt, .entrylist_item-date, .entrylist_item-tag{
	display: none;
}

@media screen and (min-width: 960px){
	.entrylist_item{
		margin: 80px 0 0 auto;
		max-width: 50%;
	}
	.entrylist_item a:hover{
		opacity: .6;
	}
}




*/

/* アーカイブ
-----------------------------------------------------------*/
/*.entry-cassette{
	margin: 0 10px;
}
.entrylist_item{
	margin-top: 20px;
}
.entrylist_item a{
	display: flex;
	flex-direction: column;
    text-decoration: none;
    overflow: hidden;
	padding-bottom: 10px;
    box-shadow: 0 0 0.5em rgb(0 0 0 / 20%);
    border-radius: 4px;
    background: #fff;
}
.entrylist_item-img{
	position: relative;
	order: -1;
}
.entrylist_item-img figure{
	height: 100%;
}
.entrylist_item-img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
}
.entrylist_item.-racereport .entrylist_item-img:before{
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	display: inline-block;
	content: "";
	width: 100%;
	height: 19px;
	background: url("/images/racereport.png") repeat-x center 0;
}
.entrylist_item-img figure{
	position: relative;
	overflow: hidden;
	padding-top: calc(588 / 950 * 100%);
}
.entrylist_item-img img{
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	vertical-align: bottom;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
	backface-visibility:hidden;
	transition: .5s ease;
}
.entrylist_item-tag{
	position: absolute;
	left: 0;
	bottom: 5px;
	display: flex;
	flex-wrap: wrap;
	margin: 10px 0 0 -2px;
	padding: 0 5px;
}
.entrylist_item-tagitem{
	margin-left: 2px;
}
.entrylist_item-tagitem span{
    display: block;
    padding: 2px 5px 2px 5px;
    text-decoration: none;
    font-size: 1.2rem;
	color: #fff;
	background-color: rgba(0, 0, 0, 0.7);
}
.entrylist_item-tagitem span:before{
	content: "#";
}
.entrylist_item-detail{
	position: relative;
	padding: 15px 15px 0;
}
.entrylist_item-title{
	font-size: 2.0rem;
	line-height: 1.3;
}
.entrylist_item-txt{
	margin-top: 15px;
	line-height: 1.5;
}

.entrylist_item-bot{
	margin-top: 10px;
}
.entrylist_item-date{
	margin: 10px 15px 0;
	text-align: right;
	font-size: 1.2rem;
}


@media screen and (min-width: 960px){
	.entry-cassette{
		margin: 0;
	}
	.entrylist_item{
		margin-top: 30px;
	}
	.entrylist_item a{
		flex-direction: row;
		justify-content: space-between;
		min-height: 300px;
		padding-bottom: 0;
	}
	.entrylist_item a:hover{
		opacity: .6;
	}
	.entrylist_item a:hover img{
		transform: translate(-50%,-50%) scale(1.1);
	}
	.entrylist_item-img{
		width: 50%;
	}
	.entrylist_item-img figure{
		height: 100%;
	}
	.entrylist_item-img img{
		transition: .5s ease;
	}
	.entrylist_item-detail{
		padding: 30px;
		width: 50%;
	}
	.entrylist_item-txt{
		margin-top: 20px;
	}
	.entrylist_item-date{
		position: absolute;
		right: 15px;
		bottom: 5px;
		text-align: right;
		font-size: 1.3rem;
	}
}*/
