@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;700&family=Noto+Sans+JP:wght@300;400;500;700&family=Kosugi+Maru&display=swap');

html { font-size: 17px; }
:root {
  /* B鉛筆画 × セピア × オフホワイト紙 (site accent #b5763a と統合) */
  --paper:  #f6f1e7;
  --card:   #fdfbf6;
  --ink:    #453f37;
  --sub:    #8b7d6b;
  --line:   #d8cdbb;
  --accent: #b5763a;   /* サイト本体のブランドアクセントに揃える */
  --sepia:  #7c5c43;   /* 犬のひとこと・アクセント枠 (プロトタイプ由来) */
  --danger: #a85a44;   /* レッドフラグ帯のみ */
  --danger-bg: #f7ebe6;
  --serif:  'Noto Serif JP','Yu Mincho',Georgia,serif;
  --sans:   'Noto Sans JP',-apple-system,'Hiragino Kaku Gothic ProN',sans-serif;
  --round:  'Kosugi Maru','Hiragino Maru Gothic ProN','Yu Gothic',sans-serif;
  --mw:     480px;
}

/* --- SWELL 全リセット (uchino-global に準ずる) --- */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
body { font-family:var(--sans); font-size:1rem; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; }
.l-header { display:none !important; }
.l-sidebar { display:none !important; }
.l-footer { display:none !important; }
.l-mainContent { max-width:100% !important; width:100% !important; padding:0 !important; }
.l-main { padding-top:0 !important; margin-top:0 !important; }
.l-wrap { padding-top:0 !important; margin-top:0 !important; }
.post_content { padding:0 !important; }
html, body { margin-top:0 !important; padding-top:0 !important; }
.c-pageTitle, .p-articleTitle, .entry-title, .page-title { display:none !important; }
.c-breadcrumb, .p-breadcrumb { display:none !important; }

/* --- 統一ヘッダ (他ハブと同じ) --- */
.uc-hdr { position:sticky; top:0; z-index:200; background:#fff; border-bottom:1px solid #e5dfd7; }
.uc-hdr-top { display:flex; align-items:center; justify-content:space-between; padding:0 40px; height:60px; }
.uc-hdr-logo { display:flex; align-items:center; gap:8px; font-family:var(--serif); font-size:1.15rem; font-weight:500; letter-spacing:.1em; color:#1a1a1a; }
.uc-hdr-logo-icon { flex-shrink:0; color:var(--accent); }
.uc-hdr-ham { display:flex; align-items:center; gap:8px; background:none; border:none; cursor:pointer; padding:6px 0; font-size:.75rem; color:#555; letter-spacing:.06em; }
.uc-hdr-ham-bars { display:flex; flex-direction:column; gap:4px; width:20px; }
.uc-hdr-ham-bar { display:block; height:1.5px; background:#1a1a1a; border-radius:1px; transition:all .25s; }
.uc-hdr-ham.open .uc-hdr-ham-bar:nth-child(1) { transform:translateY(5.5px) rotate(45deg); }
.uc-hdr-ham.open .uc-hdr-ham-bar:nth-child(2) { opacity:0; }
.uc-hdr-ham.open .uc-hdr-ham-bar:nth-child(3) { transform:translateY(-5.5px) rotate(-45deg); }
.uc-hdr-overlay { position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:300; opacity:0; pointer-events:none; transition:opacity .3s; }
.uc-hdr-overlay.open { opacity:1; pointer-events:auto; }
.uc-hdr-drawer { position:fixed; top:0; right:0; bottom:0; width:min(340px,88vw); background:#fff; z-index:400; transform:translateX(100%); transition:transform .32s cubic-bezier(.25,.46,.45,.94); display:flex; flex-direction:column; overflow-y:auto; }
.uc-hdr-drawer.open { transform:translateX(0); }
.uc-hdr-drawer-top { display:flex; align-items:center; justify-content:space-between; padding:20px 28px; border-bottom:1px solid #e5dfd7; }
.uc-hdr-drawer-logo { font-family:var(--serif); font-size:1.05rem; font-weight:500; letter-spacing:.1em; color:#1a1a1a; }
.uc-hdr-drawer-close { background:none; border:none; cursor:pointer; font-size:1.1rem; color:#888; padding:4px; }
.uc-hdr-drawer-close:hover { color:var(--accent); }
.uc-hdr-nav-list { list-style:none; padding:20px 0; }
.uc-hdr-nav-link { display:block; padding:14px 28px; font-family:var(--serif); font-size:1rem; letter-spacing:.04em; color:#1a1a1a; border-bottom:1px solid #e5dfd7; }
.uc-hdr-nav-link:hover { color:var(--accent); background:#f7f0e8; }
@media (max-width:600px) { .uc-hdr-top { padding:0 20px; height:54px; } }

/* --- ツール本体 --- */
.kc-frame { min-height:calc(100vh - 60px); background:var(--paper); padding:24px 16px 56px; }
.kc-inner { max-width:var(--mw); margin:0 auto; }

.kc-eyebrow { font-size:.68rem; letter-spacing:.24em; color:var(--sub); margin:8px 0 6px; font-weight:500; }
.kc-h1 { font-family:var(--serif); font-size:1.7rem; font-weight:500; line-height:1.55; margin:0 0 14px; letter-spacing:.02em; }
.kc-h2 { font-family:var(--serif); font-size:1.2rem; font-weight:500; line-height:1.7; margin:0 0 16px; letter-spacing:.02em; }
.kc-lead { font-size:.9rem; line-height:1.9; color:var(--sub); margin:0 0 24px; }

/* 名前入力 */
.kc-namebox { background:var(--card); border:1.5px solid var(--line); border-radius:12px; padding:16px; margin-bottom:20px; }
.kc-namebox label { display:block; font-size:.75rem; color:var(--sub); margin-bottom:6px; }
.kc-input { width:100%; padding:11px 12px; font-size:.95rem; font-family:var(--sans); border:1.5px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink); outline:none; }
.kc-input:focus { border-color:var(--accent); }
.kc-namebox-hint { margin:8px 0 0; font-size:.72rem; color:var(--sub); line-height:1.7; }

/* ボタン共通 */
.kc-btn {
  width:100%; padding:15px 16px; font-family:var(--sans); font-size:.95rem; line-height:1.5;
  background:var(--card); color:var(--ink); border:1.5px solid var(--line);
  border-radius:10px 12px 10px 12px; cursor:pointer;
  text-align:left; transition:border-color .15s, background .15s, transform .08s;
  min-height:52px;
}
.kc-btn:hover { border-color:var(--accent); }
.kc-btn:active { transform:translateY(1px); }
.kc-btn-cta { background:var(--accent); color:#fff; border:none; text-align:center; font-weight:700; padding:16px; }
.kc-btn-cta:hover { background:#9d6331; border:none; }
.kc-btn-sub { background:transparent; color:var(--sub); text-align:center; border-color:var(--line); }
.kc-btn-danger-on { border-color:var(--danger); background:var(--danger-bg); }
.kc-btn-row { display:grid; gap:10px; margin-top:16px; }
.kc-btn-chk { display:flex; align-items:flex-start; gap:10px; }
.kc-btn-chk .mk { flex-shrink:0; font-size:.95rem; color:var(--sub); }
.kc-btn-chk.on .mk { color:var(--danger); }
/* 7つ目「あてはまるものはない」= 進むボタンだが選択肢内に置く */
.kc-btn-none { display:flex; align-items:flex-start; gap:10px; margin-top:6px; }
.kc-btn-none .mk { flex-shrink:0; font-size:.95rem; color:var(--sub); }
.kc-btn-none:hover { border-color:var(--accent); background:#fbf7ee; }

/* 進捗 (鉛筆線) */
.kc-prog-row { display:flex; justify-content:space-between; align-items:baseline; margin:6px 0 8px; font-size:.72rem; color:var(--sub); }
.kc-prog-bar { height:3px; background:var(--line); border-radius:2px; overflow:hidden; }
.kc-prog-fill { height:100%; background:var(--sepia); border-radius:2px; transition:width .3s ease; }

/* 質問カード */
.kc-q { animation:kc-fade .25s ease; }
@keyframes kc-fade { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } }
.kc-q-title { font-family:var(--serif); font-size:1.3rem; line-height:1.65; margin:22px 0 20px; font-weight:500; }
.kc-back { background:none; border:none; color:var(--sub); font-size:.8rem; margin-top:18px; cursor:pointer; font-family:var(--sans); padding:6px 0; }
.kc-back:hover { color:var(--ink); }

/* 割り込み (レッドフラグ) */
.kc-interrupt { background:var(--danger-bg); border:1.5px solid var(--danger); border-radius:12px; padding:20px; margin-bottom:20px; }
.kc-interrupt-h { font-family:var(--serif); font-size:1.15rem; margin:0 0 10px; color:var(--danger); font-weight:600; }
.kc-interrupt-p { font-size:.9rem; line-height:1.9; margin:0; }
.kc-interrupt-p b { color:var(--danger); }

/* --- 結果画面 --- */
.kc-result-flag { background:var(--danger-bg); border:1px solid var(--danger); border-radius:10px; padding:10px 14px; font-size:.82rem; color:var(--danger); margin-bottom:16px; line-height:1.7; }
.kc-approval { font-family:var(--serif); font-size:1.05rem; line-height:1.9; margin:8px 0 20px; letter-spacing:.02em; }

/* シェアカード風 */
.kc-share {
  background:var(--card); border:1.5px solid var(--line);
  border-radius:14px 16px 14px 16px;
  padding:22px 20px; margin-bottom:18px; position:relative;
}
.kc-share-eye { font-size:.68rem; letter-spacing:.2em; color:var(--sub); margin:0 0 6px; }
.kc-share-h { font-family:var(--serif); font-size:1.4rem; margin:0 0 6px; font-weight:500; letter-spacing:.02em; line-height:1.55; }
.kc-share-h .stage-name { font-weight:600; }
.kc-share-bar { display:flex; gap:6px; margin:12px 0 14px; }
.kc-share-cell { width:100%; height:8px; border-radius:4px; background:var(--line); flex:1; }
.kc-share-summary { font-size:.85rem; line-height:1.95; margin:0; }
.kc-share-foot { display:flex; justify-content:space-between; font-size:.68rem; color:var(--sub); margin:14px 0 0; letter-spacing:.02em; }

/* レーダー */
.kc-radar { background:var(--card); border:1.5px solid var(--line); border-radius:12px; padding:14px 6px 10px; margin-bottom:18px; }
.kc-radar-cap { font-size:.75rem; color:var(--sub); text-align:center; margin:0 0 6px; }
.kc-radar-svg { width:100%; height:auto; display:block; }

/* 負担 */
.kc-burden { border-left:3px solid var(--line); padding:2px 0 2px 14px; margin-bottom:24px; }
.kc-burden-cap { font-size:.72rem; color:var(--sub); margin:0 0 4px; }
.kc-burden-p { font-size:.88rem; line-height:1.9; margin:0; }

/* いまできること */
.kc-actions-h { font-family:var(--serif); font-size:1.1rem; margin:0 0 12px; font-weight:500; }
.kc-actions { display:grid; gap:9px; margin-bottom:24px; }
.kc-act { display:flex; align-items:center; gap:8px; padding:14px 16px; background:var(--card); border:1.5px solid var(--line); border-radius:10px 12px 10px 12px; text-decoration:none; color:var(--ink); font-size:.92rem; line-height:1.5; transition:border-color .15s; }
.kc-act:hover { border-color:var(--accent); }
.kc-act-arrow { margin-left:auto; color:var(--sub); font-size:.8rem; }
.kc-act-soft { color:var(--sub); }
.kc-act-badge { font-size:.68rem; margin-left:auto; border:1px solid var(--line); border-radius:999px; padding:2px 9px; color:var(--sub); background:transparent; }

/* 犬のひとこと (シグネチャ・密度集中) */
.kc-dogvoice {
  border:1.5px dashed rgba(124,92,67,.5); background:#fbf7ee;
  border-radius:4px 22px 4px 22px;
  padding:20px 20px 18px; margin-bottom:26px;
  position:relative;
}
.kc-dogvoice-cap { font-size:.72rem; color:var(--sub); margin:0 0 10px; letter-spacing:.03em; }
.kc-dogvoice-cap .paw { color:var(--sepia); margin-right:4px; }
.kc-dogvoice-body { font-family:var(--round); font-size:1.05rem; line-height:2.15; letter-spacing:.06em; margin:0; color:var(--ink); }

/* footer actions */
.kc-tail { display:grid; gap:10px; margin-bottom:26px; }
.kc-disclaimer { font-size:.72rem; color:var(--sub); line-height:1.95; margin-top:8px; }

/* --- モバイル調整 --- */
@media (max-width:420px) {
  .kc-frame { padding:20px 14px 48px; }
  .kc-h1 { font-size:1.5rem; }
  .kc-q-title { font-size:1.2rem; }
  .kc-share-h { font-size:1.25rem; }
}