/* =====================================================================
   ZEST JAPAN建設 — Plan 3
   テーマ：白 × ブラック(チャコール) × ネイビー
   コンセプト：データ・数字で見せるモダンなクリーン感
   フォント：Inter（英数）／ Noto Sans JP（和文）／ JetBrains Mono（数値・コード）
   ===================================================================== */

:root{
  --c-bg:#FFFFFF;
  --c-bg-l:#F5F5F7;
  --c-bg-ll:#FAFAFB;
  --c-bg-d:#0F0F0F;
  --c-bg-d2:#1B1B1F;
  --c-text:#0F0F0F;
  --c-text-l:#6E6E73;
  --c-text-ll:#A6A6A6;
  --c-text-lll:#D2D2D7;
  --c-blue:#1A4D8C;
  --c-blue-d:#0E3160;
  --c-blue-l:#E8F0FB;
  --c-blue-ll:#F3F7FD;
  --c-line:#E5E5EA;
  --c-line-d:#D2D2D7;
  --c-green:#34C759;
  --c-red:#FF3B30;
  --c-accent:#FFD60A;
  --font-en:'Inter','Helvetica Neue','Arial',sans-serif;
  --font-jp:'Noto Sans JP','Hiragino Kaku Gothic ProN','游ゴシック',YuGothic,sans-serif;
  --font-mono:'JetBrains Mono','SFMono-Regular',Menlo,monospace;
  --max:1280px;
  --pad:32px;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-jp);color:var(--c-text);background:var(--c-bg);line-height:1.75;font-weight:400;overflow-x:hidden;letter-spacing:.02em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:opacity .2s,color .2s,background .2s,border-color .2s}
a:hover{opacity:.78}
button{font-family:inherit;cursor:pointer}
input,textarea,select{font-family:inherit}
.jp{font-family:var(--font-jp)}
.en{font-family:var(--font-en)}
.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.container{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.container-sm{max-width:1080px;margin:0 auto;padding:0 var(--pad)}

/* ===== Top Ticker（動くデータバー） ===== */
.ticker{background:var(--c-bg-d);color:var(--c-bg);padding:9px 0;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;overflow:hidden;white-space:nowrap;border-bottom:1px solid var(--c-line-d)}
.ticker-track{display:inline-block;animation:tick 60s linear infinite;padding-left:100%}
.ticker span{margin-right:48px}
.ticker .label{color:var(--c-text-ll)}
.ticker .val{color:var(--c-bg)}
.ticker .up{color:var(--c-green)}
.ticker .dn{color:var(--c-red)}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}

/* ===== Header（固定） ===== */
.header{position:sticky;top:0;background:rgba(255,255,255,.93);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--c-line);z-index:100}
.header-inner{max-width:var(--max);margin:0 auto;padding:14px var(--pad);display:flex;justify-content:space-between;align-items:center;gap:32px}
.logo{font-family:var(--font-jp);font-weight:900;font-size:17px;color:var(--c-text);letter-spacing:.02em;line-height:1.2;display:flex;align-items:baseline;gap:10px}
.logo .dot{width:8px;height:8px;background:var(--c-blue);display:inline-block;flex-shrink:0}
.logo small{font-size:11px;color:var(--c-text-l);font-weight:500;letter-spacing:.08em}
.head-cta{display:flex;align-items:center;gap:18px}
.head-tel{font-family:var(--font-en);font-size:15px;font-weight:700;color:var(--c-blue);letter-spacing:-.01em;display:inline-flex;align-items:center;gap:6px}
.head-tel::before{content:"";width:6px;height:6px;background:var(--c-green);border-radius:50%;animation:pulse 2s ease-in-out infinite}
.head-btn{background:var(--c-blue);color:var(--c-bg);padding:11px 22px;font-family:var(--font-jp);font-size:12px;font-weight:700;letter-spacing:.05em;border-radius:4px;transition:background .2s,transform .2s}
.head-btn:hover{background:var(--c-blue-d);opacity:1;transform:translateY(-1px)}
@media(max-width:900px){
  .header-inner{padding:12px 18px;gap:14px}
  .logo{font-size:13px}
  .logo small{display:none}
  .head-tel{display:none}
  .head-btn{padding:9px 14px;font-size:11px}
}

/* ===== Hamburger Toggle（モバイル時のみ表示） ===== */
.gnav-toggle{display:none;width:42px;height:42px;background:transparent;border:1px solid var(--c-line);border-radius:6px;padding:0;position:relative;flex-shrink:0;transition:background .2s,border-color .2s}
.gnav-toggle:hover{background:var(--c-bg-l);border-color:var(--c-line-d)}
.gnav-toggle span{position:absolute;left:50%;top:50%;width:18px;height:1.5px;background:var(--c-text);transform:translate(-50%,-50%);transition:transform .25s ease,opacity .2s ease,background .2s}
.gnav-toggle span:nth-child(1){transform:translate(-50%,calc(-50% - 6px))}
.gnav-toggle span:nth-child(2){transform:translate(-50%,-50%)}
.gnav-toggle span:nth-child(3){transform:translate(-50%,calc(-50% + 6px))}
.gnav-toggle.is-active span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}
.gnav-toggle.is-active span:nth-child(2){opacity:0}
.gnav-toggle.is-active span:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}

/* ===== Global Nav（サイト内ナビ） ===== */
.gnav{background:rgba(255,255,255,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--c-line);position:sticky;top:55px;z-index:99}
.gnav-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);display:flex;justify-content:center;align-items:center;gap:36px;height:50px}
.gnav a{font-family:var(--font-jp);font-size:13px;font-weight:500;color:var(--c-text-l);letter-spacing:.02em;padding:4px 0;border-bottom:2px solid transparent;transition:all .2s}
.gnav a:hover{color:var(--c-blue);border-bottom-color:var(--c-blue);opacity:1}
.gnav a.is-current{color:var(--c-text);border-bottom-color:var(--c-blue);font-weight:700}
.gnav-backdrop{display:none}
@media(max-width:900px){
  .gnav{top:48px}
  .gnav-inner{gap:18px;overflow-x:auto;justify-content:flex-start;padding:0 16px;height:44px;-webkit-overflow-scrolling:touch}
  .gnav a{font-size:11px;white-space:nowrap;flex-shrink:0;padding:2px 0}
}
@media(max-width:768px){
  /* ハンバーガーボタン表示 */
  .gnav-toggle{display:inline-block}
  /* gnav 自体は通常フローから外し、右からスライドインのドロワーに */
  .gnav{position:fixed;top:0;right:0;width:84%;max-width:340px;height:100vh;height:100dvh;background:var(--c-bg);border-bottom:none;border-left:1px solid var(--c-line);padding:0;z-index:200;transform:translateX(100%);transition:transform .32s cubic-bezier(.22,.61,.36,1);box-shadow:-20px 0 60px rgba(15,15,15,.08);overflow-y:auto;-webkit-overflow-scrolling:touch}
  .gnav.is-open{transform:translateX(0)}
  .gnav-inner{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;height:auto;padding:84px 28px 32px;overflow:visible}
  .gnav a{font-size:15px;font-weight:600;color:var(--c-text);padding:18px 0;border-bottom:1px solid var(--c-line);width:100%;letter-spacing:.04em;white-space:normal;flex-shrink:1;display:flex;align-items:center;justify-content:space-between}
  .gnav a::after{content:"→";font-family:var(--font-en);font-weight:400;color:var(--c-text-ll);font-size:14px;transition:transform .2s,color .2s}
  .gnav a:hover{border-bottom-color:var(--c-blue);border-bottom-width:1px}
  .gnav a:hover::after{color:var(--c-blue);transform:translateX(4px)}
  .gnav a.is-current{color:var(--c-blue);border-bottom-color:var(--c-blue)}
  .gnav a.is-current::after{color:var(--c-blue)}
  /* ドロワー上部の閉じるボタン */
  .gnav-close{position:absolute;top:18px;right:18px;width:40px;height:40px;background:transparent;border:1px solid var(--c-line);border-radius:6px;padding:0;display:flex;align-items:center;justify-content:center;color:var(--c-text);font-family:var(--font-en);font-size:22px;font-weight:300;line-height:1;cursor:pointer;transition:background .2s,border-color .2s}
  .gnav-close:hover{background:var(--c-bg-l);border-color:var(--c-line-d)}
  /* ドロワー上部のラベル */
  .gnav-label{position:absolute;top:28px;left:28px;font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;color:var(--c-text-ll);font-weight:600}
  /* 背景オーバーレイ */
  .gnav-backdrop{display:block;position:fixed;inset:0;background:rgba(15,15,15,.42);opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease;z-index:150;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  .gnav-backdrop.is-open{opacity:1;visibility:visible}
  /* body スクロールロック */
  body.no-scroll{overflow:hidden}
}

/* ===== Section in-page nav（トップページ内回遊ナビ） ===== */
.snav{background:var(--c-bg-l);border-bottom:1px solid var(--c-line)}
.snav-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);display:flex;justify-content:flex-start;align-items:center;gap:28px;height:44px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.snav-inner::before{content:"INDEX";font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;color:var(--c-text-ll);font-weight:600;flex-shrink:0;margin-right:8px}
.snav a{font-family:var(--font-jp);font-size:12px;font-weight:500;color:var(--c-text-l);white-space:nowrap;letter-spacing:.02em;display:inline-flex;align-items:center;gap:6px}
.snav a::before{content:attr(data-no);font-family:var(--font-mono);font-size:10px;color:var(--c-blue);font-weight:600}
.snav a:hover{color:var(--c-blue);opacity:1}
@media(max-width:900px){.snav-inner{gap:18px}.snav-inner::before{display:none}}

/* ===== Hero ===== */
.hero{padding:70px 0 90px;background:var(--c-bg);border-bottom:1px solid var(--c-line);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;top:0;right:0;width:35%;height:100%;background:linear-gradient(180deg,var(--c-blue-ll) 0%,transparent 100%);opacity:.5;z-index:0;pointer-events:none}
.hero-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end;position:relative;z-index:1}
.hero-meta{display:flex;align-items:center;gap:16px;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;color:var(--c-text-l);margin-bottom:36px;flex-wrap:wrap}
.hero-meta .badge{background:var(--c-blue);color:var(--c-bg);padding:4px 12px;font-weight:600;letter-spacing:.08em;font-family:var(--font-jp)}
.hero-meta .live{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-jp);font-weight:500}
.hero-meta .live::before{content:"";width:6px;height:6px;background:var(--c-green);border-radius:50%;animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.9)}}
.hero h1{font-family:var(--font-jp);font-weight:900;font-size:72px;line-height:1.2;letter-spacing:-.02em;color:var(--c-text);margin-bottom:36px}
.hero h1 .small{display:block;font-size:.28em;color:var(--c-text-l);font-weight:500;letter-spacing:.06em;margin-bottom:18px}
.hero h1 .em{color:var(--c-blue)}
.hero-sub{font-family:var(--font-jp);font-size:15px;line-height:2;color:var(--c-text-l);max-width:540px;margin-bottom:40px;font-weight:400}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--c-text);border-bottom:1px solid var(--c-text);padding:22px 0;margin-bottom:40px}
.hs{border-right:1px solid var(--c-line);padding:0 24px}
.hs:first-child{padding-left:0}
.hs:last-child{border-right:none;padding-right:0}
.hs-num{font-family:var(--font-en);font-size:52px;font-weight:800;color:var(--c-text);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.hs-num small{font-size:24px;color:var(--c-blue);font-weight:600}
.hs-label{font-family:var(--font-jp);font-size:12px;color:var(--c-text-l);letter-spacing:.05em;margin-top:10px;font-weight:500}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}
.btn-primary{display:inline-flex;align-items:center;gap:12px;background:var(--c-text);color:var(--c-bg);padding:18px 32px;font-family:var(--font-jp);font-size:14px;font-weight:700;letter-spacing:.05em;border-radius:6px;transition:background .2s,transform .2s}
.btn-primary::after{content:"→";font-family:var(--font-en);font-weight:400}
.btn-primary:hover{background:var(--c-blue);opacity:1;transform:translateY(-1px)}
.btn-outline{display:inline-flex;align-items:center;gap:12px;background:var(--c-bg);color:var(--c-text);padding:18px 32px;font-family:var(--font-jp);font-size:14px;font-weight:700;letter-spacing:.05em;border-radius:6px;border:1px solid var(--c-text);transition:all .2s}
.btn-outline:hover{background:var(--c-text);color:var(--c-bg);opacity:1}

.hero-visual{position:relative;height:560px;background:var(--c-bg-l);border:1px solid var(--c-line);overflow:hidden}
.hero-visual img{width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;gap:8px}
.ov-tag{background:var(--c-bg);padding:8px 14px;font-family:var(--font-jp);font-size:11px;letter-spacing:.05em;color:var(--c-text);font-weight:600;border:1px solid var(--c-line)}
.ov-tag.mono{font-family:var(--font-mono)}
.hero-overlay-bot{position:absolute;bottom:24px;left:24px;right:24px;display:grid;grid-template-columns:1fr 1fr;gap:8px;pointer-events:none}
.ov-data{background:rgba(15,15,15,.88);backdrop-filter:blur(10px);padding:16px 18px;color:var(--c-bg)}
.ov-data-label{font-family:var(--font-jp);font-size:11px;letter-spacing:.05em;color:var(--c-text-ll);font-weight:500}
.ov-data-val{font-family:var(--font-en);font-size:24px;font-weight:700;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums}
.ov-data-val small{color:var(--c-blue);font-size:12px;font-weight:500;margin-left:6px;letter-spacing:.02em;font-family:var(--font-jp)}

@media(max-width:1000px){
  .hero{padding:50px 0 60px}
  .hero-inner{grid-template-columns:1fr;gap:40px}
  .hero h1{font-size:44px}
  .hero h1 .small{font-size:.36em}
  .hero-visual{height:380px}
  .hs-num{font-size:34px}
}
@media(max-width:768px){
  .hero h1{font-size:32px}
  .hero-stats{grid-template-columns:1fr;gap:0}
  .hs{border-right:none;border-bottom:1px solid var(--c-line);padding:14px 0}
  .hs:last-child{border-bottom:none;padding-bottom:0}
  .hs:first-child{padding-top:0}
  .btn-primary,.btn-outline{padding:14px 22px;font-size:13px}
}

/* ===== Section common ===== */
section{padding:120px 0}
.sec-header{display:grid;grid-template-columns:1fr 2fr;gap:60px;margin-bottom:60px;align-items:end}
.sec-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--c-blue);font-weight:600;margin-bottom:14px;display:inline-block}
.sec-h2{font-family:var(--font-jp);font-weight:900;font-size:40px;line-height:1.4;letter-spacing:-.01em;color:var(--c-text)}
.sec-h2 .em{color:var(--c-blue)}
.sec-h2 .small{display:block;font-family:var(--font-jp);font-size:.4em;font-weight:500;color:var(--c-text-l);letter-spacing:.05em;margin-bottom:10px}
.sec-lead{font-family:var(--font-jp);font-size:14px;line-height:1.95;color:var(--c-text-l);max-width:500px;justify-self:end;font-weight:400}
@media(max-width:768px){
  section{padding:70px 0}
  .sec-header{grid-template-columns:1fr;gap:24px;margin-bottom:40px}
  .sec-h2{font-size:24px}
  .sec-lead{justify-self:start}
}

/* ===== Page Hero（サブページ共通の帯型ヘッダー） ===== */
.page-hero{padding:80px 0 60px;background:var(--c-bg);border-bottom:1px solid var(--c-line);position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;top:0;right:-10%;width:60%;height:100%;background:linear-gradient(135deg,var(--c-blue-ll) 0%,transparent 70%);opacity:.7;z-index:0;pointer-events:none}
.page-hero-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);position:relative;z-index:1;display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:end}
.page-hero .breadcrumb{font-family:var(--font-mono);font-size:11px;color:var(--c-text-ll);letter-spacing:.05em;margin-bottom:18px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.page-hero .breadcrumb a{color:var(--c-text-l);font-family:var(--font-jp);font-weight:500}
.page-hero .breadcrumb a:hover{color:var(--c-blue);opacity:1}
.page-hero .breadcrumb .sep{color:var(--c-text-ll)}
.page-hero .breadcrumb .current{color:var(--c-text);font-family:var(--font-jp);font-weight:600}
.page-hero .ph-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--c-blue);font-weight:600;margin-bottom:14px;display:inline-block}
.page-hero h1{font-family:var(--font-jp);font-weight:900;font-size:56px;line-height:1.25;letter-spacing:-.02em;color:var(--c-text);margin-bottom:14px}
.page-hero h1 .em{color:var(--c-blue)}
.page-hero h1 .en-sub{display:block;font-family:var(--font-en);font-size:.28em;color:var(--c-text-ll);font-weight:500;letter-spacing:.1em;margin-bottom:14px;text-transform:uppercase}
.page-hero p.ph-lead{font-family:var(--font-jp);font-size:14px;line-height:2;color:var(--c-text-l);max-width:480px}
.page-hero .ph-data{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--c-line);border:1px solid var(--c-line);justify-self:end;width:100%;max-width:380px}
.page-hero .ph-data div{background:var(--c-bg);padding:18px 20px}
.page-hero .ph-data .lbl{font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);letter-spacing:.05em;font-weight:500;margin-bottom:6px}
.page-hero .ph-data .val{font-family:var(--font-en);font-size:24px;font-weight:700;color:var(--c-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.page-hero .ph-data .val small{font-size:12px;color:var(--c-blue);margin-left:4px;font-family:var(--font-jp);font-weight:500}
@media(max-width:900px){
  .page-hero{padding:50px 0 40px}
  .page-hero-inner{grid-template-columns:1fr;gap:30px}
  .page-hero h1{font-size:32px}
  .page-hero .ph-data{justify-self:start;max-width:none}
}

/* ===== Stats ===== */
.stats{background:var(--c-bg-d);color:var(--c-bg)}
.stats .sec-tag{color:var(--c-blue)}
.stats .sec-h2{color:var(--c-bg)}
.stats .sec-h2 .small{color:var(--c-text-ll)}
.stats .sec-lead{color:var(--c-text-ll)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1)}
.stat-card{background:var(--c-bg-d);padding:50px 30px;position:relative;overflow:hidden;transition:background .2s}
.stat-card:hover{background:var(--c-bg-d2)}
.stat-num{font-family:var(--font-en);font-size:78px;font-weight:800;color:var(--c-bg);line-height:1;letter-spacing:-.04em;margin-bottom:14px;font-variant-numeric:tabular-nums}
.stat-num small{font-size:32px;color:var(--c-blue);font-weight:600;margin-left:4px}
.stat-num sup{font-size:24px;color:var(--c-blue);vertical-align:super;font-weight:600}
.stat-label{font-family:var(--font-mono);font-size:11px;color:var(--c-text-ll);font-weight:500;letter-spacing:.1em;margin-bottom:8px}
.stat-jp{font-family:var(--font-jp);font-size:13px;color:var(--c-bg);font-weight:500}
.stat-bar{position:absolute;bottom:0;left:0;width:100%;height:3px;background:rgba(255,255,255,.05)}
.stat-bar::after{content:"";display:block;height:100%;width:var(--w,75%);background:var(--c-blue);transition:width 1.2s ease-out}
@media(max-width:900px){
  .stats-grid{grid-template-columns:1fr 1fr}
  .stat-num{font-size:54px}
}
@media(max-width:480px){
  .stats-grid{grid-template-columns:1fr}
}

/* ===== Simulator ===== */
.simu{background:var(--c-bg-l)}
.simu-inner{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:start;margin-top:60px}
.simu-controls{background:var(--c-bg);padding:40px;border:1px solid var(--c-line)}
.simu-controls h3{font-family:var(--font-jp);font-size:18px;font-weight:700;color:var(--c-text);margin-bottom:30px;padding-bottom:14px;border-bottom:1px solid var(--c-line);display:flex;justify-content:space-between;align-items:center}
.simu-controls h3 small{font-family:var(--font-jp);font-size:11px;color:var(--c-green);font-weight:600;letter-spacing:.05em;display:inline-flex;align-items:center;gap:6px}
.simu-controls h3 small::before{content:"";width:6px;height:6px;background:var(--c-green);border-radius:50%;animation:pulse 2s infinite}
.field{margin-bottom:26px}
.field-label{font-family:var(--font-jp);font-size:13px;font-weight:700;color:var(--c-text);margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}
.field-label small{font-family:var(--font-mono);font-size:10px;color:var(--c-text-ll);font-weight:500;letter-spacing:.05em}
.opt-group{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.opt{padding:14px 8px;text-align:center;background:var(--c-bg-l);border:1px solid var(--c-line);font-family:var(--font-jp);font-size:13px;font-weight:500;color:var(--c-text);cursor:pointer;transition:all .2s}
.opt:hover{border-color:var(--c-blue)}
.opt.active{background:var(--c-text);color:var(--c-bg);border-color:var(--c-text)}
.opt small{display:block;font-family:var(--font-mono);font-size:10px;margin-top:4px;color:inherit;opacity:.6;letter-spacing:.02em;font-weight:400}
.range-row{display:flex;align-items:center;gap:20px}
.range-row input[type=range]{flex:1;-webkit-appearance:none;appearance:none;height:4px;background:var(--c-line);border-radius:2px;outline:none}
.range-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:var(--c-blue);border-radius:50%;cursor:pointer;border:3px solid var(--c-bg);box-shadow:0 0 0 1px var(--c-blue)}
.range-val{font-family:var(--font-en);font-size:24px;font-weight:700;color:var(--c-text);letter-spacing:-.02em;min-width:100px;text-align:right;font-variant-numeric:tabular-nums}
.range-val small{font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);font-weight:500;margin-left:4px;letter-spacing:.02em}

.simu-result{background:var(--c-text);color:var(--c-bg);padding:50px 40px;position:sticky;top:130px}
.simu-result .res-label{font-family:var(--font-mono);font-size:11px;color:var(--c-text-ll);letter-spacing:.1em;font-weight:600;margin-bottom:14px}
.simu-result .res-jp{font-family:var(--font-jp);font-size:14px;color:var(--c-text-ll);margin-bottom:30px;font-weight:400}
.res-num{font-family:var(--font-en);font-size:84px;font-weight:800;line-height:.95;letter-spacing:-.04em;color:var(--c-bg);margin-bottom:8px;font-variant-numeric:tabular-nums}
.res-num small{font-size:32px;color:var(--c-blue);font-weight:500;margin-left:6px}
.res-range{display:flex;align-items:center;gap:14px;font-family:var(--font-mono);font-size:11px;color:var(--c-text-ll);letter-spacing:.02em;margin-bottom:40px}
.res-range .bar{flex:1;height:2px;background:var(--c-blue);position:relative}
.res-range .bar::before,.res-range .bar::after{content:"";position:absolute;top:50%;width:8px;height:8px;background:var(--c-blue);border-radius:50%;transform:translateY(-50%)}
.res-range .bar::before{left:0}
.res-range .bar::after{right:0}
.res-detail{border-top:1px solid rgba(255,255,255,.15);padding-top:24px}
.res-row{display:flex;justify-content:space-between;padding:10px 0;font-family:var(--font-mono);font-size:12px;letter-spacing:.02em}
.res-row .l{color:var(--c-text-ll);font-family:var(--font-jp);font-weight:400}
.res-row .r{color:var(--c-bg);font-weight:600;font-variant-numeric:tabular-nums}
.simu-cta{display:block;text-align:center;background:var(--c-blue);color:var(--c-bg);padding:18px;margin-top:30px;font-family:var(--font-jp);font-size:14px;font-weight:700;letter-spacing:.05em;transition:background .2s}
.simu-cta:hover{background:var(--c-blue-d);opacity:1}
@media(max-width:1000px){
  .simu-inner{grid-template-columns:1fr;gap:30px}
  .simu-result{position:static}
}
@media(max-width:768px){
  .simu-controls{padding:24px}
  .simu-result{padding:30px 24px}
  .res-num{font-size:46px}
  .opt-group{grid-template-columns:repeat(2,1fr)}
}

/* ===== Matrix Pricing Table ===== */
.matrix{background:var(--c-bg)}
.matrix-wrap{margin-top:60px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.matrix-table{width:100%;min-width:680px;border-collapse:collapse;font-family:var(--font-jp)}
.matrix-table thead th{background:var(--c-text);color:var(--c-bg);padding:18px 14px;text-align:center;font-family:var(--font-jp);font-size:12px;font-weight:700;letter-spacing:.05em;border-right:1px solid #333}
.matrix-table thead th:first-child{text-align:left;padding-left:24px}
.matrix-table thead th:last-child{border-right:none}
.matrix-table tbody td{padding:18px 14px;text-align:center;border-bottom:1px solid var(--c-line);border-right:1px solid var(--c-line);font-family:var(--font-en);font-size:14px;color:var(--c-text);background:var(--c-bg);transition:background .15s}
.matrix-table tbody td:first-child{text-align:left;padding-left:24px;font-family:var(--font-jp);font-weight:700;background:var(--c-bg-l)}
.matrix-table tbody td:last-child{border-right:none}
.matrix-table tbody tr:hover td{background:var(--c-blue-l)}
.matrix-table tbody tr:hover td:first-child{background:var(--c-blue-l)}
.matrix-table .num{font-family:var(--font-en);font-weight:600;font-size:16px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.matrix-table .num small{color:var(--c-text-l);font-size:11px;font-weight:500;margin-left:2px;letter-spacing:.02em;font-family:var(--font-jp)}
.matrix-table .best{color:var(--c-blue);font-weight:800;background:rgba(26,77,140,.05)}
.matrix-note{margin-top:24px;font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);letter-spacing:.02em;text-align:right;font-weight:400}
@media(max-width:768px){
  .matrix-table{font-size:11px}
  .matrix-table thead th,.matrix-table tbody td{padding:12px 6px}
  .matrix-table .num{font-size:13px}
}

/* ===== Process Chart ===== */
.proc{background:var(--c-bg-l)}
.proc-chart{margin-top:60px;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--c-line)}
.proc-step{background:var(--c-bg);padding:30px 20px;position:relative}
.proc-day{font-family:var(--font-mono);font-size:11px;color:var(--c-blue);font-weight:700;letter-spacing:.05em;margin-bottom:10px}
.proc-step h4{font-family:var(--font-jp);font-size:15px;font-weight:700;color:var(--c-text);margin-bottom:8px;line-height:1.55}
.proc-step p{font-family:var(--font-jp);font-size:12px;color:var(--c-text-l);line-height:1.85;margin-bottom:16px;font-weight:400}
.proc-progress{height:3px;background:var(--c-line);position:relative;overflow:hidden}
.proc-progress::after{content:"";position:absolute;top:0;left:0;height:100%;background:var(--c-blue);width:var(--p,100%)}
.proc-duration{font-family:var(--font-mono);font-size:11px;color:var(--c-text-l);margin-top:8px;letter-spacing:.02em;font-weight:500}
@media(max-width:900px){.proc-chart{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.proc-chart{grid-template-columns:1fr}}

/* ===== Area Map ===== */
.area{background:var(--c-bg)}
.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:60px;align-items:start}
.area-visual{position:relative;background:var(--c-bg-l);border:1px solid var(--c-line);aspect-ratio:1;padding:30px;display:flex;align-items:center;justify-content:center}
.area-visual svg{width:100%;height:100%;max-width:400px}
.area-visual .marker{fill:var(--c-blue)}
.area-visual .marker-text{fill:var(--c-text);font-family:'Noto Sans JP',sans-serif;font-size:11px;letter-spacing:.02em;font-weight:700}
.area-data{padding:0}
.area-row{display:grid;grid-template-columns:1fr auto auto;gap:24px;padding:18px 0;border-bottom:1px solid var(--c-line);align-items:center;font-family:var(--font-jp)}
.area-row:first-child{border-top:1px solid var(--c-text);padding-top:20px}
.area-row .city{font-family:var(--font-jp);font-size:15px;font-weight:700;color:var(--c-text)}
.area-row .city small{display:block;font-family:var(--font-mono);font-size:10px;color:var(--c-text-l);font-weight:400;letter-spacing:.02em;margin-top:2px}
.area-row .resp{font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);letter-spacing:.02em;text-align:right;min-width:80px;font-weight:500}
.area-row .resp strong{display:block;font-family:var(--font-jp);font-size:16px;color:var(--c-text);font-weight:700;letter-spacing:0}
.area-row .status{font-family:var(--font-jp);font-size:11px;color:var(--c-green);font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:center;gap:6px}
.area-row .status::before{content:"";width:6px;height:6px;background:var(--c-green);border-radius:50%}
@media(max-width:900px){
  .area-grid{grid-template-columns:1fr;gap:30px}
}

/* ===== Reviews ===== */
.reviews{background:var(--c-bg-d);color:var(--c-bg)}
.reviews .sec-tag{color:var(--c-blue)}
.reviews .sec-h2{color:var(--c-bg)}
.reviews .sec-h2 .small{color:var(--c-text-ll)}
.reviews .sec-lead{color:var(--c-text-ll)}
.reviews-top{display:grid;grid-template-columns:auto 1fr;gap:60px;margin-top:60px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.1);align-items:center}
.review-score{text-align:left}
.review-score-num{font-family:var(--font-en);font-size:120px;font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--c-bg);font-variant-numeric:tabular-nums}
.review-score-num small{font-size:48px;color:var(--c-text-ll);font-weight:500}
.review-score-stars{color:var(--c-blue);font-size:24px;letter-spacing:.15em;margin:14px 0 8px}
.review-score-label{font-family:var(--font-jp);font-size:12px;color:var(--c-text-ll);letter-spacing:.05em;font-weight:500}
.review-bars{display:flex;flex-direction:column;gap:14px}
.review-bar{display:grid;grid-template-columns:50px 1fr 60px;gap:16px;align-items:center;font-family:var(--font-jp);font-size:12px;color:var(--c-text-ll);font-weight:500}
.review-bar .lbl{color:var(--c-bg);font-weight:600}
.review-bar .track{height:8px;background:rgba(255,255,255,.08);position:relative;overflow:hidden}
.review-bar .track::after{content:"";position:absolute;top:0;left:0;height:100%;background:var(--c-blue);width:var(--w,80%)}
.review-bar .pct{text-align:right;color:var(--c-bg);font-weight:700;font-family:var(--font-en);font-variant-numeric:tabular-nums}
.review-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:50px}
.review-item{padding:32px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.02);transition:background .2s,border-color .2s}
.review-item:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.2)}
.review-item-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;font-family:var(--font-mono);font-size:10px;color:var(--c-text-ll);letter-spacing:.05em;font-weight:500}
.review-item-stars{color:var(--c-blue);font-size:14px;letter-spacing:.1em}
.review-item h4{font-family:var(--font-jp);font-size:15px;font-weight:700;color:var(--c-bg);margin-bottom:12px;line-height:1.75}
.review-item p{font-family:var(--font-jp);font-size:13px;line-height:1.95;color:var(--c-text-ll);margin-bottom:20px;font-weight:400}
.review-item-meta{font-family:var(--font-mono);font-size:11px;color:var(--c-text-ll);letter-spacing:.02em;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;font-weight:500}
.review-item-meta strong{color:var(--c-bg);font-weight:600;font-family:var(--font-jp)}
@media(max-width:900px){
  .reviews-top{grid-template-columns:1fr}
  .review-score-num{font-size:80px}
  .review-list{grid-template-columns:1fr;gap:14px}
}

/* ===== FAQ ===== */
.faq{background:var(--c-bg)}
.faq-list{margin-top:60px;border-top:1px solid var(--c-text)}
.faq-item{border-bottom:1px solid var(--c-line)}
.faq-item summary{padding:30px 0;cursor:pointer;display:grid;grid-template-columns:60px 1fr auto;gap:20px;font-family:var(--font-jp);font-weight:700;font-size:16px;color:var(--c-text);list-style:none;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"Q.";font-family:var(--font-en);font-weight:700;font-size:18px;color:var(--c-blue)}
.faq-item summary::after{content:"+";font-family:var(--font-en);font-weight:300;font-size:24px;color:var(--c-text-l);transition:transform .2s}
.faq-item[open] summary::after{content:"−"}
.faq-answer{padding:0 0 30px 80px;font-family:var(--font-jp);font-size:14px;line-height:1.95;color:var(--c-text-l);font-weight:400}
@media(max-width:768px){
  .faq-item summary{grid-template-columns:40px 1fr auto;font-size:14px;padding:22px 0;gap:14px}
  .faq-item summary::before{font-size:14px}
  .faq-answer{padding:0 0 22px 54px;font-size:13px}
}

/* ===== CTA ===== */
.cta{background:var(--c-blue);color:var(--c-bg);padding:100px 0}
.cta-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}
.cta h2{font-family:var(--font-jp);font-weight:900;font-size:42px;line-height:1.4;letter-spacing:-.01em;color:var(--c-bg);margin-bottom:24px}
.cta h2 .small{display:block;font-family:var(--font-jp);font-size:.32em;font-weight:500;color:rgba(255,255,255,.6);letter-spacing:.05em;margin-bottom:14px}
.cta p{font-family:var(--font-jp);font-size:15px;line-height:2;color:rgba(255,255,255,.85);max-width:480px;font-weight:400}
.cta-card{background:var(--c-bg);color:var(--c-text);padding:40px;border-radius:0}
.cta-card-label{font-family:var(--font-jp);font-size:12px;color:var(--c-blue);letter-spacing:.05em;font-weight:700;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}
.cta-card-label .live::before{content:"";width:6px;height:6px;background:var(--c-green);border-radius:50%;display:inline-block;margin-right:6px;animation:pulse 2s infinite}
.cta-card .tel{font-family:var(--font-en);font-size:42px;font-weight:700;color:var(--c-text);letter-spacing:-.02em;display:block;line-height:1.2;margin-bottom:14px;font-variant-numeric:tabular-nums}
.cta-card .hours{font-family:var(--font-jp);font-size:12px;color:var(--c-text-l);margin-bottom:30px;font-weight:400}
.cta-card .btn-form{display:block;text-align:center;background:var(--c-text);color:var(--c-bg);padding:18px;font-family:var(--font-jp);font-size:14px;font-weight:700;letter-spacing:.05em;transition:background .2s}
.cta-card .btn-form:hover{background:var(--c-blue-d);opacity:1}
@media(max-width:900px){
  .cta-inner{grid-template-columns:1fr;gap:40px}
  .cta h2{font-size:26px}
  .cta-card .tel{font-size:30px}
}

/* ===== Footer ===== */
footer{background:var(--c-bg-d);color:var(--c-text-ll);padding:80px 0 30px;border-top:1px solid #222}
.footer-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px}
.footer-logo .logo{color:var(--c-bg)}
.footer-logo .logo small{color:var(--c-text-ll)}
.footer-logo p{margin-top:20px;font-family:var(--font-jp);font-size:13px;line-height:1.95;color:var(--c-text-ll);font-weight:400;max-width:340px}
.footer-block h5{font-family:var(--font-mono);font-size:11px;color:var(--c-blue);font-weight:600;margin-bottom:18px;letter-spacing:.1em;padding-bottom:10px;border-bottom:1px solid #222;text-transform:uppercase}
.footer-block p,.footer-block a{font-family:var(--font-jp);font-size:13px;line-height:1.95;color:var(--c-text-ll);font-weight:400;display:block;margin-bottom:6px}
.footer-block a:hover{color:var(--c-bg);opacity:1}
.footer-block .num{font-family:var(--font-en);color:var(--c-bg);font-size:18px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.footer-bottom{border-top:1px solid #222;padding-top:30px;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:11px;color:var(--c-text-ll);letter-spacing:.02em;font-weight:400;max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);flex-wrap:wrap;gap:14px}
.footer-bottom .sns{display:flex;gap:14px;align-items:center}
.footer-bottom .sns a{font-family:var(--font-jp);font-size:11px;color:var(--c-text-ll);font-weight:500}
.footer-bottom .sns a:hover{color:var(--c-bg);opacity:1}
@media(max-width:768px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:30px}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center;justify-content:center}
}

/* =====================================================================
   サブページ専用スタイル
   ===================================================================== */

/* ===== About: 代表挨拶 ===== */
.message{background:var(--c-bg);padding:120px 0}
.message-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;margin-top:60px;align-items:start}
.message-portrait{position:relative}
.message-portrait .photo-frame{background:var(--c-bg-l);border:1px solid var(--c-line);aspect-ratio:3/4;display:flex;align-items:flex-end;justify-content:center;padding:24px;position:relative;overflow:hidden}
.message-portrait .photo-frame img{width:100%;height:100%;object-fit:cover;object-position:top center;position:absolute;inset:0}
.message-portrait .photo-frame::after{content:"代表取締役 ／ 安田 佑馬";position:absolute;bottom:14px;left:14px;right:14px;background:var(--c-bg);padding:10px 14px;font-family:var(--font-jp);font-size:11px;font-weight:600;color:var(--c-text);letter-spacing:.05em;text-align:center;z-index:2}
.message-portrait .sig{font-family:var(--font-mono);font-size:11px;color:var(--c-text-l);letter-spacing:.05em;margin-top:14px;display:flex;justify-content:space-between}
.message-body h3{font-family:var(--font-jp);font-size:28px;font-weight:900;line-height:1.55;letter-spacing:-.01em;color:var(--c-text);margin-bottom:24px}
.message-body h3 em{font-style:normal;color:var(--c-blue)}
.message-body p{font-family:var(--font-jp);font-size:15px;line-height:2.05;color:var(--c-text-l);margin-bottom:18px;font-weight:400}
.message-body p em{font-style:normal;color:var(--c-text);font-weight:700;background:linear-gradient(transparent 60%,var(--c-blue-l) 0%);padding:0 4px}
.message-body .sign{margin-top:30px;font-family:var(--font-jp);font-size:13px;color:var(--c-text-l)}
.message-body .sign strong{font-family:var(--font-jp);font-size:18px;color:var(--c-text);font-weight:900;margin-left:8px;letter-spacing:.02em}
@media(max-width:900px){
  .message-grid{grid-template-columns:1fr;gap:30px}
  .message-body h3{font-size:20px}
}

/* ===== About: 3つの約束 ===== */
.promise{background:var(--c-bg-l)}
.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px}
.promise-card{background:var(--c-bg);border:1px solid var(--c-line);padding:40px 30px;transition:border-color .2s,transform .2s}
.promise-card:hover{border-color:var(--c-blue);transform:translateY(-2px)}
.promise-card .pno{font-family:var(--font-en);font-size:14px;color:var(--c-blue);font-weight:700;letter-spacing:.1em;margin-bottom:18px;font-variant-numeric:tabular-nums}
.promise-card h4{font-family:var(--font-jp);font-size:20px;font-weight:900;line-height:1.55;color:var(--c-text);margin-bottom:14px}
.promise-card h4 em{font-style:normal;color:var(--c-blue)}
.promise-card p{font-family:var(--font-jp);font-size:13px;line-height:1.95;color:var(--c-text-l);font-weight:400}
@media(max-width:900px){.promise-grid{grid-template-columns:1fr}}

/* ===== About: 会社概要テーブル ===== */
.corp{background:var(--c-bg)}
.corp-table{margin-top:60px;width:100%;border-collapse:collapse;font-family:var(--font-jp);border-top:1px solid var(--c-text)}
.corp-table th,.corp-table td{padding:22px 24px;text-align:left;border-bottom:1px solid var(--c-line);vertical-align:top;font-size:14px;line-height:1.85}
.corp-table th{font-family:var(--font-jp);font-weight:700;color:var(--c-text);background:var(--c-bg-l);width:240px;font-size:13px;letter-spacing:.02em}
.corp-table th small{display:block;font-family:var(--font-mono);font-size:10px;color:var(--c-text-l);font-weight:500;letter-spacing:.1em;margin-top:4px;text-transform:uppercase}
.corp-table td{color:var(--c-text-l);font-weight:400}
.corp-table td strong{color:var(--c-text);font-weight:700}
@media(max-width:768px){
  .corp-table th,.corp-table td{display:block;width:100%;padding:14px 18px}
  .corp-table th{border-bottom:none;padding-bottom:6px}
  .corp-table td{padding-top:0}
}

/* ===== About: 沿革タイムライン ===== */
.history{background:var(--c-bg-l)}
.history-list{margin-top:60px;display:flex;flex-direction:column;border-left:2px solid var(--c-line);padding-left:0;position:relative}
.history-item{display:grid;grid-template-columns:160px 1fr;gap:32px;padding:24px 0 24px 32px;border-bottom:1px solid var(--c-line);position:relative}
.history-item::before{content:"";position:absolute;left:-7px;top:32px;width:12px;height:12px;background:var(--c-blue);border:3px solid var(--c-bg-l);border-radius:50%}
.history-item:last-child{border-bottom:none}
.history-item .year{font-family:var(--font-en);font-size:22px;font-weight:800;color:var(--c-text);letter-spacing:-.02em;line-height:1.2;font-variant-numeric:tabular-nums}
.history-item .year small{display:block;font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);font-weight:500;margin-top:2px;letter-spacing:.05em}
.history-item h4{font-family:var(--font-jp);font-size:16px;font-weight:700;color:var(--c-text);margin-bottom:6px;line-height:1.55}
.history-item p{font-family:var(--font-jp);font-size:13px;color:var(--c-text-l);line-height:1.95;font-weight:400}
@media(max-width:768px){
  .history-item{grid-template-columns:1fr;gap:8px;padding-left:24px}
  .history-item::before{top:24px;left:-7px}
}

/* ===== Services: 事業カテゴリ ===== */
.svc-cat{background:var(--c-bg)}
.svc-cat-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px}
.svc-cat-card{background:var(--c-bg);border:1px solid var(--c-line);padding:36px 30px;display:flex;flex-direction:column;gap:18px;transition:border-color .2s,transform .2s}
.svc-cat-card:hover{border-color:var(--c-blue);transform:translateY(-2px)}
.svc-cat-card .cno{font-family:var(--font-mono);font-size:11px;color:var(--c-blue);font-weight:600;letter-spacing:.1em}
.svc-cat-card h3{font-family:var(--font-jp);font-size:22px;font-weight:900;color:var(--c-text);line-height:1.4;letter-spacing:-.01em}
.svc-cat-card h3 small{display:block;font-family:var(--font-en);font-size:11px;color:var(--c-text-l);font-weight:500;letter-spacing:.1em;margin-top:6px;text-transform:uppercase}
.svc-cat-card p{font-family:var(--font-jp);font-size:13px;line-height:1.95;color:var(--c-text-l);font-weight:400;flex:1}
.svc-cat-card .price{display:flex;justify-content:space-between;padding-top:18px;border-top:1px solid var(--c-line);font-family:var(--font-jp);font-size:12px;color:var(--c-text-l)}
.svc-cat-card .price strong{font-family:var(--font-en);color:var(--c-blue);font-weight:700;font-size:16px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.svc-cat-card .price strong small{font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);font-weight:500;margin-left:2px}
@media(max-width:900px){.svc-cat-list{grid-template-columns:1fr}}

/* ===== Services: ビフォーアフター ===== */
.svc-ba{background:var(--c-bg-l)}
.ba-grid{display:grid;grid-template-columns:1fr 60px 1fr;gap:30px;margin-top:60px;align-items:center}
.ba-card{background:var(--c-bg);border:1px solid var(--c-line);overflow:hidden}
.ba-card .pic{aspect-ratio:4/3;overflow:hidden;background:var(--c-bg-l)}
.ba-card .pic img{width:100%;height:100%;object-fit:cover}
.ba-card .lbl{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-jp);font-size:13px;color:var(--c-text-l)}
.ba-card .lbl strong{font-family:var(--font-en);font-size:14px;font-weight:700;letter-spacing:.1em;color:var(--c-text)}
.ba-card.before .lbl strong{color:var(--c-text-l)}
.ba-card.after .lbl strong{color:var(--c-blue)}
.ba-arrow{display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-size:36px;color:var(--c-blue);font-weight:200}
@media(max-width:900px){
  .ba-grid{grid-template-columns:1fr;gap:14px}
  .ba-arrow{transform:rotate(90deg);font-size:24px;padding:8px 0}
}

/* ===== Works: ギャラリー ===== */
.works-gallery{background:var(--c-bg);padding-bottom:120px}
.works-filter{display:flex;gap:8px;margin-top:40px;margin-bottom:30px;flex-wrap:wrap;border-bottom:1px solid var(--c-line);padding-bottom:0}
.works-filter button{background:none;border:none;padding:14px 18px;font-family:var(--font-jp);font-size:13px;color:var(--c-text-l);font-weight:500;letter-spacing:.02em;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color .2s,border-color .2s}
.works-filter button.active,.works-filter button:hover{color:var(--c-text);border-bottom-color:var(--c-blue)}
.works-filter button small{font-family:var(--font-mono);font-size:10px;color:var(--c-text-ll);margin-left:6px;font-weight:500}
.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.work-card{background:var(--c-bg);border:1px solid var(--c-line);overflow:hidden;transition:border-color .2s,transform .2s}
.work-card:hover{border-color:var(--c-blue);transform:translateY(-2px)}
.work-card .pic{aspect-ratio:4/3;overflow:hidden;background:var(--c-bg-l);position:relative}
.work-card .pic img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.work-card:hover .pic img{transform:scale(1.04)}
.work-card .pic .tag{position:absolute;top:14px;left:14px;background:var(--c-bg);padding:5px 11px;font-family:var(--font-mono);font-size:10px;color:var(--c-text);font-weight:600;letter-spacing:.05em}
.work-card .body{padding:22px 24px}
.work-card .body .meta{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:11px;color:var(--c-text-l);letter-spacing:.02em;margin-bottom:10px}
.work-card .body h4{font-family:var(--font-jp);font-size:16px;font-weight:700;color:var(--c-text);line-height:1.55;margin-bottom:14px}
.work-card .body .specs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-top:14px;border-top:1px solid var(--c-line)}
.work-card .body .specs div{font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);font-weight:500}
.work-card .body .specs div strong{display:block;font-family:var(--font-en);font-size:15px;color:var(--c-text);font-weight:700;margin-top:2px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
@media(max-width:900px){.works-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.works-grid{grid-template-columns:1fr}}

/* ===== Works: KPIサマリー ===== */
.works-kpi{background:var(--c-bg-l)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--c-line);border:1px solid var(--c-line);margin-top:60px}
.kpi-card{background:var(--c-bg);padding:36px 24px}
.kpi-card .lbl{font-family:var(--font-mono);font-size:10px;color:var(--c-text-l);letter-spacing:.1em;font-weight:600;margin-bottom:12px;text-transform:uppercase}
.kpi-card .val{font-family:var(--font-en);font-size:42px;font-weight:800;color:var(--c-text);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.kpi-card .val small{font-size:18px;color:var(--c-blue);margin-left:4px;font-weight:600}
.kpi-card .jp{font-family:var(--font-jp);font-size:12px;color:var(--c-text-l);margin-top:10px;font-weight:500}
@media(max-width:900px){.kpi-grid{grid-template-columns:1fr 1fr}}

/* ===== Recruit: メッセージ＋数字 ===== */
.rec-msg{background:var(--c-bg)}
.rec-msg-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;margin-top:60px;align-items:start}
.rec-msg-body h3{font-family:var(--font-jp);font-size:26px;font-weight:900;line-height:1.55;color:var(--c-text);margin-bottom:24px;letter-spacing:-.01em}
.rec-msg-body h3 em{font-style:normal;color:var(--c-blue)}
.rec-msg-body p{font-family:var(--font-jp);font-size:14px;line-height:2.05;color:var(--c-text-l);margin-bottom:16px;font-weight:400}
.rec-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--c-line);border:1px solid var(--c-line)}
.rec-stat{background:var(--c-bg);padding:30px 24px}
.rec-stat .lbl{font-family:var(--font-mono);font-size:10px;color:var(--c-text-l);letter-spacing:.1em;font-weight:600;margin-bottom:10px;text-transform:uppercase}
.rec-stat .val{font-family:var(--font-en);font-size:42px;font-weight:800;color:var(--c-text);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.rec-stat .val small{font-size:16px;color:var(--c-blue);margin-left:4px;font-weight:600}
.rec-stat .jp{font-family:var(--font-jp);font-size:12px;color:var(--c-text-l);margin-top:8px;font-weight:500}
@media(max-width:900px){.rec-msg-grid{grid-template-columns:1fr;gap:30px}}

/* ===== Recruit: ポジション一覧 ===== */
.rec-pos{background:var(--c-bg-l)}
.rec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:60px}
.rec-c{padding:32px;background:var(--c-bg);border:1px solid var(--c-line);transition:border .2s,transform .2s}
.rec-c:hover{border-color:var(--c-blue);transform:translateY(-2px)}
.rec-c-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;gap:14px}
.rec-c .t{display:inline-block;background:var(--c-blue);color:var(--c-bg);padding:4px 12px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;font-weight:600}
.rec-c .status{font-family:var(--font-jp);font-size:11px;color:var(--c-green);font-weight:600;display:inline-flex;align-items:center;gap:6px;letter-spacing:.02em}
.rec-c .status::before{content:"";width:6px;height:6px;background:var(--c-green);border-radius:50%}
.rec-c h3{font-family:var(--font-jp);font-size:22px;font-weight:900;color:var(--c-text);margin-bottom:8px;letter-spacing:-.01em}
.rec-c .sal{font-family:var(--font-en);font-size:18px;color:var(--c-blue);margin-bottom:18px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.rec-c .sal small{font-family:var(--font-jp);font-size:12px;color:var(--c-text-l);font-weight:500;margin-left:4px}
.rec-c p{font-family:var(--font-jp);font-size:13px;line-height:1.95;color:var(--c-text-l);margin-bottom:18px}
.rec-c .req{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:18px;border-top:1px solid var(--c-line);font-family:var(--font-jp);font-size:11px}
.rec-c .req div{color:var(--c-text-l)}
.rec-c .req div strong{display:block;color:var(--c-text);font-weight:700;margin-bottom:2px;font-size:11px}
@media(max-width:768px){.rec-grid{grid-template-columns:1fr}}

/* ===== Recruit: 福利厚生 ===== */
.rec-bene{background:var(--c-bg)}
.bene-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--c-line);border:1px solid var(--c-line);margin-top:60px}
.bene-item{background:var(--c-bg);padding:28px 22px}
.bene-item .no{font-family:var(--font-mono);font-size:11px;color:var(--c-blue);font-weight:600;letter-spacing:.05em;margin-bottom:10px}
.bene-item h5{font-family:var(--font-jp);font-size:14px;font-weight:700;color:var(--c-text);margin-bottom:8px;line-height:1.5}
.bene-item p{font-family:var(--font-jp);font-size:12px;color:var(--c-text-l);line-height:1.85;font-weight:400}
@media(max-width:900px){.bene-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.bene-grid{grid-template-columns:1fr}}

/* ===== News List Page ===== */
.news-page{background:var(--c-bg);padding:0 0 120px}
.news-list-page{max-width:1080px;margin:60px auto 0;padding:0 var(--pad);border-top:1px solid var(--c-text)}
.news-row{display:grid;grid-template-columns:130px 100px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--c-line);align-items:baseline;transition:background .2s}
.news-row:hover{background:var(--c-bg-l);padding-left:14px;padding-right:14px;margin-left:-14px;margin-right:-14px}
.news-row .d{font-family:var(--font-mono);font-size:13px;color:var(--c-blue);font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.news-row .c{font-family:var(--font-jp);font-size:10px;color:var(--c-text-l);letter-spacing:.1em;border:1px solid var(--c-line);padding:4px 12px;text-align:center;justify-self:start;text-transform:uppercase;font-weight:600}
.news-row .t{font-family:var(--font-jp);font-size:15px;color:var(--c-text);font-weight:500;line-height:1.7}
.news-row .t a:hover{color:var(--c-blue);opacity:1}
.news-pagination{max-width:1080px;margin:50px auto 0;padding:0 var(--pad);display:flex;justify-content:center;gap:8px}
.news-pagination a,.news-pagination span{padding:10px 16px;font-family:var(--font-mono);font-size:13px;color:var(--c-text-l);border:1px solid var(--c-line);background:var(--c-bg);font-weight:500;letter-spacing:.02em}
.news-pagination .current{background:var(--c-text);color:var(--c-bg);border-color:var(--c-text)}
.news-pagination a:hover{border-color:var(--c-blue);color:var(--c-blue);opacity:1}
@media(max-width:768px){
  .news-list-page{padding:0 16px}
  .news-row{grid-template-columns:1fr;gap:6px;padding:18px 0}
  .news-row:hover{margin:0;padding:18px 0}
}

/* ===== Contact: フォーム ===== */
.contact-form{background:var(--c-bg-l)}
.cf-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:60px;margin-top:60px;align-items:start}
.cf-info{background:var(--c-bg);padding:36px;border:1px solid var(--c-line);position:sticky;top:130px}
.cf-info h3{font-family:var(--font-jp);font-size:16px;font-weight:700;color:var(--c-text);margin-bottom:8px;padding-bottom:14px;border-bottom:1px solid var(--c-line)}
.cf-info .live{font-family:var(--font-jp);font-size:11px;color:var(--c-green);font-weight:600;display:inline-flex;align-items:center;gap:6px;letter-spacing:.02em;margin-bottom:18px}
.cf-info .live::before{content:"";width:6px;height:6px;background:var(--c-green);border-radius:50%;animation:pulse 2s infinite}
.cf-info .tel{font-family:var(--font-en);font-size:30px;font-weight:700;color:var(--c-text);letter-spacing:-.02em;display:block;line-height:1.2;margin-bottom:6px;font-variant-numeric:tabular-nums}
.cf-info .hours{font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);margin-bottom:24px;font-weight:400}
.cf-info .other{padding-top:20px;border-top:1px solid var(--c-line);font-family:var(--font-jp);font-size:12px;color:var(--c-text-l);line-height:1.95}
.cf-info .other strong{display:block;color:var(--c-text);font-weight:700;margin-bottom:4px;font-size:11px;letter-spacing:.05em}

.cf-form{background:var(--c-bg);padding:40px;border:1px solid var(--c-line)}
.cf-row{margin-bottom:24px}
.cf-row label{font-family:var(--font-jp);font-size:13px;font-weight:700;color:var(--c-text);margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}
.cf-row label .req{font-family:var(--font-mono);font-size:10px;color:var(--c-bg);background:var(--c-red);padding:2px 8px;font-weight:600;letter-spacing:.05em}
.cf-row label .opt{font-family:var(--font-mono);font-size:10px;color:var(--c-text-l);background:var(--c-bg-l);padding:2px 8px;font-weight:500;letter-spacing:.05em;border:1px solid var(--c-line)}
.cf-row input[type=text],.cf-row input[type=email],.cf-row input[type=tel],.cf-row select,.cf-row textarea{width:100%;padding:14px 16px;background:var(--c-bg-l);border:1px solid var(--c-line);font-family:var(--font-jp);font-size:14px;color:var(--c-text);transition:border-color .2s}
.cf-row input:focus,.cf-row select:focus,.cf-row textarea:focus{outline:none;border-color:var(--c-blue);background:var(--c-bg)}
.cf-row textarea{resize:vertical;min-height:140px;line-height:1.85}
.cf-row .hint{font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);margin-top:6px;font-weight:400}
.cf-radio{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.cf-radio label{padding:14px 16px;background:var(--c-bg-l);border:1px solid var(--c-line);font-family:var(--font-jp);font-size:13px;color:var(--c-text);cursor:pointer;display:flex;align-items:center;gap:10px;margin-bottom:0;font-weight:500;transition:border-color .2s,background .2s}
.cf-radio label:hover{border-color:var(--c-blue)}
.cf-radio input{accent-color:var(--c-blue)}
.cf-submit{display:block;width:100%;background:var(--c-text);color:var(--c-bg);padding:20px;font-family:var(--font-jp);font-size:15px;font-weight:700;letter-spacing:.05em;border:none;cursor:pointer;transition:background .2s;margin-top:14px}
.cf-submit:hover{background:var(--c-blue)}
.cf-policy{margin-top:16px;font-family:var(--font-jp);font-size:11px;color:var(--c-text-l);text-align:center;line-height:1.85}
@media(max-width:900px){
  .cf-grid{grid-template-columns:1fr;gap:30px}
  .cf-info{position:static}
  .cf-form{padding:24px}
  .cf-radio{grid-template-columns:1fr}
}

/* ===== Print（最低限） ===== */
@media print{
  .ticker,.gnav,.snav,.head-cta,.cta,.cf-submit,.gnav-toggle,.gnav-backdrop{display:none}
  body{color:#000;background:#fff}
}
