@charset "UTF-8";

/* ==========================================================================
   ベース
   ========================================================================== */
/* body,
html {
  font-family: "Noto Sans JP", "Noto Sans CJK JP",
    "Hiragino Sans", "Hiragino Kaku Gothic ProN", "HiraKakuProN-W3",
    "ヒラギノ角ゴ Pro W3", "Meiryo", "Yu Gothic", "游ゴシック", sans-serif;
  min-width: 260px;
  overscroll-behavior-y: none;
  scroll-padding-top: 17.0667vw;
} */

/* SVGアイコンの色（HTML側の fill="var(...)" の代わり） */
.l-header-ml svg path {
  fill: #fff;
}

/* ==========================================================================
   共通コンポーネント
   ========================================================================== */
.c-link-ml {
  color: inherit;
  text-decoration: none;
}

.c-heading-ml {
  margin: 0;
}

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.l-header-ml {
  position: relative;
  min-height: 17.0667vw;
}

.l-header-ml .l-header__container-ml {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  width: 100%;
  min-height: 17.0666666667vw;
  background: #000;
  border-bottom: 1px solid #000;
  box-shadow: 0 2.6666666667vw 5.3333333333vw rgba(0, 0, 0, 0.1);
  transform: translateZ(0);
  transition: transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);
  z-index: 100;
}

.l-header-ml .l-header__container-ml.is-sticky {
  position: fixed;
  top: auto;
  bottom: 100%;
  left: 0;
  transform: translateZ(0);
}

.l-header-ml .l-header__container-ml.is-pinned {
  transform: translate3d(0, calc(100% - 1px), 0);
}

.l-header__inner-ml {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: min(1280px, 100vw);
  min-height: 17.0666666667vw;
  margin: 0 auto;
  padding: 0 6.4vw;
}


/* ロゴ */
.l-header__info-ml {
  margin: 0;
  padding: 0;
  z-index: 2;
}

.l-header__info-ml a {
  display: block;
  max-width: var(--logo-width-sp);
}

.l-header__info-ml img {
  display: flex;
  width: 100%;
  height: auto;
}

@media print, screen and (min-width: 769px) {
  .l-header__info-ml a {
    max-width: var(--logo-width-pc);
  }
}

/* --------------------------------------------------------------------------
   PCナビゲーション
   -------------------------------------------------------------------------- */
.l-header__nav-pc-ml ul {
  list-style: none;
}

.l-header__nav-pc-ml {
  display: none;
}

@media print, screen and (min-width: 769px) {
  .l-header__nav-pc-ml {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0 min(24px, 1.756954612vw);
    width: 100%;
  }
}

/* --------------------------------------------------------------------------
   SPナビゲーション
   -------------------------------------------------------------------------- */
.l-header__nav-sp-ml {
  display: block;
}

@media print, screen and (min-width: 769px) {
  .l-header__nav-sp-ml {
    display: none;
  }
}

.f-disclosure-ml.l-header-nav-sp-ml summary {
  position: relative;
  z-index: 2;
}

.f-disclosure-ml.l-header-nav-sp-ml .l-header-nav-sp__content-ml {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 17.0667vw 0 6.9333333333vw 0;
  overflow: hidden;
  background: #000;
  color: #fff;
  z-index: 1;
}

.f-disclosure-ml.l-header-nav-sp-ml[open] .l-header-nav-sp__content-ml {
  height: calc(100dvh + 1px);
  width: 100%;
  animation: l-header-nav-sp-open-ml 0.5s cubic-bezier(0.19, 1, 0.22, 1) both;
}

/* ヘッダー（.l-header__inner-ml）の下端から下方向へ展開する */
@keyframes l-header-nav-sp-open-ml {
  from {
    clip-path: inset(17.0667vw 0 100% 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}

/* 閉じるとき: JSが is-closing を付け、アニメーション後に open を外す */
.f-disclosure-ml.l-header-nav-sp-ml.is-closing .l-header-nav-sp__content-ml {
  animation: l-header-nav-sp-close-ml 0.5s cubic-bezier(0.19, 1, 0.22, 1) both;
}

@keyframes l-header-nav-sp-close-ml {
  from {
    clip-path: inset(0 0 0 0);
  }
  to {
    clip-path: inset(17.0667vw 0 100% 0);
  }
}

.f-disclosure-ml.l-header-nav-sp-ml[open] .l-header-nav-sp__content-ml > div {
  height: 100%;
  width: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.l-header__nav-sp-list-ml {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 6.9333333333vw 6.4vw;
  list-style: none;
}

.l-header__nav-sp-item-ml {
  margin: 0;
}

.l-header__nav-sp-item-ml::before {
  display: none;
}

.l-header__nav-sp-item-ml > a {
  position: relative;
  display: block;
  width: 100%;
  padding: 6.4vw 0;
  color: #fff;
  font-size: 4.2666666667vw;
  text-decoration: none;
}

.l-header__nav-sp-item-ml > a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: #fff;
}

/* SP言語切り替え */
.l-header-ml .l-header__nav-sp-lang-list-ml {
  align-items: center;
  display: flex;
  gap: 4.2666666667vw;
  justify-content: center;
  padding: 0 6.4vw;
}

.l-header-ml .l-header__nav-sp-lang-earth-ml > svg {
  display: block;
}

.l-header-ml .l-header__nav-sp-lang-items-ml {
  display: flex;
  gap: calc(4.26667vw + 1px);
}

.l-header-ml .l-header__nav-sp-lang-items-ml > a {
  color: #fff;
  font-size: 3.7333333333vw;
  position: relative;
  text-decoration: none;
}

.l-header-ml .l-header__nav-sp-lang-items-ml > a::after {
  background: #fff;
  content: "";
  height: 1rem;
  position: absolute;
  right: -2.1333333333vw;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
}

.l-header-ml .l-header__nav-sp-lang-items-ml > a:last-child::after {
  display: none;
}

/* --------------------------------------------------------------------------
   ディスクロージャー（details/summary）
   -------------------------------------------------------------------------- */
.f-disclosure__control-ml {
  cursor: pointer;
  list-style: none;
}

.f-disclosure__control-ml::-webkit-details-marker {
  display: none;
}

/* --------------------------------------------------------------------------
   アイコン
   -------------------------------------------------------------------------- */
/* プラスアイコン */
.c-icon-plus-ml {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  width: 3.2vw;
  height: 3.2vw;
}

.c-icon-plus-ml::before,
.c-icon-plus-ml::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  transform: translate(-50%, -50%);
}

.c-icon-plus-ml::after {
  transform: translate(-50%, -50%) rotate(-90deg);
  transition: transform 0.2s;
}

details[open] > summary .c-icon-plus-ml::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

@media print, screen and (min-width: 769px) {
  .c-icon-plus-ml {
    width: min(12px, 0.878477306vw);
    height: min(12px, 0.878477306vw);
  }
}

/* ハンバーガーメニュー */
.c-icon-hamburger-menu-ml {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6.4vw;
  height: 5.0666666667vw;
  margin: 2.1333333333vw auto 0;
}

.c-icon-hamburger-menu-ml::before,
.c-icon-hamburger-menu-ml::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 0.8vw;
  background: #fff;
}

.c-icon-hamburger-menu-ml::before {
  top: 0;
  animation: c-icon-hamburger-menu-top 0.75s forwards;
}

.c-icon-hamburger-menu-ml::after {
  bottom: 0;
  animation: c-icon-hamburger-menu-bottom 0.75s forwards;
}

.c-icon-hamburger-menu-ml > span {
  position: absolute;
  top: 2.1333333333vw;
  left: 0;
  width: 100%;
  height: 0.8vw;
  background: #fff;
  opacity: 1;
  transition: opacity 0.25s 0.25s;
}

/* スクリーンリーダー用テキスト（視覚的に非表示） */
.c-icon-hamburger-menu-ml > span > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.c-icon-hamburger-menu-text-ml {
  display: block;
  color: #fff;
  font-size: 3.2vw;
  line-height: 1.5;
  text-align: center;
}

[open] .c-icon-hamburger-menu-ml::before {
  animation: c-icon-hamburger-menu-top-active 0.75s forwards;
}

[open] .c-icon-hamburger-menu-ml::after {
  animation: c-icon-hamburger-menu-bottom-active 0.75s forwards;
}

[open] .c-icon-hamburger-menu-ml > span {
  opacity: 0;
}

@keyframes c-icon-hamburger-menu-top {
  0% { transform: translateY(2.1333333333vw) rotate(45deg); }
  50% { transform: translateY(2.1333333333vw) rotate(0); }
  to { transform: translateY(0) rotate(0); }
}

@keyframes c-icon-hamburger-menu-bottom {
  0% { transform: translateY(-2.1333333333vw) rotate(-45deg); }
  50% { transform: translateY(-2.1333333333vw) rotate(0); }
  to { transform: translateY(0) rotate(0); }
}

@keyframes c-icon-hamburger-menu-top-active {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(2.1333333333vw) rotate(0); }
  to { transform: translateY(2.1333333333vw) rotate(45deg); }
}

@keyframes c-icon-hamburger-menu-bottom-active {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2.1333333333vw) rotate(0); }
  to { transform: translateY(-2.1333333333vw) rotate(-45deg); }
}

/* ==========================================================================
   PCナビゲーション（詳細スタイル・769px以上）
   ========================================================================== */
@media print, screen and (min-width: 769px) {
  .l-header-ml .l-header__nav-pc-list-ml {
    align-items: center;
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: min(4px, 0.2928257687vw) min(24px, 1.756954612vw);
    margin: 0;
    padding: 0;
  }

  .l-header-ml .l-header__nav-pc-item-ml {
    line-height: 1;
    margin: 0;
    padding: 0;
    position: static;
  }

  .l-header-ml .l-header__nav-pc-item-ml::before {
    display: none;
  }

  .l-header-ml .l-header__nav-pc-item-ml .l-header__nav-pc-item-link-ml {
    color: #fff;
    display: block;
    font-size: min(1rem, 1.1713030747vw);
    padding: min(8px, 0.5857vw) 0;
    position: relative;
    text-decoration: none;
  }

  .l-header-ml .l-header__nav-pc-item-ml .l-header__nav-pc-item-link-ml::after {
    background: #fddb00;
    bottom: 0;
    content: "";
    display: block;
    height: 2px;
    left: 0;
    position: absolute;
    transition: width 0.2s ease-in-out;
    width: 0;
  }

  .l-header-ml .l-header__nav-pc-item-ml .l-header__nav-pc-item-link-ml[href]:hover::after {
    width: 100%;
  }

  .l-header-ml .l-header__nav-pc-item-text-ml {
    color: #fff;
    font-size: min(1rem, 1.1713030747vw);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
  }

  /* 言語切り替え */
  .l-header-ml .l-header__nav-pc-lang-ml {
    height: min(43px, 3.1478770132vw);
    min-width: min(151px, 11.0541727672vw);
    position: relative;
  }

  .l-header-ml .l-header__nav-pc-lang-container-ml {
    background: #000;
    border: 1px solid #fff;
    border-radius: min(24px, 1.756954612vw);
    color: #fff;
    font-weight: 700;
    left: 0;
    position: absolute;
    top: 0;
    transition: border-radius 0.2s ease-in-out;
    width: 100%;
    z-index: 2;
  }

  .l-header-ml .l-header__nav-pc-lang-container-ml summary {
    align-items: center;
    display: flex;
    gap: 0 min(4px, 0.2928257687vw);
    justify-content: center;
    list-style-type: none;
    padding: min(8px, 0.5856515373vw) min(16px, 1.1713030747vw);
  }

  .l-header-ml .l-header__nav-pc-lang-container-ml summary span {
    font-size: min(0.875rem, 1.0248901903vw);
    white-space: nowrap;
  }

  .l-header-ml .l-header__nav-pc-lang-container-ml:hover,
  .l-header-ml .l-header__nav-pc-lang-container-ml[open] {
    border-radius: min(8px, 0.5856515373vw);
  }

  .l-header-ml .l-header__nav-pc-lang-content-ml ul {
    margin: 0;
    padding: min(8px, 0.5856515373vw) 0 min(16px, 1.1713030747vw);
  }

  .l-header-ml .l-header__nav-pc-lang-content-ml li {
    padding: 0;
    text-align: center;
  }

  .l-header-ml .l-header__nav-pc-lang-content-ml li::before {
    display: none;
  }

  .l-header-ml .l-header__nav-pc-lang-content-ml li > a {
    color: #fff;
    display: block;
    font-size: min(0.875rem, 1.0248901903vw);
    text-decoration: none;
  }

  .l-header-ml .l-header__nav-pc-lang-content-ml li > a[href]:hover {
    text-decoration: underline;
  }

  .l-header-ml .l-header__nav-pc-lang-content-ml li + li {
    margin-top: min(12px, 0.878477306vw);
  }

  .l-header-ml .l-header__nav-pc-lang-earth-ml {
    display: flex;
    height: min(24px, 1.756954612vw);
    min-width: min(24px, 1.756954612vw);
    width: min(24px, 1.756954612vw);
  }

  .l-header-ml .l-header__nav-pc-lang-earth-ml > svg {
    display: block;
    height: 100%;
    width: 100%;
  }

  .l-header-ml .l-header__nav-pc-lang-plus-ml {
    padding: min(2px, 0.1464128843vw);
  }
}

/* ==========================================================================
   PC用の寸法上書き（変数の代わり・必ずファイル末尾に置く）
   ========================================================================== */
@media print, screen and (min-width: 769px) {
  body,
  html {
    scroll-padding-top: min(80px, 5.8565vw);
  }

  .l-header-ml {
    min-height: min(80px, 5.8565vw);
  }

  .l-header-ml .l-header__container-ml {
    min-height: min(80px, 5.8565vw);
  }

  .l-header__inner-ml {
    gap: 0 min(32px, 2.3426061493vw);
    min-height: auto;
    padding: 0 min(40px, 2.9283vw);
  }

  .f-disclosure-ml.l-header-nav-sp-ml .l-header-nav-sp__content-ml {
    padding-top: min(80px, 5.8565vw);
  }

  .l-header__nav-sp-list-ml {
    padding: 6.9333333333vw min(40px, 2.9283vw);
  }

  .l-header-ml .l-header__nav-sp-lang-list-ml {
    padding: 0 min(40px, 2.9283vw);
  }
}