:root{
  --bl:#0033CC;
  --bl2:#0022AA;
  --yl:#F5C000;
  --bk:#080808;
  --wh:#ffffff;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{overflow-x:hidden;background:var(--bk)}
body{font-family:'Noto Sans JP',sans-serif;font-weight:300;color:var(--wh);cursor:none}

/* ══ CURSOR ══ */
#cur{position:fixed;width:8px;height:8px;background:var(--yl);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%)}
#curR{position:fixed;width:40px;height:40px;border:1px solid rgba(255,255,255,.2);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .4s,height .4s,border-color .4s}
.cur-big #curR{width:64px;height:64px;border-color:rgba(0,51,204,.6)}
@media(hover:none){#cur,#curR{display:none}body{cursor:auto}}

/* ══ NAV ══ */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:800;
  height:52px;display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(16px,4vw,40px);
}
#nav::before{content:'';position:absolute;inset:0;z-index:-1;background:rgba(8,8,8,0);border-bottom:1px solid transparent;transition:background .5s,border-color .5s,backdrop-filter .5s}
#nav.s::before{background:rgba(8,8,8,.9);border-color:rgba(255,255,255,.07);backdrop-filter:blur(20px)}
.nl{font-family:'Oswald',sans-serif;font-weight:700;font-size:15px;letter-spacing:.28em;color:#fff;text-decoration:none;position:relative;z-index:1;transition:letter-spacing .4s}
.nl:hover{letter-spacing:.4em}
.nr{display:flex;align-items:center;gap:20px;position:relative;z-index:1}
.nm{display:flex;gap:24px;list-style:none}
.nm a{font-family:'Oswald',sans-serif;font-weight:300;font-size:12px;letter-spacing:.14em;color:rgba(255,255,255,.4);text-decoration:none;transition:color .3s,letter-spacing .3s}
.nm a:hover{color:var(--yl);letter-spacing:.22em}
.nc{font-family:'Oswald',sans-serif;font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--bk);background:var(--yl);padding:9px 20px;text-decoration:none;transition:transform .25s,box-shadow .25s,background .2s}
.nc:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(245,192,0,.4)}
@media(max-width:640px){.nm{display:none}}

/* ハンバーガーボタン */
.hb{
  display:none;
  flex-direction:column;justify-content:center;align-items:center;
  gap:5px;width:36px;height:36px;
  background:none;border:none;cursor:pointer;padding:4px;
  position:relative;z-index:901;
}
.hb span{
  display:block;width:22px;height:1px;
  background:#fff;
  transition:transform .3s,opacity .3s;
  transform-origin:center;
}
.hb.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.hb.open span:nth-child(2){opacity:0}
.hb.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:640px){.hb{display:flex}}

/* SPメニュー */
.sp-nav{
  position:fixed;inset:0;
  background:rgba(8,8,8,.97);
  z-index:899;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.sp-nav.open{opacity:1;pointer-events:auto}
.sp-nav ul{list-style:none;text-align:center}
.sp-nav ul li{margin-bottom:32px}
.sp-nav ul li a{
  font-family:'Oswald',sans-serif;font-weight:300;
  font-size:clamp(24px,6vw,36px);
  letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.6);text-decoration:none;
  transition:color .2s;
}
.sp-nav ul li a:hover{color:var(--yl)}

/* ════════════════════════════════════════
   HERO
════════════════════════════════════════ */
#hero{
  position:relative;
  height:100svh;min-height:640px;
  background:var(--bk);overflow:hidden;
  display:flex;flex-direction:column;
  justify-content:flex-end;
  padding:0 clamp(20px,5vw,60px) clamp(56px,8vw,100px);
}

/* SVG幾何学レイヤー — hero内に戻す */
#geoSvg{
  position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;overflow:visible;
}

/* グリッド背景 */
.h-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(0,51,204,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,51,204,.06) 1px,transparent 1px);
  background-size:clamp(40px,7vw,80px) clamp(40px,7vw,80px);
  will-change:transform;
}

/* ヒーローテキスト */
.h-kicker{
  font-family:'Oswald',sans-serif;font-weight:200;
  font-size:clamp(9px,1.8vw,11px);letter-spacing:.6em;text-transform:uppercase;
  color:rgba(255,255,255,.3);
  display:flex;align-items:center;gap:14px;
  margin-bottom:clamp(16px,3vw,28px);
  overflow:hidden;
}
.h-kicker-in{display:block;animation:su .9s .2s cubic-bezier(.16,1,.3,1) both}
.h-kicker::before{content:'';width:20px;height:1px;background:var(--yl);flex-shrink:0;animation:expandW .6s .1s ease both}
@keyframes expandW{from{width:0}to{width:20px}}

/* メイン見出し — 1行 */
.h-title{
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(54px,13vw,170px);
  line-height:.88;letter-spacing:-.02em;
  margin-bottom:clamp(24px,4vw,48px);
  will-change:transform,opacity;
  overflow:hidden;
}
.h-row{
  display:block;overflow:hidden;
  will-change:transform,opacity;
}
.h-row-in{
  display:block;color:#fff;
  animation:su 1.1s .35s cubic-bezier(.16,1,.3,1) both;
}
.h-row .out{-webkit-text-stroke:2px rgba(255,255,255,.22);color:transparent}

.h-foot{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.1);
  padding-top:clamp(20px,3vw,36px);
  animation:fadein .8s 1.2s both;
}
.h-copy{font-size:clamp(12px,2.8vw,14px);line-height:2.2;color:rgba(255,255,255,.48);max-width:min(380px,100%);flex:1;min-width:160px}
.h-btns{display:flex;gap:10px;flex-shrink:0;flex-wrap:wrap}

@keyframes su{from{transform:translateY(105%);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes fadein{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

.btn-y{font-family:'Oswald',sans-serif;font-weight:600;font-size:clamp(11px,2.2vw,13px);letter-spacing:.2em;text-transform:uppercase;color:var(--bk);background:var(--yl);padding:13px clamp(18px,3.5vw,28px);text-decoration:none;transition:transform .25s,box-shadow .25s,background .2s;display:inline-block}
.btn-y:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(245,192,0,.4);background:#ffd333}
.btn-g{font-family:'Oswald',sans-serif;font-weight:300;font-size:clamp(11px,2.2vw,13px);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.18);padding:13px clamp(18px,3.5vw,28px);text-decoration:none;transition:color .25s,border-color .25s,transform .25s;display:inline-block}
.btn-g:hover{color:#fff;border-color:rgba(255,255,255,.5);transform:translateY(-3px)}

.h-scroll{position:absolute;right:clamp(20px,4vw,48px);bottom:clamp(24px,4vw,48px);display:flex;flex-direction:column;align-items:center;gap:6px;animation:fadein .8s 1.6s both}
@media(max-width:640px){.h-scroll{display:none}}
.h-scroll span{font-family:'Oswald',sans-serif;font-weight:200;font-size:9px;letter-spacing:.5em;text-transform:uppercase;color:rgba(255,255,255,.2);writing-mode:vertical-rl}
.h-sbar{width:1px;height:52px;background:linear-gradient(to bottom,rgba(255,255,255,.4),transparent);animation:sbar 2s ease-in-out infinite}
@keyframes sbar{0%{transform:scaleY(0);transform-origin:top}49%{transform:scaleY(1);transform-origin:top}50%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ════════════════════════════════════════
   ABOUT — ブルー巨大テキスト
════════════════════════════════════════ */
#about{
  position:relative;background:var(--bl);overflow:hidden;
  padding:clamp(80px,13vw,140px) clamp(20px,5vw,60px);
}
/* 背後の巨大文字 — スクロールで左→右 */
.ab-ghost{
  position:absolute;top:50%;
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(200px,38vw,480px);
  line-height:.8;letter-spacing:-.05em;text-transform:uppercase;
  color:rgba(255,255,255,.04);
  white-space:nowrap;pointer-events:none;z-index:0;
  will-change:transform;
}
/* 斜め切り 上辺 */
#about::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:clamp(40px,6vw,80px);
  background:var(--bk);
  clip-path:polygon(0 0,100% 0,100% 0,0 100%);
  z-index:1;pointer-events:none;
}
/* 斜め切り 下辺 */
#about::after{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:clamp(40px,6vw,80px);
  background:var(--bk);
  clip-path:polygon(0 100%,100% 0,100% 100%);
  z-index:1;pointer-events:none;
}
.ab-inner{position:relative;z-index:2}
.ab-lbl{font-family:'Oswald',sans-serif;font-weight:300;font-size:10px;letter-spacing:.6em;text-transform:uppercase;color:rgba(255,255,255,.3);display:flex;align-items:center;gap:10px;margin-bottom:28px}
.ab-lbl::before{content:'';width:14px;height:1px;background:var(--yl);flex-shrink:0}

/* マスクテキスト出現 */
.ab-h{
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(52px,12vw,130px);
  line-height:.87;letter-spacing:-.02em;text-transform:uppercase;
  color:#fff;margin-bottom:clamp(40px,7vw,72px);
}
.ab-h .mline{display:block;overflow:hidden}
.ab-h .mline-in{
  display:block;
  transform:translateY(106%);
  transition:transform .95s cubic-bezier(.16,1,.3,1);
}
.ab-h.on .mline-in{transform:translateY(0)}
.ab-h.on .mline:nth-child(2) .mline-in{transition-delay:.1s}
.ab-h.on .mline:nth-child(3) .mline-in{transition-delay:.2s}
.ab-h .yl{color:var(--yl)}
.ab-h .out{-webkit-text-stroke:2px rgba(255,255,255,.18);color:transparent}
.ab-body{display:grid;grid-template-columns:1fr;gap:20px;border-top:1px solid rgba(255,255,255,.12);padding-top:36px}
@media(min-width:900px){.ab-body{grid-template-columns:1fr 1fr;gap:60px}}
.ab-p{font-size:clamp(13px,3vw,15px);line-height:2.6;color:rgba(255,255,255,.5)}

/* ════════════════════════════════════════
   COMPANY — 黒ベース、左青ライン演出
════════════════════════════════════════ */
#company{
  position:relative;background:var(--bk);overflow:hidden;
  padding:clamp(80px,13vw,140px) clamp(20px,5vw,60px);
}
/* 左端から青い縦ラインが伸びる */
.co-lline{
  position:absolute;left:0;top:0;
  width:4px;height:0;
  background:linear-gradient(to bottom, var(--bl), var(--yl));
  z-index:2;pointer-events:none;
  transition:height 1.6s cubic-bezier(.22,1,.36,1);
}
.co-lline.in{height:100%}
/* 右端に黄色縦線（残す） */
.co-ybar{
  position:absolute;top:0;bottom:0;right:0;
  width:3px;background:var(--yl);
  z-index:2;pointer-events:none;
  transform:scaleY(0);transform-origin:top;
  transition:transform 1s .4s cubic-bezier(.16,1,.3,1);
}
.co-ybar.in{transform:scaleY(1)}
/* 右上大円 */
.co-ring{
  position:absolute;
  width:min(600px,110vw);height:min(600px,110vw);
  border:1px solid rgba(0,51,204,.12);border-radius:50%;
  top:-20%;right:-15%;
  pointer-events:none;z-index:1;will-change:transform;
}
/* 左上の小さな青ブロック装飾 */
#company::before{
  content:'';position:absolute;
  top:0;left:4px;
  width:min(40vw,320px);height:3px;
  background:linear-gradient(to right,var(--bl),transparent);
  z-index:2;pointer-events:none;
  transform:scaleX(0);transform-origin:left;
  transition:transform 1s .2s ease;
}
#company.co-on::before{transform:scaleX(1)}
.co-grid{position:relative;z-index:3;display:grid;grid-template-columns:1fr;gap:56px}
@media(min-width:900px){.co-grid{grid-template-columns:1fr 1fr;gap:80px}}

/* ラベル・見出し共通 */
.sec-lbl{font-family:'Oswald',sans-serif;font-weight:300;font-size:10px;letter-spacing:.6em;text-transform:uppercase;display:flex;align-items:center;gap:10px;margin-bottom:20px}
.sec-lbl::before{content:'';width:14px;height:1px;background:var(--yl);flex-shrink:0}
.lbl-w{color:rgba(255,255,255,.3)}
.lbl-b{color:var(--bl)}
.lbl-bk{color:rgba(255,255,255,.3)}
.sec-h{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(40px,10vw,80px);line-height:.88;letter-spacing:-.01em;text-transform:uppercase;margin-bottom:28px}
.sec-h.w{color:#fff}.sec-h.d{color:var(--bk)}
.sec-h .yel{color:var(--yl)}.sec-h .bl{color:var(--bl)}

.co-body{font-size:14px;line-height:2.4;color:rgba(255,255,255,.48);margin-bottom:28px}
.itbl{width:100%;border-collapse:collapse}
.itbl tr{border-bottom:1px solid rgba(255,255,255,.08)}
.itbl th{font-family:'Oswald',sans-serif;font-weight:200;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.26);text-align:left;padding:12px 0;width:64px;vertical-align:top}
.itbl td{font-size:13px;color:rgba(255,255,255,.55);padding:12px 0;line-height:1.9}

/* タイムライン */
.tl-lbl{font-family:'Oswald',sans-serif;font-weight:300;font-size:10px;letter-spacing:.6em;text-transform:uppercase;color:rgba(255,255,255,.3);display:flex;align-items:center;gap:10px;margin-bottom:22px}
.tl-lbl::before{content:'';width:14px;height:1px;background:var(--yl)}
.tl-wrap{position:relative}
.tl-vline{position:absolute;left:3px;top:0;width:1px;height:0;background:rgba(255,255,255,.14);transition:height 1.6s cubic-bezier(.22,1,.36,1)}
.tl-vline.on{height:100%}
.tl{padding-left:26px}
.tl-item{position:relative;padding-bottom:24px;opacity:0;transform:translateX(-20px);transition:opacity .55s,transform .55s}
.tl-item:last-child{padding-bottom:0}
.tl-item.on{opacity:1;transform:translateX(0)}
.tl-item::before{content:'';position:absolute;left:-23px;top:8px;width:7px;height:7px;background:var(--yl);border-radius:50%;transform:scale(0);transition:transform .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 12px var(--yl)}
.tl-item.on::before{transform:scale(1)}
.tl-yr{font-family:'Oswald',sans-serif;font-weight:600;font-size:13px;color:var(--yl);margin-bottom:3px}
.tl-tx{font-size:12px;color:rgba(255,255,255,.44);line-height:1.9}

/* ════════════════════════════════════════
   SERVICE — 交互出現 回転フライイン
════════════════════════════════════════ */
#service{
  position:relative;z-index:1;background:#06061e;overflow:hidden;
  padding-top:clamp(72px,12vw,120px);
  padding-bottom:clamp(72px,12vw,120px);
}
.sv-head{padding:0 clamp(20px,5vw,60px);display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:clamp(48px,7vw,72px)}
@media(min-width:900px){.sv-head{grid-template-columns:1fr 1fr;gap:60px;align-items:end}}
.sv-lead{font-size:14px;line-height:2.4;color:rgba(255,255,255,.38)}

.sv-list{display:flex;flex-direction:column}

.sv-card{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:1fr;
  min-height:clamp(160px,26vw,280px);
  border-top:1px solid rgba(255,255,255,.06);
  cursor:pointer;
  /* fly-in初期状態 */
  opacity:0;
  transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1),background .3s;
}
.sv-card:last-child{border-bottom:1px solid rgba(255,255,255,.06)}

/* 奇数: 左から */
.sv-card:nth-child(odd){transform:translateX(-60px) skewX(-3deg)}
/* 偶数: 右から */
.sv-card:nth-child(even){transform:translateX(60px) skewX(3deg)}

.sv-card.on{opacity:1;transform:translateX(0) skewX(0)}

/* 背景色交互 */
.sv-card:nth-child(odd){background:#06061e}
.sv-card:nth-child(even){background:#09091a}
.sv-card.sv-feat{background:var(--yl)!important}

/* ホバー時: 青が広がる */
.sv-card:not(.sv-feat)::after{
  content:'';position:absolute;inset:0;
  background:var(--bl);
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.23,1,.32,1);
  z-index:0;
}
.sv-card:not(.sv-feat):hover::after{transform:scaleX(1)}

.sv-inner2{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:clamp(70px,14vw,150px) 1fr;
  align-items:center;gap:0;
  padding:clamp(28px,5vw,44px) clamp(20px,5vw,56px);
}
@media(max-width:440px){.sv-inner2{grid-template-columns:56px 1fr;padding:24px 16px}}

/* 超大番号 */
.sv-no{
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(56px,12vw,130px);
  line-height:1;letter-spacing:-.04em;
  color:rgba(0,51,204,.14);
  transition:color .35s,transform .4s cubic-bezier(.23,1,.32,1);
  will-change:transform;flex-shrink:0;
}
.sv-card:nth-child(even) .sv-no{color:rgba(255,255,255,.07)}
.sv-card.sv-feat .sv-no{color:rgba(0,0,0,.1)}
.sv-card:hover .sv-no{color:rgba(255,255,255,.12);transform:scale(1.08) translateX(-4px)}

/* テキスト側 */
.sv-body2{
  padding-left:clamp(16px,4vw,44px);
  border-left:1px solid rgba(255,255,255,.08);
  transition:border-color .3s;
}
.sv-card.sv-feat .sv-body2{border-color:rgba(0,0,0,.1)}
/* 左縦線: ホバーで黄色く伸びる */
.sv-body2::before{
  content:'';position:absolute;
  left:clamp(70px,14vw,150px);top:0;
  width:3px;height:0;
  background:var(--yl);
  transition:height .55s cubic-bezier(.16,1,.3,1);
}
.sv-card.sv-feat .sv-body2::before{background:var(--bk)}
.sv-card:hover .sv-body2::before{height:100%}

.sv-en{
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(15px,3.5vw,26px);
  letter-spacing:.02em;text-transform:uppercase;
  color:#fff;margin-bottom:5px;line-height:1.1;
  transition:transform .35s cubic-bezier(.23,1,.32,1),letter-spacing .35s;
}
.sv-card.sv-feat .sv-en{color:var(--bk)}
.sv-card:hover .sv-en{transform:translateX(6px);letter-spacing:.06em}

.sv-ja{font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.35);margin-bottom:10px}
.sv-card.sv-feat .sv-ja{color:rgba(0,0,0,.45)}

.sv-desc{font-size:clamp(11px,2.5vw,13px);line-height:2;color:rgba(255,255,255,.38);max-width:560px}
.sv-card:nth-child(even) .sv-desc{color:rgba(255,255,255,.45)}
.sv-card.sv-feat .sv-desc{color:rgba(0,0,0,.55)}

/* 矢印 */
.sv-arr{
  position:absolute;right:clamp(16px,4vw,48px);top:50%;
  transform:translateY(-50%);
  font-family:'Oswald',sans-serif;font-weight:300;
  font-size:clamp(16px,2.5vw,24px);
  color:rgba(255,255,255,.18);
  transition:color .3s,transform .3s cubic-bezier(.23,1,.32,1);
  z-index:1;
}
.sv-card.sv-feat .sv-arr{color:rgba(0,0,0,.2)}
.sv-card:hover .sv-arr{color:var(--yl);transform:translateY(-50%) translateX(10px)}
.sv-card.sv-feat:hover .sv-arr{color:var(--bk)}

.sv-mgmt-link{display:inline-block;margin-top:10px;font-family:'Oswald',sans-serif;font-weight:400;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(0,0,0,.55);text-decoration:none;border-bottom:1px solid rgba(0,0,0,.25);padding-bottom:1px;transition:border-color .2s,color .2s}
.sv-mgmt-link:hover{color:var(--bk);border-color:var(--bk)}

/* ════════════════════════════════════════
   STATEMENT — 純青背景
════════════════════════════════════════ */
#stmt{
  position:relative;background:var(--bl);overflow:hidden;
  padding:clamp(80px,13vw,160px) clamp(20px,5vw,60px);
}
/* 背後の大菱形群 — Canvasで描く */
#stmtCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.sm-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center}
.sm-h{
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(52px,13vw,130px);
  line-height:.85;letter-spacing:-.02em;text-transform:uppercase;
  margin-bottom:clamp(40px,7vw,72px);
  text-align:center;
}
.sm-h .mline{display:block;overflow:hidden}
.sm-h .mline-in{
  display:block;
  transform:translateY(106%);
  transition:transform .95s cubic-bezier(.16,1,.3,1);
}
.sm-h.on .mline-in{transform:translateY(0)}
.sm-h.on .mline:nth-child(2) .mline-in{transition-delay:.1s}
.sm-h.on .mline:nth-child(3) .mline-in{transition-delay:.2s}
/* 青背景なのでアウトラインを白で */
.sm-h .c-w  {color:#fff}
.sm-h .c-bl {-webkit-text-stroke:2px rgba(255,255,255,.3);color:transparent}
.sm-h .c-yl {color:var(--yl)}
.sm-h .c-out{-webkit-text-stroke:2px rgba(255,255,255,.3);color:transparent}
.sm-body{display:block;max-width:680px;margin:0 auto;border-top:1px solid rgba(255,255,255,.18);padding-top:40px;text-align:left}
.sm-p{font-size:clamp(13px,3.5vw,15px);line-height:2.6;color:rgba(255,255,255,.62);margin-bottom:1em}
.sm-p:last-child{margin-bottom:0}

/* ════════════════════════════════════════
   NEWS — 深紺（暗め）
════════════════════════════════════════ */
#news{
  position:relative;background:#04040f;overflow:hidden;
  padding:clamp(72px,12vw,120px) clamp(20px,5vw,60px);
}
.nw-ghost{
  position:absolute;top:50%;right:-2%;
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(180px,32vw,400px);letter-spacing:-.05em;
  color:rgba(0,51,204,.1);pointer-events:none;z-index:0;will-change:transform;
}
.nw-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(28px,5vw,52px);position:relative;z-index:2;flex-wrap:wrap;gap:14px}
.nw-more{font-family:'Oswald',sans-serif;font-weight:300;font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.3);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:2px;transition:color .2s,border-color .2s}
.nw-more:hover{color:var(--yl);border-color:rgba(245,192,0,.4)}
.nw-list{border-top:1px solid rgba(255,255,255,.07);position:relative;z-index:2}
#news .sec-lbl{color:rgba(255,255,255,.3)}
#news .sec-lbl::before{background:var(--yl)}
#news .sec-h{color:#fff}
.n-row{
  display:flex;flex-direction:column;gap:7px;
  border-bottom:1px solid rgba(255,255,255,.06);
  padding:15px 0 15px 4px;text-decoration:none;color:inherit;
  position:relative;overflow:hidden;
  opacity:1;transform:translateY(0);
  transition:opacity .6s,transform .6s,background .3s;
}
/* トップページのみアニメーション（JSでrvクラスと同様に制御）*/
#news .n-row{opacity:0;transform:translateY(20px);}
#news .n-row.on{opacity:1;transform:translateY(0);}
@media(min-width:641px){.n-row{display:grid;grid-template-columns:108px 70px 1fr;align-items:center;padding:0 4px}}
.n-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:var(--bl);transition:width .4s cubic-bezier(.23,1,.32,1)}
.n-row:hover{background:rgba(0,51,204,.12)}
.n-row:hover::before{width:3px}
.n-dt{font-family:'Oswald',sans-serif;font-weight:300;font-size:11px;letter-spacing:.08em;color:rgba(255,255,255,.26)}
@media(min-width:641px){.n-dt{padding:18px 0}}
.n-ct{padding-bottom:2px}
@media(min-width:641px){.n-ct{padding:18px 0}}
.n-badge{font-family:'Oswald',sans-serif;font-weight:600;font-size:9px;letter-spacing:.22em;text-transform:uppercase;padding:3px 9px;display:inline-block}
.n-badge.bl{background:var(--bl);color:#fff}
.n-badge.yl{background:var(--yl);color:var(--bk)}
.n-badge.gr{border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.28)}
.n-ttl{font-size:13px;color:rgba(255,255,255,.48);line-height:1.9;transition:color .2s}
@media(min-width:641px){.n-ttl{padding:18px 0}}
.n-row:hover .n-ttl{color:rgba(255,255,255,.88)}

/* ════════════════════════════════════════
   CONTACT
════════════════════════════════════════ */
#contact{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr}
@media(min-width:900px){#contact{grid-template-columns:1fr 1fr}}
.ct-l{
  background:var(--bl);position:relative;overflow:hidden;
  padding:clamp(64px,10vw,120px) clamp(20px,5vw,60px);
  display:flex;flex-direction:column;justify-content:space-between;gap:40px;
}
/* 大テキスト背景 — スクロールで下へ */
.ct-ghost{
  position:absolute;bottom:-20px;left:-10px;
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(100px,20vw,220px);line-height:1;letter-spacing:-.04em;text-transform:uppercase;
  color:rgba(255,255,255,.04);pointer-events:none;will-change:transform;
}
/* 右上大円 */
.ct-ring{
  position:absolute;will-change:transform;pointer-events:none;
  width:min(480px,90vw);height:min(480px,90vw);
  border:1px solid rgba(255,255,255,.06);border-radius:50%;
  top:-25%;left:-20%;
}
.ct-lbl{font-family:'Oswald',sans-serif;font-weight:300;font-size:10px;letter-spacing:.6em;text-transform:uppercase;color:rgba(255,255,255,.28);display:flex;align-items:center;gap:10px;margin-bottom:16px}
.ct-lbl::before{content:'';width:14px;height:1px;background:var(--yl)}
.ct-h{font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(48px,12vw,96px);line-height:.88;letter-spacing:-.01em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.ct-h em{font-style:normal;color:var(--yl)}
.ct-sub{font-size:13px;line-height:2.3;color:rgba(255,255,255,.45)}
.ct-meta{border-top:1px solid rgba(255,255,255,.1);padding-top:16px}
.ct-ml{font-family:'Oswald',sans-serif;font-weight:200;font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.24);margin-bottom:4px}
.ct-mv{font-size:13px;color:rgba(255,255,255,.44);line-height:1.9;margin-bottom:12px}
/* フォーム右側 — ダークガラス */
.ct-r{
  background:#0c0c18;
  padding:clamp(64px,10vw,120px) clamp(20px,5vw,60px);
  position:relative;overflow:hidden;
}
/* 背後の薄い大円 */
.ct-r::before{
  content:'';position:absolute;
  width:min(500px,90vw);height:min(500px,90vw);
  border:1px solid rgba(0,51,204,.1);border-radius:50%;
  bottom:-20%;right:-15%;pointer-events:none;
}
.cf-lbl{
  font-family:'Oswald',sans-serif;font-weight:300;font-size:10px;
  letter-spacing:.5em;text-transform:uppercase;
  color:rgba(255,255,255,.28);margin-bottom:28px;
  display:flex;align-items:center;gap:10px;
}
.cf-lbl::before{content:'';width:14px;height:1px;background:var(--yl);flex-shrink:0}

.cf-f{margin-bottom:10px}
.cf-f label{
  display:block;font-family:'Oswald',sans-serif;font-weight:200;
  font-size:10px;letter-spacing:.38em;text-transform:uppercase;
  color:rgba(255,255,255,.28);margin-bottom:7px;
}
.cf-f input,.cf-f textarea,.cf-f select{
  width:100%;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
  font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:300;
  padding:12px 14px;outline:none;
  -webkit-appearance:none;appearance:none;border-radius:0;
  transition:border-color .25s,background .25s,box-shadow .25s;
}
.cf-f input:focus,.cf-f textarea:focus,.cf-f select:focus{
  border-color:rgba(0,51,204,.8);
  background:rgba(0,51,204,.07);
  box-shadow:0 0 0 3px rgba(0,51,204,.12);
}
.cf-f input::placeholder,.cf-f textarea::placeholder{color:rgba(255,255,255,.2)}
.cf-f textarea{height:88px;resize:none}
/* select — 暗い背景 */
.cf-f select{color:rgba(255,255,255,.7)}
.cf-f select option{background:#0c0c18;color:#fff}
/* フォーカス時ラベルが少し明るく */
.cf-f:focus-within label{color:rgba(255,255,255,.55)}

.cf-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:480px){.cf-2{grid-template-columns:1fr;gap:0}}

/* 送信ボタン — 黄色に変更して目立たせる */
.cf-btn{
  width:100%;
  background:var(--yl);color:var(--bk);
  border:none;
  font-family:'Oswald',sans-serif;font-weight:700;font-size:14px;
  letter-spacing:.28em;text-transform:uppercase;
  padding:16px;cursor:pointer;margin-top:12px;
  position:relative;overflow:hidden;
  transition:transform .25s cubic-bezier(.23,1,.32,1),box-shadow .25s,background .2s;
}
/* ホバー時: 光が走る */
.cf-btn::after{
  content:'';position:absolute;
  top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);
  transition:left .45s ease;
}
.cf-btn:hover{
  background:#ffd333;
  transform:translateY(-3px);
  box-shadow:0 10px 32px rgba(245,192,0,.35);
}
.cf-btn:hover::after{left:150%}

/* ════════ FOOTER ════════ */
footer{background:#050505;padding:clamp(48px,8vw,72px) clamp(20px,5vw,60px) clamp(28px,5vw,40px);border-top:3px solid var(--bl)}
.ft-grid{display:grid;grid-template-columns:1fr;gap:32px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:24px}
@media(min-width:900px){.ft-grid{grid-template-columns:1fr 1fr 1fr;gap:56px;padding-bottom:52px}}
.ft-logo{font-family:'Oswald',sans-serif;font-weight:700;font-size:17px;letter-spacing:.26em;color:#fff;display:block;margin-bottom:10px}
.ft-desc{font-size:12px;color:rgba(255,255,255,.2);line-height:2.1}
.ft-col h4{font-family:'Oswald',sans-serif;font-weight:300;font-size:10px;letter-spacing:.5em;text-transform:uppercase;color:var(--yl);margin-bottom:14px}
.ft-col ul{list-style:none}.ft-col li{margin-bottom:8px}
.ft-col a{font-size:12px;color:rgba(255,255,255,.22);text-decoration:none;transition:color .2s,transform .2s;display:inline-block}
.ft-col a:hover{color:#fff;transform:translateX(4px)}
.ft-bot{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
@media(min-width:641px){.ft-bot{flex-direction:row;justify-content:space-between;align-items:center}}
.ft-copy{font-family:'Oswald',sans-serif;font-weight:200;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.13)}
.ft-mgmt{font-family:'Oswald',sans-serif;font-weight:300;font-size:11px;letter-spacing:.15em;color:var(--yl);text-decoration:none;border:1px solid rgba(245,192,0,.2);padding:8px 16px;transition:background .2s,transform .2s}
.ft-mgmt:hover{background:rgba(245,192,0,.07);transform:translateX(4px)}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .65s,transform .65s}
.rv.on{opacity:1;transform:translateY(0)}

/* 取引企業一覧 */
.cl-wrap{margin-top:36px;padding-top:28px;border-top:1px solid rgba(255,255,255,.08)}
.cl-lbl{font-family:'Oswald',sans-serif;font-weight:300;font-size:10px;letter-spacing:.55em;text-transform:uppercase;color:rgba(255,255,255,.3);display:flex;align-items:center;gap:10px;margin-bottom:18px}
.cl-lbl::before{content:'';width:14px;height:1px;background:var(--yl);flex-shrink:0}
.cl-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
@media(max-width:480px){.cl-grid{grid-template-columns:1fr}}
.cl-item{
  font-size:11px;color:rgba(255,255,255,.38);
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.06);
  letter-spacing:.04em;line-height:1.6;
  transition:color .25s,border-color .25s,background .25s;
}
.cl-item:hover{color:rgba(255,255,255,.75);border-color:rgba(0,51,204,.5);background:rgba(0,51,204,.08)}

/* ════════════════════════════════════════
   INNER PAGES（ニュース・サービス・固定ページ共通）
════════════════════════════════════════ */
.inner-main{
  background:var(--bk);
  min-height:100vh;
  padding-top:80px;
}
.inner-hero{
  background:var(--bk);
  padding:clamp(80px,12vw,140px) clamp(20px,5vw,60px) clamp(40px,6vw,80px);
  border-bottom:1px solid rgba(255,255,255,.07);
}

/* ニュース一覧 */
.news-archive{
  padding:clamp(40px,6vw,80px) clamp(20px,5vw,60px);
}
.no-posts{
  color:rgba(255,255,255,.4);
  padding:40px 0;
}
.pagination{
  margin-top:48px;
  display:flex;gap:8px;flex-wrap:wrap;
}
.pagination .page-numbers{
  font-family:'Oswald',sans-serif;font-weight:300;
  font-size:13px;letter-spacing:.1em;
  color:rgba(255,255,255,.4);
  border:1px solid rgba(255,255,255,.1);
  padding:8px 16px;text-decoration:none;
  transition:color .2s,border-color .2s;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover{
  color:var(--yl);border-color:rgba(245,192,0,.4);
}

/* 記事個別 */
.single-article{
  max-width:800px;
  margin:0 auto;
  padding:clamp(40px,6vw,80px) clamp(20px,5vw,60px);
}
.single-head{
  margin-bottom:clamp(32px,5vw,56px);
  padding-bottom:32px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.single-meta{
  display:flex;align-items:center;gap:14px;margin-bottom:18px;
}
.single-title{
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(22px,5vw,40px);
  line-height:1.3;color:#fff;
}
.single-thumb{
  margin-bottom:clamp(32px,5vw,56px);
}
.single-thumb img{
  width:100%;height:auto;display:block;
}
.single-body{
  font-size:15px;line-height:2.4;
  color:rgba(255,255,255,.6);
}
.single-body h2{font-family:'Oswald',sans-serif;font-size:clamp(20px,4vw,28px);color:#fff;margin:40px 0 16px;font-weight:600}
.single-body h3{font-family:'Oswald',sans-serif;font-size:clamp(16px,3vw,22px);color:var(--yl);margin:32px 0 12px;font-weight:400}
.single-body p{margin-bottom:1.8em}
.single-body a{color:var(--bl);text-decoration:underline;}
.single-foot{margin-top:56px;padding-top:32px;border-top:1px solid rgba(255,255,255,.1)}
.btn-back{
  font-family:'Oswald',sans-serif;font-weight:300;
  font-size:12px;letter-spacing:.25em;text-transform:uppercase;
  color:rgba(255,255,255,.4);text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:2px;
  transition:color .2s,border-color .2s;
}
.btn-back:hover{color:var(--yl);border-color:rgba(245,192,0,.4)}

/* サービス詳細 */
.service-detail{
  padding:clamp(40px,6vw,80px) clamp(20px,5vw,60px);
}
.sv-full{cursor:default}
.service-cta{
  text-align:center;
  padding:clamp(60px,8vw,100px) 20px;
  border-top:1px solid rgba(255,255,255,.07);
}
.service-cta p{
  color:rgba(255,255,255,.5);
  font-size:15px;
  margin-bottom:28px;
}

/* プライバシーポリシー */
.privacy-body{
  max-width:800px;
  margin:0 auto;
  padding:clamp(40px,6vw,80px) clamp(20px,5vw,60px);
  color:rgba(255,255,255,.6);
  font-size:15px;line-height:2.4;
}
.privacy-body h2{font-family:'Oswald',sans-serif;font-size:clamp(20px,4vw,28px);color:#fff;margin:40px 0 16px;font-weight:600}
.privacy-body h3{font-family:'Oswald',sans-serif;font-size:18px;color:var(--yl);margin:32px 0 12px;font-weight:400}
.privacy-body p{margin-bottom:1.6em}
.privacy-body ul{padding-left:1.4em;margin-bottom:1.6em}
.privacy-body ul li{margin-bottom:.6em}
.privacy-body a{color:var(--bl)}

/* 固定ページ汎用 */
.page-body{
  max-width:900px;
  margin:0 auto;
  padding:clamp(40px,6vw,80px) clamp(20px,5vw,60px);
  color:rgba(255,255,255,.6);
  font-size:15px;line-height:2.4;
}

/* 言語切り替え */
.lang-switcher{
  display:flex;align-items:center;gap:6px;
  margin-right:16px;
}
.lang-link{
  font-family:'Oswald',sans-serif;font-weight:300;
  font-size:11px;letter-spacing:.2em;
  color:rgba(255,255,255,.35);text-decoration:none;
  transition:color .2s;
}
.lang-link.active,.lang-link:hover{color:#fff}
.lang-sep{color:rgba(255,255,255,.2);font-size:10px}

/* Contact Form 7 スタイル上書き */
.wpcf7-form{width:100%}
.wpcf7-form p{margin:0 0 16px}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea{
  width:100%;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
  font-family:'Noto Sans JP',sans-serif;
  font-size:13px;
  padding:14px 16px;
  border-radius:0;
  outline:none;
  transition:border-color .2s,box-shadow .2s;
  box-sizing:border-box;
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus{
  border-color:rgba(0,51,204,.6);
  box-shadow:0 0 0 3px rgba(0,51,204,.15);
}
.wpcf7-form textarea{height:140px;resize:vertical}
.wpcf7-form input[type="submit"]{
  background:var(--yl);
  color:var(--bk);
  font-family:'Oswald',sans-serif;
  font-weight:700;
  font-size:13px;
  letter-spacing:.2em;
  text-transform:uppercase;
  border:none;
  padding:16px 40px;
  cursor:pointer;
  width:100%;
  transition:opacity .2s;
  overflow:hidden;
  position:relative;
}
.wpcf7-form input[type="submit"]:hover{opacity:.85}

/* ════ ロゴ ════ */
.nl-logo{height:28px;width:auto;}
.ft-logo-img{height:32px;width:auto;display:block;margin-bottom:16px;}

/* ════ NEWSアーカイブページ ════ */
.news-archive-wrap{
  position:relative;
  padding:clamp(72px,12vw,120px) clamp(20px,5vw,60px);
  background:#04040f;
  overflow:hidden;
}
.news-archive-wrap .nw-ghost{
  position:absolute;top:50%;right:-2%;
  transform:translateY(-50%);
  font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(180px,32vw,400px);letter-spacing:-.05em;
  color:rgba(0,51,204,.1);pointer-events:none;z-index:0;
}
.news-archive-wrap .nw-list{
  position:relative;z-index:2;
  border-top:1px solid rgba(255,255,255,.07);
}

/* ════ CF7 セレクト ════ */
.wpcf7-form select{background:#1a1a1a;color:#fff;}
.wpcf7-form select option{background:#1a1a1a;color:#fff;}
/* ════ CF7 セレクト ════ */
.wpcf7-form select{
  background:#1a1a1a;
  color:#fff;
}
.wpcf7-form select option{
  background:#1a1a1a;
  color:#fff;
}
