/* column（concept.css の上に重ねて使う） */
.cl-lead{max-width:680px; margin:0 auto 48px; text-align:center; font-size:14.5px; line-height:2.1; color:var(--ink-soft);}
.cl-empty{text-align:center; color:var(--sub); font-size:14px;}
.cl-list{display:grid; grid-template-columns:repeat(3,1fr); gap:34px 26px;}
.cl-card{display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:box-shadow .3s, transform .3s;}
.cl-card:hover{box-shadow:0 16px 34px -20px rgba(42,38,33,.45); transform:translateY(-2px);}
.cl-card .media{aspect-ratio:16/10; background:var(--paper-2); overflow:hidden;}
.cl-card .media img{width:100%; height:100%; object-fit:cover; transition:transform .7s;}
.cl-card:hover .media img{transform:scale(1.04);}
.cl-card .tx{padding:20px 22px 24px;}
.cl-card .meta{font-size:12.5px; letter-spacing:.12em; color:var(--sub);}
.cl-card .meta .cat{color:var(--gold-deep); font-size:11.5px; letter-spacing:.06em; margin-right:12px;}
.cl-card h2{font-size:16.5px; font-weight:600; line-height:1.75; margin:8px 0 8px; letter-spacing:.04em;}
.cl-card p{font-size:13px; line-height:1.95; color:var(--ink-soft); margin:0;}

/* article */
.hero.post-hero-bg{height:52vh; min-height:380px;}
.hero .post-ttl{font-size:clamp(21px,2.6vw,30px); font-weight:500; letter-spacing:.08em; line-height:1.75; margin:16px auto 0; max-width:860px; padding:0 24px; text-shadow:0 2px 30px rgba(0,0,0,.25);}
.post{max-width:760px; margin:0 auto; padding:40px 32px 96px;}
.post-meta{text-align:center; font-size:13px; letter-spacing:.12em; color:var(--sub);}
.post-meta .cat{color:var(--gold-deep); font-size:12px; letter-spacing:.06em; margin-right:14px;}
.post-meta .upd{margin-left:14px; font-size:12px;}
.post-body{margin-top:36px;}
.post-body h2{font-size:21px; font-weight:600; line-height:1.7; margin:56px 0 18px; padding:0 0 12px; border-bottom:1px solid var(--line);}
.post-body h2::before{content:""; display:block; width:28px; height:1px; background:var(--gold); margin-bottom:14px;}
.post-body h3{font-size:16.5px; font-weight:600; margin:34px 0 10px; color:var(--ink);}
.post-body p{font-size:15.5px; line-height:2.15; color:var(--ink-soft); margin:0 0 20px;}
.post-body ul{margin:0 0 24px; padding:20px 24px 20px 42px; background:var(--card); border:1px solid var(--line); border-radius:12px;}
.post-body li{font-size:15px; line-height:2; color:var(--ink-soft);}
.post-body strong{font-weight:600; color:var(--ink); background:linear-gradient(transparent 62%, var(--gold-tint) 62%);}
.post-body a{color:var(--gold-deep); border-bottom:1px solid var(--gold); transition:.2s;}
.post-body a:hover{color:var(--ink); border-color:var(--ink);}
/* 記事内の画像（1枚：やや広め／連続：ギャラリー） */
.post-body figure{margin:0;}
.post-body figure img{width:100%; height:auto; object-fit:cover; border-radius:14px; border:1px solid var(--line); background:var(--card);}
.post-body figcaption{font-size:12px; line-height:1.8; letter-spacing:.06em; color:var(--sub); text-align:center; margin-top:10px;}
.post-body .pf{margin:36px -60px 40px;}
.post-body .pf img{max-height:540px;}
.post-body .pg{display:grid; gap:14px; margin:36px -60px 40px;}
.post-body .pg-2{grid-template-columns:repeat(2,1fr);}
.post-body .pg-3{grid-template-columns:repeat(3,1fr);}
.post-body .pg figure img{aspect-ratio:4/5;}
.post-body .pg-3 figure img{aspect-ratio:1/1;}
.post-more{padding:0 0 96px;}
.post-more .lbl2{text-align:center;}

@media(max-width:960px){ .cl-list{grid-template-columns:repeat(2,1fr);} .post-body .pf,.post-body .pg{margin-left:0; margin-right:0;} }
@media(max-width:720px){
  .cl-list{grid-template-columns:1fr; gap:22px;}
  .cl-lead{margin-bottom:32px; text-align:left;}
  .post{padding:28px 20px 72px;}
  .post-body h2{font-size:18.5px; margin-top:44px;}
  .post-body p{font-size:15px;}
  .post-body ul{padding:16px 18px 16px 34px;}
  .post-body .pf,.post-body .pg{margin:28px 0 32px;}
  .post-body .pg{gap:8px;}
  .post-body .pg-3{grid-template-columns:repeat(3,1fr);}
  .post-body figure img{border-radius:10px;}
  .post-body figcaption{font-size:11px; margin-top:6px;}
}
