/* ============================================================
   承継法務支援ネットワーク 公式サイト  共通スタイル
   デザイン：和・藍鼠（あいねず）／見出し明朝・本文ゴシック
   ============================================================ */

:root{
  --washi:#f4f2ea; --panel:#ffffff; --panel-2:#f2efe6;
  --ink:#282d31; --sub:#565a54; --muted:#7e7a6d;
  --line:#dcd7ca; --line-strong:#c8c2b2;
  --accent:#35586c; --accent-dark:#2a4757; --accent-ink:#ffffff; --accent-soft:#e3e9ec;
  --seal:#a9503f;
  --radius:10px; --maxw:1080px; --contentw:820px;
  --sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP",Meiryo,sans-serif;
  --serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
  --shadow:0 18px 44px -30px rgba(20,30,40,.5);
}
:root[data-theme="light"]{
  --washi:#f4f2ea; --panel:#ffffff; --panel-2:#f2efe6;
  --ink:#282d31; --sub:#565a54; --muted:#7e7a6d;
  --line:#dcd7ca; --line-strong:#c8c2b2;
  --accent:#35586c; --accent-dark:#2a4757; --accent-ink:#ffffff; --accent-soft:#e3e9ec;
  --seal:#a9503f;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; color-scheme:light;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0; background:var(--washi); color:var(--ink);
  font-family:var(--sans); line-height:1.85; font-size:16px;
  -webkit-font-smoothing:antialiased; text-size-adjust:100%;
}
a{color:var(--accent); text-underline-offset:3px;}
img{max-width:100%; height:auto; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px;}
.narrow{max-width:var(--contentw); margin-left:auto; margin-right:auto;}

/* ---------- ヘッダー ---------- */
.site-header{position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--panel) 92%, transparent);
  backdrop-filter:saturate(1.2) blur(6px); border-bottom:1px solid var(--line);}
.header-inner{max-width:var(--maxw); margin:0 auto; padding:12px 20px; display:flex; align-items:center; gap:16px;}
.brand{display:flex; align-items:center; text-decoration:none; flex:0 0 auto;}
.brand img{height:38px; width:auto; display:block;}
@media (max-width:1000px){.brand img{height:34px;}}
@media (max-width:380px){.brand img{height:30px;}}
.nav{margin-left:auto; display:flex; align-items:center; gap:4px; flex-wrap:wrap;}
.nav a{color:var(--sub); text-decoration:none; font-size:13px; padding:7px 9px; border-radius:7px; white-space:nowrap;}
.nav a:hover{color:var(--ink); background:var(--panel-2);}
.nav a.current{color:var(--accent); font-weight:700;}
.nav a.cta{background:var(--accent); color:var(--accent-ink); font-weight:700; padding:8px 16px;}
.nav a.cta:hover{background:var(--accent-dark);}
.nav-toggle{display:none; margin-left:auto; background:transparent; border:1px solid var(--line-strong); border-radius:8px; padding:8px 12px; color:var(--ink); font-size:14px; cursor:pointer;}

@media (max-width:1000px){
  .nav-toggle{display:inline-block;}
  .nav{display:none; margin:0; width:100%; flex-direction:column; align-items:stretch; gap:2px; padding-top:10px;}
  .nav.open{display:flex;}
  .header-inner{flex-wrap:wrap;}
  .nav a{padding:11px 12px; border-radius:8px; font-size:14.5px;}
  .nav a.cta{text-align:center; margin-top:6px;}
}

/* ---------- 見出し・本文 ---------- */
h1,h2,h3,h4{font-family:var(--serif); font-weight:700; letter-spacing:.02em; text-wrap:balance; line-height:1.45;}
p{margin:0 0 14px;}
.eyebrow{font-family:var(--sans); font-size:12px; letter-spacing:.14em; color:var(--seal); margin:0 0 8px; font-weight:700;}
.lead{color:var(--sub); font-size:16.5px;}

/* ---------- セクション ---------- */
section{padding:46px 0;}
section.tight{padding:32px 0;}
.section-title{font-size:clamp(20px,3vw,27px); margin:0 0 6px;}
.section-title + .lead{margin-top:4px;}
.bg-alt{background:var(--panel-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* ---------- ページ見出し帯 ---------- */
.page-head{background:var(--panel-2); border-bottom:1px solid var(--line); padding:34px 0;}
.crumb{font-size:12.5px; color:var(--muted); margin-bottom:8px;}
.crumb a{color:var(--muted);}
.page-head h1{font-size:clamp(23px,4vw,33px); margin:0;}
.page-head .lead{margin:10px 0 0;}

/* ---------- ヒーロー（トップ） ---------- */
.hero{padding:64px 0 40px;}
.hero h1{font-size:clamp(28px,5.2vw,46px); line-height:1.4; margin:0 0 16px;}
.hero .lead{font-size:clamp(15px,2vw,18px); max-width:44ch;}
.badges{display:flex; flex-wrap:wrap; gap:12px; margin-top:22px;}
.badge{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:12px 16px; text-align:center; min-width:120px;}
.badge b{display:block; font-family:var(--serif); font-size:19px; color:var(--accent);}
.badge small{color:var(--muted); font-size:12px;}

/* ---------- ボタン ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--accent); color:var(--accent-ink); font-weight:700; font-size:15px; border-radius:9px; padding:13px 24px; border:0; font-family:var(--sans); text-decoration:none; cursor:pointer; transition:background .15s;}
.btn:hover{background:var(--accent-dark);}
.btn.ghost{background:transparent; color:var(--accent); border:1.6px solid var(--accent);}
.btn.ghost:hover{background:var(--accent-soft);}
.btn.sm{padding:9px 16px; font-size:13.5px;}
.btn.lg{padding:15px 30px; font-size:16px;}
.btn-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:8px;}

/* ---------- カード・グリッド ---------- */
.grid{display:grid; gap:16px;}
.g2{grid-template-columns:repeat(2,1fr);}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
@media (max-width:820px){.g3,.g4{grid-template-columns:1fr 1fr;}}
@media (max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr;}}
.card{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:22px;}
.card h3{font-size:17px; margin:0 0 8px;}
.card p{margin:0; color:var(--sub); font-size:14px;}
.card p + p{margin-top:10px;}
.card p b{color:var(--ink);}
.card .who{margin:13px 0 0; padding-top:11px; border-top:1px dashed var(--line-strong); font-size:13px; color:var(--muted);}
.card .who b{color:var(--accent); font-weight:700;}
.card-lg{background:var(--panel); border:1.5px solid var(--line-strong); border-radius:12px; padding:26px; display:flex; flex-direction:column; gap:14px; align-items:flex-start;}
.card-lg h3{font-size:20px; margin:0;}
.card-lg p{margin:0; color:var(--sub); font-size:14.5px;}

/* ---------- コラム一覧・記事 ---------- */
.col-card{text-decoration:none; color:inherit; transition:border-color .15s, box-shadow .15s;}
.col-card:hover{border-color:var(--accent); box-shadow:var(--shadow);}
.col-card h3{color:var(--ink);}
.col-meta{color:var(--muted); font-size:12.5px;}
.article-meta{color:var(--muted); font-size:13px; margin:10px 0 0;}

/* ---------- リスト ---------- */
ul.check{list-style:none; padding:0; margin:0; display:grid; gap:11px;}
ul.check li{position:relative; padding-left:30px; color:var(--sub);}
ul.check li::before{content:"✓"; position:absolute; left:0; top:.15em; color:var(--accent); font-weight:800; background:var(--accent-soft); width:21px; height:21px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px;}
ul.check li b{color:var(--ink);}

/* ---------- ステップ ---------- */
.steps{display:grid; grid-template-columns:repeat(5,1fr); gap:12px; counter-reset:step;}
@media (max-width:820px){.steps{grid-template-columns:1fr 1fr;}}
.step{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:18px 14px; text-align:center;}
.step .n{width:30px; height:30px; border-radius:50%; background:var(--accent); color:var(--accent-ink); font-weight:700; display:flex; align-items:center; justify-content:center; margin:0 auto 10px; font-family:var(--serif);}
.step h4{margin:0 0 4px; font-size:14.5px;}
.step p{margin:0; font-size:12.5px; color:var(--muted);}

/* ---------- 安心ボックス・引用 ---------- */
.callout{background:var(--accent-soft); border:1px solid var(--accent); border-radius:var(--radius); padding:22px 24px;}
.callout .big{font-family:var(--serif); font-weight:700; font-size:17px; margin:0 0 10px;}
.callout ul{margin:0; padding-left:20px; color:var(--sub);}
.callout li{margin:5px 0;}
.leadquote{border-left:4px solid var(--accent); background:var(--accent-soft); border-radius:0 12px 12px 0; padding:22px 24px;}
.leadquote .q{display:block; color:var(--sub); margin-bottom:10px;}
.leadquote p{margin:0; color:var(--ink); font-size:17px;}

/* ---------- Q&A ---------- */
.qa{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--panel);}
.qa .item{border-bottom:1px solid var(--line);}
.qa .item:last-child{border-bottom:0;}
.qa .q{background:var(--panel-2); padding:15px 20px; font-weight:700; display:flex; gap:12px;}
.qa .q::before{content:"Q"; color:var(--accent); font-family:var(--serif); font-weight:800;}
.qa .a{padding:15px 20px; color:var(--sub); font-size:14.5px; display:flex; gap:12px;}
.qa .a::before{content:"A"; color:var(--seal); font-family:var(--serif); font-weight:800; flex:0 0 auto;}

/* ---------- テーブル ---------- */
.table-wrap{overflow-x:auto;}
table.info{width:100%; border-collapse:collapse; font-size:14.5px; background:var(--panel);}
table.info th{text-align:left; background:var(--panel-2); border:1px solid var(--line); padding:13px 15px; width:30%; font-weight:700; vertical-align:top; white-space:nowrap;}
table.info td{border:1px solid var(--line); padding:13px 15px; color:var(--sub);}

table.compare{width:100%; border-collapse:collapse; font-size:14px; background:var(--panel);}
table.compare caption{text-align:left; font-weight:700; margin-bottom:8px; font-size:14.5px;}
table.compare th, table.compare td{border:1px solid var(--line); padding:11px 14px; text-align:left; vertical-align:top;}
table.compare thead th{background:var(--panel-2); font-weight:700; color:var(--ink);}
table.compare tbody th{background:var(--panel-2); font-weight:700; white-space:nowrap; color:var(--ink);}
table.compare td{color:var(--sub);}

/* ---------- 記事内目次 ---------- */
.toc{background:var(--panel); border:1px solid var(--line-strong); border-radius:var(--radius); padding:20px 24px;}
.toc p.ttl{margin:0 0 10px; font-weight:700; font-family:var(--serif);}
.toc ol{margin:0; padding-left:22px; color:var(--sub); font-size:14.5px;}
.toc li{margin:6px 0;}
.toc a{color:var(--ink); text-decoration:none;}
.toc a:hover{color:var(--accent); text-decoration:underline;}

/* ---------- 期限の時系列（手続きの流れ） ---------- */
.timeline{display:grid; gap:12px;}
.tl-item{display:grid; grid-template-columns:118px 1fr; gap:20px; background:var(--panel); border:1px solid var(--line);
  border-left:4px solid var(--line-strong); border-radius:var(--radius); padding:18px 22px;}
.tl-item .when{font-family:var(--serif); font-weight:700; font-size:16px; color:var(--accent); letter-spacing:.02em;}
.tl-item h3{margin:0 0 6px; font-size:17px;}
.tl-item p{margin:0; color:var(--sub); font-size:14.5px;}
.tl-item p b{color:var(--ink);}
.tl-item.urgent{border-left-color:var(--seal); background:#fdfaf8;}
.tl-item.urgent .when{color:var(--seal);}
@media (max-width:620px){
  .tl-item{grid-template-columns:1fr; gap:4px; padding:16px 18px;}
  .tl-item .when{font-size:15px;}
}
.card.accent-border{border-left:4px solid var(--seal);}
.card.accent-border .eyebrow{font-family:var(--serif); font-size:20px; letter-spacing:.02em; margin:0 0 4px;}

/* ---------- 最終CTA ---------- */
.final-cta{background:var(--accent-soft); border:1px solid var(--accent); border-radius:14px; padding:38px 28px; text-align:center;}
.final-cta h2{font-size:clamp(21px,3.4vw,28px); margin:0 0 8px;}
.final-cta p{margin:0 auto 20px; color:var(--sub); max-width:52ch;}
.micro{font-size:12.5px; color:var(--muted);}

/* ---------- フッター ---------- */
.site-footer{background:var(--panel-2); border-top:1px solid var(--line); padding:40px 0 24px; margin-top:20px;}
.footer-grid{display:flex; flex-wrap:wrap; gap:28px; justify-content:space-between;}
.footer-brand{max-width:340px;}
.footer-brand .brand{margin-bottom:10px;}
.footer-brand p{font-size:13px; color:var(--muted); margin:0;}
.footer-nav{display:flex; flex-wrap:wrap; gap:8px 22px; font-size:13.5px;}
.footer-nav a{color:var(--sub); text-decoration:none;}
.footer-nav a:hover{color:var(--ink);}
.footer-bottom{margin-top:26px; padding-top:16px; border-top:1px solid var(--line); font-size:12px; color:var(--muted); display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between;}

/* ---------- 追従CTA（スマホ） ---------- */
.float-cta{position:fixed; left:0; right:0; bottom:0; z-index:40; display:none; gap:8px; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:color-mix(in srgb,var(--panel) 96%, transparent); border-top:1px solid var(--line); box-shadow:0 -8px 24px -16px rgba(0,0,0,.4);}
.float-cta .btn{flex:1;}
@media (max-width:900px){.float-cta{display:flex;} body{padding-bottom:76px;}}

/* ---------- 解説図（インラインSVG） ----------
   記事本文に図を入れるときは <figure class="diagram"> で囲み、
   中に <div class="diagram-body"><svg …></svg></div> と <figcaption> を置く。
   SVGは viewBox で拡大縮小するため、画面幅に応じて自動で収まる。
   狭い画面では図が小さくなりすぎないよう、min-width を超えると横スクロールになる。 */
figure.diagram{margin:30px 0 0;}
.diagram-body{overflow-x:auto; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:20px 18px;}
.diagram-body svg{display:block; width:100%; min-width:520px; height:auto;}
.diagram-body svg text{font-family:var(--sans); fill:var(--ink);}
figure.diagram figcaption{margin-top:10px; font-size:12.5px; line-height:1.85; color:var(--muted);}
figure.diagram figcaption b{color:var(--sub);}
/* 図が画面に収まらない狭い画面だけ、横スクロールできることを案内する */
.scroll-hint{display:none; margin:0 0 6px; font-size:12px; color:var(--muted);}
@media (max-width:700px){.scroll-hint{display:block;}}

/* ---------- Googleマップの埋め込み ----------
   使い方：<div class="map-embed"><iframe src="…" …></iframe></div>
   画面幅に合わせて伸縮し、スマートフォンでは縦を少し低くする。 */
.map-embed{position:relative; width:100%; aspect-ratio:16/9; min-height:240px; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--panel-2);}
.map-embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0; display:block;}
@media (max-width:700px){.map-embed{aspect-ratio:4/3;}}
.map-note{margin:10px 0 0; font-size:12.5px; color:var(--muted);}

/* ---------- 汎用 ---------- */
.center{text-align:center;}
.mt-s{margin-top:10px;} .mt-m{margin-top:20px;} .mt-l{margin-top:32px;}
.contact-cards .card{text-align:center;}
.contact-cards .card .big{font-family:var(--serif); font-size:20px; color:var(--ink); margin:6px 0;}
.tel-link{font-family:var(--serif); font-size:clamp(22px,4vw,30px); color:var(--accent); text-decoration:none; font-weight:700;}
:focus-visible{outline:3px solid var(--accent); outline-offset:2px; border-radius:4px;}
