/* -------------------------------------------------
  MAIN STYLE
------------------------------------------------- */
/* 基本 */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 70px;
  font-size: 62.5%;
}
.palt {
  font-feature-settings: "palt";
}
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-style: normal;
  word-break: normal;
  word-wrap: break-word;
}
body {
  color: #171c61;
  background: #fbc600;
  font-size: 1.6rem;
  line-height: 1.7;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  font-weight: 700;
}
.en {
  font-family: "Barlow", sans-serif;
  font-style: normal;
}
img {
  max-width: 100%;
  height: auto;
  display: block;
}
.wrapper {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 16px;
}
/* ---------------- HERO ---------------- */
.header {
  padding: 60px 5% 80px;
  position: relative;
}
header h1 {
  display: none;
}
.header-inner {
  max-width: 830px;
}
.side-nav {
  width: 190px;
  position: absolute;
  top: 60px;
  left: 3%;
}
.side-logo {
  width: 140px;
}
.side-links {
  margin-top: 120px;
}
.side-links li {
  letter-spacing: 0.02em;
  font-size: 1.7rem;
  margin-bottom: 34px;
}
.side-links li a {
  color: #171c61;
  text-decoration: none;
}
.side-links li a span {
  margin-left: 16px;
}
.hero-main {
  text-align: center;
  position: relative;
  margin: 0 auto 12px;
  width: 100%;
  position: relative;
}
.main_img {
  padding-left: 10%;
  padding-right: 10%;
}
.txt1 {
  position: absolute;
  left: -6%;
  top: 3%;
}
.txt2 {
  position: absolute;
  right: 0;
  top: 10%;
}
.sp-txt1, .sp-txt2 {
  display: none;
}
.hero-title {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.hero-title span {
  display: block;
  font-size: 16px;
}
.hero-scroll {
  margin-top: 32px;
  font-size: 2.2rem;
  letter-spacing: 0.03em;
  font-weight: 600;
  color: #fff;
}
.hero-scroll::after {
  content: "";
  width: 1px;
  height: 40px;
  display: block;
  margin: 10px auto 0;
  background: #fff;
}
.main_sp {
  display: none;
}




/* ------------------------------------
   side-links 下線アニメーション
------------------------------------ */
.side-links li a {
  position: relative;
  display: inline-block;
  padding-bottom: 2px; /* 下線との距離調整 */
}

/* 下線の初期状態（幅0） */
.side-links li a::after {
  content: "";
  position: absolute;
  bottom: -2px;   /* 下線の位置調整 */
  left: 0;
  width: 0;
  height: 2px;    /* 下線の太さ */
  background-color: #171c61; /* 下線色（リンク文字色と同じ） */
  transition: width 0.3s ease;
}

/* ホバー時に左から右へ伸びる */
.side-links li a:hover::after {
  width: 100%;
}



/* ▽ HEROの人物画像専用：ズームイン（大→小）フェードイン */
.fade-zoom-in {
  opacity: 0;
  transform: scale(4,4); /* 少し大きい状態からスタート */
  animation: zoomInFade 1.0s ease-in forwards;
}

@keyframes zoomInFade {
  0% {
    opacity: 0;
    transform: scale(3,3);
  }


  90% {
    opacity: 0.4;
  }

  100% {
    opacity: 1;
    transform: scale(1); /* ちょうどのサイズへ */
  }
}









/* -------------------------------------
   共通アニメーション：fade-up
------------------------------------- */
/* ▼ HERO専用（ロード時に即発火） */
.fade-load {
  opacity: 0;
  transform: translateY(25px);
  animation: fadeUp 1.2s ease forwards;
}

/* ▼ スクロール時用（ABOUT以下） */
.fade-up {
  opacity: 0;
  transform: translateY(55px);
}
.fade-up.in-view {
  animation: fadeUp 1s ease forwards;
}

@keyframes fadeUp {
  0% { opacity: 0; transform: translateY(55px); }
  100% { opacity: 1; transform: translateY(0); }
}



/* -------------------------------
   左からスライドイン
-------------------------------- */
.fade-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-left.in-view {
  opacity: 1;
  transform: translateX(0);
}

/* -------------------------------
   右からスライドイン
-------------------------------- */
.fade-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-right.in-view {
  opacity: 1;
  transform: translateX(0);
}



/* -------------------------------------
   表示順ディレイ
------------------------------------- */
.delay01 { animation-delay: 0.2s; }
.delay02 { animation-delay: 0.6s; }
.delay03 { animation-delay: 1.0s; }
.delay04 { animation-delay: 1.4s; }
.delay05 { animation-delay: 1.8s; }
.delay06 { animation-delay: 2.2s; }

/* ABOUT以下のスクロールアニメ用ディレイ */
.section-delay01 { transition-delay: 0.2s; animation-delay: 0.2s; }
.section-delay02 { transition-delay: 0.6s; animation-delay: 0.6s; }
.section-delay03 { transition-delay: 1.0s; animation-delay: 1.0s; }
.section-delay04 { transition-delay: 1.4s; animation-delay: 1.4s; }
.section-delay05 { transition-delay: 1.8s; animation-delay: 1.8s; }
.section-delay06 { transition-delay: 2.2s; animation-delay: 2.2s; }


/* ---------------- ABOUT ---------------- */
.section {
  padding: 20px 25px 200px;
}
.sec-heading {
  text-align: center;
  font-size: 5.0rem;
  letter-spacing: 0.1em;
  margin-bottom: 28px;
  font-weight: 600;
  color: #e6376f;
}

.about-text {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.about-text p {
  font-size: 2.1rem;
  font-weight: 600;
  line-height: 2.5;
  text-align: left;
  letter-spacing: 0.04em;
}
/* ---------------- DATA ---------------- */
section#data {
  max-width: 1500px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.data-top {
  position: relative;
  margin-bottom: 20px;
}
.data-beer {
  position: absolute;
  z-index:6;
  top: -270px;
}
.data-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.data-card-img01 {
  width: 50%;
}
.data-card-img02 {
  width: 48.4%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 3%;
}
.data-card-img02 img {
  width: 48.5%;
  height: auto;
}
.data-card-title {
  font-weight: 700;
  margin-bottom: 8px;
}
.data-card-main {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 4px;
}
.data-card-note {
  font-size: 11px;
  line-height: 1.6;
}
/* ---------------- YOUTUBE ---------------- */
.yt-block {
  text-align: center;
}
.section02 {
  padding: 20px 25px 100px;
}
.yt-main {
  margin: -250px auto 50px;
  max-width: 960px;
}
.yt-main .member_img01 {
  margin-left: -60px;
}
#youtube .sec-heading {
  letter-spacing: 0;
}
/* ---------------- MEMBERS ---------------- */
.members-row {
  padding: 0 16px 0;
}
.members-image {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
}
/* ---------------- SUPPORTERS ---------------- */
.supporters-wrapper {
  background: #fff;
  padding: 80px 16px 120px;
  margin-top: 0;
}
.supporters-inner {
  max-width: 1200px;
  margin: 0 auto;
}
.supporters-text {
  margin-bottom: 24px;
  font-size: 2.4rem;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 60px;
}
.supporters-text .span01 {
  color: #dc3c66;
}
.supporters-text .span02 {
  font-size: 1.7rem;
}
/* .supporters-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap:40px 65px;
}
 */
.supporters-logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap:40px 70px;
}


.supporters-logos a:hover{
opacity:0.7;
}

/* ---------------- FOOTER ---------------- */
footer {
  background: #171c61;
  color: #fff;
  text-align: center;
  padding: 14px 5% 14px;
  font-size: 1.4rem;
}
footer p span {
  margin-left: 20px;
  display: inline-block;
}




/* -------------------------------
   ページTOPボタン
-------------------------------- */
.pagetop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 60px; /* ボタンサイズ */
  opacity: 0;
  visibility: hidden;
  transition: 0.4s ease;
  z-index: 999;
}

.pagetop img {
  width: 100%;
  height: auto;
  display: block;
}

/* 表示状態 */
.pagetop.show {
  opacity: 1;
  visibility: visible;
}




/* ---------------------- RESPONSIVE ---------------------- */

@media screen and (max-width: 1270px) {
  /* ---------------- HERO ---------------- */
  .header-inner {
    width: 64vw;
  }
  .txt1 {
    width: 10vw;
    left: -2vw;
    top: 3vw;
  }
  .txt2 {
    width: 9.5vw;
    right: -2vw;
    top: 5vw;
  }
  /* ---------------- DATA ---------------- */
  .data-beer {
    position: absolute;
    top: -23.5vw;
    width: 14vw;
  }
  .data-beer img {
    width: 100%;
    height: auto;
  }
  /* ---------------- ABOUT ---------------- */
  .section {
    padding: 20px 4vw 12vw;
  }
  /* ---------------- YOUTUBE ---------------- */
  .yt-main {
    margin: -20vw auto 3vw;
    max-width: 960px;
  }
  .yt-main .member_img01 {
    margin-left: -2vw;
    width: 32vw;
  }
  /* ---------------- SUPPORTERS ---------------- */
  .supporters-wrapper {
    padding: 5vw 3vw 8vw;
    margin-top: 0;
  }
  .supporters-text {
    font-size: 2.4vw;
    letter-spacing: 0.05em;
    margin-bottom: 5vw;
  }
  .supporters-text .span02 {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 900px) {
  /* ---------------- HERO ---------------- */
  .header-inner {
    width: 60vw;
  }


  .txt1 {
    width: 10vw;
    left: -2.5vw;
    top: 3vw;
  }
  .txt2 {
    width: 9vw;
    right: -2vw;
    top: 5vw;
  }

/*   .txt1 {
    width: 10vw;
    left: 2vw;
    top: 0;
  }
  .txt2 {
    width: 10.5vw;
    right: -2vw;
    top: 0;
  } */
  .side-links li {
    letter-spacing: 0.02em;
    font-size: 1.5rem;
    margin-bottom: 24px;
  }
  .side-nav {
    width: 23vw;
    position: absolute;
    top: 60px;
    left: 3%;
  }
  .side-logo {
    width: 16vw;
  }
  .side-links {
    margin-top: 70px;
  }
  /* ---------------- ABOUT ---------------- */
  .sec-heading {
    font-size: 5vw;
  }
  .about-text p {
    font-size: 2.4vw;
    font-weight: 600;
    line-height: 2.5;
    text-align: left;
    letter-spacing: 0.02em;
  }
  /* ---------------- YOUTUBE ---------------- */
  .section02 {
    padding: 20px 25px 8vw;
  }
  /* ---------------- MEMBERS ---------------- */
  .members-row {
    padding: 0 5vw 0;
  }
  .members-image {
    width: 70vw;
    margin: 0 auto;
  }
  /* ---------------- SUPPORTERS ---------------- */
  /*   .supporters-logos {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 5vw;
  } */
  
  
  
}
@media screen and (max-width: 767px) {
  /* ---------------- SUPPORTERS ---------------- */

html {
  scroll-padding-top: 30px;
}


.supporters-logos {
  gap:4.5vw 5vw;
}


.astaff {width: 26vw;}
.ozeki {width: 29vw;}
.santica {width: 16vw;}
.duo {width: 19vw;}
.opa {width: 17vw;}
.centergai {width: 32vw;}
.seiho {width: 38vw;}
.taibata {width: 28vw;}
.toyota_himeji {width: 39vw;}
.toyota_hyogo {width: 27vw;}
.jaf {width: 48vw;}
.hikari {width: 23vw;}
.anzen {width: 43vw;}
.truck {width: 40vw;}
.seibi {width: 55vw;}
.toyota {width: 20vw;}
.nissan {width:40vw;}
.hokka {width: 29vw;}
.msad {width: 36vw;}
.minato {width: 24vw;}
.rokko {width: 26vw;}
.worldone {width: 26vw;}





  
}
@media screen and (max-width: 560px) {
  .header {
    padding: 3% 5% 40px;
    position: relative;
  }
  .side-nav {
    width: 100%;
    position: relative;
    top: auto;
    left: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    flex-direction: row-reverse;
    align-items: flex-start;
  }
  .side-links {
    margin-top: 0;
  }
  .side-links li {
    letter-spacing: 0.02em;
    font-size: 1.4rem;
    margin-bottom: 4px;
  }
  .side-links li a span {
    margin-left: 8px;
  }
  .header-inner {
    width: 100%;
    margin-top: 10px;
  }
  .hero-main {
    margin: 0.5vw auto 0;
  }
  .txt1, .txt2 {
    display: none;
  }
  .sp-txt1, .sp-txt2 {
    display: block;
  }
  .sp-txt1 {
    width: 76vw;
    margin-top:-2.5vw;
  }
  .sp-txt2 {
    width: 64vw;
    text-align: center;
    margin: 10px auto;
  }
  .main_img {
    padding-left: 0;
    padding-right: 0;
  }
  .main_pc {
    display: none;
  }
  .main_sp {
    display: block;
  }
  /* ---------------- ABOUT ---------------- */
  .sec-heading {
    font-size: 8vw;
  }
  .about-text p {
    font-size: 1.4rem;
  }
  .about-text p br {
    display: none;
  }
  /* ---------------- DATA ---------------- */
  .data-card-img01 {
    width: 100%;
    margin-bottom: 20px;
  }
  .data-card-img02 {
    width: 100%;
  }
  .data-card-img02 img {
    width: 48.5%;
    margin-bottom: 20px;
  }
  /* ---------------- YOUTUBE ---------------- */
  .yt-main .member_img01 {
    margin-left: -6vw;
    width: 38vw;
  }
  /* ---------------- MEMBERS ---------------- */
  .members-row {
    padding: 0 5vw 0;
  }
  .members-image {
    width: 90vw;
    margin: 0 auto;
  }
  /* ---------------- SUPPORTERS ---------------- */
  .supporters-text {
    font-size: 4vw;
    letter-spacing: 0.05em;
    margin-bottom: 5vw;
  }
  .supporters-text .span02 {
    font-size: 1.2rem;
  }
  /* ---------------- FOOTER ---------------- */
  footer {
    font-size: 3.0vw;
  }
  footer p span {
    margin-left: 0;
    display: block;
    margin-top: 3px;
  }



/* -------------------------------
   ページTOPボタン
-------------------------------- */
.pagetop {
  position: fixed;
  right: 1.5vw;
  bottom: 5vw;
  width: 40px; /* ボタンサイズ */
  opacity: 0;
  visibility: hidden;
  transition: 0.4s ease;
  z-index: 999;
}

.pagetop img {
  width: 100%;
  height: auto;
  display: block;
}

/* 表示状態 */
.pagetop.show {
  opacity: 1;
  visibility: visible;
}

}


/* --------------------------
        ムービー
---------------------------*/

video.vid_main {
width: 100%;
max-width: 900px;
}

video.vid_main { 
  cursor: pointer;
}
