/* photoba ブログ共通スタイル
   記事が複数になったため、各HTMLへのインライン記述をやめて1ファイルに集約している。
   ページ間でブラウザキャッシュが効き、修正も1箇所で済む。
   （ビルド工程は増やさず、静的ファイルとして配信するだけ） */

@font-face{font-family:"ZenKakuSub";src:url("/fonts/zenkaku-400.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"ZenKakuSub";src:url("/fonts/zenkaku-700.woff2") format("woff2");
  font-weight:700;font-style:normal;font-display:swap;}

:root{
  /* 参考にしたメディア系テンプレートに倣い、地をわずかに色づけしてカードを白で浮かせる */
  --bg:#f5f1ea;--card:#fffdfb;--line:#e7ded1;--line-2:#d8ccbb;
  --ink:#2f2a27;--ink-2:#5f5348;--ink-3:#766c60;
  --accent:#7f6644;--gold:#b89b7a;
  --btn:#2f2a27;--btn-2:#1a1613;
  --maxw:1080px;--read:720px;--r:10px;
  --s1:8px;--s2:16px;--s3:24px;--s4:36px;--s5:56px;--s6:80px;--s7:112px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:76px;}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"ZenKakuSub","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,"Segoe UI",Meiryo,system-ui,sans-serif;
  line-height:1.9;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--accent);}
a:hover{color:var(--btn);}
h1,h2,h3{margin:0;letter-spacing:-.02em;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:22px;padding-right:22px;}
.read{max-width:var(--read);margin:0 auto;padding-left:22px;padding-right:22px;}

/* ヘッダー */
nav.top{position:sticky;top:0;z-index:20;background:rgba(245,241,234,.9);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);
  padding:var(--s2) 22px;max-width:var(--maxw);margin:0 auto;}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);}
.brand .nm{font-weight:700;font-size:1.15rem;letter-spacing:-.03em;}
.btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font:inherit;font-weight:700;
  border:none;border-radius:999px;padding:.6em 1.3em;background:var(--btn);color:#fff;text-decoration:none;
  transition:background .15s;}
.btn:hover{background:var(--btn-2);color:#fff;}

.crumb{font-size:.78rem;color:var(--ink-3);padding:var(--s3) 0 0;}
.crumb a{color:var(--ink-3);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:.15em;}

/* 英語ラベル＋和文見出し。小さいラベルは欧文だから成立する */
.label{font-size:.9rem;font-weight:700;letter-spacing:.06em;color:var(--accent);margin-bottom:var(--s1);}
.label::after{content:" /";opacity:.5;}

/* 記事一覧 */
header.page{padding:var(--s6) 0 var(--s5);}
header.page h1{font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;line-height:1.3;}
header.page .sub{color:var(--ink-2);margin:var(--s3) 0 0;max-width:38em;}

.cards{list-style:none;margin:0;padding:0 0 var(--s7);
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);}
.card{background:var(--card);border-radius:var(--r);overflow:hidden;
  box-shadow:0 2px 10px -6px rgba(47,42,39,.25);transition:transform .18s,box-shadow .18s;}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(47,42,39,.45);}
.card a.thumb{display:block;}
.card img{aspect-ratio:16/9;object-fit:cover;width:100%;}
.card .body{padding:var(--s3);}
.card .date{font-size:.78rem;color:var(--ink-3);font-weight:700;}
.card h2{font-size:1.02rem;font-weight:700;line-height:1.6;margin:var(--s1) 0 var(--s2);}
.card h2 a{color:var(--ink);text-decoration:none;}
.card h2 a:hover{color:var(--accent);}
.card .excerpt{margin:0 0 var(--s3);color:var(--ink-2);font-size:.88rem;line-height:1.8;}
.pill{display:inline-block;background:var(--accent);color:#fff;border-radius:999px;
  padding:.3em 1em;font-size:.75rem;font-weight:700;}

/* 記事本文 */
article{padding:var(--s5) 0 var(--s7);}
article h1{font-size:clamp(1.55rem,3.4vw,2.2rem);font-weight:700;line-height:1.4;margin-bottom:var(--s3);}
.hero-img{border-radius:var(--r);overflow:hidden;margin:var(--s4) 0;}
.meta{font-size:.82rem;color:var(--ink-3);border-bottom:1px solid var(--line);
  padding-bottom:var(--s3);margin-bottom:var(--s4);}
.lede{font-size:1.05rem;color:var(--ink-2);}
article h2{font-size:1.35rem;font-weight:700;line-height:1.45;margin:var(--s6) 0 var(--s3);
  padding-top:var(--s3);border-top:2px solid var(--gold);}
article h3{font-size:1.1rem;font-weight:700;margin:var(--s5) 0 var(--s2);}
article p{margin:0 0 var(--s3);}
article ul,article ol{margin:0 0 var(--s3);padding-left:1.4em;}
article li{margin:.4em 0;}

/* 開示・注意ボックス */
.disclose{background:var(--card);border-radius:var(--r);padding:var(--s3);font-size:.92rem;
  color:var(--ink-2);margin:var(--s4) 0;border-left:3px solid var(--gold);}
.disclose b{color:var(--ink);}
.note{background:var(--card);border-radius:var(--r);padding:var(--s3);margin:var(--s3) 0;font-size:.94rem;}
.note b{display:block;margin-bottom:var(--s1);}

/* 目次 */
.toc{background:var(--card);border-radius:var(--r);padding:var(--s3) var(--s4);margin:var(--s4) 0;}
.toc p{font-weight:700;margin:0 0 var(--s2);font-size:.95rem;}
.toc ol{margin:0;padding-left:1.3em;font-size:.94rem;}
.toc li{margin:.35em 0;}
.toc a{text-decoration:none;}
.toc a:hover{text-decoration:underline;}

/* 表 */
.scroll{overflow-x:auto;margin:var(--s3) 0 var(--s2);
  background:var(--card);border-radius:var(--r);padding:var(--s2);}
table{border-collapse:collapse;font-size:.88rem;min-width:640px;width:100%;line-height:1.7;}
th,td{text-align:left;padding:var(--s2) 12px;border-bottom:1px solid var(--line);vertical-align:top;}
thead th{border-bottom:2px solid var(--ink-2);font-size:.8rem;color:var(--ink-3);white-space:nowrap;}
tbody th{font-weight:700;white-space:nowrap;}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:none;}
.src{font-size:.78rem;color:var(--ink-3);margin:0 0 var(--s4);line-height:1.8;}
.src a{color:var(--ink-3);}
.na{color:var(--ink-3);}
.free{font-weight:700;}

/* CTA・関連記事 */
.cta{background:var(--card);border-radius:var(--r);padding:var(--s4);margin:var(--s6) 0 0;text-align:center;}
.cta h3{margin-top:0;}
.cta p{font-size:.94rem;color:var(--ink-2);}
.related{padding:0 0 var(--s7);}
.related h2{font-size:1.2rem;font-weight:700;margin-bottom:var(--s4);}

footer{border-top:1px solid var(--line);padding:var(--s5) 0;color:var(--ink-3);font-size:.82rem;}
.foot-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  max-width:var(--maxw);margin:0 auto;padding:0 22px;}
footer a{color:var(--ink-3);}

@media (max-width:900px){
  .cards{grid-template-columns:repeat(2,1fr);gap:var(--s3);}
}
@media (max-width:640px){
  :root{--s7:72px;--s6:56px;--s5:40px;}
  .cards{grid-template-columns:1fr;}
  article h2{font-size:1.2rem;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .card{transition:none;}
  .card:hover{transform:none;}
}
