@charset "UTF-8";

/* 共通設定値 */
:root{
  --color-base-light: #fdfdfd;
  --color-base-light-opacity: #fdfdfdcc;
  --color-base-dark: #111;
  --color-base-dark-opacity: #111c;
  --color-main: #197bcc;
  --color-main-opacity: #197bcccc;
  --font-color-dark: #111;
  --font-color-light: #fdfdfd;

  --font-size-main-visual: 4.25rem;
  --font-size-copy: 3rem;
  --font-size-xl: 2rem;
  --font-size-l: 1.5rem;
  --font-size-m: 1.125rem;
  --font-size-s: 0.75rem;

  --header-height: 96px;

  --container-width-max: 1440px;

  --main-visual-animation-total: 24s;
}


/* 基本スタイル */
body{
  font-family: "Zen Antique Soft", serif;
  font-weight: 400;
  font-style: normal;
  color: var(--font-color-dark);
  background-color: var(--color-base-light);
  scroll-behavior: smooth;
}

section{
  padding: 1rem 0;
  text-align:center;
}
section:nth-child(even){
  color: var(--font-color-light);
  text-shadow: 1px 1px 2px var(--font-color-dark);
  background-color: var(--color-main-opacity);
}

table{
  border-collapse: separate;
  border-spacing: 2em 1em;
  padding-top: 2rem;
}

table tr td:nth-child(1){
  width: 30%;
  text-align: right;
}
table tr td:nth-child(2){
  width: 60%;
  text-align: left;
}

img{
  width: 100%;
}

h2{
  display: block;
  width: 100%;
  text-align: center;
  font-size: var(--font-size-xl);
}

h3{
  font-size: var(--font-size-m);
  padding-top: 1rem;
}

li{
  list-style-type: none;
}

a{
  color: var(--font-color-dark);
  text-decoration: none;
}

dt{
  font-size: var(--font-size-l);
  text-align: left;
  padding-top: 1rem;
}
dd{
  font-size: var(--font-size-m);
  text-align: left;
  line-height: 1.7;
  padding: 1em 0 0;
}


/* 共通クラス */
.container{
  width: 96%;
  max-width: var(--container-width-max);
  margin: 0 auto;
}

.button_more_blue,
.button_more_white{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 12rem;
  height: calc(var(--font-size-m) * 2.5);
  border: 1px solid transparent;
  border-radius: 20px;
  text-shadow: none;
  margin: 2rem auto 1rem;
  transition: all 0.4s;
}

.button_more_blue{
  color: var(--font-color-light);
  background-color: var(--color-main);
}
.button_more_blue:hover{
  color: var(--font-color-dark);
  background-color: var(--color-base-light);
  border-color: var(--color-main);
  transform: scale(0.95);
}

.button_more_white{
  color: var(--font-color-dark);
  background-color: var(--color-base-light);
  border-color: var(--color-main);
}
.button_more_white:hover{
  color: var(--font-color-light);
  background-color: var(--color-main);
  border-color: var(--color-base-light);
  transform: scale(0.95);
}


/* ヘッダー */
header{
  position: sticky;
  top: 0;
  container-type: scroll-state;
  color: var(--font-color-light);
  width: 100%;
  height: var(--header-height);
  z-index: 100;
}

header .header_backgroundcolor{
  background-color: var(--color-main);
  height: 100%;
  width: 100%;
  transition: all 0.6s;
  @container scroll-state(stuck: top){
    background-color: var(--color-main-opacity);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border-radius: 20px;
    transform: scale(0.90) translateY(calc(var(--header-height) * 0.1 / 2));
    transform-origin: center;
  }
}

header .container{
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}

header h1 a{
  display: block;
  background-image: url("../img/logo.svg");
  background-color: var(--color-base-light);
  width: 78px;
  aspect-ratio: 1;
  background-size: 150%;
  background-position: 10% 30%;
  border-radius: 16px;
  object-fit: cover;
  margin: 1px;
  transition: all 0.4s;
}
header h1 a:hover{
  filter: brightness(80%);
}

nav{
  height: 100%;
}

#menu{
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}

#menu li{
    width: 192px;
    height: 100%;
}

#menu a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 80%;
    font-size: var(--font-size-l);
    color: var(--font-color-light);
    margin: 5% auto;
    border-radius: 12px;
    transition: all 0.4s;
}
#menu a:hover{
    color:var(--color-main);
    background-color:var(--color-base-light);
}


/* メインビジュアル */
#main_visual{
  position: relative;
  top: calc(var(--header-height) * -1);
  width: 100%;
  height: 100vh;
  overflow: hidden;
}
#main_visual_1,
#main_visual_2,
#main_visual_3{
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background-position: center;
  transition-timing-function: linear;
  transition-duration: 0s;
  transition-delay: 0s;
}

/* メインビジュアル1枚目 */
#main_visual_1::after{
  position: absolute;
  top: 20%;
  left: 15%;
  content:"NEXT STAR";
  color: var(--font-color-light);
  font-size: var(--font-size-main-visual);
  text-shadow: 1px 1px 2px var(--font-color-dark);
  z-index: 1;
}
#main_visual_1{
  background-image: url("../img/firstview1.webp");
  animation: main_visual_slide_1 var(--main-visual-animation-total) infinite;
}
@keyframes main_visual_slide_1{
  0% {opacity: 1;}
  33% {opacity: 0;}
  66% {opacity: 0;}
  99% {opacity: 1;}
  100% {opacity: 1;}
}

/* メインビジュアル2枚目 */
#main_visual_2::after{
  position: absolute;
  top: 35%;
  right: 25%;
  white-space: pre;
  content:"まだ見ぬスターは、\A　　君かもしれない。";
  color: var(--font-color-light);
  font-size: var(--font-size-copy);
  text-shadow: 1px 1px 2px var(--font-color-dark);
  z-index: 1;
}
#main_visual_2{
  background-image: url("../img/firstview2.webp");
  animation: main_visual_slide_2 var(--main-visual-animation-total) infinite;
}
@keyframes main_visual_slide_2{
  0% {opacity: 0; transform:scale(1.2);}
  33% {opacity: 1; transform:scale(1.2);}
  66% {opacity: 0; transform:scale(1);}
  99% {opacity: 0;}
  100% {opacity: 0;}
}

/* メインビジュアル3枚目 */
#main_visual_3::after{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  white-space: pre;
  content:"限界は、\A道具で超えられる。";
  color: var(--font-color-light);
  font-size: var(--font-size-copy);
  text-shadow: 1px 1px 2px var(--font-color-dark);
  z-index: 1;
}
#main_visual_3{
  background-image: url("../img/firstview3.webp");
  animation: main_visual_slide_3 var(--main-visual-animation-total) infinite;
}
@keyframes main_visual_slide_3{
  0% {opacity: 0; transform:scale(1.1);}
  33% {opacity: 0; transform:scale(1.1)}
  66% {opacity: 1; transform:scale(1.1)}
  99% {opacity: 0; transform:scale(1.1) translateX(80px);}
  100% {opacity: 0; transform:scale(1.1)}
}


/* NEXT STARについて */
#about{
  position: relative;
  margin-top: calc(var(--header-height) * -1);
}

#about dl{
  padding-top: 1rem;
}

.about_item{
  display: flex;
  column-gap: calc(320px / 8);
  margin-top: 1rem;
}

.about_item picture{
  position: relative;
  min-width: 240px;
  max-width: 240px;
  aspect-ratio: 1;
  border: 1px none transparent;
  border-radius: 16px;
  background-size: cover;
  overflow: hidden;
}
.about_item picture::after {
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  box-shadow: inset 0 0 12px 12px var(--color-base-light);
  border: 1px none transparent;
  border-radius: 12px;
}


#picture_about_mission{
  background-image: url(../img/about_mission.webp);
  background-position: 50% 0;
}

#picture_about_vision{
  background-image: url(../img/about_vision.webp);
  background-position: 100% 0;
}

#picture_about_value{
  background-image: url(../img/about_value.webp);
  background-position: 100% 0;
}

.about_item p{
  text-align: left;
}

.about_item dd{
  margin-top: 1rem;
}


/* 商品 */
#product{
  padding-bottom: 3rem;
}

#product ul{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--font-size-l);
  padding-top: 2rem;
}

#product li{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 30%;
  aspect-ratio: 1;
  background-color: var(--color-base-light);
  border-radius: 16px;
  transition: all 0.4s;
}
#product li:hover{
  transform: scale(0.95);
}

#product a{
  display: block;
  width: 100%;
  height: 100%;
}

#product picture::before{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: clamp(var(--font-size-m), 4vw, calc(var(--container-width-max) * 0.04));
  color: var(--font-color-light);
  text-shadow: 0 0 24px black;
  z-index: 1;
}
#product picture{
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  border: 1px none transparent;
  border-radius: 16px;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
#product picture::after{
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  box-shadow: inset 0 0 12px 12px var(--color-base-light);
  border: 1px none transparent;
  border-radius: 12px;
}


#product_bat::before{
  content:"Bat";
}
#product_bat{
  background-image: url(../img/product_bat.webp);
}

#product_grab::before{
  content: "Grab";
}
#product_grab{
  background-image: url(../img/product_grab.webp);
}

#product_ball::before{
  content:"Ball";
}
#product_ball{
  background-image: url(../img/product_ball.webp);
}

#product_wear::before{
  content: "Wear";
}
#product_wear{
  background-image: url(../img/product_wear.webp);
}

#product_shoes::before{
  content:"Shoes";
}
#product_shoes{
  background-image: url(../img/product_shoe.webp);
}

#product_accessory::before{
  content: "Accessory";
}
#product_accessory{
  background-image: url(../img/product_accessory.webp);
}


/* 新着情報 */
#news table a{
  position: relative;
}

#news table a::after{
  position: absolute;
  content:"";
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--font-color-dark);
  transform: scaleX(0);
  transform-origin: left;
  transition: all 0.4s ease-in-out;
}
#news table a:hover::after{
  transform: scaleX(1);
}
/* INFOMATION */
#infomation table a{
  position:relative;
  color:var(--font-color-light);
}
#infomation table a::after{
  position: absolute;
  content:"";
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--font-color-light);
  transform: scaleX(0);
  transform-origin: left;
  transition: all 0.4s ease-in-out;
}
#infomation table a:hover::after{
  transform: scaleX(1);
}

/* フッター */
footer{
  color: var(--font-color-light);
  background-color: var(--color-main);
  width: 100%;
  padding: 2rem 0 1rem;
  text-align: center;
}

footer li{
  padding-top: 0.5em;
}

footer a{
  position: relative;
  display: inline-block;
  color: var(--font-color-light);
  transition: all 0.4s;
}

footer ul{
  padding-bottom: 1rem;
}

footer a::after{
  position: absolute;
  content:"";
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--font-color-light);
  transform: scaleX(0);
  transform-origin: center;
  transition: all 0.4s ease-in-out;
}
footer a:hover::after{
  transform: scaleX(1);
}

small{
  width: 100%;
  text-align: center;
}



/* モバイルレイアウト */
@media(max-width:768px){
  :root{
    --font-size-main-visual: 3rem;
    --font-size-copy: 2rem;
    --font-size-xl: 1.75rem;
    --font-size-l: 1.25rem;
    --font-size-m: 0.875rem;
    --font-size-s: 0.75rem;
  }

  /* モバイル：ヘッダー */
  header{
    position: fixed;
  }
  header .header_backgroundcolor{
    background-color: var(--color-main-opacity);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }

  /* モバイル：ヘッダー（ハンバーガーメニュー） */
  header nav label{
    display: inline-block;
    position: fixed;
    top: calc(var(--header-height) * 0.3);
    right: calc(var(--header-height) * 0.2);
    width: 2.5rem;
    height: 2.5rem;
    cursor: pointer;
    z-index: 103;
  }
  header nav span,
  header nav span::before,
  header nav span::after{
    display: block;
    height: 0.2rem;
    width: 10vw;
    background: var(--font-color-light);
    border-radius: 2px;
    transition: 0.4s;
  }
  header nav span{
    position: relative;
    margin: calc(var(--font-size-xl) * 0.4 + 0.5rem) 0;
  }
  header nav span::before{
    position: absolute;
    content: "";
    bottom: calc(var(--font-size-xl) * 0.4);
  }
  header nav span::after{
    position: absolute;
    content: "";
    top: calc(var(--font-size-xl) * 0.4);
  }
  #header-mobile-menu-check:checked + #header-mobile-menu-icon span{
    background: transparent;
  }
  #header-mobile-menu-check:checked + #header-mobile-menu-icon span::before{
    transform: translateY(calc(var(--font-size-xl) * 0.4)) rotate(45deg);
  }
  #header-mobile-menu-check:checked + #header-mobile-menu-icon span::after{
    transform: translateY(calc(var(--font-size-xl) * -0.4)) rotate(-45deg);
  }
  .overlay {
    position: fixed;
    inset: 0;
    background: var(--color-base-dark-opacity);
    opacity: 0;
    pointer-events: none;
    transition: 0.4s;
    z-index: 101;
  }
  #header-mobile-menu-check:checked ~ .overlay {
    opacity: 0.5;
    top:0;
    left:0;
    width:100vw;
    height:100vh;
    pointer-events: auto;
  }

  /* モバイル：ヘッダー（ハンバーガーメニュー内容） */
  #menu{
    position: fixed;
    flex-direction: column;
    justify-content: flex-start;
    top: 0;
    right: -50vw;
    width: 40vw;
    height: 100vh;
    background: var(--color-base-dark-opacity);
    box-shadow: 2px 0 8px rgba(0,0,0,0.2);
    transition: right 0.3s ease;
    z-index: 102;
  }
  #header-mobile-menu-check:checked ~ #menu{
    right: 0px;
  }
  #menu li:nth-child(1){
    margin: 4em 1rem 0.25rem;
  }
  #menu li{
    margin: 0.25rem 1rem;
    width: 100%;
    height: 15%;
  }
  #menu a{
    color: var(--color-base-light);
    font-size: calc(50vw * 0.1);
  }

  /* モバイル：メインビジュアル */
  #main_visual{
    top: 0;
  }

  /* モバイル：メインビジュアル1枚目 */
  #main_visual_1::after{
    top: 30%;
    left: 10%;
  }

  /* モバイル：メインビジュアル2枚目 */
  #main_visual_2{
    background-position: 65% 60%;
  }
  #main_visual_2::after{
    top: 35%;
    right: 5%;
  }

  /* モバイル：メインビジュアル3枚目 */
  #main_visual_3{
    background-position: 50% 0;
    background-size: cover;
    overflow: auto;
  }


  /* モバイル：NEXT STARについて */
  #about{
    margin-top: 0;
  }
  .about_item,
  .about_item:nth-child(even){
    justify-content: center;
    flex-direction: column;
    row-gap: 1rem;
    margin-top: 2rem;
  }

  .about_item picture{
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16/9;
  }

  .about_item dt,
  .about_item p,
  .about_item dd{
    text-align:center;
  }

  /* モバイル：商品 */
  #product ul{
    flex-direction: column;
  }
  #product li,
  #product picture{
    width: 100%;
    aspect-ratio: 16/9;
  }

  #product picture::before{
    font-size: clamp(var(--font-size-m), 10vw, calc(768px * 0.1));
  }
}