/* ============================================================
   全体ブラッシュアップ（2026-10）
   - 丸みのある書体（Exo 2 / Space Grotesk）をやめ、角の立ったグロテスク体へ
   - 本文の細字（300）をやめ、明るさ・サイズ・行間を上げて読みやすく
   - 日本語の袋文字（中抜き）を塗りに、光彩を控えめに
   既存の各ページCSSの後に読み込み、上書きする
   ============================================================ */
:root{
  --font-display:'Inter Tight','Noto Sans JP',sans-serif;
  --font-body:'Noto Sans JP',sans-serif;
  --font-jp:'Noto Sans JP',sans-serif;
  --gray:#a3afbf;            /* 補助文字：#7a8899 → コントラスト比 約8.6:1 */
  --text:rgba(255,255,255,0.80); /* 本文 */
  --border:rgba(255,255,255,0.10);
}
html{-webkit-text-size-adjust:100%}
body{cursor:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-family:var(--font-display)}
a,button,summary,[role="button"],.faq-q,.job-header,.nf-btn{cursor:pointer}
/* 独自カーソルは操作の邪魔になるため通常カーソルに戻す */
#cursor,#cursor-ring{display:none!important}

/* ── 見出し ── */
h1,h2,h3,.section-headline,.hero-headline,.cta-hl,.biz-title,.lp-cta h2,.biz-cta h2,.csp-left h2{font-feature-settings:"palt" 1;letter-spacing:-.01em}
.section-headline{line-height:1.18}
.hero-headline{line-height:1.12}
/* 日本語の袋文字は読みにくいので塗りに（英字の袋文字はデザインとして残す） */
.outlined.jp{-webkit-text-stroke:0!important;color:rgba(255,255,255,0.92)!important}
.outlined:not(.jp){-webkit-text-stroke-color:rgba(255,255,255,0.55)}
/* 光彩を控えめに：文字の輪郭がにじまないように */
.accent,.accent-fill,.section-headline .accent,.csp-left h2 em,.lp-cta h2 em,.biz-title em,.lp-hero h1 .accent{text-shadow:0 0 18px rgba(0,212,255,0.22)!important}
.cta-hl .accent{text-shadow:0 0 28px rgba(0,212,255,0.3)!important}

/* ── 本文：細字をやめ、明るく・大きく・行間広めに ── */
[style*="font-weight:300"]{font-weight:400!important}
[style*="color:var(--gray)"][style*="font-size:13px"]{font-size:14.5px!important;color:var(--text)!important}
.hero-sub,.lp-sub,.mission-text p,.biz-desc,.csp-left p,.card-body,.feat-body,.proc-body,.how-card p,.faq-a,.faq-a p,
.mv-item p,.lc-desc,.officer-bio,.mvva-body,.vc-body,.cc-body,.benefit-body,.job-desc,.tl-text,.sc-body,.shot-cap,
.filing-note,.footer-brand p,.page-hero p,.biz-hero p,.lp-cta p,.biz-cta p,.hero-sub.reveal,.info-table td,.report-split p{
  font-weight:400!important;color:var(--text)!important;line-height:1.95
}
.card-body,.feat-body,.proc-body,.how-card p,.vc-body,.cc-body,.benefit-body,.tl-text,.sc-body,.mv-item p{font-size:14px!important}
.faq-a,.faq-a p{font-size:14.5px!important}
.hero-sub,.lp-sub{font-size:16px!important;line-height:1.95!important}
.mission-text p,.biz-desc,.csp-left p,.officer-bio,.mvva-body,.job-desc{font-size:15px!important}
.page-hero p,.biz-hero p{font-size:15.5px!important;max-width:620px}
.shot-cap{font-size:13.5px!important}
.shot-cap b{font-size:14.5px}
.fine{font-size:12px;color:var(--gray);font-weight:400}
.proc-body{max-width:240px}
.card-title,.feat-title,.proc-title,.how-card h4,.mv-item h4,.vc-title,.cc-title,.benefit-title,.job-title,.sc-title{letter-spacing:.01em}
.feat-title{font-size:16px!important;line-height:1.5}
.card-title{font-size:18px!important}

/* ── 小さすぎるラベルを読める大きさに ── */
.section-label{font-size:11.5px!important;letter-spacing:.2em!important}
.hero-stat .lbl,.lp-stat .l,.proc-stp,.feat-num .l,.tour-tab .ts,.mb-live,.shot-tag,.biz-tag,.mvva-tag,.lc-label,.footer-col h4,.plan-name{font-size:11px!important}
.news-date{font-size:13px!important;color:var(--gray)!important}
.news-title,.news-title-text{font-size:15.5px!important;font-weight:500}
.card-tag,.officer-tag{font-size:11px!important}
.biz-feature{font-size:14.5px!important;color:var(--text)!important;font-weight:400!important;line-height:1.75}
.plan-feature{font-size:14px!important;line-height:1.6}
.plan-tax{font-size:12.5px!important;color:var(--gray)!important}
table.compare{font-size:14px!important}
table.compare td{color:var(--text)!important}
table.compare td:first-child{font-weight:400!important}
.form-label{font-size:13px!important}
.nav-links a{color:rgba(255,255,255,0.78)!important;font-size:13.5px!important}
.nav-links a.accent-link{color:var(--accent)!important}
.footer-col a,.footer-col li,.footer-info-row{font-size:13px!important;color:var(--gray)!important;font-weight:400!important}
.footer-copy,.footer-links a,.footer-legal a{font-size:11.5px!important;color:var(--gray)!important}

/* ── 数字は等幅寄せで揃える ── */
.hero-stat .num,.lp-stat .n,.plan-price,.feat-num .n,.proc-circle .pn,.biz-stat-num,.cc-num,.vc-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ── 配置の微調整 ── */
.card{padding:30px 28px!important}
.card-grid{gap:20px!important}
.feat-item{padding-right:8px}
.faq-q .qtxt{font-size:16px!important}
.faq-q{padding:26px 0!important}
.shot{box-shadow:0 24px 70px rgba(0,0,0,0.5)}
.shot-view{background:#0a1630}
.tour-tab .tt{font-size:14px}
.how-card h4{font-size:16px!important}
.btn-primary,.btn-ghost,.btn-outline,.cta-btn,.plan-btn,.nav-cta,.form-submit{letter-spacing:.04em!important}
.btn-ghost{color:rgba(255,255,255,0.88)!important}
/* フォーカスを見やすく（キーボード操作） */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
/* 入力欄の文字と枠を見やすく */
.form-input,.form-select,.form-textarea{font-size:15px!important;color:#fff!important;border-color:rgba(255,255,255,0.16)!important;font-weight:400!important}
.form-input::placeholder,.form-textarea::placeholder{color:rgba(255,255,255,0.38)}

@media (max-width:768px){
  .hero-sub,.lp-sub{font-size:15px!important}
  .mission-text p,.biz-desc,.csp-left p,.officer-bio,.mvva-body,.job-desc{font-size:14.5px!important}
  .faq-q .qtxt{font-size:15px!important}
  .card{padding:24px 20px!important}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}

/* 改行位置の調整：本文幅を文字サイズに合わせて広げる */
.hero-sub{max-width:520px!important}
.lp-sub{max-width:540px!important}
@media (max-width:768px){.hero-sub br,.lp-sub br{display:none}.hero-sub,.lp-sub{max-width:100%!important}}

/* 料金カードのボタン位置を下端でそろえる */
.plans-grid{align-items:stretch}
.plan-card{display:flex;flex-direction:column}
.plan-card .plan-features{flex:1}
.how-card::before{color:rgba(0,212,255,0.16)!important}

/* ── 代表メッセージ ── */
.ceo-msg{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:64px;margin-top:52px;align-items:start}
.ceo-msg-body p{font-size:15.5px;line-height:2.1;color:var(--text);font-family:var(--font-jp);margin-bottom:1.4em;max-width:40em}
.ceo-msg-body .ceo-lead{font-size:clamp(24px,2.6vw,34px);font-weight:900;line-height:1.5;color:#fff;letter-spacing:.01em;margin-bottom:1.2em;padding-left:20px;border-left:3px solid var(--accent)}
.ceo-sign{display:flex;flex-direction:column;gap:4px;margin-top:36px;padding-top:24px;border-top:1px solid var(--border);max-width:40em}
.ceo-sign span{font-size:12.5px;color:var(--gray);font-family:var(--font-jp)}
.ceo-sign b{font-size:24px;font-weight:900;letter-spacing:.12em;font-family:var(--font-jp)}
.ceo-profile{position:sticky;top:110px;border:1px solid var(--border);border-radius:16px;background:var(--bg2);padding:28px}
.ceo-profile-label{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--accent);margin-bottom:16px}
.ceo-profile-name{font-size:24px;font-weight:900;font-family:var(--font-jp);display:flex;flex-direction:column;gap:2px}
.ceo-profile-name small{font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--gray);font-family:var(--font-display)}
.ceo-profile-role{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--accent);margin:8px 0 22px}
.ceo-career{list-style:none;border-top:1px solid var(--border)}
.ceo-career li{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--border);font-size:14px;color:var(--text);font-family:var(--font-jp)}
.ceo-career li span{font-family:var(--font-display);font-weight:800;color:#fff;font-size:14px;letter-spacing:.02em}
@media (max-width:1024px){.ceo-msg{grid-template-columns:1fr;gap:36px}.ceo-profile{position:static}}

/* ── Ki:CODE ロゴ ── */
.kc-logo{display:block;height:auto}
.lp-hero .kc-logo{width:220px;margin-bottom:26px}
.csp-left .kc-logo{width:200px;margin-bottom:22px}
.biz-info .kc-logo{width:180px;margin-bottom:18px}
@media (max-width:768px){.lp-hero .kc-logo{width:180px}}
.lp-hero h1.kc-h1{margin:6px 0 30px;line-height:0}
.lp-hero h1.kc-h1 img{width:min(540px,100%);height:auto;filter:drop-shadow(0 0 22px rgba(0,212,255,0.18))}

/* 代表メッセージ：左に見出しと署名、右に本文（余白なく横幅いっぱい） */
.ceo-msg{grid-template-columns:minmax(0,0.85fr) minmax(0,1.5fr)!important;gap:72px!important}
.ceo-msg-head{position:sticky;top:120px}
.ceo-msg-head .ceo-lead{font-size:clamp(26px,2.8vw,38px)!important;margin-bottom:0!important}
.ceo-msg-head .ceo-sign{margin-top:40px;max-width:none}
.ceo-msg-body p{max-width:none!important}
.ceo-msg-body p:last-child{margin-bottom:0}
@media (max-width:1024px){.ceo-msg{grid-template-columns:1fr!important;gap:32px!important}.ceo-msg-head{position:static}.ceo-msg-head .ceo-sign{display:none}.ceo-msg-body::after{content:'株式会社C-SP 代表取締役　戸田 直人';display:block;margin-top:28px;padding-top:20px;border-top:1px solid var(--border);font-family:var(--font-jp);font-weight:700;letter-spacing:.06em}}

/* メニューの Ki:CODE をロゴで表示 */
.nav-links a.nav-kc{display:inline-flex;align-items:center;padding:8px 14px!important}
.nav-links a.nav-kc img{height:15px;width:auto;display:block}
.nav-drawer-links a.drawer-kc{display:flex;align-items:center;justify-content:center}
.nav-drawer-links a.drawer-kc img{height:clamp(30px,8vw,40px);width:auto;display:block}

/* ── プライバシーポリシー ── */
.legal{max-width:880px;font-family:var(--font-jp)}
.legal-date{font-size:13px!important;color:var(--gray)!important;margin-bottom:24px}
.legal p,.legal li,.legal td{font-size:15px;line-height:2;color:var(--text)}
.legal p{margin-bottom:16px}
.legal h2{display:flex;align-items:baseline;gap:14px;font-size:20px;font-weight:700;margin:48px 0 16px;padding-top:28px;border-top:1px solid var(--border);letter-spacing:.01em}
.legal h2 span{font-family:var(--font-display);font-size:13px;font-weight:800;color:var(--accent);letter-spacing:.1em}
.legal ul{padding-left:1.3em;margin-bottom:16px}
.legal li{margin-bottom:4px}
.legal li::marker{color:var(--accent)}
.legal a{color:var(--accent)}
.legal-table{width:100%;border-collapse:collapse;margin:8px 0 16px}
.legal-table th,.legal-table td{border-bottom:1px solid var(--border);padding:12px 14px 12px 0;text-align:left;vertical-align:top}
.legal-table th{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--accent);white-space:nowrap;width:110px}
@media (max-width:600px){.legal-table th{width:72px}.legal h2{font-size:18px}}

/* 料金カード4枚並び（スタート追加） */
.plans-grid.four{grid-template-columns:repeat(4,1fr)!important;gap:16px!important}
.plans-grid.four .plan-card{padding:30px 22px}
.plans-grid.four .plan-price{font-size:32px}
@media (max-width:1200px){.plans-grid.four{grid-template-columns:repeat(2,1fr)!important}}
@media (max-width:700px){.plans-grid.four{grid-template-columns:1fr!important}}
