@charset "UTF-8";

/**
 * common.css
 *
 * #base
 *  #reset.............リセット用
 *  #default...........要素用
 *
 * #common module
 *
 * #utility.........ヘルパークラス
 *  #Margin
 *  #Padding
 *  #font
 *  #position
 *  #other.............clearfix等
*/


/* ==========================================================================
   #base
   ========================================================================== */

/* #reset
   ----------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6, p, ul, li {
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6, th { font-weight: 300; }

ul { list-style: none; }

strong { font-family: "NotoSansJP-bold"; }

picture {
  display: block;
}

*:focus {
outline: none;
}


/* #default
   ----------------------------------------------------------------- */
body {
  color: #333;
  font-size: 16px;
  font-family: "YakuHanJP", "NotoSansJP-regular", "Hiragino Sans", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "Helvetica Neue", Helvetica, sans-seri, "ZenKakuGothicNew","PlusJakartaSans" ,"NotoSansJp";
  line-height: 1.6;
  font-weight: 300;
  /*text-align: justify;
  text-justify: inter-ideograph;*/
  letter-spacing : 0.02em;
  /* -webkit-font-smoothing: antialiased; */
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: #0bd79b;
}

a:hover {
  /* opacity: 0.7; */
  filter: alpha(opacity=70);
  -ms-filter: "alpha(opacity=70)";
}

img {
  vertical-align: bottom;
}

*, *:before, *:after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.w100 {
  width: 100%;
  height: auto;
}


/* #webfont
   ----------------------------------------------------------------- */
@font-face {
  font-family: "NotoSansJP";
  font-style: normal;
  font-weight: bold;
  src: url('../font/NotoSansCJKjp-bold.woff') format('woff');
  font-display: swap;
}

@font-face {
  font-family: "NotoSansJP";
  font-style: normal;
  font-weight: medium;
  src: url('../font/NotoSansCJKjp-medium.woff%3Fv2') format('woff');
  font-display: swap;
}

@font-face {
  font-family: "NotoSansJP";
  font-style: normal;
  font-weight: normal;
  src: url('../font/NotoSansCJKjp-regular.woff') format('woff');
  font-display: swap;
}

/* Zenkaku */

@font-face {
  font-family: "ZenKakuGothicNew";
  font-style: normal;
  font-weight: bold;
  src: url('../font/ZenKakuGothicNew-Bold.woff') format('woff');
  font-display: swap;
}

@font-face {
  font-family: "ZenKakuGothicNew";
  font-style: normal;
  font-weight: normal;
  src: url('../font/ZenKakuGothicNew-Regular.woff') format('woff');
  font-display: swap;
}

/* PlusJakarta */

@font-face {
  font-family: "PlusJakartaSans";
  font-style: normal;
  font-weight: bold;
  src: url('../font/PlusJakartaSans-Bold.woff') format('woff');
  font-display: swap;
}

@font-face {
  font-family: "PlusJakartaSans";
  font-style: normal;
  font-weight: normal;
  src: url('../font/PlusJakartaSans-Regular.woff') format('woff');
  font-display: swap;
}

/* #typekit
   ----------------------------------------------------------------- */
/*Brandon Grotesque Regular {
  font-family: brandon-grotesque, sans-serif;
  font-weight: 400;
}

Brandon Grotesque Bold {
  font-family: brandon-grotesque, sans-serif;
  font-weight: 700;
}

Brandon Grotesque Medium {
  font-family: brandon-grotesque, sans-serif;
  font-weight: 500;
}*/





/* ==========================================================================
   #common module
   ========================================================================== */

/* #全ページ共通パーツ
   ----------------------------------------------------------------- */

/* テキスト関係
----------------------- */
/*ポイント 赤*/
.point-txt { color: #d24c4a; }

/*マーカー 黄色*/
.marker {
  background: linear-gradient(transparent 75%, #f4d600 0%);
  background-color: #f4d600;
}





/* ==========================================================================
   #utility
   ========================================================================== */

/* #Margin
   ----------------------------------------------------------------- */
.m0{ margin:0!important; }

.mr0 { margin-right: 0!important; }
.mr5 { margin-right: 5px!important; }
.mr10 { margin-right: 10px!important; }
.mr15 { margin-right: 15px!important; }
.mr20 { margin-right: 20px!important; }
.mr25 { margin-right: 25px!important; }
.mr30 { margin-right: 30px!important; }
.mr35 { margin-right: 35px!important; }
.mr40 { margin-right: 40px!important; }
.mr45 { margin-right: 45px!important; }
.mr50 { margin-right: 50px!important; }

.ml0 { margin-left: 0!important; }
.ml5 { margin-left: 5px!important; }
.ml10 { margin-left: 10px!important; }
.ml15 { margin-left: 15px!important; }
.ml20 { margin-left: 20px!important; }
.ml25 { margin-left: 25px!important; }
.ml30 { margin-left: 30px!important; }
.ml35 { margin-left: 35px!important; }
.ml40 { margin-left: 40px!important; }
.ml45 { margin-left: 45px!important; }
.ml50 { margin-left: 50px!important; }

.mt0 { margin-top: 0!important; }
.mt5 { margin-top: 5px!important; }
.mt10 { margin-top: 10px!important; }
.mt15 { margin-top: 15px!important; }
.mt20 { margin-top: 20px!important; }
.mt25 { margin-top: 25px!important; }
.mt30 { margin-top: 30px!important; }
.mt35 { margin-top: 35px!important; }
.mt40 { margin-top: 40px!important; }
.mt45 { margin-top: 45px!important; }
.mt50 { margin-top: 50px!important; }

.mb0 { margin-bottom: 0!important; }
.mb1 { margin-bottom: 1px!important }
.mb2 { margin-bottom: 2px!important }
.mb3 { margin-bottom: 3px!important }
.mb4 { margin-bottom: 4px!important }
.mb5 { margin-bottom: 5px!important }
.mb10 { margin-bottom: 10px!important; }
.mb15 { margin-bottom: 15px!important; }
.mb20 { margin-bottom: 20px!important; }
.mb25 { margin-bottom: 25px!important; }
.mb30 { margin-bottom: 30px!important; }
.mb35 { margin-bottom: 35px!important; }
.mb40 { margin-bottom: 40px!important; }
.mb45 { margin-bottom: 45px!important; }
.mb50 { margin-bottom: 50px!important; }


/* #Padding
   ----------------------------------------------------------------- */
.p0{ padding: 0!important; }

.pr0 { padding-right: 0!important; }
.pr5 { padding-right: 5px!important; }
.pr10 { padding-right: 10px!important; }
.pr15 { padding-right: 15px!important; }
.pr20 { padding-right: 20px!important; }
.pr25 { padding-right: 25px!important; }
.pr30 { padding-right: 30px!important; }
.pr35 { padding-right: 35px!important; }
.pr40 { padding-right: 40px!important; }
.pr45 { padding-right: 45px!important; }
.pr50 { padding-right: 50px!important; }

.pl0 { padding-left: 0!important; }
.pl5 { padding-left: 5px!important; }
.pl10 { padding-left: 10px!important; }
.pl15 { padding-left: 15px!important; }
.pl20 { padding-left: 20px!important; }
.pl25 { padding-left: 25px!important; }
.pl30 { padding-left: 30px!important; }
.pl35 { padding-left: 35px!important; }
.pl40 { padding-left: 40px!important; }
.pl45 { padding-left: 45px!important; }
.pl50 { padding-left: 50px!important; }

.pt0 { padding-top: 0!important; }
.pt1 { padding-top: 1px!important; }
.pt2 { padding-top: 2px!important; }
.pt3 { padding-top: 3px!important; }
.pt4 { padding-top: 4px!important; }
.pt5 { padding-top: 5px!important; }
.pt10 { padding-top: 10px!important; }
.pt15 { padding-top: 15px!important; }
.pt20 { padding-top: 20px!important; }
.pt25 { padding-top: 25px!important; }
.pt30 { padding-top: 30px!important; }
.pt35 { padding-top: 35px!important; }
.pt40 { padding-top: 40px!important; }
.pt45 { padding-top: 45px!important; }
.pt50 { padding-top: 50px!important; }

.pb0 { padding-bottom: 0!important; }
.pb1 { padding-bottom: 1px!important; }
.pb2 { padding-bottom: 2px!important; }
.pb3 { padding-bottom: 3px!important; }
.pb4 { padding-bottom: 4px!important; }
.pb5 { padding-bottom: 5px!important; }
.pb10 { padding-bottom: 10px!important; }
.pb15 { padding-bottom: 15px!important; }
.pb20 { padding-bottom: 20px!important; }
.pb25 { padding-bottom: 25px!important; }
.pb30 { padding-bottom: 30px!important; }
.pb35 { padding-bottom: 35px!important; }
.pb40 { padding-bottom: 40px!important; }
.pb45 { padding-bottom: 45px!important; }
.pb50 { padding-bottom: 50px!important; }





/* #font
   ----------------------------------------------------------------- */
.tc { text-align: center; }
.tl { text-align: left; }
.tr { text-align: right; }

.tdu { text-decoration: underline; }

.lh10 { line-height: 1em; }
.lh15 { line-height: 1.5em; }
.lh2 { line-height: 2em; }
.lh3 { line-height: 3em; }

.vm { vertical-align: middle; }
.vt { vertical-align: top; }

.fs08 { font-size: 0.8em; }
.fs09 { font-size: 0.9em; }
.fs1 { font-size: 1em; }
.fs11 { font-size: 1.1em; }
.fs12 { font-size: 1.2em; }
.fs13 { font-size: 1.3em; }

.bn { border:none; }
.bbn { border-bottom: none; }
.bol { font-family: "NotoSansJP-bold"; }





/* #position
   ----------------------------------------------------------------- */
.relative { position: relative; }
.absolute { position: absolute; }

/* float解除 */
.cb { clear:both; }

/* float */
.fl-left { float: left; }
.fl-right { float: right; }





/* #other
   ----------------------------------------------------------------- */
.oh { overflow: hidden; }
.di { display: inline; }
.db { display: block; }

.clearfix:before, .clearfix:after {
  content:"";
  display:table;
}

.clearfix:after { clear:both; }
.clearfix { zoom: 1; } /* For IE 6/7 */


/* ==========================================================================
   Header keyframes
   ========================================================================== */

@keyframes flyInFromLeft {
  0% { opacity: 0; transform: translateX(-15px); }
  100% { opacity: 1; transform: translateX(0); }
}

/* ==========================================================================
   Header (SP base) ※px固定
   ========================================================================== */

.l-header {
  position: fixed;
  z-index: 9999999 !important;
  display: flex;
  justify-content: space-between;
  padding: 0 0 0 18px;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  align-items: center;
  background-color: transparent;
  transition: transform 0.3s ease, opacity 0.8s ease !important;
}

.l-header.is-hidden {
  transform: translateY(-100%);
}

.l-header:has(.drawer-checkbox:checked) {
  transform: none !important;
}

.pic-header-logo { width: 133px; }
.header-logo-alt { display: none; }
.header-nav { display: none; }

.logo-slide {
  display: inline-flex; 
  align-items: center;
}

.pic-header-logo,
.pic-header-logo-alt,
.header-alt-fixed {
  transition: filter 0.5s ease;
}

.l-header.is-dark-theme .pic-header-logo,
.l-header.is-dark-theme .pic-header-logo-alt,
.l-header.is-dark-theme .header-alt-fixed {
  filter: invert(1);
}

/* nav-group-title / -link はドロワー内専用のため、ここで白字にすると白背景のドロワーで非表示になる */

.header-list-txt {
  margin-right: 40px;
  text-decoration: none;
  color: #fff;
  font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 100%;
  letter-spacing: 1.82px;
}

.header-nav-list { position: relative; }

.header-nav-list::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 12px;
}

.header-list-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  left: -12px;
  width: auto;
  background: #fff;
  list-style: none;
  z-index: 100;
  border-radius: 4px;
  color: #081a00;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.078vw;

  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 24px;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.header-nav-list:hover .header-list-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.header-list-dropdown-txt { white-space: nowrap; }
.header-list-dropdown-txt a { color: inherit; text-decoration: none; }
.header-list-dropdown-txt:hover { color: #00df73; }
.header-list-dropdown-arrow {
  fill: #081a00;
  transition: fill 0.3s ease;
  margin-left: 20px;
}

.header-list-dropdown-txt:hover .header-list-dropdown-arrow {
  fill: #00df73;
  animation: flyInFromLeft 0.4s ease forwards;
  margin-left: 20px;
}

.header-list-btn {
  position: absolute;
  display: flex;
  right: 98px;
  top: 18px;
  width: 138px;
  height: 44px;
  padding: 23px 16px;
  justify-content: space-between;
  align-items: center;
  border-radius: 4px;
  background: #081a00;
  text-decoration: none;
  color: #00ff6a;
  text-align: center;
  font-family: "PlusJakartaSans", "Plus Jakarta Sans", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 100%;
  letter-spacing: 0.48px;
  cursor: pointer;
  user-select: none;
  transition: background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.header-list-btn-arrow { stroke: #00FF6A; }

@media (hover: hover) and (pointer: fine) {
  .header-list-btn:hover { color: #081a00; background: #00ff6a; }
  .header-list-btn:hover .header-list-btn-arrow { stroke: #081a00; }
}

.header-list-btn.is-suppressed,
.header-list-btn.is-suppressed:hover {
  color: #00ff6a;
  background: #081a00;
}
.header-list-btn.is-suppressed:hover .header-list-btn-arrow {
  stroke: #00FF6A;
}

.menu-checkbox { display: none; }
.menu-checkbox:checked ~ .header-list-btn-dropdown { display: block; }
.menu-checkbox:checked ~ .header-list-btn { color: #081a00; background-color: #fff; }
.menu-checkbox:checked ~ .header-list-btn svg { stroke: #081a00; }
.menu-checkbox:checked ~ .header-list-btn svg .vertical-line { display: none; }

.header-list-btn-dropdown {
  position: absolute;
  right: 98px;
  display: none;
  margin-top: 22px;
  padding: 0;
  list-style: none;
  border-color: transparent;
  background-color: transparent;
}

.header-list-btn-dropdown-newmid {
  position: relative;
  overflow: hidden;
  margin-top: 10px;
  width: 138px;
  text-align: center;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: 0.48px;
  background: #081a00;
  color: #00ff6a;
}

.header-list-btn-dropdown-newmid a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 23px 16px;
  width: 100%;
  color: inherit;
  text-decoration: none;
  position: relative;
  z-index: 1;
}

.header-list-btn-dropdown-newmid::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #00ff6a 0.01%, #0ff 99.99%);
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.header-list-btn-dropdown-newmid:hover::before { opacity: 1; }
.header-list-btn-dropdown-newmid:hover { color: #081a00; }

.header-list-btn-dropdown-newmid span {
  position: relative;
  z-index: 1;
}

.header-list-btn-dropdown-newmid-arrow {
  position: relative;
  z-index: 1;
  fill: #00ff6a;
}

.header-list-btn-dropdown-newmid:hover .header-list-btn-dropdown-newmid-arrow {
  fill: #081a00;
  animation: flyInFromLeft 0.4s ease forwards;
}

/* SP Header Nav (Drawer) ※px固定 */

.sp-header-nav { display: block; }

.drawer-checkbox { display: none; }

.drawer-open-btn {
  position: absolute;
  z-index: 1000;
  top: 18px;
  right: 18px;
  width: 68px;
  height: 44px;
}

.drawer-menu {
  position: fixed;
  z-index: 10000;
  top: 0;
  right: 0;
  width: 100%;
  height: 100vh;
  background: #fff;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.4s cubic-bezier(0.33, 1, 0.68, 1);
  visibility: hidden;
}

.drawer-checkbox:checked ~ .drawer-menu {
  transform: translateX(0);
  visibility: visible;
}

.drawer-header {
  display: flex;
  justify-content: space-between;
  padding: 20px;
  align-items: center;
}

.drawer-close-btn { cursor: pointer; }
.drawer-close-btn img { width: 68px; }

.drawer-logo-alt {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.drawer-logo-alt .pic-header-logo-alt {
  width: 124px;
  margin-right: 6px;
  flex-shrink: 0;
}

.drawer-logo-alt .header-alt-fixed {
  height: 16px;
  width: auto;
  flex-shrink: 0;
}

.drawer-logo-alt .header-alt-scroll-bg {
  overflow: hidden;
  width: 80px;
  height: 18px;
  flex-shrink: 0;
  background-image: url(../../images/bg_header_alt_scroll.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  -webkit-mask-image: url(../../images/bg_header_alt_scroll.png);
  mask-image: url(../../images/bg_header_alt_scroll.png);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  display: flex;
  align-items: center;
}

.drawer-logo-alt .header-alt-scroll-track {
  display: flex;
  width: max-content;
  flex-shrink: 0;
  animation: infiniteScroll 20s linear infinite;
}

.drawer-logo-alt .header-alt-scroll-img {
  height: 16px;
  width: auto;
  flex-shrink: 0;
  margin-right: 20px;
}

.l-header.is-dark-theme .drawer-logo-alt .pic-header-logo-alt,
.l-header.is-dark-theme .drawer-logo-alt .header-alt-fixed {
  filter: none;
}

.drawer-content { padding: 40px 24px 60px; }

.drawer-entry-area { margin-bottom: 40px; }

.drawer-btn-entry {
  display: flex;
  justify-content: space-between;
  padding: 18px 32px;
  margin-bottom: 20px;
  width: 100%;
  align-items: center;
  font-size: 18px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 4px;
  background: linear-gradient(90deg, #00ff6a 0%, #0ff 100%);
  color: #081a00;
}

.drawer-nav-list { list-style: none; padding: 0 0 0 8px; }
.nav-group-1 { margin-bottom: 30px; }
.nav-group-2 { margin-bottom: 10px; }
.nav-group-3 { margin-bottom: 36px; padding-top: 10px; }
.nav-group-4 { margin-bottom: 26px; }

.nav-group-title {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
  align-items: center;
  font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #081a00;
  transition: color 0.5s ease;
}

.nav-group-title-link {
  display: flex;
  justify-content: space-between;
  margin: 10px 0 15px 0;
  align-items: center;
  font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #081a00;
  text-decoration: none;
  transition: color 0.5s ease;
}

.nav-sub-list { list-style: none; padding: 0; }

.nav-sub-list li a {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  align-items: center;
  font-size: 18px;
  font-weight: 400;
  text-decoration: none;
  color: #333;
}

.arrow-gray { fill: #a0a0a0; flex-shrink: 0; }

.drawer-footer-links {
  margin-top: 60px;
  padding: 16px 0 0 8px;
}

.drawer-footer-links a {
  display: flex;
  align-items: center;
  font-size: 16px;
  color: #333;
  text-decoration: none;
  margin-bottom: 15px;
}

.drawer-footer-links img { width: 12px; margin-left: 8px; }

@media screen and (max-width: 400px) {
  .l-header {
    padding: 0 0 0 4.5vw;
    height: 20vw;
  }

  .pic-header-logo { width: 33.25vw; }

  .header-list-btn {
    right: 24.5vw;
    top: 4.5vw;
    width: 34.5vw;
    height: 11vw;
    padding: 5.75vw 4vw;
    font-size: 4vw;
  }

  .header-list-btn-dropdown {
    right: 24.5vw;
  }

  .drawer-open-btn {
    top: 4.5vw;
    right: 4.5vw;
    width: 17vw;
    height: 11vw;
  }
}

@media screen and (min-width: 1025px) {

  /* --- Header PC ※px固定 --- */
  .l-header {
    padding: 0 40px;
    height: 100px;
  }

  .pic-header-logo {
    margin-top: 35px;
    width: 154px;
  }

  .header-nav {
    display: flex;
    position: relative;
    margin: 30px 180px 0 0;
    align-items: center;
    letter-spacing: 0.069vw;
  }

  .header-list-btn {
    right: 40px;
    top: 40px;
    width: 172px;
    height: 34px;
    padding: 23px 18px;
  }

  .header-list-btn-dropdown {
    right: 40px;
  }

  .header-list-btn-dropdown-newmid {
    width: 172px;
  }

  .header-list-btn-dropdown-newmid a {
    padding: 15px 18px;
  }

  .sp-header-nav { display: none; }

  .header-logo-alt {
    display: none;
    align-items: center;
    gap: 2px;
    margin-top: 30px;
  }

  .pic-header-logo-alt {
    width: 154px;
    margin-right: 6px;
  }

  .header-alt-fixed {
    height: 20px;
    width: auto;
    flex-shrink: 0;
  }

  .header-alt-scroll-bg {
    overflow: hidden;
    width: 100px;
    height: 22px;
    flex-shrink: 0;
    background-image: url(../../images/bg_header_alt_scroll.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    -webkit-mask-image: url(../../images/bg_header_alt_scroll.png);
    mask-image: url(../../images/bg_header_alt_scroll.png);
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    display: flex;
    align-items: center;
  }

  .header-alt-scroll-track {
    display: flex;
    width: max-content;
    flex-shrink: 0;
    animation: infiniteScroll 20s linear infinite;
  }

  .header-alt-scroll-img {
    height: 20px;
    width: auto;
    flex-shrink: 0;
    margin-right: 20px;
  }

  .l-header.is-alt .header-logo { display: none; }
  .l-header.is-alt .header-logo-alt { display: flex; }

}



/* ==========================================================================
   Footer keyframes
   ========================================================================== */

@keyframes infiniteScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ==========================================================================
   Footer (SP / max-width: 1024px)
   ========================================================================== */

@media screen and (max-width: 1024px) {

/* ============================================================================== */
/* footer */

.l-footer{
  position: relative;
  z-index: 2;
	padding-top: 5.417vw;
	padding-bottom: 5.417vw;
	background: #3A3A3A;
}

.footer-top-logo{
	height: 21.458vw;
}

.footer-main{
	padding: 10.417vw 5vw 0 6.667vw;
}

.footer-main-2{
	margin-top: 8.333vw;
}

.footer-list-title-top{
	line-height: 5.833vw; 
	letter-spacing: 0.333vw;
	font-family: "ZenKakuGothicNew";
	font-size: 4.167vw;
	font-weight: 700;
	color: #FFF;
}

.footer-list-title{
	margin-top: 8.333vw;
	line-height: 5.833vw; 
	letter-spacing: 0.333vw;
	font-family: "ZenKakuGothicNew";
	font-size: 4.167vw;
	font-weight: 700;
	color: #FFF;
}

.footer-list-title a {
	color: #fff;
	text-decoration: none;
	transition: color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-list-txt{
	margin-top: 4.167vw;
	letter-spacing: 0.3vw;
	line-height: 5.625vw; 
	font-size: 3.75vw;
	font-weight: 400;
	color: #FFF;
}

.footer-list-txt a {
	color: #fff;
	text-decoration: none;
	transition: color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

/* .footer-list-title-top:hover{
	padding-left: 3.333vw;
	margin-left: -3.333vw;
	width: 54.167vw;
	border-radius: 1.667vw;
	background: rgba(255, 255, 255, 0.10);
	color: #00FF6A;
} */


.footer-main-cta{
	display: flex;
  flex-direction: column; 
  align-items: flex-end;
}

/* SP: Figma event バナー。480 基準の vw 換算（.footer-entry と同形式）— 239×101×8 等 */
.footer-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
	gap: 1.667vw;
	align-self: flex-end;
	margin-top: 10vw;
	margin-bottom: 5vw;
	width: min(49.792vw, 100%);
	min-height: 21.042vw;
	height: auto;
	padding: 5vw 4.16vw;
	border: none;
	border-radius: 1.667vw;
	background: #081a00;
	background-image: none;
	color: #fff;
	text-decoration: none;
	transition: background-color 0.3s ease;
}

.footer-cta-pc-txt {
	margin: 0;
	font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
	font-size: 3.75vw;
	font-weight: 700;
	line-height: 1.42;
	letter-spacing: 0.113vw;
	text-align: left;
}

.footer-cta-pc-line1 {
	color: #fff;
}

.footer-cta-pc-line2 {
	color: #00ff6a;
}

/* 矢印は .footer-entry-txt 内 .footer-entry-btn（14×14）と同寸 */
.footer-cta-pc-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2.917vw;
	height: 2.917vw;
}

.footer-cta-pc-btn-arrow {
	width: 2.917vw;
	height: 2.917vw;
	fill: #00ff6a;
	transition: fill 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
	.footer-cta:hover {
		background: #0f2a0f;
	}

	.footer-cta:hover .footer-cta-pc-btn-arrow {
		fill: #00ff6a;
		animation: flyInFromLeft 0.4s ease forwards;
	}
}

.footer-cta:active {
	background: #0f2a0f;
}

.footer-info-logo{
	margin-right: -0.625vw;
	width: 15.833vw;
	height: 27.083vw;
}

.footer-entry-txt{
	position: relative;
	overflow: hidden;
	display: flex;
	justify-content: space-between;
	margin-bottom: 4.167vw;
	padding: 4.792vw 4.16vw;
	width: 90vw;
	height: 13.333vw;
	align-items: center;
	font-size: 3.75vw;
	font-weight: 500;
	letter-spacing: 0.113vw;
	border-radius: 1.667vw;
	background: #fff;
	color: #081a00;
	text-decoration: none;
}

.footer-entry-txt::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #00ff6a 0.01%, #0ff 99.99%);
	opacity: 1;
}

.footer-entry-txt p {
	position: relative;
	z-index: 1;
}

.footer-entry-txt svg {
	position: relative;
	z-index: 1;
}

.footer-entry-btn {
	width: 2.917vw;
	height: 2.917vw;
}

.footer-info{
	display: flex;
	justify-content: space-between;
	padding: 0px 5vw 0px 5vw;
	color: #FFF;
}

.footer-info-main{
	display: flex;
	flex-direction: column;
	padding-top: 2.083vw;
	letter-spacing: 0px;
	font-size: 3.333vw;
	font-weight: 500;
}

.footer-info-main-txt {
	margin-bottom: 2.917vw;
  transition: color 0.4s cubic-bezier(0.33, 1, 0.68, 1),
              background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-info-main-txt a {
	color: #fff;
	text-decoration: none;
  transition: color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-info-com{
	margin: 0.833vw 0px 1.042vw 1.042vw;
	color: #959595;
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-weight: 400;
}

.footer-info-linklogo{
	width: 2.5vw;
	height: 2.5vw;
	margin-bottom: 1.042vw;
}

.footer-logo-wrap {
  width: 100%;
  overflow: hidden;
}

.footer-logo-track {
  display: flex;
  width: max-content;
  animation: infiniteScroll 20s linear infinite;
}

.footer-top-logo {
  height: 21.458vw; 
  width: auto;     
  flex-shrink: 0;  
  padding-right: 5vw;
}

}

/* ==========================================================================
   Footer (PC / min-width: 1025px)
   ========================================================================== */

@media screen and (min-width: 1025px) {

/* footer */

.l-footer{
	padding-top: 1.944vw;
	padding-bottom: 3.194vw;
	height: 58.75vw;
	background-color: #3A3A3A;
}

.footer-logo-wrap {
  width: 100%;
  overflow: hidden;
}

/* 動くレール（2枚の画像を横並びにする） */
.footer-logo-track {
  display: flex;
  width: max-content;
  /* 既存の @keyframes infiniteScroll を利用！ */
  /* 「20s」の数値を小さくすると速く、大きくすると遅くなります */
  animation: infiniteScroll 20s linear infinite;
}

/* ロゴ画像本体 */
.footer-top-logo {
  height: 11.458vw; /* ←既存の高さを維持 */
  width: auto;      /* 横幅は画像の本来の比率を保つ */
  flex-shrink: 0;   /* フレックスボックスの中で画像が潰れるのを防ぐ */
  
  /* 画像と画像の間に少し隙間を開けたい場合は、以下の padding を有効にしてください */
  padding-right: 5vw;
}

.footer-main{
	display: flex;
	justify-content: space-between;
	/* padding: 3.819vw 3.333vw 0px 3.333vw; */
	padding: 0.694vw 3.333vw 0px 3.333vw;
}

.footer-main-1{
	align-items: center;
	width: 25vw;
}

.footer-main-2{
	margin-left: 1.389vw;
	width: 25.417vw;
	align-items: center;
}

.footer-list-title-top{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 2.5vw;
	width: 21.319vw;
	color: #fff;
	font-family: "ZenKakuGothicNew";
	font-size: 1.528vw;
	font-weight: 700;
	line-height: 150%; /* 36px */
	letter-spacing: 0.118vw;
	transition: background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-list-title{
	margin-top: 2.083vw;
	margin-bottom: 2.222vw;
	width: 24vw;
	color: #fff;
	font-family: "ZenKakuGothicNew";
	font-size: 1.528vw;
	font-weight: 700;
	line-height: 170%; /* 36px */
	letter-spacing: 0.118vw;
	transition: background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-list-title a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	color: #fff;
	text-decoration: none;
}

/* .footer-list-title-top:hover{
	padding-left: 1.111vw;
	margin-left: -1.111vw;
	width: 22.431vw;
	border-radius: 0.556vw;
	color: #00FF6A;
	background: rgba(255, 255, 255, 0.10);
} */


.footer-list-title:hover{
	padding-left: 1.111vw;
	margin-left: -1.111vw;
	width: 25.111vw;
	border-radius: 0.556vw;
	color: #00FF6A;
	background: rgba(255, 255, 255, 0.10);
}

.footer-list-title:hover a { color: #00ff6a; }

.footer-list-txt{
	padding-left: 1.319vw;
	margin-top: 0.833vw;
	margin-right: 4.861vw;
	width: 24vw;
	color: #fff;
	font-size: 1.25vw;
	font-weight: 400;
	line-height: 160%; /* 27px */
	letter-spacing: 0.1vw;
	transition: background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-list-txt a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	color: #fff;
	text-decoration: none;
	transition: color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-list-txt:hover{
	padding-left: 1.319vw;
	width: 24vw;
	border-radius: 0.556vw;
	color: #00FF6A;
	background: rgba(255, 255, 255, 0.10);
}

.footer-info-main-txt {
	transition: background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-info-main-txt:hover{
	padding-left: 1.319vw;
  margin-left: -1.319vw;
	width: 25vw;
	border-radius: 0.556vw;
	color: #00FF6A;
	background: rgba(255, 255, 255, 0.10);
}

.footer-list-txt:hover a { color: #00ff6a; }


.footer-list-txt:hover .footer-list-arrow{
	fill:#00FF6A;
	animation: flyInFromLeft 0.4s ease forwards;
}

.footer-list-title:hover .footer-list-arrow{
	fill:#00FF6A;
	animation: flyInFromLeft 0.4s ease forwards;
}

.footer-list-arrow{
	margin-top: 0.139vw;
	margin-left: 0.139vw;
	margin-right: 0.972vw;
	fill:#959595;
}

.footer-main-link{
	display: flex;
}

.footer-main-cta{
	padding-top: 0.694vw;
}


/* footer-cta PC: index の .fv-cta (PC) と同系の event バナー */
.footer-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
	gap: 0.833vw;
	margin-top: 2.361vw;
	padding: 1.94vw;
	/* 1440px 時: 327px × 122px、角丸 8px */
	width: calc(327 * 100vw / 1440);
	height: calc(122 * 100vw / 1440);
	min-height: 0;
	text-decoration: none;
	border: none;
	border-radius: 0.55vw;
	background: #081a00;
	background-image: none;
	color: #fff;
	transition: background-color 0.3s ease;
}

.footer-cta-pc-txt {
	margin: 0;
	font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
	/* 1440px 時: 24px、tracking 0.72px */
	font-size: calc(24 * 100vw / 1440);
	font-weight: 700;
	line-height: 1.36;
	letter-spacing: calc(0.72 * 100vw / 1440);
	text-align: left;
}

.footer-cta-pc-line1 {
	color: #fff;
}

.footer-cta-pc-line2 {
	color: #00ff6a;
}

.footer-cta-pc-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	/* 1440px 時: 14px */
	/* width: 0.972vw;
	height: 0.972vw;; */
}

.footer-cta-pc-btn-arrow {
	/* width: 0.972vw;
	height: 0.972vw; */
	fill: #00ff6a;
	transition: fill 0.3s ease;
}

.footer-cta:hover {
	background: #0f2a0f;
}

.footer-cta:hover .footer-cta-pc-btn-arrow {
	fill: #00ff6a;
	animation: flyInFromLeft 0.4s ease forwards;
}

.footer-entry{
	margin-top: 2.431vw;
}

.footer-entry-txt{
	position: relative;
	overflow: hidden;
	display: flex;
	margin-top: 1.181vw;
	width: 22.708vw;
	height: 3.542vw;
	padding: 0px 1.94vw 0px 2.083vw;
	justify-content: space-between;
	align-items: center;
  text-decoration: none;
	color: #FFF;
	text-align: center;
	font-size: 1.389vw;
	font-weight: 500;
	line-height: 100%; /* 20px */
	letter-spacing: 0.042vw;
	border-radius: 0.55vw;
	background: #081A00;
}

.footer-entry-txt::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #00ff6a 0.01%, #0ff 99.99%);
	opacity: 0;
	transition: opacity 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-entry-txt:hover::before { opacity: 1; }
.footer-entry-txt:hover { color: #081A00; }

.footer-entry-txt p {
	position: relative;
	z-index: 1;
}

.footer-entry-btn{
	position: relative;
	z-index: 1;
	fill:#00FF6A;
}

.footer-entry-txt:hover .footer-entry-btn{
	fill:#081A00;
	animation: flyInFromLeft 0.4s ease forwards;
}

.footer-info{
	display: flex;
	justify-content: space-between;
	padding: 0px 3.333vw 0px 3.333vw;
	height: 16.111vw;
  align-items: end;
	color: #FFF;
}

.footer-info-main-txt a {
	color: #fff;
	text-decoration: none;
  transition: color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-info-main p:hover{
	color: #00FF6A;
}
.footer-info-main p:hover a { color: #00ff6a; }

.footer-info-main{
	padding-top: 5.556vw;
	font-size: 1.25vw;
	font-weight: 500;
	letter-spacing: 0px;
}

.footer-info-sns{
  display: flex;
  justify-content: space-between;
  margin-top: 2.222vw;
  margin-bottom: 1.25vw;
  width: 3.889vw;
}

.footer-info-com{

	color: #959595;
	font-family: "PlusJakartaSans";
	font-size: 0.972vw;
	font-weight: 400;
}

.footer-list-s{
	height: 2.569vw;
}

.footer-info-logo{

	width: 6.944vw;
}

.footer-info-linklogo{
	margin: 0 0 0.556vw 0.139vw;
}

}

/* --- ページ遷移アニメーション追加 (2026/04/23) --- */

/* 1. Chrome/Edge用：ブラウザ標準の遷移 */
@view-transition {
  navigation: auto;
}

/* 2. 全ブラウザ用：シンプルなフェードイン */
body {
  /* アニメーション秒数指定/
  animation: simpleFadeIn 0.6s ease-in-out;
}

@keyframes simpleFadeIn {
  /* 開始時/完了時の透明度 */
  from { opacity: 0.8; }
  to { opacity: 1; }
}

/* --- 追加ここまで --- */