/* ============================================================
   WOW Effects — Frontend CSS
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&display=swap');

/* ── メニューバー（サイトのナビゲーション）— ロゴカラー（青×緑）スタイル ──
   テーマ固有のクラス名が分からなくても確実に当たるよう、
   nav / navbar / menu 関連の要素を広めに、かつ !important で上書きする */
:root {
  --wow-brand-blue:    #1B5BA3;
  --wow-brand-blue-dk: #124480;
  --wow-brand-green:   #58B34A;
  --wow-brand-green-dk:#3F8F34;
  --wow-brand-ink:     #2D2825;
  --wow-brand-white:   #FFFFFF;
}

nav,
.navbar,
#nav-global,
.main-navigation,
.wp-block-navigation,
[class*="nav-global"],
[class*="gnav"] {
  font-family: 'Kosugi Maru', 'Hiragino Maru Gothic ProN', sans-serif !important;
}

/* メニューの帯（トップレベルの並び）— ロゴと同じ青→緑のグラデーション */
nav ul,
.navbar ul,
#nav-global ul,
.main-navigation ul,
.wp-block-navigation__container,
[class*="nav-global"] ul,
[class*="gnav"] ul {
  background: linear-gradient(135deg, var(--wow-brand-blue) 0%, var(--wow-brand-green) 100%) !important;
  border-color: var(--wow-brand-blue-dk) !important;
}

/* ドロップダウン（サブメニュー）は白系に重ねてメリハリをつける。
   表示・非表示のロジック（display/visibility）には一切触れない */
nav ul ul,
nav .sub-menu,
nav .dropdown-menu,
.wp-block-navigation__submenu-container,
[class*="nav-global"] ul ul,
[class*="gnav"] ul ul {
  background: var(--wow-brand-white) !important;
  border: 2px solid var(--wow-brand-blue) !important;
  border-radius: 18px !important;
  box-shadow: 0 8px 22px rgba(27,91,163,0.28) !important;
  padding: 8px !important;
}

/* すべてのメニュー項目（リンク／ボタン）— 白文字＋青の縁取り */
nav a,
.navbar a,
#nav-global a,
.main-navigation a,
.wp-block-navigation-item > a,
[class*="nav-global"] a,
[class*="gnav"] a {
  background: transparent !important;
  color: #fff !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: 999px !important;
  -webkit-text-stroke: 0.5px var(--wow-brand-blue-dk);
  text-stroke: 0.5px var(--wow-brand-blue-dk);
  text-shadow:
    -0.5px -0.5px 0 var(--wow-brand-blue-dk),
     0.5px -0.5px 0 var(--wow-brand-blue-dk),
    -0.5px  0.5px 0 var(--wow-brand-blue-dk),
     0.5px  0.5px 0 var(--wow-brand-blue-dk) !important;
  box-shadow: none !important;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease !important;
}

nav a:hover,
.navbar a:hover,
#nav-global a:hover,
.main-navigation a:hover,
.wp-block-navigation-item > a:hover,
[class*="nav-global"] a:hover,
[class*="gnav"] a:hover {
  background: var(--wow-brand-green-dk) !important;
  color: #fff !important;
  -webkit-text-stroke: 0;
  text-stroke: 0;
  text-shadow: none !important;
  border-radius: 999px !important;
  transform: translateY(-2px) scale(1.06);
}

/* ── 排気ガス（カーソル追従） ── */
.wow-exhaust {
  position: fixed;
  pointer-events: none;
  z-index: 99998;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(235,235,235,0.85) 0%, rgba(190,190,190,0.45) 55%, rgba(190,190,190,0) 100%);
  will-change: transform, opacity;
  animation: wowExhaustPuff ease-out forwards;
}

@keyframes wowExhaustPuff {
  0%   { transform: translate(-50%,-50%) scale(0.35); opacity: 0.75; }
  60%  { opacity: 0.45; }
  100% { transform: translate(calc(-50% + var(--sx)), calc(-50% + var(--sy))) scale(1.9); opacity: 0; }
}

/* ── クリック爆発 ── */
.wow-click-burst {
  position: fixed;
  pointer-events: none;
  z-index: 99999;
  font-size: 16px;
  line-height: 1;
  user-select: none;
  animation: wowBurst 0.9s ease-out forwards;
}

@keyframes wowBurst {
  0%   { transform: translate(-50%,-50%) scale(0.5) rotate(0deg); opacity: 1; }
  50%  { opacity: 0.9; }
  100% { transform: translate(calc(-50% + var(--bx)), calc(-50% + var(--by))) scale(0) rotate(var(--brot)); opacity: 0; }
}

/* ── スクロールアニメーション 基底 ── */
.wow-scroll-target {
  opacity: 0;
  will-change: opacity, transform;
}

/* 保険: ナビゲーションメニューやそのサブメニューには
   スクロールアニメーションの opacity を絶対に適用しない */
nav .wow-scroll-target,
.menu .wow-scroll-target,
.sub-menu.wow-scroll-target,
.sub-menu .wow-scroll-target,
#wpadminbar .wow-scroll-target {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

.wow-scroll-target.wow-animated {
  animation-duration: 0.8s;
  animation-fill-mode: both;
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* fadeInUp */
.wow-scroll-target[data-wow-effect="fadeInUp"] {
  transform: translateY(40px);
}
.wow-scroll-target[data-wow-effect="fadeInUp"].wow-animated {
  animation-name: wowFadeInUp;
}
@keyframes wowFadeInUp {
  from { opacity: 0; transform: translateY(40px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* fadeInLeft */
.wow-scroll-target[data-wow-effect="fadeInLeft"] {
  transform: translateX(-40px);
}
.wow-scroll-target[data-wow-effect="fadeInLeft"].wow-animated {
  animation-name: wowFadeInLeft;
}
@keyframes wowFadeInLeft {
  from { opacity: 0; transform: translateX(-40px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* fadeInRight */
.wow-scroll-target[data-wow-effect="fadeInRight"] {
  transform: translateX(40px);
}
.wow-scroll-target[data-wow-effect="fadeInRight"].wow-animated {
  animation-name: wowFadeInRight;
}
@keyframes wowFadeInRight {
  from { opacity: 0; transform: translateX(40px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* zoomIn */
.wow-scroll-target[data-wow-effect="zoomIn"] {
  transform: scale(0.8);
}
.wow-scroll-target[data-wow-effect="zoomIn"].wow-animated {
  animation-name: wowZoomIn;
}
@keyframes wowZoomIn {
  from { opacity: 0; transform: scale(0.8); }
  to   { opacity: 1; transform: scale(1); }
}

/* flipIn */
.wow-scroll-target[data-wow-effect="flipIn"] {
  transform: rotateX(-25deg);
  transform-origin: top center;
}
.wow-scroll-target[data-wow-effect="flipIn"].wow-animated {
  animation-name: wowFlipIn;
}
@keyframes wowFlipIn {
  from { opacity: 0; transform: rotateX(-25deg); }
  to   { opacity: 1; transform: rotateX(0); }
}

/* slideUp */
.wow-scroll-target[data-wow-effect="slideUp"] {
  transform: translateY(60px);
  clip-path: inset(0 0 100% 0);
}
.wow-scroll-target[data-wow-effect="slideUp"].wow-animated {
  animation-name: wowSlideUp;
}
@keyframes wowSlideUp {
  from { opacity: 0; transform: translateY(60px); clip-path: inset(0 0 100% 0); }
  to   { opacity: 1; transform: translateY(0);    clip-path: inset(0 0 0% 0); }
}

/* ── カスタムカーソル（車） ── */
body.wow-custom-cursor {
  cursor: none !important;
}

.wow-cursor-car {
  position: fixed !important;
  top: 0;
  left: 0;
  pointer-events: none !important;
  z-index: 2147483647 !important;
  transform: translate(-50%, -55%);
  filter: drop-shadow(1px 3px 3px rgba(0,0,0,0.35));
}

.wow-cursor-car svg {
  display: block;
  transform: scaleX(1);
  transition: transform 0.15s ease;
}

/* 左方向に進んでいるときは車体を反転して進行方向を向かせる */
.wow-cursor-car.wow-car-flip svg {
  transform: scaleX(-1);
}
