@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Lexend:wght@100..900&display=swap');

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  /* border: 1px solid #ff1414; */
}

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td {
    margin: 0;
    padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 70px;
  }

body {
  font-family: 'Noto Sans JP';
  /* font-size: 14px; */
  font-weight: 400;
  font-style: normal;
  color: #231815;
  line-height: 1.6;
  letter-spacing: 0.01em;
  font-feature-settings: 'palt';
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}
/* p {
  font-size: 12px;
  line-height: 1.4;
  word-break: break-word;
}

@media screen and (min-width: 600px) {
  body,p {
    font-size: 14px;
    line-height: 1.45;
  }
}
@media screen and (min-width: 990px) {
  body,p {
    font-size: 15px;
    line-height: 1.45;
  }
}
@media screen and (min-width: 1366px) {
  body,p {
    font-size: 17px;
  }
} */

a {
    text-decoration: none;
    color: #000;
}
img {
    max-width: 100%;
    height: auto;
    border: 0;
}
table {
  border-collapse: collapse;
}
ol, ul {
    list-style: none;
}

a:link, a:visited, a:active, a:hover {
    overflow: hidden;
    outline: none;
}

.tb-only{
  display: none;
}
.pc-only {
  display: none;
}

@media screen and (min-width: 599px) {
  .sp-only {
    display: none;
  }
  .tb-only {
    display: block;
  }
}

@media screen and (min-width: 990px) {
  .tb-only{
    display: none;
  }
  .pc-only {
    display: block;
  }
}

/*-- ここからHEADER --*/
.logo_group{
  display: flex;
  align-items: center;
}
header {
  z-index: 99;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(255,255,255,0.01);
}
.header {
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  padding: 0 2em;
}
.logo_group{
  display: flex;
  align-items: center;
}
.h_logo{
  width: 180px;
}
.h_logo img{
  padding: 11px 0 0;
}
.header {
  margin: 0;
  padding: 0 2em;
}
.header nav {
  margin: 0 0 0 auto;
}
.header ul {
  list-style: none;
  margin: 0;
  display: flex;
}
.pc-nav li {
  margin: 0 0 0.2em 2em;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  color:#d9d9d9;
  position: relative;
}
.pc-nav a{
  text-decoration: none;
  color: #FFF;
}
.pc-nav a::after {
  position: absolute;
  top: 20px;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #ff0;
  bottom: 20px;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  }
  
.pc-nav a:hover::after {
  visibility: visible;
  bottom: 12px;
  opacity: 1;
  }

@media screen and (max-width: 1024px) {
.header {
  padding: 0 10px;
}
.h_logo{
  width: 120px;
}
.h_logo img{
  padding: 7px 0 0;
}
}

@media screen and (max-width: 768px) {
.pc-nav {
    display: none;
}
}

@media (max-width: 425px) {
.header {
  padding: 0 1em;
}
.h_logo {
width: 130px;
}
.h_logo img {
  padding: 7px 0;
}
}
/*-- ここまでHEADER --*/

/* ここから 共通 */
.l-inner{
  box-sizing: content-box;
  padding: 6vw 10vw;
  margin: 0 auto;
}
.title__wrap{
  text-align: center;
}
.lp_btn{
  padding: 8vw 0 0;
}

@media screen and (min-width: 1024px) {
  .l-inner{
    padding: 4% 8%;
  }
  .lp_btn{
    padding: 5em 0 0;
  }
}

/* ここまで 共通 */

/* ここからMAIN VISUAL */
.mv {
  width: 100%;
  height: 80vh;
  overflow: hidden;
  background: url(../images/kv_bg.jpg) no-repeat center center;
  background-size: cover;
  position: relative;
}
.mv::before {
  content: '';
  background-color: rgba(0,0,0,.65);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.mv__wrap{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  max-width: 1400px;
  padding: 4% 8%;
}
.mv__container {
  padding: 6% 12% 16%;
}


@media screen and (min-width: 600px) {
  .mv__container {
    padding: 6% 18%;
}
}

@media screen and (min-width: 990px) {
  .mv{
    margin: 12em 0 0;
  }
  .mv__wrap{
    display: grid;
    grid-template-columns: 20% 80%;
    gap: 4em;
    align-items: center;
  }
  .mv__container {
    padding: 0;
}
}

@media screen and (min-width: 1536px) {
  .mv__wrap{
    padding: 4% 0;
  }
}
/* ここまでMAIN VISUAL */

/* ここから INTRODUCTION */
.intro__contents{
  overflow: hidden;
  max-width: 100%;
  background: #000104;
  padding: 4em 8% 0;
}
.intro__contents__next{
  display: flex;
  flex-direction: column-reverse;
  overflow: hidden;
  max-width: 100%;
  background: #111619;
  padding: 2em 8%;
}
.intro__contents h2,
.intro__contents__next h2{
  font-size: 14px;
  font-weight: 500;
  color: #FFF;
  margin-bottom: 1.5vw;
}
.intro__wrap {
  padding: 0 0 6vw;
}
.intro__bg {
  display: none;
}
.intro__bg__next{
  max-width: 100%;
  overflow: hidden;
}
.intro__text,
.intro__text__next{
  color: #FFF;
  font-size: 12px;
}

@media screen and (min-width: 990px) {
  .intro__bg {
    display: block;
    max-width: 100%;
    overflow: hidden;
}
  .intro__contents,
  .intro__contents__next{
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    padding: 0;
  }
  .intro__contents h2, .intro__contents__next h2 {
    font-size: 18px;
  }
  .intro__text,
  .intro__text__next{
    line-height: 2.0;
    font-size: 15px;
  }
  .intro__wrap {
    padding: 0 8% 0 0;
  }
  .intro__wrap__next{
    padding: 0 0 0 8%;
  }
}

@media screen and (min-width: 1366px) {
  .intro__contents,
  .intro__contents__next{
    height: 480px;
  }
  .intro__contents h2, 
  .intro__contents__next h2 {
    font-size: 22px;
}
  .intro__text,
  .intro__text__next{
    font-size: 16px;
  }
  .intro__wrap {
    padding: 0 12% 0 0;
  }
  .intro__wrap__next{
    padding: 0 0 0 12%;
  }
}

@media screen and (min-width: 1680px) {
  .intro__contents,
  .intro__contents__next {
    height: 530px;
  }
  .intro__wrap {
    padding: 0 20% 0 0;
  }
  .intro__wrap__next{
    padding: 0 0 0 20%;
  }
}
/* ここまで INTRODUCTION */

/* ここから DETAIL */
.detail__contents{
  text-align: center!important;
  padding: 4em 8%;
  text-align: center;
  background: #081632;
  color: #FFF;
}
.detail__contents h2{
  font-size: 14px;
  font-weight: 500;
  color: #FFF;
  margin-bottom: 1.5vw;
}
.detail__text{
  color: #FFF!important;
}
.lineup__title {
  text-align: center;
  color: #FFF;
  font-size: 1.8rem;
  padding: 0 0 1em;
}

@media screen and (min-width: 990px) {
  .detail__contents{
    padding: 6em 0;
  }
  .detail__textwrap{
    padding: 0 12vw;
  }
  .detail__text{
    line-height: 2.0;
    font-size: 16px;
    text-align: center;
  }
  .detail__contents h2 {
    font-size: 18px;
    text-align: center;
  }
  .lineup__title {
    font-size: 2.8rem;
  }
}

@media screen and (min-width: 1366px) {
  .detail__contents h2 {
    font-size: 22px;
}
  .detail__textwrap{
    padding: 2em 0;
    width: 1000px;
    margin: 0 auto;
  }
}
/* ここまで DETAIL */

/* banner */
.banner__contents{
  padding: 4em 6%;
}
.banner__contents h3{
  color: #FFF;
  text-align: center;
  font-size: 4vw;
  font-weight: 700;
  padding: 0 0 1vw;
}
.banner__wrap figure{
  padding: 1em 0;
}

@media screen and (min-width: 600px) {
  .banner__contents h3{
    font-size: 1.6rem;
  }
  .banner__wrap{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    align-items: center;
    gap: 1em;
}
}

@media screen and (min-width: 990px) {
  .banner__contents {
    padding: 8em 6%;
}
.banner__contents h3{
  font-size: 2.2rem;
}
}

@media screen and (min-width: 1536px) {
  .banner__contents h3{
    font-size: 2.8rem;
    padding: 0 0 2vw;
  }
  .banner__contents {
    padding: 8em 12% 10em;
  }
  .banner__wrap{
    gap: 0 2em;
}
}
/* banner */

/* go to TOP */
#page-top a{
  display: flex;
  justify-content:center;
  align-items:center;
  background:#237bcc;
  border-radius: 5px;
  width: 60px;
  height: 60px;
  color: #FFF;
  text-align: center;
  text-transform: uppercase; 
  text-decoration: none;
  font-size:0.6rem;
  transition:all 0.3s;
}

#page-top a:hover{
  background: #4692d9;
}
#page-top {
  position: fixed;
  right: 10px;
  z-index: 2;
  opacity: 0;
  transform: translateY(100px);
}
@media screen and (max-width: 768px) {
  #page-top a{
    opacity: 0.5;
  }
}
#page-top.UpMove{
  animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }
  to {
    opacity: 1;
  transform: translateY(0);
  }
}

#page-top.DownMove{
  animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
    opacity: 1;
  transform: translateY(0);
  }
  to {
    opacity: 1;
  transform: translateY(100px);
  }
}
.pagetop:hover {
  opacity: .8;
}
/* go to TOP */