/*
Theme Name:   光和電業 Child
Description:  光和電業株式会社 公式サイト用チャイルドテーマ
Template:     hello-elementor
Version:      1.0
Author:       Kouwa Dengyo
*/

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@300;400;600&family=Noto+Sans+JP:wght@300;400;500;700;900&family=Noto+Serif+JP:wght@700;900&display=swap');

/* ═══════════════════════════════════════════════════════════
   カラー変数（ここを変えると全体に反映されます）
═══════════════════════════════════════════════════════════ */
:root {
  --kd-void:   #030608;
  --kd-amber:  #FFB300;
  --kd-gold:   #FFD740;
  --kd-fire:   #FF6D00;
  --kd-ember:  #FF8F00;
  --kd-cyan:   #00E5FF;
  --kd-ice:    #80DEEA;
  --kd-plasma: #00BCD4;
  --kd-white:  #FFFFFF;
  --kd-w90:    rgba(255,255,255,.90);
  --kd-w60:    rgba(255,255,255,.60);
  --kd-w30:    rgba(255,255,255,.30);
  --font-en:     'Bebas Neue', sans-serif;
  --font-en-sub: 'Oswald', sans-serif;
  --font-serif:  'Noto Serif JP', serif;
  --font-sans:   'Noto Sans JP', sans-serif;
  --expo: cubic-bezier(0.19,1,0.22,1);
  --back: cubic-bezier(0.34,1.56,0.64,1);
  --gutter: clamp(20px,4vw,56px);
  --max-w: 1280px;
}

/* ═══════════════════════════════════════════════════════════
   リセット
═══════════════════════════════════════════════════════════ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; scroll-behavior:smooth; }
body {
  font-family: var(--font-sans);
  background: var(--kd-void);
  color: var(--kd-white);
  overflow-x: hidden;
  cursor: none;
  -webkit-font-smoothing: antialiased;
  line-height: 1.75;
}
body.is-touch { cursor: auto; }
img,video { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }

/* ═══════════════════════════════════════════════════════════
   プラズマ背景キャンバス
═══════════════════════════════════════════════════════════ */
#plasma-canvas {
  position: fixed; inset: 0;
  width: 100%; height: 100%;
  z-index: 0; pointer-events: none;
}

#kd-grain {
  position: fixed; inset: 0; z-index: 1;
  pointer-events: none; opacity: .028;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px;
  animation: grain .1s steps(1) infinite;
}
@keyframes grain {
  0%  { transform:translate(0,0); }    25% { transform:translate(-3px,2px); }
  50% { transform:translate(2px,-2px); } 75% { transform:translate(-1px,3px); }
}

/* コンテンツはキャンバスの上に */
#site-wrapper,
.elementor-section, .e-con,
header, main, footer,
.elementor-location-header,
.elementor-location-footer { position:relative; z-index:2; }

/* ═══════════════════════════════════════════════════════════
   ローダー
═══════════════════════════════════════════════════════════ */
#kd-loader {
  position:fixed; inset:0; z-index:10000;
  background:var(--kd-void);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  transition: opacity 1s var(--expo), visibility 1s;
}
#kd-loader.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }
.kd-loader-logo {
  height:60px; filter:brightness(0) invert(1) drop-shadow(0 0 20px rgba(255,179,0,.6));
  animation: loaderPulse 1.5s ease-in-out infinite;
}
@keyframes loaderPulse {
  0%,100% { transform:scale(1);    filter:brightness(0) invert(1) drop-shadow(0 0 20px rgba(255,179,0,.55)); }
  50%     { transform:scale(1.07); filter:brightness(0) invert(1) drop-shadow(0 0 36px rgba(0,229,255,.70)); }
}
.kd-loader-bar-wrap { width:190px; height:1.5px; background:rgba(255,255,255,.07); border-radius:99px; overflow:hidden; }
.kd-loader-bar { height:100%; width:0%; background:linear-gradient(90deg,var(--kd-fire),var(--kd-amber),var(--kd-gold),var(--kd-cyan)); transition:width .08s linear; box-shadow:0 0 10px var(--kd-amber); }
.kd-loader-pct { font-family:var(--font-en-sub); font-size:11px; letter-spacing:.28em; color:var(--kd-w60); }

/* ═══════════════════════════════════════════════════════════
   カーソル（電気スパーク）
═══════════════════════════════════════════════════════════ */
#kd-cursor { position:fixed; top:0; left:0; pointer-events:none; z-index:9999; }
.kd-cur-dot {
  position:absolute; width:5px; height:5px; background:var(--kd-gold);
  border-radius:50%; transform:translate(-50%,-50%);
  box-shadow:0 0 7px 2px var(--kd-amber),0 0 18px 4px rgba(255,179,0,.3);
  transition:width .13s var(--back),height .13s var(--back),background .2s;
}
.kd-cur-ring {
  position:absolute; width:30px; height:30px;
  border:1.5px solid rgba(255,215,64,.42); border-radius:50%;
  transform:translate(-50%,-50%);
  transition:width .38s var(--expo),height .38s var(--expo),border-color .3s;
}
.kd-spark { position:fixed; border-radius:50%; pointer-events:none; z-index:9998; animation:spkFade .5s forwards; }
@keyframes spkFade { 0%{opacity:.9;transform:translate(-50%,-50%) scale(1)} 100%{opacity:0;transform:translate(-50%,-50%) scale(0)} }
body.kd-hovering .kd-cur-dot { width:11px; height:11px; background:var(--kd-cyan); box-shadow:0 0 12px 4px var(--kd-plasma),0 0 28px 8px rgba(0,229,255,.22); }
body.kd-hovering .kd-cur-ring { width:48px; height:48px; border-color:var(--kd-cyan); }

/* ═══════════════════════════════════════════════════════════
   ヘッダー
═══════════════════════════════════════════════════════════ */
.site-header,
.elementor-location-header {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  transition:background .6s var(--expo), backdrop-filter .6s, box-shadow .6s;
}
.site-header.kd-scrolled,
.elementor-location-header.kd-scrolled {
  background:rgba(3,6,8,.86);
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  box-shadow:0 1px 0 rgba(255,255,255,.04),0 4px 28px rgba(0,0,0,.5);
}
.kd-header-inner {
  display:flex; align-items:center; justify-content:space-between;
  height:68px; padding:0 var(--gutter);
  max-width:var(--max-w); margin:0 auto;
}
.kd-logo { display:flex; align-items:center; gap:10px; transition:transform .3s var(--back); }
.kd-logo img { height:36px; filter:brightness(0) invert(1); transition:filter .3s; }
.kd-logo:hover { transform:scale(1.04); }
.kd-logo:hover img { filter:brightness(0) invert(1) drop-shadow(0 0 10px rgba(255,215,64,.65)); }
.kd-logo-name { font-size:12px; font-weight:400; letter-spacing:.1em; color:var(--kd-w60); }

.kd-nav { display:flex; align-items:center; gap:30px; list-style:none; }
.kd-nav a { font-size:12px; letter-spacing:.1em; color:var(--kd-w60); position:relative; padding-bottom:3px; transition:color .25s; }
.kd-nav a::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:linear-gradient(90deg,var(--kd-amber),var(--kd-cyan)); transition:width .4s var(--expo); }
.kd-nav a:hover { color:var(--kd-white); }
.kd-nav a:hover::after { width:100%; }
.kd-nav-cta { display:inline-flex; align-items:center; gap:7px; padding:7px 18px; border:1px solid rgba(255,179,0,.45); color:var(--kd-amber); font-size:12px; letter-spacing:.08em; border-radius:2px; transition:background .3s,color .3s,box-shadow .3s,transform .3s var(--back); }
.kd-nav-cta:hover { background:rgba(255,179,0,.1); color:var(--kd-gold); box-shadow:0 0 18px rgba(255,179,0,.18); transform:translateY(-2px); }

.kd-ham { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:none; padding:8px; }
.kd-ham span { display:block; width:22px; height:1px; background:var(--kd-w90); transition:transform .42s var(--expo),opacity .3s; transform-origin:center; }
.kd-ham.is-open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.kd-ham.is-open span:nth-child(2) { opacity:0; }
.kd-ham.is-open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

.kd-mobile-nav {
  position:fixed; inset:0; background:rgba(3,6,8,.96);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  z-index:999; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  opacity:0; visibility:hidden; transition:opacity .5s var(--expo),visibility .5s;
}
.kd-mobile-nav.is-open { opacity:1; visibility:visible; }
.kd-mobile-nav a { font-family:var(--font-serif); font-size:clamp(22px,5vw,34px); font-weight:700; letter-spacing:.12em; color:var(--kd-w60); padding:10px 0; opacity:0; transform:translateY(16px); transition:opacity .5s var(--expo),transform .5s var(--expo),color .25s; }
.kd-mobile-nav.is-open a { opacity:1; transform:none; }
.kd-mobile-nav.is-open a:nth-child(1){transition-delay:.08s} .kd-mobile-nav.is-open a:nth-child(2){transition-delay:.14s}
.kd-mobile-nav.is-open a:nth-child(3){transition-delay:.20s} .kd-mobile-nav.is-open a:nth-child(4){transition-delay:.26s}
.kd-mobile-nav.is-open a:nth-child(5){transition-delay:.32s} .kd-mobile-nav.is-open a:nth-child(6){transition-delay:.38s}
.kd-mobile-nav a:hover { color:var(--kd-amber); }

/* ═══════════════════════════════════════════════════════════
   ヒーロー
═══════════════════════════════════════════════════════════ */
.kd-hero {
  position:relative; width:100%; height:100svh; min-height:620px;
  display:flex; align-items:center; overflow:hidden;
}
.kd-hero-video-wrap { position:absolute; inset:0; overflow:hidden; }
.kd-hero-video-wrap video { width:100%; height:100%; object-fit:cover; filter:saturate(.65) brightness(.55); }
.kd-hero-film {
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(ellipse 60% 55% at 16% 40%, rgba(255,130,0,.36) 0%, rgba(255,179,0,.15) 42%, transparent 70%),
    radial-gradient(ellipse 38% 35% at 80% 55%, rgba(0,188,212,.16) 0%, transparent 62%),
    linear-gradient(180deg,rgba(3,6,8,.52) 0%,rgba(3,6,8,.08) 28%,rgba(3,6,8,.28) 65%,rgba(3,6,8,.86) 100%);
  animation:heroFilm 8s ease-in-out infinite alternate;
}
@keyframes heroFilm { 0%,100%{opacity:1} 50%{opacity:.78} }

.kd-hero-content {
  position:relative; z-index:2;
  padding:0 var(--gutter); max-width:var(--max-w); margin:0 auto; width:100%;
  padding-top:70px;
}
.kd-hero-eyebrow {
  font-family:var(--font-en-sub); font-size:11px; letter-spacing:.35em; color:rgba(255,179,0,.65);
  margin-bottom:18px; display:flex; align-items:center; gap:12px;
  opacity:0; animation:fadeUp .8s var(--expo) .5s forwards;
}
.kd-hero-eyebrow::before { content:''; display:block; width:30px; height:1px; background:rgba(255,179,0,.45); }
.kd-hero-copy { font-family:var(--font-serif); font-size:clamp(50px,8.5vw,108px); font-weight:900; line-height:1.15; letter-spacing:-.02em; }
.kd-hero-copy .line { display:block; overflow:hidden; }
.kd-hero-copy .line-in { display:block; transform:translateY(110%); animation:lineUp 1.1s var(--expo) forwards; opacity:0; }
.kd-hero-copy .line:nth-child(1) .line-in { animation-delay:.62s; }
.kd-hero-copy .line:nth-child(2) .line-in { animation-delay:.80s; }
@keyframes lineUp { to{transform:translateY(0);opacity:1} }
.c-gold { color:var(--kd-gold); }
.c-ice  { color:var(--kd-ice); }

.kd-hero-sub { margin-top:20px; font-size:clamp(12px,1.3vw,14px); letter-spacing:.08em; color:var(--kd-w60); max-width:460px; opacity:0; animation:fadeUp .9s var(--expo) 1.3s forwards; }
.kd-hero-btns { margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; opacity:0; animation:fadeUp .9s var(--expo) 1.55s forwards; }

.kd-scroll-indicator { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:7px; opacity:0; animation:fadeIn .8s 2.3s forwards; }
.kd-scroll-indicator span { font-family:var(--font-en-sub); font-size:9px; letter-spacing:.32em; color:var(--kd-w60); }
.kd-scroll-line { width:1px; height:48px; background:linear-gradient(to bottom,rgba(255,255,255,.48),transparent); animation:scrollDrop 2.2s ease-in-out infinite; transform-origin:top; }
@keyframes scrollDrop { 0%{transform:scaleY(0);transform-origin:top;opacity:1} 48%{transform:scaleY(1);transform-origin:top;opacity:1} 50%{transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom;opacity:0} }

/* ═══════════════════════════════════════════════════════════
   ティッカー
═══════════════════════════════════════════════════════════ */
.kd-ticker { overflow:hidden; padding:11px 0; background:rgba(255,255,255,.016); border-top:1px solid rgba(255,255,255,.045); border-bottom:1px solid rgba(255,255,255,.045); position:relative; z-index:2; }
.kd-ticker-track { display:flex; white-space:nowrap; animation:tickerRun 24s linear infinite; }
.kd-ticker-item { font-family:var(--font-en); font-size:clamp(15px,2.2vw,24px); letter-spacing:.16em; padding:0 42px; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.14); transition:color .3s,-webkit-text-stroke .3s; }
.kd-ticker-item.kd-gold { -webkit-text-stroke:1px rgba(255,179,0,.38); }
.kd-ticker-item.kd-cyan { -webkit-text-stroke:1px rgba(0,188,212,.38); }
.kd-ticker-item:hover { color:var(--kd-amber); -webkit-text-stroke:1px var(--kd-amber); }
@keyframes tickerRun { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ═══════════════════════════════════════════════════════════
   セクション共通
═══════════════════════════════════════════════════════════ */
.kd-section { padding:clamp(80px,10vw,136px) var(--gutter); position:relative; z-index:2; }
.kd-wrap { max-width:var(--max-w); margin:0 auto; }

.kd-section-label { margin-bottom:50px; }
.kd-label-en { font-family:var(--font-en); font-size:clamp(44px,5.5vw,80px); line-height:1; letter-spacing:.04em; background:linear-gradient(120deg,var(--kd-amber) 0%,var(--kd-gold) 45%,var(--kd-ember) 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.kd-label-jp { font-size:12px; letter-spacing:.22em; color:var(--kd-w60); font-weight:300; margin-top:2px; }
.kd-label-line { display:block; width:38px; height:1.5px; background:linear-gradient(90deg,var(--kd-amber),var(--kd-cyan)); margin-top:9px; transform-origin:left; transform:scaleX(0); transition:transform .85s var(--expo) .25s; }
.kd-label-line.is-visible { transform:scaleX(1); }

/* ═══════════════════════════════════════════════════════════
   グリッド
═══════════════════════════════════════════════════════════ */
.kd-split { display:grid; grid-template-columns:1fr 1fr; gap:68px; align-items:center; }
.kd-split--reverse { direction:rtl; }
.kd-split--reverse > * { direction:ltr; }
.kd-intro-grid { display:grid; grid-template-columns:1fr 300px; gap:76px; align-items:center; }

/* ═══════════════════════════════════════════════════════════
   写真フレーム
═══════════════════════════════════════════════════════════ */
.kd-frame { position:relative; overflow:hidden; border-radius:2px; }
.kd-frame img { width:100%; height:100%; object-fit:cover; transition:transform 1.5s var(--expo); }
.kd-frame:hover img { transform:scale(1.05); }
.kd-frame::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,130,0,.06),rgba(0,100,150,.05)); pointer-events:none; }

/* ═══════════════════════════════════════════════════════════
   45周年バッジ
═══════════════════════════════════════════════════════════ */
.kd-badge { width:clamp(200px,22vw,270px); display:block; margin:0 auto; filter:drop-shadow(0 0 22px rgba(255,179,0,.52)) drop-shadow(0 0 55px rgba(255,140,0,.22)) drop-shadow(0 2px 8px rgba(0,0,0,.55)); animation:badgeSpin 22s linear infinite; }
.kd-badge:hover { animation-play-state:paused; }
@keyframes badgeSpin { 0%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(180deg) scale(1.04)} 100%{transform:rotate(360deg) scale(1)} }

/* ═══════════════════════════════════════════════════════════
   ニュースカード
═══════════════════════════════════════════════════════════ */
.kd-news-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.045); }
.kd-news-card { background:rgba(7,13,20,.82); padding:26px; position:relative; overflow:hidden; transition:background .3s,transform .4s var(--expo); display:block; }
.kd-news-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1.5px; background:linear-gradient(90deg,var(--kd-amber),var(--kd-cyan)); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--expo); }
.kd-news-card:hover { background:rgba(255,255,255,.038); transform:translateY(-4px); }
.kd-news-card:hover::after { transform:scaleX(1); }
.kd-news-thumb { width:100%; height:150px; object-fit:cover; border-radius:1px; margin-bottom:15px; }
.kd-news-meta { display:flex; align-items:center; gap:9px; font-size:11px; letter-spacing:.14em; color:var(--kd-w60); margin-bottom:8px; }
.kd-news-cat { padding:2px 8px; font-size:10px; letter-spacing:.1em; background:rgba(255,179,0,.11); color:var(--kd-amber); border:1px solid rgba(255,179,0,.24); border-radius:2px; }
.kd-news-title { font-size:15px; font-weight:500; line-height:1.6; color:var(--kd-w90); }

/* ═══════════════════════════════════════════════════════════
   採用 背景大文字
═══════════════════════════════════════════════════════════ */
.kd-recruit-bg { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-family:var(--font-en); font-size:clamp(90px,18vw,235px); color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.038); white-space:nowrap; pointer-events:none; letter-spacing:-.02em; animation:recruitDrift 18s ease-in-out infinite alternate; }
@keyframes recruitDrift { 0%{transform:translate(-50%,-50%) translateX(-1.5%)} 100%{transform:translate(-50%,-50%) translateX(1.5%)} }

/* ═══════════════════════════════════════════════════════════
   ボタン
═══════════════════════════════════════════════════════════ */
.kd-btn { display:inline-flex; align-items:center; gap:9px; padding:13px 28px; font-family:var(--font-sans); font-size:13px; font-weight:700; letter-spacing:.12em; border-radius:2px; position:relative; overflow:hidden; transition:transform .35s var(--back),box-shadow .35s; }
.kd-btn::before { content:''; position:absolute; inset:0; background:rgba(255,255,255,.12); transform:translateX(-112%) skewX(-15deg); transition:transform .55s var(--expo); }
.kd-btn:hover::before { transform:translateX(112%) skewX(-15deg); }
.kd-btn:hover { transform:translateY(-3px); }
.kd-btn--fire { background:linear-gradient(120deg,var(--kd-fire) 0%,var(--kd-amber) 50%,var(--kd-gold) 100%); color:#0A0600; box-shadow:0 4px 18px rgba(255,140,0,.26); }
.kd-btn--fire:hover { box-shadow:0 8px 34px rgba(255,179,0,.48); }
.kd-btn--ghost { border:1px solid rgba(255,255,255,.2); color:var(--kd-w90); }
.kd-btn--ghost:hover { border-color:rgba(255,179,0,.45); color:var(--kd-amber); box-shadow:0 0 22px rgba(255,179,0,.1); }
.kd-btn-arr { display:inline-block; width:15px; height:15px; border:1px solid currentColor; border-radius:50%; position:relative; flex-shrink:0; transition:transform .3s var(--back); }
.kd-btn:hover .kd-btn-arr { transform:translateX(5px); }
.kd-btn-arr::after { content:''; position:absolute; top:50%; left:52%; transform:translate(-50%,-50%) rotate(-45deg); width:4px; height:4px; border-top:1px solid currentColor; border-right:1px solid currentColor; }

/* ═══════════════════════════════════════════════════════════
   電話番号
═══════════════════════════════════════════════════════════ */
.kd-tel { font-family:var(--font-en); font-size:clamp(30px,4.5vw,54px); letter-spacing:.05em; transition:color .3s; display:inline-block; }
.kd-tel:hover { color:var(--kd-amber); }

/* ═══════════════════════════════════════════════════════════
   フッター
═══════════════════════════════════════════════════════════ */
.kd-footer { background:rgba(3,6,8,.95); border-top:1px solid rgba(255,255,255,.045); padding:54px var(--gutter) 26px; position:relative; z-index:2; }
.kd-footer-grid { max-width:var(--max-w); margin:0 auto; display:grid; grid-template-columns:210px 1fr 1fr; gap:56px; padding-bottom:38px; border-bottom:1px solid rgba(255,255,255,.045); }
.kd-footer-logo img { height:38px; opacity:.72; filter:brightness(0) invert(1); transition:opacity .3s; }
.kd-footer-logo:hover img { opacity:1; }
.kd-footer-addr { font-size:12px; color:var(--kd-w60); line-height:1.8; margin-top:9px; }
.kd-footer-col-title { font-size:10px; letter-spacing:.22em; color:var(--kd-w60); font-weight:300; margin-bottom:13px; }
.kd-footer-list { list-style:none; display:flex; flex-direction:column; gap:8px; }
.kd-footer-list a { font-size:13px; color:var(--kd-w60); display:flex; align-items:center; gap:6px; transition:color .25s; }
.kd-footer-list a::before { content:'—'; font-size:9px; color:rgba(255,179,0,.45); }
.kd-footer-list a:hover { color:var(--kd-white); }
.kd-footer-copy { max-width:var(--max-w); margin:18px auto 0; font-size:11px; letter-spacing:.1em; color:var(--kd-w60); display:flex; justify-content:space-between; align-items:center; }

/* ═══════════════════════════════════════════════════════════
   スクロールアニメーション
═══════════════════════════════════════════════════════════ */
[data-reveal] { opacity:0; transition:opacity 1.1s var(--expo),transform 1.1s var(--expo); }
[data-reveal="up"]    { transform:translateY(42px); }
[data-reveal="left"]  { transform:translateX(-38px); }
[data-reveal="right"] { transform:translateX(38px); }
[data-reveal="scale"] { transform:scale(.92); }
[data-reveal].is-visible { opacity:1; transform:none; }
[data-stagger] > * { opacity:0; transform:translateY(22px); transition:opacity .8s var(--expo),transform .8s var(--expo); }
[data-stagger].is-visible > *:nth-child(1){opacity:1;transform:none;transition-delay:0s}
[data-stagger].is-visible > *:nth-child(2){opacity:1;transform:none;transition-delay:.1s}
[data-stagger].is-visible > *:nth-child(3){opacity:1;transform:none;transition-delay:.2s}
[data-stagger].is-visible > *:nth-child(4){opacity:1;transform:none;transition-delay:.3s}
[data-stagger].is-visible > *:nth-child(5){opacity:1;transform:none;transition-delay:.4s}
[data-stagger].is-visible > *:nth-child(6){opacity:1;transform:none;transition-delay:.5s}

@keyframes fadeUp { from{opacity:0;transform:translateY(15px)} to{opacity:1;transform:none} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* ═══════════════════════════════════════════════════════════
   レスポンシブ
═══════════════════════════════════════════════════════════ */
@media (max-width:1024px) {
  .kd-split,.kd-intro-grid { grid-template-columns:1fr; gap:40px; }
  .kd-split--reverse { direction:ltr; }
  .kd-badge { margin:0 auto; }
  .kd-footer-grid { grid-template-columns:1fr 1fr; gap:36px; }
  .kd-footer-grid > *:first-child { grid-column:1/-1; }
}
@media (max-width:768px) {
  body { cursor:auto; }
  #kd-cursor { display:none; }
  .kd-nav { display:none; }
  .kd-ham { display:flex; }
  .kd-news-grid { grid-template-columns:1fr; }
  .kd-footer-grid { grid-template-columns:1fr; gap:24px; }
  .kd-footer-copy { flex-direction:column; gap:6px; }
}
@media (max-width:480px) {
  :root { --gutter:18px; }
}
