/* =========================================================================
   Single course page.
   ========================================================================= */
.rils-cp{background:var(--rils-bg)}

/* ------------------------------------------------------------------ hero */
.rils-cp__hero{
  position:relative;overflow:hidden;
  background:var(--rils-bg);
  padding:72px 0 64px;
}
.rils-cp__hero::before{
  content:"";position:absolute;inset:auto -10% -40% auto;
  width:min(680px,80vw);aspect-ratio:1;z-index:0;
  background:radial-gradient(circle,rgba(231,184,63,.13),transparent 66%);
  filter:blur(12px);
}
.rils-cp__heroGrid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:52px;align-items:center;
}
.rils-cp__tag{
  display:inline-block;margin:0 0 16px;
  font-family:var(--rils-body);font-size:.74rem;font-weight:700;
  letter-spacing:.11em;text-transform:uppercase;color:var(--rils-gold);
  border:1px solid rgba(231,184,63,.3);border-radius:var(--rils-r-pill);
  padding:6px 14px;background:rgba(231,184,63,.06);
}
.rils-cp__title{
  margin:0 0 14px;font-size:clamp(2rem,3.6vw,3rem);line-height:1.06;
  letter-spacing:-0.02em;color:var(--rils-ink);
}
.rils-cp__lead{margin:0 0 26px;color:var(--rils-muted);font-size:1.04rem;max-width:54ch}

.rils-cp__buy{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.rils-cp__price,
.rils-cp__price .amount,
.rils-cp__price bdi{
  color:var(--rils-gold) !important;font-family:var(--rils-head);
  font-weight:800;font-size:1.95rem;line-height:1;
}
.rils-cp__buy .rils-btn{padding:13px 26px;font-size:.95rem}

.rils-cp__facts{
  list-style:none;margin:0;padding:18px 0 0;display:flex;flex-wrap:wrap;gap:28px;
  border-top:1px solid var(--rils-border);
}
.rils-cp__facts li{display:flex;flex-direction:column;gap:3px;color:var(--rils-ink);font-weight:700;font-family:var(--rils-head)}
.rils-cp__factK{font-family:var(--rils-body);font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rils-muted)}

.rils-cp__heroMedia{
  border-radius:var(--rils-r-lg);overflow:hidden;
  border:1px solid var(--rils-border);
  box-shadow:0 30px 70px rgba(5,10,24,.6);
  line-height:0;
}
.rils-cp__heroMedia img{width:100%;height:auto;display:block}
.rils-cp__mediaPh{display:block;width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,var(--rils-card),var(--rils-surface))}

/* ------------------------------------------------------------------ body */
.rils-cp__body{background:var(--rils-surface);padding:72px 0 96px;border-top:1px solid var(--rils-border)}
.rils-cp__grid{display:grid;grid-template-columns:1.6fr .85fr;gap:40px;align-items:start}

.rils-cp__block{margin:0 0 44px}
.rils-cp__block:last-child{margin-bottom:0}
.rils-cp__block h2{font-size:1.55rem;margin:0 0 18px;color:var(--rils-ink)}
.rils-cp__note{margin:-8px 0 20px;color:var(--rils-muted);font-size:.92rem}
.rils-cp__prose{color:var(--rils-muted)}
.rils-cp__prose p{margin:0 0 14px}

/* tick lists */
.rils-cp__ticks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 26px}
.rils-cp__ticks--sm{grid-template-columns:1fr;gap:12px}
.rils-cp__ticks li{
  position:relative;padding-left:28px;color:var(--rils-muted);
  font-size:.96rem;line-height:1.55;max-width:none;
}
.rils-cp__ticks li::before{
  content:"";position:absolute;left:0;top:.42em;
  width:15px;height:15px;border-radius:50%;
  border:1px solid var(--rils-gold);
  background:rgba(231,184,63,.14);
}
.rils-cp__ticks li::after{
  content:"";position:absolute;left:5px;top:.62em;
  width:4px;height:8px;border:solid var(--rils-gold);
  border-width:0 1.6px 1.6px 0;transform:rotate(42deg);
}
@media (max-width:760px){.rils-cp__ticks{grid-template-columns:1fr}}

/* class schedule */
.rils-cp__classes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:cls}
.rils-cp__class{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:var(--rils-card);border:1px solid var(--rils-border);
  border-radius:var(--rils-r-md);padding:18px 20px;
  transition:border-color .2s ease,transform .2s ease;
}
.rils-cp__class:hover{border-color:var(--rils-border-hot);transform:translateY(-2px)}
.rils-cp__class.is-open{border-color:var(--rils-border-hot)}
.rils-cp__classInfo{display:flex;flex-direction:column;gap:4px;flex:1;min-width:210px}
.rils-cp__classNo{font-family:var(--rils-body);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rils-gold)}
.rils-cp__classTitle{font-family:var(--rils-head);font-weight:600;font-size:1.04rem;color:var(--rils-ink)}
.rils-cp__classDesc{color:var(--rils-muted);font-size:.9rem}
.rils-cp__classMeta{color:var(--rils-muted);font-size:.85rem}
.rils-cp__locked{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--rils-border);color:var(--rils-muted);
  border-radius:var(--rils-r-pill);padding:9px 18px;font-size:.85rem;font-weight:600;white-space:nowrap;
}
.rils-cp__locked::before{content:"\1F512"}
.rils-cp__join{padding:11px 22px;font-size:.9rem;white-space:nowrap}

/* curriculum */
.rils-cp__curriculum{display:flex;flex-direction:column;gap:12px}
.rils-cp__topic{background:var(--rils-card);border:1px solid var(--rils-border);border-radius:var(--rils-r-md);overflow:hidden}
.rils-cp__topic[open]{border-color:var(--rils-border-hot)}
.rils-cp__topic summary{
  cursor:pointer;list-style:none;padding:16px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  font-family:var(--rils-head);font-weight:600;color:var(--rils-ink);
}
.rils-cp__topic summary::-webkit-details-marker{display:none}
.rils-cp__topic summary em{font-style:normal;font-family:var(--rils-body);font-size:.82rem;font-weight:600;color:var(--rils-muted);white-space:nowrap}
.rils-cp__topic summary::after{content:"+";color:var(--rils-gold);font-size:1.3rem;line-height:1}
.rils-cp__topic[open] summary::after{content:"\2212"}
.rils-cp__topic ul{list-style:none;margin:0;padding:0 20px 8px;border-top:1px solid var(--rils-border)}
.rils-cp__topic li{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:13px 0;border-bottom:1px solid var(--rils-border);
}
.rils-cp__topic li:last-child{border-bottom:0}
.rils-cp__lessonName{color:var(--rils-muted);font-size:.95rem}
.rils-cp__lessonGo{font-size:.85rem;font-weight:700}
.rils-cp__lessonLock{font-size:.78rem;color:var(--rils-muted);border:1px solid var(--rils-border);border-radius:var(--rils-r-pill);padding:4px 12px;white-space:nowrap}

/* sidebar */
.rils-cp__side{display:flex;flex-direction:column;gap:20px;position:sticky;top:96px}
.rils-cp__panel{background:var(--rils-card);border:1px solid var(--rils-border);border-radius:var(--rils-r-md);padding:24px}
.rils-cp__panel h3{margin:0 0 16px;font-size:1.08rem;color:var(--rils-ink)}
.rils-cp__panelCta{margin-top:20px;padding-top:18px;border-top:1px solid var(--rils-border)}
.rils-cp__sideBtn{width:100%;text-align:center;justify-content:center}
.rils-cp__instructor{margin:0;font-family:var(--rils-head);font-weight:700;color:var(--rils-ink);font-size:1.02rem}
.rils-cp__instructorRole{margin:5px 0 0;color:var(--rils-muted);font-size:.9rem}

/* ------------------------------------------------------------ responsive */
@media (max-width:1000px){
  .rils-cp__heroGrid{grid-template-columns:1fr;gap:36px}
  .rils-cp__grid{grid-template-columns:1fr;gap:32px}
  .rils-cp__side{position:static}
}
@media (max-width:600px){
  .rils-cp__hero{padding:48px 0 44px}
  .rils-cp__body{padding:48px 0 64px}
  .rils-cp__buy{gap:10px}
  .rils-cp__buy .rils-btn{width:100%;justify-content:center}
  .rils-cp__facts{gap:18px}
  .rils-cp__class{align-items:flex-start}
  .rils-cp__classState{width:100%}
  .rils-cp__join,.rils-cp__locked{width:100%;justify-content:center}
}

/* struck-through regular price when a course is on sale */
.rils-cp__was{color:var(--rils-muted) !important;font-size:.62em;font-weight:600;margin-right:8px;text-decoration:line-through;opacity:.75}
.rils-cp__was *{color:var(--rils-muted) !important;font-size:inherit !important}


/* ---------------------------------------------------------------------
 * Breathing room (Aug 24). The owner said the course page felt cramped,
 * with lines packed together and no space on the page. Bengali sits taller
 * than Latin, so the default line height that looks fine in English reads
 * as a solid wall here.
 * --------------------------------------------------------------------- */

.rils-cp__block { margin: 0 0 56px; }

.rils-cp__prose,
.rils-cp__prose p {
	line-height: 1.95;
	font-size: 16.5px;
}

.rils-cp__prose p { margin: 0 0 20px; }
.rils-cp__prose p:last-child { margin-bottom: 0; }

/* The batch and date line is the first thing a buyer looks for. */
.rils-cp__prose p:first-child strong {
	display: block;
	padding: 14px 18px;
	margin: 0 0 6px;
	border-radius: 12px;
	background: rgba(231, 184, 63, .1);
	border: 1px solid rgba(231, 184, 63, .28);
	color: var(--rils-gold);
	line-height: 1.7;
}

/* Tick lists: the real class is .rils-cp__ticks, and each item reserves
 * 28px on the left for the circle and the tick drawn in ::before/::after.
 * An earlier rule here set padding-left:4px on ul li, which ate that gutter
 * and printed the tick straight over the first Bengali letter. Never set a
 * left padding on these items; adjust the 28px below instead. */
.rils-cp__ticks {
	gap: 18px 30px;
}

.rils-cp__ticks li {
	padding-left: 30px;
	line-height: 1.85;
	font-size: 1rem;
}

/* Bengali sits taller than Latin, so the mark needs nudging down to sit on
 * the first line rather than above it. */
.rils-cp__ticks li::before { top: .5em; }
.rils-cp__ticks li::after  { top: .7em; }

.rils-cp__ticks--sm { gap: 15px; }

.rils-cp__block h2,
.rils-cp__block h3 {
	margin: 0 0 22px;
	line-height: 1.35;
}

.rils-cp__body { padding: 80px 0 104px; }

@media (max-width: 720px) {
	.rils-cp__prose, .rils-cp__prose p { font-size: 16px; line-height: 1.9; }
	.rils-cp__block { margin: 0 0 44px; }
	.rils-cp__body { padding: 56px 0 72px; }
}
