/* =============================================
   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 28px;
  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 {
  /* 枠いっぱいに引き伸ばし、object-fit で縦横比を保ったまま切り抜く。
     width/height を auto にすると動画が原寸で描画され、枠より大きい素材は
     縮小されずに中央だけが見える状態になるため 100% を明示する。 */
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  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__title {
  display:flex; flex-direction:column; gap:0;
  margin-bottom:0;
}
/* FVキャッチコピー（和文・front-page.php の .fv__title-line に対応） */
.fv__title-line {
  font-family:var(--jp); font-size:clamp(2.6rem,5.6vw,8rem);
  font-weight:700; line-height:1.35;
  letter-spacing:.02em; color:var(--white);
  display:block; white-space:nowrap;
  /* 映像に重なっても読めるように */
  text-shadow:0 2px 20px rgba(0,0,0,.6);
  opacity:0; transform:translateY(60px);
  animation:slideUp .8s cubic-bezier(.16,1,.3,1) forwards;
}
.fv__title-line:nth-child(1) { animation-delay:.4s; }
.fv__title-line:nth-child(2) { animation-delay:.55s; }
.fv__title-line:nth-child(3) { animation-delay:.7s; }
.fv__title-line--accent {
  color:var(--accent);
  text-shadow:0 2px 20px rgba(0,0,0,.6), 0 0 60px rgba(35,174,180,.3);
}

.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-color:var(--bg3);
  background-image:
    linear-gradient(135deg, rgba(35,174,180,.18) 0%, rgba(35,174,180,0) 55%),
    radial-gradient(120% 120% at 100% 0%, rgba(35,174,180,.12) 0%, rgba(35,174,180,0) 50%);
}
.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-dummy::before{
  content:""; position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(0deg,  rgba(35,174,180,.07) 0 1px, transparent 1px 24px),
    repeating-linear-gradient(90deg, rgba(35,174,180,.07) 0 1px, transparent 1px 24px);
  -webkit-mask-image:radial-gradient(circle at 50% 50%, #000 0%, transparent 78%);
          mask-image:radial-gradient(circle at 50% 50%, #000 0%, transparent 78%);
}
.p-pickup__card-img img:not(.p-pickup__card-logo) {
  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:not(.p-pickup__card-logo) { 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; }
/* 本文中のリスト。グローバルで list-style:none にしているので li にも指定が要る */
.page-content__text ul,
.page-content__text ol { margin: 0 0 24px; padding-left: 1.5em; }
.page-content__text ul { list-style: disc; }
.page-content__text ol { list-style: decimal; }
.page-content__text ul li,
.page-content__text ol li { list-style: inherit; margin-bottom: 10px; }
.page-content__text ul li::marker,
.page-content__text ol li::marker { color: var(--accent); }
/* 制定日・改定日の行 */
.page-content__revised {
  margin-top: 48px; padding-top: 24px;
  border-top: 1px solid var(--border);
  font-family: var(--mono); font-size: 1.3rem;
  letter-spacing: 1px; color: var(--white-d); text-align: right;
}
.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%;
}

@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:1200px;
  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:1200px;
  margin-left:auto;
  margin-right:auto;
}
/* page-heroも中央寄せ */
.page-hero__inner {
  max-width:1200px;
  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:1200px; 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-color:var(--bg3);
  background-image:
    linear-gradient(135deg, rgba(35,174,180,.18) 0%, rgba(35,174,180,0) 55%),
    radial-gradient(120% 120% at 100% 0%, rgba(35,174,180,.12) 0%, rgba(35,174,180,0) 50%);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
/* 微細なグリッド（中央ほど濃く） */
.p-col-card__img-dummy::before{
  content:""; position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(0deg,  rgba(35,174,180,.07) 0 1px, transparent 1px 24px),
    repeating-linear-gradient(90deg, rgba(35,174,180,.07) 0 1px, transparent 1px 24px);
  -webkit-mask-image:radial-gradient(circle at 50% 50%, #000 0%, transparent 78%);
          mask-image:radial-gradient(circle at 50% 50%, #000 0%, transparent 78%);
}
/* 中央に白ロゴ（maskはロングハンドで指定＝ブラウザ差異を回避） */
.p-col-card__img-dummy::after{
  content:""; position:relative; z-index:1;
  width:46%; max-width:150px; height:34%; max-height:48px;
  background:rgba(255,255,255,.5);
  -webkit-mask-image:url(../../images/anesys-logo.png);
          mask-image:url(../../images/anesys-logo.png);
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center;  mask-position:center;
  -webkit-mask-size:contain;     mask-size:contain;
}
.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; inset:auto; top:50%; left:50%; transform:translate(-50%,-50%);
  width:52%; max-width:150px; height:auto; object-fit:contain;
  /* ロゴを白へ（ブランドグラデ背景で映える） */
  filter:brightness(0) invert(1);
  opacity:.5; z-index:1; pointer-events:none;
}
/* ダミーカードはクリックしても遷移しない（非リンク・カーソルも通常） */
.p-pickup__card--dummy{ cursor:default; }
.p-pickup__card--dummy:hover{ background:transparent; }

/* インジケーター */
.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:120px 64px; text-align:left; }
.cta--split::before{ font-size:28rem; bottom:-60px; right:-20px; }
.cta--split .cta__inner{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1fr auto;
  gap:80px; align-items:end;
}
.cta--split .cta__sys{ margin-bottom:24px; }
.cta--split .cta__title{ margin-bottom:14px; }
.cta--split .cta__sub{ margin-bottom:0; }

.cta--split .cta__right{
  display:flex; flex-direction:column;
  align-items:flex-end; gap:20px;
}
.cta--split .cta__tel{ align-items:flex-end; gap:2px; }
.cta--split .cta__tel-num{ font-size:4rem; letter-spacing:3px; }
.cta--split .cta__tel-note{ margin-top:4px; }
.cta--split .cta__btns{ display:flex; flex-direction:column; gap:12px; }

@media(max-width:1024px){
  .cta--split{ padding:80px 32px !important; }
  .cta--split .cta__inner{ grid-template-columns:1fr; gap:40px; text-align:center; }
  .cta--split .cta__right{ align-items:center; }
  .cta--split .cta__tel{ align-items:center; }
}
@media(max-width:767px){
  .cta--split{ padding:64px 24px !important; }
  .cta--split::before{ font-size:22vw; bottom:-20px; right:-10px; }
  .cta--split .cta__left{ text-align:left; }
  .cta--split .cta__tel-num{ font-size:3rem; }
}

/* ===================================================
   ヘッダー右上CTA（Relief同仕様：切り欠きを左上に）
=================================================== */
.g-header__cta{ clip-path:polygon(12px 0,100% 0,100% 100%,0 100%); }

/* ===================================================
   会社概要：経営理念セクション
=================================================== */
.p-philosophy{ padding:110px 64px; }
.p-philosophy__inner{ max-width:1200px; margin:0 auto; }
.p-philosophy__label{
  font-family:var(--font-en,'Bebas Neue',sans-serif);
  letter-spacing:4px; color:var(--accent); font-size:1.3rem; margin-bottom:6px;
}
.p-philosophy__jp{ font-size:.95rem; letter-spacing:3px; color:var(--text-sub,#9aa0a4); margin-bottom:26px; }
.p-philosophy__catch{
  font-size:clamp(2.2rem,4vw,3.6rem); font-weight:700; line-height:1.5;
  letter-spacing:2px; margin-bottom:28px;
}
.p-philosophy__lead{
  font-size:clamp(1.15rem,1.4vw,1.35rem); line-height:2.15; color:var(--text-sub,#cfd3d6); max-width:860px;
}

/* ===================================================
   会社概要：企業理念（5つの心）
=================================================== */
.p-principles{ padding:100px 64px; }
.p-principles__inner{ max-width:1200px; margin:0 auto; }
.p-principles__label{
  font-family:var(--font-en,'Bebas Neue',sans-serif);
  letter-spacing:4px; color:var(--accent); font-size:1.3rem; margin-bottom:6px;
}
.p-principles__jp{ font-size:.95rem; letter-spacing:3px; color:var(--text-sub,#9aa0a4); margin-bottom:44px; }
.p-principles__list{ list-style:none; margin:0; padding:0; counter-reset:none; }
.p-principles__item{
  display:grid; grid-template-columns:64px 132px 1fr; align-items:center; gap:28px;
  padding:26px 0; border-top:1px solid rgba(35,174,180,.22);
}
.p-principles__item:last-child{ border-bottom:1px solid rgba(35,174,180,.22); }
.p-principles__num{
  font-family:var(--font-en,'Bebas Neue',sans-serif);
  font-size:1.8rem; color:var(--accent); letter-spacing:2px; line-height:1;
}
.p-principles__word{
  font-size:clamp(1.8rem,2.6vw,2.6rem); font-weight:700; letter-spacing:4px;
  position:relative;
}
.p-principles__word::after{
  content:''; display:block; width:32px; height:2px; background:var(--accent); margin-top:10px;
}
.p-principles__text{ font-size:1.02rem; line-height:1.9; color:var(--text-sub,#cfd3d6); }

@media(max-width:1024px){
  .p-philosophy{ padding:80px 32px; }
  .p-principles{ padding:80px 32px; }
  .p-principles__item{ grid-template-columns:48px 104px 1fr; gap:18px; }
}
@media(max-width:767px){
  .p-philosophy{ padding:64px 24px; }
  .p-principles{ padding:64px 24px; }
  .p-principles__item{
    grid-template-columns:auto 1fr; gap:12px 16px; padding:22px 0;
  }
  .p-principles__num{ grid-row:1; grid-column:1; font-size:1.4rem; }
  .p-principles__word{ grid-row:1; grid-column:2; font-size:1.6rem; }
  .p-principles__word::after{ display:none; }
  .p-principles__text{ grid-row:2; grid-column:1 / -1; }
}

/* ===================================================
   採用ページ APPLY：2ボタンの高さ・位置を揃える
   （LINEボタンの余分なmargin-topと高さ不一致を解消）
=================================================== */
.rec-apply__actions .btn-primary--lg,
.rec-apply__actions .rec-lead__line{
  min-height:62px;
  padding-top:0;
  padding-bottom:0;
  margin-top:0;
  box-sizing:border-box;
}
.rec-apply__actions .rec-lead__line{
  border:1px solid #06C755;
}

/* ===================================================
   採用ページ 給与テーブル：金額を通常フォントに（視認性改善）
=================================================== */
.rec-salary__amount{ font-family:inherit; letter-spacing:normal; }
.rec-salary__amount strong{ font-weight:700; }

/* ===================================================
   固定ページ（page.php）の白飛び対策
   ・本文コンテナを暗色コンテキストに固定
   ・CSS/JS未実装で置き去りのローディング要素を非表示
=================================================== */
.page-content{ background:var(--bg); }

/* ===================================================
   ローダー（トップページ・初回ロード時のみ）
   フェーズ1：キャッチコピー（文言）→ フェーズ2：ロゴ出現
=================================================== */
.loader{
  position:fixed; inset:0; z-index:9000;
  background:var(--accent);          /* ブランドカラー（ティール）背景 */
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  /* 3.6秒後に上へスライドアウト */
  animation:loaderOut .7s cubic-bezier(.76,0,.24,1) 3.6s forwards;
}
@keyframes loaderOut{ to{ transform:translateY(-100%); } }

.loader__phase{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:28px;
}
/* フェーズ1：キャッチコピー（フェードイン → 表示 → フェードアウト） */
.loader__phase--1{ animation:loaderP1 1.9s ease forwards; }
@keyframes loaderP1{
  0%{   opacity:0; transform:translateY(16px); }
  18%{  opacity:1; transform:translateY(0); }
  75%{  opacity:1; transform:translateY(0); }
  100%{ opacity:0; transform:translateY(-16px); }
}
.loader__catch{
  font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"MS PMincho",serif; /* 明朝体 */
  font-size:clamp(1.6rem,4vw,2.6rem);
  font-weight:700; line-height:2; letter-spacing:2px;
  color:#fff; text-align:center;
}
/* フェーズ2：ロゴ出現（1.9秒後にフェードイン） */
.loader__phase--2{ opacity:0; animation:loaderP2 1.6s ease 1.9s forwards; }
@keyframes loaderP2{
  0%{   opacity:0; transform:translateY(16px); }
  30%{  opacity:1; transform:translateY(0); }
  100%{ opacity:1; transform:translateY(0); }
}
.loader__logo-img{
  width:clamp(200px,46vw,320px); height:auto;
  /* ロゴを白へ（ティール背景で映える白ロゴ表示） */
  filter:brightness(0) invert(1) drop-shadow(0 6px 20px rgba(0,0,0,.15));
}

/* ===================================================
   固定ページ本文：旧コンテンツの白背景/薄い文字を暗色テーマへ強制整合
   （page.php = the_content のみ。デザイン済みテンプレートには影響しない）
=================================================== */
/* 直書き背景色を打ち消す */
.page-content__text [style*="background"]{ background-color:transparent !important; }

/* テーブル全体を暗色化 */
.page-content__text table,
.page-content__text thead,
.page-content__text tbody,
.page-content__text tr,
.page-content__text th,
.page-content__text td{
  background:transparent !important;
  background-color:transparent !important;
  border-color:var(--border) !important;
}
/* 値セル：白文字で可読性を確保（旧コンテンツのfont/span色も上書き） */
.page-content__text td,
.page-content__text td *{ color:var(--white) !important; }
/* 見出しセル：アクセント色＋暗色帯 */
.page-content__text th{ background:var(--bg2) !important; background-color:var(--bg2) !important; }
.page-content__text th,
.page-content__text th *{ color:var(--accent) !important; }
/* 本文中のリンク */
.page-content__text a{ color:var(--accent) !important; }

/* ===================================================
   固定ページ本文：CTAリンクをボタン化
   （募集要項ページの「応募フォーム」「採用情報サイト」リンク）
=================================================== */
.page-content__text a[href*="/recruit/application-form"],
.page-content__text a[href*="furusato-i.or.jp"]{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:1.15rem; letter-spacing:2px;
  color:var(--bg) !important; background:var(--accent);
  padding:16px 34px; border:1px solid var(--accent);
  text-decoration:none; margin:10px 14px 10px 0;
  transition:background .3s, color .3s, box-shadow .3s;
}
.page-content__text a[href*="/recruit/application-form"]::after,
.page-content__text a[href*="furusato-i.or.jp"]::after{
  content:'→'; font-size:.95em; line-height:1;
}
.page-content__text a[href*="/recruit/application-form"]:hover,
.page-content__text a[href*="furusato-i.or.jp"]:hover{
  background:transparent; color:var(--accent) !important;
  box-shadow:0 0 16px rgba(35,174,180,.2);
}

/* 表（備考欄）の中の同URLリンクはボタン化せず通常リンクのまま */
.page-content__text td a[href*="furusato-i.or.jp"]{
  display:inline !important; padding:0 !important; margin:0 !important;
  background:none !important; border:none !important; box-shadow:none !important;
  font-family:inherit !important; letter-spacing:normal !important;
  color:var(--accent) !important; text-decoration:underline;
}
.page-content__text td a[href*="furusato-i.or.jp"]::after{ content:none !important; }

/* ===================================================
   採用FAQ（アコーディオン）
=================================================== */
.faq{ padding:100px 64px; }
.faq__inner{ max-width:1000px; margin:0 auto; }
.faq__intro{
  font-size:1.05rem; line-height:2.1; color:var(--white-m);
  margin-bottom:56px; max-width:860px;
}
.faq__intro a{ color:var(--accent); text-decoration:underline; }

.faq__group + .faq__group{ margin-top:64px; }
.faq__group-head{ margin-bottom:20px; }
.faq__group-label{
  display:block; font-family:var(--font-en,'Bebas Neue',sans-serif);
  letter-spacing:4px; color:var(--accent); font-size:1.2rem; margin-bottom:6px;
}
.faq__group-title{ font-size:clamp(1.6rem,2.4vw,2.2rem); font-weight:700; letter-spacing:2px; }

.faq__list{ border-top:1px solid rgba(35,174,180,.2); }
.faq__item{ border-bottom:1px solid rgba(35,174,180,.2); }
.faq__q{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; gap:16px;
  padding:24px 4px; font-size:1.15rem; font-weight:500; color:var(--white);
  transition:color .25s;
}
.faq__q::-webkit-details-marker{ display:none; }
.faq__q:hover{ color:var(--accent); }
.faq__q-mark{
  flex:0 0 auto; font-family:var(--font-en,'Bebas Neue',sans-serif);
  font-size:1.5rem; color:var(--accent); line-height:1; width:22px; text-align:center;
}
.faq__q-text{ flex:1 1 auto; line-height:1.6; }
.faq__toggle{
  flex:0 0 auto; position:relative; width:16px; height:16px; margin-left:8px;
}
.faq__toggle::before,
.faq__toggle::after{
  content:''; position:absolute; top:50%; left:50%;
  width:14px; height:2px; background:var(--accent);
  transform:translate(-50%,-50%); transition:transform .3s ease, opacity .3s ease;
}
.faq__toggle::after{ transform:translate(-50%,-50%) rotate(90deg); }
.faq__item[open] .faq__toggle::after{ opacity:0; transform:translate(-50%,-50%) rotate(0); }

.faq__a{
  display:flex; align-items:flex-start; gap:16px;
  padding:0 4px 26px; animation:faqIn .3s ease;
}
.faq__a-mark{
  flex:0 0 auto; font-family:var(--font-en,'Bebas Neue',sans-serif);
  font-size:1.5rem; color:var(--white-m); line-height:1; width:22px; text-align:center;
}
.faq__a-text{
  flex:1 1 auto; font-size:1rem; line-height:2; color:var(--white-m);
  padding-top:2px;
}
@keyframes faqIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

@media(max-width:767px){
  .faq{ padding:64px 24px; }
  .faq__q{ font-size:1.05rem; gap:12px; padding:20px 2px; }
  .faq__a{ gap:12px; padding:0 2px 22px; }
}

/* ===================================================
   Snow Monkey Forms 暗色テーマ対応
   （応募フォーム/お問い合わせで使用。プラグイン出力を整形）
=================================================== */
.form-page .page-content__text{ max-width:100%; }
.smf-form{ color:var(--white); font-size:1rem; margin-top:8px; }

/* 各項目 */
.smf-item{ display:block; margin-bottom:26px; }
.smf-item__label{
  display:block; font-weight:700; color:var(--white);
  margin-bottom:10px; letter-spacing:1px; font-size:1.02rem;
}
.smf-item__label__optional{
  color:var(--white-m); font-weight:400; font-size:.82em; margin-left:8px;
}

/* テキスト系入力 */
.smf-text-control__control,
.smf-email-control__control,
.smf-tel-control__control,
.smf-url-control__control,
.smf-number-control__control,
.smf-textarea-control__control,
.smf-select-control__control{
  width:100%; max-width:100%;
  background:var(--bg2); color:var(--white);
  border:1px solid var(--border); border-radius:0;
  padding:14px 16px; font-size:1rem; font-family:var(--jp); line-height:1.6;
  transition:border-color .25s, box-shadow .25s;
  -webkit-appearance:none; appearance:none;
}
.smf-textarea-control__control{ min-height:150px; line-height:1.9; resize:vertical; }

/* セレクト（右にキャレット） */
.smf-select-control__control{
  padding-right:44px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8"><path d="M1 1l5 5 5-5" stroke="%2323aeb4" stroke-width="1.5" fill="none"/></svg>');
  background-repeat:no-repeat; background-position:right 16px center;
}
.smf-select-control__control option{ color:#111; }

/* フォーカス */
.smf-text-control__control:focus,
.smf-email-control__control:focus,
.smf-tel-control__control:focus,
.smf-url-control__control:focus,
.smf-number-control__control:focus,
.smf-textarea-control__control:focus,
.smf-select-control__control:focus{
  outline:none; border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(35,174,180,.15);
}
.smf-text-control__control::placeholder,
.smf-textarea-control__control::placeholder{ color:rgba(232,234,237,.35); }

/* ラジオ・チェックボックス */
.smf-radio-buttons-control,
.smf-checkboxes-control{ display:flex; flex-wrap:wrap; gap:8px 24px; }
.smf-radio-button-control,
.smf-checkbox-control,
.smf-radio-buttons-control__control,
.smf-checkboxes-control__control{
  display:inline-flex; align-items:center; gap:8px; color:var(--white); cursor:pointer;
}
.smf-radio-buttons-control input,
.smf-checkboxes-control input,
.smf-radio-button-control input,
.smf-checkbox-control input{ accent-color:var(--accent); width:18px; height:18px; }

/* ファイル添付 */
.smf-file-control{ color:var(--white-m); font-size:.95rem; }
.smf-file-control__control{ color:var(--white); }
.smf-file-control__button,
.smf-file-control__controls button{
  background:transparent; color:var(--accent);
  border:1px solid var(--border); padding:8px 16px; cursor:pointer;
}

/* ボタン（確認・送信） */
.smf-button-control__control,
.smf-confirm-button-control__control,
.smf-submit-button-control__control{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--mono); font-size:1.1rem; letter-spacing:2px;
  color:var(--bg); background:var(--accent);
  padding:16px 40px; border:1px solid var(--accent); border-radius:0;
  cursor:pointer; transition:background .3s, color .3s, box-shadow .3s;
}
.smf-button-control__control:hover,
.smf-confirm-button-control__control:hover,
.smf-submit-button-control__control:hover{
  background:transparent; color:var(--accent); box-shadow:0 0 16px rgba(35,174,180,.2);
}
/* 戻るボタンはサブスタイル */
.smf-back-button-control__control{
  color:var(--white); background:transparent; border-color:var(--border);
}
.smf-back-button-control__control:hover{ color:var(--accent); background:transparent; }

/* ステップ表示（入力→確認→完了） */
.smf-progress-tracker{
  display:flex; list-style:none; margin:0 0 40px; padding:0;
}
.smf-progress-tracker__item{
  flex:1; text-align:center; padding:12px 8px; font-size:.85rem; letter-spacing:1px;
  color:var(--white-m); background:var(--bg2);
  border:1px solid var(--border); border-right:none;
}
.smf-progress-tracker__item:last-child{ border-right:1px solid var(--border); }
.smf-progress-tracker__item--current{
  color:var(--bg); background:var(--accent); border-color:var(--accent); font-weight:700;
}

/* バリデーション・エラー */
.smf-invalid .smf-text-control__control,
.smf-invalid .smf-email-control__control,
.smf-invalid .smf-tel-control__control,
.smf-invalid .smf-textarea-control__control,
.smf-invalid .smf-select-control__control{ border-color:#e2555a; }
.smf-validation-error,
.smf-error-messages,
.smf-system-error,
.smf-item__error{ color:#ff8a8d; font-size:.9rem; margin-top:6px; }

/* ===================================================
   Snow Monkey Forms 追い込み：プラグイン既定CSSより優先
   （入力欄の白背景を暗色へ強制上書き。クラス名に依存しない）
=================================================== */
.page-content__text input[type="text"],
.page-content__text input[type="email"],
.page-content__text input[type="tel"],
.page-content__text input[type="url"],
.page-content__text input[type="number"],
.page-content__text input[type="password"],
.page-content__text input[type="search"],
.page-content__text input[type="date"],
.page-content__text textarea,
.page-content__text select{
  background-color:var(--bg2) !important;
  color:var(--white) !important;
  border:1px solid var(--border) !important;
  border-radius:0 !important;
}
.page-content__text input:focus,
.page-content__text textarea:focus,
.page-content__text select:focus{
  border-color:var(--accent) !important;
  box-shadow:0 0 0 3px rgba(35,174,180,.15) !important;
  outline:none !important;
}
.page-content__text input::placeholder,
.page-content__text textarea::placeholder{ color:rgba(232,234,237,.4) !important; }
.page-content__text select option{ color:#111 !important; }

/* ラベル・セル文字を白に（読みやすさ確保） */
.page-content__text .smf-form th,
.page-content__text .smf-form td,
.page-content__text .smf-form label,
.page-content__text .smf-item__label{ color:var(--white) !important; }

/* 送信・確認・戻るボタン */
.page-content__text .smf-button-control__control,
.page-content__text button[type="submit"],
.page-content__text input[type="submit"],
.page-content__text input[type="button"]{
  background:var(--accent) !important; color:var(--bg) !important;
  border:1px solid var(--accent) !important; border-radius:0 !important;
}
.page-content__text .smf-button-control__control:hover,
.page-content__text button[type="submit"]:hover,
.page-content__text input[type="submit"]:hover{
  background:transparent !important; color:var(--accent) !important;
}

/* ステップ表示の現在地 */
.smf-progress-tracker__item--current{
  background:var(--accent) !important; color:var(--bg) !important; border-color:var(--accent) !important;
}

/* ===================================================
   Snow Monkey Forms 追い込み②：ラベル列（左カラム）の白背景を暗色へ
   プラグインの!important＋高詳細度に勝つよう body 起点で詳細度を上げる
=================================================== */
body .page-content__text .smf-form th,
body .page-content__text .smf-form td,
body .page-content__text table th,
body .page-content__text table td,
body .page-content__text th:first-child,
body .page-content__text td:first-child,
body .page-content__text .smf-item__label,
body .page-content__text .smf-item__col,
body .page-content__text .smf-item__col--label,
body .page-content__text [class*="smf-item__col"]{
  background:transparent !important;
  background-color:transparent !important;
  border-color:var(--border) !important;
}
/* ラベルの文字色を白に（子要素も含む） */
body .page-content__text th,
body .page-content__text th *,
body .page-content__text td:first-child,
body .page-content__text td:first-child *,
body .page-content__text .smf-item__label,
body .page-content__text .smf-item__label *{
  color:var(--white) !important;
}

/* 入力欄の暗色を再宣言（上のtd透過に負けないよう詳細度を確保） */
body .page-content__text input[type="text"],
body .page-content__text input[type="email"],
body .page-content__text input[type="tel"],
body .page-content__text input[type="url"],
body .page-content__text input[type="number"],
body .page-content__text input[type="password"],
body .page-content__text input[type="search"],
body .page-content__text input[type="date"],
body .page-content__text textarea,
body .page-content__text select{
  background-color:var(--bg2) !important;
  color:var(--white) !important;
  border:1px solid var(--border) !important;
}

/* ===================================================
   Snow Monkey Forms：住所など縦積み入力の間隔を詰める
   （郵便番号の「〒」と入力欄を近づけて分かりやすく）
=================================================== */
.page-content__text .smf-item__controls,
.page-content__text .smf-item__col--controls,
.page-content__text [class*="smf-item__col"]{ line-height:1.5; }
.page-content__text .smf-item__controls > *,
.page-content__text .smf-item__col--controls > *,
.page-content__text [class*="smf-item__col"] > *{ margin-top:6px; margin-bottom:6px; }
/* 〒記号をアクセント色で少し見やすく（テキスト直後の入力に寄せる） */
.page-content__text .smf-item__controls{ color:var(--white); }

/* ===================================================
   スマホ サブメニューの開閉アイコンを「＋／−」に
=================================================== */
.sp-nav__arrow{ display:none !important; }
.sp-nav__btn::after{
  content:'+'; flex:0 0 auto; margin-left:auto;
  font-size:1.7rem; line-height:1; font-weight:300; color:currentColor;
  transition:opacity .2s;
}
.sp-nav__btn[aria-expanded="true"]::after{ content:'−'; }

/* ===================================================
   Snow Monkey Forms 住所：〒を郵便番号入力の左に横並び
   ※グループブロックは内側 .wp-block-group__inner-container に
     子要素が入る場合があるため、両方を flex 化して確実に効かせる
=================================================== */
.zip_group,
.zip_group > .wp-block-group__inner-container{
  display:flex !important;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.zip_group p{
  margin:0 !important;
  flex:0 0 auto;
  color:var(--white);
  font-size:1.15rem;
  line-height:1;
}
.zip_group .smf-tel-control{
  flex:0 1 240px;
  margin:0 !important;
}
.zip_group .smf-tel-control__control{ width:100% !important; }

/* 横スクロール（はみ出し）防止の保険 */
html{ overflow-x:hidden; }
.zip_group .smf-tel-control__control,
.page-content__text input,
.page-content__text textarea,
.page-content__text select{ min-width:0; max-width:100%; }

/* ===================================================
   Snow Monkey Forms ボタンを大きく・ボタンらしく
=================================================== */
.smf-action{
  display:flex; justify-content:center; flex-wrap:wrap;
  gap:16px; margin-top:40px;
}
.smf-button-control__control,
.smf-confirm-button-control__control,
.smf-submit-button-control__control,
.smf-back-button-control__control,
.page-content__text .smf-button-control__control{
  min-width:260px;
  padding:20px 48px !important;
  font-size:1.25rem !important;
  letter-spacing:3px !important;
  font-weight:700 !important;
  background:var(--accent) !important;
  color:var(--bg) !important;
  border:1px solid var(--accent) !important;
  border-radius:0 !important;
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:background .3s, color .3s, box-shadow .3s;
}
.smf-button-control__control:hover,
.smf-confirm-button-control__control:hover,
.smf-submit-button-control__control:hover{
  background:transparent !important;
  color:var(--accent) !important;
  box-shadow:0 0 20px rgba(35,174,180,.25);
}
/* 「戻る」はサブスタイル */
.smf-back-button-control__control{
  background:transparent !important;
  color:var(--white) !important;
  border-color:var(--border) !important;
}
.smf-back-button-control__control:hover{
  color:var(--accent) !important;
  border-color:var(--accent) !important;
}

/* ===================================================
   自作 応募フォーム（プラグイン不要）
=================================================== */
.apply-form, .apply-form--confirm{ margin-top:8px; }

/* ステップ表示 */
.apply-form__steps{
  display:flex; list-style:none; margin:0 0 36px; padding:0;
}
.apply-form__step{
  flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 8px; font-size:.9rem; letter-spacing:1px; color:var(--white-m);
  background:var(--bg2); border:1px solid var(--border); border-right:none;
}
.apply-form__step:last-child{ border-right:1px solid var(--border); }
.apply-form__step-num{
  width:24px; height:24px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08); color:var(--white-m); font-size:.85rem;
}
.apply-form__step.is-current{ color:var(--bg); background:var(--accent); border-color:var(--accent); font-weight:700; }
.apply-form__step.is-current .apply-form__step-num{ background:var(--bg); color:var(--accent); }

/* 行 */
.apply-form__row{
  display:grid; grid-template-columns:200px 1fr; gap:16px 24px;
  padding:22px 0; border-bottom:1px solid rgba(35,174,180,.15); align-items:start;
}
.apply-form__row:first-of-type{ border-top:1px solid rgba(35,174,180,.15); }
.apply-form__label{ font-weight:700; color:var(--white); padding-top:12px; letter-spacing:1px; }
.apply-form__req{
  display:inline-block; margin-left:6px; padding:2px 8px; font-size:.72rem;
  color:var(--bg); background:var(--accent); letter-spacing:1px; vertical-align:middle;
}
.apply-form__control input[type="text"],
.apply-form__control input[type="email"],
.apply-form__control input[type="tel"],
.apply-form__control textarea,
.apply-form__control select{ width:100%; }
.apply-form__note{ margin:6px 0 0; font-size:.85rem; color:var(--white-m); }
.apply-form__error{ margin:6px 0 0; font-size:.9rem; color:#ff8a8d; }
.apply-form__row.is-error input,
.apply-form__row.is-error textarea{ border-color:#e2555a !important; }

/* ラジオ */
.apply-form__radios{ display:flex; flex-wrap:wrap; gap:10px 24px; padding-top:10px; }
.apply-form__radio{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; color:var(--white); }
.apply-form__radio input{ accent-color:var(--accent); width:18px; height:18px; }

/* 郵便番号 */
.apply-form__zip{ display:flex; align-items:center; gap:10px; }
.apply-form__zip span{ font-size:1.15rem; color:var(--white); }
.apply-form__zip input{ flex:0 1 240px; }

/* ファイル */
.apply-form__control input[type="file"]{ color:var(--white-m); }
.apply-form__filenote{ margin:0 0 16px; color:var(--accent); font-size:.95rem; }

/* ハニーポット（非表示） */
.apply-form__hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* ボタン */
.apply-form__actions{ margin-top:36px; text-align:center; }
.apply-form__actions--back{ margin-top:14px; }
.apply-form__btn{
  min-width:260px; padding:20px 48px; cursor:pointer;
  font-family:var(--mono); font-size:1.25rem; letter-spacing:3px; font-weight:700;
  color:var(--bg); background:var(--accent); border:1px solid var(--accent);
  transition:background .3s, color .3s, box-shadow .3s;
}
.apply-form__btn:hover{ background:transparent; color:var(--accent); box-shadow:0 0 20px rgba(35,174,180,.25); }
.apply-form__btn--sub{ background:transparent; color:var(--white); border-color:var(--border); min-width:180px; font-size:1.05rem; padding:14px 32px; }
.apply-form__btn--sub:hover{ color:var(--accent); border-color:var(--accent); box-shadow:none; }

/* 確認画面 */
.apply-form__lead{ margin:0 0 24px; color:var(--white-m); }
.apply-form--confirm .apply-form__label{ padding-top:0; }
.apply-form__confirm-val{ color:var(--white); line-height:1.8; }

/* 完了・エラー */
.apply-form__done{ padding:20px 0; }
.apply-form__done-ttl{ font-size:1.6rem; font-weight:700; color:var(--accent); margin-bottom:14px; }
.apply-form__toperror{
  margin:0 0 24px; padding:14px 18px; color:#ff8a8d;
  background:rgba(226,85,90,.08); border:1px solid rgba(226,85,90,.4);
}

@media(max-width:767px){
  .apply-form__row{ grid-template-columns:1fr; gap:8px; padding:18px 0; }
  .apply-form__label{ padding-top:0; }
  .apply-form__btn{ width:100%; min-width:0; }
}

/* 応募フォーム：テキストボックスを太く（縦に厚く） */
.apply-form__control input[type="text"],
.apply-form__control input[type="email"],
.apply-form__control input[type="tel"],
.apply-form__control select,
.apply-form__zip input{
  padding:18px 18px !important;
  font-size:1.6rem !important;
}
.apply-form__control textarea{
  padding:18px 18px !important;
  font-size:1.6rem !important;
  line-height:1.9 !important;
  min-height:170px !important;
}

/* 応募フォーム：入力欄を横幅いっぱいに */
.apply-form__control input[type="text"],
.apply-form__control input[type="email"],
.apply-form__control input[type="tel"],
.apply-form__control textarea,
.apply-form__control select{ width:100% !important; }

/* ===================================================
   Snow Monkey Forms を自作フォームと同じ見た目に統一
   （実マークアップのクラスに合わせて暗色テーマ化）
=================================================== */

/* --- 進行ステップ --- */
.smf-progress-tracker{ display:flex !important; list-style:none; margin:0 0 36px !important; padding:0 !important; }
.smf-progress-tracker__item{
  flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 8px !important; font-size:1.4rem; letter-spacing:1px; text-align:center;
  color:var(--white-m) !important; background:var(--bg2) !important;
  border:1px solid var(--border) !important; border-right:none !important;
}
.smf-progress-tracker__item:last-child{ border-right:1px solid var(--border) !important; }
.smf-progress-tracker__item__number{
  flex:0 0 auto; width:26px; height:26px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08); color:var(--white-m); font-size:1.3rem;
}
.smf-progress-tracker__item__text{ font-size:1.35rem; }
.smf-progress-tracker__item[aria-current="true"]{
  color:var(--bg) !important; background:var(--accent) !important; border-color:var(--accent) !important; font-weight:700;
}
.smf-progress-tracker__item[aria-current="true"] .smf-progress-tracker__item__number{
  background:var(--bg); color:var(--accent);
}

/* --- 行（ラベル＋入力） --- */
.smf-form .smf-item{
  display:grid !important; grid-template-columns:220px 1fr; gap:16px 28px;
  padding:24px 0 !important; margin:0 !important; align-items:start;
  border-bottom:1px solid rgba(35,174,180,.15) !important; border-top:none !important;
  background:transparent !important;
}
.smf-form .smf-item:first-child{ border-top:1px solid rgba(35,174,180,.15) !important; }
.smf-item__col{ padding:0 !important; margin:0 !important; background:transparent !important; border:none !important; }
.smf-item__label{ padding-top:14px !important; background:transparent !important; }
.smf-item__label, .smf-item__label__text{
  font-weight:700 !important; color:var(--white) !important; letter-spacing:1px; font-size:1.5rem;
}
.smf-item__controls{ background:transparent !important; }

/* --- テキスト・テキストエリア・セレクト（太く・16px・暗色） --- */
.smf-text-control__control,
.smf-textarea-control__control,
.smf-select-control__control{
  width:100% !important; box-sizing:border-box;
  background:var(--bg2) !important; color:var(--white) !important;
  border:1px solid var(--border) !important; border-radius:0 !important;
  padding:18px 18px !important; font-size:1.6rem !important; font-family:var(--jp) !important;
  line-height:1.6 !important;
}
.smf-textarea-control__control{ min-height:170px !important; line-height:1.9 !important; resize:vertical; }
.smf-text-control__control:focus,
.smf-textarea-control__control:focus,
.smf-select-control__control:focus{
  outline:none !important; border-color:var(--accent) !important;
  box-shadow:0 0 0 3px rgba(35,174,180,.15) !important;
}
.smf-text-control__control::placeholder,
.smf-textarea-control__control::placeholder{ color:rgba(232,234,237,.4) !important; }

/* --- セレクト：キャレット --- */
.smf-select-control{ position:relative; display:block; }
.smf-select-control__control{
  padding-right:44px !important; -webkit-appearance:none; appearance:none;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8"><path d="M1 1l5 5 5-5" stroke="%2323aeb4" stroke-width="1.5" fill="none"/></svg>') !important;
  background-repeat:no-repeat !important; background-position:right 16px center !important;
}
.smf-select-control__control option{ color:#111; }
.smf-select-control__toggle{ display:none !important; }

/* --- ラジオ --- */
.smf-radio-buttons-control{ display:flex !important; flex-wrap:wrap; gap:10px 24px; padding-top:10px; }
.smf-radio-buttons-control__control{ display:flex !important; flex-wrap:wrap; gap:10px 24px; border:none !important; }
.smf-label{ margin:0 !important; }
.smf-radio-button-control{ display:inline-flex !important; align-items:center; gap:8px; color:var(--white) !important; cursor:pointer; }
.smf-radio-button-control__control{ accent-color:var(--accent); width:18px; height:18px; }
.smf-radio-button-control__label{ color:var(--white) !important; font-size:1.5rem; }

/* --- ファイル添付 --- */
.smf-file-control{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; color:var(--white-m) !important; }
.smf-file-control__control{ position:absolute; left:-9999px; }
.smf-file-control__label{
  display:inline-flex; align-items:center; cursor:pointer;
  padding:12px 22px; font-size:1.4rem; letter-spacing:1px;
  color:var(--accent); background:transparent; border:1px solid var(--border);
  transition:border-color .25s, color .25s;
}
.smf-file-control__label:hover{ border-color:var(--accent); }
.smf-file-control__filename{ color:var(--white-m) !important; font-size:1.35rem; }
.smf-file-control__clear{
  background:transparent; color:var(--white-m); border:1px solid var(--border);
  padding:8px 14px; cursor:pointer; font-size:1.3rem;
}

/* --- ボタン（確認へ／送信／戻る） --- */
.smf-action{ display:flex; justify-content:center; flex-wrap:wrap; gap:16px; margin-top:40px !important; }
.smf-button-control__control{
  min-width:260px; padding:20px 48px !important; cursor:pointer;
  font-family:var(--mono) !important; font-size:1.25rem !important; letter-spacing:3px !important; font-weight:700 !important;
  color:var(--bg) !important; background:var(--accent) !important;
  border:1px solid var(--accent) !important; border-radius:0 !important;
  transition:background .3s, color .3s, box-shadow .3s;
}
.smf-button-control__control:hover{ background:transparent !important; color:var(--accent) !important; box-shadow:0 0 20px rgba(35,174,180,.25); }
.smf-button-control__control[data-action="back"]{
  background:transparent !important; color:var(--white) !important; border-color:var(--border) !important;
}

/* --- 〒＋郵便番号 横並び（zip_group） --- */
.zip_group,
.zip_group > .wp-block-group__inner-container{ display:flex !important; align-items:center; gap:10px; flex-wrap:wrap; }
.zip_group p{ margin:0 !important; flex:0 0 auto; color:var(--white); font-size:1.5rem; line-height:1; }
.zip_group .smf-text-control{ flex:0 1 260px; margin:0 !important; }
.zip_group + .smf-placeholder,
.smf-item__controls > .smf-placeholder{ margin-top:10px; }

/* --- 補足文・エラー --- */
.smf-item__controls .wp-block-paragraph{ color:var(--white-m) !important; font-size:1.3rem; margin:8px 0 0; }
.smf-system-error-content-ready,
.smf-validation-error{ color:#ff8a8d !important; font-size:1.35rem; margin-top:8px; }

@media(max-width:767px){
  .smf-form .smf-item{ grid-template-columns:1fr; gap:8px; padding:18px 0 !important; }
  .smf-item__label{ padding-top:0 !important; }
  .smf-button-control__control{ width:100%; min-width:0; }
}

/* ===================================================
   Snow Monkey Forms：プラグイン既定の白い枠線を除去
   （行の区切り＝薄いtealのみ残す）
=================================================== */
body .smf-form,
body .smf-form--business,
body .smf-form .smf-item__col,
body .smf-form .smf-item__col--label,
body .smf-form .smf-item__col--controls,
body .smf-form .smf-item__controls,
body .smf-form .smf-item__label,
body .smf-form .smf-placeholder{
  border:none !important;
  box-shadow:none !important;
  background:transparent !important;
}
body .smf-form .smf-item{
  border:none !important;
  border-bottom:1px solid rgba(35,174,180,.15) !important;
}
body .smf-form .smf-item:first-child{
  border-top:1px solid rgba(35,174,180,.15) !important;
}
/* 入力欄・ボタン自体の枠は維持（上のnoneで消えないよう再宣言） */
body .smf-text-control__control,
body .smf-textarea-control__control,
body .smf-select-control__control{
  border:1px solid var(--border) !important;
  background:var(--bg2) !important;
}

/* ===================================================
   Snow Monkey Forms 進行ステップ：白い連結線/枠線を除去
=================================================== */
body .smf-focus-point{ display:none !important; }
body .smf-progress-tracker::before,
body .smf-progress-tracker::after,
body .smf-progress-tracker__item::before,
body .smf-progress-tracker__item::after,
body .smf-progress-tracker__item__number::before,
body .smf-progress-tracker__item__number::after{
  display:none !important; content:none !important; border:none !important; background:none !important;
}
body .smf-progress-tracker,
body .smf-progress-tracker__item,
body .smf-progress-tracker__item--input,
body .smf-progress-tracker__item--confirm,
body .smf-progress-tracker__item--complete{
  border-color:rgba(35,174,180,.15) !important;
}
body .smf-progress-tracker{ border:none !important; }
body .smf-progress-tracker__item{
  border:1px solid rgba(35,174,180,.15) !important; border-right:none !important;
}
body .smf-progress-tracker__item:last-child{ border-right:1px solid rgba(35,174,180,.15) !important; }
body .smf-progress-tracker__item[aria-current="true"]{
  background:var(--accent) !important; border-color:var(--accent) !important;
}
