/* JP Education Student Portal: matches the JP Supplements "Violet Construct" look */
body.jpe-portal-page,body.jpe-checkout-page{
  --void:#0A0911;--carbon:#15131F;--raised:#100E18;--surface-hi:#201E2A;--surface-up:#353341;
  --uv:#7A2CFF;--uv-hover:#6A27DE;--lumen:#B496FF;--fog:#9C99AE;--paper:#EEECF5;--ink-3:#8A889B;
  --line:#2B2836;--line-strong:#3E3B4A;--danger:#FF8A9B;
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;--body:"Inter","Helvetica Neue",Arial,sans-serif;--wide:112%;
  --r-sm:12px;--r-md:20px;--r-lg:28px;--pill:999px;
  background:var(--void)!important;color:var(--paper);font-family:var(--body);color-scheme:dark;
}
body.jpe-portal-page a,body.jpe-checkout-page a{color:var(--lumen)}

.jpe-portal{font:400 16px/1.6 var(--body);color:var(--paper);-webkit-font-smoothing:antialiased}
.jpe-portal *,.jpe-portal *::before,.jpe-portal *::after{box-sizing:border-box}
.jpe-portal h1,.jpe-portal h2,.jpe-portal p,.jpe-portal ol,.jpe-portal ul{margin:0;padding:0}
.jpe-portal ol,.jpe-portal ul{list-style:none}
.jpe-portal a{text-decoration:none}
.jpe-portal :focus-visible{outline:2px solid var(--lumen);outline-offset:3px}
.jpe-ic{width:18px;height:18px;flex:none}
.jpe-mark{width:26px;height:26px;flex:none}

.jpe-logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-stretch:var(--wide);font-weight:700;font-size:18px;color:var(--paper)!important}
.jpe-h1{font-family:var(--display);font-stretch:var(--wide);font-weight:700;font-size:clamp(26px,3.4vw,40px);line-height:1.08;letter-spacing:-.02em;color:var(--paper)}
.jpe-portal .jpe-h2{font-family:var(--display);font-stretch:var(--wide);font-weight:700;font-size:19px;line-height:1.2;color:var(--paper);margin-bottom:16px!important}
.jpe-portal .jpe-sub{margin-top:10px!important;color:var(--fog);font-size:16px}
.jpe-muted{color:var(--fog);font-size:15px}
.jpe-portal .jpe-eyebrow{display:flex;align-items:center;gap:12px;font:600 12px/1.2 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--fog);margin-bottom:14px!important}
.jpe-portal .jpe-eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--lumen);flex:none}

.jpe-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:var(--pill);font:600 15px/1 var(--body);border:1px solid transparent;cursor:pointer;transition:background-color .2s,border-color .2s;text-decoration:none!important}
.jpe-btn .jpe-ic{transition:transform .2s}
.jpe-btn:hover .jpe-ic{transform:translateX(3px)}
.jpe-btn-accent{background:var(--uv);color:#fff!important}
.jpe-btn-accent:hover{background:var(--uv-hover)}
.jpe-btn-ghost{border-color:var(--line-strong);color:var(--paper)!important;background:transparent}
.jpe-btn-ghost:hover{border-color:var(--fog);background:var(--carbon)}
.jpe-btn-full{width:100%}
.jpe-link-btn{background:none;border:0;padding:0;color:var(--fog);font:500 14px var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* ---------- Login ---------- */
.jpe-auth{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;background:radial-gradient(60% 50% at 50% 100%,color-mix(in srgb,var(--uv) 30%,transparent),transparent 70%)}
.jpe-auth-card{width:100%;max-width:440px;padding:clamp(28px,5vw,44px);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--carbon);box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
.jpe-auth-card .jpe-logo{margin-bottom:32px}
.jpe-portal .jpe-alert{margin-top:20px!important;padding:12px 14px;border:1px solid color-mix(in srgb,var(--danger) 45%,transparent);border-radius:var(--r-sm);background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--paper);font-size:14.5px}
.jpe-form{display:grid;gap:18px;margin-top:28px}
.jpe-field{display:grid;gap:8px;font-size:14px;font-weight:600;color:var(--paper)}
.jpe-field-row{display:flex;justify-content:space-between;gap:12px}
.jpe-field-row a{font-weight:500}
.jpe-portal input[type=text],.jpe-portal input[type=password],.jpe-portal input[type=email]{width:100%;min-height:50px;padding:0 16px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--raised);color:var(--paper);font:400 16px var(--body);transition:border-color .2s,box-shadow .2s}
.jpe-portal input:focus{outline:none;border-color:var(--lumen);box-shadow:0 0 0 3px color-mix(in srgb,var(--uv) 30%,transparent)}
.jpe-check{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--fog);cursor:pointer}
.jpe-check input{width:18px;height:18px;accent-color:var(--uv)}
.jpe-portal .jpe-foot{margin-top:24px!important;padding-top:20px;border-top:1px solid var(--line);font-size:14.5px;color:var(--fog);text-align:center}
.jpe-portal .jpe-fine{display:flex;align-items:center;gap:8px;margin-top:20px!important;max-width:440px;font-size:13px;color:var(--ink-3)}
.jpe-fine .jpe-ic{width:15px;height:15px}

/* ---------- Dashboard ---------- */
.jpe-dash{max-width:1180px;margin:0 auto;padding:24px 16px 72px}
.jpe-dash-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 10px 10px 18px;border:1px solid color-mix(in srgb,var(--paper) 15%,transparent);border-radius:var(--pill);background:color-mix(in srgb,var(--surface-up) 70%,transparent)}
.jpe-dash-links{display:flex;gap:2px}
.jpe-dash-links a{padding:9px 14px;border-radius:var(--pill);font-size:14px;font-weight:500;color:var(--paper)!important}
.jpe-dash-links a:hover{background:color-mix(in srgb,var(--paper) 8%,transparent)}
.jpe-hello{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:clamp(40px,6vw,72px)}
.jpe-progress{height:8px;margin-top:28px;border-radius:var(--pill);background:var(--surface-hi);overflow:hidden}
.jpe-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--uv),var(--lumen))}
.jpe-dash-grid{display:grid;gap:16px;margin-top:32px}
@media (min-width:960px){.jpe-dash-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start}}
.jpe-panel{padding:clamp(20px,3vw,28px);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--carbon)}
.jpe-panel-feat{border-color:color-mix(in srgb,var(--lumen) 40%,transparent);background:radial-gradient(100% 80% at 100% 0%,color-mix(in srgb,var(--uv) 24%,transparent),transparent 70%),var(--carbon)}
.jpe-panel .jpe-btn{margin-top:18px}
.jpe-side{display:grid;gap:16px}
.jpe-stack{display:grid;gap:10px;margin-top:16px}
.jpe-stack .jpe-btn{margin-top:0}
.jpe-modules{display:grid;gap:8px}
.jpe-module{display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);color:var(--paper)!important;transition:border-color .2s,background-color .2s}
.jpe-module:hover{border-color:var(--line-strong);background:var(--surface-hi)}
.jpe-module>.jpe-ic{margin-left:auto;color:var(--ink-3)}
.jpe-module-n{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--r-sm);border:1px solid var(--line-strong);font:700 14px var(--display);font-stretch:var(--wide);color:var(--fog)}
.jpe-module.is-done .jpe-module-n{border-color:var(--uv);background:var(--uv);color:#fff}
.jpe-module-t{font-weight:600;font-size:16px;line-height:1.35}
.jpe-module-t small{display:block;margin-top:2px;font-weight:400;font-size:14px;color:var(--fog)}
.jpe-portal .jpe-status{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid var(--line-strong);border-radius:var(--pill);font-size:13.5px;font-weight:600;color:var(--fog)}
.jpe-portal .jpe-status-on{border-color:color-mix(in srgb,var(--lumen) 45%,transparent);background:color-mix(in srgb,var(--uv) 16%,transparent);color:var(--lumen)}
.jpe-status .jpe-ic{width:15px;height:15px}
.jpe-panel .jpe-status+.jpe-muted{margin-top:12px}
.jpe-empty{max-width:640px;margin:clamp(48px,8vw,96px) auto;text-align:center}
.jpe-empty .jpe-btn{margin-top:28px}

/* ---------- Module pages ---------- */
.jpe-lesson{max-width:820px;margin:0 auto;padding:16px 0 56px}
.jpe-crumbs{display:flex;justify-content:space-between;gap:12px;margin-bottom:28px;font-size:14px;color:var(--fog)}
.jpe-lesson-body{color:var(--paper);font-size:17px;line-height:1.7}
.jpe-lesson-body h2,.jpe-lesson-body h3{font-family:var(--display);font-stretch:var(--wide);color:var(--paper);margin:1.6em 0 .6em}
.jpe-lesson-body p{margin:0 0 1em}
.jpe-lesson-body ul,.jpe-lesson-body ol{list-style:revert;padding-left:1.4em;margin:0 0 1em}
.jpe-lesson-body iframe,.jpe-lesson-body video,.jpe-lesson-body img{max-width:100%;border-radius:var(--r-md)}
.jpe-lesson-body .wp-block-embed__wrapper iframe,.jpe-lesson-body iframe[src*="youtube"],.jpe-lesson-body iframe[src*="vimeo"]{width:100%;height:auto;aspect-ratio:16/9}
.jpe-lesson-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.jpe-done-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}

/* Theme page titles and content areas on portal pages */
body.jpe-portal-page .entry-title,body.jpe-portal-page .page-title,body.jpe-portal-page h1.wp-block-post-title{color:var(--paper)}
body.jpe-portal-page .entry-content,body.jpe-portal-page .wp-site-blocks{color:var(--paper)}

/* ---------- Checkout (classic [woocommerce_checkout]) ---------- */
.jpe-co-head{max-width:760px;margin:0 0 36px}
.jpe-co-head .jpe-logo{margin-bottom:36px}
.jpe-co-head .jpe-sub a{text-decoration:underline;text-underline-offset:3px}
.jpe-steps{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px!important}
.jpe-steps li{display:flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;border:1px solid var(--line-strong);border-radius:var(--pill);font-size:14px;color:var(--fog)}
.jpe-steps b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:color-mix(in srgb,var(--uv) 22%,transparent);color:var(--lumen);font-size:13px}

body.jpe-checkout-page .woocommerce{font-family:var(--body);color:var(--paper)}
body.jpe-checkout-page .woocommerce h3{font-family:var(--display);font-stretch:var(--wide);font-weight:700;font-size:20px;color:var(--paper);margin:0 0 18px}
body.jpe-checkout-page form.checkout{display:grid;gap:20px}
@media (min-width:960px){
  body.jpe-checkout-page form.checkout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}
  body.jpe-checkout-page form.checkout #customer_details{grid-column:1;grid-row:1 / span 2}
  body.jpe-checkout-page form.checkout #order_review_heading,body.jpe-checkout-page form.checkout #order_review{grid-column:2}
}
body.jpe-checkout-page #customer_details,body.jpe-checkout-page #order_review{padding:clamp(20px,3vw,32px);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--carbon)}
body.jpe-checkout-page #order_review_heading{margin:0!important;align-self:end}
body.jpe-checkout-page #customer_details .col-1,body.jpe-checkout-page #customer_details .col-2{float:none;width:100%;max-width:none;padding:0}
body.jpe-checkout-page .woocommerce form .form-row{padding:0;margin:0 0 16px}
body.jpe-checkout-page .woocommerce form .form-row label{font-size:14px;font-weight:600;color:var(--paper);margin-bottom:8px;line-height:1.4}
body.jpe-checkout-page .woocommerce form .form-row .required{color:var(--lumen);text-decoration:none}
body.jpe-checkout-page .woocommerce form .form-row input.input-text,body.jpe-checkout-page .woocommerce form .form-row select,body.jpe-checkout-page .select2-container .select2-selection--single{min-height:50px;padding:0 16px;border:1px solid var(--line-strong)!important;border-radius:var(--r-sm)!important;background:var(--raised)!important;color:var(--paper)!important;font:400 16px var(--body);box-shadow:none}
body.jpe-checkout-page .select2-container .select2-selection--single{display:flex;align-items:center;height:50px!important}
body.jpe-checkout-page .select2-container .select2-selection--single .select2-selection__rendered{color:var(--paper);padding:0;line-height:48px}
body.jpe-checkout-page .select2-container .select2-selection--single .select2-selection__arrow{height:48px;right:10px}
body.jpe-checkout-page .select2-dropdown{background:var(--carbon);border-color:var(--line-strong);color:var(--paper)}
body.jpe-checkout-page .select2-results__option--highlighted{background:var(--uv)!important}
body.jpe-checkout-page .select2-search__field{background:var(--raised);color:var(--paper);border-color:var(--line-strong)!important}
body.jpe-checkout-page .woocommerce form .form-row input.input-text:focus{outline:none;border-color:var(--lumen)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--uv) 30%,transparent)}
body.jpe-checkout-page .woocommerce form .form-row.woocommerce-invalid input.input-text{border-color:var(--danger)!important}
body.jpe-checkout-page .woocommerce-account-fields{margin-top:8px;padding-top:20px;border-top:1px solid var(--line)}
body.jpe-checkout-page .woocommerce-password-strength{margin-top:8px;padding:8px 12px;border-radius:var(--r-sm);font-size:13px;font-weight:600}
body.jpe-checkout-page .woocommerce-password-hint{display:block;margin-top:6px;font-size:13px;color:var(--fog)}

body.jpe-checkout-page table.shop_table{border:0!important;border-collapse:collapse;margin:0 0 20px;color:var(--paper)}
body.jpe-checkout-page table.shop_table th,body.jpe-checkout-page table.shop_table td{border:0!important;border-bottom:1px solid var(--line)!important;padding:14px 0!important;background:transparent!important;color:var(--paper)}
body.jpe-checkout-page table.shop_table thead{display:none}
body.jpe-checkout-page table.shop_table td.product-total,body.jpe-checkout-page table.shop_table tfoot td{text-align:right}
body.jpe-checkout-page table.shop_table .product-quantity{display:none}
body.jpe-checkout-page table.shop_table tfoot .order-total th,body.jpe-checkout-page table.shop_table tfoot .order-total td{border-bottom:0!important;font-family:var(--display);font-stretch:var(--wide);font-size:22px;font-weight:700}

body.jpe-checkout-page #payment{background:transparent!important;border-radius:0}
body.jpe-checkout-page #payment ul.payment_methods{padding:0!important;border:0!important}
body.jpe-checkout-page #payment ul.payment_methods li{margin:0 0 10px;padding:14px 16px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--raised);color:var(--paper);list-style:none}
body.jpe-checkout-page #payment ul.payment_methods li label{color:var(--paper);font-weight:600}
body.jpe-checkout-page #payment ul.payment_methods li input[type=radio]{accent-color:var(--uv)}
body.jpe-checkout-page #payment div.payment_box{margin:12px 0 0!important;background:var(--surface-hi)!important;color:var(--fog)!important;border-radius:var(--r-sm)}
body.jpe-checkout-page #payment div.payment_box::before{display:none}
body.jpe-checkout-page #payment div.form-row{padding:0!important;margin-top:16px}
body.jpe-checkout-page .woocommerce-privacy-policy-text,body.jpe-checkout-page .woocommerce-terms-and-conditions-wrapper{font-size:13px;color:var(--fog)}
.jpe-secure{display:flex;align-items:flex-start;gap:8px;margin:0 0 14px;font-size:13.5px;color:var(--fog)}
.jpe-secure .jpe-ic{width:16px;height:16px;margin-top:2px;color:var(--lumen)}
body.jpe-checkout-page #place_order{float:none;width:100%;min-height:54px;padding:0 24px;border:0;border-radius:var(--pill);background:var(--uv)!important;color:#fff!important;font:600 16px var(--body);cursor:pointer;transition:background-color .2s}
body.jpe-checkout-page #place_order:hover{background:var(--uv-hover)!important}
body.jpe-checkout-page .woocommerce-error,body.jpe-checkout-page .woocommerce-info,body.jpe-checkout-page .woocommerce-message{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--carbon);color:var(--paper)}
body.jpe-checkout-page .woocommerce-error{border-color:color-mix(in srgb,var(--danger) 50%,transparent)}
body.jpe-checkout-page .woocommerce-error::before,body.jpe-checkout-page .woocommerce-info::before,body.jpe-checkout-page .woocommerce-message::before{color:var(--lumen)}
body.jpe-checkout-page .woocommerce-form-login-toggle .woocommerce-info,body.jpe-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info{font-size:14.5px}
body.jpe-checkout-page form.checkout_coupon,body.jpe-checkout-page form.woocommerce-form-login{border:1px solid var(--line)!important;border-radius:var(--r-md)!important;background:var(--carbon)}
body.jpe-checkout-page .button:not(#place_order){border-radius:var(--pill)!important;background:var(--surface-hi)!important;color:var(--paper)!important;border:1px solid var(--line-strong)!important}

/* Thank-you */
.jpe-ty{max-width:720px;margin:0 0 32px;padding:clamp(24px,4vw,40px);border:1px solid color-mix(in srgb,var(--lumen) 40%,transparent);border-radius:var(--r-lg);background:radial-gradient(100% 80% at 100% 0%,color-mix(in srgb,var(--uv) 26%,transparent),transparent 70%),var(--carbon)}
.jpe-ty .jpe-mark{width:36px;height:36px;margin-bottom:20px}
.jpe-ty .jpe-btn{margin-top:24px}
body.jpe-checkout-page .woocommerce-order-overview{padding:0;margin:0 0 28px;color:var(--fog)}
body.jpe-checkout-page .woocommerce-order-overview li{border-color:var(--line)!important}
body.jpe-checkout-page .woocommerce-order-overview strong{color:var(--paper)}
body.jpe-checkout-page .woocommerce-thankyou-order-received{display:none}

@media (prefers-reduced-motion:reduce){.jpe-portal *,body.jpe-checkout-page *{transition:none!important}}

/* Layout guards against theme styles */
body.jpe-checkout-page .woocommerce{max-width:1120px!important;margin-left:auto!important;margin-right:auto!important;width:100%}
body.jpe-checkout-page form.checkout *,body.jpe-checkout-page form.checkout *::before,body.jpe-checkout-page form.checkout *::after{box-sizing:border-box}
body.jpe-checkout-page #customer_details{width:auto!important;min-width:0;float:none!important}
body.jpe-checkout-page #order_review{width:auto!important;min-width:0;float:none!important}
body.jpe-checkout-page .woocommerce form .form-row-first,body.jpe-checkout-page .woocommerce form .form-row-last{width:calc(50% - 8px)}
body.jpe-checkout-page .woocommerce form .form-row input.input-text{width:100%}
body.jpe-checkout-page .woocommerce-info,body.jpe-checkout-page .woocommerce-error,body.jpe-checkout-page .woocommerce-message,body.jpe-checkout-page .wc-block-components-notice-banner{border:1px solid var(--line-strong)!important;border-radius:var(--r-md)!important;background:var(--carbon)!important;color:var(--paper)!important}
body.jpe-checkout-page .wc-block-components-notice-banner>svg{fill:var(--lumen)!important;background:transparent!important}
body.jpe-checkout-page #payment ul.payment_methods li{font-size:15px}
body.jpe-checkout-page #payment div.payment_box{font-size:14.5px}
body.jpe-portal-page .wp-block-post-title,body.jpe-portal-page h1.entry-title{display:none}
body.jpe-portal-page .wp-block-post-content>*,body.jpe-portal-page .entry-content>*{max-width:1180px!important}
.jpe-lesson .jpe-h1{margin-bottom:24px}

/* ---------- Dashboard: modules with lessons ---------- */
.jpe-mods{display:grid;gap:10px}
.jpe-mod{border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);overflow:hidden;transition:border-color .2s}
.jpe-mod[open]{border-color:var(--line-strong)}
.jpe-mod-head{display:flex;align-items:center;gap:16px;padding:16px 18px;cursor:pointer;list-style:none;color:var(--paper)}
.jpe-mod-head::-webkit-details-marker{display:none}
.jpe-mod-head:hover{background:var(--surface-hi)}
.jpe-mod.is-done .jpe-module-n{border-color:var(--uv);background:var(--uv);color:#fff}
.jpe-mod-count{margin-left:auto;font-size:13px;color:var(--fog);white-space:nowrap}
.jpe-chev{width:10px;height:10px;border-right:2px solid var(--fog);border-bottom:2px solid var(--fog);transform:rotate(45deg) translateY(-3px);transition:transform .25s;flex:none}
.jpe-mod[open] .jpe-chev{transform:rotate(-135deg) translateY(-2px)}
.jpe-mod .jpe-lessons{padding:4px 12px 14px 12px;border-top:1px solid var(--line)}
.jpe-mod[open] .jpe-lessons{animation:jpeOpen .3s ease}
@keyframes jpeOpen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Lesson list (dashboard and lesson sidebar) */
.jpe-lessons{display:grid;gap:2px}
.jpe-lesson-link{display:flex;align-items:center;gap:12px;padding:10px 10px;border-radius:var(--r-sm);color:var(--paper)!important;transition:background-color .2s}
.jpe-lesson-link:hover{background:var(--surface-hi)}
.jpe-lesson-link.is-current{background:color-mix(in srgb,var(--uv) 18%,var(--raised))}
.jpe-tick{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-strong);transition:background-color .3s,border-color .3s}
.jpe-tick .jpe-ic{width:13px;height:13px;color:#fff}
.jpe-lesson-link.is-done .jpe-tick{background:var(--uv);border-color:var(--uv)}
.jpe-lesson-link.is-current .jpe-tick{border-color:var(--lumen)}
.jpe-lesson-t{display:flex;flex-direction:column;font-size:15px;font-weight:500;line-height:1.3}
.jpe-lesson-t small{font-size:12px;font-weight:600;color:var(--fog);letter-spacing:.02em}
.jpe-lesson-link.is-done .jpe-lesson-t{color:var(--fog)}
.jpe-up-next{margin-left:auto;padding:3px 10px;border-radius:var(--pill);background:color-mix(in srgb,var(--uv) 20%,transparent);color:var(--lumen);font-size:12px;font-weight:600;white-space:nowrap}

/* ---------- Lesson page: sidebar + content ---------- */
.jpe-learn{display:grid;gap:28px;max-width:1180px;margin:0 auto}
@media (min-width:980px){.jpe-learn{grid-template-columns:300px minmax(0,1fr);gap:48px;align-items:start}}
.jpe-learn-side{padding:20px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--carbon)}
@media (min-width:980px){.jpe-learn-side{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto}}
.jpe-back{display:inline-block;margin-bottom:18px;font-size:14px}
.jpe-portal .jpe-side-title{font-family:var(--display);font-stretch:var(--wide);font-weight:700;font-size:20px;line-height:1.2;color:var(--paper)}
.jpe-portal .jpe-side-count{margin-top:8px;font-size:13px;color:var(--fog)}
.jpe-progress-sm{height:6px;margin:10px 0 16px}
.jpe-learn-side .jpe-lessons{margin:0 -8px}
.jpe-learn-main{min-width:0;max-width:780px}
.jpe-portal .jpe-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;font-size:14px;font-weight:600;color:var(--lumen)}
.jpe-learn-main>.jpe-h1{margin-bottom:28px}
.jpe-lesson-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}
.jpe-foot-left,.jpe-foot-right{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.jpe-foot-right{margin-left:auto;text-align:right}
.jpe-up{display:flex;flex-direction:column;font-size:14px;color:var(--paper);max-width:300px}
.jpe-up small{font-size:12px;color:var(--fog)}
@media (max-width:640px){.jpe-foot-right{width:100%;justify-content:space-between;text-align:left}.jpe-foot-right .jpe-btn{width:100%}}

/* Lesson content */
.jpe-lesson-body>*:first-child{margin-top:0}
.jpe-lesson-body h2{font-size:22px;margin:2em 0 .6em}
.jpe-lesson-body strong{color:var(--paper);font-weight:650}
.jpe-lesson-body li{margin-bottom:.4em}
.jpe-lesson-body .jpe-table,.jpe-lesson-body figure.wp-block-table{margin:1.4em 0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--carbon)}
.jpe-lesson-body table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.5}
.jpe-lesson-body th{padding:12px 14px;text-align:left;font-weight:600;color:var(--paper);background:var(--surface-hi);border-bottom:1px solid var(--line-strong)}
.jpe-lesson-body td{padding:12px 14px;vertical-align:top;color:var(--fog);border-bottom:1px solid var(--line)}
.jpe-lesson-body tr:last-child td{border-bottom:0}
.jpe-lesson-body td:empty::after{content:"";display:block;min-height:1.2em}
.jpe-lesson-body blockquote{margin:1.4em 0;padding:16px 20px;border-left:3px solid var(--lumen);border-radius:0 var(--r-sm) var(--r-sm) 0;background:color-mix(in srgb,var(--uv) 10%,transparent);color:var(--paper)}
.jpe-lesson-body blockquote p{margin:0}
.jpe-task{margin:2.4em 0 0;padding:22px 24px;border:1px solid color-mix(in srgb,var(--lumen) 40%,transparent);border-radius:var(--r-md);background:radial-gradient(100% 120% at 100% 0%,color-mix(in srgb,var(--uv) 20%,transparent),transparent 70%),var(--carbon)}
.jpe-lesson-body .jpe-task h2{margin:0 0 8px;font-size:18px;color:var(--lumen)}
.jpe-task p:last-child{margin-bottom:0}
.jpe-checklist{list-style:none!important;padding-left:0!important}
.jpe-checklist li{position:relative;padding-left:34px;margin-bottom:10px}
.jpe-checklist li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border:1.5px solid var(--line-strong);border-radius:6px}
.jpe-admin-note{margin-top:18px;padding:14px 18px;border:1px dashed #FF8A9B;border-radius:var(--r-sm);background:color-mix(in srgb,#FF8A9B 8%,transparent);font-size:14px;color:var(--paper)}
.jpe-admin-note ul{list-style:disc;margin:8px 0 0;padding-left:20px}
.jpe-admin-note li{margin-bottom:6px}
.jpe-admin-note a{text-decoration:underline}
