/* -----------------------------------
	common
----------------------------------- */
html {
    font-size: calc(10 / 750 * 100vw);
    overflow-x: hidden;
}
.gDef-top-banner {
	background: #133ab0;
}
.gDef-contents {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 2.4rem;
}
@media screen and (min-width: 768px) {
    html {
        font-size: calc(10 / 1400 * 100vw);
    }
    .gDef-contents {
        font-size: 1.6rem;
    }
}
@media screen and (min-width: 1400px) {
    html {
        font-size: 16px;
    }
    .gDef-contents {
        font-size: 16px;
    }
}

body {
	margin: 0;
}

img {
	width: 100%;
}




.red {color: #cc0000;}
.bold {font-weight: bold;}

h2.title {
	font-weight: bold;
	font-size: 3.2rem;
	color: #cc0000;
	position: relative;
	margin-top: 30px;
	margin-bottom: 1em;
	text-align: center;
	line-height: 1.4;
}
h2.title:before {
	content: "";
	position: absolute;
	width: 40px;
	height: 1px;
	background: #cc0000;
	position: absolute;
	top: -25px;
	left: calc(50% - 20px);
}
@media screen and (min-width: 768px) {
	h2.title {
		text-align: left;
		font-size: 2.4rem;
	}
	h2.title:before {
		display: none;
	}
}
@media screen and (min-width: 1400px) {
	h2.title {
		font-size: 24px;
	}
}


dl.detail_txt {
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	flex-wrap: wrap;
	width: 100%;
	margin: 0 0 30px;
}

dl.detail_txt dt,
dl.detail_txt dd {
	box-sizing: border-box;
	padding: 5px 15px;
	margin: 0 0 2px;
	line-height: 1.6;
}

dl.detail_txt dt {
	width: 100px;
	background: #f2f2f2;
	text-align-last: justify;
}
dl.detail_txt dd {
	width: calc(100% - 100px);
	padding-right: 0 !important;
}
dl.detail_txt dd.close {
	color: #cc0000;
	font-weight: bold;
}



/* -----------------------------------
	mainArea
----------------------------------- */

#mainArea {
	background: #000000 url(../images/top/bg_sp.png) top 80px center no-repeat;
	background-size: contain;
}

#mainArea:before {
	content: "";
	display: block;
	width: 100%;
	height:200px;
	background: url(../images/top/top_film_sp.png) top left no-repeat;
	background-size: contain;
	position: absolute;
	top: 0;
	left: 0;
}
@media screen and (min-width: 768px) {
	#mainArea {
		background: #000000 url(../images/top/bg.png) top center no-repeat;
	}

	#mainArea:before {
		width: calc(780 / 1920 * 100%);
		height: 500px;
		background: url(../images/top/top_film.png) top left no-repeat;
		background-size: contain;
	}
}

/* -----------------------------------
	header
----------------------------------- */

#header {
	width: 100%;
	margin: 0 auto;
	padding: calc(200 / 750 * 100%) 0 calc(30 / 750 * 100%);
}
#header h1 {
	margin: auto;
	width: 90%;
	max-width: 550px;
	background: url(../images/top/ttl.png) center center no-repeat;
	background-size: contain;
}
#header h1:after {
	content: "";
	display: block;
	padding-top: 34%;
	position: relative;
	z-index: -1;
}
#header h1 a {
	display: block;
	width: 100%;
	height: 100%;
	text-indent: -9999px;
	position: absolute;
	top: 0;
	left: 0;
}

@media screen and (min-width: 768px) {
	#header {
		padding: calc(115 / 1240 * 100%) 0 calc(30 / 1240 * 100%);
	}
	#header h1 {
		width: calc(553 / 1240 * 100%);
	}
}
@media screen and (min-width: 1400px) {
	#header {
		padding: 115px 0 30px;
	}
	#header h1 {
		width: 553px;
	}
}



/* -----------------------------------
	contents
----------------------------------- */

#contents {
	position: relative;
	padding-bottom: calc(100px - (40 / 750 * 100%));
}

#contents:after {
	content: "";
	display: block;
	width: 100%;
	height: 101px;
	background: url(../images/top/bottom_film_sp.png) bottom right no-repeat;
	background-size: 100%;
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: 0;
}

#contentsInner {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}

@media screen and (min-width: 768px) {
	#contents {
		padding-bottom: calc(100 / 1920 * 100%);
	}

	#contents:after {
		width: calc(780 / 1920 * 100%);
		height: 500px;
		background: url(../images/top/bottom_film.png) bottom right no-repeat;
		background-size: contain;
		position: absolute;
		bottom: 0;
		right: 0;

	}
	#contentsInner {
		width: 95%;
	}
}


/* -----------------------------------
	contentsLeft
----------------------------------- */

#contentsLeft {
	position: relative;
	width: 100%;
	min-height: 200px;
}
#contentsLeft #no_film {
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	position: absolute;
	z-index: 0;
	width: 100%;
	height: 120px;
	font-size: 3.2rem;
}
#contentsLeft .film {
	position: relative;
	padding-top: 15px;
	margin: 0 0 calc(40 / 750 * 100%);
	background: #fff url(../images/top/bg_film_sp.png) 0 0 no-repeat;
	background-size: 100%;
}

#contentsLeft .filmInner {
	padding: calc(55 / 750 * 100%);
	box-sizing: border-box;
}

#contentsLeft .filmInner .image {
	background: #fff;
	width: 100%;
	padding: calc(13 / 840 * 100%) calc(36 / 840 * 100%);
	box-sizing: border-box;
}

#contentsLeft .filmInner .right {
	width: 100%;
}

#contentsLeft .filmInner .right h2.title {

}
#contentsLeft .filmInner .right h2.title:before {

}
#contentsLeft .filmInner .right span.fontS {
	font-size: 80%;
}
#contentsLeft .filmInner .right .buttonArea a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 80%;
	margin: 0 auto;
	background: url(../images/top/btn_normal.png) center center no-repeat;
	background-size: contain;
	color: #000;
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	transition: all .3s;
}
#contentsLeft .filmInner .right .buttonArea a:after {
	content: "";
	display: block;
	padding-top: 14%;
	position: relative;
	z-index: -1;
}
#contentsLeft .filmInner .right .buttonArea a:hover {
	color: #fff;
	background: url(../images/top/btn_hover.png) center center no-repeat;
	background-size: contain;
}
#contentsLeft .filmInner .right .buttonArea.end a {
	color: #b2b2b2;
	background: url(../images/top/btn_none.png) center center no-repeat;
	background-size: contain;
	pointer-events: none;
}

@media screen and (min-width: 768px) {
	#contentsLeft {
		width: calc(920 / 1240 * 100%);
		min-height: 700px;
	}

    #contentsLeft #no_film {
        font-size: 2.4rem;
    }

	#contentsLeft .film {
		padding-top: 15px;
		margin: 0 0 calc(40 / 920 * 100%);
		background: url(../images/top/bg_film.png) 0 0 repeat-y;
		background-size: contain;

	}
	#contentsLeft .filmInner {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		padding: calc(40 / 920 * 100%);
		box-sizing: border-box;
	}
	#contentsLeft .filmInner .image {
		width: calc(400 / 840 * 100%);
		padding: calc(13 / 840 * 100%) calc(36 / 840 * 100%);
	}
	#contentsLeft .filmInner .right {
		width: calc(400 / 840 * 100%);
	}
	#contentsLeft .filmInner .right h2.title {

	}
	#contentsLeft .filmInner .right h2.title:before {

	}

	#contentsLeft .filmInner .right .buttonArea a {
		width: 100%;
		font-size: 1.6rem;
	}
}

@media screen and (min-width: 1400px) {
    #contentsLeft #no_film {
        font-size: 24px;
    }
	#contentsLeft .filmInner .right .buttonArea a {
		font-size: 16px;
	}
}


/* -----------------------------------
	contentsRight
----------------------------------- */

#contentsRight {
	display: none;
}
@media screen and (min-width: 768px) {
	#contentsRight {
		display: block;
		position: relative;
		width: calc(300 / 1240 * 100%);
		z-index: 10;
	}
}
#contentsRight #registRSS {
	text-align: right;
	margin: 0;
	line-height: 1em;
	position: absolute;
	top: -30px;
	right: 0;
}
#contentsRight #registRSS a img {
	display: inline-block;
	width: 1em;
	padding-right: 5px;
	vertical-align: text-bottom;
}
#contentsRight #registRSS a {
	color: #fff;
	text-decoration: none;
}

#contentsRight #PR ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
#contentsRight #PR li {
	margin-bottom: 16px;
}


/* -----------------------------------
	middleArea
----------------------------------- */

#middleArea {
	overflow: hidden;
	width: 100%;
	margin: 0 auto;
	color: #fff;
	background: #b00000;
	padding: calc(110 / 750 * 100%) 0;
}
#middleArea #attention {
	width: 95%;
	margin: 0 auto;
}
#middleArea #attention h3 {
	color: #fff;
	text-align: center;
	margin: 0 auto 2em;
	padding: 0;
	font-size: 3.2rem;
}
#middleArea #attention ul {
	margin: 0;
}
#middleArea #attention ul li {
	margin-bottom: 1em;
	position: relative;
	padding-left: 2em;
	line-height: 1.6;
}
#middleArea #attention ul li:nth-child(n+3) {
	display: none;
}

#middleArea #attention ul li:before {
	content: "";
	display: block;
	width: 15px;
	height: 1px;
	background: #fff;
	position: absolute;
	top: 0.7em;
	left: 0;
}
#middleArea #attention ul li a {
	color: #fff;
	text-decoration: underline;
}
#middleArea #attention .trigger {
	display: block;
	background: #000;
	color: #fff;
	font-weight: bold;
	border-radius: 40px;
	text-align: center;
	text-decoration: none;
	width: 50%;
	line-height: 36px;
	margin: 1.5em auto 0;
	position: relative;
}
#middleArea #attention .trigger:before {
	content: "もっと見る";
}
#middleArea #attention .trigger.open:before {
	content: "閉じる";
}
#middleArea #attention .trigger:after {
	content: "";
	width: 10px;
	height: 10px;
	background: #000 url(../images/top/icon_arrow_down.png) no-repeat center center;
	background-size: contain;
	position: absolute;
	right: 20px;
	top: calc(50% - 5px);
}
#middleArea #attention .trigger.open:after {
	content: "";
	width: 10px;
	height: 10px;
	background: #000 url(../images/top/icon_arrow_down.png) no-repeat center center;
	background-size: contain;
	position: absolute;
	right: 20px;
	top: calc(50% - 5px);
	transform: rotate(180deg);
}

@media screen and (min-width: 768px) {
	#middleArea {
		padding: calc(118 / 1920 * 100%) 0;
	}
	#middleArea #attention {
		display: flex;
		width: 95%;
		max-width: 1030px;
		margin: 0 auto;
	}
	#middleArea #attention h3 {
		width: 10em;
		text-align: left;
		margin: 0;
		padding: 0;
		font-size: 1.6rem;
	}
	#middleArea #attention ul li:nth-child(n+3) {
		display: block !important;
	}
	#middleArea #attention .trigger {
		display: none;
	}
}
@media screen and (min-width: 1400px) {
	#middleArea #attention h3 {
		font-size: 16px;
	}
}


/* -----------------------------------
	infoArea
----------------------------------- */
#infoArea {
	width: 100%;
	margin: 0 auto;
	color: #fff;
	background: #133ab0;
	padding: calc(118 / 750 * 100%) 0;
}
#infoArea ul {
	list-style: none;
	width: 90%;
	max-width: 1060px;
	margin: auto;
	padding: 0;
}
#infoArea ul li {
	width: 100%;
	margin-bottom: 1em;
}
@media screen and (min-width: 768px) {
	#infoArea {
		padding: calc(118 / 1920 * 100%) 0;
	}
	#infoArea ul {
		display: flex;
		justify-content: space-between;
	}
	#infoArea ul li {
		width: calc(510 / 1060 * 100%);
		margin-bottom: 0;
	}
}

/* -----------------------------------
	footer
----------------------------------- */

footer {
	background: #000000;
	padding: calc(70 / 750 * 100%) 0;
	position: relative;
	display: block;
}

footer .pagetop {
	display: block;
	width: calc(80 / 750 * 100%);
	max-width: 150px;
	position: absolute;
	top: -25%;
	right: 0;
}
footer .pagetop:before {
	content: "";
	display: block;
	padding-top: 100%;
}
footer .pagetop a {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #000000 url(../images/top/icon_arrow.png) no-repeat center center;
	background-size: 40%;
	transition: all 0.3s;
}
footer .pagetop a:hover {
	background: #000000 url(../images/top/icon_arrow.png) no-repeat top 35% center;
	background-size: 40%;
}
footer #copyright p {
	font-size: 1.6rem;
	text-align: center;
	color: #cc0000;
}
@media screen and (min-width: 768px) {
	footer {
		padding: calc(70 / 1920 * 100%) 0;
	}
	footer .pagetop {
		width: calc(80 / 1920 * 100%);
		max-width: 80px;
		top: -35%;
	}
	footer #copyright p {
		font-size: 1.2rem;
		text-align: center;
		color: #cc0000;
	}
}

@media screen and (min-width: 1400px) {
	footer #copyright p {
		font-size: 12px;
	}
}

/* -----------------------------------
	footer_bnr
----------------------------------- */
#footer_bnr {
	background: #000;
}

#footer_bnr ul {
	width: 90%;
	margin: auto;
	list-style: none;
	padding: 0;
}
#footer_bnr ul li {
	padding: 1em 0;
}

@media screen and (min-width: 768px) {
	#footer_bnr {
		display: none;
	}
}
