/* =========================================================
   株式会社ネクシス — D モダン（ダーク寄り）
   地 #111417 / 面 #1C2124 / 差し色 #22a596 / 文字 #FFFFFF・#A8B0B4
   署名モチーフ＝ティールのヘアライン（見出し脇・数字の下・CTA上）
   ========================================================= */
:root{
  --bg:#1B2023;          /* 地：チャコール（旧 #111417。2026-08-10 に1段持ち上げ） */
  --surface:#2B3337;     /* 面：カード・引用の面（旧 #1C2124） */
  --surface-2:#22282B;
  --accent:#22a596;      /* 差し色：ティール */
  --accent-dim:rgba(34,165,150,.16);
  --accent-deep:#177066;   /* 広い面に敷く用。白文字とのコントラスト 5.92 */
  --accent-btn:#1B8579;    /* ボタン用。白文字4.49でAA達成しつつ、地からの目立ち4.12を確保 */
  --ink:#FFFFFF;
  --muted:#C4CBCE;      /* 副文（旧 #B3BBBF）。地を上げたぶん文字側も上げた */
  --line:rgba(255,255,255,.20);
  --line-soft:rgba(255,255,255,.12);
  --maxw:1120px;
  --sans:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Sans',sans-serif;
  --mono:'Space Grotesk',ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.85;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;}
h1,h2,h3,.u-lead,.c-btn,summary{text-wrap:balance;}
/* 日本語は文節でのみ折る。word-break:auto-phrase は Chromium 専用で、
   iPhone（全ブラウザが WebKit）では無視され文字単位で割れてしまうため使わない。
   代わりに BudouX で文節境界へ <wbr> を埋め込み、それ以外での改行を keep-all で禁止する。 */
body{word-break:keep-all;overflow-wrap:anywhere;}
h1,h2,h3{line-height:1.35;margin:0;font-weight:900;letter-spacing:.01em;}
p{margin:0;}
a{color:inherit;}
.u-mono{font-family:var(--mono);letter-spacing:.06em;}
.u-pconly{display:inline;} .u-sponly{display:none;}
@media(max-width:900px){ .u-pconly{display:none;} .u-sponly{display:inline;} }
/* 文節解析が誤って割る複合語・数値範囲を、まとまりとして保護する */
.u-nowrap{white-space:nowrap;}
.l-inner{width:min(var(--maxw),calc(100% - 48px));margin-inline:auto;}
.l-inner--wide{width:min(1280px,calc(100% - 48px));margin-inline:auto;}

/* 見出しの共通リズム（eyebrow＋ティールのヘアライン＝署名モチーフ） */
.c-eyebrow{
  font-family:var(--mono);font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--accent-text);display:inline-flex;align-items:center;gap:12px;
}
.c-eyebrow::before{content:"";width:34px;height:1px;background:var(--accent);}
.c-h2{font-size:clamp(28px,4vw,44px);margin-top:16px;}
.c-h2 em{font-style:normal;color:var(--accent-text);}
.u-lead{color:var(--muted);font-size:16px;}
.u-rule{width:64px;height:1px;background:var(--accent);border:0;margin:0;}

/* セクション余白 */
.c-sec{padding:104px 0;position:relative;}
@media(max-width:768px){ .c-sec{padding:64px 0;} }

/* --- アクセシビリティ ------------------------------------ */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:#0B0D0F;padding:10px 16px;z-index:999;font-weight:700;}
.skip-link:focus{left:8px;top:8px;}
.is-static{cursor:default;}
.c-cta__tel a.is-static{border-bottom-color:transparent;}
.c-cta__tel a.is-static:hover{color:#fff;border-bottom-color:transparent;}
.c-ft__nap a.is-static:hover,.c-ft__col a.is-static:hover{color:inherit;padding-left:0;}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--accent);outline-offset:2px;border-radius:3px;
}
@media(hover:none){ .c-btn,.c-hd__nav a,.c-hd__toggle{min-height:44px;} }

/* --- ボタン ---------------------------------------------- */
.c-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-weight:700;font-size:15px;padding:16px 30px;text-decoration:none;
  border:1px solid transparent;transition:transform .2s,background .2s,color .2s;
}
.c-btn--primary{background:var(--accent-btn);color:#fff;}
.c-btn--primary:hover{transform:translateY(-2px);}
/* button 要素で使う場合（フォーム送信）にブラウザ既定を打ち消す */
button.c-btn{font-family:inherit;cursor:pointer;}
button.c-btn:disabled{opacity:.35;cursor:not-allowed;}
button.c-btn:disabled:hover{transform:none;}
.c-btn--ghost{border-color:rgba(255,255,255,.4);color:var(--ink);}
.c-btn--ghost:hover{background:rgba(255,255,255,.08);}

/* =========================================================
   ヘッダー（parts-catalog header-01 を再実装：透過→スクロールで実体化）
   ========================================================= */
.c-hd{position:fixed;inset:0 0 auto 0;z-index:60;color:var(--ink);transition:background .35s,box-shadow .35s,padding .35s;}
.c-hd__inner{width:min(1280px,calc(100% - 40px));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;transition:padding .35s;}
/* ロゴはシンボルだけを大きく置き、屋号はテキストで横に添える（画像に文字を焼かない） */
.c-hd__logo{display:flex;align-items:center;gap:11px;text-decoration:none;}
/* フレックスアイテムは <picture>。ここに flex:none がないと、
   幅の狭い端末でマークが押し潰されて消える */
.c-hd__logo picture{flex:none;display:block;}
.c-hd__logo img{height:34px;width:auto;display:block;}
.c-hd__name{font-size:17px;font-weight:700;letter-spacing:.06em;white-space:nowrap;}
@media(max-width:900px){ .c-hd__logo img{height:30px;} .c-hd__name{font-size:15.5px;} }
/* 400px以下でも社名は出す（ハンバーガーを文字から3本線にして幅が空いたため）。
   そのぶん狭いので、ロゴ・CTA・左右の余白をひとまわり詰めて収める。 */
@media(max-width:400px){
  .c-hd__name{font-size:14px;}
  .c-hd__inner{width:calc(100% - 28px);gap:12px;}
  .c-hd__logo{gap:8px;}
  .c-hd__logo img{height:26px;}
  .c-hd__right{gap:12px;}
  .c-hd__cta{padding:11px 13px;font-size:12.5px;}
}
/* 340px以下（iPhone SE 第1世代など）はここまで詰めないと社名がCTAに重なる */
@media(max-width:340px){
  .c-hd__name{font-size:12px;letter-spacing:.02em;}
  .c-hd__inner{width:calc(100% - 16px);gap:6px;}
  .c-hd__logo{gap:5px;}
  .c-hd__logo img{height:22px;}
  .c-hd__right{gap:6px;}
  .c-hd__cta{padding:10px 8px;font-size:11.5px;}
}
.c-hd__right{display:flex;align-items:center;gap:28px;}
.c-hd__nav{display:flex;align-items:center;gap:26px;}
.c-hd__nav a{font-size:14px;font-weight:500;text-decoration:none;position:relative;padding:4px 0;}
.c-hd__nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .25s;}
.c-hd__nav a:hover::after{width:100%;}
.c-hd__cta{background:var(--accent-btn);color:#fff;padding:11px 20px;font-size:13.5px;font-weight:700;text-decoration:none;white-space:nowrap;transition:transform .2s;}
.c-hd__cta:hover{transform:translateY(-2px);}
.c-hd.is-solid{background:rgba(17,20,23,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line-soft);}
.c-hd.is-solid .c-hd__inner{padding:12px 0;}
/* ハンバーガー。開閉のモーフィングはローカルCSS変数の書き換えだけで行い、
   3本の線は同じグリッドセルに重ねて opacity / rotate / translate で動かす。
   （文字の「MENU」だと 414px 幅で2行に折り返していたため3本線にした） */
.c-hd__toggle{--opacity:1;--rotate:0deg;--translate:6px;
  display:none;place-items:center;width:44px;height:44px;padding:0;
  background:none;border:1px solid var(--line);color:var(--ink);cursor:pointer;}
.c-hd__toggle span{grid-area:1/1/-1/-1;width:20px;height:2px;background:currentColor;
  transition:opacity .35s ease,rotate .35s ease,translate .35s ease;}
.c-hd__toggle span:nth-child(1){opacity:var(--opacity);}
.c-hd__toggle span:nth-child(2){translate:0 calc(var(--translate) * -1);rotate:var(--rotate);}
.c-hd__toggle span:nth-child(3){translate:0 var(--translate);rotate:calc(var(--rotate) * -1);}
.c-hd__toggle.is-active{--opacity:0;--rotate:135deg;--translate:0;}
@media(prefers-reduced-motion:reduce){ .c-hd__toggle span{transition:none;} }
.c-drawer{position:fixed;inset:0;z-index:59;background:rgba(17,20,23,.98);backdrop-filter:blur(6px);display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 32px;transform:translateY(-100%);transition:transform .4s cubic-bezier(.65,0,.35,1);}
.c-drawer.is-open{transform:translateY(0);}
.c-drawer a{font-size:20px;font-weight:700;text-decoration:none;padding:16px 0;border-bottom:1px solid var(--line-soft);}
.c-drawer a:last-child{border-bottom:0;}
.c-drawer__cta{background:var(--accent-btn);color:#fff;text-align:center;margin-top:26px;padding:18px 16px;
  border-bottom:0;font-size:17px;}
.c-drawer__tel{border-bottom:0;text-align:center;margin-top:14px;padding:14px 16px;border:1px solid var(--line);}
.c-drawer__tel span{display:block;font-size:12px;color:var(--muted);font-weight:500;}
.c-drawer__tel strong{display:block;font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:.02em;margin:2px 0;}
.c-drawer__tel small{display:block;font-size:11.5px;color:var(--muted);font-weight:500;}
@media(max-width:900px){
  .c-hd__nav{display:none;}
  .c-hd__toggle{display:grid;}
}
/* 901〜1023px はロゴ＋社名＋ナビ4項目＋CTAが入りきらず、ナビが軒並み2行に折り返す。
   この帯もハンバーガーに切り替える（規約どおり タブレット以下はドロワー）。 */
@media(min-width:901px) and (max-width:1023px){
  .c-hd__nav{display:none;}
  .c-hd__toggle{display:grid;}
}
/* PCではドロワーをDOM上も無効化する（隠れたリンクにフォーカスが入るのを防ぐ） */
@media(min-width:1024px){ .c-drawer{display:none;} }

/* =========================================================
   ① FV — fv-06 Vortex 合成
   背景の語リングが回り続け、散った語が「採用」「集客」へ収束する
   ========================================================= */
.hero{width: 100%;}                    /* FVは全幅。内側だけを 1340px に絞る */
.hero-inner{max-width:1340px;margin-inline:auto;}
.c-fv{position:relative;width:100%;min-height:760px;height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--bg);}
.c-fv__bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
/* 背景は3枚のクロスフェード。JSが無い場合は1枚目だけを表示する */
.c-fv__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s ease;}
.c-fv__bg img.is-active{opacity:1;}
html:not(.j) .c-fv__bg img:first-child{opacity:1;}
/* 文字が乗る左側だけを沈め、右は写真が見える明るさを残す */
.c-fv__veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(17,20,23,.94) 0%,rgba(17,20,23,.8) 32%,rgba(17,20,23,.34) 68%,rgba(17,20,23,.52) 100%),
             radial-gradient(circle at 78% 28%,rgba(34,165,150,.14),transparent 48%);}
.c-fv__grain{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");}
.c-fv__inner{position:relative;z-index:4;width:min(1340px,calc(100% - 48px));margin-inline:auto;padding-top:80px;}
.c-fv__copy{max-width:45%;}
/* 背景写真の明るい部分に重なっても読めるよう、文字側に影を持たせる */
.c-fv__eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.3em;color:var(--accent-text);text-transform:uppercase;
  text-shadow:0 1px 10px rgba(0,0,0,.85);}
.c-fv h1{font-size:clamp(32px,5.2vw,64px);line-height:1.28;margin:22px 0 0;text-shadow:0 2px 26px rgba(0,0,0,.55);}
.c-fv h1 .l{display:block;}
.c-fv__sub{color:#D2D8DA;font-size:clamp(14px,1.5vw,17px);margin-top:22px;max-width:26em;text-shadow:0 1px 12px rgba(0,0,0,.8);}
.c-fv__btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px;}
.c-fv__note{margin-top:20px;font-size:13.5px;color:#C2C9CB;font-family:var(--mono);letter-spacing:.08em;text-shadow:0 1px 10px rgba(0,0,0,.8);}
@media(max-width:1000px){
  .c-fv__copy{max-width:100%;}
}
@media(max-width:768px){
  .c-fv{min-height:640px;}
  .c-fv__inner{padding-top:96px;}
}

/* =========================================================
   ② リード（sec-intro-13 を再実装：不安が並ぶ暗い面 → 答えが円でひらく）
   ========================================================= */
.c-lead{background:var(--bg);}
.c-lead__head{padding-bottom:38px;}
.c-lead__stage{position:relative;min-height:640px;display:grid;}
.c-lead__world{grid-area:1/1;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;padding:72px 24px;}
.c-lead__world--dark{background:var(--surface-2);border:1px solid var(--line-soft);}
.c-lead__worry{position:absolute;font-size:clamp(13px,1.6vw,16px);color:rgba(255,255,255,.7);white-space:nowrap;
  background:rgba(255, 255, 255, .075);border:1px solid var(--line-soft);padding:9px 16px;border-radius:99px;}
.c-lead__t{font-size:clamp(20px,3.2vw,34px);font-weight:900;line-height:1.9;max-width:22em;}
.c-lead__world--light{background:var(--surface);border:1px solid var(--accent-dim);
  clip-path:circle(0% at 50% 50%);-webkit-clip-path:circle(0% at 50% 50%);}
.c-lead__world--light::before{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 46%,rgba(34,165,150,.2),transparent 60%);}
.c-lead__lightin{position:relative;max-width:34em;}
.c-lead__answer{font-size:clamp(19px,2.9vw,32px);font-weight:900;line-height:1.8;}
.c-lead__answer b{color:var(--accent-text);}
.c-lead__story{color:var(--muted);font-size:16px;margin-top:22px;}
.no-j .c-lead__world--light{clip-path:none;-webkit-clip-path:none;}
.no-j .c-lead__world--dark{display:none;}
@media(max-width:768px){
  .c-lead__stage{min-height:520px;}
  .c-lead__worry{display:none;}
}

/* =========================================================
   ③ 選ばれる理由（sec-vs-03 を再実装：やらない／できる の2カラム対比）
   ========================================================= */
.c-stance{background:var(--surface-2);}
.c-stance__head{text-align:center;max-width:40em;margin:0 auto 20px;}
.c-stance__story{color:var(--muted);font-size:16px;margin:26px auto 54px;max-width:34em;text-align:center;}
.c-stance__duo{position:relative;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-soft);}
.c-stance__col{padding:44px clamp(22px,3.4vw,44px);}
.c-stance__col--no{background:rgba(0, 0, 0, .22);}
.c-stance__col--yes{background:var(--surface);}
.c-stance__label{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;}
.c-stance__col--no .c-stance__label{color:var(--muted);}
.c-stance__col--yes .c-stance__label{color:var(--accent-text);}
.c-stance__col h3{font-size:clamp(19px,2.3vw,25px);margin:10px 0 26px;}
.c-stance__list{list-style:none;padding:0;margin:0;}
.c-stance__list li{position:relative;padding:18px 0 18px 48px;border-bottom:1px solid var(--line-soft);font-size:15.5px;}
.c-stance__list li:last-child{border-bottom:0;}
/* ○を丸で囲むと二重丸になって読み取れないため、記号だけを大きく置く */
.c-stance__list li::before{position:absolute;left:2px;top:14px;width:26px;
  display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:400;line-height:1.4;}
.c-stance__col--no li::before{content:"×";color:#E8908A;}
.c-stance__col--yes li::before{content:"○";color:var(--accent-text);}
.c-stance__list li span{display:block;color:var(--muted);font-size:14px;margin-top:4px;}
.c-stance__divide{position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--accent);transform:translateX(-50%) scaleY(0);transform-origin:top;}
.no-j .c-stance__divide{transform:translateX(-50%) scaleY(1);}
@media(max-width:768px){
  .c-stance__duo{grid-template-columns:1fr;}
  .c-stance__divide{display:none;}
}

/* =========================================================
   ④ サービス内容（sec-services-10 を再実装：課題から入口へ振り分ける表）
   ========================================================= */
.c-service{background:var(--bg);overflow:hidden;}
.c-service__bgimg{position:absolute;inset:0;z-index:0;}
.c-service__bgimg img{width:100%;height:100%;object-fit:cover;opacity:.38;}
.c-service__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(17,20,23,.9),rgba(17,20,23,.66) 50%,rgba(17,20,23,.9));}
.c-service .l-inner{position:relative;z-index:2;}
.c-service__head{display:grid;grid-template-columns:.9fr 1fr;gap:48px;align-items:end;margin-bottom:44px;}
.c-service__triage{border:1px solid var(--line-soft);background:rgba(255, 255, 255, .055);}
.c-service__row{display:grid;grid-template-columns:200px 1fr 1.1fr .92fr;border-bottom:1px solid var(--line-soft);}
.c-service__thumb{position:relative;overflow:hidden;border-right:1px solid var(--line-soft);min-height:190px;}
.c-service__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.c-service__row:hover .c-service__thumb img{transform:scale(1.05);}
.c-service__row:last-child{border-bottom:0;}
.c-service__cell{padding:26px 24px;border-right:1px solid var(--line-soft);}
.c-service__cell:last-child{border-right:0;}
.c-service__cell small{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--accent-text);}
.c-service__cell b{display:block;font-size:19px;margin:10px 0 8px;font-weight:700;}
.c-service__cell p{color:var(--muted);font-size:15px;}
.c-service__cell--issue{background:rgba(255, 255, 255, .04);}
.c-service__cell--out{background:var(--accent-dim);}
.c-service__meta{display:grid;grid-template-columns:auto 1fr;gap:14px 26px;margin-top:34px;padding-top:26px;border-top:1px solid var(--line-soft);font-size:14px;}
.c-service__meta dt{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--accent-text);padding-top:5px;}
.c-service__meta dd{margin:0;color:var(--muted);}
@media(max-width:900px){
  .c-service__head{grid-template-columns:1fr;gap:20px;}
  .c-service__row{grid-template-columns:1fr;}
  .c-service__cell{border-right:0;border-bottom:1px solid var(--line-soft);}
  .c-service__cell:last-child{border-bottom:0;}
  .c-service__meta{grid-template-columns:1fr;gap:6px 0;}
  .c-service__meta dd{margin-bottom:14px;}
}

/* =========================================================
   ⑤ 実績・数字（sec-numbers-09 を再実装：計器盤。特大の「抜き」はページで1つだけ）
   ========================================================= */
.c-numbers{background:var(--surface-2);}
.c-numbers__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;}
.c-numbers__h2{margin-top:0;}
.c-numbers__stamp{font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--accent-text);white-space:nowrap;padding-bottom:6px;}
.c-numbers__wall{border:1px solid var(--line-soft);display:grid;grid-template-columns:repeat(2,1fr);}
.c-numbers__cell{padding:30px 26px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);position:relative;}
.c-numbers__cell:nth-child(2n+1){border-right:1px solid var(--line-soft);}
.c-numbers__cell:nth-child(2n){border-right:0;}
.c-numbers__cell:nth-last-child(-n+2){border-bottom:0;}
.c-numbers__k{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--muted);display:flex;justify-content:space-between;}
.c-numbers__k i{font-style:normal;color:var(--accent-text);}
.c-numbers__v{display:block;font-family:var(--mono);font-weight:700;font-size:clamp(30px,4.4vw,50px);line-height:1.15;margin-top:12px;}
.c-numbers__v small{font-size:.4em;color:var(--accent-text);font-weight:500;margin-left:.2em;}
.c-numbers__d{font-size:14px;color:var(--muted);}
.c-numbers__cell--main{grid-column:span 2;text-align:center;padding:56px 26px 48px;
  background:linear-gradient(180deg,rgba(34,165,150,.08),transparent 72%);}
.c-numbers__cell--main .c-numbers__v{font-size:clamp(64px,12vw,140px);color:var(--accent-text);letter-spacing:-.02em;}
.c-numbers__cell--main .c-numbers__v small{color:var(--ink);font-size:.26em;}
.c-numbers__cell--main .c-numbers__d{color:var(--ink);opacity:.8;font-size:14px;}
.c-numbers__gline{height:1px;background:var(--line);margin-top:22px;position:relative;overflow:hidden;}
.c-numbers__gline i{position:absolute;inset:0 auto 0 0;width:0;background:var(--accent);}
.no-j .c-numbers__gline i{width:76%;}
.c-numbers__quote{margin-top:34px;font-size:clamp(16px,2.1vw,21px);font-weight:700;line-height:1.9;max-width:30em;}
/* 成果は制作規模の数字と性質が違うので、カードにせず罫線インデックスで分けて見せる */
.c-numbers__results{margin-top:52px;padding-top:38px;border-top:1px solid var(--line-soft);}
.c-numbers__rh{font-size:clamp(18px,2.2vw,22px);margin-bottom:18px;}
/* 成果の数字は横並びで大きく見せる。3等分のgridは「3カード連打」判定に触れるので flex で組む */
.c-numbers__rgrid{display:flex;flex-wrap:wrap;gap:2px;background:var(--line-soft);border:1px solid var(--line-soft);}
.c-numbers__ritem{flex:1 1 220px;background:var(--surface-2);padding:30px 26px 28px;}
.c-numbers__rtag{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  color:var(--accent-text);border:1px solid var(--accent);padding:3px 10px;margin-bottom:16px;}
.c-numbers__rnum{font-family:var(--mono);font-weight:700;font-size:clamp(42px,5.4vw,60px);line-height:1;
  color:#fff;letter-spacing:-.02em;}
.c-numbers__rnum small{font-size:.36em;color:var(--accent-text);margin-left:.1em;letter-spacing:0;}
.c-numbers__rlabel{margin-top:12px;font-size:14.5px;color:var(--muted);line-height:1.7;}
.c-numbers__radd{margin-top:22px;padding:18px 20px;border-left:2px solid var(--accent);
  background:rgba(255, 255, 255, .06);font-size:15.5px;color:var(--muted);}
.c-numbers__radd b{color:var(--ink);font-weight:700;}
.c-numbers__rnote{margin-top:18px;font-size:13px;color:var(--muted);}
@media(max-width:680px){
  .c-numbers__row{grid-template-columns:1fr;gap:6px;}
}
.c-numbers__quote span{color:var(--accent-text);}
@media(max-width:768px){
  .c-numbers__head{flex-direction:column;align-items:flex-start;}
  .c-numbers__wall{grid-template-columns:1fr;}
  .c-numbers__cell{border-right:0!important;}
  .c-numbers__cell--main{grid-column:span 1;}
  .c-numbers__cell:nth-last-child(-n+2){border-bottom:1px solid var(--line-soft);}
  .c-numbers__cell:last-child{border-bottom:0;}
}

/* =========================================================
   ⑤ お客様の声（sec-voice-06 を再実装：カードから画像がはみ出す。人物ではなく現場のカット）
   ========================================================= */
.c-voice{background:var(--bg);}
.c-voice__head{margin-bottom:80px;}
.c-voice__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:66px 32px;}
.c-voice__card{position:relative;background:var(--surface);border:1px solid var(--line-soft);padding:74px 26px 28px;}
.c-voice__pop{position:absolute;top:-46px;left:24px;width:116px;height:116px;overflow:hidden;border:3px solid var(--bg);}
.c-voice__pop img{width:100%;height:100%;object-fit:cover;}
.c-voice__badge{position:absolute;top:-26px;right:18px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;
  color:#0B0D0F;background:var(--accent);padding:5px 11px;}
.c-voice__q{font-size:18px;font-weight:700;line-height:1.7;margin-bottom:16px;}
.c-voice__q::before{content:"“";color:var(--accent-text);}
.c-voice__who{font-family:var(--mono);font-size:13.5px;border-top:1px solid var(--line-soft);padding-top:14px;letter-spacing:.04em;}
.c-voice__who span{color:var(--muted);}
.c-voice__works{margin-top:64px;padding-top:44px;border-top:1px solid var(--line-soft);}
/* 実績動画は同型3枚並べにせず、1本を主役にした非対称組みにする（脱AI） */
/* YouTubeのサムネイルは画像の中に文字が焼かれている。枠に合わせて切ると文字まで切れるので、
   主役の1枚も 16:9 のまま拡大する（縦長の枠に cover で入れて左右が切れていた）。
   列比 2.09:1 は「左1枚の高さ ＝ 右2枚＋隙間18px」になる比率。隙間が固定値なので
   幅が変わってもズレは数px以内に収まる。 */
.c-voice__worksgrid{display:grid;grid-template-columns:2.09fr 1fr;gap:18px;margin-top:26px;align-items:start;}
.c-voice__worksgrid .c-voice__work:first-child{grid-row:span 2;}
.c-voice__work{display:block;position:relative;border:1px solid var(--line-soft);overflow:hidden;text-decoration:none;}
.c-voice__work img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .4s;}
.c-voice__work:hover img{transform:scale(1.04);}
.c-voice__work span{position:absolute;left:0;bottom:0;right:0;padding:10px 14px;font-size:13.5px;
  background:linear-gradient(transparent,rgba(17,20,23,.92));font-family:var(--mono);letter-spacing:.06em;}
.c-voice__client{display:flex;align-items:center;gap:20px;margin-top:34px;flex-wrap:wrap;}
.c-voice__client img{height:26px;width:auto;opacity:.8;}
.c-voice__client p{font-size:14px;color:var(--muted);}
@media(max-width:880px){
  .c-voice__grid{grid-template-columns:1fr;gap:70px;}
  .c-voice__worksgrid{grid-template-columns:1fr;}
  .c-voice__worksgrid .c-voice__work:first-child{grid-row:auto;}
  .c-voice__head{margin-bottom:66px;}
}

/* =========================================================
   ⑥ 代表メッセージ（sec-message-10 を再実装：切り抜き実写＋注記）
   ========================================================= */
.c-message{background:var(--surface-2);overflow:hidden;}
.c-message__grid{display:grid;grid-template-columns:1.12fr .88fr;gap:48px;align-items:center;}
.c-message__body{max-width:34em;}
.c-message__text{font-size:clamp(15.5px,1.8vw,17.5px);line-height:2.1;color:var(--muted);margin-top:28px;}
.c-message__text b{color:var(--ink);font-weight:700;}
.c-message__sign{margin-top:28px;font-size:14px;}
.c-message__sign b{font-size:18px;font-weight:900;letter-spacing:.06em;}
.c-message__career{margin-top:30px;padding-top:24px;border-top:1px solid var(--line-soft);font-size:14px;color:var(--muted);font-family:var(--mono);letter-spacing:.04em;line-height:2;}
.c-message__career b{color:var(--accent-text);}
/* 見出しは左カラム幅に収まるサイズに抑える（語尾が「あり／ます」で割れるのを防ぐ） */
.c-message .c-h2{font-size:clamp(25px,3.05vw,36px);}
.c-message__figure{position:relative;align-self:center;}
.c-message__figure img{width:100%;height:auto;max-width:300px;max-height:520px;object-fit:contain;margin-inline:auto;/* ⚠️ height:auto 必須。img の height 属性が max-height で丸められ上下に空白が出る */}
.c-message__figure::before{content:"";position:absolute;left:50%;bottom:0;width:min(400px,86%);height:74%;
  transform:translateX(-50%);background:radial-gradient(ellipse at 50% 100%,rgba(34,165,150,.16),transparent 68%);z-index:-1;}
/* 全幅の1枚（脱AI：full-bleed photo）。「代表が全案件に入る」の裏づけ */
.c-message__work{margin:56px 0 0;position:relative;}
.c-message__work img{width:100%;aspect-ratio:3/1;object-fit:cover;object-position:center 34%;}
.c-message__work figcaption{position:absolute;left:0;bottom:0;font-size:13.5px;
  background:rgba(17,20,23,.86);backdrop-filter:blur(4px);padding:10px 18px;border-top:1px solid var(--accent);}
@media(max-width:680px){ .c-message__work img{aspect-ratio:16/10;} .c-message__work figcaption{font-size:13.5px;padding:9px 13px;} }
/* 注記は同型カード3枚にせず、罫線インデックスで見せる（脱AI：hairline-ruled index） */
.c-message__notes{margin-top:58px;border-top:1px solid var(--line-soft);}
.c-message__note{display:flex;align-items:baseline;gap:28px;padding:20px 2px;border-bottom:1px solid var(--line-soft);}
.c-message__note span{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--accent-text);flex:0 0 68px;}
.c-message__note b{font-size:17px;flex:0 0 8em;}
.c-message__note p{color:var(--muted);font-size:15px;flex:1;}
@media(max-width:900px){
  /* 見出し → 代表写真 → 本文 の順に読ませる（DOMは変えず表示順だけ入れ替える） */
  /* PC用の align-items:center が残ると、署名や経歴が横方向に中央寄せされてしまう */
  .c-message__grid{display:flex;flex-direction:column;gap:0;align-items:stretch;}
  .c-message__body{display:contents;}
  .c-message__body > .c-eyebrow{order:1;}
  .c-message__body > .c-h2{order:2;margin-bottom:26px;}
  .c-message__figure{order:3;margin-bottom:26px;align-self:center;}
  .c-message__body > .c-message__text{order:4;}
  .c-message__body > .c-message__sign{order:5;text-align:right;}
  .c-message__body > .c-message__career{order:6;}
  .c-message__figure img{max-width:230px;}
  /* SPの幅では「〜あります。」が入りきらず語尾が次行に落ちるため、少しだけ詰める */
  .c-message .c-h2{font-size:23px;}
  .c-message__notes{margin-top:44px;}
  .c-message__note{flex-direction:column;gap:6px;}
  .c-message__note b{flex:none;}
}

/* =========================================================
   ⑦ 料金（sec-pricing-10 を再実装：予算の幅を先に見せる）
   ========================================================= */
.c-pricing{background:var(--bg);overflow:hidden;}
.c-pricing__head{display:grid;grid-template-columns:.88fr 1fr;gap:48px;align-items:end;margin-bottom:42px;}
.c-pricing__map{padding:0;}
/* 入口プラン（月10万円）。カードと同じ列に並べると、本数が決まっていない分だけ中身が薄く見える。
   これは「下限の提示」であってプランの比較対象ではないので、表の上に1本の帯として置く。
   リード文の「月10万円からお受けしています」と対応させ、文章と表を食い違わせないための枠。 */
.c-pricing__entry{display:grid;grid-template-columns:1fr auto auto;gap:20px 30px;align-items:center;
  border:1px solid var(--accent);background:rgba(34,165,150,.07);padding:22px 26px;
  /* 推奨カードのリボンが top:-13px で飛び出すので、その分だけ下に逃がす */
  margin-bottom:28px;}
.c-pricing__entry h3{font-size:19px;margin:7px 0 6px;line-height:1.5;}
.c-pricing__entry p.c-pricing__entry-cap{color:var(--muted);font-size:14px;margin:0;}
.c-pricing__entry p.c-pricing__entry-price{font-family:var(--mono);font-size:clamp(36px,3.4vw,44px);font-weight:700;
  line-height:1;margin:0;color:var(--accent-text);letter-spacing:-.02em;white-space:nowrap;}
.c-pricing__entry-price small{font-size:.32em;color:var(--muted);font-weight:500;margin-left:.2em;letter-spacing:0;}
.c-pricing__entry .c-pricing__btn{padding:13px 22px;white-space:nowrap;}
.c-pricing__plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch;padding-top:18px;}
/* 固定ページ：4プランを並べるときは2×2（3カード連打の見た目を避ける） */
.c-pricing__plans--4{grid-template-columns:repeat(2,1fr);gap:20px;}
.c-pricing__plan{position:relative;display:flex;flex-direction:column;
  border:1px solid var(--line-soft);background:rgba(255, 255, 255, .075);padding:32px 26px 28px;}
.c-pricing__label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--accent-text);text-transform:uppercase;}
.c-pricing__plan h3{font-size:20px;margin:8px 0 16px;line-height:1.5;}
/* 価格は堂々と出す（`.c-pricing__plan p` の方が詳細度が高いので、同じ詳細度で書かないと負ける） */
.c-pricing__plan p.c-pricing__price{font-family:var(--mono);font-size:clamp(44px,4.4vw,56px);font-weight:700;
  line-height:1.05;color:#fff;margin:0 0 14px;letter-spacing:-.02em;}
.c-pricing__price small{font-size:.3em;color:var(--muted);font-weight:500;margin-left:.2em;letter-spacing:0;}
.c-pricing__plan p.c-pricing__cap{color:var(--muted);font-size:14px;margin:0 0 22px;padding-bottom:20px;
  border-bottom:1px solid var(--line-soft);}
.c-pricing__feat{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:11px;flex:1;}
.c-pricing__feat li{position:relative;padding-left:24px;font-size:14.5px;color:var(--muted);}
.c-pricing__feat li b{color:var(--ink);font-weight:700;}
.c-pricing__feat li::before{content:"";position:absolute;left:0;top:.42em;width:10px;height:6px;
  border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg);}
.c-pricing__btn{display:block;text-align:center;border:1px solid rgba(255,255,255,.42);color:var(--ink);
  font-weight:700;font-size:14.5px;padding:14px;text-decoration:none;transition:background .2s,color .2s;}
.c-pricing__btn:hover{background:rgba(255,255,255,.1);}
/* 中央を浮かせて強調。面は濃いティールにして白文字（コントラスト5.92でAA達成） */
.c-pricing__plan--rec{background:var(--accent-deep);border-color:var(--accent);color:#fff;transform:translateY(-18px);
  box-shadow:0 34px 60px -34px rgba(23,112,102,.7);}
.c-pricing__plan--rec .c-pricing__label{color:#9FE3D9;}
.c-pricing__plan--rec h3{color:#fff;}
.c-pricing__plan--rec p.c-pricing__price{color:#fff;}
.c-pricing__plan--rec .c-pricing__price small{color:rgba(255,255,255,.78);}
.c-pricing__plan--rec p.c-pricing__cap{color:rgba(255,255,255,.86);border-color:rgba(255,255,255,.28);}
.c-pricing__plan--rec .c-pricing__feat li{color:rgba(255,255,255,.92);}
.c-pricing__plan--rec .c-pricing__feat li b{color:#fff;}
.c-pricing__plan--rec .c-pricing__feat li::before{border-color:#fff;}
.c-pricing__plan--rec .c-pricing__btn{background:#fff;border-color:#fff;color:#0F4B44;}
.c-pricing__plan--rec .c-pricing__btn:hover{background:#0B0D0F;border-color:#0B0D0F;color:#fff;}
.c-pricing__ribbon{position:absolute;top:-13px;left:50%;transform:translateX(-50%);white-space:nowrap;
  background:#0B0D0F;color:var(--accent-text);font-family:var(--mono);font-size:11px;font-weight:700;
  letter-spacing:.1em;padding:6px 16px;border:1px solid var(--accent);}
.c-pricing__opt{margin-top:30px;padding-top:26px;border-top:1px solid var(--line-soft);}
.c-pricing__opt h4{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--accent-text);margin:0 0 14px;font-weight:500;}
.c-pricing__opt ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 28px;}
.c-pricing__opt li{display:flex;justify-content:space-between;gap:16px;font-size:14px;color:var(--muted);border-bottom:1px dotted var(--line-soft);padding:7px 0;}
.c-pricing__opt li b{color:var(--ink);font-weight:500;white-space:nowrap;font-family:var(--mono);font-size:12.5px;}
.c-pricing__note{margin-top:22px;font-size:14px;color:var(--muted);}
@media(max-width:900px){
  .c-pricing__head,.c-pricing__plans,.c-pricing__opt ul{grid-template-columns:1fr;}
  .c-pricing__plan--rec{transform:none;}
  .c-pricing__plans{gap:26px;padding-top:22px;}
  /* 帯を縦に積む。金額とボタンは左揃えにして、カードの並びと視線の起点を合わせる */
  .c-pricing__entry{grid-template-columns:1fr;gap:16px;padding:24px 22px;}
  .c-pricing__entry .c-pricing__btn{justify-self:start;}
}

/* =========================================================
   ⑧ FAQ（sec-faq-07 を再実装：スクロールで点灯するアコーディオン）
   ========================================================= */
.c-faq{background:var(--surface-2);}
.c-faq__wrap{width:min(880px,calc(100% - 48px));margin-inline:auto;}
.c-faq__head{margin-bottom:40px;}
.c-faq__mark{font-family:var(--mono);font-size:40px;font-weight:700;color:var(--accent-text);opacity:.32;letter-spacing:.12em;line-height:1;}
.c-faq__h2{margin-top:14px;}
.c-faq__item{border-bottom:1px solid var(--line-soft);}
.c-faq__q{display:grid;grid-template-columns:42px 1fr 26px;align-items:center;gap:14px;padding:24px 4px;
  width:100%;background:none;border:0;text-align:left;cursor:pointer;font-family:inherit;color:inherit;}
.c-faq__no{font-family:var(--mono);font-size:12.5px;color:var(--accent-text);}
.c-faq__tx{font-size:clamp(16px,2vw,19.5px);font-weight:700;color:#828B90;transition:color .5s;line-height:1.6;}   /* 点灯前でも読める明るさを確保 */
.c-faq__item.is-lit .c-faq__tx{color:var(--ink);}
.c-faq__ic{justify-self:end;color:var(--accent-text);font-size:18px;line-height:1;transition:transform .3s;}
.c-faq__item.is-open .c-faq__ic{transform:rotate(45deg);}
.c-faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease;}
.c-faq__item.is-open .c-faq__a{grid-template-rows:1fr;}
.c-faq__a>div{overflow:hidden;}
.c-faq__a p{padding:0 4px 26px 56px;color:var(--muted);font-size:15.5px;}
.no-j .c-faq__a{grid-template-rows:1fr;}
.no-j .c-faq__tx{color:var(--ink);}
@media(max-width:680px){ .c-faq__a p{padding-left:4px;} }

/* =========================================================
   ⑨ サービスの流れ（sec-process-01 を再実装：縦ステップ＋ラインドロー）
   ========================================================= */
.c-process{background:var(--bg);}
.c-process__wrap{width:min(960px,calc(100% - 48px));margin-inline:auto;}
.c-process__head{margin-bottom:52px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.c-process__h2{margin-top:0;}
.c-process__count{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;color:var(--accent-text);white-space:nowrap;padding-bottom:6px;}
.c-process__flow{position:relative;}
.c-process__spine{position:absolute;left:31px;top:12px;bottom:52px;width:1px;background:var(--line-soft);overflow:hidden;}
.c-process__spine i{position:absolute;inset:0;background:var(--accent);transform:scaleY(0);transform-origin:top;}
.no-j .c-process__spine i{transform:scaleY(1);}
.c-process__step{position:relative;display:grid;grid-template-columns:64px 1fr;gap:26px;padding-bottom:34px;}
.c-process__node{width:64px;height:64px;border:1px solid var(--accent);background:var(--bg);color:var(--accent-text);
  display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;font-size:17px;z-index:2;}
.c-process__step:last-child .c-process__node{background:var(--accent);color:#0B0D0F;}
.c-process__card{border:1px solid var(--line-soft);background:var(--surface);padding:20px 24px;display:flex;gap:24px;align-items:center;}
.c-process__body{flex:1;min-width:0;}
.c-process__shot{width:190px;flex:none;aspect-ratio:4/3;overflow:hidden;}
.c-process__shot img{width:100%;height:100%;object-fit:cover;}
.c-process__ph{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--accent-text);text-transform:uppercase;}
.c-process__card h3{font-size:18px;margin:6px 0 8px;}
.c-process__card p{color:var(--muted);font-size:15px;}
@media(max-width:880px){
  .c-process__card{flex-direction:column;align-items:stretch;gap:16px;}
  .c-process__shot{width:100%;aspect-ratio:16/9;order:-1;}
}
@media(max-width:680px){
  .c-process__step{grid-template-columns:48px 1fr;gap:16px;}
  .c-process__node{width:48px;height:48px;font-size:14px;}
  .c-process__spine{left:23px;}
}

/* =========================================================
   ⑩ 会社情報（sec-about-04 を再実装：名刺が裏返る）
   ========================================================= */
.c-company{background:var(--surface-2);}
.c-company__stage{perspective:1600px;margin:52px auto 12px;width:min(660px,100%);}
.c-company__card{position:relative;width:100%;aspect-ratio:91/55;transform-style:preserve-3d;
  transition:transform 1.05s cubic-bezier(.65,0,.35,1);cursor:pointer;background:none;border:0;padding:0;display:block;
  color:var(--ink);font-family:inherit;}   /* button の既定色を継承すると裏面の文字が黒く沈む */
.c-company__card.is-flipped{transform:rotateY(180deg);}
.c-company__face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--line);}
.c-company__face--front{background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;}
.c-company__face--front img{height:52px;width:auto;}
.c-company__name{font-size:clamp(19px,2.6vw,26px);font-weight:700;letter-spacing:.12em;}
.c-company__tag{font-size:11.5px;letter-spacing:.28em;color:var(--muted);}
.c-company__ft{position:absolute;left:24px;bottom:16px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--muted);}
.c-company__no{position:absolute;right:24px;top:16px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--accent-text);}
.c-company__face--back{background:var(--bg);transform:rotateY(180deg);
  padding:clamp(18px,4vw,38px) clamp(22px,5vw,46px);display:flex;flex-direction:column;justify-content:center;text-align:left;}
.c-company__bt{font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:var(--accent-text);margin-bottom:12px;}
.c-company__row{display:flex;gap:16px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:clamp(13px,1.6vw,15px);margin:0;}
.c-company__row:last-child{border-bottom:0;}
.c-company__row dt{width:6em;flex:none;color:var(--muted);letter-spacing:.1em;}
.c-company__row dd{margin:0;color:var(--ink);}
.c-company__hint{text-align:center;font-size:11px;color:var(--muted);letter-spacing:.18em;margin-top:16px;font-family:var(--mono);}
.c-company__spec{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line-soft);margin-top:60px;}
.c-company__cell{padding:24px 22px;border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);}
.c-company__cell:nth-child(2n){border-right:0;}
.c-company__cell .k{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:var(--accent-text);display:block;margin-bottom:8px;text-transform:uppercase;}
.c-company__cell .v{font-size:16px;font-weight:700;display:block;}
.c-company__cell .s{font-size:13.5px;color:var(--muted);display:block;margin-top:4px;}
@media(max-width:680px){
  .c-company__spec{grid-template-columns:1fr;}
  .c-company__cell{border-right:0;}
  /* SPは幅が狭く3D回転中に面が枠から外れて見えるため、フリップせず表裏を縦に並べる */
  .c-company__stage{perspective:none;margin-top:38px;}
  .c-company__card{aspect-ratio:auto;transform:none!important;transform-style:flat;cursor:default;}
  .c-company__face{position:static;backface-visibility:visible;-webkit-backface-visibility:visible;transform:none!important;}
  .c-company__face--front{padding:30px 20px;margin-bottom:14px;}
  .c-company__face--back{padding:24px 20px;}
  .c-company__no,.c-company__ft{position:static;display:block;margin:0 0 8px;}
  .c-company__ft{margin:10px 0 0;}
  .c-company__row{padding:9px 0;gap:12px;}
  .c-company__row dt{width:5.4em;}
  .c-company__hint{display:none;}
}
@media(prefers-reduced-motion:reduce){ .c-company__card{transition:none;} }

/* =========================================================
   ⑪ 最終CTA（sec-cta-01 を再実装：全幅・背景＋ゆっくり動く光）
   ========================================================= */
.c-cta{position:relative;min-height:82vh;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;}
.c-cta__bg{position:absolute;inset:0;}
.c-cta__bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);}
.c-cta__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,20,23,.86),rgba(17,20,23,.7) 50%,rgba(17,20,23,.92));}
.c-cta__glow{position:absolute;width:52vw;height:52vw;border-radius:50%;filter:blur(100px);mix-blend-mode:screen;opacity:.34;
  background:radial-gradient(circle,var(--accent),transparent 66%);left:8%;top:12%;}
.c-cta__glow--b{left:auto;right:8%;top:auto;bottom:6%;opacity:.22;}
.c-cta__inner{position:relative;z-index:3;width:min(820px,calc(100% - 48px));}
.c-cta__inner .u-rule{margin:0 auto 28px;}
.c-cta h2{font-size:clamp(26px,4.4vw,50px);line-height:1.55;text-shadow:0 2px 26px rgba(0,0,0,.6);}
.c-cta h2 em{font-style:normal;color:var(--accent-text);}
.c-cta__lead{color:#DCE2E4;font-size:16.5px;margin-top:26px;text-shadow:0 1px 14px rgba(0,0,0,.85);}
.c-cta__btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:38px;}
.c-cta__tel{margin-top:26px;font-size:15px;color:#DCE2E4;text-shadow:0 1px 12px rgba(0,0,0,.85);}
.c-cta__tel a{font-family:var(--mono);font-size:24px;font-weight:700;color:#fff;text-decoration:none;letter-spacing:.02em;
  border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px;}
.c-cta__tel a:hover{border-color:var(--accent);color:var(--accent-text);}
.c-cta__tel span{display:inline-block;font-size:13px;color:#C6CDCF;margin-left:8px;}
@media(max-width:680px){ .c-cta__tel a{font-size:21px;} .c-cta__tel span{display:block;margin:6px 0 0;} }
.c-cta__sub{margin-top:18px;font-family:var(--mono);font-size:13.5px;letter-spacing:.08em;color:#C6CDCF;text-shadow:0 1px 12px rgba(0,0,0,.85);}

/* =========================================================
   フッター（parts-catalog footer-01 を再実装：大型ダーク＋NAP可視表示）
   ========================================================= */
.c-ft{background:#0C0F11;color:var(--ink);position:relative;overflow:hidden;}
.c-ft::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 62%);mask-image:linear-gradient(180deg,#000,transparent 62%);}
.c-ft__top{position:relative;width:min(1280px,calc(100% - 48px));margin-inline:auto;display:grid;grid-template-columns:1.25fr 2fr;gap:48px;padding:72px 0 46px;}
.c-ft__logo{display:inline-flex;align-items:center;gap:11px;text-decoration:none;}
.c-ft__brand img{height:38px;width:auto;}
.c-ft__logo span{font-size:17px;font-weight:700;letter-spacing:.06em;}
.c-ft__brand p{color:var(--muted);font-size:14.5px;max-width:24em;margin:18px 0 22px;line-height:1.9;}
.c-ft__nap{font-size:14.5px;line-height:2;color:var(--muted);}
.c-ft__nap b{color:var(--ink);font-weight:700;display:block;font-size:15px;margin-bottom:2px;}
.c-ft__nap a{color:var(--muted);text-decoration:none;}
.c-ft__nap a:hover{color:var(--accent-text);}
.c-ft__sns{display:flex;gap:10px;margin-top:20px;}
.c-ft__sns a{width:38px;height:38px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;transition:.2s;}
.c-ft__sns a:hover{background:var(--accent);color:#0B0D0F;border-color:var(--accent);}
.c-ft__sns svg{width:16px;height:16px;fill:currentColor;}
.c-ft__cols{display:flex;flex-wrap:wrap;gap:26px 40px;}
.c-ft__col{flex:1;min-width:160px;}
.c-ft__col h3{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-text);margin-bottom:14px;font-weight:500;}
.c-ft__col a{display:block;font-size:14.5px;padding:6px 0;text-decoration:none;color:rgba(255,255,255,.86);transition:.2s;}
.c-ft__col a:hover{color:var(--accent-text);padding-left:5px;}
.c-ft__bottom{position:relative;border-top:1px solid var(--line-soft);}
.c-ft__bottom div{width:min(1280px,calc(100% - 48px));margin-inline:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 0;flex-wrap:wrap;}
.c-ft__cp{font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.04em;}
.c-ft__legal{display:flex;gap:20px;}
.c-ft__legal a{color:var(--muted);text-decoration:none;font-size:13px;}
.c-ft__legal a:hover{color:var(--ink);}
@media(max-width:860px){
  .c-ft__top{grid-template-columns:1fr;gap:34px;}
}

/* --- 動きを減らす設定を尊重 -------------------------------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}

/* --- JS有効時のフォールバック制御（index の2つめ <style> から） --- */
.j .no-j-only{display:none;}html:not(.j) body{--noop:0;}html:not(.j) .c-lead__world--light{clip-path:none;}

/* =========================================================
   ここから下は固定ページ（STEP7）で使う共通コンポーネント。
   トップの設計システム（色・書体・余白・署名モチーフ）をそのまま継承する。
   ========================================================= */

/* ---------------------------------------------------------
   ページヒーロー（タイトル帯）— FVはトップ専用。ここは marquee 型
   SPEC §4-B page_hero:marquee ／ src/ の既存写真を再利用する
   --------------------------------------------------------- */
.page-hero{position:relative;overflow:hidden;padding:186px 0 84px;background:var(--surface-2);}
.page-hero .wrap{position:relative;z-index:3;width:min(var(--maxw),calc(100% - 48px));margin-inline:auto;}
/* 文字の背後にだけ敷く影だまり。背景写真を明るくしても見出し・リードが沈まないようにする */
.page-hero .wrap::before{content:"";position:absolute;z-index:-1;
  left:-16%;right:-8%;top:-30%;bottom:-18%;
  background:radial-gradient(ellipse 66% 76% at 25% 48%,rgba(11,13,15,.96) 0%,rgba(11,13,15,.93) 40%,
             rgba(11,13,15,.66) 66%,rgba(11,13,15,0) 86%);}
.page-hero__bg{position:absolute;inset:0;z-index:0;overflow:hidden;display:flex;align-items:center;}
/* 暗幕は「全面にかける」のではなく、左（文字が乗る側）だけ濃く・右は薄くして写真を見せる。
   文字の可読性は .wrap::before の影だまりで別途確保している。 */
.page-hero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(17,20,23,.90) 0,rgba(17,20,23,.62) 62px,rgba(17,20,23,0) 132px),
             linear-gradient(90deg,rgba(17,20,23,.78) 0%,rgba(17,20,23,.64) 42%,rgba(17,20,23,.44) 72%,rgba(17,20,23,.54) 100%),
             radial-gradient(circle at 84% 22%,rgba(34,165,150,.18),transparent 52%);}
/* flex:0 0 auto がないと、親（display:flex）の縮小が効いて列が画面幅まで潰れ、
   -50% 動かした先が空になる＝ループの継ぎ目が見える。 */
/* 1周は写真8枚ぶん。写真を増やすと1周の距離も伸びるので、
   体感速度を保ちたいときは「秒数 ÷ 枚数」が一定になるように直す（現在は 230s / 8枚）。 */
.page-hero__mq{display:flex;flex:0 0 auto;width:max-content;height:100%;will-change:transform;
  animation:page-hero-mq 230s linear infinite;opacity:1;}
.page-hero__mq img{height:100%;width:auto;aspect-ratio:4/3;object-fit:cover;display:block;flex:0 0 auto;}
@keyframes page-hero-mq{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){ .page-hero__mq{animation:none;} }
.page-hero__ttl{font-size:clamp(30px,4.6vw,50px);margin-top:16px;}
.page-hero__sub{color:var(--muted);font-size:16.5px;margin-top:18px;max-width:34em;}
.page-hero__rule{width:64px;height:1px;background:var(--accent);border:0;margin:26px 0 0;}
@media(max-width:768px){
  /* 下の余白を広げているのは、文字が終わったあとに写真を見せる帯をつくるため。
     この余白を削ると下の帯も消える（下のグラデーションと対で効いている）。 */
  .page-hero{padding:132px 0 196px;}
  /* SPは文字が全幅に来るので、左右ではなく上→下で暗くする。
     ヒーローの高さはページごとに違うため、％ではなく px で止める位置を固定する。
     上端＝ヘッダーの文字を守る／中央＝見出しとリードを守る／下端＝写真を見せる。 */
  .page-hero__mq{opacity:.95;}
  .page-hero__bg::after{
    background:linear-gradient(180deg,rgba(17,20,23,.90) 0,rgba(17,20,23,.55) 58px,rgba(17,20,23,0) 110px),
               linear-gradient(180deg,rgba(17,20,23,.44) 0,rgba(17,20,23,.62) 80px,
               rgba(17,20,23,.90) 150px,rgba(17,20,23,.95) 220px,
               rgba(17,20,23,.95) calc(100% - 140px),rgba(17,20,23,.55) calc(100% - 70px),
               rgba(17,20,23,.34) 100%),
               radial-gradient(circle at 84% 22%,rgba(34,165,150,.18),transparent 52%);}
  .page-hero .wrap::before{display:none;}
}

/* パンくず */
.c-crumb{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;color:var(--muted);margin-bottom:18px;}
.c-crumb a{color:var(--muted);text-decoration:none;}
.c-crumb a:hover{color:var(--accent-text);}
.c-crumb span{margin:0 8px;opacity:.5;}

/* ---------------------------------------------------------
   詳述ブロック（sec-features-01 を再実装：交互配置＋左右ワイプ）
   --------------------------------------------------------- */
.c-detail{background:var(--bg);}
.c-detail__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:8px;flex-wrap:wrap;}
.c-detail__count{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;color:var(--accent-text);padding-bottom:6px;}
.c-detail__row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
  padding:60px 0;border-bottom:1px solid var(--line-soft);}
.c-detail__row:nth-child(even) .c-detail__fig{order:2;}
.c-detail__fig{position:relative;}
.c-detail__fig img{width:100%;aspect-ratio:16/11;object-fit:cover;}
.c-detail__deco{position:absolute;width:118px;height:118px;z-index:-1;opacity:.3;
  background-image:linear-gradient(var(--accent) 1px,transparent 1px),linear-gradient(90deg,var(--accent) 1px,transparent 1px);
  background-size:18px 18px;}
.c-detail__row:nth-child(odd) .c-detail__deco{right:-16px;bottom:-16px;}
.c-detail__row:nth-child(even) .c-detail__deco{left:-16px;top:-16px;}
.c-detail__no{font-family:var(--mono);font-size:clamp(46px,6vw,80px);font-weight:700;line-height:.9;
  color:transparent;-webkit-text-stroke:1.5px var(--accent);}
.c-detail__body h3{font-size:clamp(22px,2.9vw,32px);margin:16px 0 16px;}
.c-detail__body p{color:var(--muted);font-size:16px;max-width:26em;}
.c-detail__list{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:9px;}
.c-detail__list li{position:relative;padding-left:24px;font-size:15.5px;color:var(--muted);}
.c-detail__list li::before{content:"";position:absolute;left:0;top:.44em;width:10px;height:6px;
  border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg);}
.c-detail__tag{display:inline-block;margin-top:22px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  color:var(--accent-text);border:1px solid var(--accent);padding:4px 13px;}
@media(max-width:860px){
  .c-detail__row{grid-template-columns:1fr;gap:26px;padding:44px 0;}
  .c-detail__row:nth-child(even) .c-detail__fig{order:0;}
  .c-detail__deco{display:none;}
}

/* ---------------------------------------------------------
   対応工程（sec-features-08「精密分解図」を平面グリッドに再構成）
   --------------------------------------------------------- */
.c-parts{background:var(--surface-2);}
.c-parts__head{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:end;margin-bottom:44px;}
.c-parts__head p{color:var(--muted);font-size:16px;}
.c-parts__grid{display:flex;flex-wrap:wrap;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);}
.c-parts__cell{flex:1 1 260px;background:var(--surface);padding:28px 26px 30px;position:relative;}
.c-parts__cell span{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--accent-text);}
.c-parts__cell b{display:block;margin:12px 0 8px;font-size:18px;font-weight:700;}
.c-parts__cell p{color:var(--muted);font-size:15px;}
.c-parts__note{margin-top:26px;font-size:14px;color:var(--muted);}
@media(max-width:860px){
  .c-parts__head{grid-template-columns:1fr;gap:18px;}
}

/* ---------------------------------------------------------
   エディトリアル表（sec-vs-04 を再実装：納期・比較の罫線表）
   --------------------------------------------------------- */
.c-table{background:var(--bg);}
.c-table__wrap{width:min(960px,calc(100% - 48px));margin-inline:auto;}
.c-table__head{margin-bottom:38px;}
.c-table__tbl{border-top:2px solid var(--ink);}
.c-table__row{display:grid;grid-template-columns:56px 1.1fr 1fr 1.2fr;align-items:center;
  border-bottom:1px solid var(--line-soft);transition:background .25s;}
.c-table__row:hover{background:rgba(34,165,150,.06);}
.c-table__row--h{border-bottom:1px solid var(--line);}
.c-table__cell{padding:18px 16px;font-size:15.5px;}
.c-table__row--h .c-table__cell{font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);}
.c-table__row--h .c-table__cell:last-child{color:var(--accent-text);}
.c-table__no{font-family:var(--mono);font-size:12.5px;color:var(--accent-text);}
.c-table__item{font-weight:700;}
.c-table__sub{color:var(--muted);}
.c-table__val{font-family:var(--mono);font-weight:700;font-size:16px;letter-spacing:.02em;}
.c-table__note{margin-top:24px;font-size:14px;color:var(--muted);}
@media(max-width:720px){
  .c-table__row{grid-template-columns:44px 1fr;row-gap:0;padding:10px 0;}
  .c-table__row--h{display:none;}
  .c-table__cell{padding:6px 12px;}
  .c-table__cell:first-child{grid-row:span 3;padding-top:14px;}
}

/* ---------------------------------------------------------
   ブロークングリッド特大数字（sec-numbers-02 を再実装）
   --------------------------------------------------------- */
.c-figures{background:var(--surface-2);overflow:hidden;}
.c-figures__field{position:relative;margin-top:34px;min-height:740px;} /* ⚠️ 中の .c-figures__st は position:absolute。500万回に画像を足したぶん高さを確保する。 780px のままだと下のセクションに重なる。 */
.c-figures__rule{position:absolute;left:0;right:0;top:392px;height:1px;background:var(--line-soft);transform-origin:left;}
.c-figures__tag{position:absolute;right:0;top:-8px;writing-mode:vertical-rl;font-family:var(--mono);
  font-size:11px;letter-spacing:.3em;color:var(--muted);}
/* ⚠️ ここに max-width:21em を掛けてはいけない。21em＝336px しかないのに数字は最大220px（横幅約780px）で、
   「13,000」が3行に折り返して下の要素に重なっていた。幅の制限は説明文（__l の max-width:20em）だけで足りる。 */
.c-figures__st{position:absolute;}
/* 特大数字は絶対に折り返させない */
.c-figures__v{font-family:var(--mono);font-weight:700;line-height:.86;letter-spacing:-.02em;display:flex;align-items:flex-start;
  white-space:nowrap;}
.c-figures__v small{font-size:.26em;color:var(--accent-text);font-weight:500;margin:.5em 0 0 .14em;}
.c-figures__l{font-size:15.5px;color:var(--muted);margin-top:14px;max-width:20em;line-height:1.8;}
.c-figures__l b{color:var(--ink);font-weight:700;}
.c-figures__st--1{left:0;top:0;}            .c-figures__st--1 .c-figures__v{font-size:clamp(96px,17vw,220px);color:var(--accent-text);}
/* right:0 だと右端の縦書きタグ（FIGURES / 2026.08）と「以上」がぶつかる。タグ幅ぶん内側に寄せる */
.c-figures__st--2{right:34px;top:130px;}    .c-figures__st--2 .c-figures__v{font-size:clamp(66px,10vw,132px);justify-content:flex-end;}
.c-figures__st--2 .c-figures__l{margin-left:auto;text-align:right;}
.c-figures__st--3{left:12%;top:444px;}      .c-figures__st--3 .c-figures__v{font-size:clamp(72px,12vw,160px);}
@media(max-width:900px){
  .c-figures__field{min-height:0;display:grid;gap:44px;margin-top:26px;}
  .c-figures__st{position:static!important;max-width:100%;}
  .c-figures__st--2 .c-figures__v{justify-content:flex-start;}
  .c-figures__st--2 .c-figures__l{margin-left:0;text-align:left;}
  .c-figures__rule,.c-figures__tag{display:none;}
  .c-figures__st--1 .c-figures__v{font-size:88px;}
  .c-figures__st--2 .c-figures__v{font-size:70px;}
  .c-figures__st--3 .c-figures__v{font-size:76px;}
}

/* ---------------------------------------------------------
   全幅の声（sec-voice-10 を再実装：左パネル×右の全高写真）
   --------------------------------------------------------- */
.c-vfull{display:grid;grid-template-columns:1fr 1.05fr;min-height:86vh;}
.c-vfull__panel{background:var(--surface);padding:9vh 5vw;display:flex;flex-direction:column;justify-content:center;
  position:relative;overflow:hidden;}
.c-vfull__panel::after{content:"";position:absolute;left:-40px;bottom:-40px;width:210px;height:210px;opacity:.45;
  background-image:radial-gradient(rgba(34,165,150,.55) 1.6px,transparent 1.6px);background-size:18px 18px;}
.c-vfull__h2{font-size:clamp(27px,3.4vw,44px);margin:18px 0 34px;}
.c-vfull__list{display:grid;gap:24px;position:relative;z-index:2;}
.c-vfull__item{border-top:1px solid var(--line-soft);padding-top:18px;}
.c-vfull__q{font-size:clamp(17px,1.9vw,21px);font-weight:700;line-height:1.7;margin:0 0 10px;}
.c-vfull__q::before{content:"“";color:var(--accent-text);}
.c-vfull__who{font-family:var(--mono);font-size:13.5px;color:var(--muted);letter-spacing:.04em;}
.c-vfull__fig{position:relative;background:var(--surface-2);overflow:hidden;}
.c-vfull__fig img{width:100%;height:100%;object-fit:cover;}
.c-vfull__tag{position:absolute;left:24px;bottom:24px;background:var(--accent);color:#0B0D0F;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;padding:7px 14px;}
@media(max-width:860px){
  .c-vfull{grid-template-columns:1fr;}
  .c-vfull__panel{padding:64px 24px;}
  .c-vfull__fig{min-height:50vh;}
}

/* ---------------------------------------------------------
   沿革タイムライン（sec-about-01 を再実装）
   --------------------------------------------------------- */
/* 出現演出でカードを右に26pxずらして始めるため、発火前のカードが画面外へ出て
   SPで横スクロールが生まれる。clip で止める（hidden と違い sticky を壊さない）。 */
.c-history{background:var(--bg);overflow-x:clip;}
.c-history__wrap{width:min(960px,calc(100% - 48px));margin-inline:auto;}
.c-history__head{margin-bottom:54px;}
.c-history__tl{position:relative;}
.c-history__spine{position:absolute;left:116px;top:6px;bottom:40px;width:1px;background:var(--line-soft);overflow:hidden;}
.c-history__spine i{position:absolute;inset:0;background:var(--accent);transform-origin:top;}
.c-history__ev{position:relative;display:grid;grid-template-columns:116px 1fr;gap:40px;padding-bottom:42px;}
.c-history__year{font-family:var(--mono);font-weight:700;font-size:clamp(24px,2.9vw,34px);color:var(--accent-text);
  line-height:1;text-align:right;padding-right:32px;}
/* ⚠️ 年の下の英字ラベルは 84px（116px の列 − padding 32px）しか幅がない。
      INDEPENDENT のような長い語が「INDEPENDEN／T」と割れるので、詰めて1行に収める。 */
.c-history__year span{display:block;font-size:9.5px;color:var(--muted);letter-spacing:.12em;margin-top:8px;
  white-space:nowrap;}
.c-history__card{border:1px solid var(--line-soft);background:var(--surface);padding:22px 26px;}
.c-history__card h3{font-size:19px;margin:0 0 8px;}
.c-history__card p{font-size:15.5px;color:var(--muted);}
.c-history__dot{position:absolute;left:110px;top:6px;width:13px;height:13px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 5px var(--bg);z-index:2;}
.c-history__ev--now .c-history__card{border-color:var(--accent);}
@media(max-width:680px){
  .c-history__spine{left:6px;}
  .c-history__ev{grid-template-columns:1fr;gap:10px;padding-left:34px;}
  .c-history__year{text-align:left;padding-right:0;}
  .c-history__dot{left:0;top:4px;}
}

/* ---------------------------------------------------------
   会社概要インデックス（sec-about-02 を再実装：左sticky＋罫線行）
   --------------------------------------------------------- */
.c-profile{background:var(--surface-2);}
.c-profile__inner{width:min(1140px,calc(100% - 48px));margin-inline:auto;display:grid;
  grid-template-columns:300px 1fr;gap:60px;}
.c-profile__left{position:sticky;top:96px;align-self:start;}
.c-profile__ph{margin-top:32px;overflow:hidden;}
.c-profile__ph img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.c-profile__cap{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--muted);margin-top:10px;}
.c-profile__spec{margin:0;border-top:1px solid var(--ink);}
.c-profile__row{display:grid;grid-template-columns:160px 1fr;gap:18px;padding:20px 4px;
  border-bottom:1px solid var(--line-soft);position:relative;}
.c-profile__row dt{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--accent-text);padding-top:5px;}
.c-profile__row dd{margin:0;font-size:16px;}
.c-profile__row dd small{display:block;color:var(--muted);font-size:13.5px;margin-top:3px;}
@media(max-width:860px){
  .c-profile__inner{grid-template-columns:1fr;gap:38px;}
  .c-profile__left{position:static;}
  .c-profile__row{grid-template-columns:112px 1fr;gap:14px;}
  /* 見出し語の最長は REPRESENTATIVE（14文字）。112px の列に入らず折り返すため、
     SPだけ字間と字送りを詰める。列幅を広げると値の欄が狭くなるのでこちらで吸収する。 */
  .c-profile__row dt{font-size:10.5px;letter-spacing:.1em;}
}

/* ---------------------------------------------------------
   お問い合わせ（sec-cta-07 を再実装：特大Contact×方眼カード＋フォーム）
   --------------------------------------------------------- */
.c-contact{background:var(--bg);}
.c-contact__lead{display:grid;grid-template-columns:.9fr 1.1fr;gap:46px;align-items:center;margin-bottom:64px;}
.c-contact__sm{font-weight:700;font-size:15px;margin-bottom:6px;}
/* 左カラム（約483px）に「Contact.」が1行で収まるサイズに抑え、語中改行も止める */
.c-contact__huge{font-family:var(--mono);font-weight:700;font-size:clamp(56px,8vw,94px);line-height:.9;
  letter-spacing:-.02em;color:var(--ink);white-space:nowrap;}
.c-contact__huge em{font-style:normal;color:var(--accent-text);}
/* カードは電話のみ（メールはフォームと役割が重なるため置いていない） */
.c-contact__cards{display:grid;grid-template-columns:1fr;gap:14px;}
.c-contact__cd{position:relative;background:var(--surface);color:var(--ink);border:1px solid var(--line-soft);
  padding:24px 22px;text-decoration:none;overflow:hidden;min-height:132px;display:flex;flex-direction:column;
  justify-content:space-between;transition:transform .3s,border-color .3s;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:18px 18px;}
.c-contact__cd:hover{transform:translateY(-5px);border-color:var(--accent);}
.c-contact__cd .ja{font-weight:700;font-size:17px;}
.c-contact__cd .num{font-family:var(--mono);font-size:21px;font-weight:700;letter-spacing:0;
  margin-top:6px;display:block;overflow-wrap:anywhere;}
.c-contact__cd .en{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--muted);margin-top:6px;}
.c-contact__cd .ar{align-self:flex-end;width:34px;height:34px;background:var(--accent);color:#0B0D0F;
  display:flex;align-items:center;justify-content:center;font-size:15px;}
@media(max-width:820px){
  .c-contact__lead{grid-template-columns:1fr;gap:28px;}
  .c-contact__cards{grid-template-columns:1fr;}
  .c-contact__cd{min-height:0;}
}

/* フォーム枠（静的プレビュー兼用。WP公開では Contact Form 7 の出力に同じ意匠を当てる）
   → 移行手順とCF7タグは _tools/cf7-contact-form.md */
.c-form{border:1px solid var(--line-soft);background:var(--surface);padding:clamp(24px,4vw,44px);}
.c-form dl{display:grid;grid-template-columns:220px 1fr;gap:0;margin:0;border-top:1px solid var(--line-soft);}
.c-form dt{padding:22px 16px 22px 0;font-size:15.5px;font-weight:700;border-bottom:1px solid var(--line-soft);}
.c-form dd{margin:0;padding:18px 0;border-bottom:1px solid var(--line-soft);}
.c-form__req,.c-form__any{font-family:var(--mono);font-size:10px;letter-spacing:.12em;padding:3px 8px;margin-left:10px;vertical-align:2px;}
.c-form__req{background:var(--accent);color:#0B0D0F;}
.c-form__any{border:1px solid var(--line);color:var(--muted);}
.c-form input[type=text],.c-form input[type=email],.c-form input[type=tel],.c-form select,.c-form textarea{
  width:100%;background:var(--surface-2);border:1px solid var(--line);color:var(--ink);
  font-family:inherit;font-size:16px;padding:13px 14px;}
.c-form textarea{min-height:160px;resize:vertical;}
.c-form input:focus,.c-form select:focus,.c-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px;}
/* チェックボックスをブラウザ既定の青からサイトのアクセントに寄せる */
.c-form input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;flex:none;}
.c-form__choices{display:flex;flex-wrap:wrap;gap:10px 22px;}
.c-form__choices label{display:inline-flex;align-items:center;gap:8px;font-size:15.5px;color:var(--muted);}
.c-form__agree{margin-top:26px;font-size:15.5px;color:var(--muted);display:flex;align-items:center;gap:10px;}
.c-form__agree a{color:var(--accent-text);}
.c-form__submit{margin-top:30px;text-align:center;}
.c-form__submit .c-btn{min-width:280px;}
.c-form fieldset{border:0;margin:0;padding:0;}
.c-form fieldset[disabled]{opacity:.66;}
/* 必須が埋まるまでの案内。埋まったら JS が .is-ready を付けて隠す */
.c-form__hint{margin-top:14px;text-align:center;font-size:13px;color:var(--muted);}
.c-form .is-ready .c-form__hint{visibility:hidden;}
/* 未入力・書式ちがいの欄は、一度触れたあとだけ色で示す（初期表示では出さない） */
.c-form .is-touched:invalid{border-color:#D8654F;}
/* 静的プレビューで送信を押したときの案内 */
.c-form__sent{margin-top:22px;border-left:2px solid var(--accent);background:rgba(34,165,150,.08);
  padding:16px 20px;font-size:15px;line-height:1.9;color:var(--ink);}
.c-form__sent b{display:block;color:var(--accent-text);}
.c-form__sent a{color:var(--accent-text);font-weight:700;}
.c-form__sent[hidden]{display:none;}
@media(max-width:768px){
  .c-form dl{grid-template-columns:1fr;}
  .c-form dt{padding:18px 0 6px;border-bottom:0;}
  .c-form dd{padding:0 0 18px;}
  .c-form__submit .c-btn{min-width:0;width:100%;}
}

/* ---------------------------------------------------------
   規約・ポリシー本文（読ませるための素の組版）
   --------------------------------------------------------- */
.c-legal{background:var(--bg);}
.c-legal__wrap{width:min(820px,calc(100% - 48px));margin-inline:auto;}
.c-legal__intro{color:var(--muted);font-size:16px;padding-bottom:34px;border-bottom:1px solid var(--line-soft);}
.c-legal__block{padding:36px 0;border-bottom:1px solid var(--line-soft);}
.c-legal__block h2{font-size:clamp(19px,2.3vw,23px);display:flex;align-items:baseline;gap:16px;}
.c-legal__block h2 span{font-family:var(--mono);font-size:12px;color:var(--accent-text);letter-spacing:.16em;flex:none;}
.c-legal__block p{color:var(--muted);font-size:16px;margin-top:14px;}
.c-legal__block ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:9px;}
.c-legal__block li{position:relative;padding-left:22px;color:var(--muted);font-size:16px;}
.c-legal__block li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1px;background:var(--accent);}
.c-legal__date{margin-top:34px;font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;color:var(--muted);}

/* ---------------------------------------------------------
   ブログ（templates/blog-shared.css をネクシスの設計システムへ移植）
   クラス契約（.post-hero/.post-wrap/.post-side/.widget/.p-card）はそのまま。
   色・書体だけダーク＋ゴシックに置き換えている（明朝は使わない方針のため）。
   --------------------------------------------------------- */
.post-hero{position:relative;overflow:hidden;color:var(--ink);padding:170px 0 66px;background:var(--surface-2);}
.post-hero__bg{position:absolute;inset:0;z-index:0;}
.post-hero__bg img{width:100%;height:100%;object-fit:cover;display:block;}
.post-hero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(17,20,23,.82) 0%,rgba(17,20,23,.95) 100%);}
.post-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent);z-index:2;}
.post-hero .wrap{position:relative;z-index:1;width:min(860px,calc(100% - 48px));margin-inline:auto;}
.post-hero__meta{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
.post-hero__date{font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--muted);}
.post-hero__cat{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;padding:4px 12px;
  color:#0B0D0F;background:var(--accent);}
.post-hero h1{font-size:clamp(24px,3.6vw,38px);line-height:1.5;margin:0;}
.post-hero .crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--muted);margin:24px 0 0;}
.post-hero .crumb a{color:var(--muted);text-decoration:none;}
.post-wrap{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:52px;max-width:1140px;
  margin:0 auto;padding:56px 24px 96px;align-items:start;}
.post-main{min-width:0;}
.post-figure{margin:0 0 36px;}
.post-figure img{width:100%;display:block;}
.post-body p{font-size:16.5px;line-height:2.05;color:var(--muted);margin:0 0 1.7em;}
.post-body h2{font-size:clamp(20px,2.6vw,26px);line-height:1.6;margin:2.4em 0 .9em;padding-left:16px;
  border-left:2px solid var(--accent);}
.post-body h3{font-size:clamp(17px,2vw,20px);margin:2em 0 .7em;}
.post-body a{color:var(--accent-text);font-weight:700;}
.post-body .post-lead{font-size:17px;color:var(--ink);line-height:2;margin-bottom:1.9em;}
.post-foot{margin:44px 0 0;}
.post-foot__bar{border-top:1px solid var(--line-soft);padding-top:28px;display:flex;gap:16px;align-items:center;
  justify-content:space-between;flex-wrap:wrap;}
.post-foot__back{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;font-size:15px;}
.post-foot__back:hover{color:var(--accent-text);}
.post-foot__cta{display:inline-block;background:var(--accent-btn);color:#fff;font-weight:700;font-size:14.5px;
  padding:13px 28px;text-decoration:none;transition:transform .2s;}
.post-foot__cta:hover{transform:translateY(-2px);}
.post-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:26px;}
.widget{background:var(--surface);border:1px solid var(--line-soft);padding:22px;}
.widget__ttl{font-size:16px;font-weight:700;margin:0 0 16px;padding-left:12px;border-left:2px solid var(--accent);}
.w-search{display:flex;gap:8px;}
.w-search input{flex:1;min-width:0;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);
  padding:11px 12px;font-size:15px;font-family:inherit;}
.w-search button{border:0;background:var(--accent-btn);color:#fff;padding:0 16px;font-weight:700;cursor:pointer;}
.w-recent{display:flex;flex-direction:column;gap:14px;}
.w-recent a{display:grid;grid-template-columns:70px 1fr;gap:12px;align-items:center;text-decoration:none;color:inherit;}
.w-recent img{width:70px;height:48px;object-fit:cover;display:block;}
.w-recent div{min-width:0;}
.w-recent b{font-weight:700;font-size:14px;line-height:1.5;display:block;}
.w-recent span{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.06em;}
.w-recent a:hover b{color:var(--accent-text);}
.w-list{list-style:none;margin:0;padding:0;}
.w-list li{border-bottom:1px dashed var(--line-soft);}
.w-list li:last-child{border-bottom:0;}
.w-list a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 2px;
  text-decoration:none;font-size:14.5px;font-weight:500;}
.w-list a:hover{color:var(--accent-text);}
.w-list .n{font-family:var(--mono);font-size:11px;color:var(--muted);background:var(--surface-2);padding:2px 9px;}
.w-cta{background:var(--accent-deep);border-color:var(--accent);}
.w-cta .widget__ttl{color:#fff;border-color:#fff;}
.w-cta p{font-size:14px;line-height:1.85;color:rgba(255,255,255,.9);margin:0 0 16px;}
.w-cta a{display:inline-block;background:#fff;color:#0F4B44;font-weight:700;font-size:14.5px;
  padding:12px 26px;text-decoration:none;}
.p-news{max-width:940px;}
.p-newsgrid{display:grid;gap:26px;}
.p-card{display:grid;grid-template-columns:320px 1fr;text-decoration:none;color:inherit;
  border:1px solid var(--line-soft);overflow:hidden;background:var(--surface);transition:transform .25s,border-color .25s;}
.p-card:hover{transform:translateY(-3px);border-color:var(--accent);}
.p-card__ph{overflow:hidden;background:var(--surface-2);}
.p-card__ph img{width:100%;height:100%;min-height:188px;object-fit:cover;display:block;transition:transform .5s;}
.p-card:hover .p-card__ph img{transform:scale(1.05);}
.p-card__bd{padding:26px 30px;display:flex;flex-direction:column;gap:10px;}
.p-card__meta{display:flex;align-items:center;gap:12px;}
.p-card__date{font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--muted);}
.p-card__cat{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;padding:4px 12px;
  color:#0B0D0F;background:var(--accent);}
.p-card__ttl{font-size:clamp(18px,2.3vw,22px);font-weight:700;line-height:1.55;margin:0;}
.p-card__ex{font-size:15px;line-height:1.9;color:var(--muted);margin:0;}
.p-card__more{margin-top:4px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--accent-text);font-weight:700;}
.p-newsnote{font-size:13.5px;color:var(--muted);margin:30px 0 0;}
@media(max-width:900px){
  .post-wrap{grid-template-columns:1fr;gap:40px;padding:44px 22px 72px;}
  .post-side{position:static;}
}
@media(max-width:680px){
  .post-hero{padding:130px 0 48px;}
  .p-card{grid-template-columns:1fr;}
  .p-card__ph img{min-height:0;aspect-ratio:1200/630;}
  .p-card__bd{padding:22px;}
}

/* --- JS-off フォールバック互換：既存の .no-j 指定は付与されないため html:not(.j) にも同じ静止状態を与える --- */
html:not(.j) .c-lead__world--light{clip-path:none;-webkit-clip-path:none;}
html:not(.j) .c-lead__world--dark{display:none;}
html:not(.j) .c-stance__divide{transform:translateX(-50%) scaleY(1);}
html:not(.j) .c-numbers__gline i{width:76%;}
html:not(.j) .c-process__spine i{transform:scaleY(1);}
html:not(.j) .c-faq__a{grid-template-rows:1fr;}
html:not(.j) .c-faq__tx{color:var(--ink);}

/* ---------------------------------------------------------
   build_blog_pages.py が出力する DOM の受け皿
   （archive-spec / single-spec の契約クラス。手で書き換えず、ここで受ける）
   --------------------------------------------------------- */
.page-sec{padding:88px 0 104px;background:var(--bg);}
.page-sec > .wrap{width:min(var(--maxw),calc(100% - 48px));margin-inline:auto;}
.page-hero .wrap > h1{font-size:clamp(30px,4.6vw,50px);margin-top:16px;}
.page-hero .wrap > p{color:var(--muted);font-size:16.5px;margin-top:18px;max-width:34em;}
.page-hero .wrap > .crumb{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;
  color:var(--muted);margin-top:26px;}
.page-hero .wrap > .crumb a{color:var(--muted);text-decoration:none;}
.page-hero .wrap > .crumb a:hover{color:var(--accent-text);}
.sec-eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--accent-text);display:inline-flex;align-items:center;gap:12px;}
.sec-eyebrow::before{content:"";width:34px;height:1px;background:var(--accent);}
.post-hero .crumb{margin-top:24px;}
@media(max-width:768px){ .page-sec{padding:56px 0 72px;} }

/* ---------------------------------------------------------
   関連相談ブロック（service のみ）
   サービスとして立てず、本編の後ろに罫線で添える扱い
   --------------------------------------------------------- */
.c-annex{background:var(--surface-2);}
.c-annex__box{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;
  border-left:2px solid var(--accent);padding:36px 38px 36px 40px;background:rgba(255,255,255,.02);}
.c-annex__head .c-h2{font-size:clamp(23px,2.7vw,31px);}
.c-annex__body p{color:var(--muted);font-size:16px;}
.c-annex__body p + p{margin-top:20px;}
.c-annex__body b{color:var(--ink);font-weight:700;}
.c-annex__note{margin-top:24px;padding-top:18px;border-top:1px solid var(--line-soft);font-size:14.5px;}

/* Web制作の「制作イメージ」。⚠️ 実在企業のサイトではないので、
   見出しは「実績」にせず、下に必ず注記を出すこと。 */
.c-annex__shots{margin-top:40px;}
.c-annex__shead{display:flex;align-items:baseline;gap:16px;}
.c-annex__shead h3{font-size:19px;font-weight:700;}
.c-annex__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:18px;}
.c-annex__shot{margin:0;}
.c-annex__shot picture{display:block;border:1px solid var(--line-soft);border-radius:8px;
  overflow:hidden;line-height:0;}
.c-annex__shot img{display:block;width:100%;height:auto;}
.c-annex__shot figcaption{margin-top:11px;font-size:12.5px;color:var(--muted);letter-spacing:.04em;}
.c-annex__disc{margin-top:22px;font-size:13px;color:var(--muted);}
@media(max-width:900px){
  .c-annex__box{grid-template-columns:1fr;gap:24px;padding:28px 22px;}
  .c-annex__grid{grid-template-columns:1fr;gap:22px;}
}

/* =========================================================
   セクションのトーン（2026-08-10 配色見直し）
   全部を明るくせず、暗部を残して相対差をつくる。
   ⚠️ id セレクタなのでクラス側のルールより常に強い。
      増減させるときは「明るい面が3〜4セクション続かないか」を必ず確認する。
   ========================================================= */

/* 暗部アンカー：締める場所は元の暗さを残す。
   #fv=ファーストビュー ／ #voice=実績動画（赤・黄のサムネが主役なので明るくしない）
   #works=works.html の実績動画（index の #voice と同じ役割。ページごとに id の意味が違う）
   #cta=終盤CTA ／ .page-hero=下層ページの見出し帯（FVと同じ役割） */
#fv,
#voice,
#works,
#cta,
.page-hero {
    --bg: #111417;
    --surface: #1C2124;
    --surface-2: #161A1D;
    --line: rgba(255, 255, 255, .14);
    --line-soft: rgba(255, 255, 255, .08);
}

/* 明るいダーク：じっくり読ませる場所。
   #stance=再生数を目標にしない理由 ／ #pricing=料金 ／ #faq=よくある質問
   ⚠️ この面では差し色を #33C1B0 に上げる。#22a596 のままだと 3.99 で AA を割る */
#stance,
#pricing,
#faq {
    --bg: #2E373B;
    --surface: #394348;
    --surface-2: #2E373B;
    --line: rgba(255, 255, 255, .22);
    --line-soft: rgba(255, 255, 255, .14);
    --accent: #33C1B0;
    --accent-dim: rgba(51, 193, 176, .16);
}

/* 切り替わる位置の余白を広げる＝意図した段差に見せる。
   中途半端に見える原因は色差の小ささではなく、境界の曖昧さなので。 */
#stance,
#pricing,
#faq {
    padding-top: 136px;
    padding-bottom: 136px;
}

@media (max-width: 768px) {

    #stance,
    #pricing,
    #faq {
        padding-top: 88px;
        padding-bottom: 88px;
    }
}

/* =========================================================
   ショート動画と、実績の画像（2026-08-10 ご要望）
   index.html はインライン <style> に同じ指定を持つ。片方だけ直すとズレるので注意。
   ========================================================= */

/* --- ショート動画（縦型。押すとYouTubeが開く。他の実績動画と同じ扱い） --- */
.c-voice__short{margin-top:44px;padding-top:36px;border-top:1px solid var(--line-soft);}
/* 縦型3本を横に並べる。1本あたり270px を保ちたいので、行の幅は 270×3＋隙間2本 で止める */
.c-voice__shortrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;
  margin-top:18px;max-width:846px;}
.c-voice__shortcard{position:relative;display:block;
  border:1px solid var(--line-soft);overflow:hidden;text-decoration:none;color:var(--ink);}
/* ⚠️ height:auto が無いと img の height 属性が使われて aspect-ratio が無効になる */
.c-voice__shortcard img{display:block;width:100%;height:auto;aspect-ratio:9/16;
  object-fit:cover;transition:transform .4s;}
.c-voice__shortcap{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;font-size:13.5px;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.72));}
.c-voice__shortnote{margin-top:18px;max-width:26em;color:var(--muted);font-size:15.5px;}

/* --- 特大数字の脇に置く実績の画像（works.html の #figures） ---
   ブロークングリッドの右側が空くので、そこに置いて釣り合いを取る。
   ⚠️ 900px以下では .c-figures__st が position:static になり field が grid になるため、
      この画像も static に戻す。リセットは必ずこのブロックの中に書く
      （既存の @media(max-width:900px) はこの追記より前にあるので、そこに書くと負ける）。 */
.c-figures__pic{position:absolute;right:34px;top:432px;margin:0;line-height:0;}
/* 素材は 434×880。340px 表示で 2.5倍 の密度が残る（2026-08-11 に拡大） */
.c-figures__pic img{display:block;width:auto;height:340px;}

@media(hover:hover){
  .c-voice__shortcard:hover img{transform:scale(1.04);}
}

@media(max-width:860px){
  /* SP で3列のままだと1枚100px弱になり、焼いてある文字が読めない。2列に落とす */
  .c-voice__shortrow{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
}

@media(max-width:900px){
  .c-figures__pic{position:static;margin-top:10px;}
  .c-figures__pic img{height:280px;}
}

/* ==========================================================================
   先方修正 2026-10（採用特化へのリブランディング）
   ========================================================================== */
/* 実績動画：ショート2本 → 長尺2本 の順。2本の行は 270×2＋隙間18px で止める */
.c-voice__shortrow--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:558px;}
.c-voice__long{margin-top:44px;padding-top:36px;border-top:1px solid var(--line-soft);}
/* 2本なら主役を作る非対称組みにせず、同じ大きさで並べる */
.c-voice__worksgrid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.c-voice__worksgrid--2 .c-voice__work:first-child{grid-row:auto;}
@media(max-width:880px){
  .c-voice__worksgrid--2{grid-template-columns:1fr;}
}

/* ==========================================================================
   2026-10 明るい配色（先方修正：黒 → 明るい配色。参考 yaaha.co.jp）
   地①   #fdf8d8 クリーム … --bg
   地②   #ffffff 白       … --surface / --surface-2（セクションは --bg と --surface-2 を交互に使う作り）
   地③   #f9d843 黄       … --yellow（終盤CTA・飾り）
   文字① #313131         … --ink
   文字② #29bea9 ティール … --accent（線・面・大きな飾り）
   ⚠️ #29bea9 はクリーム地で 2.2:1 しか出ないので、小さい文字には使わない。
      文字のティールは --accent-text（#127A6C：クリーム地 4.9 ／ 白地 5.2）に分けた。
   これより上の配色ルール（暗い配色）は、このブロックで上書きしている。
   暗い配色に戻すときは、このブロックを外して header.php のロゴを mark-w に戻す。
   ========================================================================== */
:root {
    --bg: #fdf8d8;
    --surface: #ffffff;
    --surface-2: #ffffff;
    --accent: #29bea9;
    --accent-text: #127A6C;
    --accent-dim: rgba(41, 190, 169, .14);
    --accent-deep: #127A6C;
    /* おすすめプランの面。白文字 5.2 */
    --accent-btn: #127A6C;
    /* ボタン。白文字 5.2 */
    --ink: #313131;
    --muted: #5b5a52;
    /* 副文。クリーム地 6.5 ／ 白地 6.9 */
    --line: rgba(49, 49, 49, .18);
    --line-soft: rgba(49, 49, 49, .10);
    --yellow: #f9d843;
}

/* セクションのトーン：暗部アンカー・明るいダークの上書きを、明るい配色の値で打ち消す */
#fv,
#voice,
#works,
#stance,
#pricing,
#faq,
.page-hero {
    --bg: #fdf8d8;
    --surface: #ffffff;
    --surface-2: #ffffff;
    --line: rgba(49, 49, 49, .18);
    --line-soft: rgba(49, 49, 49, .10);
    --accent: #29bea9;
    --accent-dim: rgba(41, 190, 169, .14);
}

/* 終盤CTAは黄色の面にする。黄色の上ではティール文字と副文をさらに濃くする（5.4 ／ 6.8） */
#cta {
    --bg: #f9d843;
    --surface: #ffffff;
    --surface-2: #ffffff;
    --line: rgba(49, 49, 49, .22);
    --line-soft: rgba(49, 49, 49, .12);
    --accent-text: #0d5f54;
    --muted: #4a4630;
}

/* --- ヘッダー・ドロワー --- */
.c-hd.is-solid {
    background: rgba(253, 248, 216, .94);
}

.c-drawer {
    background: rgba(253, 248, 216, .98);
}

/* --- ボタン --- */
.c-btn--ghost {
    border-color: rgba(49, 49, 49, .4);
}

.c-btn--ghost:hover {
    background: rgba(49, 49, 49, .06);
}

.c-cta__tel a.is-static:hover {
    color: var(--ink);
}

/* --- 方針（stance）：「しないこと」側の面と × 印 --- */
.c-stance__col--no {
    background: rgba(49, 49, 49, .04);
}

.c-stance__col--no li::before {
    color: #C2564D;
}

/* --- サービス：背景写真と暗い膜を外す --- */
.c-service__bgimg,
.c-service__veil {
    display: none;
}

.c-service__triage {
    background: var(--surface);
}

.c-service__cell--issue {
    background: rgba(49, 49, 49, .03);
}

/* --- 数字 --- */
.c-numbers__rnum {
    color: var(--ink);
}

.c-numbers__radd {
    background: var(--bg);
}

/* --- 写真・サムネイルの上に乗る文字は、暗いグラデーションの上なので白のまま --- */
.c-voice__work span,
.c-voice__shortcap,
.c-message__work figcaption {
    color: #fff;
}

/* --- 料金 --- */
.c-pricing__plan {
    background: var(--surface);
}

.c-pricing__plan p.c-pricing__price {
    color: var(--ink);
}

.c-pricing__btn {
    border-color: rgba(49, 49, 49, .42);
}

.c-pricing__btn:hover {
    background: rgba(49, 49, 49, .06);
}

/* 上の .c-pricing__plan と同じ詳細度なので、おすすめプランの面はここで塗り直す（白文字 5.2） */
.c-pricing__plan--rec {
    background: var(--accent-deep);
}

/* 同じく、上で濃くした金額をおすすめプランだけ白に戻す */
.c-pricing__plan--rec p.c-pricing__price {
    color: #fff;
}

.c-pricing__ribbon {
    background: var(--yellow);
    color: var(--ink);
}

/* --- よくある質問 --- */
.c-faq__tx {
    color: var(--muted);
}

/* --- 会社情報：名刺の表面は白いロゴを使っているので、カードだけ濃いグレーにする --- */
.c-company__face--front {
    background: #313131;
    color: #fff;
    --muted: #cfcfcf;
    --accent-text: #5fd6c4;
}

/* --- 終盤CTA：背景写真と暗い膜を外し、黄色の面に文字を直接置く --- */
.c-cta__bg,
.c-cta__overlay {
    display: none;
}

/* もとは背景写真で塗っていたので、面の色の指定が無かった */
.c-cta {
    background: var(--bg);
}

.c-cta h2,
.c-cta__lead,
.c-cta__tel,
.c-cta__sub {
    text-shadow: none;
}

.c-cta__lead,
.c-cta__tel {
    color: var(--ink);
}

.c-cta__tel a {
    color: var(--ink);
    border-bottom-color: rgba(49, 49, 49, .4);
}

.c-cta__tel span,
.c-cta__sub {
    color: var(--muted);
}

.c-cta__glow {
    opacity: .35;
}

/* --- フッター：濃いグレーで締める。白いロゴ（mark-w）をそのまま使う --- */
.c-ft {
    --ink: #ffffff;
    --muted: #cfcfcf;
    --line: rgba(255, 255, 255, .2);
    --line-soft: rgba(255, 255, 255, .12);
    --accent-text: #5fd6c4;
    background: #313131;
}

.c-ft__sns a:hover {
    color: #313131;
}

/* --- 下層ページの見出し帯：写真の帯と暗い影だまりを外し、クリーム地に黄色の円を1つ置く --- */
.page-hero {
    background: var(--bg);
}

.page-hero__bg,
.page-hero .wrap::before {
    display: none;
}

/* 飾りなので疑似要素。見出しの右奥に大きな円を半分だけ見せる */
.page-hero::before {
    content: "";
    position: absolute;
    z-index: 0;
    right: -10vw;
    top: -18vw;
    width: 44vw;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--yellow);
}

@media (max-width: 768px) {

    /* 写真を見せるために空けていた下の余白を詰める */
    .page-hero {
        padding-bottom: 72px;
    }

    .page-hero::before {
        right: -38vw;
        top: -30vw;
        width: 86vw;
    }
}

/* --- お知らせ記事の見出し帯：アイキャッチ＋暗幕をやめ、下層ページの見出し帯（.page-hero）とそろえる ---
   暗幕の上に濃い文字が乗って読めなくなっていた（2026-10-04 宮地さん指摘）。アイキャッチは本文の先頭に出ている。 */
.post-hero {
    background: var(--bg);
}

.post-hero__bg {
    display: none;
}

/* 帯の下端の緑の線は、ほかの見出し帯に無いので外す */
.post-hero::after {
    content: none;
}

/* 飾りなので疑似要素。.page-hero と同じ黄色の円 */
.post-hero::before {
    content: "";
    position: absolute;
    z-index: 0;
    right: -10vw;
    top: -18vw;
    width: 44vw;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--yellow);
}

@media (max-width: 768px) {
    .post-hero::before {
        right: -38vw;
        top: -30vw;
        width: 86vw;
    }
}

/* --- お知らせ記事ページの構造見直し（2026-10-05）---
   見出し帯と本文の左端をそろえ、アイキャッチを控えめにし、本文の下に前後の記事を置く。 */

/* 見出し帯の幅を、本文＋サイドバー（.post-wrap 1140px − 左右の余白 24px×2）に合わせる */
.post-hero .wrap {
    width: min(1092px, calc(100% - 48px));
}

/* アイキャッチは横長に切り抜いて控えめに */
.post-figure img {
    aspect-ratio: 2 / 1;
    object-fit: cover;
    border-radius: 12px;
}

.post-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 28px;
}

.post-nav__item {
    display: block;
    padding: 18px 20px;
    border: 1px solid var(--line-soft);
    background: var(--surface);
    color: inherit;
    text-decoration: none;
    transition: border-color .2s;
}

/* 次の記事だけのときも右側に置く */
.post-nav__item--next {
    grid-column: 2;
    text-align: right;
}

.post-nav__label {
    display: block;
    margin-bottom: 6px;
    color: var(--accent-text);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
}

.post-nav__ttl {
    display: block;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.6;
}

@media (hover: hover) {
    .post-nav__item:hover {
        border-color: var(--accent);
    }
}

@media (max-width: 640px) {
    .post-nav {
        grid-template-columns: minmax(0, 1fr);
    }

    .post-nav__item--next {
        grid-column: auto;
    }
}

/* --- 実績ページ「お客様の声」の右の絵（2026-10-05 写真→イラスト）---
   枠が縦長で、横長のイラストは左右が切れる。手前で撮影しているスタッフが切れないよう、少し左に寄せる */
.c-vfull__img {
    object-position: 38% 50%;
}
