/* Course page (single-product.php): same tokens as the header, the home course rows and the page of all courses. */
.cp,
.cp-reviews-wrap {
	--cp-deep: var(--ye-deep);
	--cp-accent: var(--ye-accent);
	--cp-ink: var(--ye-ink);
	--cp-muted: var(--ye-muted);
	--cp-border: var(--ye-border);
	--cp-tint: var(--ye-tint);
	--cp-sale: var(--ye-sale);
	--cp-buy: var(--ye-buy);
	--cp-buy-dark: var(--ye-buy-strong);
	--cp-head: 74px;
	/* The home course cards reused below. */
	--ye-home-accent: var(--ye-accent);
	--ye-home-ink: var(--ye-ink);
	--ye-home-muted: var(--ye-muted);
	--ye-home-border: var(--ye-border);
	--ye-home-tint: var(--ye-tint);
	color: var(--cp-ink);
}
.cp *, .cp *::before, .cp *::after,
.cp-reviews-wrap *, .cp-reviews-wrap *::before, .cp-reviews-wrap *::after { box-sizing: border-box; }
.cp a, .cp a:hover, .cp a:focus, .cp-reviews-wrap a:hover { text-decoration: none; }
.single-product-page.cp { position: relative; isolation: isolate; margin-top: 0; padding-top: 18px; }
/* A soft wash behind the top of the page, like the top of the page of all courses. */
.cp::before { content: ""; position: absolute; top: 0; right: 0; left: 0; z-index: -1; height: 520px; background: linear-gradient(180deg, #f6f0fd 0%, rgba(246, 240, 253, 0) 100%); pointer-events: none; }

.cp-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 16px; color: var(--cp-muted); font-size: 14px; font-weight: 700; line-height: 1.8; }
.cp-crumbs a, .cp-crumbs a:visited { color: var(--cp-muted); }
.cp-crumbs a:hover, .cp-crumbs a:focus { color: var(--cp-accent); }
.cp-crumbs i { font-size: 12px; opacity: .6; }

/* Desktop: the story on the right, the buy card on the left and in view while the page scrolls. */
.cp-layout { display: grid; grid-template-columns: minmax(0, 1fr) 372px; grid-template-areas: "head aside" "intro aside" "main aside"; column-gap: 40px; align-items: start; }
.cp-head { grid-area: head; min-width: 0; }
.cp-intro { grid-area: intro; min-width: 0; }
.cp-main { grid-area: main; min-width: 0; }
.cp-aside { grid-area: aside; align-self: start; }
@media (min-width: 992px) and (min-height: 700px) {
	.cp-aside { position: sticky; top: calc(var(--cp-head) + 16px); z-index: 2; }
	body.admin-bar .cp-aside { top: calc(var(--cp-head) + 48px); }
}
.cp-aside__in { overflow: hidden; border: 1px solid var(--cp-border); border-radius: 22px; background: #fff; box-shadow: 0 18px 44px rgba(46, 31, 84, .10); }

/* Title block */
.cp-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.cp-tag { display: inline-flex; align-items: center; gap: 7px; padding: 2px 12px; border: 1px solid var(--cp-border); border-radius: 999px; background: #fff; color: var(--cp-muted); font-size: 13.5px; font-weight: var(--ye-w-semibold); line-height: 1.9; }
.cp-tag i { color: var(--cp-accent); font-size: 13px; }
.cp-tag--pack { border-color: #f2d49a; background: #fff8e8; color: #7a4f00; }
.cp-tag--pack i { color: #c98a00; }
.cp-tag--live { border-color: #f6c2d5; background: #fde8f0; color: var(--cp-sale); }
.cp-tag--live i { color: #e0457b; }
.cp-tag--label { border-color: var(--cp-accent); background: var(--cp-accent); color: #fff; }
.cp .cp-title.product-title { margin: 0; color: var(--cp-ink); font-size: 32px; font-weight: var(--ye-w-display); line-height: 1.55; }
.cp-rating, .cp-rating:visited { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--cp-muted); font-size: 14.5px; font-weight: 700; line-height: 1.8; }
.cp-rating:hover, .cp-rating:focus { color: var(--cp-accent); }
.cp-rating strong { color: #8a5a00; font-size: 16px; font-weight: var(--ye-w-display); }

/* Stars: grey row with a gold row on top, as wide as the rating. */
.cp-stars { position: relative; display: inline-block; color: #e2d9ec; font-size: 17px; line-height: 1; letter-spacing: 2px; white-space: nowrap; direction: rtl; }
.cp-stars::before { content: "★★★★★"; }
.cp-stars::after { content: "★★★★★"; position: absolute; top: 0; right: 0; width: var(--cp-fill, 0%); overflow: hidden; color: #f5a623; }
.cp-stars--small { font-size: 13px; letter-spacing: 1px; }

.cp-intro { margin-top: 18px; }
.cp-summary { color: #4b4357; font-size: 16.5px; line-height: 2; }
.cp-summary p { margin: 0 0 8px; }
.cp-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; margin: 14px 0 0; padding: 0; list-style: none; }
.cp-facts li { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 7px 12px; border: 1px solid var(--cp-border); border-radius: 14px; background: #fff; color: var(--cp-ink); font-size: 14.5px; font-weight: var(--ye-w-semibold); line-height: 1.6; }
.cp-facts i { display: grid; flex: 0 0 auto; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: var(--cp-tint); color: var(--cp-accent); font-size: 14px; }

/* Buy card */
.cp-media { position: relative; background: var(--cp-tint); }
.cp-media img { display: block; width: 100%; height: auto; box-shadow: none; }
.cp-media__play, .cp-media__play:visited { position: absolute; bottom: 12px; left: 12px; display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 4px 14px; border-radius: 999px; background: rgba(26, 5, 54, .82); color: #fff; font-size: 13.5px; font-weight: var(--ye-w-semibold); box-shadow: 0 6px 18px rgba(26, 5, 54, .25); }
.cp-media__play:hover, .cp-media__play:focus { background: var(--cp-deep); color: #fff; }
.cp-media__play i { font-size: 11px; }
.cp-buy { padding: 18px 20px 20px; }
.cp-price { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; margin-bottom: 14px; }
.cp-price__amount { color: var(--cp-ink); font-size: 26px; font-weight: var(--ye-w-display); line-height: 1.45; }
.cp-price__amount del { display: block; color: var(--ye-faint); font-size: 15px; font-weight: 500; }
.cp-price__amount ins { background: none; text-decoration: none; }
.cp-price__amount .woocommerce-Price-currencySymbol { font-size: 15px; font-weight: var(--ye-w-semibold); }
.cp-price__amount del .woocommerce-Price-currencySymbol { font-size: inherit; font-weight: inherit; }
.cp-price__save { padding: 2px 11px; border-radius: 999px; background: #fde8f0; color: var(--cp-sale); font-size: 13.5px; font-weight: var(--ye-w-heading); line-height: 1.9; white-space: nowrap; }
.cp-buy .cp-btn, .cp-buy .cp-btn:visited { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 52px; padding: 8px 18px; border: 1px solid transparent; border-radius: 14px; font-size: 16.5px; font-weight: var(--ye-w-heading); line-height: 1.5; text-align: center; transition: background .15s ease, border-color .15s ease, box-shadow .15s ease; }
.cp-buy .cp-btn + .cp-btn { margin-top: 10px; }
.cp-buy .cp-btn--buy, .cp-buy .cp-btn--buy:visited { background: var(--cp-buy); color: #fff; box-shadow: 0 10px 22px rgba(31, 174, 91, .24); }
.cp-buy .cp-btn--buy:hover, .cp-buy .cp-btn--buy:focus { background: var(--cp-buy-dark); color: #fff; }
.cp-buy .cp-btn--go, .cp-buy .cp-btn--go:visited { background: var(--cp-accent); color: #fff; box-shadow: 0 10px 22px rgba(111, 63, 192, .22); }
.cp-buy .cp-btn--go:hover, .cp-buy .cp-btn--go:focus { background: var(--cp-deep); color: #fff; }
.cp-buy .cp-btn--free, .cp-buy .cp-btn--free:visited { border-color: var(--ye-border-accent); background: #fff; color: var(--cp-accent); font-size: 16px; }
.cp-buy .cp-btn--free:hover, .cp-buy .cp-btn--free:focus { background: var(--cp-tint); color: var(--cp-deep); }
.cp-buy .cp-btn--soft, .cp-buy .cp-btn--soft:visited { background: var(--cp-tint); color: var(--cp-deep); font-size: 15.5px; }
.cp-buy .cp-btn--soft:hover, .cp-buy .cp-btn--soft:focus { background: var(--ye-tint-strong); color: var(--cp-deep); }
.cp-buy .cp-btn--ghost, .cp-buy .cp-btn--ghost:visited { border-color: var(--cp-border); background: #fff; color: var(--cp-ink); font-size: 15px; font-weight: var(--ye-w-semibold); }
.cp-buy .cp-btn--ghost:hover, .cp-buy .cp-btn--ghost:focus { border-color: var(--ye-border-accent); color: var(--cp-deep); }
.cp-buy__trust { margin: 14px 0 0; padding: 12px 0 0; border-top: 1px dashed var(--cp-border); color: var(--cp-muted); font-size: 13.5px; line-height: 1.95; list-style: none; }
.cp-buy__trust li { display: flex; align-items: baseline; gap: 8px; }
.cp-buy__trust i { color: var(--cp-buy); font-size: 11px; }
.cp-buy__state { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 14px; padding: 12px 14px; border-radius: 14px; font-size: 15px; font-weight: var(--ye-w-semibold); line-height: 1.8; }
.cp-buy__state i { margin-top: 5px; }
.cp-buy__state--owned { background: #e9f8ef; color: #146c3a; }
.cp-buy__state--full { background: #f7f5fa; color: var(--cp-muted); }
.cp-packnote, .cp-packnote:visited { display: block; margin-top: 16px; padding: 14px 16px; border: 1px solid #f2d49a; border-radius: 16px; background: linear-gradient(135deg, #fff8e8 0%, #fffdf7 100%); color: var(--cp-ink); transition: border-color .15s ease, box-shadow .15s ease; }
.cp-packnote:hover, .cp-packnote:focus { border-color: #e9b85a; box-shadow: 0 10px 22px rgba(201, 138, 0, .14); color: var(--cp-ink); }
.cp-packnote__kicker { display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; border-radius: 999px; background: #ffe7b3; color: #7a4f00; font-size: 12.5px; font-weight: var(--ye-w-heading); line-height: 1.9; }
.cp-packnote strong { display: block; margin-top: 8px; font-size: 15.5px; font-weight: var(--ye-w-heading); line-height: 1.75; }
.cp-packnote__text { display: block; color: var(--cp-muted); font-size: 13.5px; line-height: 1.8; }
.cp-packnote__go { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; color: #8a5a00; font-size: 14px; font-weight: var(--ye-w-heading); }

/* In-page links: stay under the header while reading. */
.cp-tabs { position: sticky; top: var(--cp-head); z-index: 20; display: flex; gap: 4px; margin: 30px 0 0; padding: 8px 0; border-bottom: 1px solid var(--cp-border); background: rgba(255, 255, 255, .97); overflow-x: auto; scrollbar-width: none; }
body.admin-bar .cp-tabs { top: calc(var(--cp-head) + 32px); }
.cp-tabs::-webkit-scrollbar { display: none; }
.cp-tabs a, .cp-tabs a:visited { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 12px; color: var(--cp-muted); font-size: 15px; font-weight: var(--ye-w-bold); white-space: nowrap; transition: background .15s ease, color .15s ease; }
.cp-tabs a:hover, .cp-tabs a:focus { background: var(--cp-tint); color: var(--cp-deep); }
.cp-tabs a.is-active { background: var(--cp-deep); color: #fff; }

.cp-section { margin-top: 40px; scroll-margin-top: 64px; }
.cp-tabs + .cp-section { margin-top: 26px; }
.cp .cp-h2, .cp-reviews .cp-h2 { margin: 0 0 14px; color: var(--cp-ink); font-size: 23px; font-weight: var(--ye-w-display); line-height: 1.6; }
.cp .cp-h3 { margin: 20px 0 10px; color: var(--cp-ink); font-size: 17px; font-weight: var(--ye-w-heading); line-height: 1.7; }
.cp-section__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 14px; margin-bottom: 14px; }
.cp .cp-section__head .cp-h2, .cp-reviews .cp-section__head .cp-h2 { margin: 0; }
.cp-section__meta { color: var(--cp-muted); font-size: 14.5px; font-weight: 700; }
.cp-section__link, .cp-section__link:visited { display: inline-flex; align-items: center; gap: 6px; color: var(--cp-accent); font-size: 15px; font-weight: var(--ye-w-bold); white-space: nowrap; }
.cp-section__link:hover, .cp-section__link:focus { color: var(--cp-deep); }
.cp-more-button { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 48px; margin-top: 10px; padding: 6px 16px; border: 1px solid var(--ye-border-accent); border-radius: 14px; background: #fff; color: var(--cp-accent); font: inherit; font-size: 15.5px; font-weight: var(--ye-w-bold); cursor: pointer; transition: background .15s ease; }
.cp-more-button:hover, .cp-more-button:focus { background: var(--cp-tint); color: var(--cp-deep); }

/* About: the course's own text at a reading width, folded when it is long (course-page.js). */
.cp .cp-desc.styled { position: relative; padding: 0; font-size: 17px; }
.cp .cp-desc__body { color: #3b3446; font-size: 17px; font-weight: 400; line-height: 2.05; }
.cp .cp-desc__body p { margin: 0 0 12px; }
.cp .cp-desc__body h2, .cp .cp-desc__body h3, .cp .cp-desc__body h4 { margin: 24px 0 8px; color: var(--cp-ink); font-size: 19px; font-weight: var(--ye-w-heading); line-height: 1.7; }
.cp .cp-desc__body ul, .cp .cp-desc__body ol { margin: 0 0 14px; padding: 0 22px 0 0; }
.cp .cp-desc__body ul { list-style: disc; }
.cp .cp-desc__body li { margin-bottom: 4px; }
.cp .cp-desc__body li::marker { color: var(--cp-accent); }
.cp .cp-desc__body a { color: var(--cp-accent); text-decoration: underline; text-underline-offset: 4px; }
.cp .cp-desc__body img { max-width: 100%; height: auto; border-radius: 14px; }
.cp-desc.is-folded .cp-desc__body { max-height: 420px; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 65%, transparent); mask-image: linear-gradient(180deg, #000 65%, transparent); }

.cp-videos { display: grid; gap: 14px; }
.cp-videos--many { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cp-videos video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 16px; background: var(--ye-night); box-shadow: 0 12px 30px rgba(26, 5, 54, .16); }

/* Courses of a package */
.cp-packlist { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.cp-packlist__item, .cp-packlist__item:visited { display: flex; align-items: center; gap: 14px; padding: 10px 14px 10px 10px; border: 1px solid var(--cp-border); border-radius: 16px; background: #fff; color: var(--cp-ink); transition: border-color .15s ease, box-shadow .15s ease; }
.cp-packlist__item:hover, .cp-packlist__item:focus { border-color: var(--ye-border-accent); box-shadow: 0 10px 24px rgba(46, 31, 84, .08); color: var(--cp-ink); }
.cp-packlist__num { display: grid; flex: 0 0 auto; place-items: center; width: 30px; height: 30px; border-radius: 10px; background: var(--cp-tint); color: var(--cp-accent); font-weight: var(--ye-w-display); }
.cp-packlist__image { flex: 0 0 auto; width: 96px; height: 64px; border-radius: 10px; object-fit: cover; background: var(--cp-tint); }
.cp-packlist__body { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.cp-packlist__body strong { font-size: 16px; font-weight: var(--ye-w-heading); line-height: 1.7; }
.cp-packlist__body > span { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--cp-muted); font-size: 13.5px; font-weight: 650; }
.cp-owned { color: #146c3a; font-weight: var(--ye-w-bold); }
.cp-packlist__go { color: var(--cp-accent); font-size: 20px; }
.cp-packsave { display: flex; align-items: center; gap: 10px; margin: 12px 0 0; padding: 12px 16px; border-radius: 14px; background: #fff8e8; color: #7a4f00; font-size: 15px; font-weight: var(--ye-w-bold); line-height: 1.8; }

/* Curriculum: one row per session, opened on tap; long lists show the first sessions (course-page.js). */
.cp-lessons { overflow: hidden; border: 1px solid var(--cp-border); border-radius: 18px; background: #fff; }
.cp-lesson + .cp-lesson { border-top: 1px solid #f0ebf6; }
.cp-lesson > summary { display: flex; align-items: center; gap: 12px; padding: 12px 16px; cursor: pointer; list-style: none; }
.cp-lesson > summary::-webkit-details-marker { display: none; }
.cp-lesson > summary:hover { background: var(--ye-tint-soft); }
.cp-lesson__num { display: grid; flex: 0 0 auto; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: var(--cp-tint); color: var(--cp-accent); font-size: 14px; font-weight: var(--ye-w-display); }
.cp-lesson__title { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.cp-lesson__title strong { color: var(--cp-ink); font-size: 15.5px; font-weight: var(--ye-w-heading); line-height: 1.7; }
.cp-lesson__title span { overflow: hidden; color: var(--cp-muted); font-size: 13.5px; line-height: 1.7; text-overflow: ellipsis; white-space: nowrap; }
.cp-lesson[open] .cp-lesson__title span { display: none; }
.cp-lesson__toggle { color: var(--cp-muted); font-size: 18px; transition: transform .2s ease; }
.cp-lesson[open] .cp-lesson__toggle { transform: rotate(180deg); }
.cp-lesson ul { margin: 0; padding: 0 60px 14px 16px; list-style: none; }
.cp-lesson li { position: relative; padding: 3px 14px 3px 0; color: #4b4357; font-size: 14.5px; line-height: 1.8; }
.cp-lesson li::before { content: ""; position: absolute; top: 14px; right: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--ye-gold); }
.cp-lessons.is-short .cp-lesson.is-later { display: none; }

/* Path of the level: every term, this one marked, then the step after it. */
.cp-path { padding: 20px 22px 22px; border: 1px solid var(--cp-border); border-radius: 22px; background: linear-gradient(135deg, var(--ye-tint) 0%, var(--ye-tint-soft) 55%, #fff 100%); }
.cp-steps { display: flex; margin: 0; padding: 6px 0 4px; overflow-x: auto; list-style: none; scrollbar-width: none; }
.cp-steps::-webkit-scrollbar { display: none; }
.cp-step { position: relative; flex: 1 0 58px; text-align: center; }
.cp-step::before { content: ""; position: absolute; top: 17px; right: 50%; width: 100%; height: 2px; background: #dccdf0; }
.cp-step:first-child::before { display: none; }
.cp-step a, .cp-step a:visited { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--cp-muted); font-size: 12.5px; font-weight: var(--ye-w-semibold); white-space: nowrap; }
.cp-step a:hover .cp-step__dot { border-color: var(--cp-accent); }
.cp-step__dot { display: grid; place-items: center; width: 36px; height: 36px; border: 2px solid #dccdf0; border-radius: 50%; background: #fff; color: var(--cp-accent); font-size: 14px; font-weight: var(--ye-w-display); transition: border-color .15s ease; }
.cp-step.is-owned .cp-step__dot { border-color: var(--cp-buy); background: var(--cp-buy); color: #fff; }
.cp-step.is-here .cp-step__dot { border-color: var(--cp-deep); background: var(--cp-deep); color: #fff; box-shadow: 0 0 0 5px rgba(111, 63, 192, .18); }
.cp-step.is-here a { color: var(--cp-deep); font-weight: var(--ye-w-display); }
.cp-next { display: grid; gap: 12px; }

/* FAQ */
.cp-faq { display: grid; gap: 8px; }
.cp-faq__item { border: 1px solid var(--cp-border); border-radius: 14px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.cp-faq__item[open] { border-color: var(--ye-border-accent); box-shadow: 0 8px 20px rgba(46, 31, 84, .06); }
.cp-faq__item > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; color: var(--cp-ink); font-size: 15.5px; font-weight: var(--ye-w-bold); line-height: 1.8; cursor: pointer; list-style: none; }
.cp-faq__item > summary::-webkit-details-marker { display: none; }
.cp-faq__item > summary i { flex: 0 0 auto; color: var(--cp-muted); font-size: 18px; transition: transform .2s ease; }
.cp-faq__item[open] > summary i { transform: rotate(180deg); }
.cp-faq__answer { padding: 0 16px 14px; color: #4b4357; font-size: 15px; line-height: 2; }
.cp-faq__answer p { margin: 0 0 8px; }

/* Reviews */
.cp-score { display: grid; grid-template-columns: 170px minmax(0, 1fr); align-items: center; gap: 22px; margin-bottom: 14px; padding: 18px 22px; border: 1px solid var(--cp-border); border-radius: 18px; background: var(--ye-tint-soft); }
.cp-score__total { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.cp-score__total strong { color: var(--cp-ink); font-size: 44px; font-weight: var(--ye-w-display); line-height: 1.1; }
.cp-score__total > span:last-child { color: var(--cp-muted); font-size: 13.5px; font-weight: 650; }
.cp-score__bars { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.cp-score__bars li { display: grid; grid-template-columns: 40px minmax(0, 1fr) 42px; align-items: center; gap: 10px; color: var(--cp-muted); font-size: 13.5px; font-weight: var(--ye-w-semibold); }
.cp-score__bars i { color: #f5a623; font-size: 11px; }
.cp-score__bar { height: 8px; overflow: hidden; border-radius: 999px; background: var(--ye-border); }
.cp-score__bar span { display: block; height: 100%; border-radius: inherit; background: #f5a623; }
.cp-score__pct { text-align: left; }
.cp-review-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.cp-review-list .children { display: grid; gap: 8px; margin: 8px 28px 0 0; padding: 0; list-style: none; }
.cp-review__box { padding: 14px 16px; border: 1px solid var(--cp-border); border-radius: 16px; background: #fff; }
.cp-review-list .children .cp-review__box { background: var(--ye-tint-soft); }
.cp-review__head { display: flex; align-items: center; gap: 10px; }
.cp-review__avatar { display: grid; flex: 0 0 auto; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--cp-tint); color: var(--cp-accent); font-size: 16px; font-weight: var(--ye-w-display); }
.cp-review__who { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.cp-review__who strong { overflow: hidden; color: var(--cp-ink); font-size: 15px; font-weight: var(--ye-w-heading); line-height: 1.6; text-overflow: ellipsis; white-space: nowrap; }
.cp-review__meta { display: flex; flex-wrap: wrap; gap: 2px 10px; color: var(--cp-muted); font-size: 12.5px; line-height: 1.7; }
.cp-review__buyer { color: #146c3a; font-weight: var(--ye-w-semibold); }
.cp-review__buyer i { font-size: 10px; }
/* Answers from the site's team: a purple mark and a tinted card, so they read as the site speaking. */
.cp-review__staff { color: var(--cp-accent); font-weight: var(--ye-w-bold); }
.cp-review__staff i { font-size: 11px; }
.cp-review.is-staff > .cp-review__box, .cp-review-list .children .cp-review.is-staff > .cp-review__box { border-color: #d9c8f0; background: var(--cp-tint); }
.cp-review.is-staff > .cp-review__box .cp-review__avatar { background: var(--cp-accent); color: #fff; }
.cp-review__wait { margin: 8px 0 0; color: #8a5a00; font-size: 13.5px; }
.cp-review__text { margin-top: 8px; color: #3b3446; font-size: 15px; line-height: 1.95; overflow-wrap: anywhere; }
.cp-review__text p { margin: 0 0 6px; }
.cp-review__text p:last-child { margin-bottom: 0; }
.cp-review-list.is-short > .cp-review.is-later { display: none; }
.cp-reviews__empty { margin: 0 0 12px; color: var(--cp-muted); font-size: 15.5px; line-height: 1.9; }
.cp-reviews .cp-review-form { margin-top: 14px; border: 1px solid var(--cp-border); border-radius: 16px; background: #fff; }
.cp-reviews .cp-review-form > summary { display: flex; align-items: center; gap: 8px; min-height: 52px; padding: 10px 16px; color: var(--cp-accent); font-size: 15.5px; font-weight: var(--ye-w-heading); cursor: pointer; list-style: none; }
.cp-reviews .cp-review-form > summary::-webkit-details-marker { display: none; }
.cp-reviews .cp-review-form #review_form { padding: 0 16px 16px; }
.cp-reviews #respond { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.cp-reviews #reply-title:empty { display: none; }
/* The old theme colours and centres every review heading (.woocommerce #reviews #comments h2). */
.woocommerce #reviews.cp-reviews #comments h2.cp-h2 { margin: 0; color: var(--cp-ink); font-size: 23px; line-height: 1.6; text-align: right; }
.cp-reviews .comment-form label { display: block; margin: 10px 0 6px; color: var(--cp-ink); font-size: 14.5px; font-weight: var(--ye-w-bold); }
.cp-reviews .comment-form input[type="text"],
.cp-reviews .comment-form input[type="email"],
.cp-reviews .comment-form textarea { width: 100%; padding: 10px 14px; border: 1px solid var(--ye-border-strong); border-radius: 12px; background: #fff; color: var(--cp-ink); font: inherit; font-size: 15px; box-shadow: none; }
.cp-reviews .comment-form input:focus,
.cp-reviews .comment-form textarea:focus { border-color: var(--cp-accent); outline: none; box-shadow: 0 0 0 4px rgba(111, 63, 192, .12); }
.cp-reviews .comment-form p { margin: 0; }
.cp-reviews .comment-form .form-submit { margin-top: 14px; }
.cp-reviews .comment-form .form-submit input[type="submit"] { min-width: 160px; min-height: 48px; padding: 8px 22px; border: 0; border-radius: 12px; background: var(--cp-accent); color: #fff; font: inherit; font-size: 16px; font-weight: var(--ye-w-heading); cursor: pointer; }
.cp-reviews .comment-form .form-submit input[type="submit"]:hover { background: var(--cp-deep); }
.cp-reviews .comment-form-rating p.stars a { color: #f5a623; }

/* More courses: the home course cards. */
.cp-more { margin-top: 56px; padding-top: 34px; border-top: 1px solid var(--cp-border); }
.cp-more__grid { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }

/* Yalda's line at the end, lighter than before. */
.cp .yaldabar { margin-top: 64px; padding: 44px 0; }
.cp .yaldabar img { max-height: 200px; width: auto; }
.cp .yaldabar p { margin-top: 36px; font-size: 18px; }
.cp .yaldabar p:last-of-type { font-size: 21px; }

@media (max-width: 1199px) {
	.cp-layout { grid-template-columns: minmax(0, 1fr) 340px; column-gap: 28px; }
	.cp .cp-title.product-title { font-size: 28px; }
	.cp-more__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cp-more__grid > :nth-child(4) { display: none; }
}
@media (max-width: 1079px) {
	.cp, .cp-reviews-wrap { --cp-head: 64px; }
}

/* Tablet and phone: cover, title, the buy card, then the story. */
@media (max-width: 991px) {
	.single-product-page.cp { padding-top: 12px; }
	.cp-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "head" "buy" "intro" "main"; }
	.cp-aside, .cp-aside__in { display: contents; }
	.cp-media { grid-area: media; justify-self: center; width: 100%; max-width: 560px; margin-bottom: 16px; overflow: hidden; border-radius: 18px; box-shadow: 0 12px 30px rgba(46, 31, 84, .10); }
	.cp-buy { grid-area: buy; margin-top: 16px; padding: 16px; border: 1px solid var(--cp-border); border-radius: 18px; background: #fff; box-shadow: 0 10px 28px rgba(46, 31, 84, .08); }
	.cp-tabs { position: static; margin-top: 26px; padding: 0 0 8px; }
	.cp-section { scroll-margin-top: 8px; }
	.cp-more__grid { grid-auto-columns: calc((100% - 16px) / 2.3); grid-auto-flow: column; grid-template-columns: none; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: none; }
	.cp-more__grid::-webkit-scrollbar { display: none; }
	.cp-more__grid > :nth-child(4) { display: block; }
}
@media (max-width: 767px) {
	.cp-crumbs { margin-bottom: 12px; font-size: 13.5px; }
	.cp .cp-title.product-title { font-size: 24px; line-height: 1.6; }
	.cp-tag { font-size: 12.5px; }
	.cp-summary { font-size: 16px; }
	.cp-facts { gap: 8px; }
	.cp-facts li { gap: 8px; padding: 7px 10px; font-size: 13.5px; }
	.cp-facts i { width: 28px; height: 28px; font-size: 13px; }
	.cp-price__amount { font-size: 24px; }
	.cp .cp-h2 { font-size: 21px; }
	.cp-section { margin-top: 34px; }
	.cp .cp-desc__body { font-size: 16px; line-height: 2; }
	.cp-videos--many { grid-template-columns: minmax(0, 1fr); }
	.cp-packlist__item { gap: 10px; padding: 8px 10px 8px 8px; }
	.cp-packlist__image { width: 72px; height: 48px; }
	.cp-packlist__body strong { font-size: 14.5px; }
	.cp-lesson > summary { padding: 11px 12px; }
	.cp-lesson ul { padding-right: 56px; }
	.cp-path { padding: 16px; }
	.cp-score { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px; }
	.cp-score__total { flex-direction: row; justify-content: center; gap: 12px; }
	.cp-score__total strong { font-size: 36px; }
	.cp-more { margin-top: 44px; padding-top: 26px; }
	.cp-more__grid { grid-auto-columns: 74%; gap: 12px; }
	.cp .yaldabar { margin-top: 48px; padding: 32px 0; }
	.cp .yaldabar img { max-height: 150px; margin: 0 auto; }
	.cp .yaldabar p { margin-top: 20px; padding-right: 0; font-size: 16px; text-align: center; }
	.cp .yaldabar p:last-of-type { font-size: 18px; }
}
@media (max-width: 380px) {
	.cp-facts { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.cp *, .cp *::before, .cp *::after { transition: none !important; }
}
