/* Criminal Law study progress (4 Oct 2026): guide progress strip, reading bar, finish card, subject-page path */

/* Reading bar along the top edge */
.sp-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:200;pointer-events:none;background:transparent}
.sp-bar span{display:block;height:100%;width:0;background:var(--green);transition:width .12s linear}
@media (prefers-reduced-motion:reduce){.sp-bar span,.sp-meter span,.sp-mini span{transition:none}}

/* Strip under the guide title */
.sp-strip{margin:4px 0 22px;padding:14px 18px;background:var(--panel);border:1px solid var(--stone);border-radius:12px}
.sp-meta{margin:0 0 10px;font-size:.88rem;color:var(--ink-soft)}
.sp-meta a{color:var(--green)}
.sp-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.sp-meter{flex:1 1 180px;max-width:280px;height:8px;border-radius:99px;background:#e9e4d6;overflow:hidden}
.sp-meter span{display:block;height:100%;width:0;background:var(--green);border-radius:99px;transition:width .3s ease}
.sp-count{margin:0;font-size:.88rem;color:var(--ink)}
.sp-resume{margin-left:auto;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:10px;background:var(--green);color:#fff;text-decoration:none;font-size:.9rem;font-weight:500}
.sp-resume:hover{background:var(--green-deep)}
.sp-resume[hidden]{display:none}

/* Side list ticks */
.gside .sp-sidecount{letter-spacing:0;text-transform:none;font-family:var(--sans);font-size:.78rem;color:var(--green)}
.gside a.sp-done{position:relative;padding-right:18px}
.gside a.sp-done::after{content:"\2713" / "read";position:absolute;right:0;top:6px;color:var(--green);font-size:.8rem}

/* End-of-guide checks become a visible card */
.guidewrap .drills{background:var(--panel);border:1px solid var(--stone)}

/* Finish card */
.sp-finish{margin:34px 0 26px;padding:24px 24px 18px;border-radius:14px;background:var(--mint);border:1px solid #cfe3c4}
.guidewrap .sp-finish h2,.sp-finish h2{margin:0 0 14px;padding:0;border:0}
.sp-finish h2::before{display:none}
.sp-steps{list-style:none;margin:0 0 14px;padding:0}
.sp-steps li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid #d6e7cc}
.sp-steps li:first-child{border-top:0}
.sp-tick{flex:0 0 22px;height:22px;margin-top:2px;border-radius:50%;border:2px solid var(--green);background:#fff}
.sp-steps li.done .sp-tick{background:var(--green);position:relative}
.sp-steps li.done .sp-tick::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.sp-steps a{color:var(--green-deep)}
.sp-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.sp-btn{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:10px;background:var(--green);color:#fff !important;text-decoration:none;font-size:.92rem;font-weight:500}
.sp-btn.sec{background:transparent;color:var(--green-deep) !important;border:1.5px solid var(--green)}
.sp-btn:hover{filter:brightness(.95)}
.sp-next{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0;font-size:.95rem}
.sp-next a{color:var(--green-deep);font-weight:500;min-height:44px;display:inline-flex;align-items:center}
.sp-next .sp-all{font-weight:400;color:var(--ink-soft)}

/* ---------- Subject page ---------- */
.sp-summary{margin:20px 0 0;padding:14px 18px;background:var(--panel);border:1px solid var(--stone);border-radius:12px;max-width:640px}
.sp-summary[hidden]{display:none}
.sp-summary .sp-h{margin:0 0 8px;font:500 .75rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--green)}
.sp-summary .sp-meter{max-width:none;margin:0 0 8px}
.sp-sumtxt{margin:0;font-size:.9rem;color:var(--ink)}
.sp-sumtxt a{color:var(--green-deep)}

.path{list-style:none;margin:22px 0 0;padding:0;border:1px solid #dfe7e2;border-radius:14px;overflow:hidden;background:#fff}
.path>li{position:relative;display:grid;grid-template-columns:44px 1fr auto;gap:4px 16px;align-items:center;padding:16px 20px;border-top:1px solid #eef2ef}
.path>li:first-child{border-top:0}
.path>li:hover{background:#f7faf8}
.path .pn{grid-row:1 / span 3;align-self:start;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--green);color:var(--green);font-weight:600;font-size:.95rem;background:#fff}
.path>li.sp-complete .pn{background:var(--green);color:#fff}
.path .pt{margin:0;font-weight:600;font-size:1.02rem;line-height:1.35}
.path .pt a{color:var(--ink);text-decoration:none}
.path .pt a::after{content:"";position:absolute;inset:0;z-index:1}
.path .pt a:hover,.path .pt a:focus-visible{color:var(--green-deep);text-decoration:underline;text-underline-offset:3px}
.path .pd{grid-column:2;margin:0;font-size:.88rem;color:#5a6b60;line-height:1.45}
.path .pl{grid-column:3;grid-row:1 / span 2;display:flex;gap:6px 14px;flex-wrap:wrap;justify-content:flex-end;position:relative;z-index:2;font-size:.95rem}
.path .pl a{color:var(--green);min-height:44px;display:inline-flex;align-items:center}
.path .sp-mod{grid-column:2 / span 2;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:.82rem;color:var(--ink-soft);position:relative;z-index:2}
.path .sp-mod[hidden]{display:none}
.sp-mini{width:120px;height:6px;border-radius:99px;background:#e9e4d6;overflow:hidden}
.sp-mini span{display:block;height:100%;background:var(--green);transition:width .3s ease}
.sp-pill{padding:2px 10px;border-radius:99px;font-size:.75rem;font-weight:600}
.sp-pill.ok{background:var(--mint);color:var(--green-deep)}
.sp-pill.due{background:#fdf0d9;color:#7a4e0a}
.path>li.exam{background:#f7faf8}
.path>li.exam .pn{border-style:dashed}
@media (max-width:760px){
  .path>li{grid-template-columns:36px 1fr;padding:14px 16px}
  .path .pn{width:30px;height:30px;font-size:.85rem}
  .path .pl{grid-column:2;grid-row:auto;justify-content:flex-start}
  .path .sp-mod{grid-column:2}
}

/* Elements list and the subject map */
.elist{margin:6px 0 18px;padding-left:0;list-style:none;counter-reset:el}
.elist li{counter-increment:el;position:relative;padding:8px 0 8px 40px;border-top:1px solid #e8e2d2;line-height:1.55}
.elist li:first-child{border-top:0}
.elist li::before{content:counter(el);position:absolute;left:0;top:8px;width:26px;height:26px;border-radius:50%;background:var(--green);color:#fff;font-size:.82rem;font-weight:600;display:flex;align-items:center;justify-content:center}
.smap{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:22px 0 8px}
.smap .card{position:relative;background:#fff;border:1px solid var(--stone);border-radius:12px;padding:16px 18px 14px;display:flex;flex-direction:column}
.smap .card:hover{border-color:var(--green)}
.smap .card h3{margin:0 0 8px;font:500 1.02rem var(--display);color:var(--ink)}
.smap .card h3 .k{display:block;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:3px}
.smap .card ul{margin:0 0 10px;padding-left:18px;font-size:.88rem;line-height:1.5;color:var(--body)}
.smap .card li{margin:0 0 5px}
.smap .card .go{margin-top:auto;font-size:.88rem;color:var(--green-deep);font-weight:500;text-decoration:none}
.smap .card .go::after{content:"";position:absolute;inset:0}
.smap .card .go:hover{text-decoration:underline}
.smap .card.wide{grid-column:1 / -1}
.vh{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Make room for the section list on common laptop widths (1200–1499px) */
@media (min-width:1200px) and (max-width:1499px){
  body .guidewrap{margin-left:max(250px,calc((100vw - 820px)/2))}
}
