/* Article-local comparison and source cards; shared brand styles remain intact. */
.ca-visual { margin: 32px 0; }
.ca-visual img { display:block; width:100%; height:auto; border-radius:14px; }
.ca-visual figcaption { margin-top:12px; font-size:.88rem; line-height:1.8; color:var(--ink-soft); }
.ca-table { width:100%; border-collapse:collapse; margin:24px 0; table-layout:fixed; font-size:.94rem; line-height:1.9; }
.ca-table caption { text-align:left; font-weight:700; margin-bottom:12px; }
.ca-table th,.ca-table td { border:1px solid var(--line); padding:16px; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.ca-table thead th { background:rgba(49,86,61,.07); }
.ca-table th:first-child { width:23%; }
.source-cards { list-style:none; padding:0; display:grid; gap:14px; }
.source-cards li { border:1px solid var(--line); padding:18px 20px; border-radius:12px; margin:0; }
.source-cards p { margin:8px 0 0; font-size:.91rem; }
.article-body .source-cards { border-top:0; }
.source-cards a,.article-body section p a { color:var(--green); text-decoration:underline; text-underline-offset:.2em; }
@media(max-width:640px) {
 .ca-table caption { display:block; width:100%; }
 .ca-table,.ca-table tbody,.ca-table tr,.ca-table th,.ca-table td { display:block; width:100%; }
 .ca-table thead { display:none; }
 .ca-table tr { border:1px solid var(--line); border-radius:12px; overflow:hidden; margin:16px 0; }
 .ca-table th,.ca-table td { border:0; border-bottom:1px solid var(--line); padding:14px 16px; }
 .ca-table th:first-child { width:100%; background:rgba(49,86,61,.07); }
 .ca-table td::before { content:attr(data-label); display:block; font-weight:700; font-size:.84rem; color:var(--green); margin-bottom:6px; }
 .ca-table td:last-child { border-bottom:0; }
 .source-cards li { padding:16px; }
}
