/* =====================================================================
   COURSES — listing cards and the detail page.  v1.5.1
   Loaded after site.css and case-studies.css (the sidebar, toolbar, chips
   and pager are the .cs-* rules in that file).
   ===================================================================== */
.course-grid{ display:grid; gap:20px; grid-template-columns:minmax(0,1fr); }
.course-card{
  display:flex; flex-direction:column; overflow:hidden; min-width:0;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  transition:border-color .2s linear, transform .25s var(--ease), box-shadow .25s var(--ease);
}
.course-card:hover{ border-color:var(--accent); transform:translateY(-3px); box-shadow:0 26px 50px -40px rgba(14,21,18,.5); }
.course-card.is-featured{ border-color:var(--brand-soft); }
.course-card-media{ position:relative; display:block; border-bottom:1px solid var(--line); background:var(--brand-wash); }
.course-card-media img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.course-badges{ position:absolute; top:12px; left:12px; display:flex; gap:6px; }
.course-badges .cs-badge{ position:static; }
.course-badge-free{ background:var(--brand) !important; color:var(--ink-deep) !important; }
.course-card-body{ display:flex; flex-direction:column; gap:10px; flex:1; padding:20px 20px 22px; min-width:0; }

.course-facts{ list-style:none; display:flex; flex-wrap:wrap; gap:6px; }
.course-facts li{
  padding:3px 10px; border-radius:var(--pill); background:var(--blue-grey);
  font-size:.78rem; color:var(--ink); font-weight:500;
}
.course-prereq{ margin:0; font-size:.84rem; color:var(--ink-soft); }
.course-prereq b{ color:var(--ink); font-weight:600; }
.course-prereq.is-none{ color:var(--accent-dark); font-weight:500; }
.course-cert{ color:var(--accent-dark); font-weight:500; }

.course-card-foot{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin-top:auto; padding-top:12px; border-top:1px dashed var(--line);
}
.course-price{ margin:0; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.course-price b{ font-size:1.25rem; letter-spacing:-.02em; }
.course-price s, .enrol-price s, .plan-price s{ color:var(--muted); font-size:.9rem; }
.course-rating{ margin:0; font-size:.85rem; color:var(--ink-soft); white-space:nowrap; }
.course-rating span{ color:var(--muted); }
.course-batch{ margin:0; font-size:.8rem; font-weight:600; color:#8A5D12; }
.course-card .link-more{ align-self:flex-start; }

/* ------------------------------------------------------- detail page */
.course-byline{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:-8px 0 0; font-size:.92rem; color:var(--ink-soft); }
.course-byline b{ color:var(--ink); }
.course-hero .hero-media img{ aspect-ratio:16/10; }

.course-main{ min-width:0; display:grid; gap:0; }
.course-toc{
  display:flex; flex-wrap:wrap; gap:6px 18px; padding-bottom:18px; margin-bottom:6px;
  border-bottom:1px solid var(--line); font-size:.88rem;
}
.course-toc a{ color:var(--accent); text-decoration:none; font-weight:500; }
.course-toc a:hover{ text-decoration:underline; }
.course-block{ padding:28px 0; border-bottom:1px solid var(--line); scroll-margin-top:90px; min-width:0; }
.course-block:last-child{ border-bottom:0; }
.course-block > .h4{ margin-bottom:16px; }
.course-block-head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 16px; margin-bottom:16px; }
.small-print{ margin:0; font-size:.88rem; }
.course-learn-list{ grid-template-columns:minmax(0,1fr); gap:12px 26px; }
.course-two{ display:grid; gap:0 36px; grid-template-columns:minmax(0,1fr); border-bottom:1px solid var(--line); }
.course-two .course-block{ border-bottom:0; }
.course-prereq-list{ padding-left:1.1em; display:grid; gap:8px; font-size:.95rem; }

.curriculum{ display:grid; gap:10px; }
.curr-module{ border:1px solid var(--line); border-radius:var(--radius); background:#fff; overflow:hidden; }
.curr-module[open]{ border-color:var(--brand-soft); }
.curr-module summary{
  display:grid; grid-template-columns:36px minmax(0,1fr); gap:4px 12px; align-items:baseline;
  padding:16px 18px; cursor:pointer; list-style:none;
}
.curr-module summary::-webkit-details-marker{ display:none; }
.curr-module summary:hover .curr-title{ color:var(--accent); }
.curr-num{ font-size:.8rem; font-weight:700; letter-spacing:.1em; color:var(--brand); }
.curr-title{ font-weight:600; font-size:1rem; }
.curr-meta{ grid-column:2; font-size:.82rem; color:var(--muted); }
.curr-free{
  display:inline-block; margin-left:6px; padding:1px 8px; border-radius:var(--pill);
  background:var(--brand-tint); color:var(--accent-dark); font-style:normal; font-size:.7rem; font-weight:600;
  vertical-align:middle;
}
.curr-desc{ margin:0; padding:0 18px 12px 66px; font-size:.9rem; color:var(--ink-soft); }
.curr-lessons{ list-style:none; margin:0; padding:0 0 8px; border-top:1px solid var(--line); }
.curr-lessons li{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 12px; align-items:baseline;
  padding:11px 18px; border-bottom:1px solid var(--line); font-size:.92rem;
}
.curr-lessons li:last-child{ border-bottom:0; }
.curr-type{
  grid-column:1 / -1; font-size:.68rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--accent);
}
.curr-ltitle small{ display:block; color:var(--muted); font-size:.82rem; margin-top:2px; }
.curr-min{ font-size:.82rem; color:var(--muted); white-space:nowrap; }

.assess-list{ list-style:none; display:grid; gap:12px; }
.assess-item{ border:1px solid var(--line); border-radius:var(--radius); padding:18px; background:#fff; }
.assess-final, .assess-graded{ border-left:4px solid var(--accent); }
.assess-type{ font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); }
.assess-head h3{ font-size:1.05rem; margin:4px 0 2px; }
.assess-where{ margin:0; font-size:.84rem; color:var(--muted); }
.assess-desc{ margin:10px 0 0; font-size:.92rem; color:var(--ink-soft); }
.assess-facts{ display:flex; flex-wrap:wrap; gap:10px 26px; margin:14px 0 0; }
.assess-facts dt{ font-size:.68rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.assess-facts dd{ margin:0; font-weight:600; font-size:.95rem; }
.assess-cert{ margin:16px 0 0; padding:14px 16px; border-radius:10px; background:var(--brand-wash); font-size:.93rem; }

.course-aside{ position:relative; }
.enrol-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px;
  box-shadow:0 30px 60px -48px rgba(14,21,18,.55); display:grid; gap:12px;
}
.enrol-price{ margin:0; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.enrol-price b{ font-size:2rem; letter-spacing:-.03em; line-height:1.1; }
.enrol-save{ margin:-6px 0 0; font-size:.85rem; font-weight:600; color:var(--accent-dark); }
.enrol-seats{ margin:0; font-size:.86rem; color:var(--ink-soft); }
.enrol-seats.is-low{ color:#AD3B34; font-weight:600; }
.enrol-card .aside-title{ margin:10px 0 0; }
.enrol-share{
  justify-self:start; border:0; background:none; padding:4px 0; cursor:pointer;
  color:var(--accent); font-weight:600; font-size:.88rem; text-decoration:underline; text-underline-offset:3px;
}

.plan-grid{ display:grid; gap:18px; grid-template-columns:minmax(0,1fr); align-items:stretch; }
.plan-card{
  position:relative; display:flex; flex-direction:column; gap:12px;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:26px 24px;
}
.plan-card.is-default{ border:2px solid var(--accent); }
.plan-flag{
  position:absolute; top:-12px; left:24px; padding:3px 12px; border-radius:var(--pill);
  background:var(--accent); color:#fff; font-size:.72rem; font-weight:600; letter-spacing:.04em;
}
.plan-card h3{ font-size:var(--step-2); }
.plan-price{ margin:0; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.plan-price b{ font-size:1.9rem; letter-spacing:-.03em; }
.plan-price span{ color:var(--muted); font-size:.9rem; }
.plan-meta{ margin:0; font-size:.86rem; color:var(--ink-soft); }
.plan-until{ margin:0; font-size:.8rem; font-weight:600; color:#8A5D12; }
.plan-card .btn{ margin-top:auto; }

@media (min-width:600px){
  .course-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .course-learn-list{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .course-two{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .curr-lessons li{ grid-template-columns:110px minmax(0,1fr) auto; }
  .curr-type{ grid-column:auto; }
  .plan-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (min-width:900px){
  .course-aside{ position:sticky; top:94px; }
  .plan-count-3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .plan-count-4{ grid-template-columns:repeat(4, minmax(0,1fr)); }
  .plan-count-1{ grid-template-columns:minmax(0,420px); }
}
@media (min-width:1200px){
  .cs-layout .course-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
@media print{
  .course-aside, .course-toc, .hero-actions{ display:none !important; }
  .curr-module{ break-inside:avoid; }
}

/* ---- checkpoints: assessments + activities between modules (v1.7) */
.curr-check{
  display:flex; align-items:flex-start; gap:12px; margin:10px 0 4px; padding:12px 14px;
  border:1px dashed var(--line); border-radius:12px; background:var(--brand-wash, #F1FAF6); font-size:.92rem;
}
.curr-check b{ display:block; }
.curr-check small{ display:block; color:var(--muted); font-size:.82rem; margin-top:2px; }
.curr-check-icon{
  flex:none; width:26px; height:26px; border-radius:50%; display:grid; place-items:center;
  background:#fff; border:1px solid var(--line); color:var(--accent); font-weight:700; font-size:.8rem;
}
.curr-check.is-gate{ border-style:solid; border-color:rgba(24,129,94,.35); }
.curr-lock{ margin-left:auto; flex:none; font-size:.95rem; }
.assess-activity{ border-left:4px solid var(--brand, #3EB489); }
.assess-item.is-gate{ box-shadow:0 0 0 1px rgba(24,129,94,.18) inset; }
.assess-gate{ margin:12px 0 0; font-size:.86rem; font-weight:600; color:var(--accent); }

/* ---- learner reviews (v1.8) */
.rv-head{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.rv-head .h4{ margin:0; }
.rv-summary{ display:grid; grid-template-columns:minmax(0,1fr); gap:18px; padding:18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--brand-wash, #F1FAF6); }
.rv-score{ display:grid; justify-items:start; gap:4px; }
.rv-score b{ font-size:2.6rem; line-height:1; }
.rv-score small{ color:var(--muted); }
.rv-stars{ position:relative; display:inline-block; font-size:1.1rem; line-height:1; letter-spacing:2px; color:#D5DFDA; }
.rv-stars::before{ content:"★★★★★"; }
.rv-stars i{ position:absolute; inset:0 auto 0 0; overflow:hidden; white-space:nowrap; color:#F2B01E; font-style:normal; }
.rv-stars i::before{ content:"★★★★★"; }
.rv-stars-sm{ font-size:.95rem; }
.rv-bars{ list-style:none; margin:0; padding:0; display:grid; gap:6px; align-content:center; }
.rv-bars li{ display:grid; grid-template-columns:30px minmax(0,1fr) 28px; gap:10px; align-items:center; font-size:.84rem; color:var(--muted); }
.rv-bar{ height:8px; border-radius:99px; background:#fff; box-shadow:inset 0 0 0 1px var(--line); overflow:hidden; }
.rv-bar i{ display:block; height:100%; background:#F2B01E; border-radius:99px; }
.rv-list{ display:grid; gap:12px; margin-top:14px; }
.rv-item{ margin:0; padding:18px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.rv-item h3{ font-size:1rem; margin:8px 0 4px; }
.rv-item blockquote{ margin:6px 0 0; color:var(--ink-soft); font-size:.95rem; line-height:1.6; }
.rv-item figcaption{ margin-top:12px; font-size:.86rem; }
.rv-item figcaption span{ color:var(--muted); }
.rv-reply{ margin:12px 0 0; padding:10px 12px; border-left:3px solid var(--accent); background:var(--brand-wash, #F1FAF6); border-radius:0 10px 10px 0; font-size:.88rem; color:var(--ink-soft); }
@media (min-width:640px){ .rv-summary{ grid-template-columns:160px minmax(0,1fr); } }
