body {
    font-size: 1vw;
    font-family: "Zen Kaku Gothic New", sans-serif;
    overflow-x: hidden;
}
html {
    overflow-x: hidden;
}
/* ----------------------------------------------------
初期ローディングアニメーション
---------------------------------------------------- */
/* --- Loader wrapper (scoped; no body/html selectors) --- */
#site-loader {
    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #00bc6e;
    z-index: 99999999999;
    opacity: 1;
    transition: opacity 3s ease;
}
#site-loader.is-hidden {
    opacity: 0;
    pointer-events: none;
}
#site-loader .loader {
    display: inline-block;
    width: 2vw;
    height: 2vw;
    position: relative;
    border: 4px solid #fff;
    animation: loader 2s infinite ease;
}
#site-loader h1 {
  margin-top: 2vw;
  font-size: 1.5vw;
  font-weight: bold;
  color: #fff;
  letter-spacing: .2em;
  display: inline-flex;
  gap: 0.02em;
  will-change: transform;
}
#site-loader h1 .char {
  display: inline-block;
  transform-origin: 50% 100%;
  animation: poyon 1.2s ease-in-out infinite;
  animation-delay: calc(var(--i) * 0.08s);
}
#site-loader h1 .space {
  width: 0.5ch;
  animation: none;
}
@keyframes poyon {
  0%   { transform: translateY(0)    scale(1); }
  12%  { transform: translateY(-42%) scale(1.12, 0.88); } /* さらに高く跳ねる */
  28%  { transform: translateY(0)    scale(0.93, 1.07); } /* 着地のつぶれ強め */
  42%  { transform: translateY(-16%) scale(1.05, 0.95); } /* 2回目の小さめジャンプも強化 */
  58%  { transform: translateY(0)    scale(1.01, 0.99); } /* 収束前の微振動 */
  100% { transform: translateY(0)    scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  #site-loader h1 .char { animation: none; }
}
#site-loader .loader-inner {
    vertical-align: top;
    display: inline-block;
    width: 100%;
    background-color: #fff;
    animation: loader-inner 2s infinite ease-in;
}
@keyframes loader {
  0%   { transform: rotate(0deg); }
  25%  { transform: rotate(180deg); }
  50%  { transform: rotate(180deg); }
  75%  { transform: rotate(360deg); }
  100% { transform: rotate(360deg); }
}
@keyframes loader-inner {
  0%   { height: 0%; }
  25%  { height: 0%; }
  50%  { height: 100%; }
  75%  { height: 100%; }
  100% { height: 0%; }
}
@media screen and (max-width: 767px) {
    #site-loader .loader {
        display: inline-block;
        width: 7vw;
        height: 7vw;
        position: relative;
        border: 4px solid #fff;
        animation: loader 2s infinite ease;
    }
    #site-loader h1 {
        margin-top: 7vw;
        font-size: 7vw;
        font-weight: bold;
        color: #fff;
        letter-spacing: .2em;
        display: inline-flex;
        gap: 0.02em;
        will-change: transform;
    }
}
/* ----------------------------------------------------
ローディングアニメーション
---------------------------------------------------- */
/* ---- Loader Overlay ---- */
#loading.drawing{
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    background-color: #00bc6e;
    z-index: 9999999;           /* 最前面 */
    opacity: 0.9;
    visibility: visible;
    transition: opacity .45s ease, visibility 0s linear .45s;
}

/* フェードアウト時に付与されるクラス */
#loading.is-hidden{
    opacity: 0;
    visibility: hidden;
    transition: opacity .45s ease, visibility 0s linear .45s;
}

/* -- Loading thingy -- */
#loading .loading-dot{
    border-radius: 100%;
    height: 10px;
    width: 10px;
    background-color: #ffffff;
    /* 画面中央に表示（親が grid 中央寄せなので位置指定は不要） */
        box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
        40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
    animation: load 3s infinite linear;
}

@-webkit-keyframes load {
  0%   {
    -webkit-transform: translate(0px,0px),rotate(0deg); 
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

  25%{
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    -40px -40px 0px 0px #ffffff,40px 40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff;
  }

  50%{
    box-shadow: 0px -40px 0px 0px #ffffff,0px 40px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,
    -40px -40px 0px 0px #ffffff,40px 40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff;
  }

  70%{
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
  }

  75%{
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    height:10px;
    width:10px;
  }

  80%{
    -webkit-transform: translate(0px,0px) rotate(360deg); 
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff;
    height:40px;
    width:40px;
  }

  85%{
    -webkit-transform: translate(0px,0px) rotate(360deg);
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff; 
    height:40px;
    width:40px;
  }

  90%{
    -webkit-transform: translate(0px,0px) rotate(360deg); 
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff; 
    height:10px;
    width:10px;
  }

  95%{
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

  100%{
    -webkit-transform: rotate(360deg);
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

}

@-moz-keyframes load {
  0%   {
    -moz-transform: translate(0px,0px),rotate(0deg); 
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

  25%{
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    -40px -40px 0px 0px #ffffff,40px 40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff;
  }

  50%{
    box-shadow: 0px -40px 0px 0px #ffffff,0px 40px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,
    -40px -40px 0px 0px #ffffff,40px 40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff;
  }

  70%{
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
  }

  75%{
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    height:10px;
    width:10px;
  }

  80%{
    -moz-transform: translate(0px,0px) rotate(360deg); 
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff;
    height:40px;
    width:40px;
  }

  85%{
    -moz-transform: translate(0px,0px) rotate(360deg);
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff; 
    height:40px;
    width:40px;
  }

  90%{
    -moz-transform: translate(0px,0px) rotate(360deg); 
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff; 
    height:10px;
    width:10px;
  }

  95%{
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

  100%{
    -moz-transform: rotate(360deg);
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

}

@keyframes load {
  0%   {
    transform: translate(0px,0px),rotate(0deg); 
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

  25%{
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    -40px -40px 0px 0px #ffffff,40px 40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff;
  }

  50%{
    box-shadow: 0px -40px 0px 0px #ffffff,0px 40px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,
    -40px -40px 0px 0px #ffffff,40px 40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff;
  }

  70%{
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
  }

  75%{
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    height:10px;
    width:10px;
  }

  80%{
    transform: translate(0px,0px) rotate(360deg); 
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff;
    height:40px;
    width:40px;
  }

  85%{
    transform: translate(0px,0px) rotate(360deg);
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff; 
    height:40px;
    width:40px;
  }

  90%{
    transform: translate(0px,0px) rotate(360deg); 
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff; 
    height:10px;
    width:10px;
  }

  95%{
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

  100%{
    transform: rotate(360deg);
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

}
@-o-keyframes load {
  0%   {
    -o-transforms: translate(0px,0px),rotate(0deg); 
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

  25%{
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    -40px -40px 0px 0px #ffffff,40px 40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff;
  }

  50%{
    box-shadow: 0px -40px 0px 0px #ffffff,0px 40px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,
    -40px -40px 0px 0px #ffffff,40px 40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff;
  }

  70%{
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
  }

  75%{
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    height:10px;
    width:10px;
  }

  80%{
    -o-transforms: translate(0px,0px) rotate(360deg); 
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff;
    height:40px;
    width:40px;
  }

  85%{
    -o-transforms: translate(0px,0px) rotate(360deg);
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff; 
    height:40px;
    width:40px;
  }

  90%{
    -o-transforms: translate(0px,0px) rotate(360deg); 
    box-shadow: 0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,
    0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff,0px 0px 0px 0px #ffffff;
    background-color: #ffffff; 
    height:10px;
    width:10px;
  }

  95%{
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

  100%{
    -o-transforms: rotate(360deg);
    box-shadow: 0px 40px 0px 0px #ffffff,0px -40px 0px 0px #ffffff,40px 0px 0px 0px #ffffff,-40px 0px 0px 0px #ffffff,
    40px 40px 0px 0px #ffffff,-40px -40px 0px 0px #ffffff,40px -40px 0px 0px #ffffff,-40px 40px 0px 0px #ffffff;
  }

}

/* ----------------------------------------------------
header-pc
---------------------------------------------------- */
#header-pc {
    position: fixed;
    z-index: 999999;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 90vw;
    font-size: 1vw;
}
.header-pc-logo-area {
    cursor: pointer;
    padding: 1vw 5vw 1vw 3vw;
    background-color: #fff;
    border-radius: 0 0 100px 0;
}
#itami-logo-img {
    width: 20vw;
}
#header-pc ul {
    display: flex;
    align-items: center;
    justify-content: space-around;
    width: 58vw;
    font-weight: bold;
    color: #fff;
}
#header-pc ul a { color: inherit; }
html.after-hero #header-pc ul { color: #333; }
#header-pc ul { transition: color .2s ease; }

/* === PC: トップレベルのホバー演出（予約ボタン除外） === */
@media (min-width: 768px) {
  /* クリックしやすいようにパディングと相対配置を付与＋拡大アニメ追加（予約ボタン除外） */
  #header-pc ul > li:not(#reservation-btn) > a {
    position: relative;
    display: inline-block;
    padding: 0.6vw 0.8vw;
    border-radius: 8px; /* フォーカスリング用 */
    text-decoration: none;
    transition: color .18s ease, transform .18s ease;
    transform: translateZ(0);
    will-change: transform;
  }

  /* アンダーライン（currentColorで色連動） */
  #header-pc ul > li:not(#reservation-btn) > a::after {
    content: "";
    position: absolute;
    left: 0.8vw;
    right: 0.8vw;
    bottom: 0.2em;      /* 文字から少し離す */
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    opacity: .6;
    transition: transform .18s ease;
  }

  /* ホバー/フォーカス時：色変更＋下線表示＋少し拡大 */
  #header-pc ul > li:not(#reservation-btn):hover > a,
  #header-pc ul > li:not(#reservation-btn):focus-within > a {
    color: #fb5415;
    transform: scale(1.08);
  }
  #header-pc ul > li:not(#reservation-btn):hover > a::after,
  #header-pc ul > li:not(#reservation-btn):focus-within > a::after {
    transform: scaleX(1);
  }

  /* キーボード操作の視認性を向上 */
  #header-pc ul > li:not(#reservation-btn) > a:focus-visible {
    outline: 2px solid #fb5415;
    outline-offset: 2px;
  }
}

/* 低モーション環境配慮 */
@media (prefers-reduced-motion: reduce) {
  #header-pc ul > li:not(#reservation-btn) > a { transition: none; }
  #header-pc ul > li:not(#reservation-btn):hover > a,
  #header-pc ul > li:not(#reservation-btn):focus-within > a { transform: none; }
}




#reservation-btn {
    padding: 0.5vw 1.5vw;
    background-color: #fb5415;
    border-radius: 50px;
    color: #fff;
}
#reservation-btn a {
    display: flex;
    align-items: center;
}
#reservation-logo-img {
    margin-right: 0.5vw;
    width: 1.3vw;
}
#contact-btn-mobile {
    margin-top: 3vw;
}
#contact-btn-mobile a {
    text-align: center;
    padding: 2.5vw 1.5vw;
    background-color: #00bc6e;
    border-radius: 50px;
    color: #fff;
}
/* === PC: ドロップダウン === */
#header-pc ul li.has-submenu { position: relative; }

/* パネル本体 */
#header-pc ul li .submenu {
  position: absolute;
  top: 100%;
  left: 0;
  width: 17vw;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
  padding: 1vw;
  display: block;
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
  z-index: 1000002; /* 予約ボタンより前面に */
  /* 文字色は固定でダーク（ヘッダーの after-hero 色変化の影響を受けない） */
  color: #333;
}

/* リストの初期化 */
#header-pc ul li .submenu > li { list-style: none; margin: 0; padding: 0; }
#header-pc ul li .submenu a {
  display: block;
  padding: 10px 12px;
  border-radius: 8px;
  text-decoration: none;
  color: inherit; /* #333 を継承 */
  white-space: nowrap;
  transition: background .15s ease, transform .05s ease;
}
#header-pc ul li .submenu a:hover { background: #f4f6f8; }
#header-pc ul li .submenu a:active { transform: translateY(1px); }

/* 表示トリガー（ホバー & キーボード） */
#header-pc ul li.has-submenu:hover > .submenu,
#header-pc ul li.has-submenu:focus-within > .submenu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* 右端保護（必要時は右寄せに切り替え） */
#header-pc ul { position: relative; } /* 参照基準の安定化 */
#header-pc ul li.has-submenu.align-right > .submenu {
  left: auto;
  right: 0;
}

/* トップレベルの色変化は既存ルールを尊重 */

/* === トグル（ハンバーガー） === */
.menu-toggle {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9999999;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 2vw 2vw 4vw 4vw;
    background: #00bc6e;
    color: #fff;
    border: 0;
    cursor: pointer;
    border-radius: 0 0 0 300px;
    box-shadow: 0 4px 16px rgba(0,0,0,.5);
}

/* 三本線 */
.menu-lines { 
    position: relative; 
    width: 50px; 
    height: 30px; 
}
.menu-line {
    position: absolute;
    left: 0;
    width: 50px; 
    height: 3px;
    background: #fff;
    border-radius: 2px;
    transition: transform .25s ease, opacity .2s ease, top .25s ease;
}
.menu-line:nth-child(1) { top: 0; }
.menu-line:nth-child(2) { top: 14px; }
.menu-line:nth-child(3) { top: 27px; }

/* ラベル（MENU / CLOSE） */
.menu-label { 
    display: block; 
    font-size: 0.8vw;
    font-weight: bold; 
    letter-spacing: .18em; 
}
.label-menu  { display: inline; }
.label-close { display: none; }

/* === サイドメニュー === */
.side-menu {
    position: fixed;
    top: 0; right: 0;
    width: 25vw;
    height: 100vh;
    background: #fff;
    transform: translateX(100%);
    transition: transform .3s ease;
    z-index: 1000001;
    display: flex;
    flex-direction: column;
}

.side-menu__header {
    margin-top: 10vw;
    padding: 20px 24px;
    border-bottom: 1px solid #eee;
    font-weight: 700;
}
.side-menu__nav {
    padding: 8px 16px 24px;
    overflow-y: auto;
}
.side-menu__list { list-style: none; margin: 0; padding: 0; }
.side-menu__list li { margin: 0; }
.side-menu__list a {
    display: block;
    padding: 14px 12px;
    border-radius: 10px;
    text-decoration: none;
    transition: background .15s ease, transform .05s ease;
}
@media (min-width: 768px) {
    .side-menu__list a:hover { background: #f4f6f8;}
}

.side-menu__list a:active { transform: translateY(1px); }

/* === オープン時の状態 === */
html.menu-open .menu-toggle {
    box-shadow: 0 0 0 rgba(0,0,0,.5);
}
html.menu-open .side-menu { transform: translateX(0); }
html.menu-open .menu-line:nth-child(1) { top: 8px; transform: rotate(45deg); }
html.menu-open .menu-line:nth-child(2) { opacity: 0; }
html.menu-open .menu-line:nth-child(3) { top: 8px; transform: rotate(-45deg); }
html.menu-open .label-menu { display: none; }
html.menu-open .label-close { display: inline; }

.menu-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.7);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 1000000;
}
html.menu-open .menu-backdrop {
    opacity: 1;
    pointer-events: auto;
}
.header-mobile-menu-area {
    font-size: 3vw;
}

@media screen and (min-width: 768px) {
    .header-mobile-menu-area {
        display: none;
    }
}
@media screen and (max-width: 767px) {
    #header-pc ul {
        display: none;
    }
    .header-pc-logo-area {
        cursor: pointer;
        position: fixed;
        z-index: 999999;
        top: 0;
        left: 0;
        padding: 3vw 5vw 3vw 3vw;
        border-radius: 0 0 30px 0;
    }
    #itami-logo-img {
        width: 60vw;
    }
    .menu-toggle {
        padding: 3vw 2vw 6vw 8vw;
        background: #00bc6e;
        color: #fff;
        border: 0;
        cursor: pointer;
        border-radius: 0 0 0 300px;
        box-shadow: 0 4px 16px rgba(0,0,0,.5);
    }
    /* 三本線 */
    .menu-lines { 
        position: relative; 
        width: 40px; 
        height: 22px; 
    }
    .menu-line {
        position: absolute;
        left: 0;
        width: 40px; 
        height: 2px;
        background: #fff;
        border-radius: 2px;
        transition: transform .25s ease, opacity .2s ease, top .25s ease;
    }
    .menu-line:nth-child(1) { top: 0; }
    .menu-line:nth-child(2) { top: 10px; }
    .menu-line:nth-child(3) { top: 22px; }

    /* ラベル（MENU / CLOSE） */
    .menu-label { 
        font-size: 3vw;
    }
    .side-menu {
        width: 50vw;
        height: 100vh;
        font-size: 3vw;
    }

    .side-menu__header {
        margin-top: 20vw;
    }
    #reservation-btn-mobile {
        background-color: #fb5415;
        border-radius: 50px;
        color: #fff;
    }
    #reservation-btn-mobile a {
        padding: 2vw 6vw !important;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #reservation-logo-img {
        margin-right: 2vw;
        width: 5vw;
    }
}
/* ----------------------------------------------------
top-img-area
---------------------------------------------------- */
.top-img-area {
    position: relative;
}
#top-img {
    width: 95vw;
    height: 100vh;
    object-fit: cover;
    border-radius: 150px 0 150px 0;
}
#top-img-text {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 38vw;
}
@media screen and (max-width: 767px) {
    #top-img {
        width: 100%;
        height: 100vh;
        object-fit: cover;
        border-radius: 0 0 100px 0;
    }
    #top-img-text {
        position: absolute;
        left: 0;
        bottom: 0;
        width: 60vw;
    }
}
/* ----------------------------------------------------
news-area
---------------------------------------------------- */
.news-area {
    display: flex;
    align-items: center;
    margin: 10vw auto;
    width: 80vw;
    color: #333;
}
.news-btn-text-area {
    width: 20vw;
}
.news-title-area h2 {
    font-family: "Special Gothic Expanded One", sans-serif;
    font-size: 4vw;
    font-weight: bold;
    color: #009a5a;
}
.news-title-area p {
    font-size: 1.5vw;
    font-weight: bold;
}
.news-btn-area {
    display: flex;
    flex-direction: column;
    margin-top: 3vw;
}
.news-btn-area a:last-child {
    margin-top: 8vw;
}
.news-btn-area img {
    width: 15vw;
}
.news-wrap {
    width: 60vw;
}
.news-text {
    display: flex;
    align-items: center;
    margin: 1vw 0;
    padding: 1vw 0;
    width: 60vw;
    font-weight: bold;
    border-bottom: solid 1px #333;
}
.news-tag {
    padding: 0.3vw 1.5vw;
    font-size: 0.8vw;
    color: #fff;
    background-color: #009a5a;
    border-radius: 5px;
}
.day {
    margin: 0 1vw;
    font-size: 1.2vw;
}
.title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 1.2vw;
}
.arrow-logo {
    margin-left: auto;
    display: block;
    width: 2vw;
}
@media screen and (max-width: 767px) {
    .news-area {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin: 20vw auto;
        width: 95vw;
    }
    .news-btn-text-area {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 95vw;
    }
    .news-title-area h2 {
        font-size: 8vw;
    }
    .news-title-area p {
        font-size: 3.5vw;
    }
    .news-btn-area {
        display: flex;
        flex-direction: column;
        margin-top: 0;
    }
    .news-btn-area a:last-child {
        margin-top: 0;
    }
    .news-btn-area img {
        width: 40vw;
    }
    .mobile-none {
        display: none;
    }
    .news-wrap {
        width: 95vw;
    }
    .news-text {
        margin: 5vw 0;
        padding: 3vw 0;
        width: 95vw;
    }
    .news-tag {
        padding: 0.5vw 3vw;
        font-size: 2.5vw;
    }
    .day {
        margin: 0 3vw;
        font-size: 3vw;
    }
    .title {
        flex: 1;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 3.5vw;
    }
    .arrow-logo {
        margin-left: auto;
        display: block;
        width: 5vw;
    }
    #insta-btn {
        margin-top: 5vw;
        width: 60vw;
    }
}
/* ----------------------------------------------------
overview-area
---------------------------------------------------- */
.overview-area {
    display: flex;
    align-items: center;
    margin: 10vw auto;
    width: 80vw;
}
#chairman-img {
    width: 45vw;
}
.overview-text-area {
    margin-left: 2vw;
    width: 33vw;
}
.overview-text-area p {
    margin-bottom: 1vw;
}
.overview-btn-area {
    display: flex;
    justify-content: flex-end;
    margin-top: 3vw;
}
#overview-page-btn {
    width: 15vw;
}
@media screen and (max-width: 767px) {
    .overview-area {
        flex-direction: column;
        margin: 20vw auto;
        width: 95vw;
    }
    #chairman-img {
        width: 95vw;
    }
    .overview-text-area {
        margin-top: 5vw;
        margin-left: 0;
        width: 90vw;
        line-height: 1.5;
        font-size: 3.5vw;
    }
    .overview-text-area p {
        margin-bottom: 3vw;
    }
    .overview-btn-area {
        display: flex;
        justify-content: flex-end;
        margin-top: 5vw;
    }
    #overview-page-btn {
        width: 50vw;
    }
}
/* ----------------------------------------------------
tournament-area
---------------------------------------------------- */
#tournament-protect-area {
    overflow-x: hidden;
}
.tournament-area {
    position: relative;
    margin: 15vw auto 10vw auto;
    width: 80vw;
    color: #333;
    
}
#tournament-logo-img {
    
    position: absolute;
    top: -3vw;
    right: -15vw;
    z-index: -1;
    width: 25vw;
}
.tournament-title-area h2 {
    font-family: "Special Gothic Expanded One", sans-serif;
    font-size: 5vw;
    font-weight: bold;
    color: #009a5a;
}
.tournament-text-area {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.5vw;
    font-weight: bold;
}
.tournament-text-area h3 {
    font-size: 2vw;
    font-weight: bold;
}
.tournament-text-area p {
    text-align: right;
    font-size: 1.5vw;
}
.tournament-img-area {
    display: flex;
    justify-content: center;
    margin-top: 7vw;
}
.tournament-img-card-area {
    cursor: pointer;
    width: 38vw;
}
.tournament-img-card-area02 {
    margin-left: 4vw;
}
#tournament-img01, #tournament-img02 {
    width: 38vw;
}
.tournament-img-card-area p {
    margin: 1.5vw 0;
    font-size: 1.2vw;
    font-weight: bold;
}
#tournament-btn01, #tournament-btn02 {
    width: 15vw;
}
@media screen and (max-width: 767px) {
    .tournament-area {
        margin: 20vw auto 10vw auto;
        width: 95vw;
    }
    #tournament-logo-img {
        position: absolute;
        top: -5vw;
        right: -15vw;
        z-index: -1;
        width: 50vw;
    }
    .tournament-title-area h2 {
        font-size: 8vw;
    }
    .tournament-text-area {
        margin-top: 2vw;
    }
    .tournament-text-area h3 {
        font-size: 3.5vw;
        font-weight: bold;
    }
    .tournament-text-area p {
        text-align: right;
        font-size: 3vw;
    }
    .tournament-img-area {
        display: flex;
        flex-direction: column;
        margin-top: 10vw;
    }
    .tournament-img-card-area {
        width: 95vw;
    }
    .tournament-img-card-area02 {
        margin-top: 10vw;
        margin-left: 0vw;
    }
    #tournament-img01, #tournament-img02 {
        width: 95vw;
    }
    .tournament-img-card-area p {
        margin: 3vw 0;
        line-height: 1.5;
        font-size: 3.5vw;
        font-weight: bold;
    }
    #tournament-btn01, #tournament-btn02 {
        margin-left: 45vw;
        width: 50vw;
    }
}
/* ----------------------------------------------------
school-area
---------------------------------------------------- */
.school-area {
    margin: 10vw auto;
    width: 80vw;
    color: #333;
}
.school-wrap {
    position: relative;
    background: url('./img/school-background-img.png')center/cover no-repeat;
    margin-top: 5vw;
    padding-top: 3vw;
}
#school-main-img {
    position: relative;
    margin-top: -16vw;
    width: 80vw;
}
.school-wrap-btn-area {
    position: absolute;
    bottom: -1.5vw;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    justify-content: space-around;
    width: 80vw;
}
.school-wrap-btn-area img {
    width: 25vw;
}
.school-scroll-area{
    position: relative;
    overflow: hidden;
    width: 100%;
}
.school-scroll-area .marquee-track{
    display: flex;
    align-items: center;
    gap: 5vw;
    will-change: transform;
    animation: marquee var(--duration, 50s) linear infinite;
}
.school-scroll-area img{
    height: 16vw;
    width: auto;
    flex: 0 0 auto;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
}
@keyframes marquee {
  to {
    transform: translateX(calc(-1 * var(--distance, 0px)));
  }
}
@media (prefers-reduced-motion: reduce){
  .school-scroll-area .marquee-track{
    animation: none !important;
    transform: none !important;
  }
}

@media screen and (max-width: 767px) {
    .school-area {
        margin: 20vw auto 50vw;
        width: 95vw;
        border-radius: 10px;
    }
    .school-wrap {
        position: relative;
        margin-top: 5vw;
        padding-top: 5vw;
        border-radius: 10px;
    }
    #school-main-img {
        position: relative;
        margin-top: -16vw;
        width: 95vw;
    }
    .school-wrap-btn-area {
        position: absolute;
        bottom: -30vw;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        flex-direction: column;
        justify-content: center;
        width: 70vw;
    }
    .school-wrap-btn-area img {
        margin-top: 8vw;
        width: 70vw;
    }
    .school-scroll-area img{
        height: 30vw;
    }
}
/* ----------------------------------------------------
photo-area
---------------------------------------------------- */
.photo-area {
    display: flex;
    margin: 10vw auto 5vw auto;
    padding: 2vw 3vw;
    width: 80vw;
    background: url('./img/photo-background-img.png')center/cover no-repeat;
    border-radius: 15px;
    color: #fff;
}
.photo-title-area h2 {
    font-family: "Special Gothic Expanded One", sans-serif;
    font-size: 5vw;
    font-weight: bold;
}
.photo-title-area h3 {
    font-size: 2vw;
    font-weight: bold;
}
.photo-title-area p {
    margin-top: 1.5vw;
}
    
.photo-btn-area {
    margin-top: 3vw;
}
.photo-btn-area img {
    width: 15vw;
}
.photo-scroll-mobile-area {
    display: flex;
    width: 100%;
}
.photo-scroll-area-left,
.photo-scroll-area-right {
    position: relative;
    overflow: hidden;
    margin-left: 2vw;
    height: 32vw;
    width: 100%;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, black 8%, black 92%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0, black 8%, black 92%, transparent 100%);
    --scroll-duration: 50s;
}
.photo-scroll-area-left img,
.photo-scroll-area-right img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    margin: 0 0 1.2vw;
    border-radius: 10px;
}
.photo-scroll-track {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    will-change: transform;
    display: flex;
    flex-direction: column;
}
.photo-scroll-area-right .photo-scroll-track {
    animation: photo-scroll-up var(--scroll-duration) linear infinite;
}
.photo-scroll-area-left .photo-scroll-track {
    animation: photo-scroll-down var(--scroll-duration) linear infinite;
}
@keyframes photo-scroll-up {
    0%   { transform: translateY(0); }
    100% { transform: translateY(-50%); }
}
@keyframes photo-scroll-down {
    0%   { transform: translateY(-50%); }
    100% { transform: translateY(0); }
}
@media screen and (max-width: 767px) {
    .photo-area {
        display: flex;
        flex-direction: column-reverse;
        margin: 20vw auto 10vw auto;
        padding: 5vw 3vw 10vw;
        width: 95vw;
        border-radius: 10px;
    }
    .photo-title-area {
        margin-top: 5vw;
    }
    .photo-title-area h2 {
        font-size: 8vw;
    }
    .photo-title-area h3 {
        margin-top: 2vw;
        font-size: 3.5vw;
    }
    .photo-title-area p {
        margin-top: 3vw;
        line-height: 1.5;
        font-size: 3.5vw;
    }
    .photo-btn-area {
        display: flex;
        justify-content: center;
        margin-top: 10vw;
    }
    .photo-btn-area img {
        width: 50vw;
    }
    .photo-scroll-mobile-area {
        display: flex;
    }
    .photo-scroll-area-left,
    .photo-scroll-area-right {
        position: relative;
        overflow: hidden;
        margin-left: 2vw;
        height: 80vw;
        width: 100%;
        --scroll-duration: 50s;
    }
    .photo-scroll-area-left {
        margin-left: 0;
    }
    .photo-scroll-area-left img,
    .photo-scroll-area-right img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: cover;
        margin: 0 0 1.2vw;
        border-radius: 5px;
    }
}
/* ----------------------------------------------------
page-top-area
---------------------------------------------------- */
.page-top-area {
    display: flex;
    justify-content: right;
    margin-right: 2vw;
    margin-bottom: 2vw;
}
.page-top-area img {
    width: 5vw;
}
@media screen and (max-width: 767px) {
    .page-top-area {
        display: flex;
        justify-content: right;
        margin-right: 1vw;
        margin-bottom: 20vw;
    }
    .page-top-area img {
        width: 15vw;
    }
}
/* ----------------------------------------------------
contact-area
---------------------------------------------------- */
.contact-area {
    position: relative;
    width: 100%;
    height: 22vw;
    background: url('./img/contact-img.png')center/cover no-repeat;
}
.contact-text-space {
    position: absolute;
    top: 55%;
    right: 10vw;
    transform: translateY(-50%);
}
.contact-text-wrap {
    padding: 0.5vw;
    width: 50.5vw;
    background-color: #fff;
    border-radius: 30px;
}
.contact-text-area {
    position: relative;
    display: flex;
    width: 100%;
    border: solid 2px #333;
    border-radius: 30px;
}
.contact-btn-area {
    text-align: center;
    margin: 2vw 0;
    width: 25vw;
}
.contact-btn-area h3 {
    margin-bottom: 2vw;
    font-size: 1.5vw;
    font-weight: bold;
    color: #fb5415;
}
.contact-btn-area h5 {
    margin-bottom: 3vw;
    font-size: 1.5vw;
    font-weight: bold;
    color: #333;
}
.contact-btn img {
    width: 12vw;
}
.contact-mail-tel-btn {
    display: flex;
    justify-content: center;
}
.contact-mail-tel-btn a:first-child {
    margin-right: 1vw;
}
.contact-mail-tel-btn img {
    width: 10vw;
}
#line {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: 2px;
    height: 9vw;
    background-color: #333;
}
#inquiry-note {
    text-align: right;
    margin-top: 0.5vw;
    font-size: 0.8vw;
    font-weight: bold;
    color: #fff;
}
@media screen and (min-width: 768px) {
    .pc-none {
        display: none;
    }
}
@media screen and (max-width: 767px) {
    .contact-area {
        position: relative;
        padding-top: 52.3vw;
        width: 100%;
        height: 95vw;
        background-image: none;
        background-color: #009a5a;
        overflow: hidden;
    }
    .contact-mobile-title-area {
        position: absolute;
        left: 0;
        bottom: 0;
        display: flex;
        align-items: flex-end;
        justify-content: center;
        width: 100%;
    }
    .contact-mobile-title-text {
        width: 47.5vw;
        color: #fff;
        font-weight: bold;
    }
    .contact-mobile-title-text h2 {
        font-size: 8vw;
    }
    .contact-mobile-title-text h4 {
        margin: 3vw 0;
        font-size: 4vw;
    }
    .contact-mobile-title-text p {
        margin-bottom: 5vw;
        line-height: 1.5;
        font-size: 3vw;
    }
    .contact-mobile-title-area img {
        width: 50vw;
    }
    .contact-text-space {
        position: absolute;
        top: 10vw;
        right: 2.5vw;
        transform: translateY(0);
    }
    .contact-text-wrap {
        padding: 0.5vw;
        width: 95vw;
        background-color: #fff;
        border-radius: 30px;
    }
    .contact-text-area {
        position: relative;
        display: flex;
        width: 100%;
        border: solid 2px #333;
        border-radius: 30px;
    }
    .contact-btn-area {
        text-align: center;
        margin: 5vw 0;
        width: 47vw;
    }
    .contact-btn-area h3 {
        margin-bottom: 5vw;
        font-size: 4vw;
    }
    .contact-btn-area h5 {
        margin-bottom: 5vw;
        font-size: 4vw;
    }
    .contact-btn img {
        width: 30vw;
    }
    .contact-mail-tel-btn {
        display: flex;
        justify-content: center;
        flex-direction: column;
    }
    .contact-mail-tel-btn a:first-child {
        margin-bottom: 5vw;
        margin-right: 0;
    }
    .contact-mail-tel-btn img {
        width: 30vw;
    }
    #line {
        width: 2px;
        height: 25vw;
    }
    #inquiry-note {
        display: none;
    }
 }
/* ----------------------------------------------------
sponsor-area
---------------------------------------------------- */
.sponsor-area {
    position: fixed;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: end;
    width: 100%;
}
.sponsor-area {
    transition: transform .25s ease, opacity .25s ease;
}
.sponsor-area.is-hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateY(100%);
}
.sponsor-img-area {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-right: 0.5vw;
    padding-top: 0.3%;
    padding-right: 0.3%;
    width: 79.5vw;
    background-color: #009a5a;
    border-radius: 15px 15px 0 0;
}
.sponsor-img-area h3 {
    margin: 0 1vw;
    font-size: 1.5vw;
    font-weight: bold;
    color: #fff;
}
.suponsor-school-area img {
    width: 20vw;
}
.sponsor-scroll-area {
    position: relative;
    overflow: hidden;
    padding: 0.5%;
    width: 65vw;
    background-color: #d4f4d7;
    border-radius: 0 15px 0 0;
}
.sponsor-scroll-area .sponsor-track {
    display: flex;
    align-items: center;
    gap: 1.2vw;
    will-change: transform;
}
.sponsor-scroll-area img {
    height: 5vw;
    width: auto;
    flex: 0 0 auto;
    object-fit: contain;
}
@media screen and (max-width: 767px) {
  .sponsor-area {
        position: fixed;
        bottom: 0;
        left: 0;
        display: flex;
        align-items: end;
        width: 100%;
    }
    .sponsor-area {
        transition: transform .25s ease, opacity .25s ease;
    }
    .sponsor-area.is-hidden {
        opacity: 0;
        pointer-events: none;
        transform: translateY(100%);
    }

    .sponsor-img-area {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-right: 0.5vw;
        padding-top: 1%;
        padding-right: 1%;
        width: 100%;
        background-color: #009a5a;
        border-radius: 0 15px 0 0;
    }
    .sponsor-img-area h3 {
        display: none;
    }
    .suponsor-school-area img {
        width: 35vw;
    }
    .sponsor-scroll-area {
        position: relative;
        overflow: hidden;
        padding: 0.5%;
        width: 64.5vw;
        background-color: #d4f4d7;
        border-radius: 0 15px 0 0;
    }
    .sponsor-scroll-area .sponsor-track {
        display: flex;
        align-items: center;
        gap: 1.2vw;
        will-change: transform;
    }
    .sponsor-scroll-area img {
        height: 13vw;
        width: auto;
        flex: 0 0 auto;
        object-fit: contain;
    }  
}
/* ----------------------------------------------------
footer
---------------------------------------------------- */
footer {
    margin: 5vw auto;
    width: 70vw;
    font-weight: bold;
    color: #333;
}
.footer-upper-area {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
#footer-logo-img {
    width: 25vw;
}
.footer-upper-area h2 {
    font-size: 2vw;
    font-weight: bold;
}
.footer-bottom-area {
    display: flex;
    justify-content: space-around;
    margin-top: 5vw;
    font-size: 1.2vw;
}
.footer-bottom-area ul li {
    margin-bottom: 3vw;
    display: flex;
    align-items: center;
}
.footer-bottom-area ul li:last-child {
    margin-bottom: 0;
}
.footer-box {
    display: block;
    margin-right: 1vw;
    width: 1.2vw;
    height: 1.2vw;
    background-color: #009a5a;
}
.footer-box02 {
    display: block;
    margin-right: 1vw;
    width: 1.2vw;
    height: 1.2vw;
    background-color: #00000000;
}
.color-none {
    margin-bottom: 1.5vw !important;
    font-size: 1vw;
    color: #666666;
}
.copyright-area {
    width: 100%;
    font-size: 1.2vw;
    font-weight: bold;
    color: #fff;
    background-color: #009a5a;
}
.copyright-area ul {
    display: flex;
    justify-content: right;
}
.copyright-area ul li {
    padding: 1% 2%;
}
#copyright {
    background-color: #fb5415 !important;
}
@media screen and (max-width: 767px) {
    footer {
        margin: 15vw auto 7vw;
        width: 95vw;
    }
    .footer-upper-area {
        display: flex;
        flex-direction: column;
        align-items: start;
        justify-content: start;
    }
    #footer-logo-img {
        margin-bottom: 10vw;
        width: 60vw;
    }
    .footer-upper-area h2 {
        font-size: 5vw;
        font-weight: bold;
    }
    .footer-bottom-area {
        display: flex;
        flex-direction: column;
        justify-content: start;
        margin-top: 10vw;
        font-size: 3.5vw;
    }
    .footer-bottom-area ul li {
        margin-bottom: 8vw;
        display: flex;
        align-items: center;
    }
    .footer-bottom-area ul li:last-child {
        margin-bottom: 8vw;
    }
    .footer-box {
        display: block;
        margin-right: 3.5vw;
        width: 4vw;
        height: 4vw;
        background-color: #009a5a;
    }
    .footer-box02 {
        display: block;
        margin-right: 3.5vw;
        width: 4vw;
        height: 4vw;
        background-color: #00000000;
    }
    .color-none {
        margin-bottom: 5vw !important;
        font-size: 3.5vw;
        color: #666666;
    }
    .copyright-area {
        width: 100%;
        font-size: 3.5vw;
        font-weight: bold;
        color: #fff;
        background-color: #009a5a;
    }
    .copyright-area ul {
        display: flex;
        justify-content: right;
    }
    .copyright-area ul li {
        padding: 2% 3%;
    }
    #copyright {
        display: none;
        background-color: #fb5415 !important;
    }
    .copyright-area p {
        padding: 1% 0;
        width: 100%;
        text-align: center;
        font-size: 3vw;
        color: #fff;
        background-color: #fb5415;
    }
}



/* =========================================================
 * Entrance Animations (non-intrusive)
 * =======================================================*/
:root {
  --anim-up: 24px;
  --anim-dur: .8s;
  --anim-ease: cubic-bezier(.2,.6,.2,1);
  --anim-stagger: 80ms;
}

/* 基本：下からふわっと */
.anim-prep {
  opacity: 0;
  transform: translateY(var(--anim-up));
  transition:
    opacity var(--anim-dur) ease,
    transform var(--anim-dur) var(--anim-ease);
  will-change: opacity, transform;
}
.anim-prep.is-inview {
  opacity: 1;
  transform: none;
}

/* 右→左にスライドイン */
.anim-slide-left-prep {
  opacity: 0;
  transform: translateX(32px);
  transition:
    opacity var(--anim-dur) ease,
    transform var(--anim-dur) var(--anim-ease);
  will-change: opacity, transform;
}
.anim-slide-left-prep.is-inview {
  opacity: 1;
  transform: none;
}

/* 左→右にスライドイン */
.anim-slide-right-prep {
  opacity: 0;
  transform: translateX(-32px);
  transition:
    opacity var(--anim-dur) ease,
    transform var(--anim-dur) var(--anim-ease);
  will-change: opacity, transform;
}
.anim-slide-right-prep.is-inview {
  opacity: 1;
  transform: none;
}

/* うっすらズームアップで登場 */
.anim-zoom-prep {
  opacity: 0;
  transform: scale(.96);
  transition:
    opacity var(--anim-dur) ease,
    transform var(--anim-dur) var(--anim-ease),
    filter var(--anim-dur) ease;
  filter: saturate(.9);
  will-change: opacity, transform, filter;
}
.anim-zoom-prep.is-inview {
  opacity: 1;
  transform: none;
  filter: saturate(1);
}

/* スタッガー（JSが --delay をインライン指定） */
.anim-prep,
.anim-slide-left-prep,
.anim-slide-right-prep,
.anim-zoom-prep {
  transition-delay: var(--delay, 0ms);
}

/* 軽いホバー演出（ボタン画像やカード） */
.news-wrap .news-text:hover,
.tournament-img-card-area:hover,
.photo-btn-area a:hover,
.overview-btn-area a:hover {
  transform: translateY(-5px);
  transition: transform .25s ease, filter .25s ease;
  filter: brightness(1.03);
}

/* トーナメントロゴをほんの少しだけフロート */
@keyframes soft-float {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-6px); }
  100% { transform: translateY(0); }
}
#tournament-logo-img {
  animation: soft-float 6s ease-in-out infinite;
  transform-origin: 50% 50%;
}

/* スポンサー帯のロゴをゆるくフェードイン（行儀良く） */
.sponsor-scroll-area .sponsor-track img {
  opacity: .0;
  transform: translateY(8px);
  transition: opacity .6s ease, transform .6s var(--anim-ease);
}
.sponsor-scroll-area.is-inview .sponsor-track img {
  opacity: 1;
  transform: none;
}
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(1)  { transition-delay: 0ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(2)  { transition-delay: 50ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(3)  { transition-delay: 100ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(4)  { transition-delay: 150ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(5)  { transition-delay: 200ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(6)  { transition-delay: 250ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(7)  { transition-delay: 300ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(8)  { transition-delay: 350ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(9)  { transition-delay: 400ms; }
.sponsor-scroll-area.is-inview .sponsor-track img:nth-child(10) { transition-delay: 450ms; }

/* 低動作設定への配慮 */
@media (prefers-reduced-motion: reduce) {
  #tournament-logo-img { animation: none !important; }
  .anim-prep,
  .anim-slide-left-prep,
  .anim-slide-right-prep,
  .anim-zoom-prep {
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
}

/* 画像を拡大させる */
.school-wrap-btn-area a img,
.photo-btn-area a img {
  transition: transform .25s ease, filter .25s ease;
  transform-origin: center center;
}

/* ホバー時に少しだけ大きく（+明るさはそのまま活かします） */
.school-wrap-btn-area a:hover img,
.photo-btn-area a:hover img {
  transform: scale(1.06);
  /* お好みで明るさを弱める/外すなら下行を調整 or 削除 */
  filter: brightness(1.03);
}

