/* Mindixwell: layer on top of the Mindix Webflow stylesheet (css/mindix.css).
   The Webflow runtime is gone, so anything its interactions used to reveal or
   animate is handled here. Custom components use the mx- prefix. */

@font-face { font-family: "Castoro"; src: url("/fonts/castoro-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Castoro"; src: url("/fonts/castoro-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/fonts/inter-var.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }

:root {
  --mx-ink: #0b1e1f;
  --mx-green: #285b5c;
  --mx-green-deep: #1f4a4b;
  --mx-lime: #ceea71;
  --mx-cream: #f3e5d4;
  --mx-cream-2: #faf1ea;
  --mx-muted: #5e5d5b;
  --mx-line: #0b1e1f1f;
  --mx-radius: 16px;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { background-color: var(--mx-cream); color: var(--mx-ink); margin: 0; overflow-x: hidden; }
img { max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--mx-green); outline-offset: 3px; border-radius: 4px; }
.mx-frame :focus-visible, .mx-foot :focus-visible { outline-color: var(--mx-lime); }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .9em; background: #0b1e1f0d; padding: 1px 6px; border-radius: 6px; word-break: break-all; }

.mx-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--mx-lime); color: var(--mx-ink); padding: 10px 16px; border-radius: 100px; font-weight: 600; font-size: 14px; }
.mx-skip:focus { left: 16px; }

/* ------------------------------------------------------------ reveal */
.mx-js [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.mx-js [data-reveal].is-in { opacity: 1; transform: none; }

/* ------------------------------------------------------------ navbar */
.mx-nav { position: relative; z-index: 50; color: #fff; border-bottom: 1px solid #ffffff1a; }
.mx-nav__bar { display: flex; align-items: center; gap: 24px; padding: 18px 30px; max-width: 1400px; margin: 0 auto; }
.mx-nav__brand { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-weight: 700; font-size: 24px; letter-spacing: -.02em; text-decoration: none; flex-shrink: 0; }
.mx-nav__brand img { width: 30px; height: auto; }
.mx-nav__links { display: flex; gap: 6px; margin: 0 auto; }
.mx-nav__link { color: #fff; font-size: 15px; font-weight: 500; padding: 8px 14px; border-radius: 100px; text-decoration: none; transition: background-color .25s; }
.mx-nav__link:hover, .mx-nav__link.is-current { background: #ffffff1a; }
.mx-nav__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.mx-nav__login { color: #fff; font-size: 15px; font-weight: 500; text-decoration: none; padding: 10px 14px; border-radius: 100px; border: 1px solid #ffffff33; transition: background-color .25s; }
.mx-nav__login:hover { background: #ffffff1a; }
.mx-nav__cta { background: var(--mx-lime); color: var(--mx-ink); font-size: 15px; font-weight: 600; padding: 11px 20px; border-radius: 100px; text-decoration: none; transition: transform .2s; }
.mx-nav__cta:hover { transform: translateY(-1px); }
.mx-nav__toggle { display: none; align-items: center; gap: 10px; background: #ffffff14; color: #fff; border: 1px solid #ffffff26; border-radius: 100px; padding: 10px 16px; font: 600 15px/1 Inter, sans-serif; cursor: pointer; }
.mx-nav__bars { display: inline-flex; flex-direction: column; gap: 5px; width: 18px; }
.mx-nav__bars i { display: block; height: 1.5px; background: #fff; transition: transform .25s; }
.mx-nav.is-open .mx-nav__bars i:first-child { transform: translateY(3.25px) rotate(45deg); }
.mx-nav.is-open .mx-nav__bars i:last-child { transform: translateY(-3.25px) rotate(-45deg); }
.mx-nav__panel { display: none; }

@media (max-width: 991px) {
  .mx-nav__links, .mx-nav__login, .mx-nav__cta { display: none; }
  .mx-nav__actions { margin-left: auto; }
  .mx-nav__toggle { display: inline-flex; }
  .mx-nav__bar { padding: 16px 20px; }
  .mx-nav.is-open .mx-nav__panel { display: block; padding: 8px 20px 24px; border-top: 1px solid #ffffff1a; }
  .mx-nav__panel nav { display: flex; flex-direction: column; }
  .mx-nav__panel nav a { color: #fff; text-decoration: none; font-family: Castoro, serif; font-size: 26px; padding: 12px 0; border-bottom: 1px solid #ffffff14; }
  .mx-nav__panelCta { display: block; margin-top: 20px; text-align: center; background: var(--mx-lime); color: var(--mx-ink); font-weight: 600; padding: 15px; border-radius: 100px; text-decoration: none; }
}
@media (max-width: 479px) { .mx-nav__brand { font-size: 21px; } .mx-nav__bar { padding: 14px 16px; } }

/* ------------------------------------------------------------ frames and heroes */
.mx-frame { overflow: hidden; }
.utility-hero-layout { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 20px; max-width: 760px; margin: 0 auto; position: relative; z-index: 2; }
.utility-hero-title { font-size: clamp(38px, 5.4vw, 64px); line-height: 1.1; margin: 0; }
.utility-hero-paragraph { color: #ffffffd9; margin: 0; max-width: 620px; }
.section-link { display: inline-flex; padding: 8px; }
.section-link-icon { width: 26px; }
.home-hero-section { padding-top: 64px; }
.hero-main-title { text-wrap: balance; }
.hero-info-text-wrap { display: flex; flex-direction: column; gap: 14px; }
.hero-info-label { color: #ffffffcc; font-size: 14px; }
.hero-info-text { color: #fff; margin: 0; }
.mx-hero__buttons { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 8px; }
.mx-hero__buttons .mx-textlink { color: #fff; }
.project-link { text-decoration: none; }
.hero-counter-text { color: #fff; font-size: 15px; text-align: center; line-height: 1.3; }

/* ------------------------------------------------------------ buttons */
.button-primary, .button-secondary { display: inline-flex; align-items: center; text-decoration: none; }
.button-texts-wrap { overflow: visible; }
.button-text { font-weight: 600; font-size: 15px; white-space: nowrap; }
.button-texts-wrapper.secondary .button-text { color: #fff; }
.button-icons-wrapper { transition: transform .3s; }
.button-primary:hover .button-icons-wrapper, .button-secondary:hover .button-icons-wrapper { transform: rotate(-45deg); }
.mx-solid { display: flex; width: 100%; box-sizing: border-box; align-items: center; justify-content: center; text-align: center; background: var(--mx-lime); color: var(--mx-ink); font-weight: 600; font-size: 16px; line-height: 1.3; padding: 18px 24px; border-radius: 100px; text-decoration: none; transition: background-color .25s, color .25s; }
.mx-solid:hover { background: var(--mx-green); color: #fff; }
.mx-solid--dark { background: var(--mx-green); color: #fff; }
.mx-solid--dark:hover { background: var(--mx-lime); color: var(--mx-ink); }
.focus-tag { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.focus-tag-icon { width: 12px; height: 12px; }
.mx-textlink { font-weight: 600; font-size: 15px; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; color: var(--mx-green); }
.mx-textlink:hover { text-decoration-thickness: 2px; }
.mx-textlink--dark { color: var(--mx-ink); }
.mx-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--mx-green); text-decoration: underline; cursor: pointer; }

/* ------------------------------------------------------------ about + counters */
.hm-about-section { padding-top: 110px; }
.hm-about-title-wrap { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.hm-about-title { max-width: 900px; text-wrap: balance; }
.about-footer-block.hm-about { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin-top: 64px; }
.hm-about .about-counter-widget { display: grid; grid-template-columns: 1px 1fr; column-gap: 20px; row-gap: 10px; }
.hm-about .about-counter-line { grid-row: 1 / 3; width: 1px; background: #0000001a; }
.hm-about .about-counter-wrapper { flex-direction: row; align-items: flex-start; gap: 8px; }
.hm-about .about-counter-sup { font-size: 15px; line-height: 1.4; padding-top: 6px; }
.hm-about .about-counter-text { grid-column: 2; font-size: 17px; }
.mx-counter { font-size: 76px; line-height: 1; margin: 0; font-weight: 400; letter-spacing: -.02em; }
@media (max-width: 991px) { .about-footer-block.hm-about { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; } }
@media (max-width: 767px) { .mx-counter { font-size: 52px; } .hm-about-section { padding-top: 72px; } .about-footer-block.hm-about { margin-top: 44px; } }
.marquee-item-image-wrap { width: 288px; min-width: 288px; height: 370px; }
.marquee-item-image-wrap.one { height: 240px; }
@media (max-width: 767px) { .marquee-item-image-wrap { width: 170px; min-width: 170px; height: 250px; } .marquee-item-image-wrap.one { height: 180px; } }
.mx-marquee { display: flex; width: max-content; animation: mx-marquee 60s linear infinite; }
.mx-marquee .marquee-item-block { flex-shrink: 0; }
.marquee-block { overflow: hidden; }
@keyframes mx-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ------------------------------------------------------------ programs list */
.service-item { text-decoration: none; color: inherit; }
.service-item-details-block { height: auto !important; overflow: visible !important; }
.service-item-title { margin: 0; }
.mx-kicker { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--mx-muted); margin: 0 0 8px; font-weight: 500; }
.service-link-text { white-space: nowrap; }
.service-item:hover .service-item-image { transform: scale(1.04); }
.service-item-image { transition: transform .6s ease; }
.service-title { font-family: Inter, sans-serif; font-size: 14px; line-height: 1.4; letter-spacing: .04em; margin: 0; }

/* ------------------------------------------------------------ how it works */
.work-widget { cursor: default; }
.mx-step { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; margin-right: 14px; border-radius: 50%; background: var(--mx-lime); font-family: Inter, sans-serif; font-size: 16px; font-weight: 600; vertical-align: middle; flex-shrink: 0; }
.work-widget-title { display: flex; align-items: center; }
.work-cta-title { color: #fff; }
.work-cta-paragraph { color: #ffffffe6; }

/* ------------------------------------------------------------ tabs */
.why-tab-link { border: 0; cursor: pointer; font-family: Castoro, serif; background-color: #fff; border-radius: 6px; color: var(--mx-ink); }
.why-tab-link.w--current { background-color: var(--mx-lime); }
.w-tab-pane { display: none; }
.w-tab-pane.w--tab-active { display: block; }
.why-tab-image-details-text { color: #fff; }

/* ------------------------------------------------------------ pricing */
.price-amount { margin: 0; font-weight: 600; line-height: 1; }
.mx-price__tag { margin: 12px 0 0; font-size: 15px; color: var(--mx-muted); }
.mx-price__note { text-align: center; font-size: 14px; color: var(--mx-muted); margin: 8px auto 0; max-width: 640px; }
.price-widget { position: relative; display: flex; flex-direction: column; }
.price-features-lists { flex: 1; }


/* ------------------------------------------------------------ lesson excerpt (in place of testimonials) */
.mx-excerpt { align-items: flex-start; }
.mx-excerpt__label { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--mx-green); margin: 0 0 12px; font-weight: 600; }
.mx-excerpt__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 15px; color: var(--mx-muted); }
.ct-review-block { gap: 16px; }
.ct-review-text { margin: 0; }

/* ------------------------------------------------------------ samples (blog cards) */
.blog-widget { text-decoration: none; color: inherit; }
.blog-widget-title { margin: 0; }

/* ------------------------------------------------------------ FAQ */
.mx-faq { padding: 100px 0; }
.mx-faq__layout { display: grid; grid-template-columns: 1fr 1.5fr; gap: 60px; align-items: start; }
.mx-faq__intro { position: sticky; top: 30px; display: flex; flex-direction: column; gap: 16px; }
.mx-faq__intro p { font-size: 16px; color: var(--mx-muted); margin: 0; }
.mx-faq__intro a { color: var(--mx-green); text-decoration: underline; }
.mx-faq__item { background: #fff; border-radius: 12px; margin-bottom: 12px; }
.mx-faq__item summary { list-style: none; cursor: pointer; padding: 22px 60px 22px 24px; font-family: Castoro, serif; font-size: 21px; line-height: 1.3; position: relative; }
.mx-faq__item summary::-webkit-details-marker { display: none; }
.mx-faq__item summary::after { content: ""; position: absolute; right: 22px; top: 50%; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%; background: var(--mx-lime) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1v10M1 6h10' stroke='%230b1e1f' stroke-width='1.5'/%3E%3C/svg%3E") center/10px no-repeat; transition: transform .25s; }
.mx-faq__item[open] summary::after { transform: rotate(45deg); }
.mx-faq__item p { margin: 0; padding: 0 24px 24px; font-size: 16px; line-height: 1.65; color: var(--mx-muted); }
@media (max-width: 991px) { .mx-faq__layout { grid-template-columns: 1fr; gap: 32px; } .mx-faq__intro { position: static; } .mx-faq { padding: 72px 0; } }

/* ------------------------------------------------------------ generic sections */
.mx-section { padding: 90px 0; }
.mx-section--tight { padding: 20px 0 60px; }
@media (max-width: 767px) { .mx-section { padding: 56px 0; } }
.mx-h2 { font-family: Castoro, serif; font-size: clamp(28px, 3.4vw, 40px); line-height: 1.15; font-weight: 400; margin: 0 0 18px; }
.mx-h3 { font-family: Castoro, serif; font-size: 26px; line-height: 1.2; font-weight: 400; margin: 0 0 12px; }
.mx-h3 a { text-decoration: none; }
.mx-lead { font-size: 20px; line-height: 1.6; margin: 0 0 36px; }
.mx-small { font-size: 14px; line-height: 1.6; color: var(--mx-muted); }
.mx-small a { color: var(--mx-green); text-decoration: underline; }
.mx-center { text-align: center; display: flex; justify-content: center; }
.mx-stack { flex-direction: column; align-items: center; gap: 20px; }
.mx-narrow { max-width: 680px; margin: 0 auto; }
.mx-note { background: #fff; border-left: 4px solid var(--mx-lime); border-radius: 8px; padding: 16px 20px; font-size: 15px; line-height: 1.6; margin-top: 32px; }
.mx-note a { color: var(--mx-green); text-decoration: underline; }
.mx-card { background: #fff; border-radius: var(--mx-radius); padding: 28px; }
.mx-card + .mx-card { margin-top: 16px; }
.mx-card--soft { background: var(--mx-cream-2); }
.mx-card--form { padding: 36px; }
.mx-card--wide { margin-top: 48px; }
.mx-card__title { font-family: Castoro, serif; font-size: 22px; line-height: 1.25; margin: 0 0 12px; }
.mx-card__buttons { display: flex; flex-direction: column; gap: 10px; margin: 8px 0 12px; }
.mx-card--wide .mx-card__buttons { flex-direction: row; flex-wrap: wrap; gap: 16px; }
.mx-card p { font-size: 16px; line-height: 1.6; }
@media (max-width: 479px) { .mx-card, .mx-card--form { padding: 22px 18px; } }
.mx-bullets { padding-left: 20px; margin: 0 0 20px; font-size: 16px; line-height: 1.6; }
.mx-bullets li { margin-bottom: 6px; }
.mx-checks { list-style: none; padding: 0; margin: 16px 0 0; font-size: 15px; line-height: 1.5; }
.mx-checks li { position: relative; padding-left: 28px; margin-bottom: 10px; }
.mx-checks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--mx-lime) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.2 2.2 4.8-5' fill='none' stroke='%230b1e1f' stroke-width='1.6'/%3E%3C/svg%3E") center/11px no-repeat; }
.mx-steps { margin: 0; padding-left: 20px; font-size: 15px; line-height: 1.6; }

/* ------------------------------------------------------------ programs page */
.mx-progs { display: grid; gap: 28px; }
.mx-prog { display: grid; grid-template-columns: 380px 1fr; gap: 36px; background: #fff; border-radius: 20px; padding: 20px; align-items: start; }
.mx-prog__img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 12px; display: block; }
.mx-prog__body { padding: 10px 10px 10px 0; }
.mx-prog__body > p { font-size: 17px; line-height: 1.6; margin: 0 0 16px; color: var(--mx-muted); }
.mx-prog__lessons { columns: 2; column-gap: 32px; padding-left: 20px; margin: 0 0 18px; font-size: 15px; line-height: 1.5; }
.mx-prog__lessons li { margin-bottom: 8px; break-inside: avoid; }
.mx-prog__body .mx-prog__plans { font-size: 14px; color: var(--mx-ink); margin-bottom: 12px; }
@media (max-width: 991px) { .mx-prog { grid-template-columns: 1fr; gap: 20px; } .mx-prog__body { padding: 0 6px 6px; } }
@media (max-width: 600px) { .mx-prog__lessons { columns: 1; } }
.mx-compare { margin-top: 80px; }
.mx-compare .mx-center { margin-top: 28px; }
.mx-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 12px; margin: 0 0 24px; }
.mx-table { width: 100%; border-collapse: collapse; background: #fff; font-size: 15px; line-height: 1.5; min-width: 520px; }
.mx-table th, .mx-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--mx-line); vertical-align: top; }
.mx-table thead th, .mx-table tr:first-child th[scope="col"] { background: var(--mx-green); color: #fff; font-weight: 600; }
.mx-table thead th span { font-weight: 400; opacity: .85; }
.mx-table tbody tr:last-child th, .mx-table tbody tr:last-child td { border-bottom: 0; }
.mx-table--kv { min-width: 0; }
.mx-table--kv th { width: 34%; font-weight: 600; background: var(--mx-cream-2); }
.mx-compare .mx-table td { text-align: center; }
.mx-yes { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; background: var(--mx-lime); align-items: center; justify-content: center; font-size: 13px; }
.mx-no { color: #0b1e1f55; }

/* ------------------------------------------------------------ program detail */
.mx-detail { display: grid; grid-template-columns: 1fr 360px; gap: 56px; align-items: start; }
.mx-detail__img { width: 100%; border-radius: 16px; aspect-ratio: 16/9; object-fit: cover; margin-bottom: 28px; display: block; }
.mx-detail__main .policy-lists { margin-bottom: 44px; display: grid; gap: 12px; }
.mx-detail__side { position: sticky; top: 24px; }
.mx-detail__side .mx-solid { padding: 15px 20px; }
.mx-outline { list-style: none; padding: 0; margin: 0; }
.mx-outline__item { display: grid; grid-template-columns: 56px 1fr; gap: 16px; padding: 22px 0; border-top: 1px solid var(--mx-line); }
.mx-outline__item h3 { font-family: Castoro, serif; font-size: 22px; font-weight: 400; margin: 0 0 6px; line-height: 1.25; }
.mx-outline__item p { margin: 0 0 4px; font-size: 16px; line-height: 1.55; color: var(--mx-muted); }
.mx-outline__n { display: inline-flex; width: 44px; height: 30px; align-items: center; justify-content: center; border-radius: 100px; background: var(--mx-lime); font-size: 14px; font-weight: 600; }
.mx-outline__meta { font-size: 13px !important; }
@media (max-width: 991px) { .mx-detail { grid-template-columns: 1fr; gap: 36px; } .mx-detail__side { position: static; } }
.policy-list { display: flex; gap: 12px; align-items: flex-start; }
.policy-list-icon { margin-top: 5px; flex-shrink: 0; }
.policy-list-text { font-size: 17px; line-height: 1.5; }

/* ------------------------------------------------------------ pricing facts */
.mx-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.mx-facts > div { background: #fff; border-radius: 16px; padding: 26px; }
.mx-facts h3 { font-family: Castoro, serif; font-weight: 400; font-size: 22px; margin: 0 0 10px; }
.mx-facts p { font-size: 15px; line-height: 1.6; margin: 0; color: var(--mx-muted); }
.mx-facts a { color: var(--mx-green); text-decoration: underline; }
@media (max-width: 767px) { .mx-facts { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ legal documents */
.mx-doc .policy-layout { max-width: 860px; margin: 0 auto; }
.mx-doc .policy-head-text { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--mx-muted); margin: 0 0 28px; }
.mx-doc h2 { font-size: 28px; line-height: 1.2; margin: 44px 0 14px; }
.mx-doc h3 { font-family: Castoro, serif; font-size: 21px; font-weight: 400; margin: 28px 0 10px; }
.mx-doc p, .mx-doc li { font-size: 16px; line-height: 1.7; color: #3f3e3c; }
.mx-doc p { margin: 0 0 16px; }
.mx-doc ul, .mx-doc ol { padding-left: 22px; margin: 0 0 18px; }
.mx-doc li { margin-bottom: 8px; }
.mx-doc a { color: var(--mx-green); text-decoration: underline; text-underline-offset: 3px; }
.mx-doc strong { color: var(--mx-ink); }
.mx-doc .mx-table td, .mx-doc .mx-table th { font-size: 14.5px; }
.mx-alert { background: #fff; border: 1px solid #a3261a33; border-left: 4px solid #a3261a; border-radius: 10px; padding: 16px 20px; margin: 0 0 24px; }
.mx-alert p { margin: 0 !important; font-size: 16px; }
.mx-alert--error { color: #7d1d14; font-size: 15px; }
.mx-contact { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 36px; }
.mx-contact .mx-card { margin: 0; }
.mx-contact .mx-card p { margin: 0 0 8px; }
@media (max-width: 767px) { .mx-contact { grid-template-columns: 1fr; } }
.policy-title { margin: 0; }
.policy-paragraph { color: #3f3e3c; margin: 0; }
.policy-paragraph a { color: var(--mx-green); text-decoration: underline; }
.policy-layout { display: flex; flex-direction: column; gap: 48px; }
.mx-doc .policy-layout { display: block; }

/* ------------------------------------------------------------ lesson typography */
.mx-reader { max-width: 760px; margin: 0 auto; }
.mx-lesson { background: #fff; border-radius: 20px; padding: 48px 52px; }
.mx-lesson__meta { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--mx-muted); margin: 0 0 12px; }
.mx-lesson__title { font-family: Castoro, serif; font-size: clamp(30px, 4vw, 42px); line-height: 1.12; font-weight: 400; margin: 0 0 14px; }
.mx-lesson__summary { font-family: Castoro, serif; font-style: italic; font-size: 20px; line-height: 1.5; color: var(--mx-green); margin: 0 0 24px; }
.mx-lesson h3 { font-family: Castoro, serif; font-size: 25px; font-weight: 400; line-height: 1.25; margin: 36px 0 12px; }
.mx-lesson p, .mx-lesson li { font-size: 17.5px; line-height: 1.75; color: #232322; }
.mx-lesson p { margin: 0 0 18px; }
.mx-lesson__intro { font-size: 19px !important; }
.mx-lesson__box { background: #f6f9e8; border-radius: 14px; padding: 26px 30px; margin: 36px 0 28px; }
.mx-lesson__box h3 { margin: 0 0 12px; }
.mx-lesson__box ol { margin: 0; padding-left: 22px; }
.mx-lesson__box li { margin-bottom: 10px; }
.mx-lesson__boxLabel { font-size: 12.5px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--mx-green) !important; font-weight: 600; margin: 0 0 6px !important; }
.mx-lesson__reflect { border: 1px dashed var(--mx-green); border-radius: 14px; padding: 22px 28px; margin: 0 0 28px; }
.mx-lesson__reflect ul { margin: 0; padding-left: 20px; }
.mx-lesson__takeaway { background: var(--mx-cream-2); border-radius: 12px; padding: 18px 22px; }
.mx-lesson__reading { font-size: 14.5px !important; color: var(--mx-muted) !important; }
@media (max-width: 600px) { .mx-lesson { padding: 28px 20px; border-radius: 16px; } .mx-lesson p, .mx-lesson li { font-size: 17px; } .mx-lesson__box, .mx-lesson__reflect { padding: 20px; } }

/* ------------------------------------------------------------ forms, checkout */
.mx-checkout { display: grid; grid-template-columns: 1fr 400px; gap: 40px; align-items: start; max-width: 1120px; margin: 0 auto; }
.mx-checkout__side { position: sticky; top: 24px; }
@media (max-width: 991px) { .mx-checkout { grid-template-columns: 1fr; } .mx-checkout__side { position: static; order: -1; } }
.mx-planswitch { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 20px; }
.mx-planswitch button { background: #fff; border: 2px solid transparent; border-radius: 12px; padding: 14px 10px; cursor: pointer; font: 500 15px/1.3 Inter, sans-serif; color: var(--mx-ink); display: flex; flex-direction: column; gap: 4px; align-items: center; }
.mx-planswitch button strong { font-size: 20px; }
.mx-planswitch button.is-active { border-color: var(--mx-green); background: #f6f9e8; }
.mx-field { margin-bottom: 18px; }
.mx-field label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.mx-field input { width: 100%; box-sizing: border-box; font: 400 16px/1.4 Inter, sans-serif; padding: 13px 14px; border: 1px solid #0b1e1f33; border-radius: 12px; background: #fff; color: var(--mx-ink); }
.mx-field input:focus { outline: 2px solid var(--mx-green); outline-offset: 1px; border-color: transparent; }
.mx-field__hint { font-size: 13px; color: var(--mx-muted); margin: 6px 0 0; }
.mx-payel { min-height: 48px; margin-bottom: 20px; }
.mx-consent { display: grid; gap: 12px; margin: 8px 0 20px; }
.mx-check { font-weight: 400; display: grid; grid-template-columns: 22px 1fr; gap: 10px; font-size: 14px; line-height: 1.55; padding: 14px; border-radius: 12px; background: var(--mx-cream-2); border: 1px solid transparent; cursor: pointer; }
.mx-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--mx-green); }
.mx-check a { color: var(--mx-green); text-decoration: underline; }
.mx-check.is-missing { border-color: #a3261a; background: #fff4f2; }
.mx-paybtn { display: flex; width: 100%; align-items: center; justify-content: center; min-height: 58px; border: 0; border-radius: 100px; background: var(--mx-green); color: #fff; font: 600 17px/1 Inter, sans-serif; cursor: pointer; text-decoration: none; transition: background-color .2s; }
.mx-paybtn:hover:not(:disabled) { background: var(--mx-green-deep); }
.mx-paybtn:disabled { opacity: .55; cursor: not-allowed; }
.mx-paybtn--link { display: inline-flex; width: auto; padding: 0 36px; }
.mx-trust { list-style: none; padding: 0; margin: 18px 0; display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: center; font-size: 13px; color: var(--mx-muted); }
.mx-trust li { display: inline-flex; align-items: center; gap: 6px; }
.mx-trust svg { width: 16px; height: 16px; }
.mx-sumrow { display: flex; justify-content: space-between; font-size: 15px; padding: 10px 0; border-bottom: 1px solid var(--mx-line); }
.mx-sumrow.is-total { font-weight: 700; font-size: 18px; border-bottom: 0; }

/* ------------------------------------------------------------ library */
.mx-libhead { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: 18px; }
.mx-libhead .mx-h2 { margin-bottom: 6px; }
.mx-libhead .mx-small { margin: 0; }
.mx-libhead__progress { min-width: 240px; }
.mx-progress { height: 8px; background: #0b1e1f14; border-radius: 100px; overflow: hidden; margin-bottom: 6px; }
.mx-progress span { display: block; height: 100%; width: 0; background: var(--mx-green); border-radius: 100px; transition: width .4s; }
.mx-libtools { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 32px; }
.mx-chip { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 1px solid var(--mx-line); border-radius: 100px; padding: 10px 16px; font: 500 14px/1.2 Inter, sans-serif; color: var(--mx-ink); cursor: pointer; text-decoration: none; }
.mx-chip:hover { border-color: var(--mx-green); }
.mx-chip:disabled { opacity: .4; cursor: default; }
.mx-chip--accent { background: var(--mx-lime); border-color: var(--mx-lime); font-weight: 600; }
.mx-libgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (max-width: 860px) { .mx-libgrid { grid-template-columns: 1fr; } }
.mx-libprog { background: #fff; border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; }
.mx-libprog > img { width: 100%; aspect-ratio: 16/7; object-fit: cover; display: block; }
.mx-libprog__body { padding: 22px 24px 20px; }
.mx-libprog__body h3 { font-family: Castoro, serif; font-weight: 400; font-size: 26px; margin: 0 0 12px; }
.mx-libprog.is-locked > img { filter: grayscale(1); opacity: .5; }
.mx-liblist { list-style: none; padding: 0; margin: 0; }
.mx-liblist a { display: grid; grid-template-columns: 30px 1fr auto; gap: 10px; align-items: center; padding: 11px 0; border-top: 1px solid var(--mx-line); text-decoration: none; font-size: 15.5px; line-height: 1.35; }
.mx-liblist a:hover span:nth-child(2) { text-decoration: underline; }
.mx-liblist__n { width: 26px; height: 26px; border-radius: 50%; background: var(--mx-cream-2); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; }
.mx-liblist a.is-done .mx-liblist__n { background: var(--mx-lime); }
.mx-liblist__m { font-size: 13px; color: var(--mx-muted); }
.mx-readerbar, .mx-readernav { max-width: 760px; margin: 0 auto 18px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.mx-readerbar__right { display: flex; gap: 10px; }
.mx-readernav { margin-top: 22px; }
.mx-print { display: none; }

/* ------------------------------------------------------------ CTA above footer */
.mx-cta .subscribe-contents { max-width: 640px; box-sizing: border-box; padding: 0 20px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 18px; position: relative; z-index: 2; }
.mx-cta .subscribe-title { margin: 0; text-wrap: balance; }
.mx-cta__buttons { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
.mx-cta__buttons .button-primary .button-texts-wrapper { background: #fff; }
.mx-cta__buttons .button-primary .button-icons-wrapper { background: #fff; }
.mx-cta__note { font-size: 14px; margin: 0; color: #0b1e1fb3; }
.mx-cta .circle { display: flex; }
.mx-cta .circle.one { width: 1104px; height: 1104px; }
.mx-cta .circle.two { width: 820px; height: 820px; }
.mx-cta .circle.three { width: 560px; height: 560px; }
@media (max-width: 767px) { .mx-cta .circle { display: none; } }

/* ------------------------------------------------------------ footer */
.mx-footer { display: block; }
.mx-footer--plain .footer-main { padding-top: 72px; margin-top: 60px; }
.mx-foot { color: #fff; padding-bottom: 32px; }
.mx-foot a { color: #fff; text-decoration: none; }
.mx-foot a:hover { color: var(--mx-lime); }
.mx-foot__top { display: grid; grid-template-columns: minmax(260px, 1.1fr) 2.9fr; gap: 56px; padding-bottom: 48px; border-bottom: 1px solid #ffffff1f; }
.mx-foot__logo { display: inline-flex; align-items: center; gap: 10px; font-size: 26px; font-weight: 700; letter-spacing: -.02em; }
.mx-foot__pitch { font-size: 15px; line-height: 1.6; color: #ffffffcc; margin: 16px 0 22px; max-width: 320px; }
.mx-foot__badges { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.mx-foot__badges li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #ffffffd9; }
.mx-foot__badges svg { width: 18px; height: 18px; color: var(--mx-lime); flex-shrink: 0; }
.mx-foot__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.mx-foot__title { font-family: Castoro, serif; font-size: 20px; margin: 0 0 16px; color: #fff; }
.mx-foot__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 11px; }
.mx-foot__col a { font-size: 15px; line-height: 1.35; color: #ffffffd9; }
.mx-foot__seller { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding: 36px 0; border-bottom: 1px solid #ffffff1f; }
.mx-foot__seller p { font-size: 14px; line-height: 1.6; margin: 0; color: #ffffffcc; overflow-wrap: anywhere; }
.mx-foot__label { font-size: 12px !important; letter-spacing: .08em; text-transform: uppercase; color: var(--mx-lime) !important; margin-bottom: 8px !important; font-weight: 600; }
.mx-foot__notice { padding: 28px 0; border-bottom: 1px solid #ffffff1f; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.mx-foot__notice p { font-size: 13px; line-height: 1.65; color: #ffffffb3; margin: 0; }
.mx-foot__notice strong { color: #fff; }
.mx-foot__notice a { text-decoration: underline; }
.mx-foot__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px 32px; flex-wrap: wrap; padding-top: 24px; }
.mx-foot__bottom p { margin: 0; font-size: 13px; color: #ffffffb3; }
.mx-foot__legal { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.mx-foot__legal a, .mx-foot__legal button { font-size: 13px; color: #ffffffd9; background: none; border: 0; padding: 0; cursor: pointer; font-family: inherit; }
.mx-foot__legal button:hover { color: var(--mx-lime); }
@media (max-width: 1199px) {
  .mx-foot__top { grid-template-columns: 1fr; gap: 40px; }
  .mx-foot__pitch { max-width: 520px; }
  .mx-foot__badges { grid-template-columns: repeat(3, auto); justify-content: start; gap: 10px 28px; }
}
@media (max-width: 991px) {
  .mx-foot__cols, .mx-foot__seller { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
  .mx-foot__notice { grid-template-columns: 1fr; gap: 16px; }
  .mx-foot__badges { grid-template-columns: 1fr; }
}
@media (max-width: 479px) {
  .mx-foot__cols { gap: 28px 16px; }
  .mx-foot__seller { grid-template-columns: 1fr; gap: 20px; }
  .mx-foot__bottom { flex-direction: column; align-items: flex-start; }
}

/* ------------------------------------------------------------ cookie banner */
.mx-consentbar { position: fixed; z-index: 999; left: 16px; right: 16px; bottom: 16px; max-width: 760px; margin: 0 auto; background: #fff; color: var(--mx-ink); border-radius: 16px; box-shadow: 0 18px 60px #0b1e1f40; padding: 22px 24px; display: grid; gap: 16px; font-size: 14px; line-height: 1.55; }
.mx-consentbar__title { font-family: Castoro, serif; font-size: 20px; margin: 0 0 6px; }
.mx-consentbar__text { margin: 0; color: var(--mx-muted); }
.mx-consentbar__text a { color: var(--mx-green); text-decoration: underline; }
.mx-consentbar__actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.mx-consentbar__btn { border-radius: 100px; padding: 11px 18px; font: 600 14px/1 Inter, sans-serif; cursor: pointer; border: 1px solid var(--mx-ink); background: #fff; color: var(--mx-ink); }
.mx-consentbar__btn--accept { background: var(--mx-green); border-color: var(--mx-green); color: #fff; }
.mx-consentbar__btn--link { border-color: transparent; text-decoration: underline; padding-left: 6px; padding-right: 6px; }
.mx-consentbar__prefs { border-top: 1px solid var(--mx-line); padding-top: 12px; }
.mx-consentbar__row { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--mx-line); }
.mx-consentbar__rowTitle { font-weight: 600; margin: 0 0 2px; }
.mx-consentbar__rowDesc { margin: 0; color: var(--mx-muted); font-size: 13px; }
.mx-consentbar__toggle { display: flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 13px; }
.mx-consentbar__toggle input { accent-color: var(--mx-green); width: 18px; height: 18px; }
@media (max-width: 600px) { .mx-consentbar { left: 10px; right: 10px; bottom: 10px; padding: 18px; } .mx-consentbar__actions { justify-content: stretch; } .mx-consentbar__btn { flex: 1; } .mx-consentbar__btn--link { flex-basis: 100%; } }

/* ------------------------------------------------------------ print */
@media print {
  body { background: #fff; }
  .mx-frame, .mx-footer, .mx-readerbar, .mx-readernav, .mx-consentbar, .mx-skip, #libraryView, #recoverView, #loadingView { display: none !important; }
  .page-wrapper { padding: 0; }
  .mx-section { padding: 0; }
  .mx-lesson { padding: 0; border-radius: 0; }
  .mx-lesson p, .mx-lesson li { font-size: 12pt; line-height: 1.55; color: #000; }
  .mx-lesson__box, .mx-lesson__reflect, .mx-lesson__takeaway { break-inside: avoid; }
  body.is-printing-all #readerView { display: none !important; }
  body.is-printing-all .mx-print { display: block !important; }
  body.is-printing-all .mx-print .mx-lesson { break-after: page; }
}
