/* ============================================================
   坂本家 家族史サイト — 格調・学術スタイル（紺 × 金 × 温石）
   ============================================================ */

:root{
  --navy:#152634;
  --navy-deep:#0d1a25;
  --navy-soft:#22384a;
  --gold:#c1a468;
  --gold-bright:#e0c78d;
  --gold-deep:#9c7f49;
  --paper:#f4f0e7;
  --paper-deep:#ece5d6;
  --ink:#221f19;
  --ink-soft:#574e40;
  --line:#d8cdb7;
  --cream:#f4eede;
  --white:#fffdf8;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;
  font-size:17px;
  line-height:1.95;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{color:var(--gold-deep);text-decoration:none;}
a:hover{text-decoration:underline;}

.inner{max-width:47rem;margin:0 auto;padding:0 1.5rem;}
.wide{max-width:60rem;}

/* ---- 上部の金帯 ---- */
.goldbar{height:3px;background:linear-gradient(90deg,var(--gold-deep),var(--gold-bright),var(--gold-deep));}

/* ---- ヘッダー ---- */
.site-header{background:var(--navy);border-bottom:1px solid var(--gold);}
.site-header .inner{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:0.5rem 1.2rem;flex-wrap:wrap;padding-top:1rem;padding-bottom:1rem;
}
.site-title{margin:0;font-size:1.12rem;letter-spacing:0.46em;font-weight:600;}
.site-title a{color:var(--cream);}
.site-title a:hover{color:var(--gold-bright);text-decoration:none;}
.site-nav{display:flex;gap:0.2rem 1.5rem;flex-wrap:wrap;font-size:0.87rem;letter-spacing:0.2em;}
.site-nav a{color:#cbd0d7;}
.site-nav a:hover{color:var(--gold-bright);text-decoration:none;}
.site-nav a.current{color:var(--gold-bright);border-bottom:1px solid var(--gold);padding-bottom:3px;}

/* ---- 本文コンテナ ---- */
main{max-width:47rem;margin:0 auto;padding:2.6rem 1.5rem 3.4rem;}
main.wide{max-width:60rem;}

/* ---- 見出し ---- */
h1,h2,h3{font-weight:600;line-height:1.55;text-wrap:balance;}
h2{
  font-size:1.42rem;letter-spacing:0.24em;margin:3rem 0 0.5rem;
  display:flex;align-items:center;gap:0.9rem;
}
h2::before{content:"◆";color:var(--gold);font-size:0.7rem;}
h2 .en{font-size:0.72rem;letter-spacing:0.34em;color:var(--gold-deep);text-transform:uppercase;font-weight:600;}
.h2-en{font-size:0.72rem;letter-spacing:0.36em;color:var(--gold-deep);text-transform:uppercase;font-weight:600;margin:0 0 1.9rem 1.9rem;}
h3{font-size:1.12rem;letter-spacing:0.1em;margin:2.2rem 0 0.7rem;}

.subtitle{color:var(--ink-soft);font-size:0.95rem;letter-spacing:0.08em;margin:0 0 1.8rem;}

/* ============================================================
   トップページ
   ============================================================ */

/* ---- ヒーロー（賞状の扉） ---- */
.hero{
  background:
    radial-gradient(130% 80% at 50% -10%, rgba(224,199,141,0.14), transparent 55%),
    linear-gradient(176deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:var(--cream);
  padding:5rem 1.5rem 5.4rem;
}
.hero-frame{
  max-width:41rem;margin:0 auto;
  border:1.5px solid rgba(193,164,104,0.7);
  padding:3.6rem 1.8rem 3.8rem;text-align:center;position:relative;
}
.hero-frame .innerrule{position:absolute;inset:9px;border:1px solid rgba(193,164,104,0.34);pointer-events:none;}
.corner{position:absolute;width:16px;height:16px;border:solid var(--gold-bright);pointer-events:none;}
.corner.tl{top:-1px;left:-1px;border-width:2px 0 0 2px;}
.corner.tr{top:-1px;right:-1px;border-width:2px 2px 0 0;}
.corner.bl{bottom:-1px;left:-1px;border-width:0 0 2px 2px;}
.corner.br{bottom:-1px;right:-1px;border-width:0 2px 2px 0;}
.eyebrow{
  font-size:0.78rem;letter-spacing:0.52em;text-transform:uppercase;margin:0 0 1.8rem;padding-left:0.5em;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold-bright),var(--gold-deep));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-title{
  writing-mode:vertical-rl;margin:0 auto 1.4rem;
  font-size:3.4rem;letter-spacing:0.3em;font-weight:600;line-height:1.22;height:5.4em;color:#f7f2e7;
  text-shadow:0 1px 0 rgba(0,0,0,0.25);
}
.hero-title .ke{color:var(--gold-bright);}
.diamond{color:var(--gold);font-size:0.7rem;letter-spacing:0.6em;margin:0.2rem 0 1.2rem;padding-left:0.6em;}
.hero-sub{font-size:1.06rem;letter-spacing:0.16em;color:#e2dbcb;margin:0;font-weight:500;}
.hero-rule{width:2.6rem;height:1px;background:var(--gold);margin:1.5rem auto 0;}

.lead{font-size:1.1rem;color:var(--ink);text-align:justify;margin:0 0 1.3rem;font-weight:500;}
.lead strong{font-weight:700;}

/* ---- 家系図 ---- */
.tree{margin:0.6rem 0 0.4rem;}
.pnode{
  max-width:24rem;margin:0 auto;text-align:center;
  background:linear-gradient(175deg,var(--navy-soft),var(--navy));color:var(--cream);
  border:1px solid var(--gold);padding:1.25rem 1.3rem;box-shadow:0 6px 20px rgba(21,38,52,0.18);
}
.pname{font-size:1.28rem;letter-spacing:0.22em;font-weight:600;}
.pmeta{font-size:0.82rem;letter-spacing:0.08em;color:var(--gold-bright);margin-top:0.4rem;}
.prole{font-size:0.82rem;letter-spacing:0.06em;color:#cdd3da;margin-top:0.15rem;}
.stem{width:1px;height:2.1rem;background:var(--gold);margin:0 auto;}
.children{display:flex;justify-content:center;gap:0;position:relative;padding-top:2.1rem;flex-wrap:nowrap;}
.children::before{content:"";position:absolute;top:0;left:12.5%;right:12.5%;height:1px;background:var(--gold);}
.branch{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;position:relative;padding:0 0.45rem;}
.branch::before{content:"";position:absolute;top:-2.1rem;left:50%;width:1px;height:2.1rem;background:var(--gold);}
.cnode{
  background:var(--white);border:1px solid var(--line);border-top:2px solid var(--gold);
  padding:0.8rem 0.6rem;text-align:center;width:100%;box-shadow:0 2px 8px rgba(21,38,52,0.06);
}
.cnode.is-now{background:linear-gradient(175deg,var(--navy-soft),var(--navy));border:1px solid var(--gold);}
.cname{font-size:0.97rem;letter-spacing:0.06em;line-height:1.5;font-weight:600;}
.cnode.is-now .cname{color:var(--cream);}
.cmeta{font-size:0.75rem;color:var(--ink-soft);margin-top:0.35rem;line-height:1.6;}
.ctag{display:inline-block;font-size:0.68rem;letter-spacing:0.1em;margin-top:0.55rem;color:var(--gold-deep);border:1px solid var(--gold);border-radius:1em;padding:0.08rem 0.65rem;}
.ctag.is-now{color:var(--navy);background:var(--gold-bright);border-color:var(--gold-bright);font-weight:600;}
.substem{width:1px;height:1.5rem;background:var(--gold);}
.note-small{font-size:0.8rem;color:var(--ink-soft);letter-spacing:0.04em;margin:2rem 0 0;text-align:center;}

/* ---- 記録カード ---- */
.book-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:0.4rem;}
.book-card{background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.book-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(21,38,52,0.2);border-color:var(--gold);text-decoration:none;}
.book-card .figure{margin:0;padding:0.55rem 0.55rem 0;background:var(--navy);}
.book-card .imgframe{border:1px solid rgba(193,164,104,0.65);overflow:hidden;}
.book-card img{display:block;width:100%;height:158px;object-fit:cover;object-position:center top;}
.book-card .body{padding:1rem 1.1rem 1.25rem;border-top:1px solid var(--line);}
.book-card .kicker{font-size:0.66rem;letter-spacing:0.26em;color:var(--gold-deep);text-transform:uppercase;margin:0 0 0.45rem;font-weight:600;}
.book-card h3{font-size:1.1rem;letter-spacing:0.1em;margin:0 0 0.55rem;}
.book-card p{font-size:0.87rem;line-height:1.9;color:var(--ink-soft);margin:0;}

/* ============================================================
   本文ページ（生涯・弔辞）
   ============================================================ */

/* ---- ページ扉 ---- */
.page-hero{
  background:linear-gradient(176deg, var(--navy) 0%, var(--navy-deep) 100%);
  color:var(--cream);border-bottom:1px solid var(--gold);
}
.page-hero .inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-top:2.8rem;padding-bottom:2.8rem;}
.page-hero .lead-block{max-width:32rem;}
.page-hero .kicker{font-size:0.7rem;letter-spacing:0.4em;color:var(--gold-bright);text-transform:uppercase;margin:0 0 0.9rem;}
.page-hero .lead{color:#dfd8c8;font-size:0.98rem;font-weight:400;margin:0;}
.page-hero .lead strong{color:var(--cream);font-weight:600;}
.tategaki-title{
  writing-mode:vertical-rl;font-size:1.9rem;font-weight:600;letter-spacing:0.32em;line-height:1.8;
  min-height:11em;margin:0;color:#f7f2e7;flex-shrink:0;
}

/* ---- 本文 ---- */
.honbun p{margin:0 0 1.5rem;text-align:justify;}
.honbun p.first::first-letter{color:var(--gold-deep);font-size:1.15em;}
blockquote{margin:1.8rem 0;padding:0.3rem 1.4rem;border-left:2px solid var(--gold);color:var(--ink-soft);}
.signature{text-align:right;margin-top:2.2rem;letter-spacing:0.28em;color:var(--ink);}
.signature .rank{display:block;font-size:0.85rem;color:var(--ink-soft);letter-spacing:0.18em;margin-bottom:0.2rem;}
.signature .name{font-size:1.05rem;}

/* ---- 但し書き ---- */
.note{background:var(--paper-deep);border-left:3px solid var(--gold);padding:1.1rem 1.35rem;font-size:0.88rem;line-height:1.95;color:var(--ink-soft);margin:1.8rem 0;letter-spacing:0.02em;}

/* ---- 年表 ---- */
.timeline-wrap{overflow-x:auto;margin:1.4rem 0;}
table.timeline{border-collapse:collapse;width:100%;background:var(--white);font-size:0.9rem;line-height:1.75;}
table.timeline th,table.timeline td{border:1px solid var(--line);padding:0.5rem 0.85rem;vertical-align:top;}
table.timeline th{background:var(--navy);color:var(--cream);font-weight:600;letter-spacing:0.1em;white-space:nowrap;}
table.timeline td.era{white-space:nowrap;color:var(--gold-deep);font-weight:600;}
table.timeline tr:nth-child(even){background:var(--paper);}

/* ---- 人物録（登載記事） ---- */
.record{background:var(--white);border:1px solid var(--line);border-top:2px solid var(--gold);padding:1.4rem 1.6rem;margin:1.4rem 0;font-size:0.95rem;}
.record h3{margin-top:1.2rem;}
.record h3:first-child{margin-top:0;}
.record ul{padding-left:1.3rem;margin:0.5rem 0;}
.record li{margin:0.35rem 0;}
.record .label{color:var(--gold-deep);font-weight:600;}

/* ---- 原本アーカイブ ---- */
.scan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0.9rem;margin:1.4rem 0;}
.scan-grid a{display:block;background:var(--navy);border:1px solid var(--line);padding:0.4rem;}
.scan-grid a:hover{border-color:var(--gold);text-decoration:none;}
.scan-grid img{width:100%;height:170px;object-fit:cover;object-position:top;display:block;border:1px solid rgba(193,164,104,0.4);}
.scan-grid .cap{display:block;font-size:0.72rem;color:var(--cream);text-align:center;padding-top:0.35rem;letter-spacing:0.05em;}

/* ---- ページ内目次 ---- */
.toc{background:var(--white);border:1px solid var(--line);padding:1rem 1.6rem;font-size:0.88rem;margin:1.6rem 0;}
.toc ul{margin:0;padding-left:1.3rem;}
.toc li{margin:0.25rem 0;}

/* ---- フッター ---- */
.site-footer{
  background:var(--navy);color:#c2c8cf;text-align:center;
  padding:2.6rem 1.5rem 3rem;margin-top:3.4rem;border-top:1px solid var(--gold);
  font-size:0.82rem;letter-spacing:0.16em;line-height:2.1;
}
.site-footer .f-name{color:var(--cream);letter-spacing:0.38em;font-size:0.95rem;}
.site-footer .f-diamond{color:var(--gold);font-size:0.6rem;letter-spacing:0.5em;display:block;margin:0.5rem 0;}

/* ---- スマホ ---- */
@media (max-width:640px){
  .hero-title{font-size:2.7rem;height:5em;}
  .book-cards{grid-template-columns:1fr;gap:1.1rem;}
  .book-card img{height:200px;}
  .children{flex-wrap:wrap;gap:1.1rem 0;padding-top:1.7rem;}
  .children::before{display:none;}
  .branch{flex:0 0 50%;padding:0 0.4rem;}
  .branch::before{display:none;}
  .page-hero .inner{flex-direction:row-reverse;justify-content:flex-end;gap:1.4rem;}
  .tategaki-title{font-size:1.6rem;min-height:9em;}
  main{padding:2rem 1.2rem 2.8rem;}
}
