/* nuchtr v2, lessen (#/lessen en #/lessen/:n), spec 4.13. */

/* ---------- voortgang (kop en mobiel) ---------- */
.s-lessons__progress { display: inline-flex; align-items: center; gap: 10px; }
.s-lessons__ring { position: relative; width: 40px; height: 40px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; }
.s-lessons__ring svg { position: absolute; inset: 0; width: 40px; height: 40px; }
.s-lessons__ring circle { fill: none; stroke-width: 3; }
.s-lessons__ring-track { stroke: var(--panel-3); }
.s-lessons__ring-fill { stroke: var(--live); stroke-linecap: round; transition: stroke-dashoffset 600ms var(--ease); }
.s-lessons__ring b { position: relative; font-size: 13px; font-weight: 600; }
.s-lessons__progress-text { display: flex; flex-direction: column; line-height: 1.25; font-size: 13px; color: var(--ink); white-space: nowrap; }
.s-lessons__progress-text small { font-size: 12px; color: var(--ink-3); }
.s-lessons__progress-m { display: none; }

/* ---------- lijst ---------- */
.s-lessons__wrap { display: flex; flex-direction: column; gap: var(--gap-section); max-width: 920px; }
.s-lessons__top { display: flex; flex-direction: column; gap: var(--gap-section); }
.s-lessons__next { display: flex; flex-direction: column; gap: 10px; }
.s-lessons__next-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.s-lessons__next-text { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.s-lessons__next-title { font-size: var(--t-h2); font-weight: 600; }
.s-lessons__next-core { font-size: var(--t-body); color: var(--ink-2); line-height: 1.5; }
.s-lessons__next-core b { color: var(--ink); font-weight: 600; }
.s-lessons__next.is-all { align-items: flex-start; }

.s-lessons__list { padding: 6px; display: flex; flex-direction: column; }
.s-lessons__row, .s-lessons__row * { text-decoration: none; }
.s-lessons__row { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 68px; padding: 10px 14px 10px 12px; border-radius: var(--r-md); color: inherit; text-decoration: none; transition: background-color 120ms; }
.s-lessons__row + .s-lessons__row::before { content: ""; position: absolute; left: 12px; right: 12px; top: 0; height: 1px; background: var(--line); }
@media (hover: hover) { .s-lessons__row:hover { background: var(--panel-2); text-decoration: none; } .s-lessons__row:hover::before, .s-lessons__row:hover + .s-lessons__row::before { opacity: 0; } }
.s-lessons__n { font-size: 13px; color: var(--ink-3); font-weight: 500; }
.s-lessons__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.s-lessons__title { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; color: var(--ink); min-width: 0; }
.s-lessons__title > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s-lessons__new { width: 6px; height: 6px; border-radius: 999px; background: var(--ink); flex: 0 0 auto; }
.s-lessons__core { font-size: 13px; color: var(--ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s-lessons__row.is-done .s-lessons__title { color: var(--ink-2); }
.s-lessons__meta { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--ink-3); white-space: nowrap; }
.s-lessons__steps { color: var(--ink-2); }

@media (max-width: 1023px) {
  .s-lessons__progress-m { display: block; }
}
@media (max-width: 767px) {
  .s-lessons__next-row { flex-direction: column; align-items: stretch; }
  .s-lessons__next-row .dvj-btn { width: 100%; justify-content: center; min-height: 44px; }
  .s-lessons__list { padding: 4px; }
  .s-lessons__row { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 12px 10px; align-items: start; }
  .s-lessons__n { padding-top: 2px; }
  .s-lessons__title > span:last-child { white-space: normal; }
  .s-lessons__core { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .s-lessons__meta { grid-column: 2; flex-wrap: wrap; gap: 8px; }
}

/* ---------- leespagina ---------- */
.s-lesson { max-width: 680px; margin: 8px auto 0; display: flex; flex-direction: column; gap: 20px; }
.s-lesson__label { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.s-lesson__title { font-size: 28px; line-height: 1.15; letter-spacing: var(--t-h1-ls); font-weight: 600; margin: -6px 0 0; }
.s-lesson__title .serif { font-size: 1.12em; }
.s-lesson__core { margin: 0; background: var(--panel-2); border-left: 2px solid var(--ink); border-radius: 0 var(--r-sm) var(--r-sm) 0; padding: 14px 16px; font-size: var(--t-lesson); line-height: 1.55; color: var(--ink); }
.s-lesson__body { font-size: var(--t-lesson); line-height: var(--t-lesson-lh); color: var(--ink-2); }
.s-lesson__body p { margin: 0 0 16px; max-width: 68ch; }
.s-lesson__body h2, .s-lesson__body h3, .s-lesson__body h4 { color: var(--ink); font-size: var(--t-h2); line-height: 1.3; font-weight: 600; margin: 28px 0 8px; }
.s-lesson__body h2:first-child, .s-lesson__body h3:first-child { margin-top: 4px; }
.s-lesson__body ul, .s-lesson__body ol { margin: 0 0 16px; padding-left: 22px; }
.s-lesson__body li { margin: 4px 0; }
.s-lesson__body strong { color: var(--ink); font-weight: 600; }
.s-lesson__body blockquote { margin: 0 0 16px; padding: 10px 14px; border-left: 2px solid var(--line-3); color: var(--ink); }

.s-lesson__panel { display: flex; flex-direction: column; gap: 10px; }
.s-lesson__panel .panel__head { margin-bottom: 0; }
.s-lesson__count { font-size: 12px; color: var(--ink-3); }
.s-lesson__steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.s-lesson__step { display: grid; grid-template-columns: 16px 18px minmax(0, 1fr); align-items: start; gap: 10px; width: 100%; min-height: 44px; padding: 11px 10px; border-radius: var(--r-sm); text-align: left; color: var(--ink); font-size: 14px; line-height: 1.45; transition: background-color 120ms; }
@media (hover: hover) { .s-lesson__step:hover { background: var(--panel-2); } }
.s-lesson__step .dvj-check { margin-top: 2px; }
.s-lesson__step .dvj-check.is-on { background: var(--live); border-color: var(--live); color: var(--accent-ink); }
.s-lesson__step-n { font-size: 12px; color: var(--ink-3); padding-top: 1px; }
.s-lesson__step.is-done .s-lesson__step-text { color: var(--ink-3); }
.s-lesson__measure p { margin: 0; font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.s-lesson__measure .dvj-btn { align-self: flex-start; }

.s-lesson__done { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.s-lesson__done .dvj-btn--primary, .s-lesson__done .dvj-btn--secondary { min-height: 44px; padding-left: 20px; padding-right: 20px; }

.s-lesson__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-top: 16px; border-top: 1px solid var(--line); }
.s-lesson__nav-link { display: flex; align-items: center; gap: 8px; min-height: 56px; padding: 10px 12px; border-radius: var(--r-md); color: var(--ink); text-decoration: none; border: 1px solid var(--line); min-width: 0; transition: border-color 120ms, background-color 120ms; }
@media (hover: hover) { .s-lesson__nav-link:hover { border-color: var(--line-2); background: var(--panel-2); } }
.s-lesson__nav-link.is-next { justify-content: flex-end; text-align: right; grid-column: 2; }
.s-lesson__nav-link .ic { color: var(--ink-3); flex: 0 0 auto; }
.s-lesson__nav-text { display: flex; flex-direction: column; min-width: 0; font-size: 14px; font-weight: 500; }
.s-lesson__nav-text span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s-lesson__nav-text small { font-size: 11px; color: var(--ink-3); font-weight: 500; }
.s-lesson__quote { margin: 12px 0 8px; }

@media (max-width: 767px) {
  .s-lesson { gap: 16px; margin-top: 0; }
  .s-lesson__title { font-size: 24px; }
  .s-lesson__done .dvj-btn--primary { width: 100%; justify-content: center; }
  .s-lesson__nav { grid-template-columns: 1fr 1fr; gap: 8px; }
  .s-lesson__nav-text span { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
}
.s-lesson__nav-link:hover, .s-lesson__nav-link:hover * { text-decoration: none; }
