@charset "UTF-8";
/*-----------------------------------
 ページ調整
------------------------------------*/

.cp_main {
  font-size: 16px;
  line-height: 1.7;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

.cp_main img{
	width: 100%;
	max-width: 100%;
  }


.cp_main h1, .cp_main h2, .cp_main h3, .cp_main h4, .cp_main h5, .cp_main h6 {
	font-weight: bold;
	margin-bottom:0;
	max-width:initial;
}

.cp_main p ,
.cp_main li ,
.cp_main dt ,
.cp_main dd {
  line-height: 1.7;
}


.cont960{
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
}

.cp_block {
	width: 100%;
	max-width: none;
	margin-bottom: 0;
}

/* 幅769px以下で下余白削除　*/
@media (min-width: 769px){
	.cp_block {
		margin-bottom: 0;
	}
}

.cp_main{
	padding: 0;
}
.cp_main img{
	max-width: 100%;
}


/* ページ内リンク調整用 */
.cp_main .page__anchor{
  height: 0px;
  display: block;
  padding-top: 56px;
  margin-top: -56px;
}

@media (min-width: 769px) {
	.cp_main .page__anchor{
    padding-top: 66px;
    margin-top: -66px;
  }
}

/* setting a */
/* 一旦hoverリセット*/
.cp_main a:hover {
	opacity: 1;
}

a.link-txt{
	transition: none;
	text-decoration: underline;
}
a:hover.link-txt{
	text-decoration: none;
}

.cp-btn__small:hover{
	opacity:.7;
}

@media (min-width: 769px){
	.cp_main a,
	.cp_main .arrow:before,
	.cp_main .arrow:after,
	.cp-btn__small{
		transition: all .3s ease-out;
	}

}


/* setting other */
.attention__txt{
	font-size: 3.5vw;
	color: #cc0033;
}
@media only screen and (min-width: 390px) {
	.attention__txt{
		font-size: 12px;
	}
}

/*-----------------------------------
 l_common 調整用
------------------------------------*/

/* スマホヘッダー空き調整 */
.bw_contentsArea {
	margin-top: 56px !important;
}

/* whg_carousel_ex.css対策　スマホヘッダー空き調整 */
@media all and (max-width: 768px) {

  body[data-page-type="top"] .bw_contentsArea {
    margin-top: 56px !important;
  }
}

@media (min-width: 769px) {
	.bw_contentsArea {
		margin-top: 66px !important;
	}
}

/*-----------------------------------
 余白調整
------------------------------------*/
.mt10{ margin-top:10px !important;}
.mt20{ margin-top:20px !important;}
.mt30{ margin-top:30px !important;}
.mt40{ margin-top:40px !important;}

/*-----------------------------------
 汎用枠
------------------------------------*/
.cp_main .border-red_dash1{
	border: 1px dashed #cc0033;
	padding: 20px;
}
.cp_main .border-red_dash2{
	border: 2px dashed #cc0033;
	padding: 20px;
}

/*-----------------------------------
 ボタン
------------------------------------*/
/* ボタン large -entry btn- */
.cp_main .cp-btn__large{
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 640px;
  font-size: clamp(16px , 3.2vw , 26px);
  font-weight: bold;
  background: #F9D300;
  padding: min(4% ,20px);
  border-radius: 100px;
  margin: auto;
  color: #0062C2 !important;
  position: relative;
  line-height: 1.2;
  }

/* ボタン large -entry btn- end */
.cp_main a.cp-btn__large.cp-end{
	pointer-events: none;
	background: #9a9a9a;
  }

.cp_main .cp-btn__large.cp-end:hover{
	pointer-events: none;
	border-bottom: 5px solid #616161 !important;
}

/* ボタン middle -ボタンリンク- */
.cp_main .cp-btn__middle {
    display: flex;
	justify-content: center;
	align-items: center;
    background: #cc0033;
    color: #FFF;
    padding: min(4% ,16px);
    border-radius: 30px;
    font-weight: bold;
    font-size: 16px;
    position: relative;
}

/* ボタン middle -ボタンリンク- */
.cp_main .cp-btn__small {
    display: flex;
	justify-content: center;
	align-items: center;
    background: #cc0033;
    color: #FFF;
    padding: min(4% ,16px);
    border-radius: 30px;
    font-weight: bold;
    font-size: 14px;
    position: relative;
	padding: 0.5em;
}

/* ボタン */
.cp_main a.cp-btn__large,
.cp_main a.cp-btn__middle,
.cp_main .cp-btn__small{
  color: #FFF;
}

/* ボタン → */
.cp_main .arrow:before,
.cp_main .arrow__small:before{
	position: absolute;
	content: " ";
	right: min(4% ,24px);
	width: 8px;
	height: 8px;
	border-top: 2px solid #FFF;
	border-right: 2px solid #FFF;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%) rotate(45deg);
    -ms-transform: translateY(-50%) rotate(45deg);
}


/* ボタン ↓ */
.cp_main .arrow--vertical:before{
	position: absolute;
	content: " ";
	right: min(4% ,24px);
	width: 10px;
	height: 10px;
	border-top: 2px solid #FFF;
	border-right: 2px solid #FFF;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%) rotate(135deg);
    -ms-transform: translateY(-50%) rotate(135deg);
}

/* 影 */
.cp_main .btn-shadow {
    box-shadow: 0px 3px 0 #DB9000;
}

@media (min-width: 769px) {
	/* ボタン 影 hover*/
	.cp_main a.btn-shadow:hover,
	.cp_main a.btn-shadow:hover,
	.cp_main a.btn-shadow:hover{
	opacity: 1;
	transform: translateY(3px);
	box-shadow: none;
	}
}

/* ボタンのテキスト img */
.cp_main .cp-btn__large img,
.cp_main .cp-btn__middle img,
.cp_main .cp-btn__small img{
	width: 80%;
}

@media (min-width: 321px) {
	/* ボタンのテキスト img*/
	.cp_main .cp-btn__large img,
	.cp_main .cp-btn__middle img,
	.cp_main .cp-btn__small img{
		height: 17px;
		width: auto;
	}
	
}

@media (min-width: 769px) {
	/* ボタンのテキスト img large*/
	.cp_main .cp-btn__large img{
		height: 33px;
	}

	/* ボタンのテキスト img middle*/
	.cp_main .cp-btn__middle img{
		height: 20px;
	}
	
}

/* ボタン 色設定 */
.cp_main .btn-yellow{
	background: #ffb400;
}
.cp_main .btn-green{
	background: #009141;
}
.cp_main .btn-d-orange{
	background: #ce5b0e;
}

@media only screen and (min-width: 769px) {

	/* ボタン → */
	.cp_main .arrow:before{
		width: 14px;
		height: 14px;
		border-top: 3px solid #FFF;
		border-right: 3px solid #FFF;
	}

	/* ボタン → */
	.cp_main .arrow__small:before{
		width: 12px;
		height: 12px;
		border-top: 2px solid #FFF;
		border-right: 2px solid #FFF;
	}

	/* ボタン ↓ */
	.cp_main .arrow--vertical:before{
		width: 14px;
		height: 14px;
		border-top: 3px solid #FFF;
		border-right: 3px solid #FFF;
	}

	.cp_main .arrow:hover::before,
	.cp_main .arrow__small:hover::before{
		right: 15px;
	}

}

/* テキストカラー */
.cp_main .txt-red{
	color:#cc0033;
}

/*-----------------------------------
 テキスト　＼ ／
------------------------------------*/
/* テキスト */
.txt__deco-slash{
	display: inline-block;
	padding: 0 1em;
	position: relative;
	text-align: center;
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: bold;
}

/* 飾り */
.txt__deco-slash:before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 105%;
    border-right: 2px solid #fa000a;
    position: absolute;
    -webkit-transform: rotate(22.5deg);
    transform: rotate(22.5deg);
    top: -5px;
    right: 0;
}

.txt__deco-slash:after {
    content: "";
    display: inline-block;
    width: 10px;
    height: 105%;
    border-left: 2px solid #fa000a;
    position: absolute;
    -webkit-transform: rotate(-22.5deg);
    transform: rotate(-22.5deg);
    top: -5px;
    left: 0;
}

/*-----------------------------------
 リボン
------------------------------------*/
.cp_main .cp_ribbon {
	background: #0169c0;
	color: #FFF;
	padding: 0.5em;
	width: calc(100% - 30px);
	margin: 0 auto;
	position: relative;
	box-sizing: border-box;
	display: grid;
	place-items: center;
  }
  .cp_ribbon::before, .cp_ribbon::after {
	content: "";
	position: absolute;
	width: calc((10px) + 1px);
	height: 100%;
	background: #0169c0;
	top: 0;
	-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 80% 50%);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 80% 50%);
  }
  .cp_ribbon::before {
	left: calc((10px) * -1);
  }
  .cp_ribbon::after {
	right: calc((10px) * -1);
	transform: scaleX(-1);
  }
  
/*-----------------------------------
 リスト頭出し
------------------------------------*/
.cp_main .list__normal li{
	padding-left:1em;
	text-indent:-1em;
}

/* :::::::::::::::::::::::::::::::::::::::::::::::::::::::-
 コンテンツ固有
::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/*-----------------------------------
 KV以下のコンテンツの幅
------------------------------------*/
.cp_main--lower{
	padding: min(4% , 50px);
	max-width: calc(820px + 100px);
	margin: auto;
}


/*-----------------------------------
 setting
------------------------------------*/
.cp_main section {
    position: relative;
}

/*-----------------------------------
 背景
------------------------------------*/
.cp_main{
	background: url(../img/bg_dot.png) center top ,url(../img/bg_sp.jpg) center top;
	background-size: auto, 100%;
}

@media screen and (min-width: 769px) {
	.cp_main {
		background: url(../img/bg_dot.png) center top ,url(../img/bg_pc.jpg) calc(50% + 489px) top;
		background-size: auto, auto;
	}
}

/*-----------------------------------
 メインビジュアル
------------------------------------*/
.cp_main h1{
	text-align: center;
	max-width: 100%;
	background: url(../img/221101_11th_top_mv_2000.jpg) no-repeat center top;
	border-bottom: 4px solid #123d90;
	border-image: linear-gradient(to right, #002a65 0%, #2e92f1 50% , #002a65 100%);
	border-image-slice: 1;
}

.cp_main h1 img{
	max-width: 960px;
	margin: 0 auto;
	display: block;
}

@media screen and (min-width: 769px) {
	.cp_main h1{
		border-bottom: 7px solid #123d90;
		border-image: linear-gradient(to right, #002a65 0%, #2e92f1 50% , #002a65 100%);
		border-image-slice: 1;
	}
}

/*-----------------------------------
 リード
------------------------------------*/
.cp_main .lead-block{
	text-align: center;
	margin: 0 auto min(18%, 50px);
	max-width: 500px;
}


@media screen and (min-width: 769px) {
	.cp_main .lead-block{
		max-width: none;
	}
}

/*-----------------------------------
 CP共通設定
------------------------------------*/
.cp_main .cp-setting{
	text-align: center;
	border-radius: 15px;
	background: rgba(255, 255, 255, .65);
	padding: min(10% , 80px) min(6% , 50px);
	margin-top: min(10% , 70px);
}

/* リボン */
.cp_main .cp-setting > h2 {
	position: absolute;
	text-align: center;
	/* display: block; */
	width: min(80%, 565px);
	/* margin: auto; */
	top: 0;
	/* margin: auto; */
	left: 50%;
	transform: translate(-50%, calc(-50% - 10px));
}

/* リボン左右 */
.cp_main .cp-setting > h2::before,
.cp_main .cp-setting > h2::after {
	background: #BB0800;
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 40% 50%);
	content: "";
	height: 100%;
	display: block;
	position: absolute;
	width: 25px;
	bottom: -10px;
}

.cp_main .cp-setting > h2::before {
	left: -15px;
}

.cp_main .cp-setting > h2::after {
	right: -15px;
	transform: scaleX(-1);
}

/* メインリボン */
.cp_main .cp-setting > h2 span {
	position: relative;
	z-index: 1;
	display: block;
	margin: auto;
	color: #fff;
	background: #EC2C1B;
	padding: .5em;
	font-size: clamp(16px , 3vw , 30px);
}

/* リボン影 */
.cp_main .cp-setting > h2 span::before,
.cp_main .cp-setting > h2 span::after {
	background:  #830C08;
	clip-path: polygon(0 0, 0% 100%, 100% 0);
	content: "";
	height: 10px;
	display: block;
	position: absolute;
	width: 10px;
	bottom: -10px;
}

.cp_main .cp-setting > h2 span::before {
	left: 0;
	transform: scaleX(-1);
}

.cp_main .cp-setting > h2 span::after {
	right: 0;
	
}

/* CP LIST*/
.cp_main .cp-list{
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
}

/* 　リスト下余白*/
.cp_main .cp-list li{
	margin-bottom: 6%;
}


/* CP LIST １CP*/
.cp_main .cp-list-main{
	border-radius: 10px;
	overflow: hidden;
	background: #FFF;
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	box-shadow: 0px 0px 5px rgb(73 80 87 / 30%);
}

/* mv img */
.cp_main .cp-list img{
	display: block;
	transform: scale(1);
	transition: all .3s ease-out;
	opacity: 1;
}

/* CP LIST cp-list__txt-area*/
.cp_main .cp-list-main-txt-area{
	padding: min(5%, 25px);
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	gap: 8px;
}

/* キャッチ */
.cp_main .cp-list-main-txt-area__cath{
	font-size: clamp(16px , 3.2vw , 20px);
	line-height: 1.2;
}

/* テキスト */
.cp_main .cp-list-main-txt-area__txt{
	font-size: clamp(14px , 3vw , 16px);
	line-height: 1.4;
	text-align: left;
}

/* 期間 */
.cp_main .cp-list-main-txt-area__period{
	font-size: clamp(11px , 2.8vw , 14px);
	line-height: 1.4;
	border: 2px solid #000;
	font-weight: 700;
	padding: .3em
}

/* ボタン */
.cp_main .cp-list-main__btn{
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	font-size: clamp(12px , 3.3vw , 20px);
	padding: min(3% , 20px);
	background: #ed4233;
	color: #FFF;
	font-weight: bold;
	opacity: 1;
	transition: all .3s ease-out;
}

/* CPリストバナーの間の余白*/
.cp_main .cp-list + .cp-list__bnr{
	margin-top: min(7% , 60px);
}

/* リスト下バナー*/
.cp_main .cp-list__bnr {
	max-width: 500px;
    margin: min(7% , 60px) auto 0;
}

.cp_main .cp-list__bnr li{
	margin-bottom: 6%;
}
.cp_main .cp-list li:last-child,
.cp_main .cp-list__bnr li:last-child{
	margin-bottom: 0 !important;
}

.cp_main .cp-list__bnr a img{
	opacity: 1;
	transform: scale(1);
	transition: all .3s ease-out;
}

@media screen and (min-width: 769px) {
	/* 左右余白 */
	.cp_main .cp-setting{
		padding-left: 60px;
		padding-right: 60px;
	}

	/* 　リスト下、バナーした余白*/
	.cp_main .cp-list li{
		margin-bottom: 60px;
	}

	.cp_main .cp-list__bnr li{
		margin-bottom: 40px;
	}

	/* 　リスト下、バナー*/
	.cp_main .cp-list__bnr{
		margin-top: 60px;
		width: 84%;
		margin: 0 auto;
	}

	.cp_main .cp-setting > h2::before,
	.cp_main .cp-setting > h2::after {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 50% 50%);
		width: 50px;
		bottom: -15px;
	}

	.cp_main .cp-setting > h2::before {
		left: -35px;
	}
	
	.cp_main .cp-setting > h2::after {
		right: -35px;
	}

	/* リボン影 */
	.cp_main .cp-setting > h2 span::before,
	.cp_main .cp-setting > h2 span::after {
		height: 15px;
		width: 15px;
		bottom: -15px;
	}

	/* CPリストバナーの間の余白*/
	.cp_main .cp-list + .cp-list__bnr{
		margin-top: 80px;
	}

	/* hover*/
	.cp_main .cp-list a.cp-list-main__img:hover img{
		transform: scale(1.02);
		opacity: .7;

	}

	.cp_main .cp-list-main__btn:hover{
		opacity: .7;
	}

	/* バナーhover*/
	.cp_main .cp-list__bnr a:hover img{
		opacity: .7;
		transform: scale(1.05);
	}
	

}



/*-----------------------------------
 開催中
------------------------------------*/

.cp_main .open-block{
	padding-bottom: 0 !important;
}

.cp_main .zokuzoku{
	display: block;
	max-width: none;
	width: min(90%, 545px);
	margin: min(7%, 80px) auto 0 auto;
}

/*-----------------------------------
 その他のCP
------------------------------------*/
.cp_main .other-btn-block{
	padding: min(7% , 60px);
	text-align: center;
}

.cp_main .btn-list h3{
	color: #0062C2;
	font-size: clamp(14px , 2.8vw , 20px);
	margin-bottom: .3em;
}

.cp_main .other-btn-block .arrow::before{
	border-color: #0062C2;
}


/*-----------------------------------
 終了したCP
------------------------------------*/
/* テキスト */
.cp_main .end-block h4,
.cp_main .end-block p{
	opacity: .3;
}


/* リボン左右 */
.cp_main .end-block > h2::before,
.cp_main .end-block > h2::after {
	background: #969696;
}


/* メインリボン */
.cp_main .end-block > h2 span {
	background: #B1B1B1;
}

/* リボン影 */
.cp_main .end-block > h2 span::before,
.cp_main .end-block > h2 span::after {
	background:  #6B6B6B;
}

/* ボタン */
.cp_main .end-block .cp-list-main__btn{
	background: #BCBDBC;
}

/* ボタン無効 */
.cp_main .end-block a{
	pointer-events: none;
}

.cp_main .end-block img{
	filter: grayscale(1);
	opacity: 0.5;
}