/* ---------- BLOG (index / category / post) ---------- */
.b-head{padding-block:clamp(56px,7vw,96px) clamp(24px,3vw,36px)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(32px,4vw,48px)}
.chips a{display:inline-flex;align-items:center;padding:9px 20px;border-radius:999px;border:1px solid var(--line2);font-size:15px;font-weight:700;color:var(--body);text-decoration:none;transition:border-color .15s,color .15s,background .15s}
.chips a:hover{border-color:var(--black);color:var(--black)}
.chips a.on{background:var(--black);border-color:var(--black);color:var(--white)}

.b-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px 20px;padding-bottom:clamp(72px,8vw,110px)}
.b-card{display:flex;flex-direction:column;gap:8px;text-decoration:none}
.b-thumb{display:block;border-radius:16px;overflow:hidden;aspect-ratio:1/1;background:var(--soft)}
.b-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.b-card:hover .b-thumb img{transform:scale(1.04)}
.b-card .b-cat{font-size:13px;font-weight:700;color:var(--red)}
.b-card .b-title{font-size:17.5px;font-weight:700;line-height:1.45;color:var(--black);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.b-card:hover .b-title{color:var(--red)}
.b-card .b-date{font-size:14px;color:var(--sub)}
.b-empty{margin:0;padding:64px 0 clamp(72px,8vw,110px);text-align:center;font-size:17px;color:var(--sub)}
@media (max-width:1023px){.b-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:639px){.b-grid{grid-template-columns:repeat(2,1fr);gap:24px 14px}}

/* post page */
.b-post{max-width:720px;margin-inline:auto;padding:clamp(36px,4vw,56px) 20px clamp(72px,8vw,110px)}
.b-crumb{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--sub);margin-bottom:32px}
.b-crumb a{color:var(--sub);text-decoration:none}
.b-crumb a:hover{color:var(--red)}
.b-post>.b-cat{display:inline-block;font-size:13.5px;font-weight:700;color:var(--red);padding:5px 13px;border-radius:999px;background:var(--red-tint);margin-bottom:16px}
.b-post h1{font-size:clamp(28px,3.6vw,42px);font-weight:700;line-height:1.35;letter-spacing:-0.03em}
.b-meta{display:flex;gap:14px;margin-top:16px;font-size:14.5px;color:var(--sub)}
.b-meta time+time{position:relative;padding-left:14px}
.b-meta time+time::before{content:"·";position:absolute;left:0}
.b-summary{margin-top:36px;padding:26px 28px;border-radius:20px;background:var(--soft)}
.b-summary>b{font-size:15px;font-weight:700;color:var(--red)}
.b-summary ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.b-summary li{position:relative;padding-left:18px;font-size:16.5px;font-weight:600;line-height:1.65;color:var(--ink)}
.b-summary li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--red)}
.b-sec{margin-top:60px}
.b-sec>h2{font-size:clamp(23px,2.6vw,30px);font-weight:700;line-height:1.4;margin-bottom:20px}
.b-sec h3{font-size:20px;font-weight:700;line-height:1.5;margin:30px 0 12px}
.b-sec p{font-size:17.5px;line-height:1.85;color:var(--body);margin:0 0 18px}
.b-sec p:last-child{margin-bottom:0}
.b-sec ul,.b-sec ol{margin:0 0 20px;padding-left:22px;display:grid;gap:8px;font-size:17px;color:var(--body);line-height:1.75}
.b-sec li::marker{color:var(--red);font-weight:700}
.b-tbl{overflow-x:auto;border:1px solid var(--line);border-radius:16px;margin:26px 0}
.b-tbl table{width:100%;min-width:560px;border-collapse:collapse;font-size:15.5px}
.b-tbl th,.b-tbl td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);line-height:1.6;vertical-align:top}
.b-tbl thead th{background:var(--soft);font-weight:700;color:var(--black);font-size:14.5px;white-space:nowrap}
.b-tbl tbody tr:last-child td{border-bottom:0}
/* diagrams (HTML-rendered figures replacing body illustrations) */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.b-dg{margin:40px 0;padding:28px;border-radius:20px;background:var(--soft);word-break:keep-all}
.b-dg figcaption{font-size:14px;font-weight:700;color:var(--red);margin-bottom:18px;letter-spacing:-0.01em}
.b-dg ol,.b-dg ul{list-style:none;margin:0;padding:0;display:grid}
.b-dg li::marker{content:none}

/* steps: numbered horizontal flow, vertical stack on mobile */
.b-dg-steps ol{grid-auto-flow:column;grid-auto-columns:1fr;gap:34px}
.b-dg-steps li{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--white);border-radius:14px;padding:18px 16px;font-size:14.5px;line-height:1.55}
.b-dg-steps li+li::before{content:"";position:absolute;left:-23px;top:50%;width:12px;height:12px;border-top:2.5px solid var(--red);border-right:2.5px solid var(--red);transform:translateY(-50%) rotate(45deg)}
.b-dg-steps .n{font-size:13px;font-weight:700;color:var(--red);letter-spacing:.04em}
.b-dg-steps b{font-size:15.5px;font-weight:700;color:var(--black)}
.b-dg-steps li>span:last-child{color:var(--sub)}
@media (max-width:639px){
  .b-dg-steps ol{grid-auto-flow:row;gap:20px}
  .b-dg-steps li+li::before{left:16px;top:-17px;width:2px;height:14px;border:0;background:var(--line);transform:none}
}

/* pillars: card grid, 3 across or 2x2 for four items */
.b-dg-pillars ul{grid-template-columns:repeat(3,1fr);gap:14px}
.b-dg-pillars ul:has(li:nth-child(4)){grid-template-columns:repeat(2,1fr)}
.b-dg-pillars li{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--white);border-radius:14px;padding:22px 16px 18px;font-size:14.5px;line-height:1.55}
.b-dg-pillars li::before{content:"";position:absolute;top:0;left:16px;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--red)}
.b-dg-pillars b{font-size:15.5px;font-weight:700;color:var(--black)}
.b-dg-pillars li>span{color:var(--sub)}
@media (max-width:639px){.b-dg-pillars ul,.b-dg-pillars ul:has(li:nth-child(4)){grid-template-columns:1fr}}

/* compare: 3-column table that fits without horizontal scroll */
.b-dg-cmp{padding-bottom:22px}
.b-dg-cmp table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.6;background:var(--white);border-radius:14px;overflow:hidden}
.b-dg-cmp th,.b-dg-cmp td{padding:13px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.b-dg-cmp thead th{font-size:14px;font-weight:700;color:var(--black)}
.b-dg-cmp thead .hl{color:var(--red)}
.b-dg-cmp tbody th[scope="row"]{font-weight:700;color:var(--ink);white-space:nowrap}
.b-dg-cmp .hl{background:var(--red-tint)}
.b-dg-cmp tbody tr:last-child th,.b-dg-cmp tbody tr:last-child td{border-bottom:0}
@media (max-width:639px){
  .b-dg{padding:20px 16px}
  .b-dg-cmp tbody th[scope="row"]{width:28%;white-space:normal;word-break:keep-all}
  .b-dg-cmp th,.b-dg-cmp td{padding:11px 10px;font-size:13.5px}
}
.b-sec.faq{margin-top:64px}
.b-sec.faq h2{margin-bottom:16px}
.b-cta{margin-top:72px;border-radius:24px;background:var(--black);color:var(--white);padding:40px 28px;text-align:center}
.b-cta>p{font-size:clamp(19px,2.2vw,24px);font-weight:700;line-height:1.5;letter-spacing:-0.02em}
.b-cta .btn{margin-top:24px}
.b-cta .alt{margin-top:18px;font-size:14.5px;color:var(--dk-sub)}
.b-cta .alt a{color:var(--white);text-decoration:none}
.b-cta .alt b{color:var(--white)}
.b-cta .alt a:hover b{color:var(--red)}
.b-rel{margin-top:72px;border-top:1px solid var(--black);padding-top:40px}
.b-rel>h2{font-size:22px;font-weight:700;margin-bottom:24px}
.b-grid-rel{grid-template-columns:repeat(3,1fr);padding-bottom:0}
@media (max-width:639px){.b-grid-rel{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.b-cta{padding:32px 22px}}
