/* One public/learning shell. Legacy and page rules are lower-priority layers. */

@layer foundation, legacy, pages;

@font-face  {
  font-family: Montserrat;
  src: url("../fonts/montserrat-latin-400.e7198b2dcb57.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+0-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face  {
  font-family: Montserrat;
  src: url("../fonts/montserrat-cyrillic-400.a0f7d018d696.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+400-45F,U+490-491,U+4B0-4B1,U+2116;
}

@font-face  {
  font-family: Montserrat;
  src: url("../fonts/montserrat-latin-600.9e606da1cbeb.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  unicode-range: U+0-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face  {
  font-family: Montserrat;
  src: url("../fonts/montserrat-cyrillic-600.1531497cf6c6.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  unicode-range: U+400-45F,U+490-491,U+4B0-4B1,U+2116;
}

@font-face  {
  font-family: Montserrat;
  src: url("../fonts/montserrat-latin-700.1c0792ac34ef.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  unicode-range: U+0-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face  {
  font-family: Montserrat;
  src: url("../fonts/montserrat-cyrillic-700.1775f0468bc7.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  unicode-range: U+400-45F,U+490-491,U+4B0-4B1,U+2116;
}

@font-face {
  font-family: Montserrat;
  src: url("../fonts/montserrat-500.616e78d0efe7.woff2") format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: Montserrat;
  src: url("../fonts/montserrat-800.cde251545c86.woff2") format('woff2');
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}
@font-face {
  font-family: Montserrat;
  src: url("../fonts/montserrat-900.e815a867fb55.woff2") format('woff2');
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

:root {
  --jn-green: #013c35;
  --jn-green-soft: #025a50;
  --jn-orange: #ff6f3f;
  --jn-orange-dark: #e85a2a;
  --jn-cream: #f7f6f3;
  --jn-surface: #fff;
  --jn-text: #111111;
  --jn-muted: #666666;
  --jn-border: #e5e0d8;
  --jn-radius: 1.25rem;
  --jn-radius-sm: .875rem;
  --jn-shadow: 0 18px 55px rgb(1 60 53 / .11);
  --jn-content: 72.5rem;
  --jn-reading: 47.5rem;
  --jn-gutter: 1rem;
  --jn-header-height: 4.5rem;
  --jn-text-small: .75rem;
  --jn-text-body: 1rem;
  --jn-text-lead: clamp(.9375rem,1.6vw,1.125rem);
  --jn-h1: clamp(1.25rem,2.8vw,2.25rem);
  --jn-h2: clamp(1.75rem,3.8vw,2.875rem);
  --jn-h3: clamp(1rem,1.6vw,1.25rem);
  --jn-section: clamp(3.5rem,7vw,5.75rem);
  /* Aliases during prototype migration; new components use jn tokens. */
  --green: var(--jn-green);
  --green-dark: var(--jn-green);
  --orange: var(--jn-orange);
  --orange-hover: var(--jn-orange-dark);
  --cream: var(--jn-cream);
  --bg: var(--jn-cream);
  --white: #fff;
  --black: var(--jn-text);
  --gray: var(--jn-muted);
  --border: var(--jn-border);
}

*,*::before,*::after {
  box-sizing: border-box;
}

html {
  font-size: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--jn-header-height) + 4rem);
  -webkit-text-size-adjust: 100%;
}

body.jn-site {
  margin: 0;
  min-width: 320px;
  background: var(--jn-cream);
  color: var(--jn-text);
  font-family: Montserrat,system-ui,sans-serif;
  font-size: var(--jn-text-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
}

button,input,select,textarea {
  font: inherit;
}

button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color: transparent;
}

@layer foundation {
  a {
    color: inherit;
  }
}

a {
  text-underline-offset: .2em;
}

button {
  cursor: pointer;
}

@layer foundation {
  h1,h2,h3,h4,p {
    margin: 0;
  }
}

h1,h2,h3 {
  font-weight: 700;
  line-height: 1.18;
  text-wrap: balance;
}

h1 {
  font-size: var(--jn-h1);
}

h2 {
  font-size: var(--jn-h2);
}

h3 {
  font-size: var(--jn-h3);
}

p {
  overflow-wrap: break-word;
}

a,button {
  touch-action: manipulation;
}

:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--jn-orange);
  outline-offset: 4px;
}

[hidden] {
  display: none !important;
}

.jn-container {
  width: min(var(--jn-content),calc(100% - var(--jn-gutter)*2));
  margin-inline: auto;
}

.jn-section {
  padding-block: var(--jn-section);
}

.jn-section-heading {
  max-width: var(--jn-reading);
  margin-bottom: 2.5rem;
}

.jn-section-heading p {
  margin-top: 1rem;
  color: var(--jn-muted);
}

.jn-eyebrow {
  display: block;
  margin-bottom: 1rem;
  color: var(--jn-orange-dark);
  font-size: var(--jn-text-small);
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.jn-lead {
  max-width: var(--jn-reading);
  font-size: var(--jn-text-lead);
  line-height: 1.7;
  color: var(--jn-muted);
}

.jn-skip {
  position: fixed;
  left: 1rem;
  top: -8rem;
  z-index: 1100;
  padding: .75rem 1rem;
  background: #fff;
  color: var(--jn-green);
  border-radius: .5rem;
}

.jn-skip:focus {
  top: 1rem;
}

.jn-header {
  position: sticky;
  top: 0;
  z-index: 500;
  width: 100%;
  background: #013c35;
  color: #fff;
  border-bottom: 1px solid rgb(255 255 255 / .12);
}

.jn-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  min-height: var(--jn-header-height);
  padding-block: .5rem;
}

.jn-brand {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: .8rem;
  text-decoration: none;
}

.jn-brand img {
  display: block;
  width: 7rem;
  height: 3.5rem;
  object-fit: contain;
}

.jn-brand span {
  font-size: .6875rem;
  font-weight: 600;
  line-height: 1.5;
  color: rgb(255 255 255 / .72);
}

.jn-header__links,.jn-header__actions {
  display: flex;
  align-items: center;
  gap: clamp(.9rem,1.4vw,1.6rem);
}

.jn-header__links {
  margin-left: auto;
}

.jn-header__actions {
  gap: .75rem;
}

.jn-header__links a,.jn-header__login,.jn-header__logout {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  text-decoration: none;
  color: rgb(255 255 255 / .82);
  font-size: .8125rem;
  font-weight: 600;
  white-space: nowrap;
}

.jn-header__links a:hover,.jn-header__links a[aria-current],.jn-header__login:hover {
  color: var(--jn-orange);
}

.jn-header__links a[aria-current] {
  box-shadow: inset 0 -2px var(--jn-orange);
}

.jn-header__actions form {
  margin: 0;
}

.jn-header__logout {
  background: none;
  border: 0;
  padding: .25rem;
}

.jn-header__actions .jn-button {
  font-size: .8125rem;
  padding: .65rem 1rem;
  min-height: 2.75rem;
}

/* Round menu toggle and sidebar adapted from ActiveBioBoost store_header. */
.jn-menu-toggle {
  display: none;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgb(255 255 255 / .18);
  border-radius: 999px;
  background: rgb(255 255 255 / .08);
  color: #fff;
}

.jn-menu-toggle__bar {
  display: block;
  width: 16px;
  height: 2px;
  margin: 3px auto;
  border-radius: 999px;
  background: currentColor;
  transition: transform .18s ease, opacity .18s ease;
}

.jn-menu-toggle[aria-expanded="true"] .jn-menu-toggle__bar:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.jn-menu-toggle[aria-expanded="true"] .jn-menu-toggle__bar:nth-child(2) { opacity: 0; }
.jn-menu-toggle[aria-expanded="true"] .jn-menu-toggle__bar:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

.jn-subnav {
  background: var(--jn-surface);
  border-bottom: 1px solid var(--jn-border);
}

.jn-subnav__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1.5rem;
  padding-block: .7rem;
}

.jn-subnav__inner>span {
  font-weight: 700;
  font-size: .8125rem;
  color: var(--jn-green);
  margin-right: auto;
}

.jn-subnav a {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  font-size: .8125rem;
  text-decoration: none;
  color: var(--jn-muted);
}

.jn-subnav a:hover {
  color: var(--jn-orange-dark);
}

.jn-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 3rem;
  padding: .8rem 1.4rem;
  border: 1px solid transparent;
  border-radius: .6rem;
  font: 600 .875rem/1.4 Montserrat,system-ui,sans-serif;
  text-align: center;
  text-decoration: none;
  transition: background .2s,transform .2s,box-shadow .2s;
}

.jn-button--primary {
  background: var(--jn-orange);
  color: #fff;
  box-shadow: 0 .6rem 1.4rem rgb(255 111 63 / .18);
}

.jn-button--primary:hover {
  background: var(--jn-orange-dark);
  transform: translateY(-2px);
}

.jn-button--secondary {
  background: #fff;
  color: var(--jn-green);
  border-color: var(--jn-border);
}

.jn-button--secondary:hover {
  border-color: var(--jn-orange);
}

.jn-card-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1.25rem;
}

.jn-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  min-width: 0;
  padding: clamp(1.25rem,2vw,2rem);
  background: var(--jn-surface);
  border: 1px solid var(--jn-border);
  border-radius: var(--jn-radius);
  box-shadow: var(--jn-shadow);
  transition: transform .2s,box-shadow .2s;
}

.jn-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 1.5rem 3rem rgb(1 60 53 / .12);
}

.jn-card h2 {
  font-size: var(--jn-h3);
}

.jn-card h2 a {
  text-decoration: none;
}

.jn-card p {
  color: var(--jn-muted);
}

.jn-card .jn-button {
  margin-top: auto;
}

.jn-page-intro {
  padding-block: var(--jn-section);
  background: var(--jn-green);
  color: #fff;
}

.jn-page-intro .jn-lead {
  margin-top: 1.25rem;
  color: rgb(255 255 255 / .78);
}

.jn-footer {
  display: block;
  padding: 2.75rem 0 0;
  background: var(--jn-green);
  color: rgb(255 255 255 / .75);
  border-top: 1px solid rgb(255 255 255 / .1);
  font-size: .8125rem;
  line-height: 1.5;
}

.jn-footer__grid {
  display: grid;
  grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr);
  gap: 2rem 2.5rem;
  padding-bottom: 2.25rem;
}

.jn-footer__brand {
  display: block;
  width: fit-content;
}

.jn-footer__brand img {
  display: block;
  width: 7rem;
  height: auto;
}

.jn-footer__about p {
  max-width: 19rem;
  margin-top: .35rem;
}

.jn-footer :is(nav,.jn-footer__contacts) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .55rem;
}

.jn-footer h2 {
  margin-bottom: .2rem;
  color: #fff;
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.jn-footer a {
  max-width: 100%;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.jn-footer a:hover {
  color: var(--jn-orange);
}

.jn-footer__pair {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1.1rem;
}

.jn-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem 2rem;
  padding-block: 1.1rem 1.4rem;
  border-top: 1px solid rgb(255 255 255 / .15);
  font-size: .75rem;
}

.jn-footer__bottom p {
  color: rgb(255 255 255 / .6);
}

.jn-footer .jn-footer__legal {
  flex-direction: row;
  flex-wrap: wrap;
  gap: .4rem 1.25rem;
}

.jn-footer__legal .jn-cookie-settings-link {
  font-size: .75rem;
  text-decoration: none;
}

.jn-footer__legal .jn-cookie-settings-link:hover {
  color: var(--jn-orange);
}

@media (max-width:68rem) {
  .jn-footer__grid {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);
    column-gap: 1.5rem;
  }

  .jn-footer__about {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem 1.5rem;
  }

  .jn-footer__about p {
    max-width: 30rem;
    margin: 0;
  }
}

@media (max-width:40rem) {
  .jn-footer {
    padding-top: 2.25rem;
  }

  .jn-footer__grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 1.75rem 1.25rem;
  }

  .jn-footer__contacts {
    grid-column: 1 / -1;
  }
}

/* Full-width backgrounds; only content containers have a maximum width. */

.jn-legacy {
  font: inherit;
  color: inherit;
  background: var(--jn-cream);
  min-width: 0;
}

.jn-legacy :is(.hero,.section-bg,.section-green,.section-orange,.section-dark) {
  width: 100%;
  max-width: none;
  padding: var(--jn-section) var(--jn-gutter);
}

.jn-legacy :is(.hero-inner,.section-bg-inner,.section-green-inner,.section-orange-inner,.section-dark-inner) {
  width: 100%;
  max-width: var(--jn-content);
  margin-inline: auto;
}

.jn-legacy .section {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--jn-section) max(var(--jn-gutter),calc((100% - var(--jn-content))/2));
}

.jn-legacy :is(.hero h1,.course-hero h1) {
  font-size: var(--jn-h1);
  max-width: 740px;
}

.jn-legacy :is(.section h2.title,.section-bg h2.title,.section-green h2.title) {
  font-size: var(--jn-h2);
}

.jn-legacy :is(.hero-sub,.section p.desc) {
  font-size: var(--jn-text-lead);
  max-width: var(--jn-reading);
}

.jn-legacy :is(.course-card,.pain-card,.format-card,.track-card,.review-card,.blog-card,.pricing-card) {
  border-radius: var(--jn-radius);
  box-shadow: var(--jn-shadow);
}

.jn-legacy :is(.btn-hero-primary,.btn-hero-secondary,.btn-enroll,.faq-cta-btn) {
  font-size: .875rem;
  min-height: 3rem;
  border-radius: .6rem;
}

.jn-legacy :is(.module-item,.pain-card p,.format-card p,.track-desc,.whom-text,.faq-answer,.faq-q,.result-item p) {
  font-size: 1rem;
  line-height: 1.7;
}

.jn-site :is(.auth-shell,.student-shell) {
  width: min(var(--jn-content),calc(100% - var(--jn-gutter)*2));
  margin-inline: auto;
}

.jn-site .auth-shell {
  max-width: 30rem;
  min-height: 65vh;
  padding-block: 3rem;
}

.jn-site .auth-card {
  width: 100%;
}

.jn-site .auth-page {
  background: var(--jn-cream);
}

.jn-site :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) {
  font-size: 1rem;
}

.jn-site .student-shell {
  padding-block: 2.5rem;
}

.jn-site .jn-enrollment-page {
  width: min(40rem,calc(100% - var(--jn-gutter)*2));
  margin: 3rem auto;
  padding: 2rem;
  background: #fff;
  border-radius: var(--jn-radius);
  box-shadow: var(--jn-shadow);
}

@media (min-width:120rem) {
  .jn-header__inner {
    min-height: 72px;
  }
}

@media (max-width:68rem) {
  .jn-header__inner {
    flex-wrap: wrap;
    gap: 0 .75rem;
    min-height: 4.5rem;
    padding-block: .5rem;
  }

  .jn-brand span {
    display: none;
  }

  .jn-header__actions {
    margin-left: auto;
    gap: 7px;
  }

  /* With JS the links live in the sidebar; without it they wrap under the logo. */
  .jn-header--enhanced .jn-header__links,
  .jn-header__actions .jn-header__logout-form {
    display: none;
  }

  .jn-header__links {
    order: 3;
    width: 100%;
    margin: 0;
    flex-wrap: wrap;
    gap: .25rem 1.25rem;
    padding-block: .5rem;
  }

  .jn-header__actions :is(.store-nav__cart,.store-account-btn) {
    min-width: 42px;
    min-height: 42px;
    padding: 0 11px;
    justify-content: center;
  }

  .jn-header__actions .store-nav__label {
    display: none;
  }

  .jn-header__actions .store-nav__count {
    position: absolute;
    top: -4px;
    right: -4px;
    margin-left: 0;
  }

  .jn-menu-toggle:not([hidden]) {
    display: block;
  }

  .jn-card-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width:40rem) {
  .jn-card-grid {
    grid-template-columns: 1fr;
  }

  .jn-subnav__inner {
    gap: .25rem 1rem;
  }

  .jn-subnav__inner>span {
    width: 100%;
  }

  .jn-subnav a {
    font-size: .8125rem;
  }

  .jn-site .jn-enrollment-page {
    padding: 1.25rem;
  }


  .jn-legacy .hero-stats {
    max-width: 100%;
  }
}

[data-count-up] dt { font-variant-numeric: tabular-nums; }

/* Decorative molecules (home hero, claims hero): bonds draw in, atoms pop and pulse.
   Pages position the <svg>; add data-pause-offscreen to the section so the pulse
   stops repainting once it scrolls away (site/js/motion.js). */
@keyframes jn-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes jn-atom { 0%, 70%, 100% { opacity: .35; scale: 1; } 35% { opacity: 1; scale: 1.6; } }
@keyframes jn-pop { from { opacity: 0; scale: 0; } to { opacity: .35; scale: 1; } }
.jn-molecules { overflow: visible; pointer-events: none; }
.jn-molecule path { fill: none; stroke: rgb(255 255 255 / .28); stroke-width: 1.5; stroke-linejoin: round; stroke-dasharray: 1; animation: jn-draw 2.2s cubic-bezier(.6, 0, .2, 1) .6s both; }
.jn-atom { fill: var(--jn-orange); opacity: .35; transform-box: fill-box; transform-origin: center; animation: jn-pop .4s ease calc(1.8s + var(--i) * .08s) both, jn-atom 4.8s ease-in-out calc(3s + var(--i) * .4s) infinite; }
.jn-molecule--late path { animation-delay: 1.1s; }
.jn-molecule--late .jn-atom { animation-delay: calc(2.3s + var(--i) * .08s), calc(3.6s + var(--i) * .4s); }
.is-offscreen .jn-atom { animation-play-state: paused; }

/* Numbered steps joined by a line (consultations, claims). Set --n on the list and
   --i (0-based) on each item. Where scroll timelines exist the line fills as the list
   scrolls into view and each circle lights up when the line reaches it. */
.jn-steps { --n: 3; position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.jn-steps::before { content: ""; position: absolute; top: 1.4rem; left: 1.4rem; right: calc((100% - (var(--n) - 1) * 1.25rem) / var(--n) - 1.4rem); height: 2px; background: linear-gradient(90deg, var(--jn-orange), rgb(255 111 63 / .15)); }
.jn-steps li { position: relative; display: grid; align-content: start; gap: .6rem; }
/* Hover only on icon circles: the circle turns orange, grows and tilts its icon. */
.jn-steps__num { transition: background-color .25s ease, transform .3s ease; }
.jn-steps__num svg { transition: rotate .4s ease; }
@media (hover: hover) {
  .jn-steps__num--icon:hover { background: var(--jn-orange); transform: scale(1.12); } /* transform, not scale: the scroll lighting animation owns scale */
  .jn-steps__num--icon:hover svg { rotate: -12deg; }
}
.jn-steps__num { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; margin-bottom: .5rem; border-radius: 50%; background: var(--jn-green); color: #fff; font-size: .875rem; font-weight: 700; box-shadow: 0 0 0 6px var(--jn-steps-ring, #fff); }
.jn-steps__num svg { width: 1.3rem; height: 1.3rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.jn-steps__label { font-size: .6875rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--jn-orange-dark); }
.jn-steps h3 { color: var(--jn-green); }
.jn-steps p { font-size: .9375rem; line-height: 1.65; color: #444; }
/* On green slides the ring matches the slide and text turns light. */
.jn-slide--green .jn-steps { --jn-steps-ring: var(--jn-green); }
.jn-slide--green .jn-steps__num { background: #fff; color: var(--jn-green); }
.jn-slide--green .jn-steps h3 { color: #fff; }
.jn-slide--green .jn-steps p { color: rgb(255 255 255 / .72); }
@keyframes jn-steps-draw { from { scale: 0 1; } to { scale: 1 1; } }
@keyframes jn-steps-draw-down { from { scale: 1 0; } to { scale: 1 1; } }
@keyframes jn-steps-light { from { opacity: .3; scale: .8; } to { opacity: 1; scale: 1; } }
@supports (animation-timeline: view()) {
  .jn-steps { --jn-steps-span: 35%; view-timeline: --jn-steps block; }
  .jn-steps::before { transform-origin: left center; animation: jn-steps-draw linear both; animation-timeline: --jn-steps; animation-range: cover 10% cover calc(10% + var(--jn-steps-span)); }
  .jn-steps__num {
    animation: jn-steps-light linear both; animation-timeline: --jn-steps;
    animation-range: cover calc(8% + var(--jn-steps-span) * var(--i) / (var(--n) - 1)) cover calc(11% + var(--jn-steps-span) * var(--i) / (var(--n) - 1));
  }
}
@media (max-width: 40rem) {
  .jn-steps { grid-template-columns: minmax(0, 1fr); --jn-steps-span: 45%; }
  .jn-steps::before { top: 1.4rem; bottom: 1.4rem; left: 1.4rem; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--jn-orange), rgb(255 111 63 / .15)); transform-origin: center top; animation-name: jn-steps-draw-down; }
  .jn-steps li { padding-left: 4rem; }
  .jn-steps__num { position: absolute; left: 0; top: 0; margin: 0; }
}

.jn-lite *,.jn-lite *::before,.jn-lite *::after {
  animation: none !important;
  transition-duration: 0s !important;
}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto;
  }

  *,*::before,*::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}

.jn-catalog-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
}

.jn-catalog-links a {
  color: var(--jn-green);
  font-weight: 600;
  font-size: .875rem;
}











/* Decorative prototype marks must never overlap content on narrow screens. */

@media (max-width:48rem) {
  .jn-legacy .hero-logo-circle {
    display: none;
  }
}

/* ABB presentation rhythm: full-width color, 1160px content, natural overflow. */
.jn-slide {
  padding-block: var(--jn-section);
  background: #fff;
  color: #111;
}
.jn-legacy .jn-slide {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--jn-section) max(16px,calc((100% - 1160px)/2));
}
.jn-slide--green,
.jn-legacy .jn-slide--green {
  --jn-on-surface: #fff;
  --jn-on-muted: rgba(255,255,255,.78);
  --jn-text: #fff;
  --jn-muted: rgba(255,255,255,.72);
  --text: #fff;
  --muted: rgba(255,255,255,.72);
  --black: #fff;
  --gray: rgba(255,255,255,.72);
  --green: #fff;
  background: radial-gradient(ellipse at 95% 0,rgba(255,111,63,.10),transparent 45%),#013c35;
  color: #fff;
}
.jn-slide--white,
.jn-legacy .jn-slide--white {
  --jn-on-surface: #111;
  --jn-on-muted: #666;
  --jn-text: #111;
  --jn-muted: #666;
  --black: #111;
  --gray: #666;
  --green: #013c35;
  background: #fff;
  color: #111;
}
.jn-slide :is(.jn-card,.card,.pain-card,.doubt-card,.format-card,.track-card,.review-card,.blog-card,.pkg-card,.price-card,.pricing-card,.payment-block,#f,.callout) {
  --jn-text:#111;--jn-muted:#666;--black:#111;--gray:#666;--green:#013c35;--text:#111;--muted:#666;
  color:#111;
}
.jn-slide--green :is(.section-head,.jn-section-heading,.section-label) h2,
.jn-legacy .jn-slide--green :is(h2.title,.section-label h2) {color:#fff}
.jn-slide--green :is(.jn-lead,.section-head>p,.jn-section-heading>p){color:rgba(255,255,255,.72)}
.jn-slide--green .jn-eyebrow{color:#ff6f3f}
.jn-slide--white .jn-eyebrow{color:#e85a2a}
.jn-legacy .hero :is(h1,.hero-sub){max-width:740px}
.jn-legacy .hero h1{font-size:clamp(20px,2.8vw,36px);line-height:1.12;margin-bottom:20px}
.jn-legacy .hero-sub{line-height:1.8;margin-bottom:24px}
.jn-legacy .hero-stats{margin-bottom:26px}
.jn-legacy .hero-mobile-logo{display:none}
.jn-legacy :is(.hero-badge,.hero-level){font-size:11px}
.jn-legacy :is(.hero-stat,.stat){gap:5px}
.jn-legacy .stat-val{font-size:26px}
.jn-legacy :is(.hero-inner,.section-bg-inner,.section-green-inner,.reviews-inner,.quiz-inner){max-width:1160px}
.jn-legacy :is(.module-item,.pain-card p,.format-card p,.track-desc,.whom-text,.faq-answer,.faq-q,.result-item p){font-size:15px}
.jn-legacy .pdf-block{display:flex;align-items:center;justify-content:space-between;gap:24px}
.jn-legacy .pdf-block p{max-width:620px}
.jn-legacy .jn-slide .section{padding:0;max-width:1160px;margin-inline:auto}
.jn-legacy .reviews-wrap{overflow:hidden}
.jn-section-heading{margin-bottom:28px}
.jn-section-heading p{font-size:15px;line-height:1.8}
.jn-card{padding:22px;gap:12px;border-radius:20px}
.jn-card h2{font-size:20px;line-height:1.25}
.jn-card p{font-size:13px;line-height:1.6}
.jn-card .jn-eyebrow{margin-bottom:0;font-size:11px}
.jn-card .jn-button{min-height:40px;padding:10px 16px;font-size:13px}
.jn-course-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.jn-course-tabs a{display:inline-flex;padding:9px 18px;border:1px solid #e5e0d8;border-radius:999px;font-size:13px;font-weight:600;text-decoration:none}
.jn-course-tabs a[aria-selected=true]{background:#013c35;border-color:#013c35;color:#fff}
.jn-showcase .jn-card-grid{gap:16px}
.jn-showcase__all{display:inline-block;margin-top:22px;color:#e85a2a;font-size:13px;font-weight:700;text-decoration:none}
.jn-cookie-settings-link{padding:0;border:0;background:none;color:inherit;text-align:left;font:inherit;font-size:13px;text-decoration:underline}
.jn-button{min-height:48px;padding:13px 26px;font-size:14px}
.jn-header__actions .jn-button{min-height:40px;padding:8px 14px;font-size:13px}
.jn-header__inner{min-height:72px}
.jn-subnav__inner{padding-block:4px}
@media(min-width:901px) {
  .jn-legacy>.hero{min-height:calc(100svh - var(--jn-header-height));display:flex;align-items:center}
  .course-reference-landing>.hero{min-height:calc(100svh - var(--jn-header-height) - 50px)}
  .jn-showcase{display:flex;align-items:center}
}
@media(max-width:900px) {
  .jn-legacy .pdf-block{flex-direction:column;align-items:flex-start}
  .jn-slide,.jn-legacy .jn-slide{min-height:0;padding-block:48px}
}
@media(max-width:680px){.jn-card-grid{grid-template-columns:1fr}.jn-legacy .hero h1{font-size:var(--jn-h1)}.jn-course-tabs a{padding:8px 12px}.jn-subnav__inner>span{width:100%}}
/* Keep content surfaces legible within either slide tone. */
.jn-slide--green :is(.out,.plan:not(.feature)){--green:#013c35;--text:#111;--muted:#666;color:#111}
.jn-slide--white :is(.whom-text,.whom-text strong){color:#013c35}
.jn-slide--white .section-green-inner h2{color:#013c35}
.jn-slide--green .out .btn{color:#fff}
.jn-slide--green .lines span{color:#111}
.jn-slide--white .hero-level{color:#666}
.jn-showcase .jn-card > p:not([class]){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.jn-more{margin-top:20px;font-size:14px}
.jn-more>summary{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;font-weight:700;padding:14px 0;border-block:1px solid #e5e0d8;list-style:none}
.jn-slide--green .jn-more>summary{border-color:rgba(255,255,255,.2);color:#fff}
.jn-more>summary::after{content:'+';margin-left:auto;color:#ff6f3f}
.jn-more[open]>summary::after{content:'−'}
.jn-more__body{margin-top:24px}
.jn-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:auto}
.jn-card-actions>a:not(.jn-button){font-size:13px;font-weight:600;text-decoration:none;color:#013c35}
.jn-philosophy-cards{margin-top:24px}
.jn-module{margin-block:0;border-top:1px solid rgba(128,128,128,.25)}
.jn-module>summary{display:flex;align-items:center;gap:12px;padding:16px 0;font-size:15px;font-weight:600;cursor:pointer;list-style:none}
.jn-module>summary::after{content:'+';margin-left:auto;color:#ff6f3f}
.jn-module[open]>summary::after{content:'−'}
.jn-module .module{border:0;padding-block:8px 18px}
@media(min-width:901px) and (max-height:900px){:root{--jn-section:56px}}
@media(min-width:901px) and (max-height:780px){:root{--jn-section:44px}}
.jn-course-tabs{position:static;height:auto;padding:0;border:0;background:none;box-shadow:none}
.jn-site .section-label h2{font-size:12px;line-height:1.5;letter-spacing:.12em;text-transform:uppercase}
.jn-legacy .jn-slide--white.section-green :is(h2.title,p.desc){color:#013c35!important}
.jn-slide--green .consult{background:#025a50;color:#fff}
.jn-slide--green .consult h3{color:#fff}
.jn-slide--green .consult p{color:rgba(255,255,255,.75)}
.jn-legacy{width:100%;margin:0;padding:0}

.jn-button{border-radius:8px}
.jn-lead{line-height:1.8}

/* Academy editorial pages compose the same slides, cards and disclosures. */
.jn-academy h1{font-size:var(--jn-h1);line-height:1.15;max-width:var(--jn-reading);margin-block:1rem 1.25rem}
.jn-academy .jn-lead{max-width:var(--jn-reading)}
.jn-academy h3{font-size:1.125rem;line-height:1.4}
.jn-reading{max-width:var(--jn-reading);line-height:1.85}
.jn-reading p+p{margin-top:1.25rem}
.jn-academy-hero__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:3rem;align-items:center}
.jn-academy-hero__grid--text{grid-template-columns:1fr}
.jn-academy-hero__image{width:100%;height:clamp(18rem,45svh,32rem);object-fit:cover;object-position:center;border-radius:var(--jn-radius)}
.jn-facts{display:flex;gap:.75rem;flex-wrap:wrap;list-style:none;padding:0;margin-top:1.5rem}
.jn-facts li{border:1px solid var(--jn-border);border-radius:.5rem;padding:.5rem .75rem;font-size:.8125rem}
.jn-page-actions{display:flex;gap:1.25rem;align-items:center;flex-wrap:wrap;margin-top:1.75rem}
.jn-page-actions>a:not(.jn-button){font-size:.875rem;font-weight:600}
.jn-subnav a[aria-current="page"]{color:var(--jn-green);font-weight:700}
.jn-card-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.jn-academy .jn-more{margin-top:0}
.jn-academy .jn-more__body{padding-bottom:1.5rem;margin-top:1rem}
.jn-academy .jn-more>summary{line-height:1.6}
.jn-consultation-layout{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.jn-consultation-layout .jn-lead{margin-block:1.25rem}
.jn-consultation-panel{display:block}
.jn-consultation-form{display:grid;gap:1rem;width:100%}
.jn-consultation-field{display:grid;gap:.5rem}
.jn-consultation-field label{font-size:.8125rem;font-weight:600}
.jn-consultation-field :is(input,select,textarea){width:100%;min-width:0;max-width:100%;min-height:2.75rem;border:1px solid var(--jn-border);border-radius:.5rem;background:#fff;color:#111;padding:.75rem;font:inherit;font-size:.9375rem}
.jn-consultation-field textarea{min-height:7rem;resize:vertical}
.jn-consultation-consent{display:flex;gap:.75rem;align-items:flex-start;font-size:.8125rem;line-height:1.6}
.jn-consultation-consent input{margin-top:.25rem;flex-shrink:0}
.jn-consultation-form .errorlist,.jn-form-alert{color:#a52d17;font-size:.8125rem}
.jn-consultation-form .errorlist{list-style:none;margin:0;padding:0}
.jn-consultation-form .jn-form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(min-width:901px){
  .jn-academy>.jn-academy-hero{display:flex;align-items:center;min-height:calc(100svh - var(--jn-header-height))}
}
@media(max-width:900px){.jn-academy-hero__grid,.jn-consultation-layout{grid-template-columns:1fr;gap:2rem}.jn-academy-hero__image{height:18rem;max-width:30rem}}
@media(max-width:680px){.jn-card-grid--two{grid-template-columns:1fr}}

/* Shared blog reading and article-list components. */
.jn-prose{font-size:1rem;line-height:1.9;overflow-wrap:anywhere}
.jn-prose :is(p,ul,ol,blockquote,table,hr){margin-block:1.25rem}
.jn-prose :is(h2,h3,h4){margin-block:2rem 1rem;line-height:1.4}
.jn-prose h2{font-size:1.625rem}.jn-prose h3{font-size:1.25rem}
.jn-prose :is(ul,ol){padding-left:1.5rem}.jn-prose li+li{margin-top:.4rem}
.jn-prose img{max-width:100%;height:auto;display:block;border-radius:.5rem}
.jn-prose blockquote{padding:1rem 1.25rem;border-left:3px solid var(--jn-orange);background:var(--jn-surface)}
.jn-prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.875rem}
.jn-prose :is(td,th){border:1px solid var(--jn-border);padding:.75rem;min-width:6rem}
.jn-pagination{display:flex;justify-content:center;gap:1.5rem;align-items:center;flex-wrap:wrap;margin-top:2.5rem;font-size:.875rem}
.jn-blog-preview{padding:1rem;background:#fff0d8;border-bottom:1px solid var(--jn-orange);font-size:.875rem}

/* Content surfaces own their text tone instead of inheriting the slide color. */
.jn-slide :is(.jn-card,.card,.pain-card,.doubt-card,.format-card,.track-card,.track-item,.review-card,.blog-card,.pkg-card,.price-card,.pricing-card,.payment-block,.result-item,.module,.program-result,.gift-card,.inst-card,.ob-step,.faq-item,.faq-cta,.consult-block,.expert-facts,.results-panel,.ps-card,.who-card,.expert-info) {
  --jn-on-surface:#111;
  --jn-on-muted:#666;
  --green:#013c35;
  --black:#111;
  --gray:#666;
  color:#111;
}
.jn-legacy :is(.btn-hero-primary,.btn-hero-secondary,.btn-primary,.btn-enroll,.btn-enroll-big,.btn-inst,.faq-cta-btn,.hero-badge,.inst-step-num,.inst-bank.mono,.review-avatar) {
  --jn-on-surface:#fff;
  --jn-on-muted:rgba(255,255,255,.8);
  --green:#013c35;
}
.jn-legacy :is(.btn-ghost,.btn-secondary) {color:var(--jn-on-surface);border-color:currentColor}
.jn-legacy .jn-slide--white :is(.whom-text,.whom-text strong) {color:#013c35}
.jn-legacy .jn-slide--white .section-label h2 {color:#013c35}
.jn-legacy .jn-slide--green .expert-facts a {color:#013c35}
.jn-legacy .jn-slide--white :is(.pdf-title,.pdf-desc) {color:var(--jn-on-surface)}
.jn-legacy :is(.section-line,.fact-dot,.hero-dot,.review-quote) {display:none}
.jn-legacy :is(.module-item,.pkg-feature,.pkg-item)::before {content:none}
.jn-legacy .doubt-card::before,
.jn-legacy .section-label {margin-bottom:1.5rem;gap:0}
.jn-legacy .jn-slide :is(.jn-more,.jn-module) {min-width:0}
.jn-legacy .jn-slide .jn-more>summary {color:inherit}
.jn-legacy .jn-module .module-title {display:none}
.jn-legacy .jn-slide .jn-more__body> :first-child {margin-top:0}
.jn-legacy .jn-slide .jn-more__body> :last-child {margin-bottom:0}
.jn-footer__account {padding:0;border:0;background:none;color:inherit;font:inherit;font-size:.8125rem;min-height:1.7rem}
.jn-footer form {margin:0}

/* Course card: catalog and homepage showcase. */
.jn-course-card h3 { font-size: 1.25rem; line-height: 1.25; }
.jn-course-card h3 a { color: var(--jn-green); text-decoration: none; }
.jn-course-card h3 a:hover { color: var(--jn-orange-dark); }
.jn-course-card > p { color: var(--jn-muted); }
.jn-course-card__meta { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.jn-course-card__meta li { padding: .25rem .6rem; border-radius: 999px; background: var(--jn-cream); color: var(--jn-green); font-size: .75rem; font-weight: 600; }
.jn-course-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .6rem; margin-top: auto; padding-top: .25rem; }
.jn-course-card__price strong { font-size: 1.25rem; color: var(--jn-green); }
.jn-course-card__price span { font-size: .8125rem; color: var(--jn-muted); }
.jn-course-card .jn-card-actions { margin-top: 0; }
.jn-course-card:not(:has(.jn-course-card__price)) .jn-card-actions { margin-top: auto; }

/* Shared marketing pieces used by the homepage and structured course landings. */
.jn-checks { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.jn-checks li { position: relative; padding-left: 1.85rem; font-size: .9375rem; line-height: 1.6; }
.jn-checks li::before {
  content: ""; position: absolute; left: 0; top: .2rem; width: 1.15rem; height: 1.15rem; border-radius: 50%;
  background: var(--jn-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat;
}
.jn-faq-item { border-radius: var(--jn-radius-sm); background: #fff; }
.jn-faq-item summary { display: flex; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.35rem; font-size: .9375rem; font-weight: 700; line-height: 1.5; color: var(--jn-green); cursor: pointer; list-style: none; }
.jn-faq-item summary::-webkit-details-marker { display: none; }
.jn-faq-item summary::after { content: "+"; flex-shrink: 0; display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--jn-cream); color: var(--jn-orange-dark); font-size: 1.1rem; line-height: 1; }
.jn-faq-item[open] summary::after { content: "−"; background: var(--jn-orange); color: #fff; }
.jn-faq-item p { padding: 0 1.35rem 1.25rem; font-size: .9375rem; line-height: 1.7; color: #444; }
.jn-faq-item summary::after { transition: rotate .3s ease, background .2s ease, color .2s ease; }
.jn-faq-item[open] summary::after { content: "+"; rotate: 45deg; }
@supports (interpolate-size: allow-keywords) {
  .jn-faq-item { interpolate-size: allow-keywords; }
  .jn-faq-item::details-content { block-size: 0; overflow: hidden; transition: block-size .35s ease, content-visibility .35s allow-discrete; }
  .jn-faq-item[open]::details-content { block-size: auto; }
}

/* Books reuse the academy shell, cards and presentation surfaces. */
.jn-book-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  background: #fff;
  border-radius: var(--jn-radius);
}
.jn-book-card__copy,.jn-book-hero > div {
  display: grid;
  gap: 1rem;
}
.jn-book-card__copy {
  margin-top: 1.25rem;
}
.jn-book-card h3 a {
  color: inherit;
  text-decoration: none;
}
.jn-book-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
@media (max-width:48rem) {
}

.jn-cart-lines { display: grid; gap: 1rem; }
.jn-cart-line { display: grid; grid-template-columns: 7.5rem minmax(0,1fr) auto auto; align-items: center; }
.jn-cart-line img { width: 7.5rem; height: auto; }
.jn-cart-line h2 { font-size: var(--jn-h3); }
.jn-cart-quantity { display: grid; gap: .5rem; }
.jn-cart-quantity label { display: grid; gap: .5rem; }
.jn-cart-quantity input { width: 5rem; padding: .5rem; border: 1px solid var(--jn-border); border-radius: .5rem; font: inherit; }
.jn-cart-summary { display: grid; gap: 1rem; margin-top: 2rem; }
.jn-checkout-form { width: 100%; }
.jn-checkout-form > .jn-consultation-field { width: 100%; }
.jn-checkout-form input[type=checkbox] { width: 1.25rem; min-height: 1.25rem; }
.jn-account-number { overflow-wrap: anywhere; }
.jn-book-card__copy { width: 100%; }
@media (max-width:68rem) { .jn-cart-line { grid-template-columns: 6rem minmax(0,1fr); } }
@media (max-width:30rem) { .jn-cart-line { grid-template-columns: 1fr; } }

@media (min-width:68.001rem) and (max-width:76rem) {
  .jn-header__links,.jn-header__actions { gap: .65rem; }
}

/* Adapted ABB cart drawer: same dimensions/components, academy tokens. */
.cart-drawer__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.375rem 1.375rem 1.125rem;
  background: var(--jn-green);
  color: var(--jn-surface);
}

.cart-drawer__head .eyebrow {
  margin-bottom: 0.4375rem;
}

.cart-drawer__head h2 {
  margin: 0;
  font-size: 1.375rem;
  letter-spacing: -0.04em;
}

.cart-drawer__close {
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 62.438rem;
  background: rgba(255, 255, 255, 0.16);
  color: var(--jn-surface);
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
}

.cart-drawer__items {
  display: grid;
  align-content: start;
  gap: 0.75rem;
  overflow-y: auto;
  padding: 1rem;
  background: var(--jn-cream);
}

.cart-drawer__item {
  display: grid;
  grid-template-columns: 5.25rem minmax(0, 1fr) 5.75rem;
  align-items: stretch;
  gap: 0.75rem;
  padding: 0.75rem;
  border: 0.0625rem solid var(--jn-border);
  border-radius: 1rem;
  background: var(--jn-surface);
}

.cart-drawer__media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 5.25rem;
  border-radius: 0.75rem;
  background: var(--jn-cream);
  overflow: hidden;
}

.cart-drawer__media img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.cart-drawer__media span {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--jn-green);
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.cart-drawer__item--event .cart-drawer__media img {
  height: 100%;
  object-fit: cover;
}

.cart-drawer__media .cart-drawer__event-icon svg,
.jn-summary__cover svg {
  width: 1.75rem;
  height: 1.75rem;
  fill: none;
  stroke: var(--jn-orange);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.jn-summary__cover svg {
  width: 1.25rem;
  height: 1.25rem;
}

.cart-drawer__item .cart-drawer__kind {
  display: block;
  margin-bottom: 0.2rem;
  color: var(--jn-orange-dark);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cart-drawer__item h3 {
  margin: 0 0 0.25rem;
  color: var(--jn-text);
  font-size: 1.0625rem;
  line-height: 1.35;
}

.cart-drawer__item p,
.cart-drawer__item small {
  display: block;
  margin: 0;
  color: var(--jn-muted);
  font-size: 0.875rem;
  line-height: 1.45;
}

.cart-drawer__item strong {
  justify-self: end;
  color: var(--jn-orange);
  font-size: 1.0625rem;
  text-align: right;
  white-space: nowrap;
}

.cart-drawer__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.drawer-stepper {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.drawer-stepper__form {
  display: none;
}

.drawer-stepper__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.875rem;
  height: 1.875rem;
  border: 0.09375rem solid var(--jn-border);
  border-radius: 50%;
  background: var(--jn-surface);
  color: var(--jn-text);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
  flex-shrink: 0;
}

.drawer-stepper__btn:hover {
  border-color: var(--jn-orange);
  color: var(--jn-orange);
}

.drawer-stepper__val {
  min-width: 1.5rem;
  text-align: center;
  font-size: 0.9375rem;
  font-weight: 700;
}

.cart-drawer__remove {
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  padding: 0.3125rem 0.75rem;
  border: 0.09375rem solid #b42318;
  border-radius: 62.438rem;
  background: var(--jn-surface);
  color: #b42318;
  font: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
  white-space: nowrap;
}

.cart-drawer__remove:hover {
  background: #b42318;
  color: var(--jn-surface);
}

.cart-drawer__footer {
  display: grid;
  gap: 0.625rem;
  padding: 1.125rem;
  border-top: 0.0625rem solid var(--jn-border);
  background: var(--jn-surface);
}

.cart-drawer__footer p {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  color: var(--jn-muted);
  font-size: 0.8125rem;
}

.cart-drawer__footer strong {
  color: var(--jn-text);
}

.cart-drawer__total {
  padding-top: 0.6875rem;
  border-top: 0.0625rem solid var(--jn-border);
  font-size: 1.125rem;
  font-weight: 900;
}

.cart-drawer__full {
  justify-self: center;
  color: var(--jn-green);
  font-size: 0.75rem;
  font-weight: 800;
  text-decoration: none;
}

.cart-drawer__full:hover {
  color: var(--jn-orange);
}

.cart-drawer__empty {
  align-self: start;
  margin: 1rem;
  padding: 1.5rem;
  border: 0.0625rem solid var(--jn-border);
  border-radius: 1.125rem;
  background: var(--jn-cream);
}

.cart-drawer__empty h3 {
  margin: 0 0 0.5rem;
  font-size: 1.375rem;
}

.cart-drawer__empty p {
  margin: 0 0 1.125rem;
  color: var(--jn-muted);
  font-size: 0.875rem;
  line-height: 1.7;
}


.cart-drawer { position:fixed; inset:0 0 0 auto; margin:0; padding:0; border:0; width:min(27.5rem,100%); max-width:100%; height:100dvh; max-height:100dvh; color:var(--jn-text); background:var(--jn-surface); box-shadow:-1.5rem 0 4.375rem rgb(0 0 0/.22); }
.cart-drawer::backdrop { background:rgb(0 0 0/.5); }
.cart-drawer__panel { display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:100%; }
.cart-drawer__head .jn-eyebrow { margin-bottom:.4375rem; }
.cart-drawer__item a { color:inherit; text-decoration:none; }
.cart-drawer__item p { overflow-wrap:anywhere; }
.cart-drawer__media { min-height:7rem; }
.drawer-stepper__val { width:2.7rem; max-width:4rem; padding:.35rem; border:1px solid var(--jn-border); border-radius:.5rem; font:inherit; }
.jn-cart-update { border:0; padding:.4rem; color:var(--jn-green); background:transparent; font:inherit; font-size:.75rem; }
.jn-cart-feedback { position:fixed; inset:auto 1rem 1rem auto; z-index:100; max-width:min(25rem,calc(100% - 2rem)); padding:.85rem 1rem; border-radius:.75rem; background:var(--jn-green); color:#fff; box-shadow:var(--jn-shadow); }
.jn-cart-feedback:empty { display:none; }
.jn-cart-layout,.jn-checkout-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(18rem,1fr); gap:2rem; align-items:start; }
.jn-cart-summary { margin-top:0; position:sticky; top:calc(var(--jn-header-height) + 1rem); }
.jn-cart-item { grid-template-columns:5.25rem minmax(0,1fr) auto; }
.jn-link-button { border:0; background:transparent; padding:.5rem 0; color:var(--jn-green); text-decoration:underline; font:inherit; }
.jn-book-card__buttons { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.jn-book-card__buttons a { font-size:.8125rem; }
.jn-checkout-form { display:grid; gap:1.5rem; min-width:0; }
.jn-checkout-form fieldset { margin:0; width:100%; }
.jn-checkout-form legend { font-size:1.125rem; font-weight:700; padding-inline:.5rem; }
.jn-checkout-fields { display:grid; width:100%; gap:1rem; }
.jn-checkout-summary { position:sticky; top:calc(var(--jn-header-height) + 1rem); }
.jn-checkout-book { display:flex; align-items:flex-start; gap:.75rem; width:100%; padding-bottom:1rem; border-bottom:1px solid var(--jn-border); }
.jn-checkout-book img { width:4.5rem; height:5.25rem; object-fit:contain; flex-shrink:0; }
.jn-choice { display:flex; align-items:flex-start; gap:.75rem; font-size:.875rem; line-height:1.6; }
.jn-checkout-form input:is([type=checkbox],[type=radio]) { width:1.15rem; height:1.15rem; min-height:0; flex-shrink:0; margin-top:.2rem; }
.jn-payment-methods label { display:flex; align-items:center; gap:.75rem; padding:.5rem 0; }
.jn-payment-methods input { accent-color:var(--jn-green); }
.jn-help { color:var(--jn-muted); font-size:.8125rem; }
.jn-delivery-choice { position:relative; }
.jn-delivery-options { max-height:16rem; overflow-y:auto; border:1px solid var(--jn-border); border-radius:.5rem; background:var(--jn-surface); }
.jn-delivery-options button { display:block; width:100%; border:0; padding:.75rem; text-align:left; font:inherit; font-size:.875rem; background:var(--jn-surface); color:var(--jn-text); }
.jn-delivery-options button:is(:hover,:focus-visible) { background:var(--jn-cream); }
.jn-order-history { display:grid; gap:1.25rem; max-width:var(--jn-reading); }
.jn-order-history__head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; width:100%; }
.jn-order-history__head span { font-size:.8125rem; color:var(--jn-muted); }
@media (max-width:54rem) { .jn-cart-layout,.jn-checkout-layout { grid-template-columns:1fr; } .jn-cart-summary,.jn-checkout-summary { position:static; } }
@media (max-width:30rem) { .cart-drawer { width:min(100%,24.375rem); } .cart-drawer__item,.jn-cart-item { grid-template-columns:4.125rem minmax(0,1fr); } .cart-drawer__media { width:4.125rem; } .cart-drawer__item strong { grid-column:2; } }

.jn-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Mobile sidebar menu (ActiveBioBoost store-mobile-menu, academy tokens). */
.jn-menu-locked { overflow: hidden; }
.jn-mobile-menu { position: fixed; inset: 0; z-index: 600; opacity: 0; pointer-events: none; transition: opacity .22s ease; }
.jn-mobile-menu--open { opacity: 1; pointer-events: auto; }
.jn-mobile-menu__overlay { position: absolute; inset: 0; width: 100%; border: 0; background: rgb(0 0 0 / .52); backdrop-filter: blur(4px); cursor: pointer; }
.jn-mobile-menu__panel {
  position: absolute; top: 0; left: 0; display: flex; flex-direction: column; width: min(340px, 88vw); height: 100%;
  padding: calc(18px + env(safe-area-inset-top, 0px)) 18px calc(24px + env(safe-area-inset-bottom, 0px));
  overflow-y: auto; background: linear-gradient(180deg, rgb(1 60 53 / .98), rgb(6 43 39 / .98));
  box-shadow: 18px 0 44px rgb(0 0 0 / .24); transform: translateX(-100%); transition: transform .22s ease;
}
.jn-mobile-menu--open .jn-mobile-menu__panel { transform: translateX(0); }
.jn-mobile-menu__head { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.jn-mobile-menu__brand img { display: block; width: 84px; height: auto; }
.jn-mobile-menu__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.jn-mobile-menu__close { width: 38px; height: 38px; margin-left: auto; border: 1px solid rgb(255 255 255 / .14); border-radius: 999px; background: rgb(255 255 255 / .08); color: #fff; font-size: 24px; line-height: 1; }
.jn-mobile-menu__links { display: grid; gap: 10px; }
.jn-mobile-menu__links a { display: block; padding: 14px 16px; border: 1px solid rgb(255 255 255 / .1); border-radius: 16px; background: rgb(255 255 255 / .05); color: rgb(255 255 255 / .86); font-size: 14px; font-weight: 700; text-decoration: none; }
.jn-mobile-menu__links a:hover, .jn-mobile-menu__links a[aria-current] { border-color: rgb(255 111 63 / .42); background: rgb(255 111 63 / .12); color: var(--jn-orange); }
.jn-mobile-menu__account { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.jn-mobile-menu__account form { margin: 0; display: grid; }
.jn-mobile-menu__account .jn-button { min-height: 44px; padding: 10px 14px; font-size: 13px; }
.jn-mobile-menu__ghost { display: grid; place-items: center; min-height: 44px; border: 1px solid rgb(255 255 255 / .22); border-radius: 8px; background: transparent; color: #fff; font: 600 13px/1.2 Montserrat, system-ui, sans-serif; text-decoration: none; }
.jn-mobile-menu__contacts { display: grid; gap: 8px; margin-top: 18px; padding-top: 18px; border-top: 1px solid rgb(255 255 255 / .12); }
.jn-mobile-menu__contacts-title { color: var(--jn-orange); font-size: 11px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.jn-mobile-menu__contacts a { display: flex; justify-content: space-between; gap: 14px; padding: 12px 14px; border: 1px solid rgb(255 255 255 / .1); border-radius: 14px; background: rgb(255 255 255 / .05); color: rgb(255 255 255 / .88); font-size: 13px; font-weight: 700; line-height: 1.35; text-decoration: none; overflow-wrap: anywhere; }
.jn-mobile-menu__contacts span { flex: 0 0 auto; color: rgb(255 255 255 / .5); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
@media (min-width: 68.001rem) { .jn-mobile-menu { display: none; } }

/* Shared left drawer (native dialog): slides in like #site-menu, with the cart
   drawer's light panel. JS toggles .jn-drawer--open after showModal(). */
.jn-drawer { position: fixed; inset: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; overflow: hidden; color: var(--jn-text); background: transparent; }
.jn-drawer::backdrop { background: rgb(0 0 0 / .52); backdrop-filter: blur(4px); opacity: 0; transition: opacity .22s ease; }
.jn-drawer.jn-drawer--open::backdrop { opacity: 1; }
.jn-drawer__panel { position: absolute; inset: 0 auto 0 0; z-index: 1; display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(27.5rem, 100%); background: var(--jn-surface); box-shadow: 1.5rem 0 4.375rem rgb(0 0 0 / .22); transform: translateX(-100%); transition: transform .26s cubic-bezier(.2, .8, .2, 1); }
.jn-drawer--open .jn-drawer__panel { transform: none; }
.jn-drawer__panel:focus { outline: none; }
.jn-drawer__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .9rem 1rem; align-items: start; padding: calc(1.25rem + env(safe-area-inset-top, 0px)) 1.25rem 1.15rem; color: #fff; background: linear-gradient(180deg, rgb(1 60 53 / .98), rgb(6 43 39 / .98)); }
.jn-drawer__head > :nth-child(n+3) { grid-column: 1 / -1; }
.jn-drawer__eyebrow { margin: 0 0 .35rem; color: var(--jn-orange); font-size: .6875rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.jn-drawer__head h2 { margin: 0; font-size: 1.25rem; line-height: 1.2; }
.jn-drawer__close { width: 2.375rem; height: 2.375rem; border: 1px solid rgb(255 255 255 / .14); border-radius: 999px; background: rgb(255 255 255 / .08); color: #fff; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.jn-drawer__close:hover { background: rgb(255 255 255 / .16); }
.jn-drawer__body { overflow-y: auto; overscroll-behavior: contain; padding: 1.25rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom, 0px)); }
.jn-drawer__canvas { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; pointer-events: none; }

/* Short formats teaser (events/teaser.html): links to webinars and master
   classes from the home, catalog, blog and account pages. */
.jn-formats { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 1.5rem 3rem; align-items: center; margin-top: clamp(2.5rem, 5vw, 3.5rem); padding: clamp(1.5rem, 3vw, 2rem); border-radius: var(--jn-radius); background: var(--jn-cream); }
.jn-formats__head h3 { margin: .35rem 0 .5rem; color: var(--jn-green); font-size: var(--jn-h3); }
.jn-formats__head p { margin: 0; color: #555; font-size: .9375rem; line-height: 1.6; }
.jn-formats__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .75rem; }
.jn-format { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; border: 1px solid var(--jn-border); border-radius: var(--jn-radius-sm); background: #fff; color: var(--jn-text); text-decoration: none; transition: border-color .2s ease, box-shadow .25s ease; }
.jn-format:hover { border-color: var(--jn-orange); box-shadow: 0 12px 28px rgb(1 60 53 / .08); }
.jn-format__icon { display: grid; flex: none; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--jn-green); color: #fff; transition: background-color .25s ease; }
.jn-format:hover .jn-format__icon { background: var(--jn-orange); }
.jn-format__icon svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.jn-format__body { display: grid; flex: 1; gap: .15rem; min-width: 0; }
.jn-format__body strong { color: var(--jn-green); font-size: 1rem; }
.jn-format__body span { color: var(--jn-muted); font-size: .8125rem; }
.jn-format__arrow { color: var(--jn-orange-dark); font-weight: 700; }
.jn-formats--on-green { background: rgb(255 255 255 / .06); }
.jn-formats--on-green .jn-formats__head h3 { color: #fff; }
.jn-formats--on-green .jn-formats__head p { color: rgb(255 255 255 / .75); }
.jn-formats--on-green .jn-format__body span { color: #666; }
@media (max-width: 52rem) { .jn-formats { grid-template-columns: minmax(0, 1fr); } }
.jn-formats--compact { grid-template-columns: minmax(0, 1fr); margin-top: 1.5rem; padding: 0; background: none; }

/* Personal cabinet shell (learning/cabinet_base.html): a sticky sections card
   beside the page on desktop, a scrollable chip row above it on smaller screens.
   It replaces the old .jn-account-nav strip that echoed the header. */
.jn-cabinet { padding-block: clamp(1.5rem, 4vw, 3rem) clamp(2.5rem, 6vw, 4.5rem); background: radial-gradient(circle at 82% 8%, rgb(255 111 63 / .1), transparent 28%), linear-gradient(135deg, #fff, var(--jn-cream)); }
.jn-cabinet__grid { display: grid; grid-template-columns: 15.5rem minmax(0, 1fr); gap: 2rem; align-items: start; }
.jn-cabinet__main { min-width: 0; }
.jn-cabinet__side { position: sticky; top: calc(var(--jn-header-height) + 1.25rem); }
.jn-cabinet-card { overflow: hidden; border: 1px solid var(--jn-border); border-radius: var(--jn-radius); background: var(--jn-surface); box-shadow: var(--jn-shadow); }
.jn-cabinet-card__me { display: flex; gap: .75rem; align-items: center; padding: 1.25rem 1.125rem; color: #fff; background: radial-gradient(circle at 100% 0, rgb(255 111 63 / .3), transparent 55%), linear-gradient(160deg, var(--jn-green-soft), var(--jn-green)); }
.jn-cabinet-card__me > div { min-width: 0; }
.jn-cabinet-card__avatar { display: grid; flex: none; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 999px; background: rgb(255 255 255 / .12); box-shadow: inset 0 0 0 2px var(--jn-orange); font-size: 1.125rem; font-weight: 800; }
.jn-cabinet-card__eyebrow { margin: 0 0 .15rem; color: var(--jn-orange); font-size: .625rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.jn-cabinet-card__me strong { display: block; overflow: hidden; font-size: .9375rem; text-overflow: ellipsis; white-space: nowrap; }
.jn-cabinet-nav { display: grid; gap: .125rem; padding: .625rem; }
.jn-cabinet-nav a { position: relative; display: flex; gap: .75rem; align-items: center; min-height: 2.75rem; padding: .375rem .625rem; border-radius: var(--jn-radius-sm); color: var(--jn-text); font-size: .875rem; font-weight: 600; text-decoration: none; }
.jn-cabinet-nav__icon { display: grid; flex: none; place-items: center; width: 2rem; height: 2rem; border-radius: 999px; color: var(--jn-green); background: var(--jn-cream); transition: background-color .2s ease, color .2s ease; }
.jn-cabinet-nav svg, .jn-cabinet-card__foot svg { width: 1.125rem; height: 1.125rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.jn-cabinet-nav a:hover .jn-cabinet-nav__icon { color: var(--jn-orange-dark); background: rgb(255 111 63 / .12); }
.jn-cabinet-nav a[aria-current="page"] { color: var(--jn-green); font-weight: 800; background: rgb(1 60 53 / .06); }
.jn-cabinet-nav a[aria-current="page"]::before { content: ""; position: absolute; inset: .625rem auto .625rem -.625rem; width: .1875rem; border-radius: 0 999px 999px 0; background: var(--jn-orange); }
.jn-cabinet-nav a[aria-current="page"] .jn-cabinet-nav__icon { color: #fff; background: var(--jn-green); }
.jn-cabinet-card__foot { display: grid; gap: .125rem; padding: .5rem .625rem .625rem; border-top: 1px solid var(--jn-border); }
.jn-cabinet-card__foot form { margin: 0; }
.jn-cabinet-card__foot :is(a, button) { display: flex; gap: .625rem; align-items: center; width: 100%; min-height: 2.25rem; padding: .25rem .625rem; border: 0; border-radius: var(--jn-radius-sm); color: var(--jn-muted); background: none; font: inherit; font-size: .8125rem; text-decoration: none; cursor: pointer; }
.jn-cabinet-card__foot :is(a, button):hover { color: var(--jn-orange-dark); }

/* Cabinet pages drop their own section padding and 1160px containers. */
.jn-cabinet .jn-store { padding: 0; background: none; overflow: visible; }
.jn-cabinet .jn-store__panel { max-width: none; }
.jn-cabinet .jn-store__panel > .jn-card + .jn-card, .jn-cabinet .jn-store__head + .jn-card { margin-top: 1rem; }
.jn-site .jn-cabinet .student-shell { width: auto; padding: 0; }
.jn-cabinet .jn-milestones-page { max-width: var(--jn-reading); }

@media (max-width: 64rem) {
  .jn-cabinet__grid { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .jn-cabinet__side { position: static; }
  .jn-cabinet-card { overflow: visible; border: 0; border-radius: 0; background: none; box-shadow: none; }
  .jn-cabinet-card__me, .jn-cabinet-card__foot { display: none; }
  .jn-cabinet-nav { display: flex; gap: .5rem; margin-inline: calc(var(--jn-gutter) * -1); padding: .125rem var(--jn-gutter) .375rem; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: var(--jn-gutter); scrollbar-width: none; }
  .jn-cabinet-nav::-webkit-scrollbar { display: none; }
  .jn-cabinet-nav a { flex: none; gap: .5rem; min-height: 2.5rem; padding: .25rem .875rem .25rem .3125rem; border: 1px solid var(--jn-border); border-radius: 999px; background: var(--jn-surface); scroll-snap-align: start; white-space: nowrap; }
  .jn-cabinet-nav__icon { width: 1.875rem; height: 1.875rem; }
  .jn-cabinet-nav a[aria-current="page"] { color: #fff; border-color: var(--jn-green); background: var(--jn-green); }
  .jn-cabinet-nav a[aria-current="page"]::before { content: none; }
  .jn-cabinet-nav a[aria-current="page"] .jn-cabinet-nav__icon { color: var(--jn-green); background: #fff; }
}
