/* EFBA Pharma (JP) - Journal: list search + pagination, post layout, tables, CTA blocks. */
.blog-search { margin: 0 0 20px; max-width: 560px; }
.blog-search label { display: block; margin-bottom: 4px; font-size: 13px; font-weight: 500; color: var(--mute); }
.blog-search input[type="search"] {
    width: 100%; min-height: 48px; padding: 0 14px; font: 400 16px/1.5 var(--f-body); color: var(--ink);
    background: #fff; border: 1px solid #b9c5bf; border-radius: var(--rad);
}
.blog-search input[type="search"]:focus { outline: 2px solid var(--acc); outline-offset: 1px; border-color: var(--acc); }
.blog-search-status { margin: 0 0 12px; min-height: 1.9em; font-size: 14px; color: var(--mute); }
.blog-empty { margin: 24px 0; color: var(--mute); }
.journal-item[hidden] { display: none; }
.blog-pagination { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 28px; }
.blog-page-btn {
    min-width: 44px; min-height: 44px; padding: 0 12px; font: 500 14px/1 var(--f-body); color: var(--ink);
    background: #fff; border: 1px solid var(--line); border-radius: var(--rad); cursor: pointer;
}
.blog-page-btn:hover:not(:disabled) { background: var(--tint); }
.blog-page-btn.is-active { background: var(--acc); border-color: var(--acc); color: #fff; }
.blog-page-btn:disabled { color: #a3aca7; cursor: default; }
.blog-page-ellipsis { align-self: center; padding: 0 4px; color: var(--mute); }

/* ---- post ---- */
.post { max-width: 820px; padding: 24px var(--gutter) 24px; }
.post-meta span::before { content: "\00b7"; margin: 0 .6em; }
.post-toc { margin: 0 0 32px; padding: 18px 22px; background: var(--tint); border-left: 3px solid var(--acc); }
.post-toc-title { margin: 0 0 6px; font: 700 15px/1.7 var(--f-head); color: var(--ink); }
.post-toc ol, .post-toc ul { margin: 0; padding-left: 1.3em; font-size: 14.5px; line-height: 1.9; }
.post-body { font-size: 16px; line-height: 1.95; }
.post-body h2 { margin: 2.2em 0 .7em; padding-left: 12px; border-left: 3px solid var(--acc); font-size: 22px; }
.post-body h3 { margin: 1.8em 0 .5em; font-size: 18px; }
.post-body p { margin-bottom: 1.1em; }
.post-body ul, .post-body ol { margin: 0 0 1.2em 1.4em; }
.post-body li { margin-bottom: .3em; }
.post-body blockquote { margin: 1.4em 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--seiji-d); color: var(--mute); }
.post-body a { overflow-wrap: anywhere; }
.post-table { width: 100%; margin: 1.4em 0; border-collapse: collapse; font-size: 14.5px; line-height: 1.8; }
.post-table caption { padding-bottom: 8px; text-align: left; font-weight: 700; color: var(--ink); }
.post-table th, .post-table td { padding: 12px 14px 12px 0; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
.post-table thead th { border-top: 0; border-bottom: 2px solid var(--acc); font: 700 14px/1.7 var(--f-head); color: var(--ink); }
.post-table tbody tr:last-child td, .post-table tbody tr:last-child th { border-bottom: 1px solid var(--line); }
@media (max-width: 767px) {
    .post-table, .post-table tbody, .post-table tr, .post-table td, .post-table th { display: block; width: 100%; }
    .post-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .post-table tr { padding: 10px 0; border-top: 1px solid var(--line); }
    .post-table td, .post-table th { padding: 3px 0; border: 0 !important; }
    .post-table td[data-label]::before { content: attr(data-label); display: block; font-size: 12.5px; font-weight: 700; color: var(--mute); }
}
.post-refs { margin: 0 0 0 1.4em; font-size: 14px; line-height: 1.85; color: var(--mute); }
.post-refs li { margin-bottom: 6px; }

/* ---- CTA blocks ---- */
.blog-inline-cta { margin: 1.8em 0; padding: 20px 22px; background: var(--tint); border-left: 3px solid var(--acc); }
.blog-inline-cta h2, .blog-inline-cta h3, .blog-inline-cta .blog-cta-title { margin: 0 0 6px; padding: 0; border: 0; font: 700 17px/1.6 var(--f-head); color: var(--ink); }
.blog-inline-cta p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.85; }
.blog-inline-cta .cta-links { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
.blog-cta { max-width: 820px; margin: 24px var(--gutter) 64px; padding: 24px 24px 26px; background: var(--tint); border-left: 3px solid var(--acc); }
.blog-cta h2, .blog-cta h3 { margin: 0 0 6px; font-size: 19px; }
.blog-cta p { margin: 0 0 16px; font-size: 15px; }
@media (min-width: 900px) { .blog-cta { margin-left: var(--gutter); } }
