/* TU Courses LMS frontend (reference-style) */
.tu-course-wrap{ max-width: 1200px; margin: 0 auto; padding: 28px 16px; }
.tu-course-wrap, .tu-course-wrap *{ box-sizing: border-box; }
/* Prevent horizontal scrolling on small screens (long titles / flex overflow) */
.tu-course-wrap{ overflow-x: hidden; }

/* Hide curriculum for non-enrolled visitors: CTA summary card */
.tu-course-paywall-summary{
  margin-top: 16px;
}
.tu-course-paywall-summary .tu-enroll-cta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 16px;
  background: #fff;
  flex-wrap: wrap;
}
.tu-course-paywall-summary .tu-enroll-cta__left{ min-width: 220px; }
.tu-course-paywall-summary .tu-enroll-cta__title{ font-size: 14px; font-weight: 700; margin: 0 0 6px; }
.tu-course-paywall-summary .tu-enroll-cta__note{ font-size: 13px; opacity: .8; margin: 0; }
.tu-course-paywall-summary .tu-enroll-cta__right{ display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.tu-course-paywall-summary .tu-enroll-cta__price{ font-size: 18px; font-weight: 800; }

@media (max-width: 640px){
  .tu-course-paywall-summary .tu-enroll-cta{ padding: 14px; }
  .tu-course-paywall-summary .tu-enroll-cta__right{ width: 100%; justify-content: space-between; }
  .tu-course-paywall-summary .tu-enroll-cta__price{ font-size: 16px; }
}
.tu-course-title{ font-size: 36px; line-height: 1.1; margin: 0 0 10px; }
.tu-course-thumb img{ border-radius: 18px; max-width: 100%; height: auto; }
.tu-course-desc{ color:#222; margin-top: 12px; }

.tu-btn{ display:inline-flex; align-items:center; justify-content:center; padding: 10px 16px; border-radius: 10px; text-decoration:none; font-weight:600; border:1px solid transparent; }
.tu-btn--primary{ background:#d40000; color:#fff !important; border-color:#d40000; }

/* Theme/optimizer defensive overrides (some themes set button text color via very broad selectors) */
.tu-checkout .tu-btn,
.tu-checkout .tu-btn--primary{ opacity:1; filter:none; text-shadow:none; }
.tu-checkout .tu-btn--primary, .tu-checkout .tu-btn--primary *{ color:#fff !important; }
.tu-checkout .tu-btn{ line-height: 1.2; }
.tu-btn--outline{ background:#fff; color:#d40000; border-color:#d40000; }
.tu-btn:hover{ opacity:.92; }
.tu-muted{ color:#777; font-size:14px; }
.tu-empty{ padding: 18px; color:#666; }

/* Course structure layout */
.tu-course-structure{ display:grid; grid-template-columns: 260px minmax(0,1fr); gap: 24px; align-items:start; margin-top: 18px; }
@media (max-width: 1024px){ .tu-course-structure{ grid-template-columns: 1fr; } }

.tu-structure-left{ background:#fff; border:1px solid #eee; border-radius: 18px; padding: 18px; }
.tu-left-title{ margin:0 0 14px; font-size: 28px; line-height:1.05; color:#d40000; }
.tu-left-stats{ display:flex; flex-direction:column; gap:10px; margin-bottom: 16px; }
.tu-stat{ display:flex; align-items:center; gap:10px; color:#555; }
.tu-ico{ width: 22px; text-align:center; }

.tu-card{ background:#fff; border:1px solid #eee; border-radius: 18px; box-shadow: 0 10px 24px rgba(0,0,0,.05); overflow:hidden; }
.tu-module + .tu-module{ border-top:1px solid #eee; }

.tu-module-head{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding: 16px 18px; background:#fff; border:0; cursor:pointer; text-align:left; flex-wrap:wrap; }
.tu-module-kicker{ font-size:12px; color:#d40000; text-transform:uppercase; letter-spacing:.04em; }
.tu-module-title{ font-size: 28px; font-weight: 600; color:#333; min-width:0; overflow-wrap:anywhere; word-break:break-word; }
.tu-module-head .tu-module-title{ flex: 1 1 420px; }
.tu-module-meta{ flex: 0 0 auto; }

@media (max-width: 600px){
  .tu-left-title{ font-size: 22px; }
  .tu-module-title{ font-size: 20px; line-height: 1.2; }
  .tu-module-head{ padding: 14px 14px; }
  .tu-structure-left{ padding: 14px; }
  .tu-lesson-link{ white-space:normal; overflow-wrap:anywhere; }
  .tu-lesson-row{ align-items:flex-start; }
  .tu-lesson-right{ flex-wrap:wrap; justify-content:flex-end; }
}
.tu-module-meta{ display:flex; align-items:center; gap:10px; color:#777; font-size:14px; }
.tu-chevron{ font-size:16px; }

.tu-module-body{ display:none; padding: 0 18px 18px; }
.tu-module.is-open .tu-module-body{ display:block; }

.tu-lesson-rows{ display:flex; flex-direction:column; gap:10px; margin-top: 10px; }
.tu-lesson-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding: 12px 0; border-bottom:1px solid #f2f2f2; }
.tu-lesson-row:last-child{ border-bottom:0; }
.tu-lesson-left{ display:flex; align-items:center; gap:10px; min-width: 0; }
.tu-lesson-num{ color:#555; white-space:nowrap; }
.tu-lesson-link{ color:#333; text-decoration:none; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tu-lesson-link:hover{ text-decoration:underline; }
.tu-lesson-right{ display:flex; align-items:center; gap:12px; }
.tu-lesson-dur{ color:#777; font-size:14px; white-space:nowrap; }

/* Lesson player layout */
.tu-player-wrap{ max-width: 1280px; margin: 0 auto; padding: 24px 16px; display:grid; grid-template-columns: 1fr 360px; gap: 22px; }
@media (max-width: 980px){ .tu-player-wrap{ grid-template-columns: 1fr; } }

.tu-player-card, .tu-side-card{ background:#fff; border:1px solid #eee; border-radius: 18px; box-shadow: 0 10px 24px rgba(0,0,0,.05); overflow:hidden; }
.tu-video{ background:#000; }
.tu-iframe{ width:100%; aspect-ratio: 16/9; display:block; }
.tu-player-header{ padding: 16px 18px 0; }
.tu-player-title{ margin: 0; font-size: 28px; line-height:1.2; }
.tu-player-breadcrumb{ margin-top: 8px; color:#777; font-size: 14px; display:flex; gap:8px; align-items:center; }
.tu-player-breadcrumb a{ color:#d40000; text-decoration:none; }
.tu-player-content{ padding: 14px 18px 18px; }
.tu-player-nav{ padding: 14px 18px 18px; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; border-top:1px solid #f2f2f2; }

.tu-side-card{ padding: 14px; }
.tu-side-title{ font-weight:700; margin-bottom: 10px; }
.tu-side-module{ border:1px solid #f0f0f0; border-radius: 14px; margin-bottom: 10px; overflow:hidden; }
.tu-side-module-head{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:10px; padding: 10px 12px; background:#fafafa; border:0; cursor:pointer; text-align:left; font-weight:600; }
.tu-side-meta{ background:#fff; border:1px solid #eee; padding: 2px 8px; border-radius: 999px; font-size: 12px; color:#666; }
.tu-side-module-body{ display:none; background:#fff; }
.tu-side-module.is-open .tu-side-module-body{ display:block; }
.tu-side-lesson{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding: 10px 12px; border-top:1px solid #f2f2f2; text-decoration:none; color:#333; }
.tu-side-lesson:hover{ background:#fff6f6; }
.tu-side-lesson.is-active{ background:#ffecec; }
.tu-side-lesson-title{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tu-side-lesson-dur{ color:#777; font-size:12px; white-space:nowrap; }


.tu-badge{ display:inline-flex; align-items:center; gap:8px; padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .03em; margin-bottom: 10px; }
.tu-badge--free{ background:#f5f5f5; color:#333; border:1px solid #eee; }
.tu-badge--paid{ background:#ffecec; color:#b10000; border:1px solid #ffd0d0; }


/* Paywall */
.tu-paywall{ padding: 18px; background:#fff6f6; border-bottom:1px solid #ffd0d0; }
.tu-paywall h2{ margin:0 0 8px; color:#b10000; }
.tu-paywall-cta{ margin-top: 12px; }
.tu-lesson-link--locked{ color:#999; font-weight:500; }
.tu-side-lesson--locked{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding: 10px 12px; border-top:1px solid #f2f2f2; color:#999; background:#fafafa; }

/* ===== TU LMS Mobile Wrap Fix (v3.0.0) ===== */
@media (max-width: 768px){
  /* When module is expanded, long lesson titles must wrap instead of forcing horizontal scroll */
  .tu-lesson-row{flex-wrap:wrap;}
  .tu-lesson-left{min-width:0;flex:1 1 100%;}
  .tu-lesson-link{
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .tu-lesson-right{width:100%;justify-content:flex-end;}
}
