/* ============================================
   実家じまいナビ 共通スタイル
   Palette: 藍 #22384A / 生成り #F4F2EA / 弁柄 #9C4532 / 深緑 #2F6E52 / 墨 #2B2B28
   Type: Shippori Mincho B1 (display) / Zen Kaku Gothic New (body)
   ============================================ */
:root{
  --ai:#22384A;
  --ai-deep:#16242F;
  --kinari:#F4F2EA;
  --kinari-dark:#EAE6D8;
  --bengara:#9C4532;
  --midori:#2F6E52;
  --midori-dark:#245640;
  --sumi:#2B2B28;
  --grey:#6E6A60;
  --line:#D8D2C0;
  --white:#FFFFFF;
  --serif:"Shippori Mincho B1","Yu Mincho",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--sumi);background:var(--kinari);line-height:1.9;font-size:16px}
img{max-width:100%}
a{color:var(--ai);text-decoration:none}
a:hover{opacity:.85}
:focus-visible{outline:3px solid var(--bengara);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- header ---------- */
.site-header{background:var(--kinari);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100}
.header-inner{max-width:1080px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{font-family:var(--serif);font-size:1.35rem;font-weight:700;color:var(--ai);letter-spacing:.06em}
.brand span{color:var(--bengara)}
.gnav{display:flex;gap:22px;flex-wrap:wrap}
.gnav a{font-size:.88rem;color:var(--sumi);letter-spacing:.04em}
.gnav a.nav-cta{background:var(--midori);color:#fff;padding:6px 14px;border-radius:4px}
@media(max-width:720px){.gnav{gap:12px}.gnav a{font-size:.78rem}}

/* ---------- footer ---------- */
.site-footer{background:var(--ai-deep);color:#CFD6DB;margin-top:80px;padding:48px 20px 32px}
.footer-inner{max-width:1080px;margin:0 auto}
.footer-nav{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.footer-nav a{color:#CFD6DB;font-size:.85rem}
.footer-note{font-size:.78rem;color:#8FA0AC;border-top:1px solid #33475A;padding-top:18px;line-height:1.8}
.footer-note strong{color:#CFD6DB}

/* ---------- 縦書きラベル(シグネチャ) ---------- */
.section-head{display:flex;align-items:flex-start;gap:18px;margin-bottom:34px}
.tate{writing-mode:vertical-rl;font-family:var(--serif);font-size:.82rem;letter-spacing:.35em;color:var(--bengara);border-right:1px solid var(--bengara);padding-right:10px;min-height:96px}
.section-title{font-family:var(--serif);font-size:1.7rem;color:var(--ai);line-height:1.5;letter-spacing:.03em}
.section-lede{color:var(--grey);font-size:.95rem;margin-top:8px;max-width:620px}
@media(max-width:720px){.section-title{font-size:1.35rem}}

/* ---------- layout ---------- */
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.section{padding:72px 0}
.section.alt{background:var(--white)}

/* ---------- hero ---------- */
.hero{background:var(--ai);color:var(--kinari);padding:84px 0 0;position:relative;overflow:hidden}
.hero-inner{max-width:1080px;margin:0 auto;padding:0 20px 84px;position:relative;z-index:2}
.hero-eyebrow{font-size:.82rem;letter-spacing:.3em;color:#B9C6CF;margin-bottom:20px}
.hero h1{font-family:var(--serif);font-size:2.5rem;line-height:1.6;letter-spacing:.04em;font-weight:600;margin-bottom:22px}
.hero h1 em{font-style:normal;color:#E8B98F;border-bottom:2px solid var(--bengara)}
.hero p.lede{max-width:600px;color:#C9D2D9;font-size:1rem;margin-bottom:34px}
.hero-roof{position:absolute;right:-40px;bottom:-2px;width:420px;height:190px;opacity:.16;z-index:1}
@media(max-width:720px){.hero h1{font-size:1.7rem}.hero{padding-top:56px}.hero-roof{width:280px;height:130px}}

/* ---------- 四つの道 fork ---------- */
.fork{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:10px}
.fork a{background:var(--kinari);padding:22px 14px;text-align:center;transition:background .2s}
.fork a:hover{background:var(--kinari-dark);opacity:1}
.fork .fk-kanji{font-family:var(--serif);font-size:1.9rem;color:var(--ai);display:block}
.fork .fk-note{font-size:.75rem;color:var(--grey)}
.fork a.fk-warn .fk-kanji{color:var(--bengara)}
@media(max-width:720px){.fork{grid-template-columns:repeat(2,1fr)}}

/* ---------- cards ---------- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:860px){.grid3{grid-template-columns:1fr}}
.tool-card{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--ai);padding:28px 24px;display:flex;flex-direction:column;gap:12px}
.tool-card.warn{border-top-color:var(--bengara)}
.tool-card h3{font-family:var(--serif);font-size:1.18rem;color:var(--ai);line-height:1.5}
.tool-card p{font-size:.9rem;color:var(--grey);flex-grow:1}
.tool-tag{font-size:.72rem;letter-spacing:.2em;color:var(--bengara)}

/* ---------- buttons ---------- */
.btn{display:inline-block;background:var(--midori);color:#fff;padding:13px 30px;border-radius:4px;font-size:.95rem;letter-spacing:.06em;border:none;cursor:pointer;font-family:var(--sans);text-align:center}
.btn:hover{background:var(--midori-dark);opacity:1}
.btn.ghost{background:transparent;border:1px solid var(--midori);color:var(--midori)}
.btn.bengara{background:var(--bengara)}
.btn.bengara:hover{background:#7E3626}
.btn.block{display:block;width:100%}
.btn:disabled{background:#B9B4A5;cursor:not-allowed}

/* ---------- voices ---------- */
.voice-card{background:var(--white);border:1px solid var(--line);padding:22px;margin-bottom:16px}
.voice-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.voice-meta span{font-size:.72rem;background:var(--kinari-dark);color:var(--sumi);padding:3px 10px;border-radius:2px}
.voice-meta span.vm-cost{background:var(--ai);color:#fff}
.voice-body h4{font-family:var(--serif);color:var(--ai);margin-bottom:6px;font-size:1.02rem}
.voice-body p{font-size:.9rem}
.voice-regret{border-left:3px solid var(--bengara);padding-left:12px;margin-top:10px;font-size:.88rem}
.voice-regret b{color:var(--bengara)}
.empty-state{border:1px dashed var(--line);background:var(--white);padding:44px 24px;text-align:center}
.empty-state .es-title{font-family:var(--serif);font-size:1.15rem;color:var(--ai);margin-bottom:10px}
.empty-state p{font-size:.9rem;color:var(--grey);max-width:520px;margin:0 auto 20px}

/* ---------- tool ui ---------- */
.tool-panel{background:var(--white);border:1px solid var(--line);padding:36px;max-width:760px;margin:0 auto}
@media(max-width:720px){.tool-panel{padding:22px 16px}}
.q-step{margin-bottom:26px}
.q-label{font-family:var(--serif);font-size:1.05rem;color:var(--ai);display:block;margin-bottom:12px}
.q-label .qnum{color:var(--bengara);font-size:.8rem;letter-spacing:.15em;display:block}
.opts{display:grid;gap:10px}
.opts label{border:1px solid var(--line);padding:12px 16px;cursor:pointer;font-size:.92rem;display:flex;gap:10px;align-items:center;background:var(--kinari)}
.opts label:hover{border-color:var(--ai)}
.opts input{accent-color:var(--midori);width:18px;height:18px;flex-shrink:0}
.opts input:checked+span{font-weight:700;color:var(--ai)}
select,input[type=number],input[type=text]{font-family:var(--sans);font-size:1rem;padding:10px 12px;border:1px solid var(--line);background:var(--white);width:100%;border-radius:3px}
.field{margin-bottom:20px}
.field>label{display:block;font-size:.88rem;font-weight:700;margin-bottom:6px;color:var(--ai)}
.field .hint{font-size:.76rem;color:var(--grey);margin-top:4px}

/* ---------- result ---------- */
.result-box{display:none;margin-top:34px;border:2px solid var(--ai);background:var(--kinari);padding:30px}
.result-box.show{display:block;animation:fadein .5s}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.result-verdict{font-family:var(--serif);font-size:1.6rem;color:var(--ai);margin-bottom:6px}
.result-verdict b{color:var(--bengara)}
.result-sub{font-size:.85rem;color:var(--grey);margin-bottom:16px}
.result-detail{font-size:.92rem;margin-bottom:20px}
.ledger{width:100%;border-collapse:collapse;margin:14px 0;background:var(--white)}
.ledger th,.ledger td{border:1px solid var(--line);padding:10px 12px;font-size:.88rem;text-align:left}
.ledger th{background:var(--kinari-dark);font-weight:700;white-space:nowrap}
.ledger td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--ai)}
.ledger tr.total td{background:#FBF0EC;color:var(--bengara);font-size:1rem}
.cta-panel{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--midori);padding:20px;margin-top:18px}
.cta-panel h4{font-family:var(--serif);color:var(--ai);margin-bottom:8px}
.cta-panel p{font-size:.85rem;color:var(--grey);margin-bottom:14px}
.pr-note{font-size:.72rem;color:var(--grey);margin-top:8px}

/* ---------- article ---------- */
.article{max-width:760px;margin:0 auto;background:var(--white);border:1px solid var(--line);padding:48px}
@media(max-width:720px){.article{padding:26px 18px}}
.article h1{font-family:var(--serif);font-size:1.7rem;color:var(--ai);line-height:1.6;margin-bottom:8px}
.article .a-date{font-size:.78rem;color:var(--grey);margin-bottom:28px;display:block}
.article h2{font-family:var(--serif);font-size:1.25rem;color:var(--ai);border-left:4px solid var(--bengara);padding-left:12px;margin:38px 0 14px}
.article p{margin-bottom:16px;font-size:.95rem}
.article ul,.article ol{margin:0 0 16px 22px;font-size:.95rem}
.article li{margin-bottom:6px}
.kome{font-size:.78rem;color:var(--grey)}

/* ---------- misc ---------- */
.breadcrumb{font-size:.76rem;color:var(--grey);padding:16px 0}
.breadcrumb a{color:var(--grey);text-decoration:underline}
.notice-bar{background:var(--kinari-dark);font-size:.75rem;color:var(--grey);text-align:center;padding:6px 12px}
.tag-pr{display:inline-block;border:1px solid var(--grey);color:var(--grey);font-size:.68rem;padding:1px 8px;border-radius:2px;margin-left:6px;vertical-align:middle}
