/* =============================================
   RESET & ROOT
============================================= */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  --bg:       #060608;
  --bg2:      #0c0d10;
  --bg3:      #111318;
  --accent:   #23aeb4;
  --accent2:  #1a8a8f;
  --accent-d: rgba(35,174,180,.12);
  --accent-g: rgba(35,174,180,.04);
  --white:    #e8eaed;
  --white-m:  rgba(232,234,237,.55);
  --white-d:  rgba(232,234,237,.2);
  --border:   rgba(35,174,180,.15);
  --border-d: rgba(255,255,255,.06);
  --mono: 'Share Tech Mono', monospace;
  --orb:  'Orbitron', sans-serif;
  --jp:   'Noto Sans JP', sans-serif;
}
html { font-size:62.5%; scroll-behavior:smooth; }
body {
  background:var(--bg);
  color:var(--white);
  font-family:var(--jp);
  font-size:1.5rem; font-weight:300; line-height:1.85;
  overflow-x:hidden;
  cursor:crosshair;
}
a { text-decoration:none; color:inherit; }
ul,li { list-style:none; }
button { border:none; background:none; cursor:crosshair; }

/* =============================================
   CANVAS BACKGROUND
============================================= */
#bgCanvas {
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  pointer-events:none;
  opacity:.6;
}

/* スキャンライン（FV内のみ） */
.scanline {
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:repeating-linear-gradient(
    0deg, transparent, transparent 2px,
    rgba(0,0,0,.03) 2px, rgba(0,0,0,.03) 4px
  );
}

/* =============================================
   LOADER
============================================= */
.loader {
  position:fixed; inset:0; z-index:9000;
  background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  /* 全体：3.8秒後に上にスライドアウト */
  animation:loaderOut .7s cubic-bezier(.76,0,.24,1) 3.8s forwards;
}
@keyframes loaderOut {
  to { transform:translateY(-100%); }
}

/* フェーズ1：キャッチコピー */
.loader__phase--1 {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  /* 0.2s でフェードイン → 1.6s 表示 → フェードアウト */
  animation:phase1Anim 1.8s ease forwards;
}
@keyframes phase1Anim {
  0%   { opacity:0; transform:translateY(16px); }
  15%  { opacity:1; transform:translateY(0); }
  75%  { opacity:1; transform:translateY(0); }
  100% { opacity:0; transform:translateY(-16px); }
}

/* フェーズ2：ロゴ */
.loader__phase--2 {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:28px;
  /* 1.8s 後にフェードイン → 表示 */
  opacity:0;
  animation:phase2Anim 1.8s ease 1.8s forwards;
}
@keyframes phase2Anim {
  0%   { opacity:0; transform:translateY(16px); }
  20%  { opacity:1; transform:translateY(0); }
  100% { opacity:1; transform:translateY(0); }
}

/* バー：フェーズ2と同タイミングで伸びる */
.loader__bar {
  height:100%;
  background:var(--accent);
  box-shadow:0 0 8px var(--accent);
  width:0%;
  animation:barGrow 1.6s ease 2s forwards;
}
@keyframes barGrow {
  to { width:100%; }
}

/* フェーズ1：キャッチコピー */
.loader__catch {
  font-family:var(--jp);
  font-size:clamp(2.4rem, 5vw, 4rem);
  font-weight:700; line-height:1.6;
  color:var(--white); text-align:center;
  letter-spacing:2px;
}

/* フェーズ2：ロゴ */
.loader__logo {
  display:flex; align-items:center; gap:16px;
}
.loader__logo-mark {
  width:52px; height:52px;
  background:var(--accent);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--orb); font-size:2.4rem; font-weight:900;
  color:var(--bg);
  clip-path:polygon(0 0,100% 0,100% 72%,72% 100%,0 100%);
  flex-shrink:0;
}
.loader__logo-name {
  font-family:var(--jp);
  font-size:2.4rem; font-weight:700;
  color:var(--white); letter-spacing:3px;
}
.loader__bar-wrap {
  width:240px; height:1px;
  background:rgba(35,174,180,.2);
}

/* =============================================
   HEADER（YSS風）
============================================= */
.g-header {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  display:flex; flex-direction:column;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.g-header__nav-bar {
  height:72px;
  display:flex; align-items:stretch;
  background:rgba(6,6,8,.82);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(35,174,180,.2);
  box-shadow:0 2px 40px rgba(0,0,0,.55);
  transition:background .4s, border-color .4s, height .4s, box-shadow .4s;
  position:relative;
}
.g-header.scrolled .g-header__nav-bar {
  background:rgba(6,6,8,.97);
  border-bottom-color:rgba(35,174,180,.35);
  box-shadow:0 4px 48px rgba(0,0,0,.7), 0 1px 0 rgba(35,174,180,.12);
  height:64px;
}

/* ロゴ */
.g-header__logo-block {
  display:flex; align-items:center;
  padding:0 32px 0 0;
  border-right:1px solid var(--border);
  flex-shrink:0; position:relative;
  clip-path:polygon(0 0,100% 0,100% 100%,8px 100%);
}
.g-header__logo-block::before {
  content:''; position:absolute; left:0; top:0; bottom:0;
  width:3px;
  background:linear-gradient(to bottom, var(--accent), var(--accent2));
}
.g-header__logo {
  font-family:'Share Tech Mono', monospace;
  font-size:2rem; letter-spacing:4px;
  color:var(--white); display:flex; align-items:center; gap:12px;
  padding-left:20px;
}
.g-header__logo-sq {
  width:34px; height:34px; background:var(--accent);
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; color:var(--bg); font-weight:700; flex-shrink:0;
  clip-path:polygon(0 0,100% 0,100% 72%,72% 100%,0 100%);
}

/* ナビ */
.g-header__nav {
  display:flex; align-items:stretch;
  margin-left:auto; height:100%;
}
.g-header__nav-list { display:flex; align-items:stretch; }
.g-header__nav-item { display:flex; align-items:stretch; position:relative; }
.g-header__nav-item a {
  font-family:var(--mono); font-size:1.2rem; letter-spacing:2px;
  color:rgba(232,234,237,.6); padding:0 24px;
  display:flex; align-items:center;
  text-transform:uppercase; position:relative;
  transition:color .3s;
}
.g-header__nav-item a::before {
  content:''; position:absolute; inset:0;
  background:rgba(35,174,180,.06);
  transform:scaleY(0); transform-origin:top;
  transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.g-header__nav-item a::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:2px; background:var(--accent);
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.g-header__nav-item a:hover { color:var(--white); }
.g-header__nav-item a:hover::before { transform:scaleY(1); }
.g-header__nav-item a:hover::after  { transform:scaleX(1); }

/* ドロップダウン */
.g-header__nav-item--has-drop { position:relative; }
.g-header__drop {
  position:absolute; top:100%; left:50%;
  transform:translateX(-50%) translateY(-8px);
  min-width:160px;
  background:rgba(6,6,8,.97);
  backdrop-filter:blur(20px);
  border:1px solid var(--border);
  border-top:2px solid var(--accent);
  padding:8px 0;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s, transform .25s, visibility .25s;
  z-index:200; white-space:nowrap;
}
.g-header__nav-item--has-drop:hover .g-header__drop {
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.g-header__drop-item {
  display:block;
  font-family:var(--mono); font-size:1.1rem; letter-spacing:1.5px;
  color:var(--white-m); padding:10px 20px;
  text-transform:uppercase;
  transition:color .2s, background .2s, padding-left .25s;
  position:relative;
}
.g-header__drop-item::before {
  content:'—'; font-size:.85rem; color:var(--accent);
  opacity:0; margin-right:0;
  transition:opacity .2s, margin-right .2s;
}
.g-header__drop-item:hover {
  color:var(--white); background:rgba(35,174,180,.05); padding-left:28px;
}
.g-header__drop-item:hover::before { opacity:1; margin-right:8px; }

/* CTA */
.g-header__right { display:flex; align-items:stretch; flex-shrink:0; }
.g-header__cta {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:3px;
  text-transform:uppercase; color:var(--bg); background:var(--accent);
  padding:0 36px;
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
  transition:color .4s;
  border-left:1px solid rgba(35,174,180,.3);
  white-space:nowrap;
  clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%);
}
.g-header__cta::before {
  content:''; position:absolute; inset:0; background:var(--bg);
  transform:translateY(100%);
  transition:transform .4s cubic-bezier(.4,0,.2,1); z-index:0;
}
.g-header__cta:hover { color:var(--white); }
.g-header__cta:hover::before { transform:translateY(0); }
.g-header__cta span { position:relative; z-index:1; }

/* バーガー */
.g-header__burger {
  display:none; align-items:center; justify-content:center;
  width:64px; height:100%;
  border-left:1px solid var(--border);
  flex-direction:column; gap:6px; padding:0;
}
.g-header__burger b {
  display:block; height:1px; background:var(--white);
  transform-origin:center;
  transition:transform .4s, opacity .3s, width .3s;
}
.g-header__burger b:nth-child(1) { width:28px; }
.g-header__burger b:nth-child(2) { width:18px; align-self:flex-end; margin-right:18px; }
.g-header__burger b:nth-child(3) { width:28px; }
.g-header__burger.open b:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.g-header__burger.open b:nth-child(2) { opacity:0; transform:scaleX(0); }
.g-header__burger.open b:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* SP NAV */
.sp-nav {
  position:fixed; inset:0; z-index:999;
  background:var(--bg);
  display:flex; flex-direction:column; justify-content:flex-start;
  padding:80px 40px 48px;
  clip-path:inset(0 0 100% 0);
  transition:clip-path .7s cubic-bezier(.4,0,.2,1);
  overflow-y:auto;
}
.sp-nav::before {
  content:''; position:absolute; top:0; bottom:0; left:0;
  width:4px; background:var(--accent);
  transform:scaleY(0); transform-origin:top;
  transition:transform .6s .2s cubic-bezier(.4,0,.2,1);
}
.sp-nav.open { clip-path:inset(0 0 0% 0); }
.sp-nav.open::before { transform:scaleY(1); }
.sp-nav__item { border-bottom:1px solid var(--border); }
.sp-nav__link {
  display:flex; align-items:center; gap:12px;
  font-family:var(--mono); font-size:1.4rem; letter-spacing:3px;
  color:rgba(232,234,237,.6); padding:18px 0;
  text-transform:uppercase;
  transform:translateY(110%);
  transition:transform .5s cubic-bezier(.4,0,.2,1), color .3s;
}
.sp-nav.open .sp-nav__link { transform:translateY(0); }
.sp-nav__link:hover { color:var(--white); }
.sp-nav__btn {
  width:100%; display:flex; align-items:center; gap:12px;
  font-family:var(--mono); font-size:1.4rem; letter-spacing:3px;
  color:rgba(232,234,237,.6); padding:18px 0;
  text-transform:uppercase; text-align:left;
  transform:translateY(110%);
  transition:transform .5s cubic-bezier(.4,0,.2,1), color .3s;
}
.sp-nav.open .sp-nav__btn { transform:translateY(0); }
.sp-nav__btn:hover { color:var(--white); }
.sp-nav__btn[aria-expanded="true"] { color:var(--accent); }
.sp-nav__btn span { flex:1; }
.sp-nav__arrow {
  width:16px; height:16px; stroke:currentColor; flex-shrink:0; margin-left:auto;
  transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.sp-nav__btn[aria-expanded="true"] .sp-nav__arrow { transform:rotate(180deg); }
.sp-nav__sub {
  max-height:0; overflow:hidden;
  transition:max-height .4s cubic-bezier(.4,0,.2,1);
  padding-left:16px;
}
.sp-nav__sub.open { max-height:300px; }
.sp-nav__sub li { border-top:1px solid rgba(255,255,255,.04); }
.sp-nav__sub a {
  display:flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:1.2rem; letter-spacing:2px;
  color:var(--white-m); padding:14px 0;
  text-transform:uppercase;
  transition:color .3s, padding-left .3s;
}
.sp-nav__sub a::before { content:'—'; font-size:.9rem; color:var(--accent); opacity:.4; flex-shrink:0; }
.sp-nav__sub a:hover { color:var(--white); padding-left:8px; }
.sp-nav__item:nth-child(1) .sp-nav__btn,.sp-nav__item:nth-child(1) .sp-nav__link { transition-delay:.08s; }
.sp-nav__item:nth-child(2) .sp-nav__btn,.sp-nav__item:nth-child(2) .sp-nav__link { transition-delay:.13s; }
.sp-nav__item:nth-child(3) .sp-nav__btn,.sp-nav__item:nth-child(3) .sp-nav__link { transition-delay:.18s; }
.sp-nav__item:nth-child(4) .sp-nav__btn,.sp-nav__item:nth-child(4) .sp-nav__link { transition-delay:.23s; }
.sp-nav__item:nth-child(5) .sp-nav__btn,.sp-nav__item:nth-child(5) .sp-nav__link { transition-delay:.28s; }
.sp-nav__bottom {
  margin-top:32px; opacity:0; transform:translateY(20px);
  transition:opacity .4s .4s, transform .4s .4s;
}
.sp-nav.open .sp-nav__bottom { opacity:1; transform:none; }
.sp-nav__tel {
  font-family:var(--mono); font-size:1.6rem;
  letter-spacing:2px; color:var(--white-m); text-decoration:none;
}

@media(max-width:1100px){
  .g-header__nav, .g-header__cta { display:none; }
  .g-header__logo-block { padding:0 20px 0 0; }
  .g-header__burger { display:flex; }
}
@media(max-width:767px){
  .g-header__nav-bar { flex-direction:row-reverse; justify-content:center; position:relative; }
  .g-header__logo-block {
    position:absolute; left:50%; top:50%;
    transform:translate(-50%,-50%);
    padding:0; border-right:none;
  }
  .g-header__logo-block::before { display:none; }
  .g-header__burger { position:absolute; left:16px; border-left:none; width:44px; }
}

/* =============================================
   FV
============================================= */
.fv {
  position:relative; z-index:2;
  min-height:100vh;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:0 64px 360px;
  border-bottom:1px solid var(--border);
  overflow:hidden;
}

/* 動画ラッパー */
.fv__video-wrap {
  position:absolute;
  top:20px; bottom:20px; left:12%; right:12%;
  z-index:1; overflow:hidden;
  border-radius:20px;
  border:1px solid rgba(35,174,180,.2);
  box-shadow:0 32px 80px rgba(0,0,0,.6);
  /* 動画がFVからはみ出さないよう隔離 */
  isolation:isolate;
}
.fv__video {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  min-width:100%; min-height:100%;
  width:auto; height:auto;
  object-fit:cover; z-index:1;
}
/* 左右の黒帯 */
.fv__video-wrap::before,
.fv__video-wrap::after {
  display:none;
}
/* 左右サイドパネル */
.fv__side {
  position:absolute; top:0; bottom:0; width:12%;
  background:var(--bg); z-index:3;
  display:flex; align-items:center; justify-content:center;
}
.fv__side--left  { left:0; }
.fv__side--right { right:0; }
.fv__side-dot {
  width:6px; height:6px; border-radius:50%;
  background:rgba(35,174,180,.25);
}
/* 動画未設定時プレースホルダー */
.fv__video-placeholder {
  position:absolute; inset:0; z-index:2;
  background:linear-gradient(160deg,#0d2a2b 0%,#071a1a 30%,#0a0a0a 65%,#0f1a10 100%);
  display:flex; align-items:center; justify-content:center;
}
.fv__placeholder-inner {
  text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:16px;
}
.fv__placeholder-inner svg { width:64px; height:64px; color:var(--accent); }
.fv__placeholder-inner > p {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:3px; color:var(--accent);
}
.fv__placeholder-note {
  font-size:.9rem !important; color:var(--white-d) !important;
  letter-spacing:1px !important; line-height:1.8;
}
/* 動画オーバーレイ（暗幕） */
.fv__video-overlay {
  position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(to top, rgba(6,6,8,.95) 0%, rgba(6,6,8,.45) 45%, rgba(6,6,8,.15) 100%),
    linear-gradient(to right, rgba(6,6,8,.65) 0%, transparent 55%);
}
/* テキスト・HUD等は動画の前面に */
.fv__inner { position:relative; z-index:4; }
.hud       { z-index:4; }
.fv__scroll{ z-index:4; }

/* HUD コーナー */
.hud {
  position:absolute; z-index:3;
  font-family:var(--mono); font-size:.85rem;
  letter-spacing:2px; color:var(--accent);
  opacity:.5;
}
.hud--tl { top:80px; left:32px; display:flex; align-items:flex-start; gap:8px; }
.hud--tr { top:80px; right:32px; display:flex; align-items:flex-start; gap:8px; }
.hud--bl { bottom:80px; left:32px; display:flex; align-items:flex-end; gap:8px; }
.hud--br { bottom:80px; right:32px; display:flex; align-items:flex-end; gap:8px; }
.hud__corner {
  display:block; width:16px; height:16px; flex-shrink:0;
  border-top:1px solid var(--accent); border-left:1px solid var(--accent);
}
.hud__corner--r  { border-left:none; border-right:1px solid var(--accent); }
.hud__corner--b  { border-top:none; border-bottom:1px solid var(--accent); }
.hud__corner--br { border-top:none; border-left:none; border-bottom:1px solid var(--accent); border-right:1px solid var(--accent); }
.hud__tag { white-space:nowrap; }
.hud__tag--right { text-align:right; }

.fv__inner {
  display:flex; align-items:flex-end; gap:64px;
  position:relative; z-index:3;
}



.fv__main { flex:1; }

.fv__eyebrow {
  display:flex; align-items:center; gap:12px;
  font-family:var(--mono); font-size:1rem; letter-spacing:4px;
  color:var(--accent); margin-bottom:24px;
  opacity:0; transform:translateX(-20px);
  animation:fadeRight .6s .2s ease forwards;
}
.fv__eyebrow-line {
  display:block; width:24px; height:1px;
  background:var(--accent); flex-shrink:0;
}

.fv__title {
  display:flex; flex-direction:column; gap:0;
  margin-bottom:28px;
}
.fv__title-ja {
  font-family:var(--jp); font-size:clamp(5rem,8vw,10rem);
  font-weight:700; line-height:1.0;
  letter-spacing:-1px;
  opacity:0; transform:translateY(60px);
  animation:slideUp .8s .4s cubic-bezier(.16,1,.3,1) forwards;
}
.fv__title-accent {
  font-family:var(--orb); font-size:clamp(3rem,5vw,6.4rem);
  font-weight:900; color:var(--accent); line-height:1.1;
  letter-spacing:4px;
  opacity:0; transform:translateY(60px);
  animation:slideUp .8s .55s cubic-bezier(.16,1,.3,1) forwards;
  text-shadow:0 0 40px rgba(35,174,180,.4);
}

.fv__desc {
  font-size:1.4rem; color:var(--white-m); line-height:2; margin-bottom:40px;
  max-width:460px;
  opacity:0; transform:translateY(20px);
  animation:fadeUp .6s .85s ease forwards;
}
.fv__actions {
  display:flex; align-items:center; gap:20px;
  opacity:0; transform:translateY(20px);
  animation:fadeUp .6s 1s ease forwards;
}

.fv__scroll {
  position:absolute; right:48px; bottom:48px; z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--mono); font-size:.8rem; letter-spacing:3px;
  color:var(--white-d);
  opacity:0; animation:fadeUp .6s 1.5s ease forwards;
}
.fv__scroll-rail {
  width:1px; height:48px; background:rgba(255,255,255,.1); overflow:hidden;
}
.fv__scroll-car {
  width:100%; height:50%; background:var(--accent);
  box-shadow:0 0 6px var(--accent);
  animation:scrollDown 2s 2s ease-in-out infinite;
}
@keyframes scrollDown { 0%{transform:translateY(-100%)} 100%{transform:translateY(200%)} }

@keyframes fadeUp   { to{opacity:1;transform:none} }
@keyframes fadeRight{ to{opacity:1;transform:none} }
@keyframes slideUp  { to{opacity:1;transform:none} }

@media(max-width:767px){
  .fv { padding:0 24px 280px; }
  .fv__video-wrap { top:12px; bottom:12px; left:6%; right:6%; border-radius:14px; }
  .fv__side { width:6%; }
  .fv__inner { flex-direction:column; align-items:flex-start; gap:32px; }
  .fv__data-col { flex-direction:row; gap:24px; }
  .fv__actions { flex-direction:column; align-items:flex-start; }
  .hud--tr,.hud--br,.fv__scroll { display:none; }
}

/* =============================================
   METRICS
============================================= */
.metrics {
  position:relative; z-index:2;
  display:flex; align-items:center; justify-content:center;
  gap:0;
  padding:0 64px;
  background:var(--bg2);
  border-bottom:1px solid var(--border);
}
.metrics__item {
  flex:1; display:flex; flex-direction:column; align-items:center;
  padding:32px 0; gap:8px;
}
.metrics__num {
  font-family:var(--orb); font-size:3.6rem; font-weight:900;
  color:var(--accent); line-height:1;
  text-shadow:0 0 20px rgba(35,174,180,.3);
}
.metrics__label {
  font-family:var(--mono); font-size:.9rem; letter-spacing:2px;
  color:var(--white-d);
}
.metrics__div {
  width:1px; height:60px; background:var(--border);
}
@media(max-width:767px){
  .metrics { flex-wrap:wrap; padding:0 24px; }
  .metrics__item { flex:calc(50% - 1px); }
  .metrics__div:nth-child(4) { display:none; }
}

/* =============================================
   PICKUP スライダー（FV直下・食い込みデザイン）
============================================= */
.p-pickup {
  position:relative; z-index:3;
  margin-top:-320px;
  padding-top:0;
  overflow:visible;
  min-height:320px; /* 空の時もFV食い込み分を確保 */
  background:var(--bg); /* 空のときは黒背景で動画を隠す */
}
.p-pickup__badge {
  position:absolute; top:-40px; right:0; z-index:5;
  background:var(--accent);
  padding:10px 24px 10px 20px;
  clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%);
}
.p-pickup__badge span {
  font-family:var(--mono); font-size:1.4rem; letter-spacing:5px;
  color:var(--bg); font-weight:700;
}
.p-pickup__slider {
  width:100%; overflow:hidden;
  background:var(--bg2);
  border-top:1px solid var(--border);
  padding:24px 0 20px;
  position:relative;
}
/* スライダーが空のとき非表示 */
.p-pickup__slider:empty,
.p-pickup__track:empty ~ * { display:none; }
.p-pickup__track {
  display:flex; gap:16px; padding:0 8px;
  will-change:transform;
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.p-pickup__card {
  width:min(calc((100vw - 48px) / 3.6), 320px);
  flex-shrink:0;
  background:var(--bg3);
  display:flex; flex-direction:column;
  position:relative; overflow:hidden;
  border:1px solid var(--border-d);
  transition:background .3s;
  user-select:none;
}
.p-pickup__card::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:var(--accent);
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.p-pickup__card:hover { background:var(--bg2); }
.p-pickup__card:hover::after { transform:scaleX(1); }
.p-pickup__card-img {
  aspect-ratio:3/2; position:relative; overflow:hidden;
  background:var(--bg3);
  flex-shrink:0;
}
.p-pickup__card-img-dummy {
  position:absolute; inset:0; background:var(--bg3);
}
.p-pickup__card-img--accent .p-pickup__card-img-dummy {
  background:linear-gradient(135deg, rgba(35,174,180,.08) 0%, var(--bg3) 100%);
}
.p-pickup__card-img img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:1;
  transition:transform .6s ease;
}
.p-pickup__card:hover .p-pickup__card-img img { transform:scale(1.05); }
.p-pickup__card-body {
  padding:16px 18px 20px; flex:1;
  display:flex; flex-direction:column; gap:6px;
}
.p-pickup__card-date {
  font-family:var(--mono); font-size:.9rem;
  color:var(--white-d); letter-spacing:1px;
}
.p-pickup__card-title {
  font-size:1.3rem; color:rgba(232,234,237,.9);
  line-height:1.85;
  display:-webkit-box; -webkit-line-clamp:3;
  -webkit-box-orient:vertical; overflow:hidden;
}
.p-pickup__prev, .p-pickup__next {
  position:absolute; top:50%; transform:translateY(-50%); z-index:6;
  width:44px; height:44px;
  background:rgba(6,6,8,.8); border:1px solid rgba(35,174,180,.35);
  color:var(--accent);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background .2s, border-color .2s;
  backdrop-filter:blur(8px);
}
.p-pickup__prev:hover, .p-pickup__next:hover {
  background:rgba(35,174,180,.15); border-color:var(--accent);
}
.p-pickup__prev svg, .p-pickup__next svg { width:20px; height:20px; stroke:currentColor; }
.p-pickup__prev { left:12px; }
.p-pickup__next { right:12px; }

@media(max-width:767px){
  .p-pickup { margin-top:-220px; }
  .p-pickup__card { width:calc((100vw - 40px) / 1.8); }
}

/* =============================================
   SECTION COMMON
============================================= */
.sec {
  position:relative; z-index:3;
  padding:100px 64px;
  border-bottom:1px solid var(--border);
}
.sec__head {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:56px;
  padding-bottom:24px;
  border-bottom:1px solid var(--border-d);
}
.sec__head-left { display:flex; flex-direction:column; gap:8px; }
.sec__sys {
  font-family:var(--mono); font-size:.9rem; letter-spacing:2px;
  color:var(--accent); opacity:.6;
}
.sec__title {
  font-family:var(--orb); font-size:clamp(2.8rem,4vw,4.4rem);
  font-weight:900; letter-spacing:2px; line-height:1;
}

@media(max-width:1024px){ .sec { padding:72px 32px; } }
@media(max-width:600px)  { .sec { padding:56px 20px; } .sec__head { flex-direction:column; align-items:flex-start; gap:16px; } }

/* =============================================
   SERVICES GRID
============================================= */
.svc-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:var(--border);
}
.svc-card {
  display:flex; flex-direction:column;
  background:var(--bg2);
  position:relative; overflow:hidden;
  transition:background .3s;
}
.svc-card::before {
  content:'';
  position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--accent), var(--accent2));
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
  z-index:2;
}
.svc-card:hover { background:var(--bg3); }
.svc-card:hover::before { transform:scaleX(1); }
.svc-card--featured {
  background:var(--bg2);
}

/* 画像エリア */
.svc-card__img {
  position:relative; width:100%;
  aspect-ratio:16/9; overflow:hidden;
  background:var(--bg3);
}
.svc-card__img img {
  width:100%; height:100%; object-fit:cover;
  display:none; /* 実画像を差し替える際にdisplay:blockに変更 */
  position:relative; z-index:1;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.svc-card__img img.loaded {
  display:block;
}
.svc-card:hover .svc-card__img img { transform:scale(1.06); }

/* ダミー画像プレースホルダー */
.svc-card__img-dummy {
  position:absolute; inset:0; z-index:0;
  background:var(--bg3);
  border-bottom:1px solid var(--border);
}
.svc-card__img-dummy span { display:none; }
/* 画像が正常に読み込まれたらダミーを隠す */
.svc-card__img img.loaded + .svc-card__img-dummy,
.svc-card__img img:not([src=""]):not([src]) + .svc-card__img-dummy { display:none; }

/* テキストボディ */
.svc-card__body {
  padding:28px 28px 24px;
  display:flex; flex-direction:column; flex:1;
}
.svc-card__id {
  font-family:var(--mono); font-size:.85rem; letter-spacing:3px;
  color:var(--accent); opacity:.5; margin-bottom:12px;
}
.svc-card__title {
  font-size:1.7rem; font-weight:700; margin-bottom:10px;
}
.svc-card__desc {
  font-size:1.3rem; color:var(--white-m); line-height:1.85; flex:1;
}
.svc-card__footer {
  display:flex; justify-content:space-between; align-items:center;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--border-d);
}
.svc-card__status {
  display:flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:.85rem; letter-spacing:2px;
  color:var(--accent); opacity:.5;
}
.svc-card__dot {
  width:5px; height:5px; border-radius:50%;
  background:var(--accent); animation:pulse 2s infinite;
}
.svc-card__arr {
  font-family:var(--mono); color:var(--accent);
  opacity:0; transform:translateX(-8px);
  transition:opacity .3s, transform .3s;
}
.svc-card:hover .svc-card__arr { opacity:1; transform:none; }

@media(max-width:1024px){ .svc-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px)  { .svc-grid { grid-template-columns:1fr; } }

/* =============================================
   ABOUT
============================================= */

/* 2カラムレイアウト */
.about-2col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border:1px solid var(--border-d);
}

/* 左：メッセージ */
.about-2col__left {
  padding:56px 48px;
  border-right:1px solid var(--border-d);
  display:flex; flex-direction:column; gap:20px;
  background:var(--bg2);
}
.about-2col__label {
  font-family:var(--mono); font-size:.85rem; letter-spacing:3px;
  color:var(--accent); opacity:.7;
}
.about-2col__lead {
  font-size:clamp(2.2rem, 3vw, 3.2rem);
  font-weight:700; line-height:1.25;
  color:var(--white);
  border-left:3px solid var(--accent);
  padding-left:20px;
}
.about-2col__body {
  font-size:1.4rem; color:var(--white-m); line-height:2;
}
.about-2col__sign {
  font-family:var(--mono); font-size:1rem; letter-spacing:2px;
  color:var(--accent); opacity:.6;
  margin-top:8px;
}

/* 右：MVV */
.about-2col__right {
  display:flex; flex-direction:column;
}
.about-2col__mvv-row {
  display:flex; flex-direction:column; gap:12px;
  padding:32px 40px;
  border-bottom:1px solid var(--border-d);
}
.about-2col__mvv-row:last-child { border-bottom:none; flex:1; }
.about-2col__mvv-tag {
  font-family:var(--mono); font-size:.8rem; letter-spacing:3px;
  color:var(--accent); opacity:.6;
}
.about-2col__mvv-heading {
  font-size:1.7rem; font-weight:700; color:var(--white); line-height:1.4;
}
.about-2col__mvv-text {
  font-size:1.3rem; color:var(--white-m); line-height:1.85;
}

/* VALUE 横並び */
.about-2col__values {
  display:flex; flex-direction:column; gap:0;
}
.about-2col__value {
  display:grid; grid-template-columns:24px 56px 1fr;
  align-items:baseline; gap:0 16px;
  padding:12px 0;
  border-bottom:1px solid var(--border-d);
}
.about-2col__value:last-child { border-bottom:none; }
.about-2col__value-num {
  font-family:var(--mono); font-size:.75rem; letter-spacing:1px;
  color:var(--accent); opacity:.5;
}
.about-2col__value-word {
  font-size:1.6rem; font-weight:700; color:var(--white); line-height:1;
}
.about-2col__value-desc {
  font-size:1.2rem; color:var(--white-m); line-height:1.7;
}

@media(max-width:900px){
  .about-2col { grid-template-columns:1fr; }
  .about-2col__left { border-right:none; border-bottom:1px solid var(--border-d); padding:40px 28px; }
  .about-2col__mvv-row { padding:24px 28px; }
}

.about__grid {
  display:grid; grid-template-columns:1fr;
  gap:32px;
}
.about__terminal {
  background:var(--bg);
  border:1px solid var(--border);
  overflow:hidden;
}
.about__terminal-bar {
  display:flex; align-items:center; gap:8px;
  padding:12px 16px;
  background:var(--bg2); border-bottom:1px solid var(--border);
}
.about__terminal-dot {
  width:10px; height:10px; border-radius:50%;
}
.about__terminal-title {
  margin-left:8px;
  font-family:var(--mono); font-size:.85rem; letter-spacing:1px;
  color:var(--white-d);
}
.about__terminal-body {
  padding:24px 20px; min-height:220px;
}
.about__terminal-line {
  display:flex; gap:10px;
  font-family:var(--mono); font-size:1rem; line-height:1.9;
  color:var(--white-m);
}
.about__terminal-prompt { color:var(--accent); flex-shrink:0; }
.about__terminal-cmd::after {
  content:'_'; color:var(--accent); animation:blink .7s step-end infinite;
}

.about__stats {
  display:flex; flex-direction:column; gap:0;
  border:1px solid var(--border);
}
/* フラット・クリーン レイアウト */
.about-clean {
  display:flex; flex-direction:column;
}
.about-clean__row {
  display:grid; grid-template-columns:180px 1fr;
  gap:48px; padding:48px 0;
  border-bottom:1px solid var(--border-d);
  align-items:start;
}
.about-clean__row:last-child { border-bottom:none; }
.about-clean__left {
  padding-top:4px;
}
.about-clean__tag {
  font-family:var(--mono); font-size:.85rem; letter-spacing:3px;
  color:var(--accent); display:block;
}
.about-clean__heading {
  font-size:2.2rem; font-weight:700;
  line-height:1.4; margin-bottom:16px;
  color:var(--white);
}
.about-clean__text {
  font-size:1.4rem; color:var(--white-m);
  line-height:2; max-width:560px;
}

/* MESSAGE */
.about-clean__row--message .about-clean__right {
  display:flex; flex-direction:column; gap:20px;
}
.about-clean__message-lead {
  font-size:clamp(2rem, 3vw, 3rem);
  font-weight:700; line-height:1.3;
  color:var(--white);
  border-left:3px solid var(--accent);
  padding-left:24px;
}
.about-clean__message-body {
  font-size:1.45rem; color:var(--white-m);
  line-height:2; max-width:640px;
}
.about-clean__message-sign {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  color:var(--accent); opacity:.7;
  margin-top:8px;
}

/* VALUE グリッド */
.about-clean__values {
  display:flex; flex-direction:row; gap:0;
  border-top:1px solid var(--border-d);
}
.about-clean__value {
  flex:1;
  display:flex; flex-direction:column; gap:12px;
  padding:32px 24px;
  border-right:1px solid var(--border-d);
  position:relative;
}
.about-clean__value:last-child { border-right:none; }
.about-clean__value::before {
  content:''; position:absolute; top:0; left:0; right:0;
  height:2px; background:var(--accent);
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.about-clean__value:hover::before { transform:scaleX(1); }
.about-clean__value-num {
  font-family:var(--mono); font-size:.8rem; letter-spacing:2px;
  color:var(--accent); opacity:.5;
}
.about-clean__value-word {
  font-size:2.6rem; font-weight:700;
  color:var(--white); letter-spacing:2px; line-height:1;
}
.about-clean__value-desc {
  font-size:1.2rem; color:var(--white-m); line-height:1.75;
}

@media(max-width:1024px){
  .about-clean__values { flex-wrap:wrap; }
  .about-clean__value { flex:calc(33.3% - 1px); min-width:0; }
}
@media(max-width:767px){
  .about-clean__row { grid-template-columns:1fr; gap:16px; padding:36px 0; }
  .about-clean__heading { font-size:1.9rem; }
  .about-clean__value { flex:calc(50% - 1px); padding:24px 16px; }
  .about-clean__value-word { font-size:2rem; }
}

/* =============================================
   NEWS
============================================= */
.news-list { display:flex; flex-direction:column; }
.news-item {
  display:grid; grid-template-columns:60px 110px 80px 1fr 32px;
  align-items:center; gap:20px;
  padding:20px 0;
  border-bottom:1px solid var(--border-d);
  position:relative;
  transition:padding-left .3s, background .3s;
}
.news-item::before {
  content:'';
  position:absolute; left:0; top:0; bottom:0; width:0;
  background:var(--accent-d);
  transition:width .35s;
}
.news-item:hover { padding-left:16px; }
.news-item:hover::before { width:100%; }
.news-item > * { position:relative; z-index:1; }
.news-item__id {
  font-family:var(--mono); font-size:.9rem; letter-spacing:1px;
  color:var(--accent); opacity:.4;
}
.news-item__date {
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--white-d); white-space:nowrap;
}
.news-item__tag {
  font-family:var(--mono); font-size:.85rem; letter-spacing:2px;
  color:var(--accent); border:1px solid var(--border);
  padding:3px 10px; text-align:center; white-space:nowrap;
}
.news-item__title {
  font-size:1.4rem; color:var(--white-m);
  overflow:hidden; white-space:nowrap; text-overflow:ellipsis;
}
.news-item__arr {
  font-family:var(--mono); color:var(--accent); opacity:.3;
  transition:opacity .3s, transform .3s;
}
.news-item:hover .news-item__arr { opacity:1; transform:translateX(4px); }

@media(max-width:767px){
  .news-item { grid-template-columns:1fr auto; grid-template-rows:auto auto; gap:8px; }
  .news-item__id,.news-item__arr { display:none; }
  .news-item__date { grid-area:1/1; }
  .news-item__tag  { grid-area:1/2; }
  .news-item__title{ grid-area:2/1/2/3; white-space:normal; }
}

/* =============================================
   BLOG
============================================= */
.blog-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px; background:var(--border);
}

/* サブカード（縦並び） */
.blog-card--sub {
  display:flex; flex-direction:column;
  background:var(--bg2);
  transition:background .3s;
}
.blog-card--sub:hover { background:var(--bg3); }

/* 画像共通 */
.blog-card__img {
  position:relative; overflow:hidden;
  background:var(--bg3);
}
.blog-card--featured .blog-card__img { aspect-ratio:16/9; }
.blog-card--sub .blog-card__img     { aspect-ratio:16/9; }
.blog-card--sub .blog-card__body    { padding:20px; }
.blog-card__img img {
  width:100%; height:100%; object-fit:cover;
  display:none; position:relative; z-index:1;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.blog-card__img img.loaded { display:block; }
.blog-card:hover .blog-card__img img { transform:scale(1.05); }
.blog-card__img-dummy {
  position:absolute; inset:0; z-index:0;
  background:var(--bg3);
}

/* PICKUPバッジ */
.blog-card__pickup {
  position:absolute; top:16px; left:16px; z-index:2;
  font-family:var(--mono); font-size:.8rem; letter-spacing:3px;
  color:var(--bg); background:var(--accent);
  padding:4px 12px;
}

/* テキストボディ共通 */
.blog-card__body {
  padding:28px;
  display:flex; flex-direction:column; gap:12px;
  flex:1;
}
.blog-card--sub .blog-card__body {
  padding:20px;
  justify-content:center;
}

.blog-card__meta {
  display:flex; align-items:center; gap:12px;
}
.blog-card__cat {
  font-family:var(--mono); font-size:.8rem; letter-spacing:2px;
  color:var(--accent); border:1px solid var(--border);
  padding:2px 10px; white-space:nowrap;
}
.blog-card__date {
  font-family:var(--mono); font-size:.8rem; letter-spacing:1px;
  color:var(--white-d);
}

.blog-card__title {
  font-size:1.5rem; font-weight:700;
  color:var(--white); line-height:1.6;
}
.blog-card--sub .blog-card__title {
  font-size:1.3rem;
  display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden;
}
.blog-card--featured .blog-card__title { font-size:1.9rem; }

.blog-card__desc {
  font-size:1.3rem; color:var(--white-m); line-height:1.85;
  display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden;
}

.blog-card__more {
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--accent); margin-top:auto;
  transition:letter-spacing .3s;
}
.blog-card:hover .blog-card__more { letter-spacing:3px; }

@media(max-width:1024px){
  .blog-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:600px){
  .blog-grid { grid-template-columns:1fr; }
}

/* =============================================
   RECRUIT
============================================= */
.recruit {
  position:relative; z-index:2; overflow:hidden;
  padding:100px 64px;
  border-bottom:1px solid var(--border);
}
.recruit__bg {
  position:absolute; inset:0; pointer-events:none;
}
.recruit__bg-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(var(--border) 1px, transparent 1px),
    linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size:60px 60px;
  opacity:.3;
}
.recruit__bg-circle {
  position:absolute; right:-100px; top:50%; transform:translateY(-50%);
  width:500px; height:500px; border-radius:50%;
  border:1px solid var(--border);
}
.recruit__bg-circle::before {
  content:''; position:absolute; inset:80px; border-radius:50%;
  border:1px solid rgba(35,174,180,.1);
}
.recruit__inner { position:relative; z-index:1; max-width:600px; }
.recruit__title {
  font-family:var(--orb); font-weight:900; line-height:1;
  margin:16px 0 28px;
  display:flex; flex-direction:column;
}
.recruit__title span:first-child {
  font-size:clamp(4rem,7vw,8rem); color:var(--white-d); letter-spacing:4px;
}
.recruit__title-accent {
  font-size:clamp(2.8rem,5vw,6rem); color:var(--accent);
  text-shadow:0 0 40px rgba(35,174,180,.4);
  letter-spacing:6px;
}
.recruit__desc {
  font-size:1.5rem; color:var(--white-m); line-height:2; margin-bottom:32px;
}
.recruit__tags {
  display:flex; flex-wrap:wrap; gap:8px; margin-bottom:40px;
}
.recruit__tag {
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--accent); border:1px solid var(--border);
  padding:6px 16px;
}

@media(max-width:767px){ .recruit { padding:72px 24px; } }

/* =============================================
   CTA
============================================= */
.cta {
  position:relative; z-index:2;
  padding:120px 64px;
  background:var(--accent);
  overflow:hidden;
}
/* 背景に大きな透過テキスト装飾 */
.cta::before {
  content:'CONTACT';
  position:absolute; bottom:-40px; right:-20px;
  font-family:var(--orb); font-size:22rem; font-weight:900;
  color:rgba(0,0,0,.07); line-height:1;
  pointer-events:none; user-select:none; white-space:nowrap;
  z-index:0;
}
.cta__sys {
  font-family:var(--mono); font-size:.9rem; letter-spacing:2px;
  color:rgba(0,0,0,.4); margin-bottom:24px;
}
.cta__title {
  font-family:var(--jp); font-size:clamp(3rem,5vw,5.6rem);
  font-weight:700; line-height:1.25; margin-bottom:16px;
  position:relative; z-index:1;
  color:var(--bg);
}
.cta__title em { color:rgba(0,0,0,.5); font-style:normal; }
.cta__sub {
  font-size:1.4rem; color:rgba(0,0,0,.5); margin-bottom:64px;
  position:relative; z-index:1;
}
.cta__actions {
  display:flex; flex-direction:column; align-items:center; gap:32px;
  position:relative; z-index:1;
}
.cta__tel { display:flex; flex-direction:column; align-items:center; gap:6px; }
.cta__tel-label {
  font-family:var(--mono); font-size:.85rem; letter-spacing:3px;
  color:rgba(0,0,0,.4);
}
.cta__tel-num {
  font-family:var(--orb); font-size:3.6rem; font-weight:900;
  color:var(--bg); letter-spacing:4px;
  transition:opacity .3s;
}
.cta__tel-num:hover { opacity:.6; }
.cta__tel-note {
  font-family:var(--mono); font-size:.9rem; letter-spacing:2px;
  color:rgba(0,0,0,.4);
}

/* =============================================
   BUTTONS
============================================= */
/* CTA背景上のボタン上書き */
.cta .btn-primary {
  color:var(--accent); background:var(--bg);
  border-color:var(--bg);
}
.cta .btn-primary:hover {
  background:transparent; color:var(--bg);
  border-color:var(--bg);
  box-shadow:none;
}
.btn-primary {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  color:var(--bg); background:var(--accent);
  padding:14px 32px;
  border:1px solid var(--accent);
  transition:background .3s, color .3s, box-shadow .3s;
  white-space:nowrap;
}
.btn-primary:hover {
  background:transparent; color:var(--accent);
  box-shadow:0 0 16px rgba(35,174,180,.2);
}
.btn-primary__icon { font-size:.8em; }
.btn-primary--lg { font-size:1.2rem; padding:18px 40px; }

.btn-ghost {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  color:var(--white-m);
  border:1px solid var(--border-d);
  padding:14px 28px;
  transition:color .3s, border-color .3s;
  white-space:nowrap;
}
.btn-ghost:hover { color:var(--accent); border-color:var(--accent); }
.btn-ghost__arr { color:var(--accent); transition:transform .3s; }
.btn-ghost:hover .btn-ghost__arr { transform:translateX(4px); }

/* =============================================
   FOOTER
============================================= */
.footer {
  position:relative; z-index:2;
  background:var(--bg);
  border-top:1px solid var(--border);
  padding:64px 64px 32px;
}
.footer__top {
  display:grid; grid-template-columns:220px 1fr; gap:80px;
  margin-bottom:48px; padding-bottom:48px;
  border-bottom:1px solid var(--border-d);
}
.footer__logo {
  font-family:var(--orb); font-size:2rem; font-weight:700;
  letter-spacing:2px; margin-bottom:12px;
  color:var(--accent);
}
.footer__tagline {
  font-family:var(--mono); font-size:.9rem; letter-spacing:2px;
  color:var(--white-d);
}
.footer__nav {
  display:grid; grid-template-columns:repeat(4,1fr); gap:32px;
}
.footer__col-title {
  font-family:var(--mono); font-size:.85rem; letter-spacing:3px;
  color:var(--accent); margin-bottom:16px;
}
.footer__col a {
  display:block; font-size:1.3rem; color:var(--white-d);
  margin-bottom:10px; transition:color .25s, padding-left .25s;
}
.footer__col a:hover { color:var(--white); padding-left:6px; }
.footer__bottom {
  display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:.9rem; letter-spacing:1px;
  color:rgba(255,255,255,.12);
}
.footer__bottom a { color:var(--white-d); transition:color .25s; }
.footer__bottom a:hover { color:var(--white); }

@media(max-width:1024px){ .footer { padding:56px 32px 28px; } .footer__top { grid-template-columns:1fr; gap:40px; } }
@media(max-width:767px){ .footer__nav { grid-template-columns:1fr 1fr; gap:24px; } .footer__bottom { flex-direction:column; gap:12px; } }

/* =============================================
   SCROLL REVEAL
============================================= */
.js-reveal {
  opacity:0; transform:translateY(32px);
  transition:opacity .8s cubic-bezier(.4,0,.2,1), transform .8s cubic-bezier(.4,0,.2,1);
}
.js-reveal.visible { opacity:1; transform:none; }

/* =============================================
   SINGLE PAGE
============================================= */
.single-page__header {
  padding: 160px 64px 64px;
  background: var(--bg2);
  border-bottom: 1px solid var(--border);
}
.single-page__inner { max-width: 860px; margin: 0 auto; }
.single-page__meta {
  display: flex; align-items: center; gap: 16px; margin-bottom: 20px;
}
.single-page__cat {
  font-family: var(--mono); font-size: .85rem; letter-spacing: 2px;
  color: var(--accent); border: 1px solid var(--border); padding: 3px 12px;
}
.single-page__date {
  font-family: var(--mono); font-size: .9rem; color: var(--white-d); letter-spacing: 1px;
}
.single-page__title {
  font-size: clamp(2.4rem, 4vw, 3.6rem); font-weight: 700; line-height: 1.4;
}
.single-page__body { padding: 64px 64px 120px; }
.single-page__thumb { margin-bottom: 48px; border-radius: 8px; overflow: hidden; }
.single-page__thumb img { width: 100%; height: auto; display: block; }
.single-page__content {
  font-size: 1.5rem; color: var(--white-m); line-height: 2;
}
.single-page__content h2 { font-size: 2rem; font-weight: 700; color: var(--white); margin: 48px 0 16px; padding-left: 16px; border-left: 3px solid var(--accent); }
.single-page__content h3 { font-size: 1.7rem; font-weight: 700; color: var(--white); margin: 36px 0 12px; }
.single-page__content p { margin-bottom: 20px; }
.single-page__content img { max-width: 100%; border-radius: 8px; margin: 24px 0; }
.single-page__nav {
  display: flex; justify-content: space-between; gap: 16px;
  margin-top: 80px; padding-top: 40px; border-top: 1px solid var(--border);
}
.single-page__nav-link {
  display: flex; flex-direction: column; gap: 6px;
  font-family: var(--mono); font-size: .9rem; letter-spacing: 1px;
  color: var(--white-m); max-width: 320px; transition: color .3s;
}
.single-page__nav-link:hover { color: var(--accent); }
.single-page__nav-title { font-size: 1.3rem; font-family: var(--jp); font-weight: 300; }
.single-page__nav-link--next { text-align: right; margin-left: auto; }

/* =============================================
   PAGE CONTENT
============================================= */
.page-content__header {
  padding: 160px 24px 56px;
  background: var(--bg2);
  border-bottom: 1px solid var(--border);
}
.page-content__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
}
.page-content__title {
  font-size: clamp(2.8rem, 5vw, 4.4rem); font-weight: 700;
}
.page-content__body {
  padding: 64px 0 120px;
}
.page-content__body .page-content__inner {
  padding: 0 24px;
}
.page-content__text {
  font-size: 1.5rem; color: var(--white-m); line-height: 2;
}
.page-content__text h2 { font-size: 2rem; font-weight: 700; color: var(--white); margin: 48px 0 16px; padding-left: 16px; border-left: 3px solid var(--accent); }
.page-content__text h3 { font-size: 1.7rem; font-weight: 700; color: var(--white); margin: 36px 0 12px; }
.page-content__text p { margin-bottom: 20px; }
.page-content__text img { max-width: 100%; border-radius: 8px; margin: 24px 0; }
.page-content__text table { width: 100%; border-collapse: collapse; margin: 24px 0; }
.page-content__text table th, .page-content__text table td { padding: 14px 20px; border: 1px solid var(--border); font-size: 1.4rem; }
.page-content__text table th { background: var(--bg2); color: var(--accent); font-family: var(--mono); letter-spacing: 1px; }

@media(max-width:767px){
  .single-page__header, .page-content__header { padding: 120px 24px 48px; }
  .single-page__body, .page-content__body { padding: 40px 24px 80px; }
  .single-page__nav { flex-direction: column; }
  .single-page__nav-link--next { text-align: left; margin-left: 0; }
}

/* =============================================
   PAGE HERO（各下層ページ共通）
============================================= */
.page-hero {
  position:relative; z-index:2;
  padding:160px 64px 72px;
  background:var(--bg2);
  border-bottom:1px solid var(--border);
  overflow:hidden;
}
.page-hero::before {
  content:attr(data-title);
  position:absolute; right:-20px; bottom:-40px;
  font-family:var(--orb); font-size:18rem; font-weight:900;
  color:rgba(255,255,255,.03); line-height:1;
  pointer-events:none; user-select:none; white-space:nowrap;
}
.page-hero__label {
  font-family:var(--mono); font-size:.9rem; letter-spacing:3px;
  color:var(--accent); margin-bottom:16px;
}
.page-hero__title {
  font-family:var(--jp); font-size:clamp(3.6rem,7vw,7rem);
  font-weight:700; line-height:1; letter-spacing:2px;
  margin-bottom:12px;
}
.page-hero__sub {
  font-family:var(--mono); font-size:1.2rem; letter-spacing:4px;
  color:var(--accent); opacity:.6; text-transform:uppercase;
}

/* =============================================
   COMPANY TABLE
============================================= */
.company-table {
  border:1px solid var(--border-d);
}
.company-table__row {
  display:grid; grid-template-columns:200px 1fr;
  border-bottom:1px solid var(--border-d);
}
.company-table__row:last-child { border-bottom:none; }
.company-table__label {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:1px;
  color:var(--accent); opacity:.8;
  padding:20px 24px;
  background:var(--bg2);
  border-right:1px solid var(--border-d);
  display:flex; align-items:center;
}
.company-table__value {
  font-size:1.4rem; color:var(--white-m);
  padding:20px 28px;
  line-height:1.85;
  display:flex; align-items:center;
}

/* =============================================
   COMPANY ACCESS
============================================= */
.company-access {
  display:flex; flex-direction:column; gap:64px;
}
.company-access__block {
  display:grid; grid-template-columns:280px 1fr;
  gap:0;
  border:1px solid var(--border-d);
}
.company-access__info {
  padding:40px 32px;
  background:var(--bg2);
  border-right:1px solid var(--border-d);
  display:flex; flex-direction:column; gap:16px;
}
.company-access__name {
  font-family:var(--mono); font-size:1rem; letter-spacing:3px;
  color:var(--accent);
  padding-bottom:16px;
  border-bottom:1px solid var(--border-d);
}
.company-access__address {
  font-size:1.4rem; color:var(--white-m); line-height:1.85;
}
.company-access__tel {
  font-size:1.4rem; color:var(--white-m);
}
.company-access__tel a {
  color:var(--white); font-weight:700;
  transition:color .3s;
}
.company-access__tel a:hover { color:var(--accent); }
.company-access__hours {
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--white-d);
}
.company-access__map {
  position:relative; min-height:320px;
  background:var(--bg3);
}
.company-access__map iframe {
  position:absolute; inset:0;
  width:100%; height:100%;
  filter:grayscale(1) invert(1) contrast(.8);
  opacity:.8;
}

@media(max-width:1024px){
  .company-table__row { grid-template-columns:160px 1fr; }
}
@media(max-width:767px){
  .page-hero { padding:120px 24px 56px; }
  .company-table__row { grid-template-columns:1fr; }
  .company-table__label { border-right:none; border-bottom:1px solid var(--border-d); padding:14px 20px; }
  .company-table__value { padding:14px 20px; }
  .company-access__block { grid-template-columns:1fr; }
  .company-access__info { border-right:none; border-bottom:1px solid var(--border-d); }
  .company-access__map { min-height:240px; }
}

/* =============================================
   固定ページ・下層ページ共通：コンテンツ幅制限
============================================= */
/* 固定ページ・会社概要内のsecにmax-widthを適用 */
.page-company .sec > *,
.page-template-page-company .sec > *,
body.page .sec > * {
  max-width:1000px;
  margin-left:auto;
  margin-right:auto;
}

/* single記事ページのmax-width */
.single-page__inner {
  max-width:860px;
  margin:0 auto;
  padding:0 24px;
}
.single-page__header { padding:160px 24px 56px; }
.single-page__body   { padding:64px 0 120px; }

@media(max-width:767px){
  .page-content__header { padding:120px 16px 40px; }
  .single-page__header  { padding:120px 16px 40px; }
}

/* 会社概要・下層ページのsec内コンテンツをmax-width制限 */
.page-template-page-company .sec .company-table,
.page-template-page-company .sec .company-access,
.page-template-page-company .sec .sec__head {
  max-width:1000px;
  margin-left:auto;
  margin-right:auto;
}
/* page-heroも中央寄せ */
.page-hero__inner {
  max-width:1000px;
  margin:0 auto;
}

/* =============================================
   パンくずリスト
============================================= */
.breadcrumb {
  position:relative; z-index:2;
  background:var(--bg);
  border-bottom:1px solid var(--border-d);
  padding:0 64px;
}
.breadcrumb__inner {
  max-width:1000px; margin:0 auto;
  display:flex; align-items:center; gap:8px;
  height:44px;
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
}
.breadcrumb__item {
  color:var(--white-d);
  transition:color .25s;
}
a.breadcrumb__item:hover { color:var(--accent); }
.breadcrumb__item--current { color:var(--white-m); }
.breadcrumb__sep { color:var(--white-d); opacity:.4; }

@media(max-width:767px){
  .breadcrumb { padding:0 20px; }
}

/* =============================================
   標識・認定証（p-hyoshiki）
============================================= */
.p-hyoshiki {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
.p-hyoshiki__inner { max-width:760px; margin:0 auto; }
.p-hyoshiki__head  { margin-bottom:48px; }
.p-hyoshiki__label {
  font-family:var(--mono); font-size:.9rem; letter-spacing:3px;
  color:var(--accent); margin-bottom:10px;
}
.p-hyoshiki__subtitle {
  font-size:1.3rem; font-weight:300;
  color:var(--white-m); letter-spacing:1px;
}
.p-hyoshiki__cert {
  background:var(--bg2);
  border:1px solid var(--border);
  padding:40px;
  display:flex; flex-direction:column; align-items:flex-start; gap:24px;
}

/* 画像プレースホルダー */
.p-hyoshiki__img-dummy {
  width:100%; aspect-ratio:4/3;
  background:var(--bg3);
  border:1px dashed rgba(255,255,255,.1);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:12px;
  position:relative;
}
.p-hyoshiki__img-dummy::before,
.p-hyoshiki__img-dummy::after {
  content:''; position:absolute; width:16px; height:16px;
}
.p-hyoshiki__img-dummy::before { top:12px; left:12px; border-top:1px solid rgba(35,174,180,.2); border-left:1px solid rgba(35,174,180,.2); }
.p-hyoshiki__img-dummy::after  { bottom:12px; right:12px; border-bottom:1px solid rgba(35,174,180,.2); border-right:1px solid rgba(35,174,180,.2); }
.p-hyoshiki__img-dummy svg { width:36px; height:36px; stroke:rgba(255,255,255,.2); }
.p-hyoshiki__img-dummy p {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px; color:var(--white-d);
}

/* 認定証ボタン（クリックで拡大） */
.p-hyoshiki__img-btn {
  display:block; width:100%;
  background:none; border:none; padding:0; cursor:pointer;
  position:relative; overflow:hidden;
}
.p-hyoshiki__cert-img {
  width:100%; height:auto; display:block;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.p-hyoshiki__img-btn:hover .p-hyoshiki__cert-img { transform:scale(1.02); }
.p-hyoshiki__img-zoom {
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  background:rgba(6,6,8,.55);
  color:var(--accent);
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px; text-transform:uppercase;
  opacity:0; transition:opacity .3s; z-index:1;
}
.p-hyoshiki__img-zoom svg { width:24px; height:24px; stroke:currentColor; }
.p-hyoshiki__img-btn:hover .p-hyoshiki__img-zoom { opacity:1; }

/* 「認定証を確認する」リンク */
.p-hyoshiki__link {
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:1.1rem; letter-spacing:1px;
  color:var(--accent); background:none; border:none; cursor:pointer;
  transition:gap .3s;
}
.p-hyoshiki__link svg { width:14px; height:14px; stroke:currentColor; }
.p-hyoshiki__link:hover { gap:10px; }

@media(max-width:767px){
  .p-hyoshiki { padding:56px 24px; }
  .p-hyoshiki__cert { padding:24px; }
}

/* =============================================
   認定証モーダル
============================================= */
.p-cert-modal {
  position:fixed; inset:0; z-index:9000;
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.p-cert-modal[hidden] { display:none !important; }
.p-cert-modal__overlay {
  position:absolute; inset:0;
  background:rgba(6,6,8,.92);
  backdrop-filter:blur(8px);
  cursor:pointer;
}
.p-cert-modal__content {
  position:relative; z-index:1;
  width:100%; max-width:680px;
  background:var(--bg2);
  border:1px solid var(--border);
  animation:modalIn .3s cubic-bezier(.4,0,.2,1);
}
@keyframes modalIn {
  from { opacity:0; transform:scale(.95); }
  to   { opacity:1; transform:scale(1);   }
}
.p-cert-modal__close {
  position:absolute; top:-48px; right:0; z-index:2;
  width:40px; height:40px;
  background:rgba(35,174,180,.1);
  border:1px solid rgba(35,174,180,.25);
  color:var(--accent); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.p-cert-modal__close:hover { background:rgba(35,174,180,.25); }
.p-cert-modal__close svg { width:18px; height:18px; stroke:currentColor; }
.p-cert-modal__img { width:100%; height:auto; display:block; }

@media(max-width:767px){
  .p-cert-modal { padding:16px; }
  .p-cert-modal__close { top:-44px; }
}

/* =============================================
   事業内容 一覧（p-business）
============================================= */
.p-business {
  background:var(--bg);
  padding:100px 64px;
  border-top:1px solid var(--border);
}
.p-business__inner {
  max-width:1200px; margin:0 auto;
  display:flex; flex-direction:column;
  gap:2px; background:var(--border);
}
.p-business__block {
  display:grid; grid-template-columns:1fr 1fr;
  background:var(--bg);
}
.p-business__block--alt { grid-template-columns:1fr 1fr; }
.p-business__block--alt .p-business__img  { order:2; }
.p-business__block--alt .p-business__body { order:1; }

.p-business__img {
  position:relative; aspect-ratio:4/3; overflow:hidden;
  background:var(--bg2);
}
.p-business__img img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.p-business__block:hover .p-business__img img { transform:scale(1.04); }

.p-business__img-dummy {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--bg3) 0%, rgba(35,174,180,.04) 100%);
}
.p-business__img-dummy::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(35,174,180,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(35,174,180,.04) 1px, transparent 1px);
  background-size:32px 32px;
}
.p-business__img-dummy svg {
  width:72px; height:72px; stroke:rgba(35,174,180,.2);
  position:relative; z-index:1;
}

.p-business__body {
  padding:64px; background:var(--bg2);
  display:flex; flex-direction:column; justify-content:center; gap:28px;
  border-left:1px solid var(--border);
}
.p-business__block--alt .p-business__body {
  border-left:none; border-right:1px solid var(--border);
}
.p-business__head { display:flex; align-items:flex-start; gap:16px; }
.p-business__num {
  font-family:var(--orb); font-size:5.6rem; line-height:1;
  color:rgba(35,174,180,.12); flex-shrink:0; margin-top:-6px;
}
.p-business__en {
  font-family:var(--mono); font-size:1rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase; margin-bottom:8px;
}
.p-business__name {
  font-family:var(--jp); font-size:3.2rem; font-weight:700;
  color:var(--white); line-height:1.1;
}
.p-business__desc {
  font-size:1.45rem; font-weight:300; color:var(--white-m);
  line-height:2; padding-left:20px;
  border-left:2px solid var(--border);
}
.p-business__list {
  display:flex; flex-direction:column; gap:0; list-style:none;
}
.p-business__list li {
  font-size:1.35rem; font-weight:300; color:rgba(232,234,237,.6);
  display:flex; align-items:center; gap:10px;
  padding:10px 0; border-bottom:1px solid var(--border-d);
}
.p-business__list li::before {
  content:''; display:block; width:6px; height:6px;
  border-radius:50%; background:var(--accent); flex-shrink:0; opacity:.6;
}
.p-business__more {
  display:inline-flex; align-items:center; gap:10px;
  margin-top:8px;
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  text-transform:uppercase; color:var(--accent);
  border:1px solid rgba(35,174,180,.3); padding:14px 28px;
  transition:background .25s, gap .3s, border-color .25s;
}
.p-business__more svg { width:14px; height:14px; stroke:currentColor; flex-shrink:0; transition:transform .3s; }
.p-business__more:hover { background:rgba(35,174,180,.08); border-color:var(--accent); gap:16px; }
.p-business__more:hover svg { transform:translateX(4px); }

@media(max-width:1024px){
  .p-business { padding:72px 32px; }
  .p-business__body { padding:48px; }
}
@media(max-width:767px){
  .p-business { padding:56px 0; }
  .p-business__block, .p-business__block--alt { grid-template-columns:1fr; }
  .p-business__block--alt .p-business__img  { order:0; }
  .p-business__block--alt .p-business__body { order:0; border-right:none; }
  .p-business__img { aspect-ratio:16/9; }
  .p-business__body { padding:36px 24px; border-left:none; border-top:1px solid var(--border); }
  .p-business__num  { font-size:4rem; }
  .p-business__name { font-size:2.6rem; }
}

/* =============================================
   事業内容 詳細（p-biz-*）
============================================= */
.p-biz-detail {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.p-biz-detail__inner {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.p-biz-detail__lead { display:flex; flex-direction:column; gap:24px; }
.p-biz-detail__num {
  font-family:var(--orb); font-size:8rem; line-height:1;
  color:rgba(35,174,180,.12); letter-spacing:4px;
}
.p-biz-detail__en {
  font-family:var(--mono); font-size:1rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase; margin-bottom:4px;
}
.p-biz-detail__ttl {
  font-size:clamp(2.8rem,4vw,4.2rem); font-weight:700;
  color:var(--white); line-height:1.3; margin-bottom:16px;
}
.p-biz-detail__desc {
  font-size:1.55rem; font-weight:300;
  color:var(--white-m); line-height:2.2;
}
.p-biz-detail__img { position:relative; overflow:hidden; }
.p-biz-detail__img::before {
  content:''; position:absolute; inset:-8px -8px auto auto;
  width:48px; height:48px;
  border-top:2px solid var(--accent); border-right:2px solid var(--accent); z-index:1;
}
.p-biz-detail__img::after {
  content:''; position:absolute; inset:auto auto -8px -8px;
  width:48px; height:48px;
  border-bottom:2px solid var(--accent); border-left:2px solid var(--accent); z-index:1;
}
.p-biz-detail__img img {
  width:100%; height:auto; display:block;
  aspect-ratio:4/3; object-fit:cover;
  transition:transform .6s ease;
}
.p-biz-detail__img:hover img { transform:scale(1.03); }
.p-biz-detail__img-dummy {
  position:absolute; inset:0;
  background:linear-gradient(135deg, var(--bg3) 0%, rgba(35,174,180,.04) 100%);
  z-index:0;
}
.p-biz-detail__img img { position:relative; z-index:1; }

/* FEATURES */
.p-biz-features {
  background:var(--bg2);
  padding:80px 64px; border-top:1px solid var(--border);
}
.p-biz-features__inner { max-width:1200px; margin:0 auto; }
.p-biz-features__head  { margin-bottom:56px; }
.p-biz-features__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.5; margin-top:12px;
}
.p-biz-features__grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border);
}
.p-biz-features__item {
  background:var(--bg3); padding:40px 36px 48px; position:relative;
}
.p-biz-features__item::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--accent), transparent);
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s ease;
}
.p-biz-features__item:hover::after { transform:scaleX(1); }
.p-biz-features__num {
  font-family:var(--orb); font-size:4rem;
  color:rgba(35,174,180,.2); letter-spacing:2px;
  display:block; margin-bottom:16px;
}
.p-biz-features__name {
  font-size:1.8rem; font-weight:700;
  color:var(--white); margin-bottom:16px; line-height:1.5;
}
.p-biz-features__text {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* USE CASES */
.p-biz-cases {
  background:var(--bg);
  padding:80px 64px; border-top:1px solid var(--border);
}
.p-biz-cases__inner { max-width:900px; margin:0 auto; }
.p-biz-cases__head  { margin-bottom:48px; }
.p-biz-cases__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.5; margin-top:12px;
}
.p-biz-cases__list  { list-style:none; display:flex; flex-direction:column; }
.p-biz-cases__item  {
  display:grid; grid-template-columns:auto 1fr; gap:24px;
  align-items:flex-start; padding:32px 0;
  border-bottom:1px solid var(--border);
}
.p-biz-cases__item:first-child { border-top:1px solid var(--border); }
.p-biz-cases__icon  {
  font-family:var(--mono); font-size:1.4rem;
  color:var(--accent); margin-top:4px; flex-shrink:0;
}
.p-biz-cases__name  { font-size:1.7rem; font-weight:700; color:var(--white); margin-bottom:10px; }
.p-biz-cases__text  { font-size:1.45rem; font-weight:300; color:var(--white-m); line-height:1.9; }

/* OTHER SERVICES */
.p-biz-others {
  background:var(--bg2);
  padding:80px 64px; border-top:1px solid var(--border);
}
.p-biz-others__inner { max-width:1200px; margin:0 auto; }
.p-biz-others__inner > .p-biz-detail__en { display:block; margin-bottom:32px; }
.p-biz-others__grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border);
}
.p-biz-others__card {
  position:relative; overflow:hidden; display:block;
  aspect-ratio:4/3; background:var(--bg3);
}
.p-biz-others__img-dummy {
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(135deg, var(--bg3) 0%, rgba(35,174,180,.04) 100%);
}
.p-biz-others__card img {
  width:100%; height:100%; object-fit:cover;
  position:absolute; inset:0;
  transition:transform .6s ease; z-index:1;
}
.p-biz-others__card:hover img { transform:scale(1.05); }
.p-biz-others__card::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(6,6,8,.85) 0%, rgba(6,6,8,.2) 60%, transparent 100%);
  z-index:2;
}
.p-biz-others__card-body { position:absolute; bottom:28px; left:28px; z-index:3; }
.p-biz-others__card-en {
  font-family:var(--mono); font-size:1rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase; margin-bottom:6px;
}
.p-biz-others__card-name { font-size:2rem; font-weight:700; color:var(--white); }
.p-biz-others__card-arr {
  position:absolute; bottom:28px; right:28px; z-index:3;
  font-family:var(--mono); font-size:1.8rem; color:var(--accent);
  transition:transform .3s ease;
}
.p-biz-others__card:hover .p-biz-others__card-arr { transform:translateX(6px); }

@media(max-width:1024px){
  .p-biz-detail { padding:64px 32px; }
  .p-biz-features, .p-biz-cases, .p-biz-others { padding:64px 32px; }
  .p-biz-features__grid { grid-template-columns:1fr 1fr; }
  .p-biz-others__grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:767px){
  .p-biz-detail__inner { grid-template-columns:1fr; gap:40px; }
  .p-biz-detail, .p-biz-features, .p-biz-cases, .p-biz-others { padding:56px 24px; }
  .p-biz-features__grid { grid-template-columns:1fr; }
  .p-biz-others__grid   { grid-template-columns:1fr; }
  .p-biz-features__item { padding:28px 20px; }
}

/* =============================================
   お知らせアーカイブ（p-news-archive）
============================================= */
.p-news-archive {
  background:var(--bg);
  padding:80px 64px 100px;
  border-top:1px solid var(--border);
}
.p-news-archive__inner {
  max-width:900px; margin:0 auto;
}

/* カテゴリフィルター */
.p-news-archive__filter {
  display:flex; gap:2px;
  margin-bottom:56px;
  border-bottom:1px solid var(--border);
}
.p-news-archive__filter-item {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  text-transform:uppercase; color:var(--white-d);
  padding:14px 28px; position:relative;
  transition:color .2s;
}
.p-news-archive__filter-item::after {
  content:''; position:absolute; bottom:-1px; left:0; right:0;
  height:2px; background:var(--accent);
  transform:scaleX(0); transition:transform .3s;
}
.p-news-archive__filter-item:hover { color:var(--white); }
.p-news-archive__filter-item--active { color:var(--white); }
.p-news-archive__filter-item--active::after { transform:scaleX(1); }

/* リスト */
.p-news-archive__list { display:flex; flex-direction:column; }
.p-news-archive__item {
  display:grid; grid-template-columns:100px auto 1fr auto;
  align-items:center; gap:20px;
  padding:24px 16px;
  border-bottom:1px solid var(--border);
  color:inherit; position:relative;
  transition:background .25s, padding-left .25s;
}
.p-news-archive__item:first-child { border-top:1px solid var(--border); }
.p-news-archive__item::before {
  content:''; position:absolute; left:0; top:0; bottom:0; width:2px;
  background:var(--accent);
  transform:scaleY(0); transition:transform .3s cubic-bezier(.4,0,.2,1);
}
.p-news-archive__item:hover { background:rgba(35,174,180,.03); padding-left:24px; }
.p-news-archive__item:hover::before { transform:scaleY(1); }

.p-news-archive__date {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:1px;
  color:var(--white-d); white-space:nowrap;
}
.p-news-archive__tag {
  font-family:var(--mono); font-size:.9rem; letter-spacing:2px;
  text-transform:uppercase; padding:4px 10px;
  border:1px solid currentColor; white-space:nowrap; line-height:1;
}
.p-news-archive__tag--info   { color:var(--accent2); }
.p-news-archive__tag--new    { color:var(--accent); }
.p-news-archive__tag--recruit{ color:#a78bfa; }
.p-news-archive__tag--event  { color:#34d399; }
.p-news-archive__title {
  font-size:1.5rem; font-weight:400; color:rgba(232,234,237,.9);
  line-height:1.7; transition:color .2s;
}
.p-news-archive__item:hover .p-news-archive__title { color:var(--white); }
.p-news-archive__arrow {
  display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; border:1px solid var(--border); flex-shrink:0;
  transition:border-color .2s, background .2s, transform .3s;
}
.p-news-archive__arrow svg { width:14px; height:14px; stroke:var(--white-d); transition:stroke .2s; }
.p-news-archive__item:hover .p-news-archive__arrow {
  border-color:rgba(35,174,180,.4); background:rgba(35,174,180,.05); transform:translateX(4px);
}
.p-news-archive__item:hover .p-news-archive__arrow svg { stroke:var(--accent); }

@media(max-width:767px){
  .p-news-archive { padding:56px 24px 72px; }
  .p-news-archive__filter { flex-wrap:wrap; }
  .p-news-archive__filter-item { padding:12px 16px; font-size:1rem; }
  .p-news-archive__item {
    grid-template-columns:auto 1fr auto;
    grid-template-rows:auto auto;
    gap:8px 12px; padding:20px 12px;
  }
  .p-news-archive__date { grid-column:1; grid-row:1; }
  .p-news-archive__tag  { grid-column:2; grid-row:1; }
  .p-news-archive__title{ grid-column:1/4; grid-row:2; }
  .p-news-archive__arrow{ grid-column:3; grid-row:1; }
}

/* =============================================
   ブログアーカイブ（p-col-archive）
============================================= */
.p-col-archive {
  background:var(--bg);
  padding:80px 64px 100px;
  border-top:1px solid var(--border);
}
.p-col-archive__inner { max-width:1200px; margin:0 auto; }

/* カテゴリタブ */
.p-col-archive__tab {
  display:flex; gap:2px; margin-bottom:64px;
  border-bottom:1px solid var(--border);
}
.p-col-archive__tab-item {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  text-transform:uppercase; color:var(--white-d);
  padding:14px 32px; position:relative;
  transition:color .2s;
}
.p-col-archive__tab-item::after {
  content:''; position:absolute; bottom:-1px; left:0; right:0;
  height:2px; background:var(--accent);
  transform:scaleX(0); transition:transform .3s;
}
.p-col-archive__tab-item:hover { color:var(--white); }
.p-col-archive__tab-item--active { color:var(--white); }
.p-col-archive__tab-item--active::after { transform:scaleX(1); }

/* カードグリッド */
.p-col-archive__grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}

/* カード */
.p-col-card {
  background:var(--bg2); border:1px solid var(--border);
  overflow:hidden;
  transition:background .3s, border-color .3s;
  position:relative;
}
.p-col-card::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--accent), var(--accent2));
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.p-col-card:hover { background:var(--bg3); border-color:rgba(35,174,180,.15); }
.p-col-card:hover::after { transform:scaleX(1); }
.p-col-card__link { display:block; color:inherit; }

.p-col-card__img {
  aspect-ratio:3/2; overflow:hidden;
  background:var(--bg3); position:relative;
}
.p-col-card__img img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover;
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.p-col-card:hover .p-col-card__img img { transform:scale(1.05); }
.p-col-card__img-dummy {
  position:absolute; inset:0;
  background:linear-gradient(135deg, var(--bg3) 0%, rgba(35,174,180,.04) 100%);
}
.p-col-card__cat {
  position:absolute; bottom:10px; left:10px; z-index:2;
  font-family:var(--mono); font-size:.8rem; letter-spacing:2px;
  color:var(--bg); background:var(--accent); padding:3px 10px;
}
.p-col-card__body { padding:20px 24px 28px; }
.p-col-card__date {
  display:block;
  font-family:var(--mono); font-size:.95rem; letter-spacing:1px;
  color:var(--white-d); margin-bottom:10px;
}
.p-col-card__title {
  font-size:1.45rem; font-weight:500; color:rgba(232,234,237,.9);
  line-height:1.75; margin-bottom:12px;
  display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden;
}
.p-col-card__excerpt {
  font-size:1.25rem; font-weight:300; color:var(--white-d);
  line-height:1.8;
  display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden;
}

/* ページネーション（共通） */
.p-col-archive__pager {
  display:flex; align-items:center; gap:8px;
  justify-content:center; margin-top:64px;
}
.p-col-archive__pager-item {
  font-family:var(--mono); font-size:1.2rem; letter-spacing:1px;
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border); color:var(--white-d);
  transition:border-color .2s, color .2s, background .2s;
}
.p-col-archive__pager-item:hover {
  border-color:rgba(35,174,180,.4); color:var(--white); background:rgba(35,174,180,.05);
}
.p-col-archive__pager-item--current {
  border-color:var(--accent); color:var(--accent); background:rgba(35,174,180,.06);
}
.p-col-archive__pager-next {
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  color:var(--white-d); padding:0 16px; height:44px;
  border:1px solid var(--border);
  transition:color .2s, border-color .2s, gap .3s;
  text-transform:uppercase;
}
.p-col-archive__pager-next svg { width:14px; height:14px; stroke:currentColor; flex-shrink:0; }
.p-col-archive__pager-next:hover { color:var(--white); border-color:rgba(35,174,180,.4); gap:12px; }

/* 空状態 */
.archive-empty {
  font-family:var(--mono); font-size:1.2rem; letter-spacing:2px;
  color:var(--white-d); padding:40px 0;
}

@media(max-width:1024px){
  .p-col-archive { padding:64px 32px 80px; }
  .p-col-archive__grid { grid-template-columns:repeat(2,1fr); gap:16px; }
}
@media(max-width:600px){
  .p-col-archive { padding:48px 20px 64px; }
  .p-col-archive__grid { grid-template-columns:1fr; gap:12px; }
  .p-col-archive__tab-item { padding:12px 16px; font-size:1rem; }
}
