@charset "UTF-8";

body{
  background:#fff;
}
.columns{
  display:flex;
  flex-direction:column;
  margin:0 auto 3em;
  width:96%;
  gap:2em;
}
.gameMain{
  order:3;
}
.gameSide{
  order:2;
}
.gameTop{
  order:1;
}

@media (max-width: 959px) {
  .mv{
    margin:0 -2%;
  }

}
@media (min-width: 960px) {
  .columns{
    display:grid;
    grid-template-columns:250px 1fr;
    grid-template-rows: auto;
    grid-template-areas:
      "side top"
      "side main";
    column-gap:60px;
    max-width:1200px;
    margin:60px auto 100px;
  }
  .columns.taxonomy{
    grid-template-areas:
      "side main";
  }
  .gameMain{
    grid-area: main;
  }
  .gameSide{
    grid-area: side;
  }
  .gameTop{
    grid-area: top;
    gap:50px;
  }
  .columns.taxonomy .gameMain{
  }
  .columns.taxonomy .gameTop{
    display:none;
  }
}

.gameMain .categoryName {
	font-size: 1.5em;
  font-weight:normal;
	color: #0096da;
	border-bottom: 1px dashed #0096da;
	background: url("../../../../../img/card/tit_icon.png") left center no-repeat;
	padding: 0 0 .3em 1.5em;
	margin: 0 0 30px;
}
.aboutProject{
  text-align:center;
  font-size:1.25em;
}
.aboutProject a span{
  background:linear-gradient(transparent 60%, #FFFF97 60%);
}
.aboutProject a::before,
.aboutProject a::after{
  display:inline-block;
  content:"\f059";
  color:#0096da;
  margin:0 .2em 0 0;
  font-family:"Font Awesome 6 Free";
  font-weight:400;
}
.aboutProject a::after{
  content:"\f0da";
  margin:0 0 0 .2em;
  font-weight:600;
  font-size:14px;
  box-sizing:border-box;
  width:20px;
  height:20px;
  border:2px solid #0096da;
  border-radius:3px;
}
.aboutProject a:hover::before{
  font-weight:600;
}
.aboutProject a:hover::after{
  color:#fff;
  background:#0096da;
}
.aboutProject a:hover::before{
  font-weight:600;
}
.gameNotice{
  background:#ffc;
  padding:10px;
  color:#f00;
}
.gameNotice ul{
  padding:0;
}

.ranking{
  display:flex;
  justify-content:center;
}
.ranking .btn{
  display:inline-block;
	background: #0096da;
  border:2px solid #0096da;
	border-radius: 2em;
	color: #fff;
	padding: 1em;
	font-size: 1.1em;
	font-weight: bold;
  width:100%;
  box-sizing:border-box;
  position:relative;
  transition:all .3s;
  text-align:center;
}
.ranking .btn::after{
  display:block;
  content:"";
  width:.5em;
  height:.5em;
  border-top:2px solid #fff;
  border-right:2px solid #fff;
  position:absolute;
  top:50%;
  right:1em;
  transform:translateY(-50%) rotate(45deg);
}
.ranking .btn:hover{
	background: #fff;
	color: #0096da;
}
.ranking .btn:hover::after{
	border-color:#0096da;
}

@media (min-width: 768px) {
  .taxonomy .gameMain .ranking{
    margin:0 0 2em;
  }
  .ranking .btn{
    width:60%;
    min-width:480px;
    font-size:1.25em;
  }
}

@media (max-width: 767px) {
  .taxonomy .gameMain .ranking{
    display:none;
  }
}

.gameTop,
.gameMain .gameListWrapper {
  display:flex;
  flex-direction:column;
  gap:2em;
}
.gameMain .gameListWrapper {
  gap:4em;
}
.gameMain .gameListWrapper ul {
	padding: 0;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:30px;
}
@media (max-width: 767px) {
  .gameMain .gameListWrapper li:nth-of-type(3) {
    display:none;
  }
  .taxonomy .gameMain .gameListWrapper li:nth-of-type(3) {
    display:block;
  }
}

@media (min-width: 768px) {
  .gameMain .gameListWrapper ul {
    grid-template-columns:repeat(3, 1fr);
    gap:30px;
  }
}

.gameMain .gameListWrapper li a {
	position:relative;
  display:block;
	transition:all .2s;
}
.gameMain .gameListWrapper li a:hover {
	opacity:.7;
}
.gameMain .gameListWrapper li .gameImg {
	position:relative;
  margin:0;
}
.gameMain .gameListWrapper li .new {
	position:absolute;
  top:10px;
  left:10px;
  background:#f00;
  color:#fff;
  font-size:1.2rem;
  padding:2px 5px;
  z-index:1;
}
.gameMain .gameListWrapper li .gameCat {
	position:absolute;
  bottom:10px;
  left:10px;
  background:rgba(0,0,0,.6);
  color:#fff;
  border-radius:15px;
  padding:5px 10px;
  font-size:.8em;
}
.gameMain .gameListWrapper li img {
	height:auto;
  width: 100%;
  aspect-ratio:5 / 4;
  object-fit:cover;
}

.gameMain .gameListWrapper li .gameTit {
  font-weight:bold;
	margin: 10px 0 5px;
}
.gameMain .gameListWrapper li .gameDesc {
  font-size: .875em;
}

@media (max-width: 767px) {
  .gameMain .gameListWrapper ul{
    display:flex;
    flex-direction:column;
    gap:5vw;
  }
  .gameMain .gameListWrapper li a {
    display:grid;
    grid-template-columns: 130px 1fr;
    gap:10px;
  }
  .gameMain .gameListWrapper li .gameTit {
    font-size:1em;
    margin-top:0;
  }
  .gameMain .gameListWrapper li .gameCat {
    bottom:10px;
    left:5px;
    padding:2px 5px;
    font-size:.75rem;
  }
  .gameMain .gameListWrapper li .new {
  	top:5px;
    left:5px;
    font-size:.75em;
  }
}

.gameListBtn {
  margin:2.5em 0 0;
	text-align: center;
}
.gameListBtn a,
.gameListBtn span{
  display:inline-block;
	background-color: #fff;
	border: 3px solid #0096da;
	border-radius: 5px;
	color: #0096da;
	background-image: url("../../../../../img/card/list_arrow02.png");
	background-position: 45px center;
	background-repeat: no-repeat;
	padding: 20px 0;
	font-size: 1.3em;
	font-weight: bold;
  width:100%;
  box-sizing:border-box;
  position:relative;
  cursor:pointer;
}
.gameListBtn a:hover,
.gameListBtn span:hover {
	background-color: #0096da;
	color: #fff;
	background-image: url("../../../../../img/card/list_arrow.png");
}
.gameListBtn span.loading::before {
  display:block;
  content:"";
  width:100%;
  height:100%;
  position:absolute;
  top:-3px;
  left:-3px;
	background-color: #fff;
	border: 3px solid #fff;
  opacity:.7;
}
.gameListBtn span.loading::after {
  display:block;
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width: 30px;
  padding: 8px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #aaa;
  --_m: 
    conic-gradient(#0000 10%,#000),
    linear-gradient(#000 0 0) content-box;
  -webkit-mask: var(--_m);
          mask: var(--_m);
  -webkit-mask-composite: source-out;
          mask-composite: subtract;
  animation: l3 1s infinite linear;
  transform:translate(-50%,-50%);
}
@keyframes l3 {to{transform: translate(-50%,-50%) rotate(1turn)}}

@media (min-width: 768px) {
  .gameListBtn a,
  .gameListBtn span{
    width:50%;
  }
}

small {
	font-size: smaller;
}
.gameSide {
	font-size:1em;
}
.gameSide .sideCategoryLabel {
	font-size:1em;
	font-weight: normal;
	background-color: #f8f8f8;
	border-left: 3px solid #0096da;
	padding: 20px 0 20px 20px;
  position:relative;
}
.gameSide .sideCategoryList {
	padding: 0;
}
.gameSide .sideCategoryList li {
	border-bottom: 1px solid #bfbfbf;
}
.gameSide .sideCategoryList li a {
  display:block;
	padding: 20px 0 20px 20px;
  transition:all .3s;
}
.gameSide .sideCategoryList li.active a,
.gameSide .sideCategoryList li a:hover {
	background-color: #d0f0ff;
}
.gameSide .sideCategoryList li a::before {
	content:"-";
  margin-right:.5em;
}

@media (max-width: 959px) {
  .gameSide .sideCategoryListWrap {
    position: relative;
    overflow:hidden;
  }
  .gameSide .sideCategoryList {
    position: absolute;
    z-index: 9999;
    left: 0;
    visibility: hidden;
    transition: .5s;
  }
  .gameSide .sideCategoryList.closed {
    opacity: 0;
    top: -100%;
  }
  .gameSide .sideCategoryList.opened {
    position: relative;
    top: 0;
    visibility: visible;
    opacity: 1;
  }

	.gameSide .sideCategoryLabel::after {
		content: "＋";
		font-size: 1.5em;
		color: #000;
		display: block;
		background-color: #fff;
		position: absolute;
		top: 50%;
		right: 10px;
		text-align: center;
		padding: 8px 10px 12px;
    line-height:1;
    transform:translateY(-50%);
	}
	.gameSide .sideCategoryLabel.opened::after {
		content: "ー";
	}
}

@media (min-width: 768px) {
  .gameSide {
  	font-size:1.275em;
  }
}
