@charset "utf-8";
/* CSS Document */

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

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;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

a{
  text-decoration: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}/* -- */

body {
  margin: 0px;
  padding: 0px;
  font-family: "BIZ UDPGothic", Meiryo, sans-serif;
  line-height: 1.6;
  font-weight: bold;
  overflow-x: hidden;
  font-size: 22px;
}

.inner{
  width: 1000px;
  margin: 0 auto;
}

button{
  background-color: transparent;
        border: none;
        cursor: pointer;
        outline: none;
        padding: 0;
        appearance: none;
}

/* Firefox */
button::-moz-focus-inner {
  border: 0;
}

.clearfix:after {
 visibility: hidden;
 display: block;
 font-size: 0;
 content: " ";
 clear: both;
 height: 0;
}

/*============
loader
============*/
.loader {
  background: url("../images/bg-repeat.jpg") repeat top center;
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 555;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  animation: slideLBtoRT 15s linear infinite;
}
.loader .txt-content {
  display: none;
  animation: loading 0.5s;
}

@keyframes loading {
	0% {opacity: 0;transform: scale(1.05);}
	100% {opacity: 1;transform: scale(1);}
}

 @keyframes slideLBtoRT {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 128px -128px;
    }
}
/*============
header
============*/
header{
  background: url("../images/top-bg.jpg") no-repeat top center;
	overflow: hidden;
}

header .inner{
  height: 870px;
  position: relative;
}

header .inner h1{
  position: absolute;
  top: 0;
  left: 0;
	z-index: 1;
}

header .inner h2{
  position: absolute;
  top: 0;
  right: 0;
	animation: fadein .5s ease both;
  animation-delay: 3s;
}

header .inner .desc{
  position: absolute;
  top: 228px;
  left: 0;
	animation: fadein .5s ease both;
  animation-delay: 3s;
}

/*fadein*/
@keyframes fadein {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

header .inner .btn{
	background: url("../images/btn-bg.png") no-repeat top center;
	height: 428px;
	width: 480px;
	position: relative;
	position: absolute;
	top: 442px;
	right: 0;
}

header .inner .btn ul{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	position: absolute;
	top: 169px;
	left: 10px;
}

header .inner .btn .header-btn1{
	margin: 0 10px 10px 0;
}
/*============
btn
============*/

.basic-btn span{
  font-size: 45px;
}

.header-btn1 span{
	line-height: 1;
  font-size: 26px;
}

.header-btn2 span{
  font-size: 50px;
}

.header-btn1,
.header-btn2,
.basic-btn {
  background: #fff;
  border: 1px solid #0c1f48;
  font-weight: 700;
  cursor: pointer;
  border-radius: 50px;
  position: relative;
  z-index: 2;
  overflow: hidden;
  transition: all 0.5s ease;
}

.basic-btn{
	width: 400px;
  height: 100px;
}

.header-btn1{
	width: 225px;
  height: 85px;
}

.header-btn2{
	width: 459px;
  height: 129px;
	background: #0c1f48;
  border: 1px solid #0c1f48;
	border-radius: 100px;
}

.header-btn1 a,
.basic-btn a{
  color: #0c1f48;
}
.header-btn2 a{
	color: #fff;
}
.header-btn1::after,
.header-btn2::after,
.basic-btn::after {
  content: "";
  width: 100%;
  height: 100%;
  background: #0c1f48;
  position: absolute;
  bottom: -100%;
  left: 0;
  border-radius: 50%;
  z-index: -1;
  transition: all 0.5s ease;
}

.header-btn2::after{
	background: #fff !important;
}

.header-btn1:hover a,
.basic-btn:hover a {
  color: #fff;
  opacity: 1 !important;
}

.header-btn2:hover a{
	color: #0c1f48;
  opacity: 1 !important;
}

.header-btn1:hover::after,
.header-btn2:hover::after,
.basic-btn:hover::after {
  bottom: 0;
  border-radius: 0;
}

.header-btn1 a::before,
.header-btn2 a::before,
.basic-btn a::before{
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top:0;
    left:0;
}		

/*============
play
============*/
#play{
  background-color: rgba(205,221,255,0.5);
  height: 1054px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
#play .inner{
  position: relative;
}
#play h2{
  padding: 71px 0 15px;
}

.background video{
	display: block;
	min-width: 100%;
	height: auto;
	margin: 0;
  padding: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  z-index: -1;
}

.step-container {
  max-width: 960px;
  margin: 0 auto;
}

/* ボタンのスタイル */
.step-buttons {
  display: flex;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0 0 15px 0;
}

.step-btn {
  cursor: pointer;
  margin-right: 10px;
}

.step-btn:last-child {
  margin-right: 0;
}

/* スライドショーエリア（高さを固定するために相対配置） */
.step-slideshow {
  position: relative;
  width: 100%;
}

.step-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0; /* 通常時は透明 */
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease; /* ふわっと切り替える */
  z-index: 1;
}


.step-slide:first-child {
  position: relative; /* 1枚目の高さが親要素の高さになる */
}

/* アクティブ（表示対象）のスタイル */
.step-slide.active {
  opacity: 1;
  visibility: visible;
  z-index: 2;
}

.step-slide img {
  width: 100%;
  height: auto;
  display: block;
}
.step-buttons li:nth-of-type(1):hover,
.step-buttons li:nth-of-type(1).active{
  background: url("../images/play-1_on.png");
  height: 63px;
}

.step-buttons li:nth-of-type(1):hover img,
.step-buttons li:nth-of-type(1).active img{
  visibility: hidden;
}

.step-buttons li:nth-of-type(2).active{
  background: url("../images/play-2_on.png");
  height: 63px;
}

.step-buttons li:nth-of-type(2).active img{
  visibility: hidden;
}

.step-buttons li:nth-of-type(3).active{
  background: url("../images/play-3_on.png");
  height: 63px;
}

.step-buttons li:nth-of-type(3).active img{
  visibility: hidden;
}
/*============
mmorpg
============*/
#mmorpg{
  background: url("../images/mmorpg-bg.jpg") no-repeat top center;
	overflow: hidden;
}

#mmorpg .inner{
  position: relative;
  height: 1072px;
  text-align: center;
	
}

#mmorpg h3{
  padding: 68px 0 25px;
}


#mmorpg .chara li,
#mmorpg .picture li{
  position: absolute;
}

#mmorpg .picture li:nth-of-type(1){
  top: 442px;
  left: 0;
}

#mmorpg .picture li:nth-of-type(2){
  top: 520px;
  right: 0;
}

#mmorpg .picture li:nth-of-type(3){
  top: 689px;
  left: 133px;
}

#mmorpg .chara li:nth-of-type(1){
  top: 74px;
  left: -321px;
  animation: chara 0.8s ease-in-out infinite alternate;
}

#mmorpg .chara li:nth-of-type(2){
  top: 446px;
  left: -500px;
  animation: chara 1.2s ease-in-out infinite alternate;
}

#mmorpg .chara li:nth-of-type(3){
  top: 201px;
  right: -356px;
  animation: chara 1s ease-in-out infinite alternate;
}

#mmorpg .chara li:nth-of-type(4){
  top: 501px;
  right: -500px;
  animation: chara 0.8s ease-in-out infinite alternate;
}

@keyframes chara {
    0% { transform:translateY(-10px); }
  100% { transform:translateY(  0px); }
}

/*============
job
============*/
#job{
  background: url("../images/job-bg.jpg") no-repeat top center;
}

#job .inner{
  position: relative;
  height: 959px;
  text-align: center;
}
#job h3{
  position: absolute;
  top: 65px;
  left: 55px;
}

#job .desc{
	position: absolute;
	top: 834px;
	left: 0;
	z-index: 1;
}
.jobstab{
	width: 391px;
  display: flex;
  justify-content: center;
	flex-wrap: wrap;
  position: absolute;
  top: 230px;
  left: 0;
  z-index: 1;
}

.jobstab li{
  margin-right: 10px;
  cursor: pointer;
}

.jobstab li:nth-of-type(1).active{
  background: url("../images/job-btn1_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(2).active{
  background: url("../images/job-btn2_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(3).active{
  background: url("../images/job-btn3_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(4).active{
  background: url("../images/job-btn4_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(5).active{
  background: url("../images/job-btn5_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(6).active{
  background: url("../images/job-btn6_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(7).active{
  background: url("../images/job-btn7_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(8).active{
  background: url("../images/job-btn8_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(9).active{
  background: url("../images/job-btn9_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(10).active{
  background: url("../images/job-btn10_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(11).active{
  background: url("../images/job-btn11_on.jpg");
  height: 140px;
}

.jobstab li:nth-of-type(12).active{
  background: url("../images/job-btn12_on.jpg");
  height: 140px;
}

.jobstab li.active img{
  visibility: hidden;
}


.jobstab_content h2{
	position: absolute;
	right: 0;
	top: 193px;
}

.jobstab_content .txt{
	position: absolute;
	right: 0;
	top: 655px;
}



.ranger .chara{
	position: absolute;
	left: 17px;
	top: 236px;
}

.swordman .chara{
	position: absolute;
	left: 293px;
	top: 263px;
}

.archer .chara{
	position: absolute;
	left: 42px;
	top: 279px;
}

.healer .chara{
	position: absolute;
	left: 334px;
	top: 279px;
}

.magician .chara{
	position: absolute;
	top: 243px;
	left: 328px;
}

.nighter .chara{
	position: absolute;
	top: 193px;
	left: 337px;
}

.maidleader .chara{
	position: absolute;
	top: 273px;
	left: 473px;
}

.milodia .chara{
	position: absolute;
	top: 245px;
	left: 431px;
}

.obscurite .chara{
	position: absolute;
	top: 300px;
	right: -336px;
}

.fyschutz .chara{
	position: absolute;
	top: 285px;
	left: 273px;
}

.fyschutz .chara{
	position: absolute;
	top: 285px;
	left: 273px;
}

.clairbranche .chara{
	position: absolute;
	top: 279px;
	left: 284px;
}

.astelogia .chara{
	position: absolute;
	top: 273px;
	left: 75px;
}


/*============
menu
============*/
#menu{
  background: url("../images/bg-repeat2.jpg") repeat top center;
}

#menu .inner{
  position: relative;
  height: 159px;
  text-align: center;
}
#menu .btn{
	display: flex;
	justify-content: center;
	padding-top: 30px;
}

#menu .btn .basic-btn{
	margin-right: 10px;
}
/* ============
footer
============*/
footer{
  background-color: #fff;
  height: 225px;
  text-align: center;
}

footer ul{
  padding: 30px 0;
  display: flex;
  justify-content: center;
    align-items: center;
}

footer li{
  padding: 0 10px 0 0;
}

footer p{
    padding-top: 16px;
}

footer #copyright{
    font-size: 14px;
    color: #959aad;
    line-height: 1.5;
    letter-spacing: normal;
}


.x-btn {
 	width: 100px;
  height: 100px;
 	background: #0c1f48;
  position: relative;
  z-index: 2;
  overflow: hidden;
  transition: all 0.5s ease;
  cursor: pointer;
  border-radius: 50%;
  border: 1px solid #0c1f48;
}

.x-btn svg{
  width: 54px;
}
.x-btn:hover svg path {
   fill: #0c1f48;
}

.x-btn::after {
  content: "";
  width: 100%;
  height: 100%;
  background: #fff;
  position: absolute;
  bottom: -100%;
  left: 0;
  border-radius: 50%;
  z-index: -1;
  transition: all 0.5s ease;
}

.x-btn:hover::after {
  bottom: 0;
  border-radius: 0;
}
