@charset "utf-8";

/* ---------------------------------------------------------------------------
 * ROOT
--------------------------------------------------------------------------- */
:root {
	--color_01: #de0000;
	/* var(--color_01) */
}

/* ---------------------------------------------------------------------------
 * RESET STYLE
--------------------------------------------------------------------------- */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* =============================================
 COMMON
============================================= */
body {
	background: #fff;
	font-family: 'Roboto', 'メイリオ', 'Meiryo', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ＭＳ Ｐゴシック', 'Osaka', sans-serif;
	line-height: 1;
	-webkit-text-size-adjust: none;
}

img {
	max-width: 100%;
	vertical-align: middle;
}

a {
	color: var(--color_01);
	text-decoration: none;
}

b {
	font-weight: bold;
}

.wrap {
	overflow: hidden;
}

.wrap {
	background: url(../img/common/bg_pattern.png) repeat center -90px, url(../img/common/bg_check.jpg) repeat center -90px;
}

@media print, screen and (max-width:640px) {
	.onlyPC {
		display: none !important;
	}

	.onlyTAB {
		display: none !important;
	}

	.onlySP {
		display: block;
	}
}

@media print, screen and (min-width:641px) {
	.onlyPC {
		display: block;
	}

	.onlySP {
		display: none !important;
	}
}

@media print, screen and (min-width:641px) and (max-width:1000px) {
	.onlyTAB {
		display: block;
	}

	.noTAB {
		display: none !important;
	}
}

@media print, screen and (min-width:1001px) {
	.onlyTAB {
		display: none !important;
	}
}

/**/

/* =============================================
 ヘッダー
============================================= */

.header {
	max-width: 1000px;
	padding: 4%;
	margin: 0 auto 30px;
	background: url(../img/common/bg_header.png) no-repeat top -80vw center, linear-gradient(0deg, #dfbc3d 20%, #fffc9e 60%, #dcab03 100%);
	background-size: 200vw,auto;
	box-sizing: border-box;
}

.header_inner {
	display: flex;
}
@media print, screen and (max-width:640px) {
	.header_inner {
		flex-direction: column;
		row-gap: 10x;
	}
	.header_inner .period {
		width: 80%;
		margin: 0 auto;
	}
}
@media print, screen and (min-width:641px) {
	.header {
		padding: 20px;
	}

	.header_inner {
		justify-content: space-between;
		align-items: center;
	}

	.header_inner h1 {
		width: 52%;
	}

	.header_inner .period {
		width: 45%;
	}
}
@media print, screen and (min-width:1001px) {
	.header {
		background: url(../img/common/bg_header.png) no-repeat top 93% center, linear-gradient(0deg, #dfbc3d 20%, #fffc9e 60%, #dcab03 100%);
		background-size: 120%, auto;
	}
}

/* catch */

.catch_wrap {
	max-width: 1000px;
	margin: 30px auto;
	background: #cb1b1c url(../img/common/bg_pattern_red.png);
	border: 3px solid #fff;
	border-radius: 5px;
	overflow: hidden;
}

.catch_wrap:last-child {
	margin-bottom: 0;
}

.catch_inner {
	padding: 15px;
	position: relative;
}
.catch_inner::before,
.catch_inner::after {
    content: "";
    width: 14vw;
    height: 100%;
    background: url(../img/common/bg_catch_light.png) no-repeat top;
    background-size: contain;
    position: absolute;
    top: -7vw;
}
.catch_inner::before{
	left: 2%;
}
.catch_inner::after{
	right: 2%;
}

.ttl_catch {
	background: #eab015 url(../img/common/bg_pattern_yel.png);
	text-align: center;
}

.txt_catch {
	color: #fff;
	font-family: "UD Shin Go Bold";
	font-size: clamp(1.25em, 3.12vw, 1.75em);
	line-height: 1.5;
	text-align: center;
}

.ttl_catch .txt {
	padding: 0.5em 1em 0.5em 4.5em;
	display: inline-block;
	position: relative;
	color: #0066cc;
	font-family: "UD Shin Go Bold";
	font-size: 5.5vw;
	text-shadow: #fff 2px 2px 0px, #fff 1px 2px 0px, #fff 0px 2px 0px, #fff -1px 2px 0px, #fff -2px 2px 0px, #fff 2px 1px 0px, #fff 1px 1px 0px, #fff 0px 1px 0px, #fff -1px 1px 0px, #fff -2px 1px 0px, #fff 2px 0px 0px, #fff 1px 0px 0px, #fff 0px 0px 0px, #fff -1px 0px 0px, #fff -2px 0px 0px, #fff 2px -1px 0px, #fff 1px -1px 0px, #fff 0px -1px 0px, #fff -1px -1px 0px, #fff -2px -1px 0px, #fff 2px -2px 0px, #fff 1px -2px 0px, #fff 0px -2px 0px, #fff -1px -2px 0px, #fff -2px -2px 0px;
}

.ttl_catch .txt::before {
	content: "";
	max-width: 180px;
	width: 5em;
	height: 4em;
	background: url(../img/common/bg_catch_coin.png) no-repeat top center;
	background-size: contain;
	position: absolute;
	left: 0;
	top: 0;
}

.txt_catch .fc_blu {
	margin: 0 0.05em;
	color: #0066cc;
	text-shadow: #fff 2px 2px 0px, #fff 1px 2px 0px, #fff 0px 2px 0px, #fff -1px 2px 0px, #fff -2px 2px 0px, #fff 2px 1px 0px, #fff 1px 1px 0px, #fff 0px 1px 0px, #fff -1px 1px 0px, #fff -2px 1px 0px, #fff 2px 0px 0px, #fff 1px 0px 0px, #fff 0px 0px 0px, #fff -1px 0px 0px, #fff -2px 0px 0px, #fff 2px -1px 0px, #fff 1px -1px 0px, #fff 0px -1px 0px, #fff -1px -1px 0px, #fff -2px -1px 0px, #fff 2px -2px 0px, #fff 1px -2px 0px, #fff 0px -2px 0px, #fff -1px -2px 0px, #fff -2px -2px 0px;
}

.txt_catch .fc_grn {
	margin: 0 0.05em;
	color: #0f9900;
	text-shadow: #fff 2px 2px 0px, #fff 1px 2px 0px, #fff 0px 2px 0px, #fff -1px 2px 0px, #fff -2px 2px 0px, #fff 2px 1px 0px, #fff 1px 1px 0px, #fff 0px 1px 0px, #fff -1px 1px 0px, #fff -2px 1px 0px, #fff 2px 0px 0px, #fff 1px 0px 0px, #fff 0px 0px 0px, #fff -1px 0px 0px, #fff -2px 0px 0px, #fff 2px -1px 0px, #fff 1px -1px 0px, #fff 0px -1px 0px, #fff -1px -1px 0px, #fff -2px -1px 0px, #fff 2px -2px 0px, #fff 1px -2px 0px, #fff 0px -2px 0px, #fff -1px -2px 0px, #fff -2px -2px 0px;
}

.txt_catch .fc_yel {
	margin: 0 0.025em;
	color: #ffc800;
	text-shadow: #fff 2px 2px 0px, #fff 1px 2px 0px, #fff 0px 2px 0px, #fff -1px 2px 0px, #fff -2px 2px 0px, #fff 2px 1px 0px, #fff 1px 1px 0px, #fff 0px 1px 0px, #fff -1px 1px 0px, #fff -2px 1px 0px, #fff 2px 0px 0px, #fff 1px 0px 0px, #fff 0px 0px 0px, #fff -1px 0px 0px, #fff -2px 0px 0px, #fff 2px -1px 0px, #fff 1px -1px 0px, #fff 0px -1px 0px, #fff -1px -1px 0px, #fff -2px -1px 0px, #fff 2px -2px 0px, #fff 1px -2px 0px, #fff 0px -2px 0px, #fff -1px -2px 0px, #fff -2px -2px 0px;
	position: relative;
	display: inline-block;
}
.txt_catch .fc_yel .copy_txt {
	position: absolute;
	top: 0;
	left: 0;
	background: linear-gradient(0deg, #ffc800 20%, #80670d 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	text-shadow: none;
}

@media print, screen and (max-width:640px) {
	.ttl_catch .txt {
		padding: 0.5em 1.5em 0.5em 2.5em;
	}

	.ttl_catch .txt::before {
		left: -1.5em;
	}
}

@media print, screen and (min-width:641px) {
	.catch_inner {
		padding: 30px;
	}
	.catch_inner::before,
	.catch_inner::after {
		width: 8%;
		top: -10%;
	}
	.ttl_catch .txt {
		font-size: clamp(1.75em, 4.37vw, 2.5em);
	}
}


/* =============================================
 contents
============================================= */
.contents {
	padding-bottom: 150px;
	margin: 30px 0;
}

@media print, screen and (min-width:641px) {
	.contents {
		margin: 60px 0;
	}
}

@media print, screen and (min-width:1501px) {
	.contents {
		padding-bottom: 60px;
	}
}

/* -------------------------------------------
 box
------------------------------------------- */
.box {
	width: 90%;
	max-width: 1000px;
	margin: 0 auto;
	background: #fff;
	border-radius: 5px;
}

.box+.box {
	margin-top: 30px;
}

.box_inner {
	padding: 15px;
	line-height: 1.5;
}

.box_inner+.box_inner {
	padding-top: 0;
}

.box_title {
	margin-bottom: 6px;
	background: #fff url(../img/common/bg_pattern_beg.png);
	border-radius: 5px 5px 0 0;
	position: relative;
}
.box_title::after {
	content: "";
	width: 100%;
	height: 6px;
	background: repeating-linear-gradient(#e50000, #e50000 1px, #fff 1px, #fff 2px);
	position: absolute;
	left: 0;
	bottom: -6px;
}

.box_title_txt{
	padding: 0.6em 0.5em 0.6em 2.25em;
	position: relative;
	font-family: "UD Shin Go Bold";
	font-size: clamp(1.5em, 3.75vw, 2.25em);
}
.box_title_txt::before {
	content: "";
	width: 1.75em;
	height: 1.75em;
	background: url(../img/common/bg_ttl_icon.png) no-repeat center;
	background-size: contain;
	position: absolute;
	left: 0.25em;
	top: 50%;
	transform: translateY(-55%);
}

.box_title_txt.pre100::after {
    content: "";
    width: 25vw;
    height: 120%;
    background: url(../img/common/img_100.png) no-repeat center right;
    background-size: contain;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(15%, -55%);
    z-index: 1;
}
.box_title_txt.pre100{
	padding: 0.6em 20vw 0.6em 2.25em;
}

.box_title_caution {
    margin-top: 0.5em;
    display: block;
	font-size: clamp(0.65rem, 3vw, 0.85rem);
    font-family: initial;
    font-weight: normal;
}

.box_inner>p+p {
	margin-top: 0.5em;
}

@media print, screen and (min-width:641px) {
	.box+.box {
		margin-top: 60px;
	}

	.box_inner {
		padding: 30px;
	}
	.box_title_txt.pre100::after {
		right: 6%;
	}
}

/* リンクボタン
---------------------------------------- */
.link_btn {
	margin: 15px 0;
}

.link_btn:last-child {
	margin-bottom: 0;
}

.link_btn a {
	width: 100%;
	max-width: 650px;
	padding: 1em 1.75em 1em 0.5em;
	margin: 0 auto;
	background: #ffda27;
	box-sizing: border-box;
	border-radius: 3em;
	display: block;
	position: relative;
	color: #000;
	font-size: clamp(1.25em, 3.12vw, 1.5em);
	font-family: "UD Shin Go Bold";
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	box-shadow: 0 0 0 3px #fff inset;
	transition: all .3s;
}

.link_btn.bc_red a {
	background: var(--color_01);
	box-shadow: inherit;
	color: #fff;
}

.link_btn.abciee a {
	padding: 1em 4em 1em 2em;
	font-size: clamp(1.25em, 3.12vw, 2em);
}

.link_btn.abciee a::before {
    content: "";
    width: 3em;
    height: 4em;
    background: url(../img/common/img_abciee.png) no-repeat bottom -3px center;
    background-size: contain;
    position: absolute;
    right: 1em;
    bottom: 1px;
}
.link_btn.arrow a::after {
	content: "";
	width: 0.5em;
	height: 0.5em;
	margin-top: -0.3em;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(45deg);
	position: absolute;
	right: 1em;
	top: 50%;
}

@media print, screen and (min-width:1001px) {
	.link_btn {
		margin: 30px 0;
	}

	.link_btn a:hover {
		transform: scale(1.05);
	}
}

/*   present
-------------------------------------------------------*/
.present {
	display: flex;
	justify-content: space-between;
}

.present + .present {
    padding-top: 15px;
    margin-top: 15px;
    border-top: 1px solid #999;
}

.present dt {
	width: 30%;
	max-width: 130px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.present dd {
	width: 100%;
	padding-left: 3%;
}
.present_grid{
	display: flex;
	flex-direction: column;
	row-gap: 15px;
	column-gap: 3%;
}
.present_name {
    font-size: 4.5vw;
    font-family: "UD Shin Go Bold";
    line-height: 1;
}
.present_name .eng {
	margin: 0 0.05em;
	position: relative;
	top: 0.05em;
    font-size: 1.5em;
}
.fs_ire_s {
	margin-top: 0.5em;
    font-size: 0.75rem !important;
    font-family: initial;
}
@media print, screen and (min-width:641px) {
	.present_name {
		padding-bottom: 2%;
		font-size: clamp(1.25em, 3.12vw, 2em);
	}
}
@media print, screen and (min-width:1001px) {
	.present_grid{
		display: flex;
		justify-content: space-between;
		align-items: center;
		flex-direction: inherit;
	}
}

/*   entry
-------------------------------------------------------*/
#entry h3 {
	padding: 0.5em;
	margin: 30px 0 20px;
	background-color: var(--color_01);
	border-radius: 50px;
	color: #fff;
	font-family: "UD Shin Go Bold";
	font-size: clamp(1.25em, 3.12vw, 1.5em);
	line-height: 1.2;
}

#entry h3:first-child {
	margin-top: 0;
}

#entry h3 .icon {
	padding-left: 3.5em;
	display: inline-block;
	position: relative;
}

#entry h3 .icon:before {
	content: "";
	width: 3em;
	height: 2em;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}

#entry h3.step01 .icon:before {
	background: url(../img/common/ico_step1.png) no-repeat center;
	background-size: contain;
}

#entry h3.step02 .icon:before {
	background: url(../img/common/ico_step2.png) no-repeat center;
	background-size: contain;
}

#entry h3.step03 .icon:before {
	background: url(../img/common/ico_step3.png) no-repeat center;
	background-size: contain;
}

#entry h4 {
	color: var(--color_01);
	font-family: "UD Shin Go Bold";
	font-size: clamp(1.125em, 2.81vw, 1.5em);
	line-height: 1.2;
}

#entry h4.num {
	padding-left: 1.5em;
	margin-bottom: 0.5em;
	position: relative;
}

#entry h4.num span {
	width: 1.3em;
	height: 1.3em;
	background: #e0be5f;
	border-radius: 100%;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	font-size: 0.9em;
	font-weight: bold;
}

#entry .entryPeriod {
	color: var(--color_01);
	font-size: 123.1%;
	font-weight: bold;
	padding-top: 10px;
}

#entry ul.bonus {
	font-size: 108%;
	margin: 5px 0 20px 20px;
}

#entry ul.bonus li {
	list-style: disc outside;
}

@media print, screen and (min-width:641px) {
	.entry_info {
		padding: 0 15px;
	}
}


/*   date
-------------------------------------------------------*/
#date .date {
	padding: 10px;
	margin: 10px 0 5px;
	background-color: #fcf8ef;
	border: 1px solid #e0be5f;
	border-radius: 8px;
	color: var(--color_01);
	font-size: clamp(1.125em, 5.14vw, 1.75em);
	font-weight: bold;
	text-align: center;
}

#date .date span {
	color: #000;
	font-size: 0.75em;
}

#date .tit {
    background-color: var(--color_01);
    padding: 0.75em;
    margin: 0 auto 60px;
    border-radius: 0.5em;
    color: #fff;
    font-size: clamp(1em, 2.5vw, 1.5em);
    font-weight: bold;
}

#date .day_wrap {
	background-color: #fcf8ef;
	margin-top: 50px;
	width: 100%;
	border-radius: 8px;
	padding: 40px 20px 0;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
}

#date .day_wrap .ttl_wrap {
    width: 6em;
    padding: 0.25em;
	display: inline-block;
    /* border: solid 1px #d9b664; */
    background-color: #000;
    border-radius: 8px;
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 150%;
    font-weight: bold;
    text-align: center;
    color: #fff;
}

#date .day_wrap .ttl_wrap::before {
	content: "";
	position: absolute;
	right: 0;
	bottom: -9px;
	left: 0;
	width: 0px;
	height: 0px;
	margin: auto;
	border-style: solid;
	border-color: #000 transparent transparent transparent;
	border-width: 10px 10px 0 10px;
	z-index: 2;
}

#date .day_wrap .ttl_wrap::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -10px;
	left: 0;
	width: 0px;
	height: 0px;
	margin: auto;
	border-style: solid;
	border-color: #d9b664 transparent transparent transparent;
	border-width: 10px 10px 0 10px;
}

#date .day_wrap ul {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

#date .day_wrap ul li {
	width: 100%;
	display: flex;
	align-items: center;
	position: relative;
	border-radius: 8px;
	color: #000;
	background-color: #ffffff;
	filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.21));
	font-weight: bold;
	padding: 0;
	box-sizing: border-box;
	min-height: 80px;
	position: relative;
	padding-bottom: 40px;
	margin-bottom: 20px;
}

#date .day_wrap ul li a {
	display: inline-block;
	text-decoration: none;
	color: #000;
	width: 100%;
	height: 100%;
	transition: all 0.3s;
}

#date .day_wrap ul li a:hover {
	opacity: 0.7;
}

#date .day_wrap ul li .bangumi_wrap .ttl {
	padding: 20px 20px 15px;
	margin-bottom: -40px;
	line-height: 1.2;
}

#date .day_wrap ul li a .bangumi_wrap .ttl {
	margin-bottom: 0;
}

#date .day_wrap ul li .bangumi_wrap .detail {
	position: absolute;
	width: 100%;
	height: 40px;
	bottom: 0;
	left: 0;
	background-color: #d9b664;
	overflow: hidden;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	border-radius: 0 0 8px 8px;
	color: #fff;
	font-size: 0.875em;
}

#date .day_wrap ul li a .bangumi_wrap .detail span {
	position: relative;
	transform: translateX(-10px);
}

#date .day_wrap ul li a .bangumi_wrap .detail span:after {
	content: "";
	position: absolute;
	top: 3px;
	right: -25px;
	display: block;
	background: url(../img/common/icon_arrow.svg) no-repeat;
	background-size: contain;
	width: 18px;
	height: 18px;
	transition: all 0.3s;
}

#date .day_wrap ul li a:hover .bangumi_wrap .detail span:after {
	right: -28px;
}

@media print, screen and (min-width:641px) {
	#date .day_wrap ul li {
		width: 49%;
	}
}
@media print, screen and (min-width:1001px) {
	#date .day_wrap ul li {
		font-size: 120%;
	}
}

/*   notes
-------------------------------------------------------*/
#notes h4 {
	margin-top: 1em;
	color: var(--color_01);
	font-weight: bold;
}

#notes h4:first-child {
	margin-top: 0;
}

#notes h4:before {
	content: "■ ";
}

#notes.cont p {
	font-size: 0.875em;
}

#notes ul {
	font-size: 0.875em;
}

#notes li {
	padding-left: 1em;
	margin-bottom: 0.25em;
	text-indent: -1em;
}

#notes li::before {
	content: "・";
}

#notes li.no_indent {
	padding-left: 0;
	text-indent: 0;
}

#notes li.no_indent::before {
	content: none;
}


/* -------------------------------------------
 footer
------------------------------------------- */
#footerCont {
	background: url(../img/common/img_mizuhiki.gif) no-repeat center 20px, url(../img/common/bg_footer.gif) repeat-x 0 0 #fff
}

#footerCont #footer {
	margin: 0 auto;
	position: relative;
}

#footerCont .copy {
	padding: 95px 0 30px;
	text-align: center;
	font-size: 0.875em;
	color: #333;
}

#pageTop {
	top: -156px;
	position: absolute;
	right: 130px;
}

@media print, screen and (max-width:1500px) {
	#pageTop {
		left: 50%;
		right: inherit;
		transform: translateX(-50%);
	}
}

/* ---------------------------------------------------------------------------
 * 汎用
--------------------------------------------------------------------------- */
/* テキスト
------------------------------------ */
.fs_xs {
	font-size: 0.75em !important;
}

.fs_s {
	font-size: 0.875em !important;
}

.fs_l {
	font-size: 1.125em !important;
}

.fs_xl {
	font-size: 1.25em !important;
}

.fs_inherit {
	font-size: inherit !important;
}

.fw_normal {
	font-weight: normal !important;
}

.fw_bold {
	font-weight: bold !important;
}

.ti-05 {
	text-indent: -0.5em !important;
}

.ls01 {
	letter-spacing: 0.1em !important;
}

.ls-005 {
	letter-spacing: -0.05em !important;
}

.ls-01 {
	letter-spacing: -0.1em !important;
}

.ls-02 {
	letter-spacing: -0.2em !important;
}

.ls-03 {
	letter-spacing: -0.3em !important;
}

.ta_left {
	text-align: left !important;
}

.ta_right {
	text-align: right !important;
}

.ta_center {
	text-align: center !important;
}

.week {
	margin: 0 -0.5em;
	display: inline-block;
	font-size: 0.875em;
}

.fc_red {
	color: var(--color_01) !important;
}
.fc_wht {
	color: #fff !important;
}


/* レイアウト
------------------------------------ */
.mt0 {
	margin-top: 0 !important;
}

.mt15 {
	margin-top: 15px !important;
}

.mt30 {
	margin-top: 30px !important;
}

.mb0 {
	margin-bottom: 0 !important;
}

.mb15 {
	margin-bottom: 15px !important;
}

.mb20 {
	margin-bottom: 20px !important;
}

.mb30 {
	margin-bottom: 30px !important;
}

.mt_05em {
	margin-top: 0.5em !important;
}
.mt_1em {
	margin-top: 1em !important;
}

.mb_1em {
	margin-bottom: 1em !important;
}

.w_100 {
	width: 100% !important;
}

.d_ib {
	display: inline-block;
}

.wrap_list li {
	padding-left: 1em;
	margin-bottom: 0.25em;
	text-indent: -1em;
}

.wrap_list li:last-child {
	margin-bottom: 0;
}