/* 01. One cover system, restrained category accents. */
.theme-self{--topic:#486b5b;--topic-tint:#edf2ed}
.theme-relations{--topic:#596f87;--topic-tint:#eef1f5}
.theme-emotions{--topic:#876d59;--topic-tint:#f4efea}
.course-cover{position:relative;width:100%;height:100%;overflow:hidden;background:#edf0ed}
.course-cover img{width:100%;height:100%;object-fit:cover;object-position:var(--cover-position,50% 45%);filter:saturate(.78) contrast(.97);transition:transform .55s ease}
.course-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#ebe5d70a,#244c3f0a);pointer-events:none}
.course-card .course-image{height:auto;aspect-ratio:16/10;flex-shrink:0;border-bottom:4px solid var(--topic)}
.course-card .course-image img{object-position:var(--cover-position);filter:saturate(.78) contrast(.97)}
.course-card .course-badge{top:16px;left:16px;display:inline-flex;align-items:center;gap:7px;border-radius:4px;background:#ffffffed;color:#34463f;padding:6px 10px;font-size:11px;font-weight:600;line-height:1.5}
.course-badge svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
/* 02. Comparable cards: title, summary, facts, price. */
.course-grid{gap:28px;grid-template-columns:repeat(3,minmax(0,1fr))}
.course-grid .course-card{border-radius:14px;border-color:#dae2dc;display:flex;flex-direction:column}
.course-card .course-body{padding:25px 26px 24px;display:flex;flex-direction:column;flex:1}
.course-card .course-category{display:flex;align-items:center;gap:8px;font-size:11px;line-height:1.5;font-weight:700;letter-spacing:1.1px;color:var(--topic);margin:0 0 13px}
.category-dot{width:6px;height:6px;border-radius:50%;background:var(--topic);flex:none}
.course-card h3{font-size:24px;line-height:1.35;letter-spacing:-.65px;min-height:2.7em;margin:0 0 14px;text-wrap:balance}
.course-card h3 a:hover{color:var(--topic)}
.course-card .course-description{font-size:15px;line-height:1.75;color:#59655f;margin:0 0 22px;min-height:3.5em}
.course-card .course-facts{display:flex;flex-direction:column;gap:9px;margin:0 0 24px;padding:0}
.course-card .course-facts li{font-size:13px;line-height:1.6;color:#53625b;display:flex;align-items:center;gap:9px}
.course-card .course-facts svg{width:17px;height:18px;min-width:17px;stroke:#63796d;stroke-width:1.5;margin:0}
.course-card .course-price{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap;margin-top:auto;padding-top:20px;border-color:#e1e7e2}
.course-card .course-price strong{font-size:23px;line-height:1.4;letter-spacing:-.5px;color:#234c4b}
.course-card .course-price small{font-size:11px;color:#65716a}
.course-card .course-price a{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:44px;border:1px solid #d2ded7;border-radius:5px;padding:9px 15px;font-size:13px;background:#fff;color:#234c4b;font-weight:700}
.course-card .course-price a:hover{background:#eef3ef;border-color:#9ab1a4}
.course-card .course-price a span{margin:0}
@media(min-width:801px) and (max-width:1100px){.course-card .course-body{padding:22px 20px}.course-card h3{font-size:21px}.course-card .course-description{min-height:5.25em}}
@media(max-width:800px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.course-card h3{font-size:22px}.course-card .course-body{padding:23px 21px}.course-card .course-description{min-height:5.25em}}
@media(max-width:600px){.course-grid{grid-template-columns:1fr;gap:26px}.course-card .course-body{padding:25px}.course-card h3{font-size:24px;min-height:0;margin-bottom:12px}.course-card .course-description{min-height:0}.course-card .course-facts li{font-size:14px}.course-card .course-price a{min-height:46px}}
/* 05. Magazine rhythm: one lead story, two quieter side stories. */
.journal-editorial{display:grid;grid-template-columns:1.2fr 1fr;gap:0 44px;align-items:stretch}
.journal-editorial .journal-item{min-width:0}
.journal-editorial .journal-featured{grid-row:span 2;display:flex;flex-direction:column;align-items:stretch;gap:0;background:#fff;border:1px solid #dce3dd;border-radius:12px;overflow:hidden}
.journal-editorial .journal-featured .journal-image{height:auto;aspect-ratio:2.05;border-radius:0}
.journal-editorial .journal-featured .journal-copy{padding:26px 30px 28px}
.journal-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px;color:#65716a}
.journal-meta .eyebrow{color:#416b5b;font-size:11px;letter-spacing:1px;margin:0}
.journal-editorial .journal-item h3{margin:14px 0 16px;line-height:1.35;letter-spacing:-.65px;text-wrap:balance}
.journal-editorial .journal-featured h3{font-size:29px}
.journal-featured .journal-copy>p{font-size:15px;line-height:1.8;margin:0 0 20px;color:#59675f}
.journal-read{display:flex;align-items:center;gap:18px;color:#234c4b;font-size:13px;font-weight:700;min-height:28px}
.journal-read>span{transition:transform .2s}
.journal-item:hover .journal-read>span{transform:translate(2px,-2px)}
.journal-editorial .journal-secondary{display:grid;grid-template-columns:148px minmax(0,1fr);gap:25px;align-items:center;padding:30px 0;border-bottom:1px solid #d4ded6}
.journal-editorial .journal-secondary:first-of-type{padding-top:0}
.journal-editorial .journal-secondary .journal-image{height:184px;width:100%;border-radius:8px}
.journal-editorial .journal-secondary h3{font-size:25px;margin:13px 0 23px}
.journal-editorial .journal-image img{filter:saturate(.8) contrast(.98)}
@media(max-width:1100px){.journal-editorial{gap:0 28px;grid-template-columns:1.1fr 1fr}.journal-editorial .journal-secondary{grid-template-columns:110px minmax(0,1fr);gap:18px}.journal-editorial .journal-secondary h3{font-size:23px}.journal-meta{font-size:11px;gap:8px}.journal-editorial .journal-featured .journal-copy{padding:24px}.journal-editorial .journal-featured h3{font-size:27px}}
@media(max-width:800px){.journal-editorial{grid-template-columns:1fr;gap:0}.journal-editorial .journal-featured{grid-row:auto;margin-bottom:10px}.journal-editorial .journal-featured .journal-image{aspect-ratio:1.85}.journal-editorial .journal-secondary{grid-template-columns:145px minmax(0,1fr);gap:24px;padding:25px 0}.journal-editorial .journal-secondary .journal-image{height:160px}.journal-editorial .journal-secondary h3{font-size:24px}.journal-meta{font-size:12px}}
@media(max-width:480px){.journal-editorial .journal-featured .journal-copy{padding:23px}.journal-editorial .journal-featured h3{font-size:25px}.journal-editorial .journal-featured .journal-image{aspect-ratio:1.6}.journal-editorial .journal-secondary{grid-template-columns:100px minmax(0,1fr);gap:18px}.journal-editorial .journal-secondary .journal-image{height:140px}.journal-editorial .journal-secondary h3{font-size:21px;line-height:1.4;margin:10px 0 13px}.journal-meta{flex-wrap:wrap;gap:4px 10px}}
/* 06. Course detail: persistent section navigation and a readable curriculum. */
.course-detail{--course-header-height:90px}
.course-detail .detail-hero{grid-template-columns:1.05fr 1fr;gap:64px;padding:22px 0 45px}
.course-detail .detail-hero h1{font-size:clamp(36px,3.5vw,48px);line-height:1.2;text-wrap:balance}
.course-detail .detail-hero p{font-size:16px;line-height:1.8}
.course-detail .detail-chips{display:flex;flex-wrap:wrap;gap:12px 22px;padding-top:10px;color:#54675c;font-size:13px}
.detail-chips>span{display:inline-flex;align-items:center;gap:7px}
.detail-chips svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}
.course-preview{margin:0}
.course-preview-link{position:relative;display:block;aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:#234c4b;color:#fff;isolation:isolate}
.course-preview-link:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#16342e0a 35%,#153b35e6);z-index:1}
.preview-play{position:absolute;z-index:2;left:50%;top:43%;transform:translate(-50%,-50%);width:64px;height:64px;display:flex;align-items:center;justify-content:center;border:1px solid #ffffffa8;border-radius:50%;background:#fffffff2;color:#234c4b;box-shadow:0 4px 20px #18332e20;transition:background .2s}
.preview-play svg{display:block;width:26px;height:26px;fill:currentColor;transform:translateX(1px)}
.course-preview-link:hover .preview-play{background:#fff}
.course-preview-link:hover img{transform:scale(1.025)}
.preview-caption{position:absolute;left:28px;right:28px;bottom:24px;z-index:2;display:grid;gap:6px}
.preview-caption strong{font-size:20px;line-height:1.4}
.preview-caption>span{font-size:12px;color:#edf4ef;display:flex;justify-content:space-between;gap:10px}
.course-preview figcaption{font-size:11px;line-height:1.7;color:#647167;margin-top:10px}
.course-subnav{position:sticky;top:var(--course-header-height);z-index:19;display:flex;gap:36px;background:#fffffff7;backdrop-filter:blur(12px);border-block:1px solid #dce4dd;margin-bottom:42px;overflow-x:auto;scrollbar-width:thin}
.course-subnav a{position:relative;display:flex;align-items:center;min-height:60px;padding:17px 0;color:#637169;font-size:14px;line-height:1.5;font-weight:600;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-1px}
.course-subnav a[aria-current]{color:#234c4b;border-bottom-color:#2d625e;font-weight:750}
.course-subnav a:hover{color:#234c4b}
.course-subnav a:focus-visible{outline-offset:-5px;border-radius:3px}
.course-detail .detail-content{grid-template-columns:minmax(0,1fr) 340px;gap:68px}
.course-detail .buy-box{top:calc(var(--course-header-height) + 82px);background:#f6f8f5;padding:27px;border-color:#d9e2db}
.course-detail .buy-box .eyebrow{font-size:10px;color:#4f6b5b}
.course-detail .buy-price{font-size:38px;line-height:1.3;letter-spacing:-1px}
.course-detail .buy-box>p{font-size:13px;margin-top:8px}
.course-detail .buy-includes{font-size:13px;line-height:1.8}
.course-detail .demo-hint{font-size:12px;line-height:1.75;color:#5f6c63}
.course-part{scroll-margin-top:calc(var(--course-header-height) - 8px);padding-bottom:45px;margin-bottom:45px;border-bottom:1px solid #e0e7e1}
.course-part:last-child{margin-bottom:0;border-bottom:0;padding-bottom:0}
.course-part>.eyebrow{font-size:10px;letter-spacing:1.3px;color:#577563;margin-bottom:12px}
.course-detail .course-part h2{font-size:29px;line-height:1.3;margin:0 0 22px;letter-spacing:-.75px}
.course-part h2:focus{outline:none}
.course-part h2:focus-visible{outline:2px solid #52716b;outline-offset:6px}
.course-detail .course-part h3{font-size:20px;line-height:1.4;margin:28px 0 12px}
.course-detail .course-part p{font-size:16px;line-height:1.85;color:#58655d}
.course-detail .learning-points{font-size:15px;line-height:1.65;gap:16px 24px;margin:25px 0 38px}
.syllabus-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.course-part .syllabus-heading h3{margin:0}
.syllabus-heading>span{font-size:12px;white-space:nowrap;color:#627367}
.course-detail .curriculum-note{font-size:12px;margin:8px 0 18px;color:#667469}
.course-detail .syllabus{border:1px solid #dbe4dc;border-radius:10px;overflow:hidden}
.course-detail .syllabus details:last-child{border-bottom:0}
.course-detail .syllabus summary{display:flex;align-items:center;gap:16px;padding:22px 20px;font-size:15px;line-height:1.55;background:#fff}
.course-detail .syllabus summary:hover{background:#f7f9f6}
.course-detail .syllabus details[open]>summary{background:#f3f6f2}
.course-detail .module-num{font:600 12px/1 var(--sans);background:#edf2ed;color:#496858;border-radius:5px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.module-name{flex:1}
.module-preview-label{display:block;margin-top:5px;font-size:11px;font-weight:600;color:#4d725e}
.course-detail .syllabus summary small{white-space:nowrap;font-size:12px;color:#5f7165}
.course-detail .syllabus summary:after{font-size:21px;color:#627c6a;margin-left:0;width:14px;flex-shrink:0}
.module-description{padding:0 20px 20px 68px;background:#f3f6f2}
.course-detail .module-description p{padding:0;margin:0;font-size:14px;line-height:1.8}
.module-description .text-link{font-size:13px;margin-top:9px;gap:12px}
.audience-note{padding:23px 25px;background:#f1f5f1;border-left:3px solid #75927d;border-radius:0 7px 7px 0;margin:26px 0}
.audience-note strong{font-size:15px;color:#345341}
.course-detail .audience-note p{font-size:14px;margin:8px 0 0}
.instructor-preview{display:grid;grid-template-columns:88px minmax(0,1fr);gap:25px;align-items:start}
.instructor-symbol{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:#eef3ef;border:1px solid #dce5dd;border-radius:50%}
.instructor-symbol svg{width:35px;height:40px;fill:none;stroke:#6e8978;stroke-width:1.2}
.course-detail .instructor-preview h3{margin:0 0 10px;font-size:21px}
.course-detail .instructor-preview p{font-size:15px;margin:0}
.instructor-preview .text-link{font-size:13px;margin-top:12px}
.course-questions details:first-of-type{border-top:1px solid #dce4dd}
.course-questions summary{font-size:15px;line-height:1.6;padding:22px 0;justify-content:space-between;gap:20px}
.course-questions summary:after{flex-shrink:0}
.course-detail .course-questions details p{font-size:15px;padding:0 24px 24px 0;margin:0}
@media(max-width:1100px){.course-detail .detail-hero{gap:35px}.course-detail .detail-content{grid-template-columns:minmax(0,1fr) 300px;gap:36px}.course-detail .learning-points{grid-template-columns:1fr}.course-detail .buy-box{padding:23px}.preview-caption{left:21px;right:21px;bottom:20px}}
@media(max-width:800px){.course-detail{--course-header-height:76px}.course-detail .detail-hero{grid-template-columns:1fr;gap:26px;padding-top:10px;padding-bottom:30px}.course-detail .detail-content{grid-template-columns:1fr;gap:25px}.course-detail .buy-box{order:0;position:static}.course-subnav{gap:30px;margin-bottom:32px}.course-subnav a{min-height:56px;font-size:14px;padding:15px 0}.course-detail .learning-points{grid-template-columns:1fr 1fr}.course-part{margin-bottom:36px;padding-bottom:36px}.course-detail .course-part h2{font-size:27px}.course-preview-link{aspect-ratio:1.8}}
@media(max-width:480px){.course-detail .detail-hero h1{font-size:34px}.course-detail .detail-chips{gap:12px 19px;font-size:12px}.course-subnav{gap:25px}.course-subnav a{font-size:13px}.course-detail .learning-points{grid-template-columns:1fr;gap:13px}.syllabus-heading{align-items:start;flex-direction:column;gap:6px}.course-detail .syllabus summary{gap:12px;padding:18px 14px;font-size:14px}.course-detail .module-num{width:28px;height:28px;font-size:11px}.module-description{padding:0 18px 20px 54px}.course-detail .syllabus summary small{font-size:11px}.course-preview-link{aspect-ratio:1.6}.preview-play{width:54px;height:54px;top:40%}.preview-caption strong{font-size:18px}.preview-caption>span{font-size:11px}.instructor-preview{grid-template-columns:60px minmax(0,1fr);gap:17px}.instructor-symbol svg{width:27px;height:31px}.course-detail .course-part h2{font-size:25px}}
/* 07. Reading comfort and consistent spacing, without changing the identity. */
.section-heading>div>p,.workshop-intro>p,.approach-copy p{font-size:16px;line-height:1.85;color:#58665d}
.sample-note{font-size:12px;line-height:1.8;color:#657267}
.breadcrumb{font-size:12px;line-height:1.7}
.page-intro p{font-size:16px;line-height:1.85;color:#58665d}
.article>p{font-size:17px;line-height:1.95;color:#526057}
.article h2{font-size:27px;line-height:1.4;margin-top:38px}
.article-meta{font-size:13px;color:#627166}
.filter{min-height:44px}
.searchbox,.sort-select{min-height:48px}
.searchbox input,.sort-select,.notes-input{font-size:16px}
.sort-select{max-width:100%}
.footer p,.footer-top>div>a:not(.brand){font-size:13px;line-height:1.85}
.footer-top>div>a:not(.brand){min-height:32px;display:flex;align-items:center}
.footer-bottom,.footer-bottom button{font-size:11px;line-height:1.8}
.benefit strong{font-size:14px}.benefit small{font-size:12px;color:#637368}
.event-row p{font-size:12px;color:#5d6e61}
.event-row .eyebrow{font-size:10px;color:#526e60}
.button,.text-link{touch-action:manipulation}
@media(max-width:800px){.section{padding-block:62px}.section-heading{gap:20px}.section-heading>div>p{font-size:15px}.catalog-controls{gap:12px}.course-detail .detail-content{padding-bottom:60px}.section-heading>.text-link{min-height:44px}}
@media(max-width:600px){.catalog-controls{flex-direction:column}.catalog-controls .searchbox,.catalog-controls .sort-select{width:100%}.filter-row{display:block}.filters{width:100%;max-width:100%;gap:7px;padding-bottom:4px}.result-count{display:block;font-size:12px;margin-top:13px;color:#5d6d62}.filter{font-size:12px;padding:10px 14px}.section-heading{display:block}.section-heading>.text-link{margin-top:13px}}
@media(max-width:480px){.section{padding-block:52px}.benefit strong{font-size:13px}.benefit small{font-size:12px}.workshop-intro>p,.approach-copy p,.page-intro p{font-size:16px}.article>p{font-size:16px;line-height:1.9}.article h2{font-size:24px}.footer p,.footer-top>div>a:not(.brand){font-size:13px}.event-row p{font-size:12px;line-height:1.7}.event-row .eyebrow{font-size:10px}.mobile-course-bar small{font-size:11px}.mobile-course-bar .button{font-size:13px;min-height:46px}}
