@charset "UTF-8";

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

html {font-size: 62.5%}

body,html {height: 100%}

body {
	position: relative;
	font-size: 1.6rem;
	color: #101010;
	background-color: #ffffff;
	font-family: Futura, Futura-Medium, Century Gothic, Verdana,"游ゴシック体","Yu Gothic",YuGothic,"ヒラギノ角ゴシック Pro","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

*,
*::before,
*::after {box-sizing: border-box;}

h1,h2,h3,h4,h5,h6,p {margin:0;padding:0;}

p,pre,blockquote,ul,ol,dl,dt,dd,hr,form,input {
	margin:0;
	padding:0;
}

img,table,figure {
	margin:0;
	padding:0;
	border:0;
}

table {
	border-collapse:separate;
	border-spacing:0;
	empty-cells:show;
}

li {list-style:none;}

address {font-style:normal;}

img {
	display: block;
	margin:0;
	padding:0;
	border:none;
	vertical-align:bottom;
}

strong {
	margin:0;
	padding:0;
	color:inherit;
	font-weight:bold;
}

em {
	margin:0;
	padding:0;
	color:inherit;
	font-weight:bold;
	font-style:normal;
}

a {
	outline:none;
	transition: color .3s, background-color .3s;
}
a:link {
	color: #2f7ae7;
	text-decoration: underline;
}

a:visited {
	color: #6628a0;
	text-decoration: none;
}

a:hover,
a:active{
	color: #279bd7;
	text-decoration: none;
}

input,textarea {
	-webkit-appearance: none;
	appearance: none;
}

body::-webkit-scrollbar{
	width: 10px;
}
body::-webkit-scrollbar-track{
	background: #fff;
	border-left: solid 1px #ececec;
}
body::-webkit-scrollbar-thumb{
	background: #ccc;
	border-radius: 10px;
	box-shadow: inset 0 0 0 2px #fff;
}

/*---------------------------------------------------------*/

@media screen and (min-width: 1px) and (max-width: 1024px) {

	a {-webkit-tap-highlight-color:transparent;}

}

/*---------------------------------------------------------*/

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

.layout {
	width: 100%;
	overflow-x: hidden;
	overflow-y: auto;
}

.layout--loading {
	height: 100vh;
	overflow-y: hidden;
}

header {
	display: -ms-flexbox;/*IE10*/
	display: -webkit-flex;
	display: flex;
	-ms-flex-pack: center;/*IE10*/
	-webkit-box-pack: center;
	justify-content: center;
	-ms-flex-align: center;/*IE10*/
	-webkit-box-align: center;
	align-items: center;

	height: 80px;
	padding: 0 20px;
}
header h1 a {
	display: block;
}
header h1 img {
	width: 180px;
	height: auto;
}

/*---------------------------------------------------------*/

.has-slash {padding: 0 1.6em}
.has-slash::before,
.has-slash::after {
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	content: "";
	width: 1.6em;
	height: 1px;
	background-color: #101010;
	transform: rotate(-45deg);
}
.has-slash::before {left: 0;}
.has-slash::after {right: 0;}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

#mv-wrap {
	position: relative;
	width: 100%;
	margin: 100px auto;
}
#mv-wrap::after {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	content: "";
	width: 100%;
	height: 80%;
	background: url(../img/bk_dotted.png) repeat;
	border-top: 1px solid #f2f2f2;
	border-bottom: 1px solid #f2f2f2;
	z-index: -1;
}

#mv {
	position: relative;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
}

#mv-scroll {
	position: absolute;
	bottom: -40px;
	left: 50%;
	height: 80px;
}
#mv-scroll::after {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	width: 1px;
	height: 0;
	background-color: #101010;
	animation: mv_scroll 3s ease infinite;
}
@-webkit-keyframes mv_scroll {
	0% {height: 0px;}
	50%,100% {height: 100%;}
}
@keyframes mv_scroll {
	0% {height: 0px;}
	50%,100% {height: 100%;}
}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

#main-txt {
	margin: 180px 0;
	text-align: center;
}
#main-txt p {
	position: relative;
	letter-spacing: .2em;
	line-height: 2;
}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

.title {
	margin: 160px 0;
	text-align: center;
}
.title h2 {
	position: relative;
	display: inline-block;
	font-family: 'Oswald',sans-serif;
	font-weight: bold;
	font-size: 6.0rem;
	line-height: 1;
}

#title-02 {
	margin-bottom: 100px;
}
#title-02 h2 {
	font-size: 4.0rem;
}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

#pht-wrap {
	position: relative;
	width: 100%;
	max-width: 1280px;
	height: calc( 420px * 2.8 );
	margin: 0 auto;
}

.pht {
	position: absolute;
	width: 34%;
	max-width: 420px;
}
.pht img {
	width: 100%;
	max-width: 420px;
	height: auto;
}

#pht-05 {
	top: 5%;
	transform: rotate(-21deg);
}
#pht-04 {
	bottom: 12%;
	left: 14%;
	transform: rotate(17deg);
}
#pht-03 {
	bottom: 16%;
	right: 16%;
	transform: rotate(-19deg);
}
#pht-02 {
	top: 7%;
	right: 0;
	transform: rotate(26deg);
}
#pht-01 {
	top: 0;
	left: 50%;
	margin: auto;
	transform: rotate(7deg) translateX(-50%);
}

#pht-caption {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 50%;
	text-align: right;
	letter-spacing: .2em;
	line-height: 1.6;
	z-index: 0;
}
#pht-caption::before {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	content: "";
	width: 100%;
	height: 1px;
	background-color: #101010;
	z-index: -1;
}
#pht-caption p {
	display: inline-block;
	padding-left: 20px;
	background-color: #fff;
}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

.rank-wrap {
	margin: 240px 0 120px 0;
	border-top: 1px solid #f2f2f2;
	border-bottom: 1px solid #f2f2f2;
	background: url(../img/bk_dotted.png) repeat;
}

.rank {
	position: relative;
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
}

.rank-main {
	position: relative;
	width: 50%;
	padding: 80px 0;
}
.rank-wrap--left .rank-main {
	padding-right: 100px;
}
.rank-wrap--right .rank-main {
	margin-left: 50%;
	padding-left: 100px;
}

.rank-wrap--joint {
	margin: 120px 0;
}
.rank-wrap--joint .rank {
	display: -ms-flexbox;/*IE10*/
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-ms-flex-wrap: wrap;/*IE10*/
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}
.rank-wrap--joint .rank-main {
	width: calc( 50% - 50px );
}
.rank-wrap--joint .rank-main > * {
	position: relative;
}

.rank-number {
	display: -ms-flexbox;/*IE10*/
	display: -webkit-flex;
	display: flex;
	-ms-flex-pack: center;/*IE10*/
	-webkit-box-pack: center;
	justify-content: center;
	-ms-flex-align: center;/*IE10*/
	-webkit-box-align: center;
	align-items: center;

	width: 80px;
	height: 40px;
	padding: 0 10px;
	font-family: 'Oswald', sans-serif;
	font-weight: bold;
	font-size: 2.4rem;
	line-height: 1;
	color: #fff;
	background-color: #101010;
}

.rank-main h3 {
	margin-top: .8em;
	font-weight: normal;
	font-size: 2.4rem;
	line-height: 1;
}
.rank-main h3 span {
	display: inline-block;
	padding-left: 0.3em;
	font-size: 1.8rem;
}
.rank-main h3 br + a {
	display: inline-block;
	margin-top: 0.5em;
	font-size: 1.8rem;
}
.rank-main p {
	margin-top: 2.5em;
	font-size: 1.4rem;
	line-height: 2.0;
	letter-spacing: .1em;
}
.rank-main p.link {
	line-height: 1.5;
}

.rank-pht {
	position: absolute;
	top: -80px;
	width: 50%;
	max-width: 640px;
}
.rank-wrap--left .rank-pht {right: 0;}
.rank-wrap--right .rank-pht {left: 0;}
.rank-pht img {
	position: relative;
	width: 100%;
	height: auto;
}

.rank-caption {
	position: absolute;
	bottom: 10px;
	right: 0;
	font-size: 1.2rem;
	line-height: 1.4;
}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

#end-txt {
	display: -ms-flexbox;/*IE10*/
	display: -webkit-flex;
	display: flex;
	-ms-flex-pack: center;/*IE10*/
	-webkit-box-pack: center;
	justify-content: center;

	margin: 120px 0;
}

#end-txt > div {
	position: relative;
	padding: 120px 0;
}
#end-txt p {
	font-size: 2.4rem;
	line-height: 2em;
	letter-spacing: .1em;
	text-align: center;
}

#end-txt--start {
	position: absolute;
	top: 0;
	left: -100px;
	content: "";
	width: 100%;
	height: 60px;
	background: url(../img/quotation_start.svg) no-repeat;
}
#end-txt--start::after {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 80px;
	margin: auto;
	content: "";
	width: 40%;
	height: 1px;
	background-color: #101010;
}

#end-txt--end {
	position: absolute;
	bottom: 0;
	right: -100px;
	content: "";
	width: 100%;
	height: 60px;
	background: url(../img/quotation_end.svg) no-repeat right top;
}
#end-txt--end::after {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 80px;
	margin: auto;
	content: "";
	width: 40%;
	height: 1px;
	background-color: #101010;
}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

#otheryears {
	display: -ms-flexbox;/*IE10*/
	display: -webkit-flex;
	display: flex;
	-ms-flex-pack: center;/*IE10*/
	-webkit-box-pack: center;
	justify-content: center;
	-ms-flex-wrap: wrap;/*IE10*/
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;

	width: 100%;
	max-width: 1200px;
	margin: 100px auto 120px auto;
	padding-right: 20px;
}
#otheryears div {
	margin: 20px 0 0 20px;
}

#otheryears a {
	display: inline-block;
	padding: 0.8em 1.5em;
	font-size: 1.4rem;
	color: #ffffff;
	line-height: 1;
	text-decoration: none;
	background-color: #101010;
	border-radius: 5em;
	letter-spacing: 1px;
}
#otheryears a:hover {
	background-color: #2f7ae7;
}
#otheryears a.current {
	background-color: #2f7ae7;
}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

footer {
	padding: 20px;
	background-color: #101010;
	text-align: center;
}
address a,
address a:link,
address a:visited {
	font-family: 'Oswald', sans-serif;
	font-size: 1.2rem;
	color: #fff;
	text-decoration: none;
}

address a:hover {color: #d5d5d5}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

@media screen and (max-width: 1280px) {
	#mv-wrap {margin: 80px auto;}
	.title h2 {font-size: calc( 100vw * .047);}

	#pht-wrap {height: calc( 33.3vw * 2.8 );}
	#pht-caption p {padding-right: 20px;}

	.rank-wrap {padding: 0 80px}
	.rank-main {padding: 60px 0;}
	.rank-wrap--joint .rank-main {
		width: calc( 50% - 20px );
	}
	.rank-number {font-size: 2.0rem;}
	.rank-main h3 {font-size: 2.0rem;}
	.rank-wrap--left .rank-main {padding-right: 60px;}
	.rank-wrap--right .rank-main {padding-left: 60px;}
	.rank-pht {top: -60px;}
	#end-txt p span {display: inline-block;}
}

@media screen and (max-width: 1024px) {
	#mv-wrap {margin: 60px auto;}
	#pht-caption {
		width: 60%;
		font-size: 1.4rem;
	}

	.rank-wrap {padding: 0 40px; margin-bottom: 60px}
	.rank-main {padding: 40px 0;}
	.rank-wrap--joint {
		display: block;
		margin: 0;
		padding: 0;
		background: none;
		border: none;
	}
	.rank-wrap--joint .rank-main {
		width: 100%;
		margin: 60px 0;
		padding-right: 40px;
		padding-left: 40px;
		border-top: 1px solid #f2f2f2;
		border-bottom: 1px solid #f2f2f2;
		background: url(../img/bk_dotted.png) repeat;
	}
	.rank-wrap--joint .rank > *:nth-child(2) {
		margin-bottom: 0;
	}
	.rank-number {font-size: 2.0rem;}
	.rank-main h3 {font-size: 2.0rem;}
	.rank-wrap--left .rank-main {padding-right: 40px;}
	.rank-wrap--right .rank-main {padding-left: 40px;}
	.rank-pht {top: -40px;}

	#end-txt {padding: 0 120px;}
	#end-txt--start {left: -80px;}
	#end-txt--end {right: -80px;}
}

@media screen and (min-width: 769px) {
	.rank-main {min-height: 380px}
	.rank-wrap--joint .rank-main {
		min-height: auto;
	}
}

@media screen and (max-width: 768px) {
	#mv-wrap {margin: 40px auto;}
	#mv-jp {left: 15%}
	#mv-jp h2 {font-size: 1.6rem;}
	#mv-jp h2 br {display: block;}
	#mv-jp h2.has-slash {padding: 0 3.2em}
	#mv-jp h2.has-slash::before,
	#mv-jp h2.has-slash::after {width: 3.2em;}

	#mv-scroll {
		bottom: -30px;
		height: 60px;
	}

	#pht-caption {
		width: 80%;
		font-size: 1.2rem;
	}

	.rank-wrap {
		margin: 80px 0;
		padding: 0 40px;
	}
	.rank-main {
		width: 100%;
		margin-top: -20px;
		padding: 0 0 30px 0;
	}
	.rank-wrap--joint {
		padding: 0;
	}
	.rank-wrap--joint .rank-main {
		margin: 40px 0;
		padding-right: 40px;
		padding-left: 40px;
	}
	.rank-wrap--joint .rank-main .rank-number {
		margin-top: -20px;
	}
	.rank-wrap--left .rank-main {padding-right: 0;}
	.rank-wrap--right .rank-main {
		margin-left: 0;
		padding-left: 0;
	}
	.rank-pht {
		position: relative;
		top: 0;
		margin: 0 0 -40px 50%;
	}
	.rank-caption {
		width: calc( 50% - 10px );
		bottom: 0;
		left: 0;
		right: auto;
	}

	#end-txt,
	#otheryears {margin: 100px 0 60px 0;}
	#end-txt > div {padding: 80px 0;}
	#end-txt--start {left: -40px;}
	#end-txt--end {right: -40px;}
	#end-txt--start,
	#end-txt--end {
		height: 40px;
		background-size: auto 40px;
	}
	#end-txt p {font-size: 2.0rem;}

}

@media screen and (max-width: 600px) {
	header {
		height: 60px;
		padding: 0 10px;
	}
	header h1 img {width: 120px;}
	#mv-wrap {margin: 0px auto;}
	#mv {margin: 0px auto;}
	#mv-jp {left: 12%}
	#mv-jp h2 {font-size: 1.2rem;}
	#mv-scroll {
		bottom: -20px;
		height: 40px;
	}

	#main-txt {
		margin: 100px 30px;
		font-size: 1.4rem;
	}

	.title {margin: 100px 0;}
	.title h2 {font-size: 2.4rem;}
	#title-02 {margin: 100px 0 0 0;}
	#title-02 h2 {font-size: 2.4rem;}

	#pht-caption {
		width: calc( 100% - 10px );
		font-size: 1.0rem;
	}
	#pht-caption p {padding: 0 10px;}

	.rank-wrap {
		margin: 60px 0;
		padding: 0 30px;
	}
	.rank-main {
		width: 100%;
		margin-top: -10px;
		padding: 0 0 20px 0;
	}
	.rank-wrap--joint {
		padding: 0;
	}
	.rank-wrap--joint .rank-main {
		margin: 40px 0;
		padding-right: 30px;
		padding-left: 30px;
	}
	.rank-wrap--joint .rank-main .rank-number {
		margin-top: -10px;
	}
	.rank-number {font-size: 1.8rem;}
	.rank-main h3 {font-size: 1.8rem;}
	.rank-main h3 span {font-size: 1.4rem;}
	.rank-wrap--left .rank-main {padding-right: 0;}
	.rank-wrap--right .rank-main {
		margin-left: 0;
		padding-left: 0;
	}
	.rank-number {
		height: 20px;
		font-size: 1.4rem;
	}
	.rank-pht {
		position: relative;
		top: 0;
		width: 60%;
		margin: 0 0 -20px 40%;
	}
	.rank-caption {width: 100%;}

	#end-txt {
		margin: 60px 0;
		padding: 0 40px;
	}
	#end-txt > div {padding: 40px 0;}
	#end-txt--start {left: -20px;}
	#end-txt--end {right: -20px;}
	#end-txt--start,
	#end-txt--end {
		height: 20px;
		background-size: auto 20px;
	}
	#end-txt p {font-size: 1.4rem;}
	#end-txt--start::after {left: 30px}
	#end-txt--end::after {right: 30px;}

	#otheryears {
		margin: 20px 0 40px 0;
		padding: 0 20px 0 0;
	}

	footer {padding: 10px;}
	address a {font-size: 1.0rem;}
}

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

/*---------------------------------------------------------*/
/*---------------------------------------------------------*/

