*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* ── 明るさを上げたカラー設定 ── */
  --bg:#131f30;
  --bg2:#1b2a3e;
  --bg3:#243348;
  --c1:#38bdf8;
  --c1b:#7dd3fc;
  --c2:#a5b4fc;
  --c4:#34d399;
  --text:#f1f5f9;
  --text2:#c2d4e8;
  --b1:rgba(56,189,248,0.28);
  --b2:rgba(255,255,255,0.10);
  --shadow-glow:0 0 60px rgba(56,189,248,0.12);
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Noto Sans JP',sans-serif;overflow-x:hidden;line-height:1.7;line-break:strict;overflow-wrap:break-word;word-break:normal;word-break:auto-phrase}

/* PARTICLES */
#particles{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0.75}

/* NOISE */
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:1;opacity:0.22}

/* AMBIENT LIGHT — 右サイドをより明るく */
body::after{content:'';position:fixed;inset:0;background:
  radial-gradient(ellipse 80% 60% at 95% 10%,rgba(56,189,248,0.18),transparent 55%),
  radial-gradient(ellipse 60% 80% at 90% 70%,rgba(129,140,248,0.12),transparent 50%),
  radial-gradient(ellipse 50% 50% at 5% 60%,rgba(52,211,153,0.07),transparent 45%),
  linear-gradient(105deg,transparent 45%,rgba(255,255,255,0.025) 65%,rgba(255,255,255,0.055) 82%,rgba(255,255,255,0.025) 92%,transparent);
  pointer-events:none;z-index:1}

/* ══════════════════════════════════════════
   NAV
══════════════════════════════════════════ */
nav{position:fixed;top:0;left:0;right:0;z-index:500;display:flex;align-items:center;justify-content:space-between;padding:20px 64px;background:rgba(10,18,30,0.90);backdrop-filter:blur(32px);border-bottom:1px solid var(--b1);transition:padding 0.3s}
nav.compact{padding:14px 64px}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:6px;color:var(--c1);text-decoration:none;position:relative}
.nav-logo::after{content:'';position:absolute;bottom:-4px;left:0;width:100%;height:1px;background:linear-gradient(90deg,var(--c1),transparent)}
.nav-links{display:flex;gap:40px;align-items:center}
.nav-links a{font-size:13px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--text2);text-decoration:none;transition:color 0.25s;position:relative;padding-bottom:4px}
.nav-links a::after{content:'';position:absolute;bottom:-1px;left:0;width:0;height:1px;background:var(--c1);transition:width 0.35s ease}
.nav-links a:hover,.nav-links a.active{color:var(--c1)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-cta{border:1px solid var(--c1)!important;padding:11px 26px!important}
.nav-cta::after{display:none!important}
.nav-cta:hover{background:var(--c1)!important;color:var(--bg)!important;box-shadow:0 0 28px rgba(56,189,248,0.35)!important}

/* ハンバーガー（モバイル） */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;z-index:600;background:none;border:none}
.hamburger span{display:block;width:24px;height:2px;background:var(--c1);transition:all 0.3s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;background:rgba(10,18,30,0.97);backdrop-filter:blur(20px);z-index:550;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:36px;transform:translateY(-100%);transition:transform 0.4s ease;pointer-events:none}
.mobile-menu.open{transform:translateY(0);pointer-events:all}
.mobile-menu a{font-size:22px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--text2);text-decoration:none;transition:color 0.2s}
.mobile-menu a:hover{color:var(--c1)}
.mobile-menu .m-cta{border:1px solid var(--c1);padding:16px 48px;color:var(--c1)!important;margin-top:12px}
.mobile-menu .m-cta:hover{background:var(--c1);color:var(--bg)!important}

/* ══════════════════════════════════════════
   FLOATING CTA BAR
══════════════════════════════════════════ */
.float-cta{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(120px);z-index:490;display:flex;align-items:center;gap:16px;background:rgba(10,18,30,0.92);backdrop-filter:blur(24px);border:1px solid var(--b1);border-radius:60px;padding:12px 12px 12px 28px;box-shadow:0 20px 60px rgba(0,0,0,0.5),0 0 40px rgba(56,189,248,0.1);transition:transform 0.5s cubic-bezier(0.34,1.56,0.64,1),opacity 0.4s;opacity:0;white-space:nowrap}
.float-cta.visible{transform:translateX(-50%) translateY(0);opacity:1}
.float-cta-text{font-size:14px;color:var(--text2)}
.float-cta a{background:linear-gradient(135deg,var(--c1),#0ea5e9);color:var(--bg);border:none;padding:12px 28px;font-family:'Noto Sans JP',sans-serif;font-size:14px;font-weight:700;letter-spacing:1px;cursor:pointer;transition:all 0.3s;text-decoration:none;display:inline-block;border-radius:40px}
.float-cta a:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(56,189,248,0.35)}

/* ══════════════════════════════════════════
   HERO
══════════════════════════════════════════ */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;position:relative;z-index:2;padding:140px 64px 80px}
.hero-glow-a{position:absolute;width:900px;height:900px;border-radius:50%;background:radial-gradient(circle,rgba(56,189,248,0.10) 0%,transparent 60%);top:-200px;right:-100px;pointer-events:none;animation:pulse-glow 6s ease-in-out infinite}
.hero-glow-b{position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(129,140,248,0.09) 0%,transparent 65%);bottom:-100px;left:-100px;pointer-events:none;animation:pulse-glow 8s ease-in-out infinite reverse}
@keyframes pulse-glow{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:0.7}}

.hero-content{position:relative;z-index:2}
.hero-eyebrow{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:600;letter-spacing:5px;color:var(--c1);text-transform:uppercase;margin-bottom:36px;display:flex;align-items:center;gap:16px;opacity:0;transform:translateY(20px);animation:hero-in 0.7s 0.2s forwards}
.hero-eyebrow::before{content:'';display:inline-block;width:48px;height:1px;background:linear-gradient(90deg,var(--c1),transparent)}
.hero-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(80px,10vw,148px);line-height:0.88;letter-spacing:4px;opacity:0;transform:translateY(30px);animation:hero-in 0.8s 0.35s forwards}
.hero-title .la{color:var(--c1);display:block;position:relative;text-shadow:0 0 60px rgba(56,189,248,0.25)}
.hero-title .la::after{content:'';position:absolute;left:0;bottom:-4px;width:0;height:3px;background:linear-gradient(90deg,var(--c1),var(--c2));animation:line-grow 1s 1.2s forwards}
.hero-title .ln{display:block}
.hero-title .ld{display:block;color:rgba(241,245,249,0.45)}
@keyframes line-grow{to{width:100%}}
.hero-catch{font-size:26px;font-weight:900;line-height:1.6;margin-top:40px;opacity:0;transform:translateY(20px);animation:hero-in 0.8s 0.48s forwards;background:linear-gradient(135deg,var(--text) 40%,var(--c1));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-subtitle{font-size:17px;font-weight:400;line-height:2;color:var(--text2);margin:20px 0 48px;max-width:520px;opacity:0;transform:translateY(20px);animation:hero-in 0.8s 0.58s forwards}
.hero-subtitle strong{color:var(--text);font-weight:700}
.hero-ctas{display:flex;gap:18px;flex-wrap:wrap;opacity:0;transform:translateY(20px);animation:hero-in 0.8s 0.72s forwards}
@keyframes hero-in{to{opacity:1;transform:translateY(0)}}

/* ── 信頼バッジ ── */
.trust-badges{display:flex;gap:24px;flex-wrap:wrap;margin-top:40px;opacity:0;transform:translateY(20px);animation:hero-in 0.8s 0.92s forwards;padding-top:32px;border-top:1px solid rgba(56,189,248,0.15)}
.trust-badge{display:flex;align-items:center;gap:9px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:2px;color:var(--text2);text-transform:uppercase}
.trust-badge svg{flex-shrink:0;color:var(--c4)}

.btn-primary{background:linear-gradient(135deg,var(--c1),#0ea5e9);color:var(--bg);border:none;padding:20px 48px;font-family:'Noto Sans JP',sans-serif;font-size:16px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:all 0.3s;text-decoration:none;display:inline-block;position:relative;overflow:hidden;border-radius:3px}
.btn-primary::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,0.12);transform:translateX(-100%);transition:transform 0.4s}
.btn-primary:hover::before{transform:translateX(0)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 48px rgba(56,189,248,0.4)}
.btn-secondary{background:transparent;color:var(--text);border:1px solid rgba(241,245,249,0.2);padding:20px 48px;font-family:'Noto Sans JP',sans-serif;font-size:16px;font-weight:500;letter-spacing:2px;cursor:pointer;transition:all 0.3s;text-decoration:none;display:inline-block}
.btn-secondary:hover{border-color:var(--c1);color:var(--c1);transform:translateY(-3px)}

/* ── TERMINAL ── */
.hero-terminal-wrap{position:relative;z-index:2;opacity:0;transform:translateX(40px);animation:hero-in 0.9s 0.9s forwards}
.hero-terminal{background:rgba(8,14,26,0.97);border:1px solid var(--b1);border-radius:8px;overflow:hidden;font-family:'JetBrains Mono',monospace;box-shadow:0 32px 80px rgba(0,0,0,0.5),0 0 60px rgba(56,189,248,0.08)}
.terminal-bar{background:rgba(56,189,248,0.08);padding:14px 20px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--b1)}
.t-dot{width:12px;height:12px;border-radius:50%}
.t-dot.r{background:#ef4444}.t-dot.y{background:#f59e0b}.t-dot.g{background:#10b981}
.t-title{margin-left:12px;color:var(--text2);font-size:12px;letter-spacing:1px}
.terminal-body{padding:24px;line-height:2.2}
.t-line{color:var(--text2);font-size:13px;display:flex;align-items:baseline;gap:8px}
.t-line .prompt{color:var(--c4);font-weight:600}
.t-line .cmd{color:var(--text)}
.t-line .ok{color:var(--c4)}
.t-line .warn{color:#f59e0b}
.t-line .err{color:#ef4444}
.t-line .comment{color:rgba(144,168,200,0.6)}
.cursor{display:inline-block;width:9px;height:14px;background:var(--c1);vertical-align:middle;animation:blink 1s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

/* ══════════════════════════════════════════
   SECTION SHARED
══════════════════════════════════════════ */
section{padding:120px 64px;position:relative;z-index:2}
.section-label{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;letter-spacing:6px;color:var(--c1);text-transform:uppercase;margin-bottom:20px;display:flex;align-items:center;gap:14px}
.section-label::before{content:'//';color:rgba(56,189,248,0.4)}
.section-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(52px,6vw,90px);line-height:0.95;letter-spacing:3px;margin-bottom:26px}
.section-desc{font-size:18px;font-weight:400;line-height:2;color:var(--text2);max-width:640px}
.ta{color:var(--c1)}.tp{color:var(--c2)}

/* ══════════════════════════════════════════
   WHO WE HELP（ターゲット明示）
══════════════════════════════════════════ */
.who-section{background:linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);border-top:1px solid rgba(56,189,248,0.1);border-bottom:1px solid rgba(56,189,248,0.1)}
.who-inner{max-width:960px;margin:0 auto;text-align:center}
.who-lead{font-size:15px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--c1);font-family:'JetBrains Mono',monospace;margin-bottom:32px;display:flex;align-items:center;justify-content:center;gap:14px}
.who-lead::before,.who-lead::after{content:'';flex:1;max-width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--c1))}
.who-lead::after{background:linear-gradient(90deg,var(--c1),transparent)}
.who-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:0}
.who-card{background:rgba(56,189,248,0.04);border:1px solid var(--b1);border-radius:4px;padding:28px 24px;transition:all 0.3s;text-align:left}
.who-card:hover{background:rgba(56,189,248,0.08);border-color:rgba(56,189,248,0.35);transform:translateY(-2px)}
.who-card-title{font-size:15px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:10px}
.who-card-title svg{color:var(--c4);flex-shrink:0}
.who-card-text{font-size:13px;color:var(--text2);line-height:1.85}

/* ══════════════════════════════════════════
   WHY SECTION
══════════════════════════════════════════ */
.diff-section{background:var(--bg2)}
.diff-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 50%,rgba(129,140,248,0.08),transparent 60%)}
.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:72px;border:1px solid var(--b2)}
.diff-card{background:var(--bg);padding:56px 48px;position:relative;overflow:hidden;transition:background 0.4s,transform 0.3s}
.diff-card:hover{background:var(--bg3);transform:translateY(-2px)}
.diff-card::after{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:linear-gradient(180deg,var(--c1),var(--c2));transition:height 0.5s ease}
.diff-card:hover::after{height:100%}
.diff-card-glow{position:absolute;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(56,189,248,0.09),transparent);top:-60px;right:-60px;pointer-events:none;opacity:0;transition:opacity 0.4s}
.diff-card:hover .diff-card-glow{opacity:1}
.diff-bg-num{font-family:'Bebas Neue',sans-serif;font-size:140px;color:rgba(56,189,248,0.05);position:absolute;top:0;right:16px;line-height:1;letter-spacing:-6px;pointer-events:none}
.diff-icon-wrap{width:60px;height:60px;border:1px solid var(--b1);display:flex;align-items:center;justify-content:center;margin-bottom:32px;background:rgba(56,189,248,0.05);transition:all 0.3s}
.diff-card:hover .diff-icon-wrap{border-color:rgba(56,189,248,0.4);background:rgba(56,189,248,0.11)}
.diff-icon-wrap svg{width:28px;height:28px;transition:transform 0.3s}
.diff-card:hover .diff-icon-wrap svg{transform:scale(1.15)}
.diff-title{font-size:22px;font-weight:700;margin-bottom:16px;line-height:1.3}
.diff-text{font-size:15px;line-height:1.95;color:var(--text2)}
.diff-tag{display:inline-block;margin-top:22px;padding:6px 16px;border:1px solid rgba(56,189,248,0.25);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;letter-spacing:3px;color:var(--c1);text-transform:uppercase;transition:all 0.3s}
.diff-card:hover .diff-tag{border-color:var(--c1);background:rgba(56,189,248,0.09)}

/* ══════════════════════════════════════════
   SERVICES
══════════════════════════════════════════ */
.services-section{background:var(--bg)}
.services-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 80%,rgba(56,189,248,0.05),transparent 55%)}
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--b2);margin-top:72px;border:1px solid var(--b2)}
.service-card{background:var(--bg2);padding:48px 36px;transition:background 0.35s,transform 0.3s;position:relative;overflow:hidden}
.service-card:hover{background:var(--bg3);transform:translateY(-3px)}
.service-card::before{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--c1),var(--c2));transform:scaleX(0);transition:transform 0.4s ease;transform-origin:left}
.service-card:hover::before{transform:scaleX(1)}
.service-card-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 120%,rgba(56,189,248,0.07),transparent 60%);opacity:0;transition:opacity 0.4s}
.service-card:hover .service-card-bg{opacity:1}
.service-num{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:4px;color:var(--c1);margin-bottom:22px}
.service-icon-wrap{width:56px;height:56px;border:1px solid var(--b1);display:flex;align-items:center;justify-content:center;margin-bottom:24px;background:rgba(56,189,248,0.05);transition:all 0.3s}
.service-card:hover .service-icon-wrap{border-color:rgba(56,189,248,0.4);background:rgba(56,189,248,0.09);transform:rotate(5deg)}
.service-icon-wrap svg{width:26px;height:26px}
.service-name{font-size:22px;font-weight:700;margin-bottom:20px;line-height:1.3}
.service-items{list-style:none;display:flex;flex-direction:column;gap:11px}
.service-items li{font-size:14px;color:var(--text2);display:flex;align-items:flex-start;gap:10px;line-height:1.7}
.service-items li::before{content:'›';color:var(--c1);flex-shrink:0;font-family:'JetBrains Mono',monospace;font-weight:600;margin-top:2px}
.service-summary{font-size:14px;color:var(--c1);margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--b1);font-weight:500;line-height:1.7;opacity:0.9}

/* ══════════════════════════════════════════
   AI SECTION
══════════════════════════════════════════ */
.ai-section{background:var(--bg2);overflow:hidden}
.ai-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 60% 40%,rgba(129,140,248,0.10),transparent 55%)}
.ai-bg-text{position:absolute;font-family:'Bebas Neue',sans-serif;font-size:500px;color:rgba(129,140,248,0.03);right:-80px;bottom:-120px;line-height:1;pointer-events:none;letter-spacing:-16px}
.ai-inner{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:start;position:relative;z-index:2}
.ai-features{display:flex;flex-direction:column;gap:22px;margin-top:48px}
.ai-feature{display:flex;gap:24px;align-items:flex-start;padding:24px 26px;border:1px solid var(--b1);transition:all 0.35s;position:relative;overflow:hidden}
.ai-feature::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(129,140,248,0.07),rgba(56,189,248,0.04));opacity:0;transition:opacity 0.35s}
.ai-feature:hover{border-color:rgba(129,140,248,0.4);transform:translateX(6px)}
.ai-feature:hover::before{opacity:1}
.ai-feat-icon{flex-shrink:0;width:48px;height:48px;border:1px solid var(--b1);display:flex;align-items:center;justify-content:center;transition:all 0.3s;position:relative;z-index:1}
.ai-feature:hover .ai-feat-icon{border-color:var(--c2);background:rgba(129,140,248,0.12)}
.ai-feat-icon svg{width:22px;height:22px}
.ai-feature-title{font-size:17px;font-weight:700;margin-bottom:8px;position:relative;z-index:1}
.ai-feature-text{font-size:14px;color:var(--text2);line-height:1.85;position:relative;z-index:1}

.ai-card{background:var(--bg);border:1px solid var(--b1);padding:36px;font-family:'JetBrains Mono',monospace;font-size:13px;line-height:2.2;box-shadow:0 24px 64px rgba(0,0,0,0.4),0 0 40px rgba(129,140,248,0.07);position:relative;overflow:hidden}
.ai-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--c2),var(--c1))}
.ai-card-title{color:var(--c1);font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--b1)}
.ai-line{color:var(--text2)}
.ai-line .key{color:#f59e0b}
.ai-line .val{color:var(--c4)}
.ai-line .str{color:#f472b6}
.ai-line .num{color:var(--c1)}
.tag-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.tag{display:inline-block;padding:5px 12px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;letter-spacing:2px;border:1px solid;text-transform:uppercase;transition:all 0.25s}
.tag:hover{transform:translateY(-2px)}
.tc{border-color:rgba(56,189,248,0.35);color:var(--c1)}.tc:hover{background:rgba(56,189,248,0.1)}
.tgn{border-color:rgba(52,211,153,0.35);color:var(--c4)}.tgn:hover{background:rgba(52,211,153,0.1)}
.tp-tag{border-color:rgba(129,140,248,0.35);color:#a5b4fc}.tp-tag:hover{background:rgba(129,140,248,0.1)}

/* ══════════════════════════════════════════
   DELIVERABLES
══════════════════════════════════════════ */
.deliv-section{background:var(--bg)}
.deliv-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(56,189,248,0.06),transparent 50%)}
.deliv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--b2);margin-top:72px;border:1px solid var(--b2)}
.deliv-card{background:var(--bg2);padding:48px 36px;transition:all 0.35s;position:relative;overflow:hidden}
.deliv-card:hover{background:var(--bg3);transform:translateY(-4px);box-shadow:0 20px 60px rgba(0,0,0,0.3)}
.deliv-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:0;background:linear-gradient(0deg,rgba(56,189,248,0.06),transparent);transition:height 0.4s}
.deliv-card:hover::after{height:100%}
.deliv-card.hl{border-left:3px solid var(--c4)}
.deliv-icon{margin-bottom:26px;transition:transform 0.3s}
.deliv-card:hover .deliv-icon{transform:scale(1.1)}
.deliv-title{font-size:20px;font-weight:700;margin-bottom:14px}
.deliv-title.green{color:var(--c4)}
.deliv-text{font-size:14px;color:var(--text2);line-height:1.9}

/* ══════════════════════════════════════════
   FREE DIAGNOSIS
══════════════════════════════════════════ */
.free-diag-section{background:var(--bg);overflow:hidden;border-top:1px solid var(--b1)}
.free-diag-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(52,211,153,0.07),transparent 55%)}
.free-diag-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;position:relative;z-index:2}
.fdp-list{display:flex;flex-direction:column;gap:20px;margin-top:40px}
.fdp-item{display:flex;gap:20px;align-items:flex-start;padding:20px 22px;border:1px solid var(--b1);transition:all 0.3s}
.fdp-item:hover{border-color:rgba(52,211,153,0.4);background:rgba(52,211,153,0.05);transform:translateX(4px)}
.fdp-icon{flex-shrink:0;width:44px;height:44px;border:1px solid var(--b1);display:flex;align-items:center;justify-content:center;transition:all 0.3s}
.fdp-item:hover .fdp-icon{border-color:var(--c4);background:rgba(52,211,153,0.12)}
.fdp-title{font-size:16px;font-weight:700;margin-bottom:6px}
.fdp-text{font-size:14px;color:var(--text2);line-height:1.8}
.findings-preview{display:flex;flex-direction:column;gap:14px}
.fp-card{background:var(--bg2);border:1px solid var(--b1);border-radius:6px;padding:22px 24px;position:relative;overflow:hidden;transition:border-color 0.3s}
.fp-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%}
.fp-card.sev-crit::before{background:#ef4444}
.fp-card.sev-high::before{background:#f59e0b}
.fp-card.sev-med::before{background:var(--c1)}
.fp-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.fp-card-title{font-size:15px;font-weight:700}
.fp-sev{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;letter-spacing:1px;padding:3px 10px;border-radius:2px}
.fp-sev.crit{background:rgba(239,68,68,0.15);color:#ef4444;border:1px solid rgba(239,68,68,0.35)}
.fp-sev.high{background:rgba(245,158,11,0.15);color:#f59e0b;border:1px solid rgba(245,158,11,0.35)}
.fp-sev.med{background:rgba(56,189,248,0.12);color:var(--c1);border:1px solid rgba(56,189,248,0.35)}
.fp-card-desc{font-size:13px;color:var(--text2);line-height:1.8}
.fp-card-meta{display:flex;gap:16px;margin-top:12px;flex-wrap:wrap}
.fp-tag{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text2);letter-spacing:1px;padding:3px 8px;background:rgba(255,255,255,0.04);border:1px solid var(--b1);border-radius:2px}
.fp-note{margin-top:12px;font-size:12px;color:var(--text2);font-style:italic;opacity:0.7;text-align:center}

/* ══════════════════════════════════════════
   FAQ
══════════════════════════════════════════ */
.faq-section{background:var(--bg2);overflow:hidden}
.faq-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,rgba(56,189,248,0.06),transparent 55%)}
.faq-inner{max-width:820px;position:relative;z-index:2}
.faq-list{display:flex;flex-direction:column;gap:4px;margin-top:64px}
.faq-item{border:1px solid var(--b1);overflow:hidden;transition:border-color 0.3s}
.faq-item.open{border-color:rgba(56,189,248,0.35)}
.faq-q{display:flex;align-items:center;justify-content:space-between;padding:24px 30px;cursor:pointer;transition:background 0.25s;gap:20px;user-select:none}
.faq-q:hover{background:rgba(56,189,248,0.04)}
.faq-q-text{font-size:16px;font-weight:700;line-height:1.4}
.faq-icon{flex-shrink:0;width:28px;height:28px;border:1px solid var(--b1);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all 0.3s}
.faq-item.open .faq-icon{border-color:var(--c1);background:rgba(56,189,248,0.1);transform:rotate(45deg)}
.faq-icon svg{width:14px;height:14px;transition:transform 0.3s}
.faq-a{font-size:15px;color:var(--text2);line-height:1.9;padding:0 30px 0;max-height:0;overflow:hidden;transition:max-height 0.45s ease,padding 0.3s}
.faq-item.open .faq-a{max-height:400px;padding:0 30px 26px}

/* ══════════════════════════════════════════
   CONTACT
══════════════════════════════════════════ */
.contact-section{background:var(--bg);overflow:hidden}
.contact-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,rgba(56,189,248,0.08),transparent 55%)}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:start;position:relative;z-index:2}
.contact-form{display:flex;flex-direction:column;gap:20px;margin-top:48px}
.form-group{display:flex;flex-direction:column;gap:10px}
.form-label{font-size:11px;font-weight:600;letter-spacing:3px;color:var(--text2);text-transform:uppercase;font-family:'JetBrains Mono',monospace}
.form-input{background:rgba(8,14,26,0.92);border:1px solid var(--b1);color:var(--text);padding:16px 22px;font-family:'Noto Sans JP',sans-serif;font-size:16px;outline:none;transition:all 0.25s;width:100%}
.form-input:focus{border-color:rgba(56,189,248,0.6);box-shadow:0 0 0 3px rgba(56,189,248,0.08)}
.form-textarea{background:rgba(8,14,26,0.92);border:1px solid var(--b1);color:var(--text);padding:16px 22px;font-family:'Noto Sans JP',sans-serif;font-size:16px;outline:none;transition:all 0.25s;width:100%;resize:vertical;min-height:140px}
.form-textarea:focus{border-color:rgba(56,189,248,0.6);box-shadow:0 0 0 3px rgba(56,189,248,0.08)}
.ci-label{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;letter-spacing:5px;color:var(--c1);text-transform:uppercase;margin-bottom:8px}
.ci-val{font-size:18px}
.benefit-list{display:flex;flex-direction:column;gap:16px;margin-top:40px}
.benefit-item{display:flex;align-items:center;gap:14px;font-size:16px;color:var(--text2);transition:color 0.25s}
.benefit-item:hover{color:var(--text)}
.benefit-item svg{flex-shrink:0;color:var(--c4)}
.form-note{font-size:12px;color:var(--text2);opacity:0.65;text-align:center;margin-top:4px;font-style:italic}

/* Section separators */
.diff-section::after,.services-section::after,.ai-section::after,.deliv-section::after,.free-diag-section::after,.faq-section::after{content:'';position:absolute;bottom:0;left:64px;right:64px;height:1px;background:linear-gradient(90deg,transparent,rgba(56,189,248,0.2),transparent)}

/* FOOTER */
footer{background:var(--bg2);border-top:1px solid var(--b1);padding:48px 64px;position:relative;z-index:2}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px}
.footer-logo{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:6px;color:var(--c1)}
.footer-center{display:flex;gap:28px}
.footer-center a{color:var(--text2);text-decoration:none;font-size:13px;transition:color 0.25s;letter-spacing:0.5px}
.footer-center a:hover{color:var(--c1)}
.footer-copy{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:2px;color:var(--text2)}

/* SCROLL REVEAL */
.reveal{opacity:0;transform:translateY(44px);transition:opacity 0.8s ease,transform 0.8s ease}
.reveal.from-left{transform:translateX(-44px)}
.reveal.from-right{transform:translateX(44px)}
.reveal.visible{opacity:1;transform:translate(0)}
.reveal.d1{transition-delay:0.1s}
.reveal.d2{transition-delay:0.2s}
.reveal.d3{transition-delay:0.3s}
.reveal.d4{transition-delay:0.4s}

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media(max-width:1280px){
  .hero{grid-template-columns:1fr;min-height:auto;padding:160px 56px 80px}
  .hero-terminal-wrap{max-width:580px}
}
@media(max-width:1024px){
  nav{padding:18px 40px}
  nav.compact{padding:12px 40px}
  .services-grid{grid-template-columns:1fr 1fr}
  .deliv-grid{grid-template-columns:1fr 1fr}
  .who-cards{grid-template-columns:1fr 1fr}
  .hero{padding:140px 40px 80px;gap:48px}
  section{padding:100px 40px}
  .diff-card{padding:44px 36px}
}
@media(max-width:900px){
  .diff-grid{grid-template-columns:1fr}
  .ai-inner{grid-template-columns:1fr;gap:48px}
  .contact-inner{grid-template-columns:1fr;gap:48px}
  .free-diag-inner{grid-template-columns:1fr;gap:48px}
  .who-cards{grid-template-columns:1fr}
  .hero-title{font-size:clamp(64px,14vw,120px)}
}
@media(max-width:768px){
  .hero{padding:120px 28px 60px;gap:40px}
  .hero-title{font-size:clamp(56px,16vw,100px)}
  .hero-catch{font-size:20px}
  .hero-subtitle{font-size:15px}
  .hero-ctas{flex-direction:column;gap:14px}
  .hero-ctas .btn-primary,.hero-ctas .btn-secondary{text-align:center;padding:18px 32px;width:100%;display:block}
  .trust-badges{gap:14px}
  .trust-badge{font-size:10px}
  .section-title{font-size:clamp(44px,10vw,80px)}
  .section-desc{font-size:16px}
  .diff-card{padding:36px 28px}
  .diff-bg-num{font-size:100px}
  .service-card{padding:36px 28px}
  .deliv-card{padding:36px 28px}
  .ai-feature{padding:18px 20px;gap:16px}
  .ai-card{padding:28px 24px}
  .faq-q{padding:20px 22px}
  .faq-a{padding:0 22px 0}
  .faq-item.open .faq-a{padding:0 22px 20px}
  .faq-q-text{font-size:15px}
}
@media(max-width:640px){
  nav{padding:14px 20px}
  nav.compact{padding:12px 20px}
  .nav-links{display:none}
  .hamburger{display:flex}
  section{padding:72px 20px}
  .hero{padding:110px 20px 56px}
  .hero-title{font-size:clamp(52px,18vw,88px)}
  .hero-eyebrow{font-size:11px;letter-spacing:3px;margin-bottom:24px}
  .hero-catch{font-size:18px;margin-top:28px}
  .hero-subtitle{font-size:14px;margin:16px 0 36px}
  .services-grid{grid-template-columns:1fr}
  .deliv-grid{grid-template-columns:1fr}
  .who-cards{grid-template-columns:1fr}
  .fp-card-header{flex-wrap:wrap;gap:8px}
  .diff-section::after,.services-section::after,.ai-section::after,.deliv-section::after,.free-diag-section::after,.faq-section::after{left:20px;right:20px}
  footer{padding:32px 20px}
  .footer-inner{flex-direction:column;gap:16px;text-align:center}
  .footer-center{flex-wrap:wrap;justify-content:center;gap:14px}
  .trust-badges{gap:12px}
  .float-cta{display:none}
  .who-section{padding:56px 20px !important}
  .diff-card{padding:32px 22px}
  .diff-title{font-size:18px}
  .diff-bg-num{font-size:80px}
  .service-card{padding:32px 22px}
  .service-name{font-size:18px}
  .deliv-card{padding:32px 22px}
  .ai-card{padding:22px 20px;font-size:11px}
  .tag-row{gap:7px}
  .faq-q{padding:18px 18px;gap:14px}
  .faq-a{padding:0 18px 0}
  .faq-item.open .faq-a{padding:0 18px 18px}
  .fdp-item{padding:16px 18px;gap:14px}
  .fdp-icon{width:38px;height:38px}
  .contact-form{gap:16px}
  .section-label{font-size:11px;letter-spacing:4px}
  .section-title{font-size:clamp(40px,12vw,68px)}
  .btn-primary,.btn-secondary{padding:16px 28px;font-size:15px}
  .terminal-body{padding:18px 14px}
  .t-line{font-size:11px}
  .hero-terminal-wrap{overflow-x:auto}
}

/* ── TOAST POPUP ── */
#toast-popup{
  position:fixed;
  top:32px;
  left:50%;
  transform:translateX(-50%) translateY(-20px);
  z-index:9999;
  background:rgba(10,22,38,0.97);
  border:1px solid rgba(52,211,153,0.55);
  border-radius:8px;
  padding:18px 32px 18px 22px;
  display:flex;
  align-items:center;
  gap:14px;
  box-shadow:0 8px 48px rgba(0,0,0,0.55),0 0 32px rgba(52,211,153,0.12);
  backdrop-filter:blur(24px);
  min-width:320px;
  max-width:90vw;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.35s ease, transform 0.35s cubic-bezier(0.34,1.56,0.64,1);
}
#toast-popup.show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
  pointer-events:auto;
}
#toast-popup.hide{
  opacity:0;
  transform:translateX(-50%) translateY(-16px);
}
.toast-icon{
  width:40px;height:40px;border-radius:50%;
  background:rgba(52,211,153,0.12);
  border:1px solid rgba(52,211,153,0.4);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.toast-icon svg{width:20px;height:20px;color:#34d399}
.toast-body{}
.toast-title{font-size:15px;font-weight:700;color:#f1f5f9;margin-bottom:3px}
.toast-sub{font-size:13px;color:#c2d4e8;line-height:1.5}
.toast-bar{
  position:absolute;bottom:0;left:0;height:3px;
  background:linear-gradient(90deg,#34d399,#38bdf8);
  border-radius:0 0 8px 8px;
  width:100%;
  transform-origin:left;
  animation:none;
}
#toast-popup.show .toast-bar{
  animation:toast-drain 2s linear forwards;
}
@keyframes toast-drain{from{transform:scaleX(1)}to{transform:scaleX(0)}}

.corporate-back-link:hover { opacity: 1 !important; }
