/* v464.1 split from legacy style.css lines 6473-7997: Learner reader, lesson navigation, and protected lesson media rules. Preserve order via style.css imports. */
/* v200: de-duplicate SPA history entries and clean bundle/card copy. */

/* v202: clean enrollment-required page; no hero, visible centered buttons directly under the card. */
.course-access-clean-page{min-height:70vh;background:#fff9fd;display:block;padding:58px 0 82px}
.course-access-clean-page .section{padding:0}
.course-access-clean-card{max-width:760px;margin:0 auto;text-align:center;padding:46px 42px;border-radius:18px;box-shadow:0 24px 60px rgba(74,0,64,.08)}
.course-access-clean-card .access-kicker{margin:0 0 12px;text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:900;color:#8a006f}
.course-access-clean-card h2{margin:0 0 14px;color:#080011;font-size:26px;line-height:1.25}
.course-access-clean-card p{max-width:620px;margin-left:auto;margin-right:auto;color:#57314f;line-height:1.75}
.course-access-clean-actions{display:flex;justify-content:center;align-items:center;margin:22px auto 0;gap:12px;flex-wrap:wrap;text-align:center;width:100%}
.course-access-clean-actions .btn{min-width:148px;justify-content:center;border-radius:12px;box-shadow:0 12px 24px rgba(74,0,64,.08)}
.course-access-clean-actions .btn-primary{background:#fff;color:var(--purple-dark);border:1px solid rgba(122,0,107,.18)}
.course-access-clean-actions .btn-outline{background:#fff;color:var(--purple);border:1px solid rgba(122,0,107,.35)}
.course-access-clean-actions .btn-outline:hover{background:var(--purple);color:#fff;border-color:var(--purple)}
@media(max-width:640px){.course-access-clean-page{padding:34px 0 64px}.course-access-clean-card{padding:32px 20px;border-radius:16px}.course-access-clean-actions{flex-direction:column;margin-top:18px}.course-access-clean-actions .btn{width:min(100%,280px)}}

/* v208: lock admin write actions until the latest D1 bootstrap is verified. */
.admin-save-lock-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-4px 0 18px;padding:13px 16px;border:1px solid rgba(183,122,34,.28);background:linear-gradient(135deg,#fff7df,#fff 58%,#fff6fd);border-radius:16px;color:#3c1738;box-shadow:0 12px 30px rgba(74,0,64,.06)}
.admin-save-lock-banner strong{color:#7a006b;font-weight:900!important;white-space:nowrap}.admin-save-lock-banner span{font-size:13px;line-height:1.55;color:#6b4b65}.ja-admin-save-locked .studio-dashboard [data-save-builder],.ja-admin-save-locked .studio-dashboard form button[type="submit"],.ja-admin-save-locked #modal form button[type="submit"]{opacity:.58;cursor:not-allowed!important;filter:saturate(.75)}
@media(max-width:720px){.admin-save-lock-banner{align-items:flex-start;flex-direction:column}.admin-save-lock-banner strong{white-space:normal}}


/* v209: footer polish — reduce empty top space, strengthen footer presence, enlarge brand logo. */
.footer{
  padding:30px 0 34px!important;
}
.footer-grid{
  gap:46px!important;
  padding-bottom:44px!important;
  align-items:start!important;
}
.footer .logo-brand{
  margin:0 0 22px!important;
  max-width:260px!important;
}
.footer .brand-logo-full-img,
.footer .logo-brand.brand-logo-full .brand-logo-full-img{
  height:50px!important;
  max-height:50px!important;
  max-width:240px!important;
  object-fit:contain!important;
}
.footer p,
.footer li,
.footer a{
  font-size:16px!important;
  line-height:1.7!important;
}
.footer h4{
  margin:6px 0 18px!important;
  font-size:13px!important;
  letter-spacing:.18em!important;
}
.footer ul{
  gap:13px!important;
}
.footer-bottom{
  padding-top:24px!important;
}
@media(max-width:700px){
  .footer{padding:24px 0 32px!important;}
  .footer-grid{gap:28px!important;padding-bottom:34px!important;}
  .footer .brand-logo-full-img,
  .footer .logo-brand.brand-logo-full .brand-logo-full-img{
    height:42px!important;
    max-height:42px!important;
    max-width:210px!important;
  }
  .footer p,.footer li,.footer a{font-size:15px!important;}
}


/* v210: compact footer balance — less empty vertical space, same identity presence. */
.footer{
  padding:22px 0 20px!important;
}
.footer-grid{
  gap:34px!important;
  padding-bottom:20px!important;
  align-items:start!important;
}
.footer .logo-brand{
  margin:0 0 12px!important;
  max-width:230px!important;
}
.footer .brand-logo-full-img,
.footer .logo-brand.brand-logo-full .brand-logo-full-img{
  height:44px!important;
  max-height:44px!important;
  max-width:215px!important;
  object-fit:contain!important;
}
.footer p,
.footer li,
.footer a{
  font-size:15px!important;
  line-height:1.5!important;
}
.footer p{
  margin-top:8px!important;
  margin-bottom:12px!important;
}
.footer h4{
  margin:2px 0 12px!important;
  font-size:12px!important;
  letter-spacing:.17em!important;
}
.footer ul{
  gap:8px!important;
}
.footer-bottom{
  padding-top:14px!important;
  margin-top:0!important;
  font-size:12px!important;
}
@media(max-width:700px){
  .footer{padding:20px 0 18px!important;}
  .footer-grid{gap:22px!important;padding-bottom:18px!important;}
  .footer .logo-brand{margin-bottom:10px!important;}
  .footer .brand-logo-full-img,
  .footer .logo-brand.brand-logo-full .brand-logo-full-img{height:38px!important;max-height:38px!important;max-width:190px!important;}
  .footer p,.footer li,.footer a{font-size:14px!important;line-height:1.45!important;}
  .footer-bottom{padding-top:12px!important;}
}

/* v211: fix Dashboard → Courses search/category controls overlapping. */
.courses-compact-panel .admin-course-filter-row{
  width:100%!important;
  max-width:760px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(150px,220px)!important;
  gap:10px 12px!important;
  align-items:end!important;
  overflow:visible!important;
}
.courses-compact-panel .admin-course-filter-row .safe-search-label{
  grid-column:1 / -1!important;
  margin:0!important;
  line-height:1.2!important;
}
.courses-compact-panel .admin-course-filter-row .searchbar.compact,
.courses-compact-panel .admin-course-filter-row .safe-searchbar{
  min-width:0!important;
  max-width:none!important;
  width:100%!important;
  margin:0!important;
}
.courses-compact-panel .admin-course-filter-row .safe-searchbar input{
  min-width:0!important;
  width:100%!important;
  box-sizing:border-box!important;
}
.courses-compact-panel .admin-course-filter-row select,
.courses-compact-panel .admin-course-filter-row .select.compact{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  box-sizing:border-box!important;
  margin:0!important;
}
@media(max-width:760px){
  .courses-compact-panel .admin-course-filter-row{
    max-width:100%!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .courses-compact-panel .admin-course-filter-row .safe-search-label{
    grid-column:auto!important;
  }
}

/* v220: public marketing curriculum compact preview + definitive LTR/RTL row layout */
.public-curriculum-head{margin-bottom:16px!important;text-align:center!important;}
.public-curriculum-head h2{color:#111827!important;font-weight:850!important;font-size:clamp(24px,2.4vw,34px)!important;line-height:1.25!important;}
.public-course-curriculum .course-curriculum-wide{max-width:1120px!important;margin:0 auto!important;background:#fff!important;border:1px solid #e5e7eb!important;box-shadow:none!important;border-radius:0!important;padding:0 12px 12px!important;}
.public-course-curriculum .course-side-section{border:0!important;border-top:1px solid #e5e7eb!important;margin:0!important;padding:0 0 6px!important;background:#fff!important;border-radius:0!important;overflow:hidden!important;}
.public-course-curriculum .course-side-section:first-child{border-top:0!important;}
.public-course-curriculum .course-side-section h3.course-section-title,
.public-course-curriculum .course-side-section>h3,
.public-course-curriculum .course-side-section>summary.course-section-title{font-size:clamp(15px,1.25vw,18px)!important;font-weight:700!important;color:#79196f!important;line-height:1.45!important;background:#fff!important;padding:16px 18px 12px!important;margin:0!important;text-align:start!important;}
.public-course-curriculum .course-curriculum-wide.curriculum-flow-ltr .course-section-title{text-align:left!important;direction:ltr!important;}
.public-course-curriculum .course-curriculum-wide.curriculum-flow-rtl .course-section-title{text-align:right!important;direction:rtl!important;}
.public-curriculum-hidden{display:none!important;}
.public-curriculum-more-wrap{display:flex!important;justify-content:center!important;margin:16px 0 4px!important;}
.public-curriculum-show-more{min-width:160px!important;border-color:#79196f!important;color:#79196f!important;background:#fff!important;font-weight:900!important;border-radius:10px!important;padding:11px 18px!important;}
.public-curriculum-show-more:hover{background:#79196f!important;color:#fff!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row{display:grid!important;align-items:center!important;width:100%!important;gap:14px!important;border:0!important;border-top:0!important;border-radius:14px!important;background:#f7f7f8!important;color:#111827!important;padding:13px 16px!important;margin:8px 0!important;line-height:1.55!important;direction:ltr!important;text-align:start!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row:hover{background:#fbf3fa!important;transform:none!important;box-shadow:none!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr{grid-template-columns:minmax(0,1fr) max-content!important;direction:ltr!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl{grid-template-columns:max-content minmax(0,1fr)!important;direction:ltr!important;}
.public-course-curriculum .course-curriculum-wide .course-lesson-title{display:flex!important;align-items:center!important;gap:10px!important;min-width:0!important;max-width:100%!important;margin:0!important;font-size:clamp(14px,1vw,16px)!important;line-height:1.55!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;}
.public-course-curriculum .course-curriculum-wide .course-lesson-title::before{content:""!important;display:inline-block!important;flex:0 0 auto!important;width:14px!important;height:14px!important;border:1.5px solid #79196f!important;border-radius:999px!important;background:#fff!important;box-shadow:0 0 0 3px rgba(121,25,111,.04)!important;margin:0!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-lesson-title{grid-column:1!important;justify-self:start!important;justify-content:flex-start!important;text-align:left!important;direction:ltr!important;unicode-bidi:plaintext!important;flex-direction:row!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-lesson-title{grid-column:2!important;justify-self:end!important;justify-content:flex-start!important;text-align:right!important;direction:rtl!important;unicode-bidi:plaintext!important;flex-direction:row-reverse!important;}
.public-course-curriculum .course-curriculum-wide .course-row-actions{display:inline-flex!important;align-items:center!important;gap:8px!important;white-space:nowrap!important;direction:ltr!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-row-actions{grid-column:2!important;justify-self:end!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-row-actions{grid-column:1!important;justify-self:start!important;}
.public-course-curriculum .course-curriculum-wide .course-start-badge{display:inline-grid!important;place-items:center!important;min-width:112px!important;background:#79196f!important;color:#fff!important;border-radius:6px!important;font-size:12px!important;font-weight:900!important;padding:7px 10px!important;margin:0!important;direction:ltr!important;text-align:center!important;}
.public-course-curriculum .course-curriculum-wide .public-chip{display:inline-grid!important;place-items:center!important;background:#fff!important;color:#79196f!important;border-radius:999px!important;font-size:11px!important;font-weight:800!important;padding:4px 8px!important;margin:0!important;direction:ltr!important;text-align:center!important;}
@media(max-width:700px){
  .public-course-curriculum .course-curriculum-wide{padding:0 8px 10px!important;}
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr{grid-template-columns:minmax(0,1fr)!important;}
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl{grid-template-columns:minmax(0,1fr)!important;}
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-row-actions{grid-column:1!important;justify-self:end!important;}
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-row-actions{grid-column:1!important;justify-self:start!important;}
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-lesson-title{grid-column:1!important;}
}

/* v223 Media/R2 scalability */
.media-browser-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.media-browser-tools .media-search{min-width:min(360px,100%)}.media-folder-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-top:1px solid #ead6e8;background:#fbf6fb}.media-lazy-body .media-lazy-note{padding:14px;color:#6b6070}.media-area-card[open]>.media-area-folders{padding-top:8px}@media(max-width:760px){.media-browser-head{align-items:stretch}.media-browser-tools{justify-content:stretch}.media-browser-tools .media-search{width:100%;min-width:0}.media-folder-pager{flex-direction:column;align-items:stretch}.media-folder-pager .btn{width:100%}}

/* v228 analytics dashboard summary */
.overview-visit-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.overview-visit-summary>div{border:1px solid rgba(122,0,107,.12);border-radius:12px;background:#fff;padding:10px 12px;min-height:64px}
.overview-visit-summary small{display:block;color:#6b6070;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.overview-visit-summary strong{font-size:22px;line-height:1;color:#79196f;font-weight:950}
.overview-visit-bars{margin-top:8px}
@media(max-width:720px){.overview-visit-summary{grid-template-columns:1fr}}

/* v232 fixed owner/admin rail while scrolling
   Keep the dashboard menu attached to the left side on desktop/tablet widths,
   even when viewport CSS width drops below the older 1200px breakpoint. */
@media (min-width: 901px){
  .studio-dashboard{
    grid-template-columns:236px minmax(0,1fr)!important;
    align-items:start!important;
  }
  .studio-dashboard:not(.rail-collapsed) .studio-rail{
    position:sticky!important;
    top:0!important;
    left:0!important;
    align-self:start!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    z-index:80!important;
  }
  .studio-dashboard:not(.rail-collapsed) .studio-nav{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  .studio-dashboard:not(.rail-collapsed) .studio-open-site{
    flex:0 0 auto!important;
  }
  .studio-workspace{
    min-width:0!important;
  }
}
@media (max-width: 900px){
  .studio-dashboard{grid-template-columns:1fr!important;}
  .studio-rail{position:relative!important;height:auto!important;max-height:none!important;min-height:auto!important;}
}


/* v233/v234 dashboard app-shell scrolling
   Keep the owner/admin left rail visually attached to the left side while the dashboard content scrolls.
   This avoids body-level scrolling moving the rail and keeps the menu usable like a vertical app sidebar. */
@media (min-width: 901px){
  html:has(.studio-dashboard),
  body:has(.studio-dashboard){
    height:100%!important;
    overflow:hidden!important;
  }
  .studio-dashboard{
    width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:100dvh!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-columns:236px minmax(0,1fr)!important;
    align-items:stretch!important;
  }
  .studio-dashboard:not(.rail-collapsed) .studio-rail{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    bottom:auto!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    width:236px!important;
    overflow:hidden!important;
    align-self:stretch!important;
    z-index:80!important;
  }
  .studio-dashboard:not(.rail-collapsed) .studio-nav{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
  }
  .studio-dashboard:not(.rail-collapsed) .studio-open-site{
    flex:0 0 auto!important;
  }
  .studio-workspace{
    min-width:0!important;
    height:100dvh!important;
    max-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scroll-behavior:auto!important;
  }
  .studio-dashboard.rail-collapsed{
    grid-template-columns:1fr!important;
  }
  .studio-dashboard.rail-collapsed .studio-workspace{
    height:100dvh!important;
    max-height:100dvh!important;
    overflow-y:auto!important;
  }
}
@media (max-width: 900px){
  html:has(.studio-dashboard),
  body:has(.studio-dashboard){
    height:auto!important;
    overflow:auto!important;
  }
  .studio-dashboard{
    height:auto!important;
    max-height:none!important;
    min-height:100vh!important;
    overflow:visible!important;
    grid-template-columns:1fr!important;
  }
  .studio-rail{
    position:relative!important;
    top:auto!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    min-height:auto!important;
  }
  .studio-workspace{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
}


/* v242: homepage cards must use the exact selected dashboard templates.
   Do not force a special homepage card height/body/title layout here.
   The shared programCard()/bundleCard() renderers already pull from
   Dashboard → Templates → Program card templates and Bundle card templates. */
.home-program-category .browse-product-grid,
.home-category-programs .browse-product-grid{
  align-items:stretch!important;
}
.home-program-category .browse-product-grid > .program-card-template-scope,
.home-category-programs .browse-product-grid > .program-card-template-scope,
.home-program-category .browse-product-grid > .program-card,
.home-category-programs .browse-product-grid > .program-card{
  display:flex!important;
}


/* v247: homepage course/bundle cards now respect the selected template's own sizing.
   The card template itself controls height/image/body/button layout. */
.home-program-category .program-card-template-scope > article,
.home-category-programs .program-card-template-scope > article{max-width:100%!important;}

/* v253: final public curriculum, diploma cards, sticky lesson nav, rich text editor polish */
.ja-cloud-loading-screen{min-height:100dvh!important;display:grid!important;place-items:center!important;padding:max(28px,env(safe-area-inset-top)) 18px!important;text-align:center!important;}
.ja-cloud-loading-card{margin:auto!important;max-width:min(520px,92vw)!important;}
.ja-cloud-loading-logo{width:100%!important;height:100%!important;object-fit:contain!important;border-radius:14px!important;display:block!important;}

.course-reader-page .course-frame{align-items:start!important;}
@media(min-width:981px){
  .course-reader-page .course-sidebar[data-course-sidebar],
  .course-reader-page .course-sidebar{
    position:sticky!important;
    top:82px!important;
    max-height:calc(100dvh - 92px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scroll-behavior:auto!important;
    align-self:start!important;
  }
  .course-reader-page .course-content{scroll-margin-top:84px!important;}
}

.diploma-card-template-scope{flex:1 1 100%!important;max-width:100%!important;width:100%!important;display:block!important;}
.home-program-category .browse-product-grid > .diploma-card-template-scope,
.home-category-programs .browse-product-grid > .diploma-card-template-scope,
.browse-product-grid > .diploma-card-template-scope,
.featured-diploma-row > .diploma-card-template-scope{
  flex:1 1 100%!important;
  max-width:100%!important;
  width:100%!important;
}


/* v282: diploma card template scope must be full-row after the runtime adds both scope classes. */
.home-program-category .browse-product-grid > .program-card-template-scope.diploma-card-template-scope,
.home-category-programs .browse-product-grid > .program-card-template-scope.diploma-card-template-scope,
.browse-product-grid > .program-card-template-scope.diploma-card-template-scope,
.featured-diploma-row > .program-card-template-scope.diploma-card-template-scope{
  flex:0 0 100%!important;
  max-width:100%!important;
  width:100%!important;
  min-width:100%!important;
  display:block!important;
}
.program-card-template-scope.diploma-card-template-scope > article{
  width:100%!important;
  max-width:100%!important;
}
.bundle-diploma-home-grid,.featured-diploma-row{display:flex!important;flex-direction:column!important;gap:18px!important;align-items:stretch!important;}
.bundle-diploma-home-grid > *, .featured-diploma-row > *{max-width:100%!important;width:100%!important;}
.diploma-public-page .bundle-included-title,
.bundle-public-page .bundle-included-title{text-align:center!important;margin-left:auto!important;margin-right:auto!important;}
.bundle-public-page .course-enroll-final-card h2{max-width:900px!important;margin-left:auto!important;margin-right:auto!important;}

.public-course-curriculum .course-curriculum-wide{padding:0 12px 14px!important;border-radius:8px!important;}
.public-course-curriculum .course-side-section h3.course-section-title,
.public-course-curriculum .course-side-section>h3,
.public-course-curriculum .course-side-section>summary.course-section-title{
  text-align:center!important;
  justify-content:center!important;
  direction:auto!important;
  unicode-bidi:plaintext!important;
  font-weight:900!important;
  color:#79196f!important;
}
.public-course-curriculum .course-curriculum-wide.curriculum-flow-ltr .course-section-title,
.public-course-curriculum .course-curriculum-wide.curriculum-flow-rtl .course-section-title{text-align:center!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row{
  min-height:56px!important;
  border-radius:12px!important;
  padding:12px 16px!important;
  margin:7px 0!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr{grid-template-columns:minmax(0,1fr) max-content!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl{grid-template-columns:max-content minmax(0,1fr)!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-lesson-title{grid-column:1!important;text-align:left!important;direction:ltr!important;justify-self:start!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-lesson-title{grid-column:2!important;text-align:right!important;direction:rtl!important;justify-self:end!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-row-actions{grid-column:2!important;justify-self:end!important;}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-row-actions{grid-column:1!important;justify-self:start!important;}
.public-course-curriculum .course-curriculum-wide .course-start-badge{min-width:104px!important;font-size:11px!important;letter-spacing:.01em!important;}
@media(max-width:640px){
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row,
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr,
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl{grid-template-columns:1fr!important;gap:8px!important;}
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row .course-row-actions{grid-column:1!important;justify-self:start!important;order:2!important;}
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row .course-lesson-title{grid-column:1!important;justify-self:stretch!important;order:1!important;text-align:start!important;}
}

.ja-rich-editor-wrap{border:1px solid #ead8e8;border-radius:14px;background:#fff;overflow:hidden;margin:0 0 14px;box-shadow:0 8px 24px rgba(74,0,64,.05)}
.ja-rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px;border-bottom:1px solid #ead8e8;background:#fff7fd;position:sticky;top:0;z-index:2}
.ja-rich-toolbar button,.ja-rich-toolbar select,.ja-rich-toolbar label{height:34px;border:1px solid #dfc8dd;background:#fff;border-radius:8px;padding:0 9px;font-size:12px;font-weight:800;color:#3d1a39;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.ja-rich-toolbar input[type="color"]{width:26px;height:24px;border:0;padding:0;background:transparent;cursor:pointer}
.ja-rich-editor{min-height:220px;padding:16px 18px;font-size:16px;line-height:1.7;color:#2b0a28;outline:none;background:#fff;overflow:auto;white-space:normal}
.ja-rich-editor:focus{box-shadow:inset 0 0 0 2px rgba(121,25,111,.16)}
.builder-rich-text{white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.75!important;}
.builder-rich-text p{margin:0 0 .8em}.builder-rich-text p:last-child{margin-bottom:0}.builder-rich-text ul,.builder-rich-text ol{margin:.6em 0 .8em 1.4em}.builder-rich-text blockquote{margin:1em 0;padding:.8em 1em;border-inline-start:4px solid #870076;background:#fff7fd;border-radius:8px}


/* v255: public curriculum professional alignment fix.
   One course-wide flow decides physical placement: LTR = title left/action right; RTL = action left/title right.
   Removes duplicate decorative circles created by older pseudo-element overrides. */
.public-course-curriculum .course-curriculum-wide .curriculum-course-row{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  width:100%!important;
  grid-template-columns:none!important;
  direction:ltr!important;
  padding:14px 18px!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row::before,
.public-course-curriculum .course-curriculum-wide .course-lesson-title::before{
  content:none!important;
  display:none!important;
}
.public-course-curriculum .course-curriculum-wide .course-row-actions{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex:0 0 auto!important;
  min-width:0!important;
}
.public-course-curriculum .course-curriculum-wide .course-row-actions .course-start-badge,
.public-course-curriculum .course-curriculum-wide .course-row-actions .public-chip{
  margin:0!important;
  order:initial!important;
  white-space:nowrap!important;
  direction:ltr!important;
}
.public-course-curriculum .course-curriculum-wide .course-lesson-title{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex:1 1 auto!important;
  min-width:0!important;
  margin:0!important;
}
.public-course-curriculum .course-curriculum-wide .course-lesson-dot{
  display:inline-block!important;
  flex:0 0 auto!important;
  width:16px!important;
  height:16px!important;
  border:1.5px solid #79196f!important;
  border-radius:999px!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(121,25,111,.04)!important;
}
.public-course-curriculum .course-curriculum-wide .course-lesson-name{
  min-width:0!important;
  overflow-wrap:anywhere!important;
  unicode-bidi:isolate!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-lesson-title{
  order:1!important;
  justify-content:flex-start!important;
  text-align:left!important;
  direction:ltr!important;
  margin-right:14px!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-row-actions{
  order:2!important;
  margin-left:auto!important;
  margin-right:0!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-lesson-title.dir-rtl{
  direction:rtl!important;
  text-align:left!important;
  justify-content:flex-start!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-row-actions{
  order:1!important;
  margin-right:auto!important;
  margin-left:0!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-lesson-title{
  order:2!important;
  justify-content:flex-end!important;
  text-align:right!important;
  direction:rtl!important;
  margin-left:14px!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-lesson-title.dir-ltr{
  direction:ltr!important;
  text-align:right!important;
  justify-content:flex-end!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-rtl .course-lesson-title{
  flex-direction:row-reverse!important;
}
.public-course-curriculum .course-curriculum-wide .curriculum-course-row.flow-ltr .course-lesson-title{
  flex-direction:row!important;
}
.public-course-curriculum .course-side-section>h3,
.public-course-curriculum .course-side-section h3.course-section-title{
  text-align:center!important;
}
@media(max-width:700px){
  .public-course-curriculum .course-curriculum-wide .curriculum-course-row{
    gap:10px!important;
    padding:12px 12px!important;
  }
  .public-course-curriculum .course-curriculum-wide .course-row-actions .course-start-badge{
    min-width:72px!important;
    font-size:11px!important;
    padding:6px 8px!important;
  }
}

/* v256 professional polish */
/* Header: give the saved logo breathing room without changing Settings. */
.navbar .brand,
.navbar .logo-brand{
  padding-top:8px!important;
}
.navbar .brand img,
.navbar .logo-brand img{
  display:block!important;
}

/* Builder text default + rich selected-text editing polish. */
.builder-align-justify,
.builder-align-justify .builder-text,
.builder-preview-site .builder-align-justify{
  text-align:justify!important;
}
.ja-rich-editor-wrap{
  border:1px solid #ead8e8;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.ja-rich-toolbar{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  padding:8px!important;
  background:#faf3f9!important;
  border-bottom:1px solid #ead8e8!important;
  position:sticky;
  top:0;
  z-index:2;
}
.ja-rich-toolbar button,
.ja-rich-toolbar select,
.ja-rich-toolbar input[type="color"],
.rich-size-input{
  min-height:30px;
  border:1px solid #dfc8dc;
  border-radius:7px;
  background:#fff;
  color:#29112a;
  font-size:12px;
}
.ja-rich-toolbar button{padding:4px 8px;cursor:pointer;font-weight:700;}
.ja-rich-toolbar button:hover{border-color:#79196f;color:#79196f;}
.rich-size-input{width:58px;padding:3px 5px;}
.ja-rich-editor{
  min-height:240px;
  padding:14px 16px;
  outline:none;
  line-height:1.75;
  text-align:justify;
  white-space:normal;
}
.ja-rich-editor p{margin:0 0 .9em;}
.ja-rich-editor p:empty::before{content:'\00a0';}
.ja-rich-editor ul,.ja-rich-editor ol{padding-inline-start:1.6rem;margin:.4em 0 .9em;}

/* Public curriculum: reset direction and alignment from scratch. */
.public-course-curriculum .course-curriculum-wide{
  direction:ltr!important;
}
.public-course-curriculum .course-side-section.curriculum-section{
  direction:ltr!important;
  display:block;
}
.public-course-curriculum .course-side-section.curriculum-section.public-curriculum-section-hidden{
  display:none!important;
}
.public-course-curriculum .course-section-title{
  text-align:center!important;
  justify-content:center!important;
  direction:auto!important;
  unicode-bidi:plaintext!important;
  margin:18px auto!important;
}
.public-course-curriculum .curriculum-course-row{
  width:100%!important;
  display:grid!important;
  align-items:center!important;
  gap:16px!important;
  direction:ltr!important;
  text-align:initial!important;
}
.public-course-curriculum .curriculum-course-row.flow-ltr{
  grid-template-columns:minmax(0,1fr) auto!important;
}
.public-course-curriculum .curriculum-course-row.flow-rtl{
  grid-template-columns:auto minmax(0,1fr)!important;
}
.public-course-curriculum .curriculum-course-row.flow-ltr .course-lesson-title{
  grid-column:1!important;
  order:initial!important;
  justify-content:flex-start!important;
  text-align:left!important;
  margin:0!important;
  flex-direction:row!important;
}
.public-course-curriculum .curriculum-course-row.flow-ltr .course-row-actions{
  grid-column:2!important;
  order:initial!important;
  justify-self:end!important;
  margin:0!important;
}
.public-course-curriculum .curriculum-course-row.flow-rtl .course-row-actions{
  grid-column:1!important;
  order:initial!important;
  justify-self:start!important;
  margin:0!important;
}
.public-course-curriculum .curriculum-course-row.flow-rtl .course-lesson-title{
  grid-column:2!important;
  order:initial!important;
  justify-content:flex-end!important;
  text-align:right!important;
  margin:0!important;
  flex-direction:row-reverse!important;
}
.public-course-curriculum .course-lesson-title.dir-rtl{direction:rtl!important;unicode-bidi:plaintext!important;}
.public-course-curriculum .course-lesson-title.dir-ltr{direction:ltr!important;unicode-bidi:plaintext!important;}
.public-course-curriculum .course-lesson-dot{
  flex:0 0 auto!important;
  width:14px!important;
  height:14px!important;
  border:1.5px solid #b0009c!important;
  border-radius:999px!important;
  background:#fff!important;
  display:inline-block!important;
}
.public-curriculum-show-more{
  background:#79196f!important;
  border-color:#79196f!important;
  color:#fff!important;
  font-weight:800!important;
  padding:12px 22px!important;
  border-radius:10px!important;
  box-shadow:0 10px 22px rgba(121,25,111,.18)!important;
}
.public-curriculum-show-more:hover{
  background:#5f1057!important;
  border-color:#5f1057!important;
  color:#fff!important;
}
.course-enroll-final-copy{
  margin:0 0 16px!important;
  font-size:clamp(1.15rem,2vw,1.45rem)!important;
  font-weight:400!important;
  color:#241024!important;
  text-align:center!important;
}

/* R2 preview modal */
.media-preview-frame{
  width:100%;
  min-height:min(72vh,760px);
  border:1px solid #ead8e8;
  border-radius:12px;
  background:#fff;
}
.media-preview-shell{
  width:100%;
  max-height:72vh;
  overflow:auto;
  border:1px solid #ead8e8;
  border-radius:12px;
  background:#fafafa;
  display:flex;
  align-items:center;
  justify-content:center;
}
.media-preview-image{
  max-width:100%;
  height:auto;
  display:block;
}

@media(max-width:700px){
  .public-course-curriculum .curriculum-course-row.flow-ltr,
  .public-course-curriculum .curriculum-course-row.flow-rtl{
    grid-template-columns:1fr!important;
  }
  .public-course-curriculum .curriculum-course-row .course-row-actions,
  .public-course-curriculum .curriculum-course-row .course-lesson-title{
    grid-column:1!important;
    justify-self:stretch!important;
  }
  .public-course-curriculum .curriculum-course-row.flow-rtl .course-row-actions,
  .public-course-curriculum .curriculum-course-row.flow-ltr .course-row-actions{
    justify-self:start!important;
  }
}
.diploma-public-page .course-enroll-final-btn{font-weight:400!important;}


/* v257: final clean public curriculum direction/layout override.
   This intentionally has higher specificity than older v220/v255/v256 rules. */
.public-course-curriculum .course-curriculum-wide .curriculum-lesson-line{
  width:100%!important;
  max-width:100%!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row{
  display:grid!important;
  align-items:center!important;
  justify-content:stretch!important;
  width:100%!important;
  max-width:100%!important;
  min-height:56px!important;
  gap:14px!important;
  padding:12px 16px!important;
  margin:8px 0!important;
  background:#f7f7f8!important;
  border:0!important;
  border-radius:12px!important;
  direction:ltr!important;
  text-align:initial!important;
  box-shadow:none!important;
  transform:none!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row:hover{
  background:#fbf3fa!important;
  box-shadow:none!important;
  transform:none!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-ltr{
  grid-template-columns:minmax(0,1fr) max-content!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-rtl{
  grid-template-columns:max-content minmax(0,1fr)!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row .course-row-actions{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  width:auto!important;
  white-space:nowrap!important;
  direction:ltr!important;
  margin:0!important;
  order:initial!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-ltr .course-row-actions{
  grid-column:2!important;
  justify-self:end!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-rtl .course-row-actions{
  grid-column:1!important;
  justify-self:start!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row .course-start-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:112px!important;
  min-height:30px!important;
  padding:7px 10px!important;
  border-radius:6px!important;
  background:#79196f!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1!important;
  margin:0!important;
  text-align:center!important;
  direction:ltr!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row .public-chip{
  margin:0!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row .course-lesson-title{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
  margin:0!important;
  order:initial!important;
  overflow:visible!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-ltr .course-lesson-title{
  grid-column:1!important;
  justify-self:stretch!important;
  justify-content:flex-start!important;
  text-align:left!important;
  direction:ltr!important;
  flex-direction:row!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-rtl .course-lesson-title{
  grid-column:2!important;
  justify-self:stretch!important;
  justify-content:flex-start!important;
  text-align:right!important;
  direction:rtl!important;
  flex-direction:row!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row .course-lesson-title::before,
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row::before{
  content:none!important;
  display:none!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row .course-lesson-dot{
  display:inline-block!important;
  flex:0 0 auto!important;
  width:14px!important;
  height:14px!important;
  border:1.5px solid #b0009c!important;
  border-radius:999px!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(121,25,111,.04)!important;
  margin:0!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row .course-lesson-name{
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  unicode-bidi:plaintext!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-ltr .course-lesson-name{
  direction:ltr!important;
  text-align:left!important;
}
.public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-rtl .course-lesson-name{
  direction:rtl!important;
  text-align:right!important;
}
.public-course-curriculum .course-curriculum-wide .course-side-section.curriculum-section,
.public-course-curriculum .course-curriculum-wide .course-side-section.curriculum-section.dir-rtl,
.public-course-curriculum .course-curriculum-wide .course-side-section.curriculum-section.dir-ltr{
  direction:ltr!important;
}
.public-course-curriculum .course-curriculum-wide .course-section-title,
.public-course-curriculum .course-curriculum-wide .course-side-section>h3.course-section-title{
  display:block!important;
  width:100%!important;
  text-align:center!important;
  direction:auto!important;
  unicode-bidi:plaintext!important;
  justify-content:center!important;
}
@media(max-width:700px){
  .public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-ltr,
  .public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-rtl{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-ltr .course-row-actions,
  .public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-rtl .course-row-actions{
    grid-column:1!important;
    justify-self:start!important;
  }
  .public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-ltr .course-lesson-title,
  .public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row.flow-rtl .course-lesson-title{
    grid-column:1!important;
  }
  .public-course-curriculum .course-curriculum-wide button.course-lesson-row.curriculum-course-row .course-start-badge{
    min-width:92px!important;
    font-size:11px!important;
  }
}

/* v259 professional audit polish */
.professional-service-row{border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:12px 14px;background:rgba(255,255,255,.09)}
.professional-service-row .progress-label{margin:0;gap:14px;justify-content:flex-start}
.course-sidebar .course-lesson-number{display:inline-grid!important;place-items:center!important;width:22px!important;height:22px!important;border-radius:999px!important;background:#f5e7f3!important;color:#79196f!important;font-size:11px!important;font-weight:950!important;line-height:1!important;margin-top:1px!important}
.course-sidebar .course-drag{display:none!important}

.learn-page-intro{margin-top:-8px;color:var(--muted);font-size:16px;line-height:1.6}

/* v271: public program/course/diploma pages must not visually use bold text. */
.programs-browse-shell :is(h1,h2,h3,h4,h5,h6,strong,b,button,.btn,.chip,.price,.section-label,.program-type-pill,.filter,.program-category-menu label,.program-foot,.program-meta,.status),
.course-public-page :is(h1,h2,h3,h4,h5,h6,strong,b,button,.btn,.chip,.price,.section-label,.course-short-description,.course-long-description,.course-enroll-final-copy,.course-lesson-row,.course-side-section h3,.public-curriculum-row,.curriculum-title,.curriculum-button),
.diploma-public-page :is(h1,h2,h3,h4,h5,h6,strong,b,button,.btn,.chip,.price,.section-label,.course-short-description,.course-long-description,.bundle-included-title,.course-enroll-final-copy),
.bundle-public-page :is(h1,h2,h3,h4,h5,h6,strong,b,button,.btn,.chip,.price,.section-label,.bundle-included-title,.course-enroll-final-copy),
.enrollment-page :is(h1,h2,h3,h4,h5,h6,strong,b,label,button,.btn,.section-label,.form-traditional-head,.enrollment-course-title),
.course-access-request-page :is(h1,h2,h3,h4,h5,h6,strong,b,button,.btn,.section-label),
.course-portal-page :is(h1,h2,h3,h4,h5,h6,strong,b,button,.btn,.chip) {
  font-weight:400!important;
}
.programs-browse-shell .browse-product-grid,
.home-program-category .browse-product-grid,
.home-category-programs .browse-product-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.browse-product-grid > .diploma-card-template-scope,
.diploma-card-template-scope {
  grid-column:1 / -1;
}
@media(max-width:900px){
  .programs-browse-shell .browse-product-grid,
  .home-program-category .browse-product-grid,
  .home-category-programs .browse-product-grid{grid-template-columns:1fr!important;}
}

/* v273: keep the in-course lesson navigation relatively fixed while scrolling, matching the dashboard rail behavior. */
.course-reader-page .course-frame{
  align-items:start!important;
}
.course-reader-page .course-sidebar{
  position:sticky!important;
  top:78px!important;
  align-self:start!important;
  height:calc(100vh - 78px)!important;
  max-height:calc(100vh - 78px)!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  z-index:45;
}
.course-reader-page .course-content{
  min-width:0;
  overflow:visible!important;
}
@media(max-width:980px){
  .course-reader-page .course-sidebar{
    position:relative!important;
    top:auto!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    z-index:auto;
  }
}
@media(max-width:620px){
  .course-reader-page .course-sidebar{display:none!important;}
}


/* v274: course reader navigation is truly viewport-fixed on desktop.
   Earlier sticky rules overrode template-level fixed nav because they used
   .course-reader-page .course-sidebar with !important. Keep the sidebar
   attached to the left side of the viewport while the lesson body scrolls. */
@media(min-width:981px){
  .course-reader-page:not(.builder-course-preview) .course-frame{
    display:block!important;
    min-height:calc(100dvh - 78px)!important;
    padding-left:310px!important;
    align-items:start!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-sidebar,
  .course-reader-page:not(.builder-course-preview) .course-sidebar[data-course-sidebar],
  .course-reader-page:not(.builder-course-preview) .ja-sticky-course-nav,
  .course-reader-page:not(.builder-course-preview) .ja-fixed-course-nav{
    position:fixed!important;
    left:0!important;
    top:78px!important;
    width:310px!important;
    height:calc(100dvh - 78px)!important;
    max-height:calc(100dvh - 78px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    z-index:70!important;
    background:#fff!important;
    border-right:1px solid #ead6e8!important;
    box-shadow:8px 0 28px rgba(42,15,45,.06)!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-content{
    width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    overflow:visible!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-sidebar *,
  .course-reader-page:not(.builder-course-preview) .course-nav-btn,
  .course-reader-page:not(.builder-course-preview) .course-nav-btn *{
    font-weight:400!important;
  }
}
@media(max-width:980px){
  .course-reader-page:not(.builder-course-preview) .course-frame{
    display:block!important;
    padding-left:0!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-sidebar,
  .course-reader-page:not(.builder-course-preview) .course-sidebar[data-course-sidebar],
  .course-reader-page:not(.builder-course-preview) .ja-sticky-course-nav,
  .course-reader-page:not(.builder-course-preview) .ja-fixed-course-nav{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    z-index:auto!important;
    box-shadow:none!important;
  }
}
@media(max-width:620px){
  .course-reader-page:not(.builder-course-preview) .course-sidebar,
  .course-reader-page:not(.builder-course-preview) .course-sidebar[data-course-sidebar]{
    display:none!important;
  }
  .course-reader-page.course-menu-open:not(.builder-course-preview) .course-sidebar,
  .course-reader-page.course-menu-open:not(.builder-course-preview) .course-sidebar[data-course-sidebar]{
    display:block!important;
    position:fixed!important;
    left:0!important;
    top:76px!important;
    bottom:0!important;
    width:min(390px,90vw)!important;
    height:auto!important;
    max-height:calc(100dvh - 76px)!important;
    overflow-y:auto!important;
    z-index:999!important;
    box-shadow:18px 0 50px rgba(0,0,0,.24)!important;
    background:#fff!important;
  }
}


/* v275: final course viewport fit. Keep the reader topbar fixed, attach the
   curriculum rail directly beneath it, and reset template-level left margins
   so lesson content uses the available screen instead of drifting right. */
@media(min-width:981px){
  .course-reader-page:not(.builder-course-preview){
    --ja-course-topbar-h:78px;
    --ja-course-sidebar-w:294px;
    padding-top:var(--ja-course-topbar-h)!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-topbar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    height:var(--ja-course-topbar-h)!important;
    z-index:1000!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-frame{
    display:block!important;
    min-height:calc(100dvh - var(--ja-course-topbar-h))!important;
    padding-left:var(--ja-course-sidebar-w)!important;
    margin-left:0!important;
    width:100%!important;
    max-width:none!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-sidebar,
  .course-reader-page:not(.builder-course-preview) .course-sidebar[data-course-sidebar],
  .course-reader-page:not(.builder-course-preview) .ja-sticky-course-nav,
  .course-reader-page:not(.builder-course-preview) .ja-fixed-course-nav{
    position:fixed!important;
    left:0!important;
    top:var(--ja-course-topbar-h)!important;
    width:var(--ja-course-sidebar-w)!important;
    height:calc(100dvh - var(--ja-course-topbar-h))!important;
    max-height:calc(100dvh - var(--ja-course-topbar-h))!important;
    margin:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:900!important;
    background:#fff!important;
    border-right:1px solid #ead6e8!important;
    box-shadow:8px 0 28px rgba(42,15,45,.06)!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-frame > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.ja-sticky-course-nav) > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.ja-fixed-course-nav) > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.course-sidebar) > .course-content{
    margin-left:0!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    padding:24px clamp(18px,3vw,42px) 70px!important;
    overflow:visible!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-content :is(iframe,video,embed,object){
    max-width:100%!important;
  }
}
@media(max-width:980px){
  .course-reader-page:not(.builder-course-preview){padding-top:0!important;}
}


/* v276: calibrated course reader screen fit. The fixed course rail owns the
   left column, while the lesson content starts immediately after it with a
   small professional gutter instead of a large blank offset. */
@media(min-width:981px){
  .course-reader-page:not(.builder-course-preview){
    --ja-course-topbar-h:78px;
    --ja-course-sidebar-w:294px;
    --ja-course-content-gutter:16px;
    padding-top:var(--ja-course-topbar-h)!important;
    overflow-x:hidden!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-frame{
    display:block!important;
    box-sizing:border-box!important;
    min-height:calc(100dvh - var(--ja-course-topbar-h))!important;
    padding-left:var(--ja-course-sidebar-w)!important;
    margin:0!important;
    width:100%!important;
    max-width:none!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-sidebar,
  .course-reader-page:not(.builder-course-preview) .course-sidebar[data-course-sidebar],
  .course-reader-page:not(.builder-course-preview) .ja-sticky-course-nav,
  .course-reader-page:not(.builder-course-preview) .ja-fixed-course-nav{
    position:fixed!important;
    left:0!important;
    top:var(--ja-course-topbar-h)!important;
    width:var(--ja-course-sidebar-w)!important;
    height:calc(100dvh - var(--ja-course-topbar-h))!important;
    max-height:calc(100dvh - var(--ja-course-topbar-h))!important;
    margin:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:900!important;
    background:#fff!important;
    border-right:1px solid #ead6e8!important;
    box-shadow:8px 0 28px rgba(42,15,45,.06)!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-frame > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.ja-sticky-course-nav) > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.ja-fixed-course-nav) > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.course-sidebar) > .course-content{
    box-sizing:border-box!important;
    margin:0!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    padding:22px var(--ja-course-content-gutter) 70px!important;
    overflow:visible!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-title-row{
    margin:0 0 22px!important;
    max-width:none!important;
  }
  .course-reader-page:not(.builder-course-preview) .lesson-builder-html{
    width:100%!important;
    max-width:none!important;
    margin:0 0 28px!important;
  }
  .course-reader-page:not(.builder-course-preview) .lesson-builder-html > *{
    max-width:100%!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-content :is(iframe,video,embed,object){
    max-width:100%!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-completion-card,
  .course-reader-page:not(.builder-course-preview) .course-content-card:not(.lesson-builder-html){
    max-width:min(980px,100%)!important;
  }
}


/* v277: scaled course reader and Teachable-style durable lesson navigation. */
@media(min-width:981px){
  .course-reader-page:not(.builder-course-preview){
    --ja-course-topbar-h:78px;
    --ja-course-sidebar-w:294px;
    --ja-course-content-gutter:18px;
    --ja-course-lesson-max-w:1120px;
  }
  .course-reader-page:not(.builder-course-preview) .course-frame > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.ja-sticky-course-nav) > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.ja-fixed-course-nav) > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.course-sidebar) > .course-content{
    padding:20px var(--ja-course-content-gutter) 70px!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-title-row{
    margin:0 auto 22px!important;
    max-width:var(--ja-course-lesson-max-w)!important;
    transform:scale(.92)!important;
    transform-origin:top center!important;
  }
  .course-reader-page:not(.builder-course-preview) .lesson-builder-html > *{
    max-width:min(var(--ja-course-lesson-max-w),88%)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-content :is(iframe,video,embed,object){
    max-width:100%!important;
    max-height:64dvh!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-completion-card,
  .course-reader-page:not(.builder-course-preview) .course-content-card:not(.lesson-builder-html){
    max-width:min(900px,88%)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}
.course-reader-page .course-sidebar,
.course-reader-page .course-sidebar *{
  font-weight:400!important;
  box-sizing:border-box!important;
}
.course-reader-page .ja-teachable-course-nav,
.course-reader-page .course-sidebar{
  background:#fff!important;
  border-right:1px solid #ded5de!important;
  box-shadow:10px 0 30px rgba(55,18,58,.08)!important;
}
.course-reader-page .ja-course-nav-progress{
  padding:18px 22px 24px!important;
  background:#fff!important;
  border-bottom:1px solid #e8e1e8!important;
}
.course-reader-page .ja-course-nav-title{
  color:#130014!important;
  font-size:14px!important;
  line-height:1.5!important;
  margin-bottom:16px!important;
}
.course-reader-page .ja-course-nav-track{
  height:7px!important;
  border-radius:999px!important;
  background:#e5e1e5!important;
  overflow:hidden!important;
  margin-bottom:9px!important;
}
.course-reader-page .ja-course-nav-track i{
  display:block!important;
  height:100%!important;
  border-radius:999px!important;
  background:#76006e!important;
}
.course-reader-page .ja-course-nav-percent{
  text-align:center!important;
  color:#07000a!important;
  font-size:14px!important;
  letter-spacing:.01em!important;
}
.course-reader-page .ja-course-nav-percent strong{
  font-size:18px!important;
  margin-right:5px!important;
}
.course-reader-page .course-side-section{
  margin:0!important;
  border:0!important;
  border-bottom:1px solid #ead6e8!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#fff!important;
}
.course-reader-page .course-side-section h3{
  margin:0!important;
  padding:18px 16px!important;
  background:#fff!important;
  color:#120013!important;
  font-size:15px!important;
  line-height:1.4!important;
  border-bottom:1px solid #ead6e8!important;
}
.course-reader-page .course-lesson-row{
  display:grid!important;
  grid-template-columns:34px 30px minmax(0,1fr)!important;
  gap:0!important;
  align-items:center!important;
  width:100%!important;
  min-height:47px!important;
  padding:0 14px!important;
  background:#fff!important;
  border:0!important;
  border-top:1px solid #eee2ee!important;
  text-align:start!important;
  color:#211324!important;
  font-size:13px!important;
  line-height:1.4!important;
  white-space:normal!important;
}
.course-reader-page .course-lesson-row:hover{background:#fff7fd!important;}
.course-reader-page .course-lesson-row.active,
.course-reader-page .course-lesson-row.lesson-current{
  background:#f3dff0!important;
  color:#26001f!important;
  border-left:4px solid #76006e!important;
  padding-left:10px!important;
}
.course-reader-page .course-status-dot{
  width:18px!important;
  height:18px!important;
  border-radius:999px!important;
  border:2px solid #76006e!important;
  color:#76006e!important;
  background:#fff!important;
  display:grid!important;
  place-items:center!important;
  font-size:10px!important;
  line-height:1!important;
}
.course-reader-page .course-lesson-row.lesson-completed .course-status-dot,
.course-reader-page .course-lesson-row.lesson-done .course-status-dot{
  background:#76006e!important;
  color:#fff!important;
  border-color:#76006e!important;
}
.course-reader-page .course-lesson-row.lesson-visited .course-status-dot{
  background:#fff!important;
  color:#76006e!important;
  border-color:#76006e!important;
}
.course-reader-page .course-lesson-row.active .course-status-dot,
.course-reader-page .course-lesson-row.lesson-current .course-status-dot{
  background:#76006e!important;
  color:#fff!important;
  border-color:#76006e!important;
}
.course-reader-page .course-drag{
  color:#46394a!important;
  font-size:15px!important;
  text-align:center!important;
}
.course-reader-page .course-title-text,
.course-reader-page .course-lesson-row > span:last-child{
  min-width:0!important;
  overflow-wrap:anywhere!important;
}


/* v278: professional lesson media fit. Keep the fixed reader layout, but
   constrain lesson media so PDFs do not open oversized and vertical videos do
   not dominate the page as a huge black rectangle. */
@media(min-width:981px){
  .course-reader-page:not(.builder-course-preview){
    --ja-course-lesson-max-w:980px;
    --ja-course-video-max-w:880px;
    --ja-course-document-max-w:840px;
    --ja-course-content-gutter:18px;
  }
  .course-reader-page:not(.builder-course-preview) .course-frame > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.ja-sticky-course-nav) > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.ja-fixed-course-nav) > .course-content,
  .course-reader-page:not(.builder-course-preview) .course-frame:has(.course-sidebar) > .course-content{
    padding:20px var(--ja-course-content-gutter) 70px!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-title-row{
    margin:0 auto 20px!important;
    max-width:var(--ja-course-lesson-max-w)!important;
    transform:scale(.94)!important;
    transform-origin:top center!important;
  }
  .course-reader-page:not(.builder-course-preview) .lesson-builder-content{
    display:grid!important;
    gap:28px!important;
    align-content:start!important;
  }
  .course-reader-page:not(.builder-course-preview) .lesson-builder-html > *{
    max-width:min(var(--ja-course-lesson-max-w),92%)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .course-reader-page:not(.builder-course-preview) .protected-embed,
  .course-reader-page:not(.builder-course-preview) .lesson-builder-html .protected-embed{
    width:min(var(--ja-course-video-max-w),94%)!important;
    max-width:min(var(--ja-course-video-max-w),94%)!important;
    margin:0 auto 32px!important;
    border-radius:22px!important;
    background:#09090b!important;
    box-shadow:0 22px 56px rgba(13,10,18,.13)!important;
  }
  .course-reader-page:not(.builder-course-preview) .protected-embed iframe{
    display:block!important;
    width:100%!important;
    aspect-ratio:16/9!important;
    height:auto!important;
    min-height:0!important;
    max-height:58dvh!important;
    border:0!important;
    border-radius:22px!important;
    background:#09090b!important;
  }
  .course-reader-page:not(.builder-course-preview) .builder-document-preview{
    width:min(var(--ja-course-document-max-w),94%)!important;
    max-width:min(var(--ja-course-document-max-w),94%)!important;
    margin:0 auto 32px!important;
    border-radius:18px!important;
    overflow:hidden!important;
    box-shadow:0 18px 46px rgba(75,15,69,.07)!important;
  }
  .course-reader-page:not(.builder-course-preview) .builder-document-preview summary{
    padding:12px 16px!important;
  }
  .course-reader-page:not(.builder-course-preview) .builder-document-toolbar{
    padding:9px 14px!important;
  }
  .course-reader-page:not(.builder-course-preview) .builder-document-frame{
    display:block!important;
    width:100%!important;
    height:min(60dvh,620px)!important;
    min-height:420px!important;
    max-height:620px!important;
    border:0!important;
    background:#f7f2f7!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-content :is(video,embed,object){
    max-width:100%!important;
    max-height:58dvh!important;
  }
  .course-reader-page:not(.builder-course-preview) .course-completion-card,
  .course-reader-page:not(.builder-course-preview) .course-content-card:not(.lesson-builder-html){
    max-width:min(880px,92%)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}


/* v281: diploma card templates are full-row items.
   The homepage/category grid previously treated every template scope as a
   3-column course card, so horizontal diploma templates were squeezed into
   a narrow column and stacked vertically. Diploma templates must own the
   whole row; the selected template controls its inner image/text layout. */
.home-program-category .browse-product-grid > .diploma-card-template-scope,
.home-category-programs .browse-product-grid > .diploma-card-template-scope,
.programs-browse-shell .browse-product-grid > .diploma-card-template-scope,
.browse-product-grid > .diploma-card-template-scope,
.featured-diploma-row > .diploma-card-template-scope,
.bundle-diploma-home-grid > .diploma-card-template-scope{
  flex:1 1 100%!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:block!important;
  margin-left:0!important;
  margin-right:0!important;
  align-self:stretch!important;
}
.home-program-category .browse-product-grid > .diploma-card-template-scope > article,
.home-category-programs .browse-product-grid > .diploma-card-template-scope > article,
.programs-browse-shell .browse-product-grid > .diploma-card-template-scope > article,
.browse-product-grid > .diploma-card-template-scope > article,
.featured-diploma-row > .diploma-card-template-scope > article,
.bundle-diploma-home-grid > .diploma-card-template-scope > article{
  width:100%!important;
  max-width:100%!important;
}
.home-program-category .browse-product-grid:has(> .diploma-card-template-scope),
.home-category-programs .browse-product-grid:has(> .diploma-card-template-scope),
.bundle-diploma-home-grid{
  justify-content:stretch!important;
}


/* v284 — Public marketing curriculum catalogue; platform lesson routes remain private. */
.public-course-curriculum .public-catalog-title-only{cursor:default!important;user-select:text!important;}
.public-course-curriculum .public-catalog-title-only:hover{transform:none!important;box-shadow:none!important;}
.public-course-curriculum .public-catalog-title-only .course-start-badge{font-weight:400!important;}
.bundle-public-curriculum-section{background:#fbf8fb!important;}
.bundle-public-curriculum-head{text-align:center;margin-bottom:26px!important;}
.bundle-public-curriculum-head h2,.bundle-public-curriculum-head p{font-weight:400!important;}
.bundle-public-curriculum-list{display:grid;gap:24px;}
.bundle-course-curriculum{background:#fff!important;border:1px solid #ead8e8;border-radius:18px;padding:22px;box-shadow:0 12px 34px rgba(62,14,58,.06);}
.bundle-curriculum-course-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #ead8e8;}
.bundle-curriculum-course-head h3{margin:0;color:#79196f;font-size:clamp(22px,2.4vw,30px);font-weight:400!important;}
.bundle-curriculum-course-head p{margin:4px 0 0;color:#675d68;font-size:13px;font-weight:400!important;}
.bundle-course-curriculum .course-curriculum-wide{max-width:none!important;}
.bundle-course-curriculum .course-side-section:last-child{margin-bottom:0!important;}
@media(max-width:760px){.bundle-course-curriculum{padding:14px}.bundle-curriculum-course-head{align-items:start;flex-direction:column}}

