/* =============================================
   CUSTOM CURSOR
============================================= */
.cursor {
  position:fixed; top:0; left:0;
  z-index:99999; pointer-events:none;
}
.cursor__dot {
  position:absolute;
  width:8px; height:8px;
  background:#23aeb4;
  border-radius:50%;
  transform:translate(-50%, -50%);
  box-shadow:0 0 8px #23aeb4, 0 0 16px rgba(35,174,180,.4);
}
.cursor__ring {
  position:absolute;
  width:36px; height:36px;
  border:1.5px solid rgba(35,174,180,.7);
  border-radius:50%;
  transform:translate(-50%, -50%);
  transition:width .25s ease, height .25s ease, border-color .25s;
}
body.cursor-hover .cursor__dot {
  width:10px; height:10px;
  box-shadow:0 0 12px #23aeb4;
}
body.cursor-hover .cursor__ring {
  width:52px; height:52px;
  border-color:rgba(35,174,180,.4);
  background:rgba(35,174,180,.05);
}
body.cursor-click .cursor__dot { width:5px; height:5px; }
body.cursor-click .cursor__ring { width:22px; height:22px; border-color:#23aeb4; }
@media(hover:none),(pointer:coarse){
  .cursor { display:none; }
  html, *, *::before, *::after { cursor:auto !important; }
  a, button { cursor:pointer !important; }
}

/* =============================================
   RESET & ROOT
============================================= */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; cursor:none !important; }
: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; cursor:none !important; }
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:none !important;
}
a { text-decoration:none; color:inherit; }
ul,li { list-style:none; }
button { border:none; background:none; cursor:none !important; }

/* =============================================
   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
  );
}


/* =============================================
   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 {
  display:flex; align-items:center;
  padding-left:20px;
}
.g-header__logo-img {
  height:auto; width:180px;
  max-width:180px;
  display:block;
  object-fit:contain;
}
.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; border-right:none; }
  .g-header__logo-block::before { display:none; }
  .g-header__burger { display:flex; }
  .g-header__nav-bar { justify-content:center; position:relative; }
  .g-header__burger { position:absolute; left:16px; border-left:none; width:44px; }

  /* ロゴ：スマホ版 */
  .g-header__logo {
    display:block;
    text-align:center;
    padding:0;
  }
  .g-header__logo-img {
    width:180px;
    height:auto;
    display:block;
    margin:0 auto;
  }
}

/* =============================================
   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:none !important;
  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:.85rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  opacity:.85;
}
.sec__sys::before {
  content:''; display:block;
  width:24px; height:1px;
  background:var(--accent);
  flex-shrink:0;
}
.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: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; } }
@media(max-width:1024px){ .cta { padding:72px 32px !important; } }
@media(max-width:767px){ .cta { padding:40px 20px !important; } }

/* =============================================
   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:.85rem; letter-spacing:3px;
  color:rgba(0,0,0,.35); margin-bottom:24px;
  text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
}
.cta__sys::before {
  content:''; display:block;
  width:20px; height:1px;
  background:rgba(0,0,0,.3);
  flex-shrink:0;
}
.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:var(--bg); font-style:normal; }
.cta__sub {
  font-size:1.4rem; color:rgba(0,0,0,.5); margin-bottom:64px;
  position:relative; z-index:1;
}
@media(max-width:767px){
  .cta__sub { margin-bottom:36px; }
  .cta__tel-num { font-size:2.8rem; }
}
.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-img {
  width:180px; height:auto;
  display:block; margin-bottom:16px;
}
.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-size:1.15rem; font-weight:700;
  color:var(--white); margin-bottom:18px;
  letter-spacing:.04em;
  padding-bottom:10px;
  border-bottom:1px solid var(--border);
}
.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:.8rem; letter-spacing:4px;
  color:var(--accent); margin-bottom:20px;
  text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
}
.page-hero__label::before {
  content:''; display:block;
  width:28px; height:1px;
  background:var(--accent);
  flex-shrink:0;
}
.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:none !important;
  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:none !important;
  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:none !important;
}
.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:none !important;
  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; }
}


/* =============================================
   事業内容 詳細（biz-* 共通）
============================================= */

/* --- OPENING --- */
.biz-opening {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.biz-opening__inner {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 380px;
  gap:80px; align-items:start;
}
.biz-opening__catch {
  font-size:clamp(2.8rem,4vw,4.4rem); font-weight:700;
  color:var(--white); line-height:1.5;
  margin-bottom:32px; letter-spacing:.02em;
}
.biz-opening__body {
  font-size:1.55rem; font-weight:300;
  color:var(--white-m); line-height:2.2;
  margin-bottom:18px;
}
.biz-opening__stat-col {
  display:flex; flex-direction:column; gap:2px;
  background:var(--border);
}
.biz-opening__stat {
  background:var(--bg3);
  padding:28px 32px;
  display:flex; flex-direction:column; gap:8px;
}
.biz-opening__stat-num {
  font-family:var(--orb); font-size:2.4rem; font-weight:700;
  color:var(--accent); line-height:1;
}
.biz-opening__stat-num small {
  font-size:1.3rem; font-weight:400; color:var(--white-m);
}
.biz-opening__stat-label {
  font-family:var(--mono); font-size:1.05rem;
  letter-spacing:1px; color:var(--white-d);
}

/* --- SCENE --- */
.biz-scene {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.biz-scene__inner { max-width:1200px; margin:0 auto; }
.biz-scene__head  { margin-bottom:56px; }
.biz-scene__label {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:16px;
}
.biz-scene__label::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent);
  flex-shrink:0;
}
.biz-scene__ttl {
  font-size:clamp(2.6rem,3.8vw,4rem); font-weight:700;
  color:var(--white); line-height:1.45;
}
.biz-scene__grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:2px; background:var(--border);
}
.biz-scene__card {
  background:var(--bg3);
  padding:44px 40px 48px;
  position:relative; overflow:hidden;
  transition:background .3s;
}
.biz-scene__card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--accent), transparent);
  transform:scaleX(0); transform-origin:left;
  transition:transform .4s ease;
}
.biz-scene__card:hover { background:rgba(17,19,24,.95); }
.biz-scene__card:hover::before { transform:scaleX(1); }
.biz-scene__card-id {
  font-family:var(--mono); font-size:.9rem; letter-spacing:3px;
  color:rgba(35,174,180,.5); text-transform:uppercase;
  margin-bottom:20px;
}
.biz-scene__card-name {
  font-size:2rem; font-weight:700;
  color:var(--white); margin-bottom:16px; line-height:1.4;
}
.biz-scene__card-text {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2; margin-bottom:24px;
}
.biz-scene__card-tag {
  font-family:var(--mono); font-size:.95rem; letter-spacing:1px;
  color:var(--accent); opacity:.7;
  padding-top:20px; border-top:1px solid var(--border);
}

/* --- FLOW --- */
.biz-flow {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.biz-flow__inner { max-width:860px; margin:0 auto; }
.biz-flow__head  { margin-bottom:56px; }
.biz-flow__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.5; margin-top:16px;
}
.biz-flow__list {
  list-style:none;
  display:flex; flex-direction:column;
  position:relative;
}
.biz-flow__list::before {
  content:''; position:absolute;
  left:72px; top:0; bottom:0; width:1px;
  background:var(--border);
}
.biz-flow__item {
  display:grid; grid-template-columns:140px 1fr;
  gap:32px; align-items:start;
  padding:40px 0; border-bottom:1px solid var(--border-d);
  position:relative;
}
.biz-flow__item:first-child { padding-top:0; }
.biz-flow__item:last-child  { border-bottom:none; padding-bottom:0; }
.biz-flow__step {
  font-family:var(--mono); font-size:1rem; letter-spacing:2px;
  color:var(--accent); padding-top:4px;
  position:relative; z-index:1;
}
.biz-flow__name {
  font-size:1.8rem; font-weight:700;
  color:var(--white); margin-bottom:12px; line-height:1.4;
}
.biz-flow__text {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* --- POINT --- */
.biz-point {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.biz-point__inner { max-width:900px; margin:0 auto; }
.biz-point__head  { margin-bottom:56px; }
.biz-point__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.5; margin-top:16px;
}
.biz-point__list {
  display:flex; flex-direction:column;
}
.biz-point__item {
  display:grid; grid-template-columns:72px 1fr;
  gap:32px; align-items:start;
  padding:40px 0; border-bottom:1px solid var(--border);
}
.biz-point__item:first-child { border-top:1px solid var(--border); }
.biz-point__mark {
  font-family:var(--orb); font-size:3.6rem; line-height:1;
  color:rgba(35,174,180,.2); padding-top:4px;
}
.biz-point__name {
  font-size:1.8rem; font-weight:700;
  color:var(--white); margin-bottom:14px; line-height:1.5;
}
.biz-point__text {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* --- NOTE --- */
.biz-note {
  background:var(--bg3);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.biz-note__inner {
  max-width:800px; margin:0 auto;
  text-align:center;
}
.biz-note__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  margin-bottom:40px;
  display:inline-flex; align-items:center; gap:12px;
}
.biz-note__sys::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent);
  flex-shrink:0;
}
.biz-note__quote {
  font-size:clamp(1.9rem,2.5vw,2.6rem); font-weight:700;
  color:var(--white); line-height:2;
  font-style:normal;
  padding:0 32px;
  border:none;
  position:relative;
}
.biz-note__quote::before {
  content:'"';
  font-family:var(--orb); font-size:8rem; line-height:1;
  color:rgba(35,174,180,.1);
  position:absolute; top:-16px; left:-16px;
}
.biz-note__sign {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  color:var(--white-d); margin-top:40px;
}

/* --- OTHERS --- */
.biz-others {
  background:var(--bg);
  padding:60px 64px;
  border-top:1px solid var(--border);
}
.biz-others__inner { max-width:1200px; margin:0 auto; }
.biz-others__label {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--white-d); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:24px;
}
.biz-others__label::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--white-d);
  flex-shrink:0;
}
.biz-others__row {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border);
}
.biz-others__item {
  background:var(--bg2);
  padding:32px 36px;
  display:flex; align-items:center; gap:20px;
  color:inherit; position:relative; overflow:hidden;
  transition:background .25s;
}
.biz-others__item:hover { background:var(--bg3); }
.biz-others__num {
  font-family:var(--orb); font-size:2.2rem;
  color:rgba(35,174,180,.25); flex-shrink:0;
}
.biz-others__name {
  font-size:1.6rem; font-weight:700;
  color:var(--white); flex:1; line-height:1.4;
}
.biz-others__arr {
  font-family:var(--mono); font-size:1.6rem;
  color:var(--accent); flex-shrink:0;
  transition:transform .3s;
}
.biz-others__item:hover .biz-others__arr { transform:translateX(6px); }

/* --- RESPONSIVE --- */
@media(max-width:1024px){
  .biz-opening,.biz-scene,.biz-flow,.biz-point,.biz-note,.biz-others { padding:64px 32px; }
  .biz-opening__inner { grid-template-columns:1fr; gap:48px; }
  .biz-opening__stat-col { flex-direction:row; }
  .biz-opening__stat { flex:1; }
}
@media(max-width:767px){
  .biz-opening,.biz-scene,.biz-flow,.biz-point,.biz-note,.biz-others { padding:56px 24px; }
  .biz-scene__grid  { grid-template-columns:1fr; }
  .biz-others__row  { grid-template-columns:1fr; }
  .biz-flow__list::before { left:48px; }
  .biz-flow__item { grid-template-columns:100px 1fr; gap:20px; }
  .biz-point__item { grid-template-columns:52px 1fr; gap:20px; }
  .biz-point__mark { font-size:2.8rem; }
  .biz-note__quote { padding:0 8px; font-size:1.9rem; }
  .biz-opening__stat-col { flex-direction:column; }
  .biz-scene__card { padding:32px 28px 36px; }
}



/* =============================================
   交通誘導警備ページ（trf-*）
============================================= */

/* --- LEAD --- */
.trf-lead {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.trf-lead__inner {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.trf-lead__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:20px;
}
.trf-lead__sys::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.trf-lead__ttl {
  font-size:clamp(2.8rem,4vw,4.4rem); font-weight:700;
  color:var(--white); line-height:1.45; margin-bottom:28px;
}
.trf-lead__body {
  font-size:1.55rem; font-weight:300;
  color:var(--white-m); line-height:2.2; margin-bottom:18px;
}
.trf-lead__certs {
  display:flex; gap:2px; margin-top:40px;
  background:var(--border);
}
.trf-lead__cert {
  background:var(--bg3); flex:1;
  padding:24px 28px;
  display:flex; flex-direction:column; gap:6px;
}
.trf-lead__cert-grade {
  font-family:var(--mono); font-size:.9rem; letter-spacing:2px;
  color:var(--accent); text-transform:uppercase;
}
.trf-lead__cert-num {
  font-family:var(--orb); font-size:3.2rem; font-weight:700;
  color:var(--white); line-height:1;
}
.trf-lead__cert-num small {
  font-size:1.4rem; font-weight:400; color:var(--white-m);
}
.trf-lead__cert-label {
  font-size:1.15rem; color:var(--white-d); line-height:1.6;
}

/* 画像エリア */
.trf-lead__img { position:relative; }
.trf-lead__img-frame {
  position:relative; overflow:hidden;
  aspect-ratio:4/3;
}
.trf-lead__img-frame::before {
  content:''; position:absolute;
  top:-8px; right:-8px;
  width:48px; height:48px;
  border-top:2px solid var(--accent);
  border-right:2px solid var(--accent);
  z-index:2;
}
.trf-lead__img-frame::after {
  content:''; position:absolute;
  bottom:-8px; left:-8px;
  width:48px; height:48px;
  border-bottom:2px solid var(--accent);
  border-left:2px solid var(--accent);
  z-index:2;
}
.trf-lead__img-frame img {
  width:100%; height:100%;
  object-fit:cover; display:block;
  position:relative; z-index:1;
  transition:transform .6s ease;
}
.trf-lead__img-frame:hover img { transform:scale(1.03); }
.trf-lead__img-dummy {
  position:absolute; inset:0; z-index:0;
  background:var(--bg3);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:16px;
}
.trf-lead__img-dummy svg {
  width:60%; max-width:200px; opacity:.3; color:var(--accent);
}
.trf-lead__img-dummy p {
  font-family:var(--mono); font-size:1rem; letter-spacing:4px;
  color:var(--white-d); opacity:.5;
}
.trf-lead__img-frame img + .trf-lead__img-dummy { display:none; }
.trf-lead__img-caption {
  display:flex; align-items:center; gap:8px;
  margin-top:12px;
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--white-d);
}
.trf-lead__img-caption-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--accent); flex-shrink:0;
  box-shadow:0 0 6px var(--accent);
}

/* --- QUALIFICATION --- */
.trf-qual {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.trf-qual__inner { max-width:1200px; margin:0 auto; }
.trf-qual__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:16px;
}
.trf-qual__sys::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.trf-qual__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:16px;
}
.trf-qual__sub {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:1.9; margin-bottom:56px;
  max-width:700px;
}
.trf-qual__grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border);
}
.trf-qual__card {
  background:var(--bg3); padding:40px 36px 44px;
  position:relative; overflow:hidden;
}
.trf-qual__card::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;
}
.trf-qual__card:hover::after { transform:scaleX(1); }
.trf-qual__card--night .trf-qual__card-tag { color:rgba(167,139,250,1); }
.trf-qual__card--night .trf-qual__card-grade { color:rgba(167,139,250,.9); }
.trf-qual__card--night .trf-qual__card-count { color:rgba(167,139,250,.9); }
.trf-qual__card--night::after { background:linear-gradient(90deg, rgba(167,139,250,.8), transparent); }
.trf-qual__card-head {
  display:flex; align-items:center; gap:12px; margin-bottom:20px;
}
.trf-qual__card-tag {
  font-family:var(--mono); font-size:.85rem; letter-spacing:2px;
  color:var(--accent); text-transform:uppercase;
  border:1px solid currentColor; padding:4px 10px;
}
.trf-qual__card-grade {
  font-family:var(--jp); font-size:1.6rem; font-weight:700;
  color:var(--white);
}
.trf-qual__card-count {
  font-family:var(--orb); font-size:5rem; font-weight:700;
  color:var(--accent); line-height:1; margin-bottom:20px;
}
.trf-qual__card-count span {
  font-family:var(--jp); font-size:1.6rem;
  font-weight:400; color:var(--white-m);
}
.trf-qual__card-text {
  font-size:1.4rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* --- SCENE（画像×テキスト交互） --- */
.trf-scene {
  background:var(--bg);
  border-top:1px solid var(--border);
}
.trf-scene__block {
  display:grid; grid-template-columns:1fr 1fr;
  min-height:480px;
}
.trf-scene__block--rev { direction:rtl; }
.trf-scene__block--rev > * { direction:ltr; }
.trf-scene__img {
  position:relative; overflow:hidden;
  background:var(--bg3);
}
.trf-scene__img img {
  width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform .7s ease;
}
.trf-scene__block:hover .trf-scene__img img { transform:scale(1.04); }
.trf-scene__img-dummy {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:20px;
  background:var(--bg3);
}
.trf-scene__img-dummy svg {
  width:55%; max-width:180px; color:var(--accent);
}
.trf-scene__img-dummy p {
  font-family:var(--mono); font-size:1rem; letter-spacing:4px;
  color:var(--white-d); opacity:.5;
}
.trf-scene__img img + .trf-scene__img-dummy { display:none; }
.trf-scene__body {
  padding:64px 56px;
  display:flex; flex-direction:column; justify-content:center;
  border-bottom:1px solid var(--border);
}
.trf-scene__block--rev .trf-scene__body {
  border-left:none; border-right:none;
}
.trf-scene__id {
  font-family:var(--mono); font-size:.9rem; letter-spacing:3px;
  color:rgba(35,174,180,.5); display:block; margin-bottom:20px;
}
.trf-scene__name {
  font-size:clamp(2.2rem,3vw,3rem); font-weight:700;
  color:var(--white); line-height:1.4; margin-bottom:20px;
}
.trf-scene__text {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:2.1; margin-bottom:28px;
}
.trf-scene__tags {
  list-style:none;
  display:flex; flex-wrap:wrap; gap:8px;
}
.trf-scene__tags li {
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--accent); border:1px solid rgba(35,174,180,.3);
  padding:6px 14px;
}

/* --- FUTURE --- */
.trf-future {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.trf-future__inner {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.trf-future__img {
  position:relative; overflow:hidden;
  aspect-ratio:4/3;
  border:1px solid var(--border);
}
.trf-future__img img {
  width:100%; height:100%;
  object-fit:cover; display:block;
}
.trf-future__img-dummy {
  position:absolute; inset:0;
  background:linear-gradient(135deg, var(--bg3) 0%, rgba(35,174,180,.06) 100%);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:20px;
}
.trf-future__img-dummy svg {
  width:50%; max-width:160px; color:var(--accent);
}
.trf-future__img-dummy p {
  font-family:var(--mono); font-size:1rem; letter-spacing:4px;
  color:var(--white-d); opacity:.5;
}
.trf-future__img img + .trf-future__img-dummy { display:none; }
.trf-future__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:20px;
}
.trf-future__sys::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.trf-future__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.45; margin-bottom:28px;
}
.trf-future__text {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:2.2; margin-bottom:18px;
}
.trf-future__quote {
  margin-top:36px; padding:28px 32px;
  border-left:2px solid var(--accent);
  background:rgba(35,174,180,.04);
}
.trf-future__quote p {
  font-size:1.7rem; font-weight:700;
  color:var(--white); line-height:2;
}

/* --- FLOW --- */
.trf-flow {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.trf-flow__inner { max-width:860px; margin:0 auto; }
.trf-flow__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:16px;
}
.trf-flow__sys::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.trf-flow__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:56px;
}
.trf-flow__list {
  display:flex; flex-direction:column; gap:0;
}
.trf-flow__item {
  display:grid; grid-template-columns:56px 1fr;
  gap:32px;
}
.trf-flow__step {
  display:flex; flex-direction:column; align-items:center;
}
.trf-flow__step-num {
  font-family:var(--orb); font-size:1.4rem; font-weight:700;
  color:var(--accent);
  width:48px; height:48px;
  border:1px solid rgba(35,174,180,.4);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  background:rgba(35,174,180,.05);
}
.trf-flow__step-line {
  width:1px; flex:1; background:rgba(35,174,180,.2); margin-top:0;
  min-height:40px;
}
.trf-flow__step-line--last { background:transparent; }
.trf-flow__body {
  padding:4px 0 48px;
}
.trf-flow__name {
  font-size:1.9rem; font-weight:700;
  color:var(--white); margin-bottom:12px; line-height:1.4;
}
.trf-flow__text {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* --- RESPONSIVE --- */
@media(max-width:1024px){
  .trf-lead, .trf-qual, .trf-future, .trf-flow { padding:64px 32px; }
  .trf-lead__inner { grid-template-columns:1fr; gap:48px; }
  .trf-future__inner { grid-template-columns:1fr; gap:48px; }
  .trf-qual__grid { grid-template-columns:1fr 1fr; }
  .trf-scene__body { padding:48px 40px; }
}
@media(max-width:767px){
  .trf-lead, .trf-qual, .trf-future, .trf-flow { padding:56px 24px; }
  .trf-qual__grid { grid-template-columns:1fr; }
  .trf-scene__block,
  .trf-scene__block--rev { grid-template-columns:1fr; direction:ltr; }
  .trf-scene__img { aspect-ratio:5/6; }
  .trf-scene__body { padding:36px 24px; }
  .trf-flow__item { grid-template-columns:44px 1fr; gap:20px; }
  .trf-flow__step-num { width:40px; height:40px; font-size:1.1rem; }
  .trf-lead__certs { flex-direction:column; }
}


/* =============================================
   イベント警備ページ（evt-*）
============================================= */

/* --- DUTIES --- */
.evt-duties {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.evt-duties__inner { max-width:1200px; margin:0 auto; }
.evt-duties__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:16px;
}
.evt-duties__sys::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.evt-duties__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:16px;
}
.evt-duties__sub {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:1.9;
  margin-bottom:56px; max-width:700px;
}
.evt-duties__grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border);
}
.evt-duties__item {
  background:var(--bg3);
  padding:36px 32px 40px;
  position:relative; overflow:hidden;
}
.evt-duties__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;
}
.evt-duties__item:hover::after { transform:scaleX(1); }
.evt-duties__num {
  font-family:var(--orb); font-size:3.2rem; font-weight:700;
  color:rgba(35,174,180,.15); display:block;
  margin-bottom:16px; line-height:1;
}
.evt-duties__name {
  font-size:1.7rem; font-weight:700;
  color:var(--white); margin-bottom:14px; line-height:1.5;
}
.evt-duties__text {
  font-size:1.4rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* --- POINT --- */
.evt-point {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.evt-point__inner { max-width:900px; margin:0 auto; }
.evt-point__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:16px;
}
.evt-point__sys::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.evt-point__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:56px;
}
.evt-point__list {
  display:flex; flex-direction:column;
}
.evt-point__item {
  display:grid; grid-template-columns:64px 1fr;
  gap:32px; align-items:start;
  padding:40px 0;
  border-bottom:1px solid var(--border);
}
.evt-point__item:first-child { border-top:1px solid var(--border); }
.evt-point__icon {
  width:48px; height:48px;
  border:1px solid rgba(35,174,180,.3);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; margin-top:4px;
  color:var(--accent);
}
.evt-point__icon svg { width:24px; height:24px; }
.evt-point__name {
  font-size:1.8rem; font-weight:700;
  color:var(--white); margin-bottom:14px; line-height:1.5;
}
.evt-point__text {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* --- RESPONSIVE --- */
@media(max-width:1024px){
  .evt-duties, .evt-point { padding:64px 32px; }
  .evt-duties__grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:767px){
  .evt-duties, .evt-point { padding:56px 24px; }
  .evt-duties__grid { grid-template-columns:1fr; }
  .evt-point__item { grid-template-columns:48px 1fr; gap:20px; }
}

/* =============================================
   防犯カメラページ（cam-*）
============================================= */

/* --- LINEUP --- */
.cam-lineup {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.cam-lineup__inner { max-width:1200px; margin:0 auto; }
.cam-lineup__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:16px;
}
.cam-lineup__sys::before {
  content:''; display:block;
  width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.cam-lineup__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:16px;
}
.cam-lineup__sub {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:1.9;
  margin-bottom:56px; max-width:700px;
}

/* 5カードグリッド：3+2 */
.cam-lineup__grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:2px;
  background:var(--border);
}
/* 4・5枚目を中央揃えで2列に */
.cam-lineup__card:nth-child(4),
.cam-lineup__card:nth-child(5) {
  grid-column:auto;
}
.cam-lineup__card {
  background:var(--bg3);
  display:flex; flex-direction:column;
  overflow:hidden; position:relative;
  transition:background .3s;
}
.cam-lineup__card:hover { background:rgba(17,19,24,.98); }
.cam-lineup__card::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;
}
.cam-lineup__card:hover::after { transform:scaleX(1); }

/* 画像エリア */
.cam-lineup__card-img {
  position:relative; overflow:hidden;
  aspect-ratio:16/9; flex-shrink:0;
  background:var(--bg);
}
.cam-lineup__card-img img {
  width:100%; height:100%;
  object-fit:cover; display:block;
  position:relative; z-index:1;
  transition:transform .6s ease;
}
.cam-lineup__card:hover .cam-lineup__card-img img { transform:scale(1.04); }
.cam-lineup__card-img-dummy {
  position:absolute; inset:0; z-index:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--bg) 0%, rgba(35,174,180,.05) 100%);
}
.cam-lineup__card-img-dummy svg {
  width:50%; max-width:100px;
  color:var(--accent);
}
.cam-lineup__card-img img + .cam-lineup__card-img-dummy { display:none; }

/* テキストエリア */
.cam-lineup__card-body {
  padding:28px 28px 36px;
  flex:1; display:flex; flex-direction:column; gap:10px;
}
.cam-lineup__card-brand {
  font-family:var(--mono); font-size:.82rem; letter-spacing:2px;
  color:var(--accent); text-transform:uppercase;
  border:1px solid rgba(35,174,180,.3); padding:4px 10px;
  align-self:flex-start;
}
.cam-lineup__card-name {
  font-size:1.7rem; font-weight:700;
  color:var(--white); line-height:1.45;
}
.cam-lineup__card-text {
  font-size:1.35rem; font-weight:300;
  color:var(--white-m); line-height:1.95;
  flex:1;
}
.cam-lineup__card-tags {
  list-style:none;
  display:flex; flex-wrap:wrap; gap:6px;
  margin-top:4px;
}
.cam-lineup__card-tags li {
  font-family:var(--mono); font-size:.9rem; letter-spacing:.5px;
  color:var(--accent); opacity:.8;
  background:rgba(35,174,180,.07);
  border:1px solid rgba(35,174,180,.2);
  padding:4px 10px;
}

/* 4・5枚目を2列中央に */
@media(min-width:1025px){
  .cam-lineup__grid {
    grid-template-columns:repeat(3,1fr);
  }
  /* 4・5枚目ラッパー：flex で中央に2枚並べる */
  .cam-lineup__row2 {
    grid-column:1 / -1;
    display:flex;
    justify-content:start;
    gap:2px;
  }
  .cam-lineup__row2 .cam-lineup__card {
    width:calc((100%) / 3);
    flex-shrink:0;
  }
}

/* --- RESPONSIVE --- */
@media(max-width:1024px){
  .cam-lineup { padding:64px 32px; }
  .cam-lineup__grid { grid-template-columns:repeat(2,1fr); }
  .cam-lineup__row2 { grid-column:auto; display:contents; }
  .cam-lineup__row2 .cam-lineup__card { width:auto; }
}
@media(max-width:767px){
  .cam-lineup { padding:56px 24px; }
  .cam-lineup__grid { grid-template-columns:1fr; }
}

/* =============================================
   その他防犯機器ページ（oth-*）
============================================= */

/* --- THERMAL（メイン製品） --- */
.oth-thermal {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.oth-thermal__inner { max-width:1200px; margin:0 auto; }
.oth-thermal__head { margin-bottom:56px; }
.oth-thermal__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:16px;
}
.oth-thermal__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.oth-thermal__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.4; margin-bottom:12px;
}
.oth-thermal__sub {
  font-family:var(--mono); font-size:1rem; letter-spacing:2px;
  color:var(--white-d);
}

.oth-thermal__2col {
  display:grid; grid-template-columns:400px 1fr;
  gap:64px; align-items:start;
}
.oth-thermal__img {
  position:relative; overflow:hidden;
  aspect-ratio:3/4; background:var(--bg3);
  border:1px solid var(--border);
}
.oth-thermal__img img {
  width:100%; height:100%; object-fit:cover; display:block;
}
.oth-thermal__img-dummy {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:16px;
}
.oth-thermal__img-dummy svg {
  width:50%; max-width:120px; color:var(--accent); opacity:.4;
}
.oth-thermal__img-dummy p {
  font-family:var(--mono); font-size:1rem; letter-spacing:4px;
  color:var(--white-d); opacity:.4;
}
.oth-thermal__img img + .oth-thermal__img-dummy { display:none; }

.oth-thermal__desc {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:2.1; margin-bottom:36px;
}
.oth-thermal__specs {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border); margin-bottom:40px;
}
.oth-thermal__spec {
  background:var(--bg3); padding:24px 20px;
  display:flex; flex-direction:column; gap:8px;
}
.oth-thermal__spec-val {
  font-family:var(--orb); font-size:2.4rem; font-weight:700;
  color:var(--accent); line-height:1;
}
.oth-thermal__spec-val small {
  font-size:1.3rem; font-weight:400; color:var(--white-m);
}
.oth-thermal__spec-label {
  font-family:var(--mono); font-size:.95rem; letter-spacing:1px;
  color:var(--white-d);
}
.oth-thermal__features {
  list-style:none; display:flex; flex-direction:column;
}
.oth-thermal__features li {
  display:grid; grid-template-columns:72px 1fr;
  gap:20px; align-items:start;
  padding:24px 0; border-bottom:1px solid var(--border-d);
}
.oth-thermal__features li:first-child { border-top:1px solid var(--border-d); }
.oth-thermal__feat-tag {
  font-family:var(--mono); font-size:.82rem; letter-spacing:2px;
  color:var(--accent); border:1px solid rgba(35,174,180,.3);
  padding:5px 8px; text-align:center; flex-shrink:0;
  align-self:center;
}
.oth-thermal__features li p {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2; margin:0;
}

/* --- OTHER PRODUCTS --- */
.oth-products {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.oth-products__inner { max-width:1000px; margin:0 auto; }
.oth-products__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:16px;
}
.oth-products__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.oth-products__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:14px;
}
.oth-products__sub {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:1.9; margin-bottom:56px;
}
.oth-products__list {
  display:flex; flex-direction:column;
}
.oth-products__item {
  display:grid; grid-template-columns:64px 1fr;
  gap:32px; align-items:start;
  padding:40px 0; border-bottom:1px solid var(--border);
}
.oth-products__item:first-child { border-top:1px solid var(--border); }
.oth-products__icon {
  width:48px; height:48px;
  border:1px solid rgba(35,174,180,.3);
  display:flex; align-items:center; justify-content:center;
  color:var(--accent); flex-shrink:0; margin-top:4px;
}
.oth-products__icon svg { width:24px; height:24px; }
.oth-products__name {
  font-size:1.8rem; font-weight:700;
  color:var(--white); margin-bottom:12px; line-height:1.4;
}
.oth-products__text {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2; margin-bottom:16px;
}
.oth-products__tags {
  list-style:none; display:flex; flex-wrap:wrap; gap:6px;
}
.oth-products__tags li {
  font-family:var(--mono); font-size:.9rem; letter-spacing:.5px;
  color:var(--accent); opacity:.8;
  background:rgba(35,174,180,.06);
  border:1px solid rgba(35,174,180,.2);
  padding:4px 10px;
}

/* --- RESPONSIVE --- */
@media(max-width:1024px){
  .oth-thermal, .oth-products { padding:64px 32px; }
  .oth-thermal__2col { grid-template-columns:280px 1fr; gap:40px; }
}
@media(max-width:767px){
  .oth-thermal, .oth-products { padding:56px 24px; }
  .oth-thermal__2col { grid-template-columns:1fr; }
  .oth-thermal__img { aspect-ratio:4/3; }
  .oth-thermal__specs { grid-template-columns:repeat(3,1fr); }
  .oth-thermal__features li { grid-template-columns:56px 1fr; gap:14px; }
  .oth-products__item { grid-template-columns:48px 1fr; gap:20px; }
}

/* =============================================
   ユニフォーム紹介ページ（uni-*）
============================================= */

/* --- LEAD --- */
.uni-lead {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.uni-lead__inner {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.uni-lead__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.uni-lead__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.uni-lead__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.45; margin-bottom:16px;
}
.uni-lead__catch {
  font-family:var(--orb); font-size:1.4rem; letter-spacing:3px;
  color:var(--accent); margin-bottom:24px;
}
.uni-lead__body {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:2.1; margin-bottom:16px;
}
.uni-lead__img {
  position:relative; overflow:hidden; aspect-ratio:3/4;
}
.uni-lead__img img {
  width:100%; height:100%; object-fit:cover; display:block;
}
.uni-lead__img::before {
  content:''; position:absolute; top:-8px; right:-8px;
  width:48px; height:48px;
  border-top:2px solid var(--accent); border-right:2px solid var(--accent);
  z-index:2;
}
.uni-lead__img::after {
  content:''; position:absolute; bottom:-8px; left:-8px;
  width:48px; height:48px;
  border-bottom:2px solid var(--accent); border-left:2px solid var(--accent);
  z-index:2;
}

/* --- GALLERY --- */
.uni-gallery {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.uni-gallery__inner { max-width:1200px; margin:0 auto; }
.uni-gallery__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.uni-gallery__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.uni-gallery__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:40px;
}
.uni-gallery__grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2px; background:var(--border);
}
.uni-gallery__item {
  overflow:hidden; aspect-ratio:1;
  background:var(--bg3);
}
.uni-gallery__item img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .6s ease;
}
.uni-gallery__item:hover img { transform:scale(1.06); }

/* --- FEATURES --- */
.uni-features {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.uni-features__inner { max-width:1200px; margin:0 auto; }
.uni-features__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.uni-features__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.uni-features__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:20px;
}
.uni-features__lead {
  font-size:1.5rem; font-weight:300; color:var(--white-m);
  line-height:2; margin-bottom:56px; max-width:800px;
}
.uni-features__grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border);
}
.uni-features__card {
  background:var(--bg3); padding:40px 36px 44px;
  position:relative; overflow:hidden;
}
.uni-features__card::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;
}
.uni-features__card:hover::after { transform:scaleX(1); }
.uni-features__card-icon {
  width:48px; height:48px;
  border:1px solid rgba(35,174,180,.3);
  display:flex; align-items:center; justify-content:center;
  color:var(--accent); margin-bottom:24px;
}
.uni-features__card-icon svg { width:26px; height:26px; }
.uni-features__card-ttl {
  font-size:1.8rem; font-weight:700;
  color:var(--white); margin-bottom:14px; line-height:1.4;
}
.uni-features__card-text {
  font-size:1.4rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* --- LAYER --- */
.uni-layer {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.uni-layer__inner { max-width:1200px; margin:0 auto; }
.uni-layer__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.uni-layer__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.uni-layer__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:48px; line-height:1.45;
}
.uni-layer__grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:2px; background:var(--border);
}
.uni-layer__card {
  background:var(--bg3); overflow:hidden;
  display:flex; flex-direction:column;
}
.uni-layer__card-img {
  aspect-ratio:16/9; overflow:hidden;
}
.uni-layer__card-img img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .6s ease;
}
.uni-layer__card:hover .uni-layer__card-img img { transform:scale(1.04); }
.uni-layer__card-body { padding:32px 36px 40px; }
.uni-layer__card-tag {
  font-family:var(--mono); font-size:.82rem; letter-spacing:2px;
  color:var(--accent); border:1px solid rgba(35,174,180,.3);
  padding:4px 10px; display:inline-block; margin-bottom:16px;
}
.uni-layer__card-ttl {
  font-size:1.9rem; font-weight:700;
  color:var(--white); margin-bottom:14px; line-height:1.4;
}
.uni-layer__card-text {
  font-size:1.4rem; font-weight:300;
  color:var(--white-m); line-height:2;
}

/* --- DIAPLEX TABLE --- */
.uni-diaplex {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.uni-diaplex__inner { max-width:1000px; margin:0 auto; }
.uni-diaplex__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.uni-diaplex__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.uni-diaplex__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:40px; line-height:1.45;
}
.uni-diaplex__table-wrap {
  overflow-x:auto; margin-bottom:36px;
}
.uni-diaplex__table {
  width:100%; border-collapse:collapse;
  background:var(--bg3);
}
.uni-diaplex__table th,
.uni-diaplex__table td {
  padding:20px 24px;
  border:1px solid var(--border);
  vertical-align:top; line-height:1.9;
}
.uni-diaplex__table th {
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--accent); white-space:nowrap;
  background:rgba(35,174,180,.05);
  width:130px;
}
.uni-diaplex__table td {
  font-size:1.4rem; font-weight:300; color:var(--white-m);
}
.uni-diaplex__table td strong {
  color:var(--white); font-weight:700; display:block; margin-bottom:6px;
}
.uni-diaplex__note {
  font-size:1.45rem; font-weight:300;
  color:var(--white-m); line-height:2;
  padding:28px 32px;
  border-left:2px solid var(--accent);
  background:rgba(35,174,180,.03);
}

/* --- VIDEO --- */
.uni-video {
  background:var(--bg2);
  padding:80px 64px;
  border-top:1px solid var(--border);
}
.uni-video__inner { max-width:900px; margin:0 auto; }
.uni-video__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.uni-video__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.uni-video__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:40px;
}
.uni-video__wrap {
  position:relative; aspect-ratio:16/9;
}
.uni-video__wrap iframe {
  position:absolute; inset:0;
  width:100%; height:100%; border:none;
}

/* --- RECRUIT CTA --- */
.uni-recruit {
  background:var(--bg);
  padding:80px 64px;
  border-top:1px solid var(--border);
  text-align:center;
}
.uni-recruit__inner { max-width:700px; margin:0 auto; }
.uni-recruit__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.uni-recruit__sys::before {
  content:''; display:block; width:22px; height:1px;
  background:var(--accent); flex-shrink:0;
}
.uni-recruit__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:20px; line-height:1.45;
}
.uni-recruit__text {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:2; margin-bottom:40px;
}
.uni-recruit__actions {
  display:flex; flex-wrap:wrap;
  align-items:center; justify-content:center; gap:20px;
}
.uni-recruit__line {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:1.2rem; letter-spacing:1px;
  color:var(--white);
  background:#06C755;
  padding:14px 28px;
  transition:opacity .25s;
}
.uni-recruit__line:hover { opacity:.85; }
.uni-recruit__line svg { flex-shrink:0; }

/* --- RESPONSIVE --- */
@media(max-width:1024px){
  .uni-lead, .uni-gallery, .uni-features, .uni-layer,
  .uni-diaplex, .uni-video, .uni-recruit { padding:64px 32px; }
  .uni-lead__inner { grid-template-columns:1fr; gap:48px; }
  .uni-gallery__grid { grid-template-columns:repeat(3,1fr); }
  .uni-features__grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:767px){
  .uni-lead, .uni-gallery, .uni-features, .uni-layer,
  .uni-diaplex, .uni-video, .uni-recruit { padding:56px 24px; }
  .uni-gallery__grid { grid-template-columns:repeat(2,1fr); }
  .uni-features__grid { grid-template-columns:1fr; }
  .uni-layer__grid { grid-template-columns:1fr; }
  .uni-diaplex__table th { width:90px; padding:14px 12px; }
  .uni-diaplex__table td { padding:14px 12px; }
}

/* =============================================
   採用情報ページ（rec-*）
============================================= */

/* --- LEAD --- */
.rec-lead {
  background:var(--bg); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-lead__inner {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.rec-lead__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-lead__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-lead__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.45; margin-bottom:24px;
}
.rec-lead__body {
  font-size:1.5rem; font-weight:300;
  color:var(--white-m); line-height:2.1; margin-bottom:16px;
}
.rec-lead__line {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:1.2rem; letter-spacing:1px;
  color:var(--white); background:#06C755;
  padding:14px 28px; margin-top:24px;
  transition:opacity .25s;
}
.rec-lead__line:hover { opacity:.85; }
.rec-lead__img {
  position:relative; overflow:hidden; aspect-ratio:4/3;
}
.rec-lead__img img { width:100%; height:100%; object-fit:cover; display:block; }
.rec-lead__img::before {
  content:''; position:absolute; top:-8px; right:-8px;
  width:48px; height:48px;
  border-top:2px solid var(--accent); border-right:2px solid var(--accent); z-index:2;
}
.rec-lead__img::after {
  content:''; position:absolute; bottom:-8px; left:-8px;
  width:48px; height:48px;
  border-bottom:2px solid var(--accent); border-left:2px solid var(--accent); z-index:2;
}

/* --- JOB --- */
.rec-job {
  background:var(--bg2); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-job__inner { max-width:1200px; margin:0 auto; }
.rec-job__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-job__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-job__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); line-height:1.45; margin-bottom:48px;
}
.rec-job__2col {
  display:grid; grid-template-columns:1fr 1fr;
  gap:64px; align-items:center;
}
.rec-job__text {
  font-size:1.5rem; font-weight:300; color:var(--white-m);
  line-height:2.1; margin-bottom:16px;
}
.rec-job__note {
  font-family:var(--mono); font-size:1.1rem; letter-spacing:1px;
  color:var(--white-d); margin-bottom:24px;
}
.rec-job__tags {
  display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;
}
.rec-job__tags span {
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--accent); border:1px solid rgba(35,174,180,.4);
  padding:6px 14px;
}
.rec-job__img { overflow:hidden; aspect-ratio:4/3; }
.rec-job__img img { width:100%; height:100%; object-fit:cover; display:block; }

/* --- VIDEO --- */
.rec-video {
  background:var(--bg); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-video__inner { max-width:860px; margin:0 auto; }
.rec-video__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-video__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-video__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:40px;
}
.rec-video__wrap { position:relative; aspect-ratio:16/9; }
.rec-video__wrap iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }

/* --- SALARY --- */
.rec-salary {
  background:var(--bg2); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-salary__inner { max-width:1100px; margin:0 auto; }
.rec-salary__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-salary__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-salary__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:40px;
}
.rec-salary__table-wrap { overflow-x:auto; margin-bottom:40px; }
.rec-salary__table {
  width:100%; border-collapse:collapse; background:var(--bg3);
}
.rec-salary__table th,
.rec-salary__table td {
  padding:18px 20px; border:1px solid var(--border);
  vertical-align:middle; font-size:1.4rem;
}
.rec-salary__table th {
  font-family:var(--mono); font-size:1rem; letter-spacing:1px;
  color:var(--accent); background:rgba(35,174,180,.05);
  white-space:nowrap; text-align:center;
}
.rec-salary__table th small { color:var(--white-d); font-size:.85rem; }
.rec-salary__role { color:var(--white); font-weight:500; }
.rec-salary__amount { font-family:var(--orb); color:var(--accent); white-space:nowrap; }
.rec-salary__amount strong { font-size:2rem; }
.rec-salary__table td { color:var(--white-m); font-weight:300; }
.rec-salary__table td small { color:var(--white-d); }

.rec-salary__details {
  display:flex; flex-direction:column;
  border-top:1px solid var(--border); margin-bottom:48px;
}
.rec-salary__detail {
  display:grid; grid-template-columns:160px 1fr;
  gap:24px; padding:20px 0; border-bottom:1px solid var(--border-d);
}
.rec-salary__detail-label {
  font-family:var(--mono); font-size:.95rem; letter-spacing:2px;
  color:var(--accent); padding-top:2px;
}
.rec-salary__detail-body p {
  font-size:1.45rem; font-weight:300; color:var(--white-m);
  line-height:1.9; margin-bottom:6px;
}

.rec-benefits {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:2px; background:var(--border);
}
.rec-benefits__item {
  background:var(--bg3); padding:24px 20px;
  display:flex; flex-direction:column; align-items:center;
  gap:10px; text-align:center;
}
.rec-benefits__icon {
  font-family:var(--orb); font-size:1.3rem; font-weight:700;
  color:var(--accent); line-height:1.3;
  border:1px solid rgba(35,174,180,.3);
  width:60px; height:60px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.rec-benefits__label {
  font-size:1.2rem; font-weight:300; color:var(--white-m);
  line-height:1.5;
}

/* --- UNIFORM --- */
.rec-uniform {
  background:var(--bg); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-uniform__inner { max-width:1200px; margin:0 auto; }
.rec-uniform__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-uniform__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-uniform__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:12px;
}
.rec-uniform__sub {
  font-size:1.5rem; font-weight:300; color:var(--white-m);
  margin-bottom:40px;
}
.rec-uniform__grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:2px; background:var(--border); margin-bottom:40px;
}
.rec-uniform__img { overflow:hidden; aspect-ratio:3/4; }
.rec-uniform__img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.rec-uniform__img:hover img { transform:scale(1.04); }
.rec-uniform__features {
  padding:36px 40px; background:var(--bg3);
  border:1px solid var(--border);
}
.rec-uniform__catch {
  font-family:var(--orb); font-size:1.6rem; letter-spacing:3px;
  color:var(--accent); margin-bottom:20px;
}
.rec-uniform__list {
  list-style:none; display:flex; flex-direction:column; gap:10px;
  margin-bottom:28px;
}
.rec-uniform__list li {
  font-size:1.45rem; font-weight:300; color:var(--white-m);
  line-height:1.9; padding-left:20px; position:relative;
}
.rec-uniform__list li::before {
  content:'▶'; position:absolute; left:0; top:0;
  font-size:.8rem; color:var(--accent); line-height:2.2;
}

/* --- GALLERY --- */
.rec-gallery {
  background:var(--bg2); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-gallery__inner { max-width:1200px; margin:0 auto; }
.rec-gallery__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-gallery__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-gallery__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:40px;
}
.rec-gallery__grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:2px; background:var(--border);
}
.rec-gallery__item { overflow:hidden; background:var(--bg3); }
.rec-gallery__item img {
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  transition:transform .6s ease;
}
.rec-gallery__item:hover img { transform:scale(1.06); }
.rec-gallery__caption {
  font-size:1.15rem; font-weight:300; color:var(--white-d);
  padding:10px 14px; line-height:1.6;
}

/* --- VOICE --- */
.rec-voice {
  background:var(--bg); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-voice__inner { max-width:1200px; margin:0 auto; }
.rec-voice__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-voice__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-voice__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:48px;
}
.rec-voice__grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:2px; background:var(--border);
}
.rec-voice__card { background:var(--bg3); padding:36px 36px 40px; }
.rec-voice__card-head {
  display:flex; align-items:center; gap:20px; margin-bottom:20px;
}
.rec-voice__card-head img {
  width:64px; height:64px; border-radius:50%; object-fit:cover;
  border:2px solid rgba(35,174,180,.3); flex-shrink:0;
}
.rec-voice__card-age {
  font-family:var(--mono); font-size:.85rem; letter-spacing:2px;
  color:var(--accent); display:block; margin-bottom:4px;
}
.rec-voice__card-role {
  font-size:1.4rem; font-weight:700; color:var(--white); line-height:1.4;
}
.rec-voice__card-text {
  font-size:1.4rem; font-weight:300; color:var(--white-m); line-height:2;
}

/* --- FLOW --- */
.rec-flow {
  background:var(--bg2); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-flow__inner { max-width:1100px; margin:0 auto; }
.rec-flow__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-flow__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-flow__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:48px;
}
.rec-flow__grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:2px; background:var(--border);
}
.rec-flow__case { background:var(--bg3); padding:40px 36px; }
.rec-flow__case-label {
  font-family:var(--mono); font-size:.9rem; letter-spacing:3px;
  color:var(--accent); margin-bottom:28px; display:block;
}
.rec-flow__timeline { display:flex; flex-direction:column; position:relative; margin-bottom:24px; }
.rec-flow__timeline::before {
  content:''; position:absolute;
  left:56px; top:12px; bottom:12px; width:1px;
  background:rgba(35,174,180,.2);
}
.rec-flow__tl-item {
  display:grid; grid-template-columns:72px 1fr;
  gap:20px; padding:10px 0; position:relative;
}
.rec-flow__tl-item--end { border-top:1px solid var(--border-d); margin-top:8px; padding-top:16px; }
.rec-flow__tl-time {
  font-family:var(--orb); font-size:1.4rem; font-weight:700;
  color:var(--accent); padding-top:2px;
}
.rec-flow__tl-event {
  font-size:1.45rem; font-weight:400; color:var(--white); line-height:1.7;
}
.rec-flow__tl-event small { color:var(--white-d); font-weight:300; font-size:1.15rem; display:block; }
.rec-flow__case-note {
  font-size:1.3rem; color:var(--accent); font-weight:300;
  padding:12px 16px; border-left:2px solid var(--accent);
  margin-bottom:16px;
}
.rec-flow__case-pay {
  background:rgba(35,174,180,.06); border:1px solid rgba(35,174,180,.2);
  padding:16px 20px;
}
.rec-flow__case-pay p {
  font-size:1.4rem; font-weight:300; color:var(--white-m); margin-bottom:4px;
}
.rec-flow__case-pay strong { color:var(--white); font-weight:700; }

/* --- E-LEARNING --- */
.rec-elearn {
  background:var(--bg); padding:80px 64px;
  border-top:1px solid var(--border);
}
.rec-elearn__inner { max-width:1200px; margin:0 auto; }
.rec-elearn__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-elearn__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-elearn__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:12px; line-height:1.4;
}
.rec-elearn__sub {
  font-size:1.5rem; font-weight:300; color:var(--white-m); margin-bottom:48px;
}
.rec-elearn__grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:2px; background:var(--border);
}
.rec-elearn__card { background:var(--bg3); padding:40px 36px; }
.rec-elearn__card-label {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); border:1px solid rgba(35,174,180,.3);
  padding:4px 10px; display:inline-block; margin-bottom:16px;
}
.rec-elearn__card-ttl {
  font-size:2rem; font-weight:700; color:var(--white);
  margin-bottom:16px; line-height:1.4;
}
.rec-elearn__card-text {
  font-size:1.4rem; font-weight:300; color:var(--white-m);
  line-height:2; margin-bottom:20px;
}
.rec-elearn__card-list {
  list-style:none; display:flex; flex-direction:column; gap:8px; margin-bottom:28px;
}
.rec-elearn__card-list li {
  font-size:1.35rem; font-weight:300; color:var(--white-m);
  padding-left:18px; position:relative; line-height:1.8;
}
.rec-elearn__card-list li::before {
  content:'▶'; position:absolute; left:0; font-size:.7rem;
  color:var(--accent); line-height:2.4;
}
.rec-elearn__video { position:relative; aspect-ratio:16/9; }
.rec-elearn__video iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }

/* --- APPLY --- */
.rec-apply {
  background:var(--bg2); padding:80px 64px;
  border-top:1px solid var(--border); text-align:center;
}
.rec-apply__inner { max-width:700px; margin:0 auto; }
.rec-apply__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.rec-apply__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.rec-apply__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:16px;
}
.rec-apply__text {
  font-size:1.5rem; font-weight:300; color:var(--white-m);
  line-height:2; margin-bottom:40px;
}
.rec-apply__actions {
  display:flex; flex-wrap:wrap;
  align-items:center; justify-content:center; gap:20px;
}

/* --- RESPONSIVE --- */
@media(max-width:1024px){
  .rec-lead, .rec-job, .rec-video, .rec-salary, .rec-uniform,
  .rec-gallery, .rec-voice, .rec-flow, .rec-elearn, .rec-apply { padding:64px 32px; }
  .rec-lead__inner { grid-template-columns:1fr; gap:40px; }
  .rec-job__2col { grid-template-columns:1fr; gap:40px; }
  .rec-benefits { grid-template-columns:repeat(4,1fr); }
  .rec-gallery__grid { grid-template-columns:repeat(2,1fr); }
  .rec-salary__detail { grid-template-columns:130px 1fr; }
}
@media(max-width:767px){
  .rec-lead, .rec-job, .rec-video, .rec-salary, .rec-uniform,
  .rec-gallery, .rec-voice, .rec-flow, .rec-elearn, .rec-apply { padding:48px 20px; }
  .rec-uniform__grid { grid-template-columns:repeat(3,1fr); }
  .rec-voice__grid { grid-template-columns:1fr; }
  .rec-flow__grid { grid-template-columns:1fr; }
  .rec-elearn__grid { grid-template-columns:1fr; }
  .rec-benefits { grid-template-columns:repeat(2,1fr); }
  .rec-gallery__grid { grid-template-columns:repeat(2,1fr); }
  .rec-salary__detail { grid-template-columns:1fr; gap:6px; }
  .rec-salary__detail-label { margin-bottom:4px; }
  .rec-flow__tl-item { grid-template-columns:60px 1fr; gap:12px; }
  .rec-flow__timeline::before { left:44px; }
}

/* =============================================
   お問い合わせページ（cnt-*）
============================================= */

/* --- INTRO --- */
.cnt-intro {
  background:var(--bg2); padding:64px 64px;
  border-top:1px solid var(--border);
}
.cnt-intro__inner { max-width:900px; margin:0 auto; text-align:center; }
.cnt-intro__lead {
  font-size:1.6rem; font-weight:300; color:var(--white-m);
  line-height:2.1; margin-bottom:48px;
}
.cnt-intro__info {
  display:flex; align-items:center; justify-content:center;
  gap:48px; flex-wrap:wrap;
}
.cnt-intro__tel-label {
  font-family:var(--mono); font-size:.85rem; letter-spacing:2px;
  color:var(--white-d); display:block; margin-bottom:10px;
}
.cnt-intro__tel-num {
  font-family:var(--orb); font-size:3.2rem; font-weight:900;
  color:var(--white); letter-spacing:3px; display:block;
  transition:color .25s;
}
.cnt-intro__tel-num:hover { color:var(--accent); }
.cnt-intro__tel-note {
  font-family:var(--mono); font-size:.9rem; letter-spacing:1px;
  color:var(--white-d); display:block; margin-top:8px;
}
.cnt-intro__divider {
  font-family:var(--orb); font-size:1.4rem; letter-spacing:3px;
  color:var(--white-d); padding:0 8px;
}
.cnt-intro__line-btn {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:1.2rem; letter-spacing:1px;
  color:var(--white); background:#06C755;
  padding:14px 28px; margin-top:10px;
  transition:opacity .25s;
}
.cnt-intro__line-btn:hover { opacity:.85; }

/* --- FORM --- */
.cnt-form {
  background:var(--bg); padding:80px 64px;
  border-top:1px solid var(--border);
}
.cnt-form__inner { max-width:800px; margin:0 auto; }
.cnt-form__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.cnt-form__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.cnt-form__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:48px;
}

/* 送信完了 */
.cnt-form__done {
  text-align:center; padding:72px 40px;
  background:var(--bg3); border:1px solid var(--border);
}
.cnt-form__done-icon {
  width:72px; height:72px; margin:0 auto 28px;
  border:2px solid var(--accent); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--accent);
}
.cnt-form__done-icon svg { width:40px; height:40px; }
.cnt-form__done-ttl {
  font-size:2.4rem; font-weight:700; color:var(--white); margin-bottom:16px;
}
.cnt-form__done-text {
  font-size:1.5rem; font-weight:300; color:var(--white-m);
  line-height:2; margin-bottom:36px;
}

/* エラーアラート */
.cnt-form__alert {
  background:rgba(239,68,68,.1); border:1px solid rgba(239,68,68,.4);
  color:#fca5a5; font-size:1.4rem; padding:14px 20px;
  margin-bottom:32px;
}

/* フォームラップ */
.cnt-form__wrap {
  background:var(--bg3); border:1px solid var(--border);
  padding:48px 56px;
}
.cnt-form__row { margin-bottom:28px; }
.cnt-form__row--error .cnt-form__input,
.cnt-form__row--error .cnt-form__select,
.cnt-form__row--error .cnt-form__textarea {
  border-color:rgba(239,68,68,.5);
}
.cnt-form__label {
  display:flex; align-items:center; gap:10px;
  font-size:1.45rem; font-weight:500; color:var(--white);
  margin-bottom:10px;
}
.cnt-form__required {
  font-family:var(--mono); font-size:.75rem; letter-spacing:1px;
  color:var(--bg); background:var(--accent); padding:2px 8px;
}
.cnt-form__optional {
  font-family:var(--mono); font-size:.75rem; letter-spacing:1px;
  color:var(--white-d); border:1px solid var(--border); padding:2px 8px;
}
.cnt-form__input,
.cnt-form__select,
.cnt-form__textarea {
  width:100%; padding:14px 18px;
  background:var(--bg2); border:1px solid var(--border);
  color:var(--white); font-family:var(--jp); font-size:1.45rem;
  outline:none; transition:border-color .25s, background .25s;
  appearance:none; border-radius:0;
}
.cnt-form__input::placeholder,
.cnt-form__textarea::placeholder { color:var(--white-d); }
.cnt-form__input:focus,
.cnt-form__select:focus,
.cnt-form__textarea:focus {
  border-color:var(--accent);
  background:rgba(35,174,180,.04);
}
.cnt-form__select-wrap { position:relative; }
.cnt-form__select-wrap::after {
  content:'▾'; position:absolute; right:16px; top:50%;
  transform:translateY(-50%);
  color:var(--accent); pointer-events:none; font-size:1.4rem;
}
.cnt-form__select option { background:var(--bg2); }
.cnt-form__textarea { resize:vertical; min-height:180px; line-height:1.9; }
.cnt-form__error {
  font-size:1.2rem; color:#fca5a5; margin-top:6px;
  font-family:var(--mono); letter-spacing:.5px;
}

/* プライバシー同意 */
.cnt-form__privacy { margin-bottom:36px; }
.cnt-form__checkbox {
  display:flex; align-items:center; gap:12px; cursor:none !important;
}
.cnt-form__checkbox input[type="checkbox"] {
  width:18px; height:18px; flex-shrink:0;
  accent-color:var(--accent); cursor:none !important;
}
.cnt-form__checkbox span {
  font-size:1.4rem; font-weight:300; color:var(--white-m); line-height:1.7;
}
.cnt-form__checkbox span a { color:var(--accent); text-decoration:underline; }
.cnt-form__submit { text-align:center; }
.cnt-form__btn { min-width:280px; }

/* --- ACCESS --- */
.cnt-access {
  background:var(--bg2); padding:80px 64px;
  border-top:1px solid var(--border);
}
.cnt-access__inner { max-width:900px; margin:0 auto; }
.cnt-access__sys {
  font-family:var(--mono); font-size:.82rem; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase;
  display:inline-flex; align-items:center; gap:12px; margin-bottom:16px;
}
.cnt-access__sys::before { content:''; display:block; width:22px; height:1px; background:var(--accent); flex-shrink:0; }
.cnt-access__ttl {
  font-size:clamp(2.4rem,3.5vw,3.6rem); font-weight:700;
  color:var(--white); margin-bottom:40px;
}
.cnt-access__grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:2px; background:var(--border);
}
.cnt-access__office { background:var(--bg3); padding:36px 36px 40px; }
.cnt-access__office-label {
  font-family:var(--mono); font-size:1rem; letter-spacing:2px;
  color:var(--accent); margin-bottom:16px; display:block;
}
.cnt-access__office-addr {
  font-size:1.5rem; font-weight:300; color:var(--white);
  line-height:1.9; margin-bottom:20px;
}
.cnt-access__office-info { display:flex; flex-direction:column; gap:6px; }
.cnt-access__office-info span {
  font-size:1.35rem; font-weight:300; color:var(--white-m);
  font-family:var(--mono); letter-spacing:.5px;
}
.cnt-access__office-info a { color:var(--accent); }
.cnt-access__office-info a:hover { text-decoration:underline; }

/* --- RESPONSIVE --- */
@media(max-width:1024px){
  .cnt-intro, .cnt-form, .cnt-access { padding:64px 32px; }
  .cnt-form__wrap { padding:36px 36px; }
}
@media(max-width:767px){
  .cnt-intro, .cnt-form, .cnt-access { padding:48px 20px; }
  .cnt-intro__info { flex-direction:column; gap:32px; }
  .cnt-intro__divider { display:none; }
  .cnt-form__wrap { padding:28px 20px; }
  .cnt-access__grid { grid-template-columns:1fr; }
  .cnt-intro__tel-num { font-size:2.6rem; }
  .cnt-form__btn { min-width:unset; width:100%; }
}


/* =============================================
   お知らせアーカイブ（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; }
}

/* =============================================
   採用テーブル スマホ対応
============================================= */
@media(max-width:767px){
  /* テーブルを非表示にして、カード形式で表示 */
  .rec-salary__table-wrap { overflow-x:visible; }
  .rec-salary__table      { display:none; }

  /* カード形式 */
  .rec-salary__table-wrap::before {
    content:'';
    display:block;
  }
}

/* スマホ用カードリスト（HTMLに追記不要・CSSのみで実現） */
@media(max-width:767px){
  .rec-salary__table { display:block; }
  .rec-salary__table tbody { display:flex; flex-direction:column; gap:12px; }
  .rec-salary__table tr {
    display:flex; flex-direction:column;
    background:var(--bg3); border:1px solid var(--border);
    padding:0; border-radius:0;
  }
  .rec-salary__table th,
  .rec-salary__table td {
    display:block; width:100% !important;
    padding:12px 16px; border:none;
    border-bottom:1px solid var(--border-d);
    text-align:left; font-size:1.3rem;
  }
  .rec-salary__table th {
    background:rgba(35,174,180,.1);
    font-size:1.1rem; white-space:normal;
    border-bottom:1px solid rgba(35,174,180,.2);
  }
  .rec-salary__table td:last-child { border-bottom:none; }
  .rec-salary__amount { display:block; font-size:1.5rem; margin-bottom:4px; }
  .rec-salary__amount strong { font-size:2.2rem; }

  /* 詳細テーブルもスマホ対応 */
  .rec-salary__detail {
    grid-template-columns:1fr;
    gap:6px; padding:16px 0;
  }
  .rec-salary__detail-label {
    font-size:.85rem;
    border-left:2px solid var(--accent);
    padding-left:10px;
  }
}

/* ===================================================
   PICKUP 中央カルーセル（中央1枚＋左右ピーク / Relief同仕様）
=================================================== */
.p-pickup__track{ padding:0 !important; }
.p-pickup__slider.is-carousel .p-pickup__card{
  width:min(30vw,380px) !important;
  opacity:.45;
  transition:opacity .45s ease, background .3s;
}
.p-pickup__slider.is-carousel .p-pickup__card.is-center{ opacity:1; }

/* アイキャッチ未設定時のロゴ表示 */
.p-pickup__card-logo{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:56%; max-width:150px; height:auto; object-fit:contain;
  opacity:.5; z-index:1; pointer-events:none;
}

/* インジケーター */
.p-pickup__indicators{
  display:flex; justify-content:center; align-items:center; gap:10px;
  padding:18px 0 4px; position:relative; z-index:6;
}
.p-pickup__indicator{
  width:8px; height:8px; padding:0; background:transparent;
  border:1px solid rgba(35,174,180,.45);
  cursor:none !important;
  transition:background .25s, border-color .25s, transform .25s;
}
.p-pickup__indicator:hover{ border-color:var(--accent); }
.p-pickup__indicator.active{
  background:var(--accent); border-color:var(--accent); transform:scale(1.4);
}

@media(max-width:1024px){
  .p-pickup__slider.is-carousel .p-pickup__card{ width:46vw !important; }
}
@media(max-width:767px){
  .p-pickup__slider.is-carousel .p-pickup__card{ width:58vw !important; }
  .p-pickup__indicators{ padding:14px 0 2px; }
}

/* インジケーター追加分だけ矢印の位置を補正（スライダー中央に合わせる） */
.p-pickup__prev, .p-pickup__next{ transform:translateY(calc(-50% - 15px)); }
@media(max-width:767px){
  .p-pickup__prev, .p-pickup__next{ transform:translateY(calc(-50% - 12px)); }
}

/* ===================================================
   CTA 2カラム構成（Relief同構成 / cta--split）
   左：見出し ／ 右：電話番号＋ボタン
=================================================== */
.cta--split{ padding:110px 64px; text-align:left; }
.cta--split .cta__inner{
  max-width:1200px; margin:0 auto;
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr auto;
  gap:56px 80px; align-items:end;
}
.cta--split .cta__sys{ margin-bottom:22px; }
.cta--split .cta__title{ margin-bottom:16px; }
.cta--split .cta__sub{ margin-bottom:0; }

.cta--split .cta__right{
  display:flex; flex-direction:column;
  align-items:flex-start; gap:26px;
}
.cta--split .cta__tel{ align-items:flex-start; gap:4px; }
.cta--split .cta__tel-num{
  font-size:clamp(3rem,3.4vw,4.2rem); letter-spacing:3px;
}
.cta--split .cta__btns{ display:flex; }

@media(max-width:1024px){
  .cta--split .cta__inner{ grid-template-columns:1fr; gap:36px; align-items:start; }
}
@media(max-width:767px){
  .cta--split .cta__inner{ gap:28px; }
  .cta--split .cta__right{ width:100%; }
  .cta--split .cta__btns{ width:100%; }
  .cta--split .cta__btns .btn-primary{ width:100%; justify-content:center; }
}

/* ===================================================
   ヘッダー右上CTA（Relief風：バー内に収まるインセット型）
=================================================== */
.g-header__right{ align-items:center; padding-right:18px; }
.g-header__cta{
  clip-path:none;
  border:1px solid var(--accent);
  border-left:1px solid var(--accent);
  height:42px; padding:0 24px; gap:10px;
  font-size:1.1rem; letter-spacing:2.5px;
  transition:color .35s, background .35s, border-color .35s;
}
.g-header__cta::before{ background:var(--bg); }
.g-header__cta:hover{ color:var(--accent); border-color:var(--accent); }
.g-header__cta-arr{ transition:transform .35s; font-size:1.2rem; line-height:1; }
.g-header__cta:hover .g-header__cta-arr{ transform:translateX(4px); }

@media(max-width:1100px){
  .g-header__right{ padding-right:0; }
}
