/* ============================================================
   きつね広告社 — design tokens
   ============================================================ */
:root{
  --base:#FBF9F7;
  --surface:#FFFFFF;
  --ink:#15202B;
  --ink-soft:#1E2833;
  --text:#1E2833;
  --muted:#5C6773;
  --line:#E4DFD8;
  --line-strong:#CFC8BE;
  --accent:#ED6D46;
  --accent-deep:#C2461F;
  --wrap:1120px;
  --wrap-wide:1360px;
  --sans:'Zen Kaku Gothic New',-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN',Meiryo,sans-serif;
  --mono:'Space Grotesk','Zen Kaku Gothic New',monospace;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--base); color:var(--text);
  font-family:var(--sans); font-size:16px; line-height:1.9;
  font-feature-settings:"palt" 1; overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
h1,h2,h3,h4,.lead,.btn,summary{ word-break:auto-phrase; text-wrap:balance; }
h1,h2,h3,h4,p,figure,ul,ol,dl,dd{ margin:0; }
ul,ol{ padding:0; list-style:none; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}


/* ---- full-bleed hero（.c-hero のエイリアス。スキル契約 .hero + width:100%） ---- */
.hero{ width: 100%; max-width: none; margin-inline: 0; }

/* ---- 768px 以下：1カラムへ畳む（design-rules 準拠の共通ブレイクポイント） ---- */
@media (max-width: 768px){
  .l-wrap, .l-wrap--wide, .wrap{ width: calc(100% - 36px); }
  .c-empathy__inner,
  .c-reasons__inner,
  .c-faq__inner,
  .c-news__inner,
  .c-message__inner,
  .c-works__head,
  .c-cta__grid,
  .l-footer__top{ grid-template-columns: 1fr; }
  .c-promise__row, .c-promise__legend{ grid-template-columns: 1fr; }
  .c-pricing__grid{ grid-template-columns: 1fr; }
  .c-works__sheet{ grid-template-columns: 1fr; }
  .c-voice__card{ grid-template-columns: 1fr; }
  .c-numbers__grid{ grid-template-columns: 1fr; }
  .c-numbers__pull{ grid-template-columns: 1fr; }
  .c-defs__row, .c-message__careerrow{ grid-template-columns: 1fr; }
  .c-hero{ min-height: 620px; }
  .c-hero__copy{ width: calc(100% - 48px); }
}

/* 罫線ラベル（eyebrow→h2 の単調な繰り返しを崩す） */
.c-voice__ruleline{ display:flex; align-items:center; gap:14px; margin-top:20px;
  font-family:var(--mono); font-size:11px; letter-spacing:.28em; color:var(--muted); }
.c-voice__ruleline i{ flex:1 1 auto; height:1px; background:var(--line-strong); }


/* お知らせ（告知）とコラム（記事）は目的が違うので2分割 */
.c-news__split{ display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.2fr); gap:clamp(30px,4.4vw,68px); margin-top:clamp(34px,4vw,54px); align-items:start; }
.c-news__col{ min-width:0; }
.c-news__colhead{ padding-bottom:14px; border-bottom:2px solid var(--ink); margin-bottom:6px; }
.c-news__colttl{ font-size:clamp(17px,1.5vw,21px); font-weight:700; color:var(--ink); }
.c-news__colnote{ margin-top:6px; font-size:13px; line-height:1.85; color:var(--muted); }
.c-news__minilist{ }
.c-newsmini{ display:grid; grid-template-columns:auto auto minmax(0,1fr); gap:12px; align-items:baseline;
  padding:17px 0; border-bottom:1px dashed var(--line-strong); text-decoration:none; transition:opacity .3s ease; }
.c-newsmini:hover{ opacity:.62; }
@media (max-width:560px){ .c-newsmini{ grid-template-columns:auto auto; } .c-newsmini__ttl{ grid-column:1 / -1; } }
.c-newsmini__date{ font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; color:var(--muted); }
.c-newsmini__cat{ font-size:10.5px; letter-spacing:.06em; color:var(--accent-deep); border:1px solid var(--line-strong); padding:1px 8px; }
.c-newsmini__ttl{ font-size:14.5px; font-weight:700; line-height:1.7; color:var(--ink); }
@media (max-width:768px){ .c-news__split{ grid-template-columns:1fr; } }


/* アンカー移動時に固定ヘッダーへ見出しが潜り込まないように */
[id]{ scroll-margin-top: 104px; }
@media (max-width:960px){ [id]{ scroll-margin-top: 84px; } }


/* ---- お問い合わせ：ご用件メニュー（診断以外の相談も取りこぼさない） ---- */
.c-menu{ border-top:1px solid var(--ink); }
.c-menu__item{ position:relative; padding:clamp(26px,3.2vw,42px) 0; border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(16px,2.6vw,40px); }
@media (max-width:640px){ .c-menu__item{ grid-template-columns:1fr; gap:10px; } }
.c-menu__item.is-main{ background:var(--surface); padding-left:clamp(16px,2vw,26px); padding-right:clamp(16px,2vw,26px);
  border-top:3px solid var(--accent); margin-top:-1px; }
.c-menu__badge{ position:absolute; right:clamp(16px,2vw,26px); top:-1px; background:var(--accent); color:var(--ink);
  font-size:10.5px; font-weight:700; letter-spacing:.14em; padding:4px 10px; }
.c-menu__no{ font-family:var(--mono); font-size:clamp(26px,3vw,40px); font-weight:700; line-height:1; color:var(--accent); }
.c-menu__ttl{ font-size:clamp(18px,1.6vw,23px); font-weight:700; line-height:1.55; color:var(--ink); }
.c-menu__for{ margin-top:8px; font-size:13px; letter-spacing:.02em; color:var(--accent-deep); font-weight:700; }
.c-menu__txt{ margin-top:14px; font-size:14.5px; line-height:2.05; color:var(--muted); max-width:44em; }
.c-menu__txt strong{ color:var(--ink); font-weight:700; }
.c-menu__list{ margin-top:14px; }
.c-menu__list li{ position:relative; padding-left:16px; font-size:13.5px; line-height:1.95; color:var(--muted); }
.c-menu__list li::before{ content:""; position:absolute; left:0; top:.85em; width:7px; height:1px; background:var(--accent); }
/* 副導線（診断以外の人の逃げ道） */
.c-subcta{ margin-top:18px; font-size:13.5px; line-height:1.9; color:var(--muted); }
.c-subcta a{ color:var(--accent-deep); font-weight:700; text-underline-offset:3px; }
.c-cta .c-subcta{ color:rgba(237,234,229,.72); }
.c-cta .c-subcta a{ color:var(--accent); }

/* --- a11y --- */
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--accent); color:var(--ink); padding:10px 16px; z-index:999; font-weight:700; }
.skip-link:focus{ left:8px; top:8px; }
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--accent-deep); outline-offset:2px; border-radius:3px;
}
@media (hover:none){
  .l-header__cta,.l-header__nav a,.l-header__toggle,.c-btn,.c-drawer a{ min-height:44px; }
}

/* 狭い左カラムに置く h2 は一段小さく（語尾分断・助詞孤立の防止） */
.c-reasons__sticky .c-h2,
.c-faq__inner > div .c-h2,
.c-news__inner > div .c-h2{ font-size:clamp(23px,2.45vw,31px); }

/* --- shared atoms --- */
.l-wrap{ width:min(100% - 48px, var(--wrap)); margin-inline:auto; }
.l-wrap--wide{ width:min(100% - 48px, var(--wrap-wide)); margin-inline:auto; }
.c-eyebrow{
  font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.34em;
  color:var(--accent-deep); text-transform:uppercase; display:block; margin-bottom:18px;
}
.c-h2{ font-size:clamp(26px,3.1vw,40px); font-weight:700; line-height:1.5; letter-spacing:.02em; color:var(--ink); }
/* 狭い端末だけ、PC用の <br> を解除する。
   <br> を残したまま自動折り返しが重なると「を、」のような2文字の行ができ、
   text-wrap:balance が行を均等化してさらに短い行を生むため。
   600px以上は <br> のとおり綺麗に2行へ収まるので触らない。 */
@media(max-width:480px){
  .c-h2 br{ display:none; }
  .c-h2{ text-wrap:pretty; }
}
.c-h3{ font-size:clamp(20px,1.7vw,25px); font-weight:700; line-height:1.6; color:var(--ink); }
.c-lead{ font-size:clamp(15px,1.15vw,17px); line-height:2.05; color:var(--muted); max-width:34em; }
.c-mk{ color:var(--accent-deep); }
.c-rule{ height:1px; background:var(--line); border:0; }

.c-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.7em;
  padding:17px 34px; font-weight:700; font-size:15px; letter-spacing:.06em;
  text-decoration:none; border:1px solid transparent; border-radius:2px;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.c-btn--fill{ background:var(--accent); color:var(--ink); border-color:var(--accent); }
.c-btn--fill:hover{ background:var(--accent-deep); border-color:var(--accent-deep); color:#fff; }
.c-btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.c-btn--ghost:hover{ border-color:var(--ink); }
.c-btn--onink{ background:var(--accent); color:var(--ink); border-color:var(--accent); }
.c-btn--onink:hover{ background:#fff; border-color:#fff; color:var(--ink); }
.c-btn__arrow{ font-family:var(--mono); font-size:13px; }

/* 署名モチーフ：きつねの手描き線（4箇所で反復） */
.c-mark{
  position:absolute; z-index:0; pointer-events:none; user-select:none;
  mix-blend-mode:multiply; opacity:.055;
}

/* reveal（.j = JSあり。無JS時は最初から見える） */
.j .u-rv{ opacity:0; }

/* ============================================================
   HEADER — parts-catalog header-01（透明→スクロールで白／CTA付き）
   ============================================================ */
.l-header{
  position:fixed; inset:0 0 auto 0; z-index:60;
  transition:background .35s ease, box-shadow .35s ease, border-color .35s ease;
  border-bottom:1px solid transparent;
}
.l-header__inner{
  width:min(100% - 40px, var(--wrap-wide)); margin-inline:auto;
  display:flex; align-items:center; gap:28px; height:82px;
}
.l-header__logo{ display:flex; align-items:center; flex:0 0 auto; text-decoration:none; }
.l-header__logo img{ width:184px; height:auto; }
.l-header__nav{ margin-left:auto; display:flex; align-items:center; gap:26px; }
.l-header__nav a{
  font-size:14px; font-weight:500; letter-spacing:.04em; text-decoration:none; color:var(--ink);
  position:relative; padding:6px 0;
}
.l-header__nav a::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--accent-deep); transform:scaleX(0); transform-origin:right; transition:transform .3s ease;
}
.l-header__nav a:hover::after{ transform:scaleX(1); transform-origin:left; }
.l-header__cta{
  display:inline-flex; align-items:center; padding:13px 24px; background:var(--accent); color:var(--ink);
  font-size:14px; font-weight:700; letter-spacing:.04em; text-decoration:none; white-space:nowrap;
  border-radius:2px; transition:background .25s ease, color .25s ease;
}
.l-header__cta:hover{ background:var(--accent-deep); color:#fff; }
.l-header.is-stuck{ background:rgba(251,249,247,.94); backdrop-filter:blur(10px); border-bottom-color:var(--line); }
.l-header__toggle{ display:none; }

@media (max-width:960px){
  .l-header__inner{ height:68px; gap:14px; }
  .l-header__logo img{ width:150px; }
  .l-header__nav{ display:none; }
  .l-header__cta{ display:none; }
  .l-header__toggle{
    display:flex; flex-direction:column; justify-content:center; gap:6px; margin-left:auto;
    width:48px; height:48px; padding:0 10px; background:none; border:0; cursor:pointer;
  }
  .l-header__toggle span{ display:block; height:2px; background:var(--ink); transition:transform .3s ease, opacity .3s ease; }
  .l-header__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
  .l-header__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .l-header__toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
}

/* SP drawer — parts-catalog spmenu-01（右ドロワー） */
/* ⚠ Snow Monkey Blocks（Sass Basis）も同名の .c-drawer を持ち、`visibility:hidden` を当ててくる。
   あちらは aria-hidden 属性で開閉する仕様なので is-open では解除されない。
   特異度で勝つ .c-drawer.is-open 側で visibility を明示すること（消すとメニューが出なくなる）。 */
.c-drawer{
  position:fixed; inset:0 0 0 auto; width:min(86vw,360px); background:var(--surface); z-index:59;
  transform:translateX(100%); visibility:hidden;
  transition:transform .4s cubic-bezier(.22,1,.36,1), visibility 0s .4s;
  padding:104px 30px 40px; overflow-y:auto; box-shadow:-20px 0 60px -30px rgba(21,32,43,.4);
}
.c-drawer.is-open{
  transform:translateX(0); visibility:visible;
  transition:transform .4s cubic-bezier(.22,1,.36,1), visibility 0s 0s;
}
.c-drawer a{ display:block; padding:16px 0; border-bottom:1px solid var(--line); text-decoration:none; font-weight:500; }
.c-drawer .c-btn{ width:100%; margin-top:28px; }
.c-drawer__nap{ margin-top:30px; font-size:12.5px; line-height:2; color:var(--muted); }
.c-scrim{
  position:fixed; inset:0; background:rgba(21,32,43,.45); z-index:58; opacity:0; pointer-events:none;
  transition:opacity .35s ease;
}
.c-scrim.is-open{ opacity:1; pointer-events:auto; }
body.is-locked{ overflow:hidden; }

/* ============================================================
   HERO — fv-catalog fv-87 XRayLens（診断＝レントゲンの可視化）
   ============================================================ */
/* min-height を大きく取ると、背の低いウィンドウでSCROLLが画面外に出る */
/* display:block は Snow Monkey Blocks の .c-hero{display:flex} を打ち消すため。
   子はすべて position:absolute なので現状の見た目は変わらないが、
   将来ふつうの子要素を足したときに横並びにされるのを防ぐ。 */
.c-hero{ position:relative; display:block; width:100%; height:100vh; min-height:640px; overflow:hidden; background:var(--base); }
.c-hero__photo{
  position:absolute; inset:0; z-index:1;
  background:url('../img/fv.jpg') center/cover no-repeat;
}
.c-hero__photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(251,249,247,.94) 0%, rgba(251,249,247,.78) 34%, rgba(251,249,247,.12) 62%, transparent 78%);
}
/* 診断レイヤー（レンズの中だけ抜ける） */
.c-hero__xray{
  position:absolute; inset:0; z-index:3; opacity:0; transition:opacity .6s ease;
  background:
    linear-gradient(rgba(197,220,238,.14) 1px, transparent 1px) 0 0/100% 5.4vh,
    linear-gradient(90deg, rgba(197,220,238,.14) 1px, transparent 1px) 0 0/5.4vh 100%,
    linear-gradient(180deg,#1B2C3D 0%,#12202F 100%);
  -webkit-mask:radial-gradient(circle var(--r,0px) at var(--x,50%) var(--y,50%), #000 0 calc(var(--r,0px) - 34px), transparent var(--r,0px));
  mask:radial-gradient(circle var(--r,0px) at var(--x,50%) var(--y,50%), #000 0 calc(var(--r,0px) - 34px), transparent var(--r,0px));
}
.c-hero__xray.is-on{ opacity:1; }
.c-hero__xray svg{ position:absolute; inset:0; width:100%; height:100%; }
.c-hero__xray line,.c-hero__xray path,.c-hero__xray rect,.c-hero__xray circle{ stroke:#CFE3F5; fill:none; }
.c-hero__xray text{ fill:#CFE3F5; font-family:var(--mono); font-size:11px; letter-spacing:.16em; }
.c-hero__xray .is-alert{ stroke:var(--accent); }
.c-hero__xray text.is-alert{ fill:var(--accent); stroke:none; }
.c-hero__lens{
  position:absolute; z-index:4; width:0; height:0; border-radius:50%; pointer-events:none;
  border:2px solid rgba(207,227,245,.9);
  box-shadow:0 0 0 6px rgba(21,44,61,.22), inset 0 0 34px rgba(21,44,61,.3);
  transform:translate(-50%,-50%); opacity:0; transition:opacity .6s ease;
}
.c-hero__lens.is-on{ opacity:1; }
.c-hero__copy{
  /* 縦中央だと画面が高いほどヘッダーから離れ、下のSCROLLも窮屈になる。
     ヘッダー直下から一定の距離で置く。 */
  position:absolute; z-index:5; left:max(6vw,24px); top:clamp(132px, 83px + 7vh, 196px);
  transform:none; width:min(48%, 646px);
}
@media (max-width:900px){ .c-hero__copy{ width:min(88%, 620px); top:auto; bottom:16vh; transform:none; } }
.c-hero__h1{
  font-size:clamp(29px,3.85vw,50px); font-weight:700; line-height:1.58; letter-spacing:.02em; color:var(--ink);
}
.c-hero__h1 .l{ display:block; white-space:nowrap; }
.c-hero__sub{
  margin-top:22px; font-size:clamp(14px,1.15vw,16.5px); line-height:2.05; color:var(--ink-soft); max-width:27em;
}
.c-hero__btns{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.c-hero__scroll{
  position:absolute; left:max(6vw,24px); bottom:5vh; z-index:5;
  font-family:var(--mono); font-size:10px; letter-spacing:.3em; color:var(--muted);
}
.c-hero__scroll::after{
  content:""; display:block; width:1px; height:46px; margin-top:10px; background:var(--line-strong);
  transform-origin:top; animation:scrollLine 2.4s ease-in-out infinite;
}
@keyframes scrollLine{ 0%{transform:scaleY(0)} 40%{transform:scaleY(1)} 100%{transform:scaleY(0); transform-origin:bottom} }
@media (max-width:900px){ .c-hero__scroll{ display:none; } }
/* 背の低いデスクトップウィンドウでは、コピーとSCROLLがぶつかるので詰める */
@media (min-width:901px) and (max-height:700px){
  .c-hero__copy{ top:120px; }
  .c-hero__scroll{ bottom:3vh; }
}

/* ---- FV：スマホ ----------------------------------------------------
   PCは左が白壁なので写真の上に文字を置けるが、スマホは写真が拡大されて
   文字に干渉する。上部だけ写真を見せ、コピー側は無地に落として読ませる。 */
@media (max-width:900px){
  /* 760px固定だと iPhone SE 等で下が画面外に出るため、画面の高さに合わせる */
  .c-hero{ height:100vh; height:100svh; min-height:600px; }
  /* スマホは縦構図の専用写真を全面に敷き、下半分をグラデーションで
     紙色に落として文字を読ませる（横位置の写真だと壁しか映らないため）。 */
  .c-hero__photo{ background-image:url('../img/fv-sp.jpg'); background-position:center top; }
  .c-hero__photo::after{
    background:linear-gradient(180deg,
      rgba(251,249,247,0) 0%,
      rgba(251,249,247,.06) 24%,
      rgba(251,249,247,.42) 36%,
      rgba(251,249,247,.88) 44%,
      rgba(251,249,247,.99) 50%,
      var(--base) 58%);
  }
  .c-hero__copy{ bottom:8vh; }
  /* nowrap のままだと2行目が枠外にはみ出して切れる（375pxで25px超過）。
     文字を少し詰めて2行に収め、写真バンドの下に本文が収まるようにする。 */
  .c-hero__h1{ font-size:min(6.9vw,30px); line-height:1.5; }
  .c-hero__h1 .l{ white-space:normal; }
  .c-hero__sub{ margin-top:14px; line-height:1.95; }
}
@media (max-width:600px){
  .c-hero__btns{ flex-direction:column; gap:12px; margin-top:26px; }
  .c-hero__btns .c-btn{ width:100%; }
  .c-hero__copy .c-subcta{ margin-top:14px; font-size:12.5px; }
}
/* 画面が短い端末（iPhone SE など）は写真バンドを薄くし、コピーも詰める。
   そうしないと見出しが写真に乗って読めなくなる。 */
@media (max-width:900px) and (max-height:720px){
  /* 画面が短いとコピーが上まで来るので、紙色への切り替えを早める */
  .c-hero__photo::after{
    background:linear-gradient(180deg,
      rgba(251,249,247,0) 0%,
      rgba(251,249,247,.05) 14%,
      rgba(251,249,247,.48) 26%,
      rgba(251,249,247,.92) 35%,
      rgba(251,249,247,.99) 40%,
      var(--base) 47%);
  }
  .c-hero__copy{ bottom:6vh; }
  .c-hero__h1{ font-size:clamp(23px,6.5vw,29px); line-height:1.5; }
  .c-hero__sub{ margin-top:12px; font-size:13.5px; line-height:1.85; }
  .c-hero__btns{ margin-top:20px; gap:10px; }
  .c-hero__btns .c-btn{ padding:14px 24px; }
  .c-hero__copy .c-subcta{ margin-top:12px; }
}

/* ============================================================
   共感 — section-catalog intro-04（マニフェスト・行リベール）
   ============================================================ */
.c-empathy{ padding:clamp(76px,9vw,124px) 0; background:var(--surface); border-bottom:1px solid var(--line); }
.c-empathy__inner{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.55fr); gap:clamp(30px,5vw,80px); align-items:start; }
@media (max-width:860px){ .c-empathy__inner{ grid-template-columns:1fr; } }
.c-empathy__side{ position:relative; }
.c-empathy__side img{ width:100%; border-radius:2px; }
.c-empathy__cap{ margin-top:14px; font-family:var(--mono); font-size:10.5px; letter-spacing:.22em; color:var(--muted); }
.c-empathy__lines{ font-size:clamp(17px,1.65vw,23px); font-weight:500; line-height:2.1; color:var(--ink); }
.c-empathy__lines .ln{ display:block; }
.c-empathy__lines .sp{ display:block; height:1.1em; }
.c-empathy__quote{
  display:block; margin:6px 0; padding-left:20px; border-left:3px solid var(--accent);
  color:var(--muted); font-size:.92em;
}
.c-empathy__punch{
  margin-top:30px; font-size:clamp(19px,1.9vw,27px); font-weight:700; line-height:1.85; color:var(--ink);
}
.c-empathy__punch em{ font-style:normal; background:linear-gradient(transparent 62%, rgba(237,109,70,.34) 62%); }

/* ============================================================
   約束 — section-catalog vs-04（エディトリアル比較表・罫線索引）
   ============================================================ */
.c-promise{ padding:clamp(76px,9vw,124px) 0; }
.c-promise__head{ margin-bottom:clamp(34px,4vw,56px); }
.c-promise__table{ border-top:1px solid var(--ink); }
.c-promise__row{
  display:grid; grid-template-columns:1fr 60px 1fr; align-items:center;
  gap:clamp(12px,2vw,30px); padding:clamp(18px,2.2vw,26px) 0; border-bottom:1px solid var(--line);
}
.c-promise__before{ color:var(--muted); font-size:clamp(14px,1.05vw,16px); }
.c-promise__arrow{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; color:var(--accent-deep); text-align:center; }
.c-promise__after{ color:var(--ink); font-weight:700; font-size:clamp(14.5px,1.15vw,17.5px); }
.c-promise__legend{ display:grid; grid-template-columns:1fr 60px 1fr; gap:clamp(12px,2vw,30px); padding-bottom:12px; }
.c-promise__legend span{ font-family:var(--mono); font-size:10.5px; letter-spacing:.26em; color:var(--muted); }
.c-promise__legend span:nth-child(2){ text-align:center; }
.c-promise__legend span:last-child{ color:var(--accent-deep); }
@media (max-width:720px){
  .c-promise__row,.c-promise__legend{ grid-template-columns:1fr; gap:8px; }
  .c-promise__arrow{ text-align:left; }
  .c-promise__legend span:nth-child(2){ display:none; }
  .c-promise__legend span:last-child{ display:none; }
}

/* ============================================================
   選ばれる理由 — section-catalog reasons-02（左sticky＋番号リスト）
   ============================================================ */
.c-reasons{ padding:clamp(76px,9vw,124px) 0; background:var(--surface); }
.c-reasons__inner{ display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.5fr); gap:clamp(30px,5vw,86px); align-items:start; }
@media (max-width:900px){ .c-reasons__inner{ grid-template-columns:1fr; } }
.c-reasons__sticky{ position:sticky; top:120px; }
@media (max-width:900px){ .c-reasons__sticky{ position:static; } }
.c-reasons__list{ border-top:1px solid var(--line); }
.c-reasons__item{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(18px,2.6vw,40px);
  padding:clamp(32px,4vw,52px) 0; border-bottom:1px solid var(--line);
}
@media (max-width:560px){ .c-reasons__item{ grid-template-columns:1fr; gap:12px; } }
.c-reasons__num{
  font-family:var(--mono); font-size:clamp(30px,3.4vw,46px); font-weight:700; line-height:1;
  color:var(--accent); letter-spacing:-.02em;
}
.c-reasons__body p{ margin-top:14px; font-size:15.5px; line-height:2.05; color:var(--muted); }
.c-reasons__body strong{ color:var(--ink); font-weight:700; background:linear-gradient(transparent 64%, rgba(237,109,70,.28) 64%); }
.c-reasons__thumb{ margin-top:22px; border-radius:2px; overflow:hidden; }
.c-reasons__thumb img{ width:100%; aspect-ratio:16/9; object-fit:cover; }

/* ============================================================
   数字 — section-catalog numbers-02（ブロークングリッド特大数字）
   ============================================================ */
.c-numbers{ position:relative; padding:clamp(78px,9vw,128px) 0; background:var(--base); overflow:hidden; }
.c-numbers .c-mark{ right:-6%; top:-8%; width:min(46vw,560px); }
/* SPではロゴマークがセクション上端から100px以上はみ出していたので、上端に揃える */
@media (max-width:900px){ .c-numbers .c-mark{ right:-6%; top:0%; } }
.c-numbers__inner{ position:relative; z-index:1; }
.c-numbers__head{ margin-bottom:clamp(34px,4.4vw,60px); }
.c-numbers__grid{
  display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(14px,1.6vw,24px) clamp(16px,2vw,32px);
}
.c-numbers__cell{ border-top:1px solid var(--ink); padding-top:18px; }
.c-numbers__cell:nth-child(1){ grid-column:span 5; }
.c-numbers__cell:nth-child(2){ grid-column:span 4; }
.c-numbers__cell:nth-child(3){ grid-column:span 3; }
.c-numbers__cell:nth-child(4){ grid-column:2 / span 4; }
.c-numbers__cell:nth-child(5){ grid-column:span 3; }
.c-numbers__cell:nth-child(6){ grid-column:span 3; }
@media (max-width:860px){
  .c-numbers__grid{ grid-template-columns:repeat(2,1fr); }
  .c-numbers__cell:nth-child(n){ grid-column:span 1; }
}
@media (max-width:480px){
  .c-numbers__grid{ grid-template-columns:1fr; }
}
.c-numbers__fig{
  font-family:var(--mono); font-weight:700; line-height:.94; color:var(--ink); letter-spacing:-.03em;
  font-size:clamp(46px,6vw,86px); display:flex; align-items:baseline; gap:.12em;
}
.c-numbers__unit{ font-size:.3em; font-weight:500; letter-spacing:.06em; color:var(--muted); }
.c-numbers__label{ margin-top:12px; font-size:14px; line-height:1.85; color:var(--muted); }
/* 特大プル（ページに1つだけ） */
.c-numbers__pull{
  margin-top:clamp(44px,5.5vw,78px); display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:clamp(18px,3vw,46px); align-items:center; border-top:1px solid var(--ink); padding-top:clamp(24px,3vw,40px);
}
@media (max-width:640px){ .c-numbers__pull{ grid-template-columns:1fr; } }
.c-numbers__pullfig{
  font-family:var(--mono); font-weight:700; font-size:clamp(112px,17vw,240px); line-height:.78;
  color:var(--accent); letter-spacing:-.05em;
}
.c-numbers__pulltxt{ font-size:clamp(17px,1.7vw,24px); font-weight:700; line-height:1.85; color:var(--ink); }
.c-numbers__pulltxt span{ display:block; margin-top:12px; font-size:14.5px; font-weight:400; color:var(--muted); line-height:2; }

/* ============================================================
   制作実績 — section-catalog gallery-09（コンタクトシート選定）
   ============================================================ */
.c-works{ padding:clamp(78px,9vw,128px) 0; background:var(--ink); color:#EDEAE5; }
.c-works .c-eyebrow{ color:var(--accent); }
.c-works .c-h2{ color:#fff; }
.c-works__head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:30px; align-items:end; margin-bottom:clamp(34px,4vw,58px); }
@media (max-width:820px){ .c-works__head{ grid-template-columns:1fr; } }
.c-works__lead{ color:rgba(237,234,229,.72); font-size:15.5px; line-height:2.05; }
.c-works__sheet{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.5vw,22px); }
@media (max-width:1000px){ .c-works__sheet{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .c-works__sheet{ grid-template-columns:1fr; } }
.c-works__item{ position:relative; }
.c-works__item a{ display:block; text-decoration:none; color:inherit; }
.c-works__shot{
  position:relative; overflow:hidden; border-radius:2px; background:#0E1720;
  border:1px solid rgba(237,234,229,.14);
}
.c-works__shot img{
  width:100%; aspect-ratio:3/2; object-fit:cover; object-position:top center;
  filter:grayscale(.55) contrast(.96); transition:filter .5s ease, transform .7s cubic-bezier(.22,1,.36,1);
}
.c-works__item a:hover .c-works__shot img{ filter:grayscale(0) contrast(1); transform:scale(1.03); }
.c-works__no{
  position:absolute; left:10px; top:8px; z-index:2; font-family:var(--mono); font-size:10px;
  letter-spacing:.2em; color:var(--accent);
}
.c-works__meta{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-top:12px; }
.c-works__name{ font-size:14px; font-weight:700; line-height:1.6; }
.c-works__ind{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; color:rgba(237,234,229,.55); white-space:nowrap; }
.c-works__cat{ margin-top:4px; font-size:12.5px; color:rgba(237,234,229,.6); }
.c-works__note{ margin-top:clamp(30px,3.6vw,48px); font-size:14px; color:rgba(237,234,229,.62); border-top:1px solid rgba(237,234,229,.18); padding-top:22px; }

/* ============================================================
   お客様の声 — section-catalog voice-13（インタビュー＋アーカイブ索引）
   ============================================================ */
.c-voice{ position:relative; padding:clamp(78px,9vw,128px) 0; background:var(--surface); overflow:hidden; }
.c-voice .c-mark{ left:-8%; bottom:-10%; width:min(38vw,440px); }
.c-voice__inner{ position:relative; z-index:1; }
.c-voice__head{ margin-bottom:clamp(34px,4vw,56px); }
.c-voice__main{ display:grid; gap:clamp(22px,2.6vw,34px); }
.c-voice__card{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(16px,2.4vw,38px);
  padding:clamp(24px,3vw,40px) 0; border-top:1px solid var(--line);
}
.c-voice__card:first-child{ border-top:1px solid var(--ink); }
@media (max-width:640px){ .c-voice__card{ grid-template-columns:1fr; gap:14px; } }
.c-voice__qm{ font-family:var(--mono); font-size:clamp(38px,4.4vw,64px); font-weight:700; line-height:.8; color:var(--accent); }
.c-voice__q{ font-size:clamp(15.5px,1.3vw,19px); line-height:2.05; color:var(--ink); }
.c-voice__q em{ font-style:normal; font-weight:700; background:linear-gradient(transparent 64%, rgba(237,109,70,.3) 64%); }
.c-voice__who{ margin-top:16px; display:flex; flex-wrap:wrap; align-items:baseline; gap:12px; }
.c-voice__name{ font-size:14px; font-weight:700; color:var(--ink); }
.c-voice__why{ font-family:var(--mono); font-size:10px; letter-spacing:.16em; color:var(--accent-deep); }
/* 罫線インデックス（残り6件） */
.c-voice__index{ margin-top:clamp(40px,5vw,64px); }
.c-voice__indexhead{ font-family:var(--mono); font-size:11px; letter-spacing:.28em; color:var(--muted); margin-bottom:16px; }
.c-voice__row{
  display:grid; grid-template-columns:minmax(150px,.42fr) minmax(0,1fr); gap:clamp(10px,2vw,28px);
  padding:15px 0; border-bottom:1px solid var(--line); align-items:baseline;
}
@media (max-width:600px){ .c-voice__row{ grid-template-columns:1fr; gap:4px; } }
.c-voice__rowname{ font-size:13.5px; font-weight:700; color:var(--ink); }
.c-voice__rowtxt{ font-size:13.5px; line-height:1.95; color:var(--muted); }
.c-voice__tail{ margin-top:22px; font-size:13.5px; color:var(--muted); }

/* ============================================================
   代表 — section-catalog message-03（マガジン見開き・ドロップキャップ）
   ============================================================ */
.c-message{ position:relative; padding:clamp(78px,9vw,128px) 0; background:var(--base); overflow:hidden; }
.c-message .c-mark{ right:2%; top:6%; width:min(26vw,300px); }
.c-message__inner{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.3fr); gap:clamp(28px,4.6vw,74px); align-items:start; }
@media (max-width:900px){ .c-message__inner{ grid-template-columns:1fr; } }
.c-message__photo{ position:relative; }
.c-message__photo img{ width:100%; border-radius:2px; }
.c-message__sig{
  margin-top:18px; border-top:1px solid var(--ink); padding-top:14px;
}
.c-message__role{ font-family:var(--mono); font-size:10.5px; letter-spacing:.24em; color:var(--muted); }
.c-message__nm{ margin-top:6px; font-size:20px; font-weight:700; color:var(--ink); }
.c-message__kana{ font-size:12px; color:var(--muted); letter-spacing:.08em; }
.c-message__body{ font-size:clamp(15px,1.15vw,16.5px); line-height:2.15; color:var(--ink-soft); }
.c-message__body p{ margin-top:1.55em; }
/* 1文目はリード扱い。日本語にドロップキャップは向かない（「前職」が割れる）ので使わない */
.c-message__body p:first-of-type{
  margin-top:0; font-size:1.24em; font-weight:700; line-height:1.85;
  color:var(--ink); letter-spacing:.01em;
  border-left:3px solid var(--accent); padding-left:.9em;
}
.c-message__body strong{ font-weight:700; color:var(--ink); background:linear-gradient(transparent 64%, rgba(237,109,70,.28) 64%); }
.c-message__career{ margin-top:clamp(28px,3.4vw,44px); border-top:1px solid var(--line); }
.c-message__careerrow{ display:grid; grid-template-columns:110px minmax(0,1fr); gap:16px; padding:13px 0; border-bottom:1px solid var(--line); }
@media (max-width:520px){ .c-message__careerrow{ grid-template-columns:1fr; gap:2px; } }
.c-message__year{ font-family:var(--mono); font-size:12px; letter-spacing:.1em; color:var(--accent-deep); }
.c-message__ev{ font-size:14px; line-height:1.9; color:var(--muted); }

/* ============================================================
   料金 — 3Dフリップ比較カード（4プラン）
   カードが画面に入ると、おもて（プラン名）→ うら（金額）へめくれる。
   ★ スクロール固定（pin）は使わない。
     pin は「画面の高さ」に依存するため、ブラウザのツールバー・ズーム・OSで
     実効の高さが変わると破綻し、上下に巨大な余白も生む。
     見えた順にめくる方式なら画面高と無関係で、どの環境でも同じ見え方になる。
   ★ フォールバック設計：CSSの初期状態は裏面（金額）が見えている。
     GSAP未読込・JS無効・prefers-reduced-motion では金額が最初から出る。
     「先に金額を書いておきます」という訴求と、最悪ケースでも矛盾しないため。
   ============================================================ */
.c-pricing{ position:relative; padding:clamp(78px,9vw,128px) 0; background:var(--base); overflow:hidden; }
.c-pricing::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(rgba(21,32,43,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(21,32,43,.05) 1px,transparent 1px);
  background-size:36px 36px;
  -webkit-mask-image:linear-gradient(#000 40%,transparent);
          mask-image:linear-gradient(#000 40%,transparent);
}
.c-pricing__body{ position:relative; z-index:1; }
.c-pricing__head{ text-align:center; max-width:760px; margin:0 auto clamp(34px,4vw,52px); padding:0 24px; }
.c-pricing__eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:.34em; color:var(--accent); text-transform:uppercase; display:block; }
.c-pricing__head .c-h2{ margin:12px 0 0; }
.c-pricing__head .c-lead{ margin-top:16px; }

/* ---- カード列 ---- */
.c-pricing__row{
  display:flex; gap:20px; justify-content:center; align-items:stretch;
  perspective:1600px; width:min(1240px, 100% - 48px); margin-inline:auto;
}
.c-pricing__card{ position:relative; flex:1 1 0; min-width:0; height:500px; }
.c-pricing__inner{ position:absolute; inset:0; transform-style:preserve-3d; transform:rotateY(180deg); }
.c-pricing__face{
  position:absolute; inset:0; border-radius:6px; padding:28px 24px;
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
  display:flex; flex-direction:column;
}

/* ---- おもて ---- */
.c-pricing__front{ color:#fff; justify-content:space-between; box-shadow:0 30px 60px -40px rgba(21,32,43,.6); }
.c-pricing__card--p1 .c-pricing__front{ background:#2C5C7A; }  /* 健康診断＝既存 .is-unyou の青 */
.c-pricing__card--p2 .c-pricing__front{ background:#4A5A46; }  /* 部分改修＝既存 .is-seisaku の緑 */
.c-pricing__card--p3 .c-pricing__front{ background:var(--accent-deep); }  /* 伴走＝主役 */
.c-pricing__card--p4 .c-pricing__front{ background:var(--ink); }
.c-pricing__front .c-pricing__no{ color:rgba(255,255,255,.7); }
/* 「スポット制作プラン」等の9〜10文字がカード幅に収まるサイズ。
   入りきらない幅では auto-phrase で文節ごとに折る（「スポット制作プラ／ン」を防ぐ） */
.c-pricing__front b{ display:block; font-weight:900; font-size:clamp(18px,1.55vw,23px); line-height:1.45; letter-spacing:.03em; word-break:auto-phrase; text-wrap:balance; }
.c-pricing__tag{ display:block; margin-top:10px; font-size:15px; line-height:1.7; color:rgba(255,255,255,.85); }
.c-pricing__turn{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; color:rgba(255,255,255,.6); }
.c-pricing__badge{
  position:absolute; right:14px; top:14px; background:var(--accent); color:var(--ink);
  font-size:10.5px; font-weight:700; letter-spacing:.14em; padding:4px 10px; border-radius:3px;
}

/* ---- うら（金額） ---- */
.c-pricing__back{
  background:var(--surface); border:1px solid var(--line); transform:rotateY(180deg);
  box-shadow:0 30px 60px -44px rgba(21,32,43,.5);
}
.c-pricing__no{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; color:var(--muted); }
.c-pricing__back .c-pricing__no{ color:var(--accent); }
.c-pricing__nm{ margin-top:8px; font-size:15px; font-weight:700; line-height:1.5; color:var(--muted); }
.c-pricing__fee{ margin:12px 0 4px; font-family:var(--mono); font-weight:700; color:var(--ink); font-size:clamp(26px,2.2vw,32px); line-height:1.15; letter-spacing:-.01em; }
.c-pricing__fee small{ font-size:.5em; font-weight:500; letter-spacing:.04em; color:var(--muted); }
.c-pricing__fee .plus{ display:block; font-size:.5em; color:var(--accent-deep); margin-top:4px; letter-spacing:0; }
.c-pricing__back .c-pricing__cap{ display:block; font-size:11.5px; line-height:1.7; color:var(--muted); }
.c-pricing__inc{ margin:16px 0 0; padding:14px 0 0; border-top:1px solid var(--line); flex:1 1 auto; list-style:none; }
.c-pricing__inc li{ position:relative; padding:4px 0 4px 18px; font-size:12.5px; line-height:1.75; color:var(--text); }
.c-pricing__inc li::before{ content:""; position:absolute; left:2px; top:.95em; width:9px; height:1.5px; background:var(--accent); }
.c-pricing__nt{ margin:10px 0 0; font-size:11px; line-height:1.7; color:var(--muted); }

/* ---- 注記・CTA ---- */
.c-pricing__foot{ position:relative; z-index:1; width:min(1240px, 100% - 48px); margin:clamp(34px,4vw,52px) auto 0; }
.c-pricing__notes{ margin-top:0; font-size:13px; line-height:2; color:var(--muted); }
.c-pricing__notes li{ position:relative; padding-left:1.2em; }
.c-pricing__notes li::before{ content:"※"; position:absolute; left:0; }

@media (max-width:1080px){
  .c-pricing__row{ gap:14px; }
  .c-pricing__face{ padding:24px 18px; }
  .c-pricing__card{ height:520px; }
}
/* 幅1000px以下は縦積み。JS側は画面幅で分岐していないので、ここだけ直せばよい。
   4枚横並びだと1枚193pxまで痩せ、「スポット制作プラン」が文字単位で割れるため1000pxで切り替える。 */
@media (max-width:1000px){
  .c-pricing__row{ flex-direction:column; align-items:center; perspective:1200px; width:min(420px, 100% - 32px); gap:18px; }
  .c-pricing__card{ flex:none; width:100%; height:470px; }
  .c-pricing__foot{ width:min(420px, 100% - 32px); }
}
@media (max-width:400px){
  .c-pricing__card{ height:492px; }
  .c-pricing__face{ padding:24px 20px; }
}

/* ============================================================
   流れ — section-catalog process-07（追跡風トラッキング）
   ============================================================ */
.c-flow{ padding:clamp(78px,9vw,128px) 0; background:var(--base); }
.c-flow__head{ margin-bottom:clamp(34px,4vw,58px); }
.c-flow__track{ position:relative; padding-left:34px; }
.c-flow__track::before{
  content:""; position:absolute; left:9px; top:8px; bottom:8px; width:2px; background:var(--line);
}
.c-flow__prog{
  position:absolute; left:9px; top:8px; width:2px; background:var(--accent);
  height:0; transform-origin:top;
}
.c-flow__step{ position:relative; padding:0 0 clamp(26px,3vw,38px); }
.c-flow__step:last-child{ padding-bottom:0; }
.c-flow__dot{
  position:absolute; left:-34px; top:5px; width:20px; height:20px; border-radius:50%;
  background:var(--base); border:2px solid var(--line-strong); z-index:1;
}
.c-flow__step.is-key .c-flow__dot{ border-color:var(--accent); background:var(--accent); }
.c-flow__no{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; color:var(--accent-deep); }
.c-flow__ttl{ margin-top:6px; font-size:clamp(16.5px,1.35vw,20px); font-weight:700; color:var(--ink); }
.c-flow__txt{ margin-top:8px; font-size:14.5px; line-height:2; color:var(--muted); max-width:44em; }
.c-flow__here{
  display:inline-block; margin-left:10px; font-family:var(--mono); font-size:10px; letter-spacing:.16em;
  background:var(--accent); color:var(--ink); padding:2px 8px; vertical-align:middle;
}

/* ============================================================
   FAQ — section-catalog faq-02（2カラム＋下線ドロー）
   ============================================================ */
.c-faq{ padding:clamp(78px,9vw,128px) 0; background:var(--surface); }
.c-faq__inner{ display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.6fr); gap:clamp(28px,4.4vw,68px); align-items:start; }
@media (max-width:900px){ .c-faq__inner{ grid-template-columns:1fr; } }
.c-faq__list{ border-top:1px solid var(--ink); }
.c-faq__item{ border-bottom:1px solid var(--line); }
.c-faq__q{
  width:100%; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:start;
  background:none; border:0; padding:22px 0; text-align:left; cursor:pointer; font-family:inherit;
  font-size:clamp(15px,1.2vw,17px); font-weight:700; line-height:1.75; color:var(--ink);
}
.c-faq__qm{ font-family:var(--mono); font-size:14px; color:var(--accent); line-height:1.75; }
.c-faq__ic{ position:relative; width:16px; height:16px; margin-top:.45em; flex:0 0 auto; }
.c-faq__ic::before,.c-faq__ic::after{
  content:""; position:absolute; left:0; top:50%; width:16px; height:1.5px; background:var(--ink);
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.c-faq__ic::after{ transform:rotate(90deg); }
.c-faq__q[aria-expanded="true"] .c-faq__ic::after{ transform:rotate(0deg); }
.c-faq__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s cubic-bezier(.22,1,.36,1); }
.c-faq__item.is-open .c-faq__a{ grid-template-rows:1fr; }
.c-faq__ainner{ overflow:hidden; }
.c-faq__atext{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px;
  padding:0 30px 24px 0; font-size:14.5px; line-height:2.05; color:var(--muted);
}
.c-faq__am{ font-family:var(--mono); font-size:14px; color:var(--muted); }

/* ============================================================
   お知らせ — section-catalog news-03（左見出し×サムネ点線リスト）
   ============================================================ */
.c-news{ padding:clamp(78px,9vw,128px) 0; background:var(--base); }
.c-news__inner{ display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.7fr); gap:clamp(28px,4.4vw,68px); align-items:start; }
@media (max-width:900px){ .c-news__inner{ grid-template-columns:1fr; } }
.c-news__list{ border-top:1px solid var(--ink); }
.c-news__item{ border-bottom:1px dashed var(--line-strong); }
.c-news__item a{
  display:grid; grid-template-columns:132px minmax(0,1fr); gap:clamp(14px,2vw,26px);
  padding:20px 0; text-decoration:none; align-items:start;
  transition:opacity .3s ease;
}
.c-news__item a:hover{ opacity:.66; }
@media (max-width:560px){ .c-news__item a{ grid-template-columns:96px minmax(0,1fr); gap:14px; } }
.c-news__thumb{ overflow:hidden; border-radius:2px; background:var(--line); }
.c-news__thumb img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.c-news__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.c-news__date{ font-family:var(--mono); font-size:11.5px; letter-spacing:.12em; color:var(--muted); }
.c-news__cat{ font-size:11px; letter-spacing:.06em; color:var(--accent-deep); border:1px solid var(--line-strong); padding:2px 8px; }
.c-news__ttl{ margin-top:8px; font-size:clamp(14.5px,1.15vw,16.5px); font-weight:700; line-height:1.75; color:var(--ink); }
.c-news__more{ margin-top:28px; }

/* ============================================================
   最終CTA — section-catalog cta-07（特大Contact×方眼3カード）
   ============================================================ */
.c-cta{ position:relative; padding:clamp(80px,9.5vw,136px) 0; background:var(--ink); color:#EDEAE5; overflow:hidden; }
.c-cta .c-mark{ right:-4%; bottom:-14%; width:min(44vw,520px); mix-blend-mode:normal; opacity:.05; filter:invert(1); }
.c-cta__inner{ position:relative; z-index:1; }
.c-cta__grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(30px,4.6vw,74px); align-items:start; }
@media (max-width:880px){ .c-cta__grid{ grid-template-columns:1fr; } }
.c-cta .c-eyebrow{ color:var(--accent); }
.c-cta__h2{ font-size:clamp(27px,3.3vw,44px); font-weight:700; line-height:1.5; color:#fff; }
.c-cta__body{ margin-top:24px; font-size:15.5px; line-height:2.1; color:rgba(237,234,229,.78); }
.c-cta__body p{ margin-top:1.2em; }
.c-cta__body p:first-child{ margin-top:0; }
.c-cta__body strong{ color:#fff; font-weight:700; }
.c-cta__btns{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.c-cta__cards{ display:grid; gap:1px; background:rgba(237,234,229,.18); border:1px solid rgba(237,234,229,.18); }
.c-cta__card{ background:var(--ink); padding:clamp(20px,2.4vw,30px); }
.c-cta__cardno{ font-family:var(--mono); font-size:10.5px; letter-spacing:.22em; color:var(--accent); }
.c-cta__cardttl{ margin-top:10px; font-size:15.5px; font-weight:700; color:#fff; line-height:1.65; }
.c-cta__cardtxt{ margin-top:8px; font-size:13.5px; line-height:1.95; color:rgba(237,234,229,.66); }
.c-cta__why{
  margin-top:clamp(34px,4vw,52px); border-top:1px solid rgba(237,234,229,.2); padding-top:24px;
  font-size:14px; line-height:2.05; color:rgba(237,234,229,.7);
}

/* ============================================================
   FOOTER — parts-catalog footer-01（大型サイトマップ・ダーク）
   ============================================================ */
.l-footer{ background:#101A24; color:rgba(237,234,229,.72); padding:clamp(56px,6.4vw,86px) 0 0; }
.l-footer__top{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1.5fr); gap:clamp(30px,4.4vw,70px); }
@media (max-width:860px){ .l-footer__top{ grid-template-columns:1fr; } }
.l-footer__logo img{ width:200px; background:#fff; padding:12px 16px; border-radius:2px; }
.l-footer__ent{ margin-top:20px; font-size:13.5px; line-height:2.05; max-width:32em; }
.l-footer__nap{ margin-top:26px; border-top:1px solid rgba(237,234,229,.18); }
.l-footer__naprow{ display:grid; grid-template-columns:96px minmax(0,1fr); gap:12px; padding:9px 0; border-bottom:1px solid rgba(237,234,229,.1); font-size:13px; }
.l-footer__napk{ color:rgba(237,234,229,.5); font-size:12px; letter-spacing:.06em; }
.l-footer__sitemap{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2.6vw,34px); }
@media (max-width:640px){ .l-footer__sitemap{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.l-footer__col h3{ font-family:var(--mono); font-size:10.5px; letter-spacing:.24em; color:var(--accent); margin-bottom:14px; }
.l-footer__col li{ margin-bottom:10px; }
.l-footer__col a{ font-size:13.5px; text-decoration:none; transition:color .25s ease; }
.l-footer__col a:hover{ color:#fff; }
.l-footer__bottom{
  margin-top:clamp(40px,5vw,64px); border-top:1px solid rgba(237,234,229,.18); padding:20px 0 26px;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px;
  font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:rgba(237,234,229,.5);
}

/* blog-shared.css — ブログ（個別/一覧）・サイドバー・page-hero(marquee) の共通CSS断片。
   STEP 7 で各サイトの assets/css/_shared.css の末尾に追記して使う。
   前提トークン: --ai --ai2 --shu --yama --yama2 --kami --kami2 --ink --body --muted --line。
   ベースの .page-hero{...} は _shared.css に既にある前提（ここは marquee 追加と post/sidebar/archive）。 */

/* ============ 固定ページ見出しヘッダー：右→左ギャラリー＋カラーオーバーレイ ============ */
.page-hero .wrap{ position:relative; z-index:3; }
.page-hero::before{ z-index:2; }
.page-hero__bg{ position:absolute; inset:0; z-index:0; overflow:hidden; display:flex; align-items:center; }
.page-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(105deg, rgba(20,59,107,.90) 0%, rgba(31,95,166,.78) 50%, rgba(20,59,107,.90) 100%); }
.page-hero__mq{ display:flex; width:max-content; height:100%; will-change:transform; animation:page-hero-mq 64s linear infinite; }
.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; } }

/* ============ 投稿（single）ページ ============ */
.post-hero{ position:relative; overflow:hidden; color:#F1F4EF; padding:104px 0 70px; }
.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(20,59,107,.74) 0%, rgba(15,40,80,.92) 100%); }
.post-hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:5px; background:linear-gradient(90deg,var(--shu),var(--yama)); z-index:2; }
.post-hero .wrap{ position:relative; z-index:1; max-width:860px; }
.post-hero__meta{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.post-hero__date{ font-family:'Space Grotesk',monospace; font-size:13px; letter-spacing:.06em; color:rgba(241,244,239,.82); }
.post-hero__cat{ font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px; border-radius:999px; color:#fff; background:var(--ai); }  /* 既定色（WPでis-*が付かない時用）。is-*が上書き */
.post-hero h1{ font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(25px,3.8vw,40px); line-height:1.55; letter-spacing:.04em; margin:0; color:#F6F8F4; }
.post-hero .crumb{ font-family:'Space Grotesk',monospace; font-size:10.5px; letter-spacing:.18em; color:rgba(241,244,239,.6); margin:24px 0 0; }
.post-hero .crumb a{ color:rgba(241,244,239,.82); 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%; border-radius:14px; box-shadow:0 24px 50px -28px rgba(20,30,46,.5); display:block; }
.post-body p{ font-size:15.5px; line-height:2.05; color:var(--body); margin:0 0 1.7em; }
.post-body h2{ font-family:'Shippori Mincho',serif; font-size:clamp(19px,2.6vw,26px); font-weight:700; color:var(--ink); line-height:1.6; margin:2.4em 0 .9em; padding-left:16px; border-left:4px solid var(--yama); }
.post-body h3{ font-family:'Shippori Mincho',serif; font-size:clamp(16px,2vw,20px); font-weight:700; color:var(--ink); margin:2em 0 .7em; }
.post-body a{ color:var(--shu); font-weight:700; }
.post-body .post-lead{ font-size:16.5px; 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); 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:14px; color:var(--ink); }
.post-foot__back:hover{ color:var(--shu); }
.post-foot__cta{ display:inline-block; background:var(--ai); color:var(--kami); font-weight:700; font-size:13.5px; padding:12px 26px; border-radius:999px; text-decoration:none; transition:background .25s; }
.post-foot__cta:hover{ background:var(--shu); }

/* ============ サイドバー・ウィジェット ============ */
.post-side{ position:sticky; top:88px; display:flex; flex-direction:column; gap:26px; }
.widget{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px 22px 24px; }
.widget__ttl{ font-family:'Shippori Mincho',serif; font-size:16px; font-weight:700; color:var(--ink); margin:0 0 16px; padding-left:12px; border-left:4px solid var(--yama); letter-spacing:.04em; }
.w-search{ display:flex; gap:8px; }
.w-search input{ flex:1; min-width:0; border:1px solid var(--line); border-radius:8px; padding:10px 12px; font-size:13.5px; font-family:inherit; background:var(--kami2); }
.w-search button{ border:none; background:var(--ai); color:#fff; border-radius:8px; padding:0 16px; font-weight:700; cursor:pointer; }
/* サイドバー先頭の相談バナー（既存サイトと同じ banner_right2 を流用） */
.w-banner{ display:block; border-radius:14px; overflow:hidden; border:1px solid var(--line); line-height:0; }
.w-banner img{ width:100%; height:auto; display:block; transition:opacity .25s ease; }
.w-banner:hover img{ opacity:.88; }
.w-recent{ display:flex; flex-direction:column; gap:14px; }
.w-recent a{ display:grid; grid-template-columns:70px 1fr; gap:12px; align-items:start; text-decoration:none; color:inherit; }
.w-recent img,.w-recent__noimg{ width:70px; height:47px; object-fit:cover; border-radius:7px; display:block; margin-top:2px; }
.w-recent__noimg{ background:var(--kami2); border:1px solid var(--line); }
.w-recent div{ min-width:0; }
.w-recent b{ font-family:'Shippori Mincho',serif; font-weight:700; font-size:13px; line-height:1.5; color:var(--ink); display:block; }
.w-recent span{ font-family:'Space Grotesk',monospace; font-size:10.5px; color:var(--muted); letter-spacing:.06em; }
.w-recent .w-recent__label{ font-family:var(--sans); font-size:10px; margin-right:4px; opacity:.8; }
.w-recent a:hover b{ color:var(--shu); }
.w-list{ list-style:none; margin:0; padding:0; }
.w-list li{ border-bottom:1px dashed var(--line); }
.w-list li:last-child{ border-bottom:none; }
.w-list a{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 2px; text-decoration:none; color:var(--ink); font-size:13.5px; font-weight:500; }
.w-list a:hover{ color:var(--shu); }
.w-list .n{ font-family:'Space Grotesk',monospace; font-size:11px; color:var(--muted); background:var(--kami2); border-radius:999px; padding:2px 9px; }
.w-cta{ background:linear-gradient(160deg,#2A6FB5,var(--ai2)); border:none; color:#F1F4EF; }
.w-cta .widget__ttl{ color:#fff; border-color:var(--yama2); }
.w-cta p{ font-size:13px; line-height:1.85; color:rgba(241,244,239,.82); margin:0 0 16px; }
.w-cta a{ display:inline-block; background:var(--yama2); color:var(--ai2); font-weight:700; font-size:13.5px; padding:12px 28px; border-radius:999px; text-decoration:none; }
.w-cta a:hover{ background:#fff; }

/* ============ ブログ/お知らせ 一覧（archive）カード ============ */
.p-news{ max-width:940px; }
.p-newsgrid{ display:grid; gap:28px; }
.p-card{ display:grid; grid-template-columns:320px 1fr; text-decoration:none; color:inherit; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; transition:box-shadow .25s, transform .25s; }
.p-card:hover{ box-shadow:0 24px 46px -26px rgba(34,48,74,.5); transform:translateY(-3px); }
.p-card__ph{ overflow:hidden; background:var(--ai2); }
.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:'Space Grotesk',monospace; font-size:13px; letter-spacing:.06em; color:var(--muted); }
.p-card__cat{ font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px; border-radius:999px; color:#fff; background:var(--ai); }  /* 既定色。is-*が上書き */
.p-card__ttl{ font-family:'Shippori Mincho',serif; font-size:clamp(18px,2.3vw,22px); font-weight:700; line-height:1.55; color:var(--ink); margin:0; }
.p-card__ex{ font-size:13.5px; line-height:1.9; color:var(--body); margin:0; }
.p-card__more{ margin-top:4px; font-family:'Space Grotesk',monospace; font-size:11px; letter-spacing:.14em; color:var(--shu); font-weight:700; }
.p-newsnote{ font-size:12.5px; color:var(--muted); margin:30px 0 0; }

/* ============ カテゴリ色（post-hero/p-card 共通の .is-*）============ */
.post-hero__cat.is-event,.p-card__cat.is-event{ background:var(--shu); }
.post-hero__cat.is-guide,.p-card__cat.is-guide{ background:var(--ai); }
.post-hero__cat.is-trail,.p-card__cat.is-trail{ background:#5f8a5a; }
.post-hero__cat.is-map,.p-card__cat.is-map{ background:var(--yama); color:var(--ai2); }
.post-hero__cat.is-info,.p-card__cat.is-info{ background:#7c7464; }

/* ============ レスポンシブ（モバイルは1列）============ */
@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:84px 0 52px; }
  .p-card{ grid-template-columns:1fr; }
  .p-card__ph img{ min-height:0; aspect-ratio:1200/630; }
  .p-card__bd{ padding:22px; }
}

/* ============================================================
   トークン・ブリッジ ＆ 固定ページ用の追記
   （blog-shared.css は ぞろ屋標準トークンを前提にしているため、
     きつね広告社のパレットへ写像する。明朝は使わない＝D型）
   ============================================================ */
:root{
  --kami:#FBF9F7;   /* 紙  → ベース */
  --kami2:#FFFFFF;  /* 紙2 → サーフェス */
  --body:#1E2833;   /* 本文 */
  --shu:#C2461F;    /* 朱  → アクセント（文字用・AA） */
  --yama:#ED6D46;   /* 山吹 → アクセント（塗り用） */
  --yama2:#ED6D46;
  --ai:#15202B;     /* 藍  → インク */
  --ai2:#101A24;
}
/* blog-shared.css が前提にする .wrap をサイト規約に合わせる */
.wrap{ width:min(100% - 48px, var(--wrap)); margin-inline:auto; }
/* D型：明朝は使わないので blog-shared の Shippori Mincho 指定を打ち消す */
.post-body h2,.post-body h3,.widget__ttl,.post-hero h1,.page-hero h1{
  font-family:var(--sans) !important; letter-spacing:.02em;
}
.post-body a{ color:var(--accent-deep); }
.post-hero__cat,.p-card__cat{ background:var(--ink); }
.p-card__cat.is-shukyaku{ background:var(--accent-deep); }
.p-card__cat.is-unyou{ background:#2C5C7A; }
.p-card__cat.is-seisaku{ background:#4A5A46; }
.post-hero__cat.is-shukyaku{ background:var(--accent-deep); }
.post-hero__cat.is-unyou{ background:#2C5C7A; }
.post-hero__cat.is-seisaku{ background:#4A5A46; }

/* ---- 固定ページ：ページヒーロー（トップのFVとは別。タイトル帯） ---- */
.page-hero{ position:relative; padding:calc(82px + clamp(52px,6vw,86px)) 0 clamp(46px,5.4vw,76px); background:var(--ink); color:#EDEAE5; overflow:hidden; }
.page-hero__bg{ position:absolute; inset:0; z-index:1; opacity:.3; }
.page-hero__mq{ display:flex; gap:12px; height:100%; width:max-content; animation:kaMq 46s linear infinite; }
.page-hero__mq img{ height:100%; width:auto; object-fit:cover; filter:grayscale(.4); }
@keyframes kaMq{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }
.page-hero::after{ content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(90deg, rgba(21,32,43,.96) 0%, rgba(21,32,43,.86) 46%, rgba(21,32,43,.7) 100%); }
.page-hero .wrap{ position:relative; z-index:3; }
.page-hero__eyebrow{ font-family:var(--mono); font-size:11px; letter-spacing:.32em; color:var(--accent); display:block; margin-bottom:14px; }
.page-hero h1{ font-size:clamp(26px,3.2vw,42px); font-weight:700; line-height:1.5; color:#fff; }
.page-hero__note{ margin-top:16px; font-size:15px; line-height:2; color:rgba(237,234,229,.76); max-width:38em; }
/* パンくずはタイトルの上（記事・固定ページ共通） */
.page-hero__crumb{ margin:0 0 16px; font-size:12px; line-height:1.9; color:rgba(237,234,229,.55); }
.page-hero__crumb a{ color:rgba(237,234,229,.72); }
.page-hero__crumb__here{ color:rgba(237,234,229,.9); }
.page-hero__crumb a{ text-decoration:none; }
.page-hero__crumb a:hover{ color:#fff; }
/* SPはヘッダー実高が69pxなので、PC基準の82px+52pxだと上が空きすぎる */
@media(max-width:900px){ .page-hero{ padding:97px 0 38px; } }
/* 記事ページのSPは左右16pxに寄せる（ヒーローと本文で 24px / 46px と食い違っていたのも揃える）*/
@media(max-width:900px){
  .page-hero--post .wrap,
  .post-wrap{ width:calc(100% - 32px); margin-inline:auto; padding-left:0; padding-right:0; }
}
@media (prefers-reduced-motion: reduce){ .page-hero__mq{ animation:none; } }

/* ---- 固定ページ：本文ブロック ---- */
.c-page{ padding:clamp(64px,8vw,110px) 0; }
.c-page--alt{ background:var(--surface); }
.c-page__head{ margin-bottom:clamp(28px,3.6vw,48px); }
.c-page__body{ font-size:15.5px; line-height:2.1; color:var(--ink-soft); max-width:44em; }
.c-page__body p{ margin-top:1.5em; }
.c-page__body p:first-child{ margin-top:0; }
.c-page__body strong{ font-weight:700; color:var(--ink); }
.c-page__body h3{ margin-top:2.2em; }
.c-defs{ border-top:1px solid var(--ink); }
.c-defs__row{ display:grid; grid-template-columns:minmax(140px,.3fr) minmax(0,1fr); gap:clamp(10px,2vw,28px); padding:16px 0; border-bottom:1px solid var(--line); }
@media (max-width:600px){ .c-defs__row{ grid-template-columns:1fr; gap:4px; } }
.c-defs__k{ font-size:13.5px; font-weight:700; color:var(--ink); }
.c-defs__v{ font-size:14.5px; line-height:2; color:var(--muted); }
.c-cols{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:clamp(20px,2.6vw,36px); }
.c-block{ border-top:2px solid var(--ink); padding-top:20px; }
.c-block h3{ font-size:clamp(17px,1.4vw,20px); font-weight:700; color:var(--ink); line-height:1.6; }
.c-block p{ margin-top:12px; font-size:14.5px; line-height:2; color:var(--muted); }
.c-block ul{ margin-top:14px; }
.c-block li{ position:relative; padding-left:16px; font-size:14px; line-height:1.95; color:var(--muted); }
.c-block li::before{ content:""; position:absolute; left:0; top:.85em; width:7px; height:1px; background:var(--accent); }
.c-endcta{ background:var(--ink); color:#EDEAE5; padding:clamp(56px,6.5vw,88px) 0; text-align:center; }
.c-endcta h2{ font-size:clamp(23px,2.6vw,34px); font-weight:700; color:#fff; line-height:1.55; }
.c-endcta p{ margin-top:18px; font-size:15px; line-height:2; color:rgba(237,234,229,.75); }
.c-endcta .c-btn{ margin-top:28px; }
.c-formslot{ margin-top:clamp(28px,3.4vw,44px); }
.c-formnote{ border:1px solid var(--line-strong); background:var(--surface); padding:clamp(20px,2.6vw,32px); font-size:14.5px; line-height:2; color:var(--muted); }
.c-formnote strong{ color:var(--ink); }

/* ============================================================
   お問い合わせフォーム（Contact Form 7 / マークアップは自前）
   ============================================================ */
.c-form{ border-top:1px solid var(--ink); position:relative; }
.c-form__row{
  display:grid; grid-template-columns:minmax(190px,.28fr) minmax(0,1fr);
  gap:clamp(12px,2.2vw,32px); padding:clamp(20px,2.6vw,30px) 0;
  border-bottom:1px solid var(--line); align-items:start;
}
@media (max-width:700px){ .c-form__row{ grid-template-columns:1fr; gap:10px; } }
.c-form__label{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  font-size:14.5px; font-weight:700; color:var(--ink); line-height:1.7; padding-top:12px;
}
@media (max-width:700px){ .c-form__label{ padding-top:0; } }
.c-form__req{
  font-size:10.5px; font-weight:700; letter-spacing:.08em; line-height:1;
  padding:5px 8px; background:var(--accent); color:var(--ink); border-radius:2px;
}
.c-form__req--any{ background:transparent; color:var(--muted); border:1px solid var(--line-strong); padding:4px 7px; }
.c-form__help{ margin-top:10px; font-size:13px; line-height:1.9; color:var(--muted); }

/* 入力欄 */
.c-form input[type="text"],
.c-form input[type="email"],
.c-form input[type="url"],
.c-form input[type="tel"],
.c-form textarea{
  width:100%; display:block; font-family:inherit; font-size:16px; line-height:1.8;
  color:var(--ink); background:var(--base); border:1px solid var(--line-strong);
  border-radius:2px; padding:13px 16px; -webkit-appearance:none; appearance:none;
  transition:border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.c-form input::placeholder,
.c-form textarea::placeholder{ color:#A9A49C; }
.c-form input[type="text"]:focus,
.c-form input[type="email"]:focus,
.c-form input[type="url"]:focus,
.c-form textarea:focus{
  outline:none; background:var(--surface); border-color:var(--ink);
  box-shadow:0 0 0 3px rgba(237,109,70,.16);
}
.c-form textarea{ resize:vertical; min-height:150px; }

/* ラジオ（ご用件）＝ 選べる箱にする */
.c-form__ctrl--choice .wpcf7-list-item{ display:block; margin:0 0 10px; }
.c-form__ctrl--choice .wpcf7-list-item:last-child{ margin-bottom:0; }
.c-form__ctrl--choice .wpcf7-list-item label{
  display:flex; align-items:flex-start; gap:12px; cursor:pointer;
  border:1px solid var(--line-strong); border-radius:2px; background:var(--base);
  padding:15px 18px; font-size:14.5px; line-height:1.75; color:var(--ink-soft);
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.c-form__ctrl--choice .wpcf7-list-item label:hover{ border-color:var(--ink); }
.c-form__ctrl--choice input[type="radio"]{
  -webkit-appearance:none; appearance:none; flex:0 0 auto; margin:.35em 0 0;
  width:17px; height:17px; border:1px solid var(--line-strong); border-radius:50%;
  background:var(--surface); transition:border-color .2s ease;
}
.c-form__ctrl--choice input[type="radio"]:checked{ border-color:var(--accent-deep); border-width:5px; }
.c-form__ctrl--choice label:has(input:checked){
  border-color:var(--accent-deep); background:var(--surface); color:var(--ink);
  box-shadow:inset 0 0 0 1px var(--accent-deep);
}
.c-form__ctrl--choice input[type="radio"]:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }

/* 同意 */
.c-form__agree{ padding:clamp(22px,2.6vw,30px) 0; border-bottom:1px solid var(--line); }
.c-form__agree .wpcf7-list-item{ margin:0; }
.c-form__agree label{ display:flex; align-items:center; gap:11px; cursor:pointer; font-size:14.5px; color:var(--ink-soft); }
.c-form__agree input[type="checkbox"]{
  -webkit-appearance:none; appearance:none; flex:0 0 auto;
  width:19px; height:19px; border:1px solid var(--line-strong); border-radius:2px;
  background:var(--surface); position:relative; transition:background .2s ease, border-color .2s ease;
}
.c-form__agree input[type="checkbox"]:checked{ background:var(--accent-deep); border-color:var(--accent-deep); }
.c-form__agree input[type="checkbox"]:checked::after{
  content:""; position:absolute; left:6px; top:2px; width:5px; height:10px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(43deg);
}
.c-form__agree input[type="checkbox"]:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }
.c-form__agree a{ color:var(--accent-deep); font-weight:700; text-underline-offset:3px; }

/* ハニーポット（スパム対策・目に見えない） */
.c-form__hp{ position:absolute; left:-9999px; top:0; width:1px; height:1px; overflow:hidden; }

/* 送信 */
.c-form__submit{ margin-top:clamp(26px,3.2vw,38px); text-align:center; }
.c-form__submit .c-btn{ min-width:min(100%,300px); cursor:pointer; font-family:inherit; }
.c-form__submit .c-btn:disabled{
  opacity:1; cursor:not-allowed;
  background:#E7E2DB; border-color:#E7E2DB; color:#9A948B;
}
.c-form__submit .c-btn:disabled:hover{ background:#E7E2DB; border-color:#E7E2DB; color:#9A948B; }
.c-form__hint{ margin-top:14px; font-size:13px; line-height:1.9; color:var(--accent-deep); font-weight:700; }
.c-form__hint[hidden]{ display:none; }
.c-form__note{ margin-top:16px; font-size:13px; line-height:1.9; color:var(--muted); }

/* CF7 のメッセージ表示 */
.c-form input.wpcf7-not-valid,
.c-form textarea.wpcf7-not-valid{ border-color:var(--accent-deep); background:#FDF3EF; }
.c-form__agree .wpcf7-not-valid input[type="checkbox"]{ border-color:var(--accent-deep); }
.c-formslot .wpcf7-not-valid-tip{ display:block; margin-top:8px; font-size:13px; font-weight:700; color:var(--accent-deep); }
.c-formslot .wpcf7-response-output{
  margin:24px 0 0 !important; padding:16px 20px !important;
  border:1px solid var(--line-strong) !important; border-left:3px solid var(--ink) !important;
  border-radius:2px; font-size:14.5px; line-height:1.9; background:var(--surface);
}
.c-formslot form.invalid .wpcf7-response-output,
.c-formslot form.unaccepted .wpcf7-response-output,
.c-formslot form.spam .wpcf7-response-output,
.c-formslot form.failed .wpcf7-response-output{ border-left-color:var(--accent-deep) !important; }
.c-formslot form.sent .wpcf7-response-output{ border-left-color:var(--accent) !important; }
.c-formslot .wpcf7-spinner{ margin:14px auto 0; display:block; }

/* 送信完了 */
.c-formdone{
  border:1px solid var(--line-strong); border-top:3px solid var(--accent);
  background:var(--surface); padding:clamp(30px,4vw,52px) clamp(22px,3vw,44px);
}
.c-formdone__ttl{ font-size:clamp(19px,1.8vw,25px); font-weight:700; color:var(--ink); line-height:1.6; }
.c-formdone__txt{ margin-top:16px; font-size:14.5px; line-height:2.05; color:var(--muted); max-width:44em; }

/* ---- お知らせ一覧（コラムとは別・短文＋日付主体の罫線リスト） ---- */
.c-newslist{ border-top:1px solid var(--ink); }
.c-newsitem{ display:grid; grid-template-columns:minmax(150px,.26fr) minmax(0,1fr);
  gap:clamp(14px,2.4vw,40px); padding:clamp(22px,2.8vw,34px) 0; border-bottom:1px solid var(--line); }
@media (max-width:700px){ .c-newsitem{ grid-template-columns:1fr; gap:10px; } }
.c-newsitem__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.c-newsitem__date{ font-family:var(--mono); font-size:12.5px; letter-spacing:.1em; color:var(--muted); }
.c-newsitem__cat{ font-size:11px; letter-spacing:.06em; color:var(--accent-deep); border:1px solid var(--line-strong); padding:2px 9px; }
.c-newsitem__ttl{ font-size:clamp(16px,1.35vw,19.5px); font-weight:700; line-height:1.7; color:var(--ink); }
.c-newsitem__body{ margin-top:10px; font-size:14.5px; line-height:2.05; color:var(--muted); max-width:44em; }
.c-newsnote2{ margin-top:clamp(28px,3.4vw,44px); font-size:14px; color:var(--muted); }
.c-newsnote2 a{ color:var(--accent-deep); font-weight:700; }

/* ---- コラム一覧：アイキャッチ(1200x630)が切れないよう上下組みに変更 ----
   横並び(320px列)＋object-fit:cover だと焼き文字が左右で切れるため。 */
.p-newsgrid{ grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:clamp(20px,2.4vw,30px); }
.p-card{ grid-template-columns:1fr; border-radius:2px; border-color:var(--line); box-shadow:none; }
.p-card:hover{ box-shadow:0 18px 38px -26px rgba(21,32,43,.42); transform:translateY(-2px); }
.p-card__ph{ aspect-ratio:1200/630; background:var(--ink); }
.p-card__ph img{ min-height:0; height:100%; width:100%; object-fit:cover; }
.p-card__bd{ padding:20px 22px 24px; }
.p-card__ttl{ font-size:clamp(15px,1.2vw,17px); line-height:1.72; }
.p-card__ex{ font-size:13.5px; line-height:1.95; }
.p-card__more{ color:var(--accent-deep); }
@media (max-width:768px){ .p-newsgrid{ grid-template-columns:1fr; } }

/* アンカー移動時に固定ヘッダーへ見出しが潜り込まないように */
[id]{ scroll-margin-top: 104px; }
@media (max-width:960px){ [id]{ scroll-margin-top: 84px; } }

/* ---- 既存WordPress投稿のアイキャッチ（1536x1024 = 3:2）に枠を合わせる ----
   1.90:1 のままだと既存38本のアイキャッチが上下で切れるため。 */
.p-card__ph{ aspect-ratio:3/2; }
.post-hero__bg img, .post-figure img{ object-fit:cover; }

.c-columnnote{ margin-bottom:clamp(26px,3vw,40px); font-size:14px; line-height:2; color:var(--muted); }
.c-columnnote strong{ color:var(--ink); font-weight:700; }

/* ---- お問い合わせ：ご用件メニュー（診断以外の相談も取りこぼさない） ---- */
.c-menu{ border-top:1px solid var(--ink); }
.c-menu__item{ position:relative; padding:clamp(26px,3.2vw,42px) 0; border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(16px,2.6vw,40px); }
@media (max-width:640px){ .c-menu__item{ grid-template-columns:1fr; gap:10px; } }
.c-menu__item.is-main{ background:var(--surface); padding-left:clamp(16px,2vw,26px); padding-right:clamp(16px,2vw,26px);
  border-top:3px solid var(--accent); margin-top:-1px; }
.c-menu__badge{ position:absolute; right:clamp(16px,2vw,26px); top:-1px; background:var(--accent); color:var(--ink);
  font-size:10.5px; font-weight:700; letter-spacing:.14em; padding:4px 10px; }
.c-menu__no{ font-family:var(--mono); font-size:clamp(26px,3vw,40px); font-weight:700; line-height:1; color:var(--accent); }
.c-menu__ttl{ font-size:clamp(18px,1.6vw,23px); font-weight:700; line-height:1.55; color:var(--ink); }
.c-menu__for{ margin-top:8px; font-size:13px; letter-spacing:.02em; color:var(--accent-deep); font-weight:700; }
.c-menu__txt{ margin-top:14px; font-size:14.5px; line-height:2.05; color:var(--muted); max-width:44em; }
.c-menu__txt strong{ color:var(--ink); font-weight:700; }
.c-menu__list{ margin-top:14px; }
.c-menu__list li{ position:relative; padding-left:16px; font-size:13.5px; line-height:1.95; color:var(--muted); }
.c-menu__list li::before{ content:""; position:absolute; left:0; top:.85em; width:7px; height:1px; background:var(--accent); }
/* 副導線（診断以外の人の逃げ道） */
.c-subcta{ margin-top:18px; font-size:13.5px; line-height:1.9; color:var(--muted); }
.c-subcta a{ color:var(--accent-deep); font-weight:700; text-underline-offset:3px; }
.c-cta .c-subcta{ color:rgba(237,234,229,.72); }
.c-cta .c-subcta a{ color:var(--accent); }

/* ---- WordPress 用の追加スタイル ---- */
.ka-pager{ margin-top:clamp(34px,4vw,54px); }
.ka-pager .nav-links{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center; }
.ka-pager .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0 12px;
  border:1px solid var(--line-strong); text-decoration:none; font-family:var(--mono); font-size:13px; color:var(--ink); transition:background .2s,color .2s,border-color .2s; }
.ka-pager .page-numbers:hover{ border-color:var(--ink); }
.ka-pager .page-numbers.current{ background:var(--accent); border-color:var(--accent); color:var(--ink); font-weight:700; }
.ka-pager .screen-reader-text{ position:absolute; left:-9999px; }
/* アイキャッチは本文カラムの先頭に表示（背景への薄い敷きは廃止） */
.post-thumb{ margin:0 0 34px; }
.post-thumb img{ width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:14px; display:block; }
.post-hero__meta{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:14px; }
.post-hero__date{ font-family:var(--mono); font-size:12.5px; letter-spacing:.1em; color:rgba(237,234,229,.75); }
.post-hero__date__label{ font-size:11px; letter-spacing:.06em; opacity:.72; margin-right:5px; }
.post-hero__date--mod{ color:rgba(237,234,229,.6); }
.post-hero__cat{ font-size:11px; font-weight:700; letter-spacing:.06em; padding:3px 12px; border-radius:999px; color:#fff; background:var(--accent-deep); }
.ka-linkpages{ margin-top:28px; font-family:var(--mono); font-size:13px; }
/* 既存記事（Snow Monkey Blocks）の表示を壊さない：本文内はプラグイン側の指定を優先 */
.post-body .wp-block-group,.post-body .smb-section,.post-body [class*="smb-"]{ all:revert; }
/* ↑の all:revert でブラウザ既定マージンが戻り、アコーディオンの操作用input（position:absolute・幅100%）が
   左マージン4px分ずれて横スクロールを起こすため、それだけ打ち消す */
.post-body .smb-accordion__item__control{ margin:0; }
.post-body img{ height:auto; }
.post-body table{ width:100%; border-collapse:collapse; }
.post-body table th,.post-body table td{ border:1px solid var(--line); padding:10px 12px; font-size:14px; }
/* 記事本文の表：SPでは潰さず、横スクロールで読ませる（標準ブロックの figure が包んでいる） */
.post-body .wp-block-table{ overflow-x:auto; }
@media(max-width:900px){
  .post-body .wp-block-table table{ min-width:520px; }
  .post-body .wp-block-table th{ white-space:nowrap; }
  /* まだ続きがある側にだけ影を出す。端まで寄ると紙色のフェードが影を隠す仕組み
     （背景4枚の並びと background-attachment の並びは対応しているので、順番を変えないこと） */
  .post-body .wp-block-table{
    background:
      linear-gradient(to right, var(--kami) 42%, rgba(251,249,247,0)) left / 26px 100% no-repeat,
      linear-gradient(to left,  var(--kami) 42%, rgba(251,249,247,0)) right / 26px 100% no-repeat,
      radial-gradient(farthest-side at 0 50%,    rgba(28,32,38,.17), rgba(28,32,38,0)) left / 11px 100% no-repeat,
      radial-gradient(farthest-side at 100% 50%, rgba(28,32,38,.17), rgba(28,32,38,0)) right / 11px 100% no-repeat;
    background-attachment: local, local, scroll, scroll;
    scrollbar-width: thin;
  }
  .post-body .wp-block-table::-webkit-scrollbar{ height:6px; }
  .post-body .wp-block-table::-webkit-scrollbar-thumb{ background:var(--line-strong); border-radius:3px; }
}
