/* Public free course pages (/learn). Layout comes from legal.css + blog.css. */
.learn-article { width: min(100%, 760px); margin: 0 auto; }
.learn-toc {
  margin: 0 0 32px; padding: 18px 22px; border: 1px solid var(--border);
  border-radius: 14px; background: var(--surface, rgba(255,255,255,.03));
}
.learn-toc h2 { margin: 0 0 10px; font-size: 16px; color: var(--text); }
.learn-toc ol { margin: 0; padding-left: 22px; columns: 2; column-gap: 28px; }
.learn-toc li { margin-bottom: 6px; font-size: 14.5px; break-inside: avoid; }
.learn-toc a { color: var(--link); text-decoration: none; }
.learn-toc a:hover { text-decoration: underline; }
@media (max-width: 640px) { .learn-toc ol { columns: 1; } }
.lesson { margin: 0 0 44px; padding-top: 8px; scroll-margin-top: 16px; }
.lesson > h2 { margin: 0 0 6px; }
.lesson-summary { margin: 0 0 18px; color: var(--text-muted); font-style: italic; }
.lesson h3 { margin: 24px 0 10px; font-size: 18px; color: var(--text); }
.callout {
  margin: 0 0 20px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--border);
  border-left-width: 4px; font-size: 15px; line-height: 1.7;
}
.callout.tip { border-left-color: #22c55e; }
.callout.warn { border-left-color: #f59e0b; }
.callout.recap { border-left-color: #38bdf8; }
.callout strong.label { display: block; margin-bottom: 4px; color: var(--text); }
.callout ul { margin: 6px 0 0; padding-left: 20px; }
.code-caption { margin: -8px 0 20px; color: var(--text-muted); font-size: 13px; }
.course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 24px 0 36px; }
@media (max-width: 640px) { .course-grid { grid-template-columns: 1fr; } }
