/* v464.1 split from legacy style.css lines 7998-11460: Public catalog/certificate/card/template rendering rules. Preserve order via style.css imports. */
/* v285 — Professional Certificates, responsive lesson media, safer HTML blocks */
.professional-certificate-page,
.professional-certificate-page :is(p,span,small,button,.btn,.chip,.price){font-weight:400!important;}
.professional-certificate-page :is(h1,h2,h3){font-weight:600!important;}
.professional-certificate-page .course-sales-copy{min-width:0;}
.certificate-included-note,.certificate-curriculum-help{margin:0 auto 20px;max-width:760px;text-align:center;color:#655765;line-height:1.65;}
.certificate-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch;}
.certificate-course-grid.one-course{max-width:420px;margin-inline:auto;grid-template-columns:minmax(0,1fr);}
.certificate-course-grid.two-courses{max-width:820px;margin-inline:auto;grid-template-columns:repeat(2,minmax(0,1fr));}

.certificate-course-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #ead8e8;border-radius:20px;background:#fff;box-shadow:0 14px 34px rgba(75,15,69,.08);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;}
.certificate-course-card:hover,.certificate-course-card:focus-visible{transform:translateY(-2px);box-shadow:0 20px 44px rgba(75,15,69,.13);outline:2px solid rgba(121,25,111,.18);outline-offset:2px;}
.certificate-course-card-media{aspect-ratio:16/9;width:100%;overflow:hidden;background:#f6f0f5;}
.certificate-course-card-media img,.certificate-course-card-media iframe,.certificate-course-card-media .protected-embed{width:100%!important;height:100%!important;min-height:0!important;object-fit:cover;display:block;}
.certificate-course-card-body{display:flex;flex:1;flex-direction:column;gap:10px;padding:18px;}
.certificate-course-card-body h3{margin:0;font-size:1.08rem;line-height:1.45;overflow-wrap:anywhere;}
.certificate-course-card-body p{margin:0;color:#655765;line-height:1.55;flex:1;}
.certificate-course-card-body .btn{width:100%;justify-content:center;margin-top:4px;}
.certificate-course-card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;}
.certificate-course-card-actions .btn{flex:1 1 170px;margin-top:0;}
.certificate-curriculum-modal{max-height:min(78dvh,900px);overflow:auto;padding-inline:2px;}
.certificate-curriculum-modal .public-course-curriculum{margin-top:16px;}

.bundle-selected-order{display:grid;gap:8px;margin-top:10px;}
.bundle-order-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:#fbf7fb;border:1px solid #ead8e8;}
.bundle-order-heading small{color:#756675;}
.bundle-selected-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid #ead8e8;border-radius:12px;background:#fff;}
.bundle-selected-row>span{min-width:0;overflow-wrap:anywhere;}
.bundle-selected-row>div{display:flex;gap:6px;flex:0 0 auto;}

.curriculum-import-intro{padding:16px 18px;border-radius:16px;background:#fbf7fb;border:1px solid #ead8e8;}
.curriculum-import-intro h3{margin:0 0 6px;font-weight:600;}
.curriculum-import-intro p{margin:0;color:#655765;line-height:1.6;}
.curriculum-import-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto auto auto;gap:10px;align-items:center;}
.curriculum-import-toolbar .searchbar{width:100%;}
.curriculum-import-browser{max-height:min(52dvh,650px);overflow:auto;border:1px solid #ead8e8;border-radius:16px;padding:12px;background:#fff;}
.curriculum-import-course-panel{display:grid;gap:10px;}
.curriculum-import-section{border:1px solid #eee1ec;border-radius:14px;overflow:hidden;background:#fff;}
.curriculum-import-section>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 14px;background:#fbf7fb;cursor:pointer;}
.curriculum-import-section>summary span{font-weight:600;}
.curriculum-import-section-tools{display:flex;gap:8px;padding:10px 12px 0;}
.curriculum-import-lessons{display:grid;gap:7px;padding:10px 12px 14px;}
.curriculum-import-lesson-row{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:10px;border:1px solid transparent;}
.curriculum-import-lesson-row:hover{border-color:#ead8e8;background:#fff9fe;}
.curriculum-import-footer{display:flex;justify-content:space-between;gap:16px;align-items:center;}
.curriculum-import-footer p{margin:0;max-width:650px;}

.ja-html-block-shell{width:100%;max-width:100%;overflow:hidden;border:1px solid #ead8e8;border-radius:18px;background:#fff;}
.ja-html-block-frame{display:block;width:100%!important;min-height:420px;height:clamp(420px,68dvh,900px);border:0!important;border-radius:0!important;background:#fff!important;}

.course-reader-page:not(.builder-course-preview) .course-content,
.course-reader-page:not(.builder-course-preview) .course-content-card{min-width:0;}
.course-reader-page:not(.builder-course-preview) .course-content-card{width:100%;max-width:1180px;margin-inline:auto;}
.course-reader-page:not(.builder-course-preview) .protected-embed{width:min(1120px,100%)!important;margin-inline:auto!important;aspect-ratio:16/9!important;min-height:0!important;}
.course-reader-page:not(.builder-course-preview) .protected-embed iframe{display:block;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;aspect-ratio:16/9!important;}
.course-reader-page:not(.builder-course-preview) .builder-document-preview{width:min(1120px,100%)!important;margin-inline:auto!important;}
.course-reader-page:not(.builder-course-preview) .builder-document-frame{display:block;width:100%!important;height:clamp(560px,74dvh,920px)!important;min-height:560px!important;max-height:none!important;border:0;}
.course-reader-page:not(.builder-course-preview) .builder-document-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}

@media(max-width:980px){
  .certificate-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
  .professional-certificate-page{overflow-x:hidden;}
  .professional-certificate-page .course-sales-hero>.container,
  .professional-certificate-page .section>.container{width:min(100% - 20px,1180px)!important;}
  .professional-certificate-page .course-sales-hero{padding-top:84px!important;}
  .professional-certificate-page .course-sales-hero-grid{grid-template-columns:1fr!important;gap:16px!important;}
  .professional-certificate-page .course-sales-media{width:100%!important;max-width:none!important;aspect-ratio:16/9!important;min-height:0!important;border-radius:16px!important;}
  .professional-certificate-page .course-sales-copy{padding:2px 0 0!important;}
  .professional-certificate-page .course-sales-copy h1{font-size:clamp(24px,8vw,34px)!important;overflow-wrap:anywhere;}
  .professional-certificate-page .course-long-description-section{padding:14px!important;border-radius:14px;}
  .professional-certificate-page .bundle-included-section{padding:26px 0 12px!important;}
  .certificate-course-grid{grid-template-columns:1fr;gap:14px;}
  .certificate-course-grid.one-course,.certificate-course-grid.two-courses{max-width:none;grid-template-columns:1fr;}
  .certificate-course-card{border-radius:16px;}
  .certificate-course-card-body{padding:15px;}
  .certificate-curriculum-modal{max-height:74dvh;}
  .bundle-order-heading,.bundle-selected-row,.curriculum-import-footer{align-items:stretch;flex-direction:column;}
  .bundle-selected-row>div{justify-content:flex-end;}
  .curriculum-import-toolbar{grid-template-columns:1fr 1fr;}
  .curriculum-import-toolbar .searchbar,.curriculum-import-toolbar [data-import-selection-count]{grid-column:1/-1;}
  .curriculum-import-browser{max-height:48dvh;padding:8px;}
  .curriculum-import-section>summary{align-items:flex-start;}
  .course-reader-page:not(.builder-course-preview) .course-content-card{padding:10px!important;margin:10px auto!important;border-radius:14px!important;}
  .course-reader-page:not(.builder-course-preview) .protected-embed{width:100%!important;aspect-ratio:16/9!important;border-radius:14px!important;}
  .course-reader-page:not(.builder-course-preview) .protected-embed iframe{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/9!important;}
  .course-reader-page:not(.builder-course-preview) .builder-document-preview{width:100%!important;border-radius:14px!important;}
  .course-reader-page:not(.builder-course-preview) .builder-document-frame{display:block!important;width:100%!important;height:72dvh!important;min-height:420px!important;max-height:none!important;}
  .course-reader-page:not(.builder-course-preview) .pdf-mobile-preview-card{display:none!important;}
  .ja-html-block-frame{min-height:360px;height:68dvh;}
}

/* v285 — lighter typography: reserve strong weight for real hierarchy only. */
.btn,.nav-link,.filter,.side-btn,.program-card button,.program-card .btn{font-weight:500!important;}
.field>label,.table th,.status,.chip,.price{font-weight:600!important;}
.program-card h3,.course-public-page h1,.course-public-page h2,.studio-panel h3,.modal-head h2{font-weight:600!important;}
.program-card p,.program-card small,.program-card span:not(.price):not(.status){font-weight:400!important;}
#modal .modal:has(.certificate-curriculum-modal){width:min(980px,100%)!important;}
@media(max-width:760px){#modal .modal:has(.certificate-curriculum-modal){padding:16px!important;border-radius:18px!important;}}


/* v289: exact public course curriculum language layout.
   1) All Arabic: button left, title and bullet right.
   2) All English: title and bullet left, button right.
   3) Arabic majority or equal: same as Arabic.
   4) English majority: same as English.
   Each individual title keeps its own writing direction. */
.public-course-curriculum .course-curriculum-wide .course-side-section>h3.course-section-title,
.public-course-curriculum .course-curriculum-wide .course-section-title{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:17px 20px 15px!important;
  text-align:center!important;
  unicode-bidi:plaintext!important;
  color:#79196f!important;
  font-family:inherit!important;
  font-size:clamp(17px,1.7vw,21px)!important;
  font-weight:400!important;
  line-height:1.45!important;
  letter-spacing:0!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only{
  display:grid!important;
  align-items:center!important;
  width:100%!important;
  min-height:64px!important;
  gap:16px!important;
  margin:8px 0!important;
  padding:12px 18px!important;
  direction:ltr!important;
  background:#f7f7f8!important;
  border:0!important;
  border-radius:13px!important;
  box-shadow:none!important;
  transform:none!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only:hover{
  background:#fbf3fa!important;
  transform:none!important;
  box-shadow:none!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-ltr{
  grid-template-columns:minmax(0,1fr) max-content!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-rtl{
  grid-template-columns:max-content minmax(0,1fr)!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only::before,
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-title::before{
  content:none!important;
  display:none!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-title{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  width:100%!important;
  gap:10px!important;
  margin:0!important;
  padding:0!important;
  color:#1b1720!important;
  font-size:clamp(14px,1.25vw,16px)!important;
  font-weight:400!important;
  line-height:1.55!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-name{
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  font-weight:400!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  unicode-bidi:isolate!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-ltr .course-lesson-title{
  grid-column:1!important;
  grid-row:1!important;
  justify-self:stretch!important;
  justify-content:flex-start!important;
  flex-direction:row!important;
  text-align:left!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-rtl .course-lesson-title{
  grid-column:2!important;
  grid-row:1!important;
  justify-self:stretch!important;
  justify-content:flex-end!important;
  flex-direction:row-reverse!important;
  text-align:right!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-name[dir="ltr"]{
  direction:ltr!important;
  text-align:left!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-name[dir="rtl"]{
  direction:rtl!important;
  text-align:right!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-dot{
  display:inline-block!important;
  flex:0 0 auto!important;
  width:8px!important;
  height:8px!important;
  margin:0!important;
  border:1.5px solid #251b25!important;
  border-radius:999px!important;
  background:transparent!important;
  box-shadow:none!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-row-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  direction:ltr!important;
  white-space:nowrap!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-ltr .course-row-actions{
  grid-column:2!important;
  grid-row:1!important;
  justify-self:end!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-rtl .course-row-actions{
  grid-column:1!important;
  grid-row:1!important;
  justify-self:start!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-start-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:104px!important;
  min-height:34px!important;
  margin:0!important;
  padding:7px 13px!important;
  border-radius:7px!important;
  background:#79196f!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:400!important;
  line-height:1!important;
  text-align:center!important;
  letter-spacing:0!important;
}
@media(max-width:700px){
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only{
    min-height:58px!important;
    gap:10px!important;
    padding:11px 12px!important;
  }
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-ltr{
    grid-template-columns:minmax(0,1fr) minmax(82px,auto)!important;
  }
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-rtl{
    grid-template-columns:minmax(82px,auto) minmax(0,1fr)!important;
  }
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-title{
    gap:8px!important;
    font-size:14px!important;
  }
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-start-badge{
    min-width:82px!important;
    min-height:32px!important;
    padding:6px 8px!important;
    font-size:11px!important;
  }
}

/* v290: Arabic/English bidirectional curriculum support.
   The curriculum majority controls only the physical row layout:
   - flow-ltr: one bullet + title LEFT, action RIGHT.
   - flow-rtl: action LEFT, title + one bullet RIGHT.
   Each title is isolated with <bdi dir="auto"> so mixed Arabic/English text
   follows the Unicode first-strong rule without moving the controls. */
.public-course-curriculum .course-curriculum-wide .course-side-section > h3.course-section-title,
.public-course-curriculum .course-curriculum-wide h3.course-section-title{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:17px 20px 15px!important;
  color:#79196f!important;
  font-family:inherit!important;
  font-size:clamp(17px,1.7vw,21px)!important;
  font-weight:400!important;
  line-height:1.45!important;
  letter-spacing:0!important;
  text-align:center!important;
  direction:ltr!important;
  unicode-bidi:isolate!important;
}
.public-course-curriculum .course-curriculum-wide .course-section-name{
  display:inline!important;
  font:inherit!important;
  font-weight:400!important;
  unicode-bidi:isolate!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only{
  display:grid!important;
  align-items:center!important;
  width:100%!important;
  min-height:64px!important;
  gap:16px!important;
  margin:8px 0!important;
  padding:12px 18px!important;
  direction:ltr!important;
  text-align:initial!important;
  list-style:none!important;
  background:#f7f7f8!important;
  border:0!important;
  border-radius:13px!important;
  box-shadow:none!important;
  transform:none!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-ltr{
  grid-template-columns:minmax(0,1fr) max-content!important;
  grid-template-areas:"title actions"!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-rtl{
  grid-template-columns:max-content minmax(0,1fr)!important;
  grid-template-areas:"actions title"!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only::before,
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only::after,
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-title::before,
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-title::after,
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-name::before,
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-name::after,
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-dot::before,
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-dot::after{
  content:none!important;
  display:none!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-title{
  grid-area:title!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  direction:ltr!important;
  unicode-bidi:isolate!important;
  font-size:clamp(14px,1.25vw,16px)!important;
  font-weight:400!important;
  line-height:1.55!important;
  color:#1b1720!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-ltr .course-lesson-title{
  justify-self:stretch!important;
  justify-content:flex-start!important;
  flex-direction:row!important;
  text-align:left!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-rtl .course-lesson-title{
  justify-self:stretch!important;
  justify-content:flex-end!important;
  flex-direction:row-reverse!important;
  text-align:right!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-name{
  display:block!important;
  flex:0 1 auto!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  font:inherit!important;
  font-weight:400!important;
  line-height:inherit!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  text-align:start!important;
  unicode-bidi:isolate!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-dot{
  display:block!important;
  flex:0 0 8px!important;
  width:8px!important;
  height:8px!important;
  margin:0!important;
  padding:0!important;
  border:1.5px solid #251b25!important;
  border-radius:999px!important;
  background:transparent!important;
  box-shadow:none!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-row-actions{
  grid-area:actions!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:stretch!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  direction:ltr!important;
  white-space:nowrap!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-ltr .course-row-actions{
  justify-self:end!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-rtl .course-row-actions{
  justify-self:start!important;
}
.public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-start-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:104px!important;
  min-height:34px!important;
  margin:0!important;
  padding:7px 13px!important;
  border-radius:7px!important;
  background:#79196f!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:400!important;
  line-height:1!important;
  text-align:center!important;
  letter-spacing:0!important;
  direction:ltr!important;
}
@media(max-width:700px){
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only{
    min-height:58px!important;
    gap:10px!important;
    padding:11px 12px!important;
  }
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-ltr{
    grid-template-columns:minmax(0,1fr) minmax(82px,auto)!important;
  }
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only.flow-rtl{
    grid-template-columns:minmax(82px,auto) minmax(0,1fr)!important;
  }
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-lesson-title{
    gap:8px!important;
    font-size:14px!important;
  }
  .public-course-curriculum .course-curriculum-wide .public-catalog-title-only .course-start-badge{
    min-width:82px!important;
    min-height:32px!important;
    padding:6px 8px!important;
    font-size:11px!important;
  }
}

/* v291: final public curriculum ownership and single-marker guard.
   Only the explicit .course-lesson-dot may draw a lesson marker. */
.public-course-curriculum [data-public-curriculum-index],
.public-course-curriculum [data-public-curriculum-index] .public-catalog-title-only{
  list-style:none!important;
}
.public-course-curriculum [data-public-curriculum-index]::marker,
.public-course-curriculum [data-public-curriculum-index] .public-catalog-title-only::marker{
  content:""!important;
  font-size:0!important;
}
.public-course-curriculum [data-public-curriculum-index] .public-catalog-title-only::before,
.public-course-curriculum [data-public-curriculum-index] .public-catalog-title-only::after,
.public-course-curriculum [data-public-curriculum-index] .course-lesson-title::before,
.public-course-curriculum [data-public-curriculum-index] .course-lesson-title::after,
.public-course-curriculum [data-public-curriculum-index] .course-lesson-name::before,
.public-course-curriculum [data-public-curriculum-index] .course-lesson-name::after,
.public-course-curriculum [data-public-curriculum-index] .course-row-actions::before,
.public-course-curriculum [data-public-curriculum-index] .course-row-actions::after,
.public-course-curriculum [data-public-curriculum-index] .course-start-badge::before,
.public-course-curriculum [data-public-curriculum-index] .course-start-badge::after{
  content:none!important;
  display:none!important;
}
.public-course-curriculum [data-public-curriculum-index] .course-lesson-dot{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.public-course-curriculum .course-section-title,
.public-course-curriculum .course-section-name{
  font-weight:400!important;
}

/* v293: isolated public curriculum rows.
   These unique classes deliberately avoid all legacy course-row/title rules,
   preventing inherited pseudo bullets and keeping physical placement stable. */
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row{
  display:grid!important;
  align-items:center!important;
  width:100%!important;
  min-height:64px!important;
  gap:16px!important;
  margin:8px 0!important;
  padding:12px 18px!important;
  direction:ltr!important;
  list-style:none!important;
  background:#f7f7f8!important;
  border:0!important;
  border-radius:13px!important;
  box-shadow:none!important;
  color:#1b1720!important;
  transform:none!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row.flow-ltr{
  grid-template-columns:minmax(0,1fr) max-content!important;
  grid-template-areas:"title actions"!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row.flow-rtl{
  grid-template-columns:max-content minmax(0,1fr)!important;
  grid-template-areas:"actions title"!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row::before,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row::after,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-title::before,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-title::after,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-name::before,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-name::after,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-marker::before,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-marker::after,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-actions::before,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-actions::after,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-button::before,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-button::after{
  content:none!important;
  display:none!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-title{
  grid-area:title!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  gap:10px!important;
  margin:0!important;
  padding:0!important;
  direction:ltr!important;
  unicode-bidi:isolate!important;
  font-size:clamp(14px,1.25vw,16px)!important;
  font-weight:400!important;
  line-height:1.55!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row.flow-ltr .ja-public-curriculum-title{
  flex-direction:row!important;
  justify-content:flex-start!important;
  justify-self:stretch!important;
  text-align:left!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row.flow-rtl .ja-public-curriculum-title{
  flex-direction:row-reverse!important;
  justify-content:flex-start!important;
  justify-self:stretch!important;
  text-align:right!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-name{
  display:block!important;
  flex:0 1 auto!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  font:inherit!important;
  font-weight:400!important;
  line-height:inherit!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  text-align:start!important;
  unicode-bidi:isolate!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-marker{
  display:block!important;
  flex:0 0 8px!important;
  width:8px!important;
  height:8px!important;
  margin:0!important;
  padding:0!important;
  border:1.5px solid #251b25!important;
  border-radius:999px!important;
  background:transparent!important;
  box-shadow:none!important;
  visibility:visible!important;
  opacity:1!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-actions{
  grid-area:actions!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  direction:ltr!important;
  white-space:nowrap!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row.flow-ltr .ja-public-curriculum-actions{
  justify-self:end!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row.flow-rtl .ja-public-curriculum-actions{
  justify-self:start!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:104px!important;
  min-height:34px!important;
  margin:0!important;
  padding:7px 13px!important;
  border:0!important;
  border-radius:7px!important;
  background:#79196f!important;
  color:#fff!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-align:center!important;
  direction:ltr!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-button:hover,
.public-course-curriculum .course-curriculum-wide .ja-public-curriculum-button:focus-visible{
  background:#5f1458!important;
  color:#fff!important;
  text-decoration:none!important;
  outline:2px solid rgba(121,25,111,.22)!important;
  outline-offset:2px!important;
}
@media(max-width:700px){
  .public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row{
    min-height:58px!important;
    gap:10px!important;
    padding:11px 12px!important;
  }
  .public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row.flow-ltr{
    grid-template-columns:minmax(0,1fr) minmax(82px,auto)!important;
  }
  .public-course-curriculum .course-curriculum-wide .ja-public-curriculum-row.flow-rtl{
    grid-template-columns:minmax(82px,auto) minmax(0,1fr)!important;
  }
  .public-course-curriculum .course-curriculum-wide .ja-public-curriculum-title{
    gap:8px!important;
    font-size:14px!important;
  }
  .public-course-curriculum .course-curriculum-wide .ja-public-curriculum-button{
    min-width:82px!important;
    min-height:32px!important;
    padding:6px 8px!important;
    font-size:11px!important;
  }
}


/* v381: six public catalog filters; certificate bundle pill is branded as Diplomas and Vault stays last. */
.program-type-filter{
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
}
@media(max-width:680px){
  .program-type-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .program-type-pill:last-child{grid-column:auto!important;}
}


/* v296: truly lazy, infinitely nestable R2 tree. No folder or file is auto-opened. */
.media-tree-browser .media-browser-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.media-tree-path-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0 0 14px}
.media-tree-root,.media-tree-folder,.media-tree-file{margin:0}
.media-tree-root>summary{border:1px solid #ead6e8;border-radius:18px;background:#fff7fd}
.media-tree-root[open]>summary{border-radius:18px 18px 0 0}
.media-tree-root>.media-lazy-body{border:1px solid #ead6e8;border-top:0;border-radius:0 0 18px 18px;padding:10px;background:#fcf9fc}
.media-tree-children{display:grid;gap:8px}
.media-tree-folder>.media-lazy-body,.media-tree-file>.media-lazy-body{border-top:1px solid #f0e2ee;padding:10px;background:#fff}
.media-tree-folder .media-tree-children{padding-left:14px;border-left:2px solid #f0e2ee}
.media-tree-file-details{display:grid;gap:10px}
.media-tree-file-meta{display:flex;gap:7px;flex-wrap:wrap}
.media-tree-file-meta span{border:1px solid #ead6e8;background:#fbf4fa;border-radius:999px;padding:5px 8px;font-size:11px;color:#6b4667}
.media-tree-file-url code{display:block;white-space:normal;word-break:break-all;padding:9px 10px;border-radius:12px;background:#fbf7fb;border:1px solid #f0e2ee;color:#4b0f45}
.media-tree-file-usage{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;font-size:12px}
.media-tree-file-usage span{min-width:0;word-break:break-word}
.media-tree-more{display:flex;justify-content:center;padding:8px}
.media-tree-browser details:not([open])>.media-lazy-body{display:none!important}
@media(max-width:720px){
  .media-tree-path-tools{grid-template-columns:1fr}
  .media-tree-browser .media-browser-tools{display:grid;grid-template-columns:1fr}
  .media-tree-folder .media-tree-children{padding-left:7px}
  .media-tree-file-usage{grid-template-columns:1fr}
}

/* v297: show real D1 course/page/lesson names while preserving immutable R2 keys. */
.media-tree-entity-kind{display:inline-flex;align-items:center;border:1px solid #ead6e8;background:#fff7fd;color:#79196f;border-radius:999px;padding:1px 6px;font-size:10px;line-height:1.4}
.media-tree-folder .media-folder-title strong{font-weight:600;overflow-wrap:anywhere}
.media-tree-folder .media-folder-title small{display:block;margin-top:3px;overflow-wrap:anywhere}

/* v298 — course-first media library */
.media-course-library{margin-top:18px}
.media-course-library .media-browser-head p{display:block!important}
.media-library-principle{margin:0 0 16px;padding:11px 13px;border:1px solid #ead6e8;border-radius:14px;background:#fff9fe;color:#62475f;font-size:12px;line-height:1.55}
.media-library-principle strong{color:#691c61;font-weight:600}
.media-library-primary{display:grid;gap:18px}
.media-library-section{display:grid;gap:10px}
.media-library-section-head{display:flex;align-items:end;justify-content:space-between;gap:12px}
.media-library-section-head h5{margin:0;color:#31112e;font-size:17px;font-weight:600}
.media-library-section-head p{margin:2px 0 0;color:#7a6677;font-size:12px}
.media-library-course,.media-library-website{border-radius:16px}
.media-library-course>summary,.media-library-website>summary{padding:13px 15px}
.media-library-course-groups,.media-library-lesson-list{display:grid;gap:9px}
.media-library-leaf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.media-library-logical>.media-lazy-body,.media-library-physical>.media-lazy-body{border-top:1px solid #f0e2ee;padding:10px;background:#fff}
.media-library-logical .media-folder-title strong,.media-library-course .media-folder-title strong,.media-library-website .media-folder-title strong{font-weight:600}
.media-library-course .media-folder-title small,.media-library-website .media-folder-title small{white-space:normal;overflow-wrap:anywhere}
.media-library-physical .media-folder-icon,.media-library-logical .media-folder-icon,.media-library-course .media-folder-icon,.media-library-website .media-folder-icon{font-size:9px;line-height:1.1;text-align:center;padding:3px}
.media-library-more{display:flex;justify-content:center;padding-top:4px}
.media-library-advanced-section{padding-top:2px;border-top:1px solid #f0e2ee}
.media-advanced-browser{padding:10px 0 0!important;border:0!important;background:transparent!important}
.media-upload-organized{margin-bottom:18px}
.media-upload-grid{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(170px,1fr) minmax(200px,1.15fr) minmax(200px,1.15fr);gap:12px;align-items:end}
.media-upload-grid .field{margin:0}
.media-upload-grid .media-url-field{grid-column:span 2}
.media-upload-advanced{margin-top:12px;border-top:1px solid #f0e2ee;padding-top:10px}
.media-upload-advanced>summary{cursor:pointer;color:#691c61;font-size:12px;font-weight:600}
.media-upload-advanced .field{margin-top:10px}
.media-upload-organized [hidden]{display:none!important}
.media-upload-organized .media-file-pill{min-width:0}
@media(max-width:1100px){.media-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .media-upload-grid,.media-library-leaf-grid{grid-template-columns:1fr}
  .media-upload-grid .media-url-field{grid-column:auto}
  .media-library-course>summary,.media-library-website>summary{align-items:flex-start}
  .media-course-library .media-browser-tools{display:grid;width:100%}
}

/* v299 — R2 clean interface and scroll stability */
.media-library-panel,
.media-course-library,
.media-course-library details,
.media-course-library .media-lazy-body{
  overflow-anchor:none;
}
.media-course-library summary{
  scroll-margin-block:14px;
}
.media-tree-technical-name{
  color:#8a7787;
  font-size:10px;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
}


/* v300 — R2 targeted rendering, request cancellation, and browser paint containment. */
.media-course-library .media-tree-children,
.media-course-library .media-library-lesson-list,
.media-course-library .media-library-course-groups{
  contain:layout paint style;
}
.media-course-library .media-tree-children > .media-folder-card,
.media-course-library .media-area-list > .media-library-course,
.media-course-library .media-library-lesson-list > .media-library-logical{
  content-visibility:auto;
  contain-intrinsic-size:72px;
}
.media-course-library .media-lazy-body{
  min-width:0;
}
.media-modal-preview img,
.media-modal-preview video{
  display:block;
  width:100%;
  max-height:78vh;
  object-fit:contain;
  border-radius:14px;
}


/* v301 — direct preview actions for every browser-previewable R2 file. */
.media-tree-file>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.media-tree-file>summary .media-folder-title{min-width:0;flex:1 1 auto}
.media-file-row-actions{display:flex;align-items:center;flex:0 0 auto;margin-left:auto}
.media-row-preview{
  min-height:32px;
  padding:6px 12px;
  border:1px solid #dcc2d9;
  border-radius:10px;
  background:#fff;
  color:#691c61;
  font:inherit;
  font-size:11px;
  font-weight:500;
  cursor:pointer;
}
.media-row-preview:hover{background:#fbf4fa;border-color:#c99bc4}
.media-row-preview:disabled{opacity:.6;cursor:wait}
.media-audio-preview{display:grid;place-items:center;min-height:180px;padding:24px}
.media-audio-preview audio{width:min(100%,720px)}
.media-text-preview{max-height:78vh;overflow:auto;border:1px solid #ead6e8;border-radius:14px;background:#fff}
.media-text-preview>p{margin:0;padding:10px 14px;border-bottom:1px solid #ead6e8;background:#fbf7fb}
.media-text-preview pre{margin:0;padding:16px;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;color:#2d172a;text-align:left;direction:ltr}
@media(max-width:720px){
  .media-tree-file>summary{align-items:flex-start}
  .media-row-preview{min-height:30px;padding:5px 9px;font-size:10px}
}

/* v302 — stable media labels and plain file rows. */
.media-course-library .media-folder-title{
  display:grid!important;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:10px!important;
  min-width:0;
  flex:1 1 auto;
}
.media-course-library .media-folder-title>div{min-width:0}
.media-course-library .media-folder-title strong{
  max-width:none!important;
  min-width:0;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.media-course-library .media-folder-title small{
  min-width:0;
  white-space:normal!important;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.media-course-library .media-folder-icon{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  flex:0 0 18px!important;
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:transparent!important;
  font-size:0!important;
  overflow:hidden;
  position:relative;
}
.media-course-library .media-folder-icon::before{
  content:"";
  display:block;
  box-sizing:border-box;
  width:15px;
  height:11px;
  margin:4px 0 0 1px;
  border:1.5px solid #79196f;
  border-radius:2px;
  background:#fff;
}
.media-course-library .media-folder-icon::after{
  content:"";
  position:absolute;
  left:2px;
  top:2px;
  width:7px;
  height:4px;
  border:1.5px solid #79196f;
  border-bottom:0;
  border-radius:2px 2px 0 0;
  background:#fff;
}
.media-tree-children>.media-file-row{
  content-visibility:auto;
  contain-intrinsic-size:58px;
}
.media-file-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-width:0;
  padding:10px 12px;
  border:1px solid #ead6e8;
  border-radius:14px;
  background:#fff;
}
.media-file-row-main{
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:10px;
  min-width:0;
}
.media-file-marker{
  display:block;
  box-sizing:border-box;
  width:14px;
  height:17px;
  border:1.5px solid #79196f;
  border-radius:2px;
  position:relative;
  background:#fff;
}
.media-file-marker::after{
  content:"";
  position:absolute;
  right:-1.5px;
  top:-1.5px;
  width:5px;
  height:5px;
  border-left:1.5px solid #79196f;
  border-bottom:1.5px solid #79196f;
  background:#fbf4fa;
}
.media-file-copy{min-width:0}
.media-file-copy strong{
  display:block;
  min-width:0;
  color:var(--purple-dark);
  font-size:12px;
  font-weight:600;
  line-height:1.4;
  white-space:normal;
  overflow-wrap:anywhere;
}
.media-file-copy small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
  line-height:1.35;
  white-space:normal;
  overflow-wrap:anywhere;
}
.media-file-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.media-row-details{
  min-height:32px;
  padding:6px 12px;
  border:1px solid #dcc2d9;
  border-radius:10px;
  background:#fbf7fb;
  color:#691c61;
  font:inherit;
  font-size:11px;
  font-weight:500;
  cursor:pointer;
}
.media-row-details:hover{background:#f6eaf4;border-color:#c99bc4}
.media-file-details-panel{
  grid-column:1/-1;
  min-width:0;
  padding-top:10px;
  border-top:1px solid #f0e2ee;
}
.media-file-details-panel[hidden]{display:none!important}
.media-file-details-panel .media-tree-file-details{min-width:0}
@media(max-width:720px){
  .media-file-row{grid-template-columns:minmax(0,1fr);align-items:stretch}
  .media-file-row-actions{justify-content:flex-start;padding-left:28px}
  .media-row-details,.media-row-preview{min-height:32px}
}

/* v303 — direct media links and cover attachment actions. */
.media-row-copy,
.media-row-attach{
  min-height:32px;
  padding:6px 12px;
  border:1px solid #dcc2d9;
  border-radius:10px;
  background:#fff;
  color:#691c61;
  font:inherit;
  font-size:11px;
  font-weight:500;
  cursor:pointer;
}
.media-row-copy:hover,
.media-row-attach:hover{background:#fbf4fa;border-color:#c99bc4}
.media-row-attach{background:#691c61;color:#fff;border-color:#691c61}
.media-row-attach:hover{background:#53144d;border-color:#53144d}
.media-row-copy:disabled,
.media-row-attach:disabled{opacity:.6;cursor:wait}
@media(max-width:720px){
  .media-row-copy,.media-row-attach{min-height:32px;padding:6px 10px;font-size:10px}
}

/* v305 — stable public/access card states. The public and access versions reserve
   identical content rows, so text length and progress never change card geometry. */
.program-card-template-scope .ja-course305,
.program-card-template-scope .ja-course305 *{box-sizing:border-box!important;font-weight:400!important;}
.program-card-template-scope .ja-course305{
  width:100%!important;
  height:480px!important;
  min-height:480px!important;
  max-height:480px!important;
  margin:0!important;
  border:1px solid #e6dbe6!important;
  border-radius:10px!important;
  overflow:hidden!important;
  background:#fff!important;
  display:flex!important;
  flex-direction:column!important;
  box-shadow:0 8px 22px rgba(62,0,55,.06)!important;
  cursor:pointer!important;
}
.program-card-template-scope .ja-course305-img{
  width:100%!important;
  height:180px!important;
  min-height:180px!important;
  flex:0 0 180px!important;
  overflow:hidden!important;
  background:#f8f2f7!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
}
.program-card-template-scope .ja-course305-img::before{display:none!important;content:none!important;}
.program-card-template-scope .ja-course305-img img{
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  object-fit:contain!important;
  display:block!important;
}
.program-card-template-scope .ja-course305-body{
  padding:14px 16px 16px!important;
  display:grid!important;
  grid-template-rows:50px 22px 54px 66px minmax(0,1fr) 42px!important;
  row-gap:7px!important;
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
}
.program-card-template-scope .ja-course305-title{
  margin:0!important;
  color:#171017!important;
  font-size:18px!important;
  line-height:25px!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
}
.program-card-template-scope .ja-course305-meta{
  margin:0!important;
  color:#79196f!important;
  font-size:13px!important;
  line-height:22px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.program-card-template-scope .ja-course305-desc{
  margin:0!important;
  color:#6b6070!important;
  font-size:13px!important;
  line-height:18px!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:3!important;
}
.program-card-template-scope .ja-course305-state{
  width:100%!important;
  height:66px!important;
  min-height:66px!important;
  overflow:hidden!important;
}
.program-card-template-scope .ja-course305-progress-top{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:10px!important;
  color:#79196f!important;
  font-size:13px!important;
  line-height:18px!important;
}
.program-card-template-scope .ja-course305-track{
  height:7px!important;
  margin-top:7px!important;
  border-radius:999px!important;
  background:#ead8e8!important;
  overflow:hidden!important;
}
.program-card-template-scope .ja-course305-track span{
  display:block!important;
  height:100%!important;
  max-width:100%!important;
  border-radius:999px!important;
  background:#79196f!important;
}
.program-card-template-scope .ja-course305-count{
  margin:5px 0 0!important;
  color:#6b6070!important;
  font-size:12px!important;
  line-height:18px!important;
}
.program-card-template-scope .ja-course305-spacer{min-height:0!important;}
.program-card-template-scope .ja-course305-btn{
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  padding:0 14px!important;
  border:1px solid #79196f!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#171017!important;
  font-size:14px!important;
  line-height:40px!important;
  cursor:pointer!important;
}
.program-card-template-scope .ja-course305-access .ja-course305-btn{background:#79196f!important;color:#fff!important;}
.program-card-template-scope .ja-course305-btn:hover{background:#5f1458!important;color:#fff!important;transform:none!important;}

.program-card-template-scope.diploma-card-template-scope .ja-cert305,
.program-card-template-scope.diploma-card-template-scope .ja-cert305 *{box-sizing:border-box!important;font-weight:400!important;}
.program-card-template-scope.diploma-card-template-scope .ja-cert305{
  width:100%!important;
  min-height:220px!important;
  height:220px!important;
  margin:0 0 28px!important;
  display:grid!important;
  grid-template-columns:320px minmax(0,1fr) 260px!important;
  gap:0!important;
  align-items:stretch!important;
  background:#fff!important;
  border:1px solid #e6dbe6!important;
  border-radius:10px!important;
  overflow:hidden!important;
  box-shadow:0 8px 22px rgba(62,0,55,.06)!important;
  cursor:pointer!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-img{
  width:320px!important;
  height:220px!important;
  overflow:hidden!important;
  background:#f7eef6!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-img::before{display:none!important;content:none!important;}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-img img{
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  object-fit:contain!important;
  display:block!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-main{
  min-width:0!important;
  min-height:220px!important;
  padding:18px 24px!important;
  display:grid!important;
  grid-template-rows:34px 44px 20px minmax(0,1fr)!important;
  row-gap:7px!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-title{
  margin:0!important;
  color:#171017!important;
  font-size:23px!important;
  line-height:34px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-desc{
  margin:0!important;
  color:#5f5661!important;
  font-size:13px!important;
  line-height:22px!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-meta{
  margin:0!important;
  color:#79196f!important;
  font-size:13px!important;
  line-height:20px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-list{
  margin:0!important;
  padding-inline-start:18px!important;
  color:#302431!important;
  font-size:13px!important;
  line-height:19px!important;
  columns:2!important;
  column-gap:28px!important;
  max-height:76px!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-list li{break-inside:avoid!important;margin:0 0 3px!important;}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-side{
  min-height:220px!important;
  padding:18px 20px!important;
  border-inline-start:1px solid #f0e3ee!important;
  display:grid!important;
  grid-template-rows:24px 72px minmax(0,1fr) 46px!important;
  row-gap:8px!important;
  align-items:end!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-included{
  color:#79196f!important;
  font-size:13px!important;
  line-height:24px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-state{
  width:100%!important;
  height:72px!important;
  min-height:72px!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-progress-top{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:10px!important;
  color:#79196f!important;
  font-size:13px!important;
  line-height:18px!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-track{
  height:8px!important;
  margin-top:7px!important;
  border-radius:999px!important;
  background:#ead8e8!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-track span{
  display:block!important;
  height:100%!important;
  max-width:100%!important;
  border-radius:999px!important;
  background:#79196f!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-count{
  margin:5px 0 0!important;
  color:#675d68!important;
  font-size:12px!important;
  line-height:18px!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-spacer{min-height:0!important;}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-btn{
  width:100%!important;
  height:46px!important;
  min-height:46px!important;
  padding:0 14px!important;
  border:1px solid #79196f!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#171017!important;
  font-size:14px!important;
  line-height:44px!important;
  cursor:pointer!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-access .ja-cert305-btn{background:#79196f!important;color:#fff!important;}
.program-card-template-scope.diploma-card-template-scope .ja-cert305-btn:hover{background:#5f1458!important;color:#fff!important;transform:none!important;}

@media(max-width:900px){
  .program-card-template-scope.diploma-card-template-scope .ja-cert305{
    height:auto!important;
    min-height:0!important;
    grid-template-columns:1fr!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert305-img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:16/9!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert305-main{
    min-height:0!important;
    padding:16px!important;
    grid-template-rows:auto auto auto auto!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert305-title{white-space:normal!important;line-height:1.35!important;}
  .program-card-template-scope.diploma-card-template-scope .ja-cert305-list{columns:1!important;max-height:none!important;}
  .program-card-template-scope.diploma-card-template-scope .ja-cert305-side{
    min-height:0!important;
    border-inline-start:0!important;
    border-top:1px solid #f0e3ee!important;
    grid-template-rows:24px 72px 0 46px!important;
  }
}

/* v307: stable Professional Certificate card on desktop and mobile.
   The mobile card uses a simple vertical flow so desktop grid dimensions,
   fixed heights, and side-panel rules cannot distort the layout. */
.program-card-template-scope.diploma-card-template-scope .ja-cert307,
.program-card-template-scope.diploma-card-template-scope .ja-cert307 *{
  box-sizing:border-box!important;
  font-weight:400!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307{
  width:100%!important;
  min-width:0!important;
  min-height:220px!important;
  margin:0 0 28px!important;
  display:grid!important;
  grid-template-columns:minmax(260px,320px) minmax(0,1fr) minmax(220px,260px)!important;
  align-items:stretch!important;
  background:#fff!important;
  border:1px solid #e6dbe6!important;
  border-radius:12px!important;
  overflow:hidden!important;
  box-shadow:0 8px 22px rgba(62,0,55,.06)!important;
  cursor:default!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-img{
  width:100%!important;
  min-width:0!important;
  min-height:220px!important;
  overflow:hidden!important;
  background:#f7eef6!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-img::before{
  display:none!important;
  content:none!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-img img{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  max-width:100%!important;
  object-fit:contain!important;
  display:block!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-main{
  min-width:0!important;
  min-height:220px!important;
  padding:18px 24px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-title{
  margin:0!important;
  color:#171017!important;
  font-size:23px!important;
  line-height:1.35!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-desc{
  margin:0!important;
  color:#5f5661!important;
  font-size:13px!important;
  line-height:1.55!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-meta{
  margin:0!important;
  color:#79196f!important;
  font-size:13px!important;
  line-height:20px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-list{
  margin:2px 0 0!important;
  padding-inline-start:20px!important;
  color:#302431!important;
  font-size:13px!important;
  line-height:1.5!important;
  columns:2!important;
  column-gap:30px!important;
  max-height:84px!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-list li{
  break-inside:avoid!important;
  margin:0 0 4px!important;
  padding:0!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-side{
  min-width:0!important;
  min-height:220px!important;
  padding:18px 20px!important;
  border-inline-start:1px solid #f0e3ee!important;
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-progress{
  width:100%!important;
  min-height:72px!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-progress-top{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  color:#79196f!important;
  font-size:13px!important;
  line-height:18px!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-track{
  width:100%!important;
  height:8px!important;
  margin-top:7px!important;
  border-radius:999px!important;
  background:#ead8e8!important;
  overflow:hidden!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-track span{
  display:block!important;
  height:100%!important;
  max-width:100%!important;
  border-radius:999px!important;
  background:#79196f!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-count{
  margin:5px 0 0!important;
  color:#675d68!important;
  font-size:12px!important;
  line-height:18px!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-spacer{
  flex:1 1 auto!important;
  min-height:0!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-btn{
  width:100%!important;
  min-width:0!important;
  height:46px!important;
  min-height:46px!important;
  padding:0 14px!important;
  border:1px solid #79196f!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#171017!important;
  font-size:14px!important;
  line-height:44px!important;
  cursor:pointer!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-access .ja-cert307-btn{
  background:#79196f!important;
  color:#fff!important;
}
.program-card-template-scope.diploma-card-template-scope .ja-cert307-btn:hover{
  background:#5f1458!important;
  color:#fff!important;
  transform:none!important;
}

@media(max-width:760px){
  .program-card-template-scope.diploma-card-template-scope{
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0 0 18px!important;
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:none!important;
    border-radius:12px!important;
    overflow:hidden!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-img{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:16/9!important;
    flex:0 0 auto!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-img img{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-main{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:16px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:8px!important;
    overflow:visible!important;
    border:0!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-title{
    font-size:20px!important;
    line-height:1.35!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-desc{
    font-size:13px!important;
    line-height:1.55!important;
    -webkit-line-clamp:3!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-meta{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-list{
    width:100%!important;
    margin:2px 0 0!important;
    padding-inline-start:20px!important;
    columns:1!important;
    column-count:1!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-side{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:14px 16px 16px!important;
    border-inline-start:0!important;
    border-top:1px solid #f0e3ee!important;
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    overflow:visible!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-progress{
    width:100%!important;
    min-height:0!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-spacer{
    display:none!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-btn{
    width:100%!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
  }
}

@media(max-width:380px){
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-main{
    padding:14px!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-side{
    padding:12px 14px 14px!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-cert307-title{
    font-size:19px!important;
  }
}


/* v340: professional certificates keep the existing v307 preview design but are managed in their own template kind. */
.program-card-template-scope.professional-certificate-card-template-scope{
  grid-column:1/-1!important;
  width:100%!important;
  max-width:1180px!important;
  display:block!important;
  margin:0 auto 28px!important;
}
.program-card-template-scope.professional-certificate-card-template-scope > article{
  width:100%!important;
  max-width:1180px!important;
  margin:0 auto!important;
}
.program-results-sections .browse-diploma-grid > .program-card-template-scope.professional-certificate-card-template-scope,
.bundle-diploma-home-grid > .program-card-template-scope.professional-certificate-card-template-scope,
.featured-diploma-row > .program-card-template-scope.professional-certificate-card-template-scope{
  grid-column:1/-1!important;
  max-width:1180px!important;
}
@media(max-width:900px){
  .program-card-template-scope.professional-certificate-card-template-scope{max-width:100%!important;margin:0 0 18px!important;}
}
/* v307: stable Professional Certificate card on desktop and mobile.
   The mobile card uses a simple vertical flow so desktop grid dimensions,
   fixed heights, and side-panel rules cannot distort the layout. */
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307,
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307 *{
  box-sizing:border-box!important;
  font-weight:400!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307{
  width:100%!important;
  min-width:0!important;
  min-height:220px!important;
  margin:0 0 28px!important;
  display:grid!important;
  grid-template-columns:minmax(260px,320px) minmax(0,1fr) minmax(220px,260px)!important;
  align-items:stretch!important;
  background:#fff!important;
  border:1px solid #e6dbe6!important;
  border-radius:12px!important;
  overflow:hidden!important;
  box-shadow:0 8px 22px rgba(62,0,55,.06)!important;
  cursor:default!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-img{
  width:100%!important;
  min-width:0!important;
  min-height:220px!important;
  overflow:hidden!important;
  background:#f7eef6!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-img::before{
  display:none!important;
  content:none!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-img img{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  max-width:100%!important;
  object-fit:contain!important;
  display:block!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-main{
  min-width:0!important;
  min-height:220px!important;
  padding:18px 24px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  overflow:hidden!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-title{
  margin:0!important;
  color:#171017!important;
  font-size:23px!important;
  line-height:1.35!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-desc{
  margin:0!important;
  color:#5f5661!important;
  font-size:13px!important;
  line-height:1.55!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-meta{
  margin:0!important;
  color:#79196f!important;
  font-size:13px!important;
  line-height:20px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-list{
  margin:2px 0 0!important;
  padding-inline-start:20px!important;
  color:#302431!important;
  font-size:13px!important;
  line-height:1.5!important;
  columns:2!important;
  column-gap:30px!important;
  max-height:84px!important;
  overflow:hidden!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-list li{
  break-inside:avoid!important;
  margin:0 0 4px!important;
  padding:0!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-side{
  min-width:0!important;
  min-height:220px!important;
  padding:18px 20px!important;
  border-inline-start:1px solid #f0e3ee!important;
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
  overflow:hidden!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-progress{
  width:100%!important;
  min-height:72px!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-progress-top{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  color:#79196f!important;
  font-size:13px!important;
  line-height:18px!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-track{
  width:100%!important;
  height:8px!important;
  margin-top:7px!important;
  border-radius:999px!important;
  background:#ead8e8!important;
  overflow:hidden!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-track span{
  display:block!important;
  height:100%!important;
  max-width:100%!important;
  border-radius:999px!important;
  background:#79196f!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-count{
  margin:5px 0 0!important;
  color:#675d68!important;
  font-size:12px!important;
  line-height:18px!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-spacer{
  flex:1 1 auto!important;
  min-height:0!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-btn{
  width:100%!important;
  min-width:0!important;
  height:46px!important;
  min-height:46px!important;
  padding:0 14px!important;
  border:1px solid #79196f!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#171017!important;
  font-size:14px!important;
  line-height:44px!important;
  cursor:pointer!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-access .ja-cert307-btn{
  background:#79196f!important;
  color:#fff!important;
}
.program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-btn:hover{
  background:#5f1458!important;
  color:#fff!important;
  transform:none!important;
}

@media(max-width:760px){
  .program-card-template-scope.professional-certificate-card-template-scope{
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0 0 18px!important;
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:none!important;
    border-radius:12px!important;
    overflow:hidden!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-img{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:16/9!important;
    flex:0 0 auto!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-img img{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-main{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:16px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:8px!important;
    overflow:visible!important;
    border:0!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-title{
    font-size:20px!important;
    line-height:1.35!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-desc{
    font-size:13px!important;
    line-height:1.55!important;
    -webkit-line-clamp:3!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-meta{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-list{
    width:100%!important;
    margin:2px 0 0!important;
    padding-inline-start:20px!important;
    columns:1!important;
    column-count:1!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-side{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:14px 16px 16px!important;
    border-inline-start:0!important;
    border-top:1px solid #f0e3ee!important;
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    overflow:visible!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-progress{
    width:100%!important;
    min-height:0!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-spacer{
    display:none!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-btn{
    width:100%!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
  }
}

@media(max-width:380px){
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-main{
    padding:14px!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-side{
    padding:12px 14px 14px!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope .ja-cert307-title{
    font-size:19px!important;
  }
}


/* v309: course reader progress, resume, recommendations, and taller PDF viewport. */
.course-reader-page .course-sidebar,
.course-reader-page .ja-fixed-course-nav,
.course-reader-page .ja-sticky-course-nav{animation:none!important;}
.course-reader-page .course-title-text,
.course-reader-page .course-side-section h3,
.course-reader-page .ja-course-nav-title{unicode-bidi:isolate!important;overflow-wrap:anywhere!important;}
.course-reader-page .course-title-text[dir="rtl"],
.course-reader-page .course-side-section h3[dir="rtl"],
.course-reader-page .ja-course-nav-title[dir="rtl"]{text-align:right!important;}
.course-reader-page .protected-embed,
.course-reader-page .builder-document-preview{border:1px solid #d8ced8!important;box-shadow:none!important;overflow:hidden!important;}
.course-reader-page .protected-embed{aspect-ratio:16/9!important;}
.course-reader-page .protected-embed iframe{width:100%!important;height:100%!important;aspect-ratio:16/9!important;border:0!important;}
.course-reader-page .builder-document-frame{width:100%!important;max-width:100%!important;border:0!important;}
.course-reader-page [data-complete-current-lesson].is-saving-progress{opacity:.7!important;cursor:wait!important;}


/* v309: learner dashboard recommendations and inner PDF viewport. */
.learn-course-recommendations{display:grid!important;gap:18px!important;}
.learn-course-recommendations>h3{margin:0!important;font-size:20px!important;color:#071122!important;}
.learn-course-recommendations .learn-side-module{padding-top:18px!important;border-top:1px solid #e7dfe6!important;}
.learn-course-recommendations .learn-side-module h3{font-size:17px!important;line-height:1.35!important;margin:0 0 9px!important;}
.learn-course-recommendations .learn-side-module p{font-size:13px!important;line-height:1.5!important;margin:0 0 12px!important;color:#4e4350!important;}
.learn-certificate-recommendation-card .course-sales-placeholder{width:100%!important;height:100%!important;min-height:100%!important;border-radius:0!important;}
.course-reader-page:not(.builder-course-preview) .builder-document-frame{height:clamp(560px,calc(100dvh - 110px),1180px)!important;}
@media(max-width:980px){.course-reader-page:not(.builder-course-preview) .builder-document-frame{height:clamp(520px,82dvh,960px)!important;}}
@media(max-width:620px){.course-reader-page:not(.builder-course-preview) .builder-document-frame{height:80dvh!important;min-height:460px!important;max-height:900px!important;}}


/* v312: prevent Arabic/LTR lesson rows from oscillating beneath the pointer.
   Older template rules translate rows by 1px on hover, which repeatedly causes
   mouseleave/mouseenter at an edge and looks like rapid selection flashing. */
.course-reader-page:not(.builder-course-preview) :is(.course-sidebar,.course-sidebar[data-course-sidebar],.ja-sticky-course-nav,.ja-fixed-course-nav) .course-lesson-row,
.course-reader-page:not(.builder-course-preview) :is(.course-sidebar,.course-sidebar[data-course-sidebar],.ja-sticky-course-nav,.ja-fixed-course-nav) .course-lesson-row:hover,
.course-reader-page:not(.builder-course-preview) :is(.course-sidebar,.course-sidebar[data-course-sidebar],.ja-sticky-course-nav,.ja-fixed-course-nav) .course-lesson-row:focus,
.course-reader-page:not(.builder-course-preview) :is(.course-sidebar,.course-sidebar[data-course-sidebar],.ja-sticky-course-nav,.ja-fixed-course-nav) .course-lesson-row:focus-visible{
  transform:none!important;
  translate:none!important;
  animation:none!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.course-reader-page:not(.builder-course-preview) :is(.course-sidebar,.course-sidebar[data-course-sidebar],.ja-sticky-course-nav,.ja-fixed-course-nav) .course-title-text{
  min-width:0!important;
  unicode-bidi:isolate!important;
}
.course-lesson-loading-card{position:relative;overflow:hidden}
.course-lesson-loading-card:after{content:"";display:block;width:42px;height:4px;margin-top:18px;border-radius:999px;background:#79196f;animation:jaLessonLoadingPulse 1s ease-in-out infinite alternate}
@keyframes jaLessonLoadingPulse{from{opacity:.25;transform:scaleX(.45);transform-origin:left}to{opacity:1;transform:scaleX(1);transform-origin:left}}
.course-lesson-load-error .learn-outline-btn{margin-top:10px}

/* v315 — external iframe-only HTML blocks render directly, without an opaque
   intermediate document that breaks frame-ancestors and Cloudflare RUM. */
.ja-direct-external-frame-shell{overflow:hidden;background:#fff;}
.ja-html-block-frame.ja-direct-external-frame{
  display:block;
  width:100%!important;
  height:clamp(520px,78dvh,var(--ja-html-direct-height,900px));
  min-height:420px;
  max-height:1400px;
  border:0!important;
  background:#fff!important;
}
@media (max-width:760px){
  .ja-html-block-frame.ja-direct-external-frame{
    height:clamp(460px,76dvh,var(--ja-html-direct-height,900px));
    min-height:420px;
  }
}
.ja-direct-external-frame-copy{padding:14px 16px;border-bottom:1px solid #ead8e8;color:#2b0a28;line-height:1.7;background:#fff;}

/* v323 — substantially taller inner PDF viewport for readable lesson documents.
   Only the actual document iframe grows; the card header, toolbar, and download row stay compact. */
.course-reader-page:not(.builder-course-preview) .builder-document-frame{
  display:block!important;
  width:100%!important;
  height:clamp(900px,calc(100dvh - 40px),1400px)!important;
  min-height:900px!important;
  max-height:none!important;
  border:0!important;
}
@media(max-width:980px){
  .course-reader-page:not(.builder-course-preview) .builder-document-frame{
    height:clamp(760px,88dvh,1180px)!important;
    min-height:760px!important;
    max-height:none!important;
  }
}
@media(max-width:620px){
  .course-reader-page:not(.builder-course-preview) .builder-document-frame{
    height:86dvh!important;
    min-height:560px!important;
    max-height:1100px!important;
  }
}

/* v324 — preserve the learner's exact curriculum-sidebar position while moving
   between lessons. Disable browser scroll anchoring so active-row/content changes
   cannot pull the independent sidebar scroller back toward the top. */
.course-reader-page:not(.builder-course-preview) :is(.course-sidebar,[data-course-sidebar],.ja-sticky-course-nav,.ja-fixed-course-nav,.ja-nav-scroll,[data-course-nav-scroll]){
  overflow-anchor:none!important;
  scroll-behavior:auto!important;
}

/* v329: loading screen feels alive */
.ja-cloud-loading-mark{animation:jaLoadingShake 1.45s ease-in-out infinite!important;transform-origin:center center!important;}
.ja-loading-dots{display:flex!important;justify-content:center!important;align-items:center!important;gap:7px!important;margin-top:14px!important;}
.ja-loading-dots span{width:8px!important;height:8px!important;border-radius:999px!important;background:#79196f!important;display:block!important;animation:jaLoadingDot 1.05s ease-in-out infinite!important;}
.ja-loading-dots span:nth-child(2){animation-delay:.15s!important;}
.ja-loading-dots span:nth-child(3){animation-delay:.3s!important;}
@keyframes jaLoadingShake{0%,100%{transform:translateX(0) rotate(0)}15%{transform:translateX(-1px) rotate(-1.2deg)}30%{transform:translateX(1.5px) rotate(1.2deg)}45%{transform:translateX(-1px) rotate(-.8deg)}60%{transform:translateX(1px) rotate(.8deg)}75%{transform:translateX(0) rotate(0)}}
@keyframes jaLoadingDot{0%,100%{opacity:.32;transform:translateY(0) scale(.9)}50%{opacity:1;transform:translateY(-5px) scale(1.12)}}

/* v329: new text slider animations */
.ja-slider-text-explosive .ja-slide.active .ja-slider-copy h2,.ja-slider-text-explosive .ja-slide.active .ja-slider-copy p{animation:jaTextExplosive .82s cubic-bezier(.15,1.3,.22,1) both}
.ja-slider-text-skate .ja-slide.active .ja-slider-copy h2,.ja-slider-text-skate .ja-slide.active .ja-slider-copy p{animation:jaTextSkate .85s cubic-bezier(.2,1,.24,1) both}
.ja-slider-text-roll .ja-slide.active .ja-slider-copy h2,.ja-slider-text-roll .ja-slide.active .ja-slider-copy p{animation:jaTextRoll .85s cubic-bezier(.2,1.2,.25,1) both}
.ja-slider-text-jump .ja-slide.active .ja-slider-copy h2,.ja-slider-text-jump .ja-slide.active .ja-slider-copy p{animation:jaTextJump .78s cubic-bezier(.18,1.5,.28,1) both}
.ja-slider-text-swing .ja-slide.active .ja-slider-copy h2,.ja-slider-text-swing .ja-slide.active .ja-slider-copy p{animation:jaTextSwing .9s ease both;transform-origin:top center}
.ja-slider-text-wipe .ja-slide.active .ja-slider-copy h2,.ja-slider-text-wipe .ja-slide.active .ja-slider-copy p{animation:jaTextWipe .72s ease both}
@keyframes jaTextExplosive{0%{opacity:0;filter:blur(10px);letter-spacing:.18em;transform:scale(.72)}60%{opacity:1;filter:blur(0);letter-spacing:.01em;transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes jaTextSkate{0%{opacity:0;transform:translateX(-70px) skewX(-14deg)}68%{opacity:1;transform:translateX(8px) skewX(4deg)}100%{opacity:1;transform:translateX(0) skewX(0)}}
@keyframes jaTextRoll{0%{opacity:0;transform:translateX(-48px) rotate(-18deg)}70%{opacity:1;transform:translateX(5px) rotate(3deg)}100%{opacity:1;transform:translateX(0) rotate(0)}}
@keyframes jaTextJump{0%{opacity:0;transform:translateY(28px) scale(.96)}55%{opacity:1;transform:translateY(-13px) scale(1.02)}78%{transform:translateY(4px)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes jaTextSwing{0%{opacity:0;transform:rotate(9deg) translateY(-10px)}45%{opacity:1;transform:rotate(-5deg)}70%{transform:rotate(2deg)}100%{opacity:1;transform:rotate(0)}}
@keyframes jaTextWipe{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(18px)}100%{opacity:1;clip-path:inset(0 0 0 0);transform:translateX(0)}}

/* v329: standalone diploma card template, exactly two per row on desktop */
.diploma-card-template-scope:has(.ja-diploma329){width:100%!important;}
.bundle-diploma-home-grid:has(.ja-diploma329),.featured-diploma-row:has(.ja-diploma329){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;align-items:stretch!important;}
.ja-diploma329,.ja-diploma329 *{box-sizing:border-box!important;font-weight:400!important;}
.ja-diploma329{height:100%!important;display:grid!important;grid-template-columns:160px minmax(0,1fr)!important;gap:18px!important;padding:18px!important;background:#fff!important;border:1px solid #ead6e8!important;border-radius:22px!important;box-shadow:0 18px 48px rgba(42,15,45,.08)!important;cursor:pointer!important;}
.ja-diploma329-img{min-height:145px!important;border-radius:18px!important;overflow:hidden!important;background:linear-gradient(135deg,#5f0058,#d6a23a)!important;}
.ja-diploma329-img img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
.ja-diploma329-body{display:flex!important;flex-direction:column!important;min-width:0!important;}
.ja-diploma329-kicker{display:inline-flex!important;width:max-content!important;max-width:100%!important;padding:5px 9px!important;border-radius:999px!important;background:#fff0fb!important;color:#691c61!important;font-size:11px!important;margin-bottom:8px!important;}
.ja-diploma329-title{margin:0 0 8px!important;color:#2a0926!important;font-size:20px!important;line-height:1.25!important;overflow-wrap:anywhere!important;}
.ja-diploma329-desc{margin:0 0 10px!important;color:#5f5163!important;font-size:13px!important;line-height:1.55!important;}
.ja-diploma329-list{margin:0!important;padding-inline-start:18px!important;color:#4f3a52!important;font-size:12px!important;line-height:1.45!important;}
.ja-diploma329-foot{margin-top:auto!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;padding-top:12px!important;}
.ja-diploma329-foot span{font-size:12px!important;color:#6b5b70!important;}
.ja-diploma329-foot button{border:0!important;border-radius:999px!important;background:#691c61!important;color:#fff!important;padding:10px 14px!important;cursor:pointer!important;}
.ja-diploma329-progress{position:relative!important;display:flex!important;justify-content:space-between!important;gap:10px!important;margin-top:10px!important;padding-bottom:10px!important;color:#4b0f45!important;font-size:12px!important;}
.ja-diploma329-progress::before,.ja-diploma329-progress em{content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;height:5px!important;border-radius:999px!important;background:#f0dfed!important;}
.ja-diploma329-progress em{right:auto!important;background:#691c61!important;}
@media(max-width:980px){.bundle-diploma-home-grid:has(.ja-diploma329),.featured-diploma-row:has(.ja-diploma329){grid-template-columns:1fr!important}.ja-diploma329{grid-template-columns:1fr!important}.ja-diploma329-img{min-height:210px!important}}

/* v330: dashboard course filter and public catalogue card layout hardening */
.courses-compact-panel .admin-course-filter-row{
  max-width:760px!important;
  grid-template-columns:minmax(280px,1fr) minmax(190px,250px)!important;
}
.courses-compact-panel #adminCourseCategoryFilter{
  height:44px!important;
  border:1px solid #ead6e8!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#691c61!important;
  padding:0 14px!important;
}
.program-results-sections{display:grid!important;gap:24px!important;width:100%!important;}
.program-results-sections .browse-diploma-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;align-items:stretch!important;}
.program-results-sections .browse-course-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px!important;align-items:stretch!important;}
.program-results-sections .browse-diploma-grid > .diploma-card-template-scope{width:100%!important;max-width:100%!important;display:block!important;}
.program-results-sections .browse-diploma-grid > .diploma-card-template-scope > article{width:100%!important;max-width:100%!important;height:100%!important;}
.media-referenced-file-row .media-file-copy small{word-break:break-all!important;}
.referenced-lesson-files{gap:8px!important;}
@media(max-width:980px){
  .program-results-sections .browse-diploma-grid,
  .program-results-sections .browse-course-grid{grid-template-columns:1fr!important;}
  .program-card-template-scope.diploma-card-template-scope,
  .program-card-template-scope.diploma-card-template-scope > article,
  .program-card-template-scope.diploma-card-template-scope .ja-diploma329,
  .program-card-template-scope.diploma-card-template-scope .ja-cert305,
  .program-card-template-scope.diploma-card-template-scope .ja-cert307{
    width:100%!important;max-width:100%!important;min-width:0!important;
  }
  .program-card-template-scope.diploma-card-template-scope .ja-diploma329,
  .program-card-template-scope.diploma-card-template-scope .ja-cert305,
  .program-card-template-scope.diploma-card-template-scope .ja-cert307{
    display:grid!important;grid-template-columns:1fr!important;gap:16px!important;height:auto!important;
  }
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329-img,.ja-cert305-img,.ja-cert307-img){min-height:200px!important;width:100%!important;}
}
@media(max-width:620px){
  .courses-compact-panel .admin-course-filter-row{grid-template-columns:1fr!important;max-width:100%!important;}
  .program-results-sections .browse-diploma-grid,
  .program-results-sections .browse-course-grid{gap:16px!important;}
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329,.ja-cert305,.ja-cert307){padding:14px!important;border-radius:18px!important;}
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329-title,.ja-cert305-title,.ja-cert307-title){font-size:18px!important;line-height:1.32!important;}
}

/* v331 — premium slider preset layer: English-only animation labels, functions preserved */
.ja-slider[class*="ja-slider-preset-"] .ja-slider-copy{
  max-width:min(680px,calc(100% - 40px));
  transition:filter .35s ease,transform .35s ease,box-shadow .35s ease;
}
.ja-slider-preset-luxury-glass .ja-slider-copy{
  background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,244,252,.64));
  border:1px solid rgba(214,162,58,.42);
  border-radius:28px;
  padding:clamp(26px,4vw,48px);
  box-shadow:0 26px 80px rgba(43,10,40,.24);
  backdrop-filter:blur(18px) saturate(1.15);
}
.ja-slider-preset-modern-legal .ja-slider-copy{
  background:linear-gradient(135deg,rgba(105,28,97,.94),rgba(46,10,45,.88));
  color:#fff;
  border-left:5px solid #d6a23a;
  border-radius:22px;
  padding:clamp(24px,3.6vw,44px);
  box-shadow:0 24px 70px rgba(26,0,24,.32);
}
.ja-slider-preset-modern-legal .ja-slider-copy h2,
.ja-slider-preset-modern-legal .ja-slider-copy p,
.ja-slider-preset-dark-cinematic .ja-slider-copy h2,
.ja-slider-preset-dark-cinematic .ja-slider-copy p{color:#fff!important}
.ja-slider-preset-center-statement .ja-slide{display:grid;place-items:center;text-align:center}
.ja-slider-preset-center-statement .ja-slider-copy{
  margin:auto!important;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(105,28,97,.16);
  border-radius:32px;
  padding:clamp(28px,4.5vw,56px);
  box-shadow:0 30px 86px rgba(40,12,42,.18);
}
.ja-slider-preset-editorial-split .ja-slide{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,42%);align-items:stretch}
.ja-slider-preset-editorial-split .ja-slider-media,
.ja-slider-preset-editorial-split .ja-slider-shade{grid-column:1/3;grid-row:1}
.ja-slider-preset-editorial-split .ja-slider-copy{
  grid-column:2;
  grid-row:1;
  align-self:center;
  margin:clamp(22px,4vw,54px)!important;
  background:#fff;
  border-top:5px solid #691c61;
  border-radius:18px;
  padding:clamp(24px,3.2vw,42px);
  box-shadow:0 26px 80px rgba(32,10,34,.22);
}
.ja-slider-preset-dark-cinematic .ja-slider-shade{background:linear-gradient(90deg,rgba(18,4,20,.82),rgba(18,4,20,.36),rgba(18,4,20,.72))!important}
.ja-slider-preset-dark-cinematic .ja-slider-copy{
  background:rgba(20,5,22,.58);
  border:1px solid rgba(214,162,58,.34);
  border-radius:26px;
  padding:clamp(28px,4vw,54px);
  box-shadow:0 30px 90px rgba(0,0,0,.36);
  backdrop-filter:blur(12px);
}
.ja-slider-preset-soft-gradient .ja-slider-copy{
  background:linear-gradient(135deg,rgba(105,28,97,.88),rgba(214,162,58,.18));
  color:#fff;
  border:1px solid rgba(255,255,255,.24);
  border-radius:30px;
  padding:clamp(26px,4vw,50px);
  box-shadow:0 24px 76px rgba(105,28,97,.24);
}
.ja-slider-preset-minimal-clean .ja-slider-copy{
  background:rgba(255,255,255,.72);
  border:0;
  border-radius:0;
  padding:clamp(18px,3vw,36px);
  box-shadow:none;
  backdrop-filter:blur(8px);
}
.ja-slider-preset-arabic-hero .ja-slider-copy{
  margin-inline-start:auto!important;
  margin-inline-end:clamp(18px,5vw,70px)!important;
  direction:rtl;
  text-align:right;
  background:linear-gradient(135deg,rgba(105,28,97,.92),rgba(58,10,54,.84));
  color:#fff;
  border-right:5px solid #d6a23a;
  border-radius:24px;
  padding:clamp(26px,4vw,50px);
  box-shadow:0 26px 82px rgba(35,0,32,.30);
}
.ja-slider-preset-arabic-hero .ja-slider-copy h2,
.ja-slider-preset-arabic-hero .ja-slider-copy p,
.ja-slider-preset-soft-gradient .ja-slider-copy h2,
.ja-slider-preset-soft-gradient .ja-slider-copy p{color:#fff!important}
.ja-slider-motion-calm .ja-slider-copy{animation-duration:.72s!important}
.ja-slider-motion-premium .ja-slider-copy{box-shadow:0 26px 80px rgba(43,10,40,.22)}
.ja-slider-motion-cinematic .ja-slider-track{filter:saturate(1.06) contrast(1.03)}
.ja-slider-motion-dynamic .ja-slider-copy{transform-origin:center center}
.ja-slider-motion-elegant .ja-slider-copy{letter-spacing:.01em}
@media(max-width:760px){
  .ja-slider-preset-editorial-split .ja-slide{display:block}
  .ja-slider[class*="ja-slider-preset-"] .ja-slider-copy{
    max-width:calc(100% - 28px);
    margin:14px!important;
    padding:22px!important;
    border-radius:20px!important;
  }
  .ja-slider-preset-center-statement .ja-slider-copy{text-align:center}
  .ja-slider-preset-arabic-hero .ja-slider-copy{text-align:right;direction:rtl}
}

/* v333 — professional text-slider engine: text reveal is independent from the box/container animation */
.slider-mode-panel{border:1px solid rgba(121,25,111,.18)!important;border-radius:18px!important;background:linear-gradient(180deg,rgba(121,25,111,.035),rgba(255,255,255,.92))!important;padding:14px!important;margin:12px 0!important;}
.slider-text-mode-panel{border-color:rgba(214,162,58,.36)!important;background:linear-gradient(135deg,rgba(105,28,97,.04),rgba(214,162,58,.06))!important;}
.slider-image-mode-panel{border-color:rgba(105,28,97,.18)!important;background:linear-gradient(135deg,rgba(105,28,97,.035),rgba(255,255,255,.96))!important;}
.ja-slider-container-none .ja-slide.active .ja-slider-copy{animation:none!important;opacity:1!important;}
.ja-slider-mode-text:not(.ja-slider-text-unit-whole) .ja-slide.active .ja-slider-animated-text{animation:none!important;opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;}
.ja-slider-animated-text{white-space:pre-wrap;overflow-wrap:anywhere;}
.ja-slider-animated-text .ja-text-token{display:inline-block;opacity:0;will-change:opacity,transform,filter,clip-path;animation:jaTokenFadeRise var(--ja-slider-token-duration,560ms) cubic-bezier(.2,1,.24,1) both;animation-delay:calc(var(--ja-slider-text-base-delay,0ms) + (var(--i,0) * var(--ja-slider-token-stagger,28ms)));}
.ja-slider-animated-text .ja-text-line{display:inline-block;width:100%;}
.ja-slider-text-unit-whole .ja-slider-animated-text .ja-text-token{animation-delay:0ms!important;}
.ja-slider-text-word-pop .ja-slide.active .ja-text-token{animation-name:jaTokenPop;}
.ja-slider-text-letter-spark .ja-slide.active .ja-text-token{animation-name:jaTokenSpark;}
.ja-slider-text-bounce-in .ja-slide.active .ja-text-token{animation-name:jaTokenBounce;}
.ja-slider-text-blur-focus .ja-slide.active .ja-text-token{animation-name:jaTokenBlurFocus;}
.ja-slider-text-wave-in .ja-slide.active .ja-text-token{animation-name:jaTokenWave;}
.ja-slider-text-explosive .ja-slide.active .ja-text-token{animation-name:jaTokenExplosive;}
.ja-slider-text-skate .ja-slide.active .ja-text-token{animation-name:jaTokenSkate;}
.ja-slider-text-roll .ja-slide.active .ja-text-token{animation-name:jaTokenRoll;}
.ja-slider-text-jump .ja-slide.active .ja-text-token{animation-name:jaTokenJump;}
.ja-slider-text-swing .ja-slide.active .ja-text-token{animation-name:jaTokenSwing;transform-origin:top center;}
.ja-slider-text-wipe .ja-slide.active .ja-text-token{animation-name:jaTokenWipe;}
.ja-slider-animated-text.ja-slider-animated-text .ja-text-space{min-width:.28em;}
.ja-slide:not(.active) .ja-text-token{animation:none!important;opacity:0!important;}
@keyframes jaTokenFadeRise{0%{opacity:0;transform:translateY(.62em);filter:blur(2px)}100%{opacity:1;transform:translateY(0);filter:none}}
@keyframes jaTokenPop{0%{opacity:0;transform:translateY(.48em) scale(.86)}65%{opacity:1;transform:translateY(-.12em) scale(1.08)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes jaTokenSpark{0%{opacity:0;filter:blur(7px) brightness(1.5);transform:translateY(.22em) scale(.92)}58%{opacity:1;filter:blur(0) brightness(1.25)}100%{opacity:1;filter:none;transform:none}}
@keyframes jaTokenBounce{0%{opacity:0;transform:translateY(-.5em) scale(.9)}55%{opacity:1;transform:translateY(.16em) scale(1.06)}78%{transform:translateY(-.06em) scale(.99)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes jaTokenBlurFocus{0%{opacity:0;filter:blur(10px);transform:scale(1.04)}100%{opacity:1;filter:blur(0);transform:scale(1)}}
@keyframes jaTokenWave{0%{opacity:0;transform:skewX(-12deg) translateY(.55em)}60%{opacity:1;transform:skewX(5deg) translateY(-.15em)}100%{opacity:1;transform:skewX(0) translateY(0)}}
@keyframes jaTokenExplosive{0%{opacity:0;filter:blur(8px);transform:scale(.58) rotate(-2deg)}68%{opacity:1;filter:blur(0);transform:scale(1.12) rotate(.5deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes jaTokenSkate{0%{opacity:0;transform:translateX(-1.2em) skewX(-18deg)}70%{opacity:1;transform:translateX(.12em) skewX(4deg)}100%{opacity:1;transform:translateX(0) skewX(0)}}
@keyframes jaTokenRoll{0%{opacity:0;transform:translateX(-.9em) rotate(-24deg)}70%{opacity:1;transform:translateX(.08em) rotate(4deg)}100%{opacity:1;transform:translateX(0) rotate(0)}}
@keyframes jaTokenJump{0%{opacity:0;transform:translateY(.72em) scale(.94)}55%{opacity:1;transform:translateY(-.28em) scale(1.04)}78%{transform:translateY(.08em)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes jaTokenSwing{0%{opacity:0;transform:rotate(12deg) translateY(-.24em)}50%{opacity:1;transform:rotate(-6deg)}75%{transform:rotate(2deg)}100%{opacity:1;transform:rotate(0)}}
@keyframes jaTokenWipe{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(.32em)}100%{opacity:1;clip-path:inset(0 0 0 0);transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.ja-slider-animated-text .ja-text-token{animation:none!important;opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}}


/* v337 — professional slider queue and simpler editor: title first, subtitle second */
.ja-slider-mode-text .ja-slide.active p.ja-slider-animated-text{animation-delay:var(--ja-subtitle-delay-ms,720ms)!important;}
.ja-slider-mode-text .ja-slide.active .ja-slider-actions{animation-delay:var(--ja-actions-delay-ms,1200ms)!important;}
.ja-slider-mode-text p.ja-slider-animated-text .ja-text-token{--ja-slider-text-base-delay:var(--ja-subtitle-delay-ms,720ms);}
.ja-slider-mode-text h2.ja-slider-animated-text .ja-text-token{--ja-slider-text-base-delay:0ms;}
.slider-mode-panel .field:has(select[name="sliderMotionStyle"]),
.slider-mode-panel .field:has(select[name="sliderTextAnimation"]),
.slider-mode-panel .field:has(select[name="sliderTextRevealUnit"]),
.slider-mode-panel .field:has(select[name="sliderTextSpeed"]),
.slider-mode-panel .field:has(input[name="sliderTextStagger"]),
.slider-mode-panel .field:has(select[name="sliderContainerAnimation"]),
.slider-mode-panel .field:has(select[name="sliderAnimation"]){display:none!important;}

/* v343: product-kind layout contract.
   Website code owns safe outer layout; templates own inner visual styling. */
.program-results-sections .browse-certificate-grid,
.browse-product-grid.browse-certificate-grid{
  grid-template-columns:1fr!important;
  gap:22px!important;
  align-items:stretch!important;
}
.program-results-sections .browse-diploma-grid,
.browse-product-grid.browse-diploma-grid,
.bundle-diploma-home-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:22px!important;
  align-items:stretch!important;
}
.program-card-template-scope.professional-certificate-card-template-scope{
  grid-column:1 / -1!important;
  width:100%!important;
  max-width:1180px!important;
  min-width:0!important;
  margin:0 auto 28px!important;
  display:block!important;
  overflow:visible!important;
}
.program-card-template-scope.professional-certificate-card-template-scope > article{
  width:100%!important;
  max-width:1180px!important;
  min-width:0!important;
  margin:0 auto!important;
}
.program-card-template-scope.diploma-card-template-scope{
  grid-column:auto!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  display:block!important;
  overflow:visible!important;
  flex:1 1 calc(50% - 12px)!important;
}
.program-card-template-scope.diploma-card-template-scope > article{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
}
.featured-diploma-row,
.bundle-diploma-home-grid{
  flex-direction:initial!important;
}

/* v343: official compact diploma card. */
.ja-diploma343,
.ja-diploma343 *{box-sizing:border-box!important;font-weight:400!important;}
.ja-diploma343{
  height:100%!important;
  display:grid!important;
  grid-template-columns:160px minmax(0,1fr)!important;
  gap:18px!important;
  padding:18px!important;
  background:#fff!important;
  border:1px solid #ead6e8!important;
  border-radius:22px!important;
  box-shadow:0 18px 48px rgba(42,15,45,.08)!important;
  cursor:pointer!important;
  overflow:hidden!important;
}
.ja-diploma343-img{min-height:145px!important;border-radius:18px!important;overflow:hidden!important;background:#f7eef6!important;display:flex!important;align-items:center!important;justify-content:center!important;}
.ja-diploma343-img img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
.ja-diploma343-body{display:flex!important;flex-direction:column!important;min-width:0!important;}
.ja-diploma343-kicker{display:inline-flex!important;width:max-content!important;max-width:100%!important;padding:5px 9px!important;border-radius:999px!important;background:#fff0fb!important;color:#691c61!important;font-size:11px!important;margin-bottom:8px!important;}
.ja-diploma343-title{margin:0 0 8px!important;color:#2a0926!important;font-size:20px!important;line-height:1.25!important;overflow-wrap:anywhere!important;}
.ja-diploma343-desc{margin:0 0 10px!important;color:#5f5163!important;font-size:13px!important;line-height:1.55!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;overflow:hidden!important;}
.ja-diploma343-list{margin:0!important;padding-inline-start:18px!important;color:#4f3a52!important;font-size:12px!important;line-height:1.45!important;max-height:72px!important;overflow:hidden!important;}
.ja-diploma343-foot{margin-top:auto!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important;padding-top:12px!important;}
.ja-diploma343-foot span{font-size:12px!important;color:#6b5b70!important;}
.ja-diploma343-btn{border:0!important;border-radius:999px!important;background:#691c61!important;color:#fff!important;padding:10px 14px!important;cursor:pointer!important;white-space:nowrap!important;}
.ja-diploma343-progress{position:relative!important;display:flex!important;justify-content:space-between!important;gap:10px!important;margin-top:10px!important;padding-bottom:10px!important;color:#4b0f45!important;font-size:12px!important;}
.ja-diploma343-progress::before,.ja-diploma343-progress em{content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;height:5px!important;border-radius:999px!important;background:#f0dfed!important;}
.ja-diploma343-progress em{right:auto!important;background:#691c61!important;}

@media(max-width:900px){
  .program-results-sections .browse-certificate-grid,
  .program-results-sections .browse-diploma-grid,
  .browse-product-grid.browse-certificate-grid,
  .browse-product-grid.browse-diploma-grid,
  .bundle-diploma-home-grid,
  .featured-diploma-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope,
  .program-card-template-scope.diploma-card-template-scope{
    grid-column:1 / -1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0 0 18px!important;
    flex:1 1 100%!important;
    overflow:visible!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope > article,
  .program-card-template-scope.diploma-card-template-scope > article{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope :is(.ja-cert306,.ja-cert307,.ja-pcert343),
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329,.ja-diploma343,.ja-cert305,.ja-cert307){
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:none!important;
    overflow:hidden!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope :is(.ja-cert306-img,.ja-cert307-img,.ja-pcert343-img),
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329-img,.ja-diploma343-img,.ja-cert305-img,.ja-cert307-img){
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    aspect-ratio:16/9!important;
    flex:0 0 auto!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope :is(.ja-cert306-img,.ja-cert307-img,.ja-pcert343-img) img,
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329-img,.ja-diploma343-img,.ja-cert305-img,.ja-cert307-img) img{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    object-fit:contain!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope :is(.ja-cert306-main,.ja-cert307-main,.ja-pcert343-main),
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329-body,.ja-diploma343-body,.ja-cert305-main,.ja-cert307-main){
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:16px!important;
    overflow:visible!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope :is(.ja-cert306-side,.ja-cert307-side,.ja-pcert343-side),
  .program-card-template-scope.diploma-card-template-scope :is(.ja-cert305-side,.ja-cert307-side){
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:14px 16px 16px!important;
    border-inline-start:0!important;
    border-top:1px solid #f0e3ee!important;
    overflow:visible!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope :is(.ja-cert306-list,.ja-cert307-list,.ja-pcert343-list),
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329-list,.ja-diploma343-list,.ja-cert305-list,.ja-cert307-list){
    columns:1!important;
    column-count:1!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .program-card-template-scope.professional-certificate-card-template-scope :is(.ja-cert306-title,.ja-cert307-title,.ja-pcert343-title),
  .program-card-template-scope.diploma-card-template-scope :is(.ja-diploma329-title,.ja-diploma343-title,.ja-cert305-title,.ja-cert307-title){
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-overflow:clip!important;
  }
}

/* v345 — template-driven catalog card layout.
   Templates can set desktop/tablet/mobile column counts through their saved
   JSON `layout` object. Website CSS only supplies overflow-safe rails. */
.home-program-category .browse-product-grid,
.home-category-programs .browse-product-grid,
.program-results-sections .browse-product-grid,
.browse-product-grid.browse-course-grid,
.browse-product-grid.browse-certificate-grid,
.browse-product-grid.browse-diploma-grid,
.browse-product-grid.bundle-diploma-home-grid,
.featured-course-row,
.featured-diploma-row{
  display:flex!important;
  flex-wrap:wrap!important;
  flex-direction:row!important;
  align-items:stretch!important;
  gap:var(--ja-template-grid-gap,22px)!important;
  grid-template-columns:none!important;
}
.home-program-category .browse-product-grid > .template-layout-card-scope,
.home-category-programs .browse-product-grid > .template-layout-card-scope,
.program-results-sections .browse-product-grid > .template-layout-card-scope,
.browse-product-grid > .template-layout-card-scope,
.featured-course-row > .template-layout-card-scope,
.featured-diploma-row > .template-layout-card-scope{
  flex:0 1 var(--ja-template-basis-desktop,calc((100% - 48px)/3))!important;
  width:var(--ja-template-basis-desktop,calc((100% - 48px)/3))!important;
  max-width:min(100%,var(--ja-template-max-width,100%))!important;
  min-width:0!important;
  margin:0!important;
  grid-column:auto!important;
  display:block!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.home-program-category .browse-product-grid > .template-layout-card-scope[data-template-columns-desktop="1"],
.home-category-programs .browse-product-grid > .template-layout-card-scope[data-template-columns-desktop="1"],
.program-results-sections .browse-product-grid > .template-layout-card-scope[data-template-columns-desktop="1"],
.browse-product-grid > .template-layout-card-scope[data-template-columns-desktop="1"],
.featured-course-row > .template-layout-card-scope[data-template-columns-desktop="1"],
.featured-diploma-row > .template-layout-card-scope[data-template-columns-desktop="1"]{
  margin-left:auto!important;
  margin-right:auto!important;
}
.template-layout-card-scope > article{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.template-layout-card-scope img,
.template-layout-card-scope iframe,
.template-layout-card-scope video{
  max-width:100%!important;
}
@media(max-width:1100px){
  .home-program-category .browse-product-grid > .template-layout-card-scope,
  .home-category-programs .browse-product-grid > .template-layout-card-scope,
  .program-results-sections .browse-product-grid > .template-layout-card-scope,
  .browse-product-grid > .template-layout-card-scope,
  .featured-course-row > .template-layout-card-scope,
  .featured-diploma-row > .template-layout-card-scope{
    flex-basis:var(--ja-template-basis-tablet,100%)!important;
    width:var(--ja-template-basis-tablet,100%)!important;
  }
}
@media(max-width:760px){
  .home-program-category .browse-product-grid,
  .home-category-programs .browse-product-grid,
  .program-results-sections .browse-product-grid,
  .browse-product-grid.browse-course-grid,
  .browse-product-grid.browse-certificate-grid,
  .browse-product-grid.browse-diploma-grid,
  .browse-product-grid.bundle-diploma-home-grid,
  .featured-course-row,
  .featured-diploma-row{
    gap:16px!important;
  }
  .home-program-category .browse-product-grid > .template-layout-card-scope,
  .home-category-programs .browse-product-grid > .template-layout-card-scope,
  .program-results-sections .browse-product-grid > .template-layout-card-scope,
  .browse-product-grid > .template-layout-card-scope,
  .featured-course-row > .template-layout-card-scope,
  .featured-diploma-row > .template-layout-card-scope{
    flex-basis:var(--ja-template-basis-mobile,100%)!important;
    width:var(--ja-template-basis-mobile,100%)!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .template-layout-card-scope[data-template-columns-mobile="1"]{
    margin-left:0!important;
    margin-right:0!important;
  }
}

/* v346 — real template-driven card rendering.
   The selected template supplies the row count through layout metadata. Older
   product-kind rules are intentionally neutralized here so Diploma/Certificate
   cards are not forced back to hard-coded widths. */
.home-program-category .browse-product-grid,
.home-category-programs .browse-product-grid,
.program-results-sections .browse-product-grid,
.programs-browse-shell .browse-product-grid,
.browse-product-grid.browse-course-grid,
.browse-product-grid.browse-certificate-grid,
.browse-product-grid.browse-diploma-grid,
.browse-product-grid.bundle-diploma-home-grid,
.featured-course-row,
.featured-diploma-row{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:var(--ja-template-grid-gap,22px)!important;
  grid-template-columns:none!important;
}
.home-program-category .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
.home-category-programs .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
.program-results-sections .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
.programs-browse-shell .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
.browse-product-grid > .program-card-template-scope.template-layout-card-scope,
.featured-course-row > .program-card-template-scope.template-layout-card-scope,
.featured-diploma-row > .program-card-template-scope.template-layout-card-scope,
.bundle-diploma-home-grid > .program-card-template-scope.template-layout-card-scope,
.home-program-category .browse-product-grid > .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
.home-category-programs .browse-product-grid > .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
.programs-browse-shell .browse-product-grid > .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
.browse-product-grid > .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
.featured-diploma-row > .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
.bundle-diploma-home-grid > .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
.home-program-category .browse-product-grid > .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope,
.home-category-programs .browse-product-grid > .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope,
.programs-browse-shell .browse-product-grid > .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope,
.browse-product-grid > .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope,
.featured-diploma-row > .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope,
.bundle-diploma-home-grid > .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope{
  flex:0 1 var(--ja-template-basis-desktop,100%)!important;
  flex-basis:var(--ja-template-basis-desktop,100%)!important;
  width:var(--ja-template-basis-desktop,100%)!important;
  min-width:0!important;
  max-width:min(100%,var(--ja-template-max-width,100%))!important;
  grid-column:auto!important;
  display:block!important;
  margin:0!important;
  align-self:stretch!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.home-program-category .browse-product-grid > .program-card-template-scope.template-layout-card-scope[data-template-columns-desktop="1"],
.home-category-programs .browse-product-grid > .program-card-template-scope.template-layout-card-scope[data-template-columns-desktop="1"],
.program-results-sections .browse-product-grid > .program-card-template-scope.template-layout-card-scope[data-template-columns-desktop="1"],
.programs-browse-shell .browse-product-grid > .program-card-template-scope.template-layout-card-scope[data-template-columns-desktop="1"],
.browse-product-grid > .program-card-template-scope.template-layout-card-scope[data-template-columns-desktop="1"],
.featured-course-row > .program-card-template-scope.template-layout-card-scope[data-template-columns-desktop="1"],
.featured-diploma-row > .program-card-template-scope.template-layout-card-scope[data-template-columns-desktop="1"]{
  margin-left:auto!important;
  margin-right:auto!important;
}
.program-card-template-scope.template-layout-card-scope > article,
.program-card-template-scope.template-layout-card-scope > .program-card{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.program-card-template-scope.template-layout-card-scope :is(img,iframe,video,svg){max-width:100%!important;}
@media(max-width:1100px){
  .home-program-category .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .home-category-programs .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .program-results-sections .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .programs-browse-shell .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .featured-course-row > .program-card-template-scope.template-layout-card-scope,
  .featured-diploma-row > .program-card-template-scope.template-layout-card-scope{
    flex-basis:var(--ja-template-basis-tablet,100%)!important;
    width:var(--ja-template-basis-tablet,100%)!important;
  }
}
@media(max-width:760px){
  .home-program-category .browse-product-grid,
  .home-category-programs .browse-product-grid,
  .program-results-sections .browse-product-grid,
  .programs-browse-shell .browse-product-grid,
  .browse-product-grid.browse-course-grid,
  .browse-product-grid.browse-certificate-grid,
  .browse-product-grid.browse-diploma-grid,
  .browse-product-grid.bundle-diploma-home-grid,
  .featured-course-row,
  .featured-diploma-row{gap:16px!important;}
  .home-program-category .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .home-category-programs .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .program-results-sections .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .programs-browse-shell .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .browse-product-grid > .program-card-template-scope.template-layout-card-scope,
  .featured-course-row > .program-card-template-scope.template-layout-card-scope,
  .featured-diploma-row > .program-card-template-scope.template-layout-card-scope{
    flex-basis:var(--ja-template-basis-mobile,100%)!important;
    width:var(--ja-template-basis-mobile,100%)!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .program-card-template-scope.template-layout-card-scope :is(.ja-cert306,.ja-cert307,.ja-pcert343,.ja-pcert344,.ja-diploma329,.ja-diploma343,.ja-diploma344,.ja-cert305){
    max-width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
  }
}


/* v347 — mobile inner-card safety for template-driven Professional Certificates.
   v346 fixed the outer grid, but custom certificate templates can still keep a
   three-column desktop article on phones. When the selected template asks for
   one mobile column, stack the article's direct panels vertically while leaving
   colors, typography, spacing, and buttons to the template. */
@media(max-width:900px){
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"]{
    flex:1 1 100%!important;
    flex-basis:100%!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow:visible!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] > article{
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:1fr!important;
    grid-auto-flow:row!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] > article > *{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    border-left:0!important;
    border-inline-start:0!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] > article > :first-child{
    flex:0 0 auto!important;
    min-height:0!important;
    aspect-ratio:16/9!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] > article > :first-child img{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    object-fit:contain!important;
    display:block!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] > article > :not(:first-child){
    min-height:0!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] :is(.ja-cert306,.ja-cert307,.ja-pcert343,.ja-pcert344),
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] > article[class*="ja-cert"],
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] > article[class*="ja-pcert"]{
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:1fr!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] :is(.ja-cert306-list,.ja-cert307-list,.ja-pcert343-list,.ja-pcert344-list){
    columns:1!important;
    column-count:1!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope[data-template-columns-mobile="1"] :is(.ja-cert306-title,.ja-cert307-title,.ja-pcert343-title,.ja-pcert344-title){
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-overflow:clip!important;
  }
}

/* v348 — final generic mobile safety for Professional Certificate templates.
   The previous mobile patch depended too much on exact template classes/direct
   structure. This rule uses the stable wrapper data/kind instead: any selected
   Professional Certificate template that asks for one mobile column is stacked
   safely on phones, regardless of the template's inner class name. */
@media(max-width:900px){
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope,
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"]{
    flex:1 1 100%!important;
    flex-basis:100%!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope article,
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] article,
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope [class*="ja-cert"],
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope [class*="ja-pcert"],
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] [class*="ja-cert"],
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] [class*="ja-pcert"]{
    display:flex!important;
    flex-direction:column!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-flow:row!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope article > *,
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] article > *,
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope :is([class$="-img"],[class*="-img "]),
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] :is([class$="-img"],[class*="-img "]),
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope :is([class$="-main"],[class*="-main "],[class$="-body"],[class*="-body "],[class$="-side"],[class*="-side "]),
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] :is([class$="-main"],[class*="-main "],[class$="-body"],[class*="-body "],[class$="-side"],[class*="-side "]){
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:0!important;
    box-sizing:border-box!important;
    grid-column:1/-1!important;
    border-left:0!important;
    border-inline-start:0!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope :is([class$="-img"],[class*="-img "]),
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] :is([class$="-img"],[class*="-img "]){
    aspect-ratio:16/9!important;
    min-height:0!important;
    flex:0 0 auto!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope :is([class$="-img"],[class*="-img "]) img,
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] :is([class$="-img"],[class*="-img "]) img{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    object-fit:contain!important;
    display:block!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope :is([class$="-side"],[class*="-side "]),
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] :is([class$="-side"],[class*="-side "]){
    border-top:1px solid #f0e3ee!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope :is(ul,ol,[class$="-list"],[class*="-list "]),
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] :is(ul,ol,[class$="-list"],[class*="-list "]){
    columns:1!important;
    column-count:1!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .program-card-template-scope.template-layout-card-scope.professional-certificate-card-template-scope :is(h1,h2,h3,h4,[class$="-title"],[class*="-title "]),
  .program-card-template-scope.template-layout-card-scope[data-template-kind="professional_certificate"] :is(h1,h2,h3,h4,[class$="-title"],[class*="-title "]){
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-overflow:clip!important;
  }
}

/* v349 — mobile column contract for all template-driven catalog cards.
   v348 made Professional Certificate stacking generic, but the generic layout
   breakpoint for mobile_columns still started at 760px. Some real phone/device
   views and mobile previews can be wider than that, so a Diploma template with
   mobile_columns:1 could still keep its desktop two-card row. This rule keeps
   the template in control: only templates that explicitly ask for one mobile
   column are forced to one full-width card up to the practical phone/tablet
   breakpoint. */
@media(max-width:900px){
  .program-card-template-scope.template-layout-card-scope[data-template-columns-mobile="1"]{
    flex:1 1 100%!important;
    flex-basis:100%!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
    grid-column:1/-1!important;
  }
  .program-card-template-scope.template-layout-card-scope[data-template-columns-mobile="1"] > article,
  .program-card-template-scope.template-layout-card-scope[data-template-columns-mobile="1"] > .program-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
}


/* v351 — mobile browse-result column contract.
   Some legacy browse result grids can still keep two items per row on real
   phones because the active template wrapper may come from older saved D1
   content without the v345+ layout data attributes. Keep the template in
   control when metadata exists, but protect the public Diploma/Certificate
   browse pages by forcing their result rows to a readable single column on
   phone widths. Desktop/tablet template columns are unchanged. */
@media(max-width:900px){
  .program-results-sections .browse-diploma-grid,
  .programs-browse-shell .browse-diploma-grid,
  .program-results-sections .browse-certificate-grid,
  .programs-browse-shell .browse-certificate-grid{
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    gap:16px!important;
    align-items:stretch!important;
  }
  .program-results-sections .browse-diploma-grid > *,
  .programs-browse-shell .browse-diploma-grid > *,
  .program-results-sections .browse-certificate-grid > *,
  .programs-browse-shell .browse-certificate-grid > *{
    flex:0 0 100%!important;
    flex-basis:100%!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    grid-column:1/-1!important;
    box-sizing:border-box!important;
  }
}

/* v351 — mobile full-width stretch for template-driven browse cards.
   v350 correctly made Diploma/Certificate browse results one item per row on
   phones, but a saved/manual template may still carry its own narrow card
   width or max-width. On phone browse pages, the selected card should occupy
   the whole row while the template still controls the inner visual style. */
@media(max-width:900px){
  .program-results-sections .browse-diploma-grid,
  .programs-browse-shell .browse-diploma-grid,
  .program-results-sections .browse-certificate-grid,
  .programs-browse-shell .browse-certificate-grid{
    width:100%!important;
    max-width:100%!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
  }
  .program-results-sections .browse-diploma-grid > .program-card-template-scope,
  .programs-browse-shell .browse-diploma-grid > .program-card-template-scope,
  .program-results-sections .browse-certificate-grid > .program-card-template-scope,
  .programs-browse-shell .browse-certificate-grid > .program-card-template-scope{
    flex:0 0 100%!important;
    flex-basis:100%!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    align-self:stretch!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .program-results-sections .browse-diploma-grid > .program-card-template-scope :is(article,.program-card,[class*="ja-diploma"],[class*="ja-cert"],[class*="ja-pcert"]),
  .programs-browse-shell .browse-diploma-grid > .program-card-template-scope :is(article,.program-card,[class*="ja-diploma"],[class*="ja-cert"],[class*="ja-pcert"]),
  .program-results-sections .browse-certificate-grid > .program-card-template-scope :is(article,.program-card,[class*="ja-diploma"],[class*="ja-cert"],[class*="ja-pcert"]),
  .programs-browse-shell .browse-certificate-grid > .program-card-template-scope :is(article,.program-card,[class*="ja-diploma"],[class*="ja-cert"],[class*="ja-pcert"]){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
}

/* v352 — exact Diploma browse contract.
   Final agreed behavior:
   - desktop/tablet-wide Diploma browse results: two cards per row
   - phone/mobile widths: one full-width card per row
   v351 fixed the phone row, but could leave desktop-like views with one card per
   row when legacy/saved wrappers missed layout metadata or inherited a full-width
   rule. This block restores the two-column desktop contract while preserving the
   one-column phone contract. */
@media(min-width:901px){
  .program-results-sections .browse-diploma-grid,
  .programs-browse-shell .browse-diploma-grid,
  .home-category-programs .browse-diploma-grid,
  .home-program-category .browse-diploma-grid,
  .browse-product-grid.browse-diploma-grid{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:var(--ja-template-grid-gap,22px)!important;
  }
  .program-results-sections .browse-diploma-grid > .program-card-template-scope,
  .programs-browse-shell .browse-diploma-grid > .program-card-template-scope,
  .home-category-programs .browse-diploma-grid > .program-card-template-scope,
  .home-program-category .browse-diploma-grid > .program-card-template-scope,
  .browse-product-grid.browse-diploma-grid > .program-card-template-scope,
  .program-results-sections .browse-diploma-grid > .diploma-card-template-scope,
  .programs-browse-shell .browse-diploma-grid > .diploma-card-template-scope,
  .home-category-programs .browse-diploma-grid > .diploma-card-template-scope,
  .home-program-category .browse-diploma-grid > .diploma-card-template-scope,
  .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope{
    flex:0 1 var(--ja-template-basis-desktop,calc((100% - 22px) / 2))!important;
    flex-basis:var(--ja-template-basis-desktop,calc((100% - 22px) / 2))!important;
    width:var(--ja-template-basis-desktop,calc((100% - 22px) / 2))!important;
    max-width:var(--ja-template-basis-desktop,calc((100% - 22px) / 2))!important;
    min-width:0!important;
    grid-column:auto!important;
    margin:0!important;
    align-self:stretch!important;
    box-sizing:border-box!important;
  }
  .program-results-sections .browse-certificate-grid > .program-card-template-scope,
  .programs-browse-shell .browse-certificate-grid > .program-card-template-scope,
  .browse-product-grid.browse-certificate-grid > .program-card-template-scope,
  .program-results-sections .browse-certificate-grid > .professional-certificate-card-template-scope,
  .programs-browse-shell .browse-certificate-grid > .professional-certificate-card-template-scope,
  .browse-product-grid.browse-certificate-grid > .professional-certificate-card-template-scope{
    flex:0 1 100%!important;
    flex-basis:100%!important;
    width:100%!important;
    max-width:100%!important;
  }
}
@media(max-width:900px){
  .program-results-sections .browse-diploma-grid > .program-card-template-scope,
  .programs-browse-shell .browse-diploma-grid > .program-card-template-scope,
  .home-category-programs .browse-diploma-grid > .program-card-template-scope,
  .home-program-category .browse-diploma-grid > .program-card-template-scope,
  .browse-product-grid.browse-diploma-grid > .program-card-template-scope,
  .program-results-sections .browse-diploma-grid > .diploma-card-template-scope,
  .programs-browse-shell .browse-diploma-grid > .diploma-card-template-scope,
  .home-category-programs .browse-diploma-grid > .diploma-card-template-scope,
  .home-program-category .browse-diploma-grid > .diploma-card-template-scope,
  .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope{
    flex:0 0 100%!important;
    flex-basis:100%!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
  }
}


/* v353 — definitive mobile Diploma browse width contract.
   The Diploma card template is active, but the old browse wrapper stack can
   still leave Diploma cards visually narrow on real phones. Use CSS Grid only
   on phone-width Diploma browse result containers so the row, wrapper, and
   selected template article all stretch to the same full available width.
   Desktop behavior remains controlled by the v352 two-column contract above. */
@media(max-width:900px){
  .program-results-sections > .browse-product-grid.browse-diploma-grid,
  .programs-browse-shell .browse-product-grid.browse-diploma-grid,
  .home-category-programs .browse-product-grid.browse-diploma-grid,
  .home-program-category .browse-product-grid.browse-diploma-grid,
  .browse-product-grid.browse-diploma-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-flow:row!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    gap:16px!important;
    align-items:stretch!important;
    justify-items:stretch!important;
    justify-content:stretch!important;
    overflow:visible!important;
  }
  .program-results-sections > .browse-product-grid.browse-diploma-grid > .program-card-template-scope,
  .programs-browse-shell .browse-product-grid.browse-diploma-grid > .program-card-template-scope,
  .home-category-programs .browse-product-grid.browse-diploma-grid > .program-card-template-scope,
  .home-program-category .browse-product-grid.browse-diploma-grid > .program-card-template-scope,
  .browse-product-grid.browse-diploma-grid > .program-card-template-scope,
  .program-results-sections > .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope,
  .programs-browse-shell .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope,
  .home-category-programs .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope,
  .home-program-category .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope,
  .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope{
    display:block!important;
    grid-column:1/-1!important;
    justify-self:stretch!important;
    align-self:stretch!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    flex:none!important;
    flex-basis:auto!important;
    margin:0!important;
    box-sizing:border-box!important;
    transform:none!important;
  }
  .program-results-sections > .browse-product-grid.browse-diploma-grid > .program-card-template-scope > *,
  .programs-browse-shell .browse-product-grid.browse-diploma-grid > .program-card-template-scope > *,
  .home-category-programs .browse-product-grid.browse-diploma-grid > .program-card-template-scope > *,
  .home-program-category .browse-product-grid.browse-diploma-grid > .program-card-template-scope > *,
  .browse-product-grid.browse-diploma-grid > .program-card-template-scope > *,
  .program-results-sections > .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope > *,
  .programs-browse-shell .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope > *,
  .home-category-programs .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope > *,
  .home-program-category .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope > *,
  .browse-product-grid.browse-diploma-grid > .diploma-card-template-scope > *{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
}

/* v354 — final Diploma mobile wrapper override.
   Live inspection showed the Diploma grid itself is full width on phones, but the
   saved template wrapper still computed as flex: 0 1 calc(50% - 11px). That
   value comes from desktop two-column layout variables and can survive when the
   wrapper is nested instead of being a direct grid child. Use descendant
   selectors here, not only direct-child selectors, so every Diploma template
   wrapper inside a mobile Diploma browse grid becomes a true full-width row.
   Desktop remains controlled by the min-width:901px two-column contract above. */
@media(max-width:900px){
  .program-results-sections .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
  .programs-browse-shell .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
  .home-category-programs .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
  .home-program-category .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
  .browse-product-grid.browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope,
  .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    flex:0 0 100%!important;
    flex-basis:100%!important;
    grid-column:1/-1!important;
    justify-self:stretch!important;
    align-self:stretch!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
  .program-results-sections .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope > *,
  .programs-browse-shell .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope > *,
  .home-category-programs .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope > *,
  .home-program-category .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope > *,
  .browse-product-grid.browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope > *,
  .browse-diploma-grid .program-card-template-scope.template-layout-card-scope.diploma-card-template-scope > *{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
}

/* v355 — description direction/justification, compact lesson files, and header breathing room. */
:where(
  .ja-auto-description,
  .course-short-description,
  .course-long-description,
  .course-sales-copy > p,
  .program-body > p,
  .certificate-course-card-body > p,
  .ja-card-description,
  [class*="ja-course"][class*="-desc"],
  [class*="ja-cert"][class*="-desc"],
  [class*="ja-pcert"][class*="-desc"],
  [class*="ja-diploma"][class*="-desc"]
){
  text-align:justify!important;
  text-align-last:auto!important;
  unicode-bidi:plaintext!important;
  overflow-wrap:anywhere!important;
}
:where(textarea.ja-description-input,textarea[name="short_description"],textarea[name="full_description"]){
  text-align:justify!important;
  unicode-bidi:plaintext!important;
}
.course-reader-page:not(.builder-course-preview) .lesson-builder-content > .section:has(.builder-document-preview),
.course-reader-page:not(.builder-course-preview) .lesson-builder-content > .section:has(.builder-file-download),
.course-reader-page:not(.builder-course-preview) .course-portal-page > .section:has(.builder-document-preview),
.course-reader-page:not(.builder-course-preview) .course-portal-page > .section:has(.builder-file-download){
  padding-top:28px!important;
  padding-bottom:28px!important;
}
.course-reader-page:not(.builder-course-preview) .builder-document-preview{
  margin-bottom:10px!important;
}
.course-reader-page:not(.builder-course-preview) .builder-file-download{
  margin-top:0!important;
  margin-bottom:0!important;
}
.course-reader-page:not(.builder-course-preview) .builder-document-preview + .builder-file-download,
.course-reader-page:not(.builder-course-preview) .builder-file-download + .builder-document-preview{
  margin-top:10px!important;
}
.navbar,
.nav-inner{height:70px!important;min-height:70px!important;}
.mobile-drawer,
.filterbar{top:70px!important;}
.dashboard{padding-top:70px!important;}
.sidebar{top:70px!important;min-height:calc(100vh - 70px)!important;}
.portal-header{padding-top:106px!important;}
.page-hero{padding-top:122px!important;}
.course-public-page{padding-top:70px!important;}
.programs-browse-shell{padding-top:calc(70px + 30px)!important;}
.navbar .brand,
.navbar .logo-brand{align-items:center!important;padding-top:4px!important;padding-bottom:4px!important;}
.navbar .logo-brand.brand-logo-full{padding-top:4px!important;padding-bottom:4px!important;}
.navbar .logo-brand.brand-logo-full .brand-logo-full-img,
.navbar .brand-logo-full-img{height:58px!important;max-height:58px!important;object-fit:contain!important;}
@media(max-width:760px){
  .navbar,
  .nav-inner{height:74px!important;min-height:74px!important;}
  .mobile-drawer,
  .filterbar{top:74px!important;}
  .dashboard{padding-top:74px!important;}
  .sidebar{top:74px!important;min-height:calc(100vh - 74px)!important;}
  .course-public-page{padding-top:74px!important;}
  .programs-browse-shell{padding-top:calc(74px + 26px)!important;}
  .navbar .logo-brand.brand-logo-full .brand-logo-full-img,
  .navbar .brand-logo-full-img{height:56px!important;max-height:56px!important;max-width:220px!important;}
}


/* v357 — safe description formatting and markdown-lite readability. */
.ja-formatted-description,
.builder-rich-text,
.course-short-description,
.course-long-description,
.ja-auto-description{
  white-space:normal!important;
}
.ja-formatted-description strong,
.builder-rich-text strong,
.course-short-description strong,
.course-long-description strong,
.ja-auto-description strong{
  font-weight:800!important;
}

/* v359 text block pop-up editor */
#modal .modal:has(.text-editor-modal-form){width:min(1180px,96vw)!important;max-height:92dvh!important;}
.text-editor-modal-form{gap:16px!important;}
.text-editor-modal-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #ead8e8;padding-bottom:10px;position:sticky;top:-24px;background:#fff;z-index:2;}
.text-editor-modal-tabs button{border:1px solid #ead8e8;background:#fff;color:#5f2858;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer;}
.text-editor-modal-tabs button.active{background:#79196f;color:#fff;border-color:#79196f;}
.text-editor-modal-panel{display:none;}
.text-editor-modal-panel.active{display:block;}
.text-editor-modal-form .ja-rich-editor-wrap{display:grid;gap:12px;}
.text-editor-modal-form .ja-rich-toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:10px;border:1px solid #ead8e8;border-radius:16px;background:#fff8fd;position:sticky;top:42px;z-index:2;}
.text-editor-modal-form .ja-rich-toolbar button,.text-editor-modal-form .ja-rich-toolbar select,.text-editor-modal-form .ja-rich-toolbar label{min-height:34px;border:1px solid #ead8e8;border-radius:10px;background:#fff;color:#2b0a28;padding:6px 9px;font-size:13px;}
.text-editor-modal-form .ja-rich-toolbar label{display:inline-flex;gap:6px;align-items:center;}
.text-editor-modal-form .ja-rich-toolbar input[type="color"]{width:34px;height:24px;padding:0;border:0;background:transparent;}
.text-editor-modal-form .rich-size-input{width:72px!important;min-height:26px!important;padding:3px 6px!important;border:1px solid #ead8e8!important;border-radius:8px!important;}
.text-editor-modal-form .ja-rich-editor{min-height:360px;max-height:58dvh;overflow:auto;border:1px solid #ead8e8;border-radius:18px;padding:18px 20px;background:#fff;line-height:1.8;outline:none;}
.text-editor-modal-form .ja-rich-editor:focus{border-color:#79196f;box-shadow:0 0 0 4px rgba(121,25,111,.08);}
.text-editor-modal-form .ja-rich-editor p{margin:.2em 0 .85em;}
.text-editor-modal-form .ja-rich-editor a{color:#79196f;text-decoration:underline;text-underline-offset:3px;}
.text-editor-modal-status{border-top:1px solid #f0e3ee;padding-top:10px;}
.text-editor-launcher .full{width:100%;justify-content:center;}
.text-editor-launch-preview{border:1px solid #ead8e8;border-radius:14px;background:#fff;padding:12px 14px;line-height:1.6;color:#4b374b;max-height:96px;overflow:hidden;white-space:pre-wrap;text-align:justify;}
@media(max-width:760px){#modal .modal:has(.text-editor-modal-form){width:96vw!important;padding:16px!important;border-radius:18px!important}.text-editor-modal-tabs{top:-16px}.text-editor-modal-form .ja-rich-toolbar{position:static}.text-editor-modal-form .ja-rich-editor{min-height:300px;max-height:50dvh;padding:14px}.text-editor-modal-form .two-col,.text-editor-modal-form .three-col,.text-editor-modal-form .style-mini-row{grid-template-columns:1fr!important;}}

/* v361: stable, compact text block pop-up editor */
#modal .modal:has(.text-editor-modal-form){width:min(1180px,96vw)!important;max-height:92dvh!important;overflow:auto!important;}
.text-editor-modal-form{gap:12px!important;}
.text-editor-modal-tabs{display:flex!important;gap:6px!important;flex-wrap:wrap!important;border-bottom:1px solid #ead8e8!important;padding-bottom:8px!important;position:sticky!important;top:-24px!important;background:#fff!important;z-index:5!important;}
.text-editor-modal-tabs button{min-height:30px!important;border:1px solid #ead8e8!important;background:#fff!important;color:#4a1544!important;border-radius:999px!important;padding:6px 10px!important;font-size:12px!important;font-weight:600!important;line-height:1!important;cursor:pointer!important;}
.text-editor-modal-tabs button.active{background:#79196f!important;color:#fff!important;border-color:#79196f!important;}
.text-editor-modal-form .ja-rich-toolbar{display:flex!important;gap:4px!important;flex-wrap:wrap!important;align-items:center!important;padding:8px!important;border:1px solid #ead8e8!important;border-radius:14px!important;background:#fff!important;position:sticky!important;top:34px!important;z-index:4!important;}
.text-editor-modal-form .ja-rich-toolbar button,.text-editor-modal-form .ja-rich-toolbar select,.text-editor-modal-form .ja-rich-toolbar label,.text-editor-modal-form .ja-rich-toolbar input.rich-size-input{min-height:28px!important;height:28px!important;border:1px solid #ead8e8!important;border-radius:8px!important;background:#fff!important;color:#2b0a28!important;padding:4px 7px!important;font-size:12px!important;font-weight:500!important;line-height:1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.text-editor-modal-form .ja-rich-toolbar label{gap:4px!important;}
.text-editor-modal-form .ja-rich-toolbar input[type="color"]{width:24px!important;height:18px!important;padding:0!important;border:0!important;background:transparent!important;}
.text-editor-modal-form .rich-size-input{width:48px!important;}
.text-editor-modal-form .ja-rich-editor{min-height:390px!important;max-height:58dvh!important;overflow:auto!important;border:1px solid #ead8e8!important;border-radius:16px!important;padding:18px 20px!important;background:#fff!important;line-height:1.8!important;outline:none!important;}
.text-editor-modal-form .ja-rich-editor:focus{border-color:#79196f!important;box-shadow:0 0 0 4px rgba(121,25,111,.08)!important;}
.text-editor-modal-form .ja-rich-editor p{margin:.2em 0 .85em!important;}
.text-editor-compact-panel{display:grid!important;gap:12px!important;}
.text-editor-modal-footer{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;border-top:1px solid #f0e3ee!important;padding-top:10px!important;position:sticky!important;bottom:-24px!important;background:#fff!important;z-index:5!important;}
.text-editor-modal-status{min-height:18px!important;font-size:12px!important;color:#7b687c!important;}
.text-editor-modal-footer .actions{display:flex!important;gap:8px!important;flex-wrap:wrap!important;justify-content:flex-end!important;}
.text-editor-modal-footer .btn{min-height:34px!important;padding:7px 12px!important;font-size:13px!important;}
.text-editor-modal-form .toolbox-head span,.text-editor-modal-form p.muted.small,.text-editor-modal-form input[disabled]{display:none!important;}
#modal .help-tip:hover::after,#modal .help-tip:focus-visible::after{position:fixed!important;left:clamp(12px,50vw,calc(100vw - 340px))!important;right:auto!important;top:auto!important;bottom:24px!important;transform:none!important;width:min(320px,calc(100vw - 24px))!important;max-width:calc(100vw - 24px)!important;}
#modal .help-tip:hover::before,#modal .help-tip:focus-visible::before{display:none!important;}
@media(max-width:760px){#modal .modal:has(.text-editor-modal-form){width:96vw!important;padding:16px!important;border-radius:18px!important}.text-editor-modal-tabs{top:-16px!important}.text-editor-modal-form .ja-rich-toolbar{position:static!important}.text-editor-modal-form .ja-rich-editor{min-height:320px!important;max-height:48dvh!important;padding:14px!important}.text-editor-modal-footer{bottom:-16px!important;align-items:stretch!important;flex-direction:column!important}.text-editor-modal-footer .actions{justify-content:stretch!important}.text-editor-modal-footer .btn{flex:1 1 auto!important}}

/* v364: accordion text direction/alignment must follow the block settings. */
.builder-accordion-item summary .builder-accordion-question-text{display:block;min-width:0;flex:1 1 auto;}
.builder-accordion-item[dir="rtl"] summary{flex-direction:row-reverse;}
.builder-accordion-item[dir="rtl"] .builder-accordion-answer-text{text-align:inherit;}
.builder-accordion-list[dir="rtl"] .builder-accordion-item{direction:rtl;}
.builder-accordion-list[dir="ltr"] .builder-accordion-item{direction:ltr;}


/* v366: explicit RTL/LTR text direction must win even when the first word is English.
   Use plaintext only for auto direction; explicit paragraph direction behaves like Word's RTL/LTR control. */
.builder-preview-site [dir="rtl"],
.builder-preview-site [dir="ltr"],
.custom-html-page [dir="rtl"],
.custom-html-page [dir="ltr"],
.builder-mini-preview [dir="rtl"],
.builder-mini-preview [dir="ltr"],
.builder-rich-text[dir="rtl"],
.builder-rich-text[dir="ltr"],
.builder-accordion-list[dir="rtl"],
.builder-accordion-list[dir="ltr"],
.builder-accordion-item[dir="rtl"],
.builder-accordion-item[dir="ltr"],
.builder-accordion-item summary[dir="rtl"],
.builder-accordion-item summary[dir="ltr"]{
  unicode-bidi:isolate!important;
}
.builder-preview-site [dir="rtl"],
.custom-html-page [dir="rtl"],
.builder-mini-preview [dir="rtl"],
.builder-rich-text[dir="rtl"],
.builder-accordion-list[dir="rtl"],
.builder-accordion-item[dir="rtl"],
.builder-accordion-item summary[dir="rtl"]{
  direction:rtl!important;
}
.builder-preview-site [dir="ltr"],
.custom-html-page [dir="ltr"],
.builder-mini-preview [dir="ltr"],
.builder-rich-text[dir="ltr"],
.builder-accordion-list[dir="ltr"],
.builder-accordion-item[dir="ltr"],
.builder-accordion-item summary[dir="ltr"]{
  direction:ltr!important;
}
.builder-rich-text[dir="rtl"],
.builder-accordion-list[dir="rtl"],
.builder-accordion-item[dir="rtl"],
.builder-accordion-item summary[dir="rtl"]{
  text-align:right!important;
}
.builder-rich-text[dir="ltr"],
.builder-accordion-list[dir="ltr"],
.builder-accordion-item[dir="ltr"],
.builder-accordion-item summary[dir="ltr"]{
  text-align:left!important;
}

/* v367: FAQ/accordion text needs a real inner inset, especially in RTL where text starts at the right edge. */
.builder-accordion-item summary{
  padding-inline:clamp(26px,3vw,38px)!important;
}
.builder-accordion-item .builder-accordion-answer-text{
  display:block!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding-block:0 20px!important;
  padding-inline:clamp(26px,3vw,38px)!important;
  color:#667085;
  line-height:1.7;
}
.builder-accordion-list[dir="rtl"] .builder-accordion-item summary,
.builder-accordion-item[dir="rtl"] summary{
  padding-inline-start:clamp(30px,3.2vw,44px)!important;
  padding-inline-end:clamp(30px,3.2vw,44px)!important;
}
.builder-accordion-list[dir="rtl"] .builder-accordion-answer-text,
.builder-accordion-item[dir="rtl"] .builder-accordion-answer-text{
  padding-inline-start:clamp(30px,3.2vw,44px)!important;
  padding-inline-end:clamp(30px,3.2vw,44px)!important;
}
@media(max-width:760px){
  .builder-accordion-item summary{padding-inline:22px!important;}
  .builder-accordion-item .builder-accordion-answer-text{padding-inline:22px!important;padding-block-end:18px!important;}
}


/* v369: FAQ search shortcode, closed accordions, and final FAQ text styling. */
.faq-item summary,
.home-faq-item summary,
.builder-accordion-item summary,
.builder-accordion-item summary::after,
.builder-accordion-item .builder-accordion-question-text{
  font-weight:400!important;
  color:var(--purple)!important;
}
.faq-item p,
.home-faq-item p,
.builder-accordion-item .builder-accordion-answer-text{
  font-weight:400!important;
  color:#000!important;
}
.faq-item p,
.home-faq-item p{
  font-size:calc(1em - 1px)!important;
}
.faq-live-search-section{
  padding-bottom:0!important;
}
.faq-live-search-card{
  max-width:920px;
  margin:0 auto;
  background:#fff;
  border:1px solid #ead6e8;
  border-radius:22px;
  box-shadow:0 14px 34px rgba(75,15,69,.06);
  padding:22px clamp(20px,3vw,34px);
}
.faq-live-search-card label{
  display:block;
  color:var(--purple);
  font-size:20px;
  font-weight:500;
  margin-bottom:12px;
}
.faq-live-search-shell{
  position:relative;
  display:flex;
  align-items:center;
}
.faq-live-search-shell input{
  width:100%;
  border:1px solid #ead6e8;
  border-radius:18px;
  min-height:56px;
  padding:12px 52px 12px 18px;
  font-size:19px;
  direction:rtl;
  text-align:right;
}
.faq-live-search-shell span{
  position:absolute;
  inset-inline-end:18px;
  color:var(--purple);
  pointer-events:none;
  font-size:22px;
}
.faq-live-search-status{
  margin:12px 0 0;
  color:#7b687c;
  font-size:15px;
  line-height:1.6;
}
.faq-live-search-empty-section{
  padding-top:0!important;
}
.faq-search-active [data-faq-search-item][hidden],
.faq-search-active .builder-accordion-item[hidden],
.faq-search-active .faq-item[hidden]{
  display:none!important;
}
@media(max-width:760px){
  .faq-live-search-card{border-radius:18px;padding:18px;}
  .faq-live-search-card label{font-size:18px;}
  .faq-live-search-shell input{min-height:50px;font-size:17px;}
}

/* v372: compact spacing between site-builder inserted blocks.
   Builder blocks used .section's global 84px top/bottom padding, creating very
   large gaps between consecutive text/shortcode/accordion blocks. Keep native
   page sections unchanged, but make inserted builder sections roughly one third
   as tall. */
.section.public-block,
.section.builder-preview-block{
  padding-top:28px!important;
  padding-bottom:28px!important;
}
.faq-searchable-page > .section.public-block,
.faq-searchable-page > .section.builder-preview-block{
  padding-top:28px!important;
  padding-bottom:28px!important;
}
@media(max-width:760px){
  .section.public-block,
  .section.builder-preview-block,
  .faq-searchable-page > .section.public-block,
  .faq-searchable-page > .section.builder-preview-block{
    padding-top:22px!important;
    padding-bottom:22px!important;
  }
}

/* v373 — homepage breathing room before footer. */
main.home-page-body::after{
  content:"";
  display:block;
  height:72px;
}
@media(max-width:760px){
  main.home-page-body::after{height:48px;}
}

/* v374: full-width text blocks keep readable side padding instead of touching viewport edges. */
.builder-text-entity-row.builder-text-size-full>.container{
  padding-left:clamp(24px,5vw,96px)!important;
  padding-right:clamp(24px,5vw,96px)!important;
}
.builder-text-size-full .builder-text-surface{
  box-sizing:border-box!important;
  max-width:100%!important;
}
.ja-section-group-child .builder-text-entity-row.builder-text-size-full>.container{
  padding-left:clamp(20px,4vw,72px)!important;
  padding-right:clamp(20px,4vw,72px)!important;
}
@media(max-width:760px){
  .builder-text-entity-row.builder-text-size-full>.container,
  .ja-section-group-child .builder-text-entity-row.builder-text-size-full>.container{
    padding-left:20px!important;
    padding-right:20px!important;
  }
}

/* v381: In Professional Certificate previews, guests/no-access users can review
   child-course curricula without being navigated away to single-course pages. */
.certificate-curriculum-modal .ja-public-curriculum-button-locked{
  opacity:.58!important;
  cursor:not-allowed!important;
  background:#f7edf6!important;
  color:#79196f!important;
  border-color:#ead6e8!important;
  pointer-events:none!important;
}

/* v386: make accidental hidden curriculum rows obvious and repairable in owner dashboard */
.curriculum-visibility-warning{margin:10px 0 14px;padding:12px 14px;border:1px solid #ead6e8;border-radius:16px;background:#fff6ec;color:#4b0f45;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.curriculum-visibility-warning strong{color:#7b146c}.curriculum-visibility-warning span{color:#6f5f70}

/* v386: homepage program browse uses the full /programs control bar: categories, search, and type pills. */
#homeProgramBrowseShell{display:grid!important;gap:34px!important;}
.home-programs-smart-search{
  width:100%!important;
  max-width:1180px!important;
  margin:0 auto!important;
}
.home-programs-smart-search .program-search-box{width:100%!important;}
.home-programs-smart-search + #homeProgramCardsResults{display:grid!important;gap:34px!important;}
@media(max-width:980px){
  .home-programs-smart-search{grid-template-columns:max-content minmax(260px,1fr)!important;}
  .home-programs-smart-search .program-type-filter{grid-column:1 / -1!important;}
}
@media(max-width:680px){
  .home-programs-smart-search{grid-template-columns:1fr!important;max-width:100%!important;margin-bottom:0!important;}
  .home-programs-smart-search .program-category-menu{justify-content:flex-start!important;}
  .home-programs-smart-search .program-type-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}



/* v468.8 Professional Certificate required/optional labels */
.certificate-course-card-topline{display:flex;justify-content:flex-start;align-items:center;gap:8px;min-height:24px;}
.certificate-course-requirement{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900;letter-spacing:.02em;border:1px solid rgba(105,28,97,.18);background:#f9eef8;color:#691c61;text-transform:uppercase;}
.certificate-course-requirement.optional{background:#fff8e8;color:#6e4b00;border-color:rgba(160,105,0,.2);}
