/* Learn section: index and articles */
.learn-list { padding-block: 0 var(--section); }
.learn-card { display: grid; background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.learn-card-featured { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; }
.learn-img { display: block; background: #f7faff; }
.learn-img img { width: 100%; aspect-ratio: 16 / 9; }
.nw { white-space: nowrap; }
.learn-body { padding: clamp(1.75rem, 3.5vw, 2.75rem); }
.learn-body h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.05rem); line-height: 1.15; margin-top: 1rem; color: var(--pine); }
.learn-body h2 a { text-decoration: none; }
.learn-body h2 a:hover { color: var(--orange-ink); }
.learn-body p { margin-top: .9rem; color: var(--text-2); }
.learn-body .text-link { margin-top: 1rem; }
.learn-card:hover { border-color: var(--sage-2); box-shadow: 0 14px 34px rgba(11, 37, 69, .07); }
.learn-more { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 1.75rem; border: 1px dashed var(--sage-2); border-radius: 8px; }
.learn-more p { color: var(--text-2); }

.art-hero { padding-block: clamp(2.5rem, 6vw, 4.5rem) 0; }
.art-head > * { max-width: 52rem; }
.crumbs { display: flex; gap: .6rem; align-items: center; font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 1.25rem; }
.crumbs a { color: var(--orange-ink); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.art-head h1 { font-size: clamp(2.3rem, 1.6rem + 3vw, 3.9rem); letter-spacing: -.035em; line-height: 1.05; color: var(--pine); }
.art-dek { margin-top: 1.25rem; font-size: clamp(1.12rem, 1.05rem + .35vw, 1.3rem); line-height: 1.55; color: var(--text-2); max-width: 44rem; }
.art-meta { margin-top: 1.25rem; display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; font-size: .92rem; color: var(--muted); }
.art-meta span + span::before { content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: #f39a5e; margin-right: 1.25rem; vertical-align: middle; position: relative; top: -2px; }
.art-cover { margin-top: clamp(2rem, 4vw, 3rem); border-radius: 10px; overflow: hidden; border: 1px solid var(--line); }
.art-cover img { width: 100%; }

.art-layout { display: grid; grid-template-columns: 15rem minmax(0, 44rem); gap: clamp(2rem, 5vw, 5rem); justify-content: center; padding-block: clamp(2.5rem, 5vw, 4rem) var(--section); }
.art-toc { position: sticky; top: 100px; align-self: start; }
.toc-title { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: .8rem; }
.art-toc ol { border-left: 2px solid var(--line); }
.art-toc li a { display: block; padding: .42rem 0 .42rem 1rem; margin-left: -2px; border-left: 2px solid transparent; font-size: .92rem; line-height: 1.4; color: var(--text-2); text-decoration: none; }
.art-toc li a:hover { color: var(--orange-ink); }
.art-toc li a.is-active { color: var(--pine); font-weight: 600; border-left-color: #f39a5e; }

.prose { font-size: 1.08rem; line-height: 1.75; color: var(--text-2); }
.prose > * + * { margin-top: 1.15rem; }
.prose h2 { font-size: clamp(1.6rem, 1.35rem + 1vw, 2.15rem); line-height: 1.15; color: var(--pine); margin-top: 3.25rem; scroll-margin-top: 100px; }
.prose > h2:first-child { margin-top: 0; }
.prose h3 { font-size: clamp(1.2rem, 1.1rem + .4vw, 1.4rem); line-height: 1.25; color: var(--pine); margin-top: 2.25rem; font-weight: 600; letter-spacing: -.01em; }
.prose h2 + p, .prose h3 + p, .prose h3 + ul { margin-top: .8rem; }
.prose strong { color: var(--text); font-weight: 650; }
.prose a { color: var(--orange-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.prose a:hover { text-decoration-thickness: 2px; }
.prose ul, .prose ol { padding-left: 0; }
.prose ul > li { position: relative; padding-left: 1.5rem; }
.prose ul > li::before { content: ""; position: absolute; left: .2rem; top: .72em; width: 7px; height: 7px; border-radius: 50%; background: #f39a5e; }
.prose ul ul { margin-top: .5rem; }
.prose ul ul > li::before { background: none; border: 1.5px solid #7fb2ff; width: 6px; height: 6px; }
.prose ol { counter-reset: n; }
.prose ol > li { counter-increment: n; position: relative; padding-left: 2.25rem; }
.prose ol > li::before { content: counter(n); position: absolute; left: 0; top: .15em; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: #e6eefa; color: var(--orange-ink); font-size: .85rem; font-weight: 700; display: grid; place-items: center; line-height: 1; }
.prose li + li { margin-top: .55rem; }
.art-fig { margin-block: 2.5rem; background: #f7faff; border: 1px solid var(--line); border-radius: 10px; padding: clamp(1rem, 3vw, 1.75rem); }
.art-fig img { width: min(100%, 30rem); margin-inline: auto; border-radius: 6px; }
.art-fig figcaption { margin-top: 1rem; text-align: center; font-size: .92rem; color: var(--muted); }
.art-sources { margin-top: 3.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.art-sources h2 { font-size: 1.15rem; margin-top: 0; letter-spacing: 0; }
.art-sources ul { margin-top: 1rem; }
.art-sources li { font-size: .92rem; line-height: 1.55; }
.art-sources li a { word-break: break-word; }
.art-share { margin-top: 2.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1.5rem; padding: 1.25rem 1.5rem; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.art-share span { font-weight: 600; color: var(--pine); margin-right: auto; }
.art-share .text-link { text-decoration: none; color: var(--orange-ink); }

@media (max-width: 960px) {
  .art-layout { grid-template-columns: minmax(0, 1fr); }
  .art-toc { position: static; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 1.25rem 1.25rem .75rem; }
  .learn-card-featured { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .prose { font-size: 1.02rem; }
  .learn-more { flex-direction: column; align-items: flex-start; }
  .art-share span { width: 100%; }
  .art-meta { gap: .2rem 1rem; }
  .art-meta span + span::before { display: none; }
}
