@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url(fonts/fraunces.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/sourcesans3.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Leer Mediteren — direction A: warm, natural and minimal.
   Public routes only; Bootstrap 5 remains the framework. Protected areas use custom.css.
   Local fonts → tokens → typography → components → page composition → responsive. */

/* 1. Design tokens: rem values respect the visitor's browser font settings. */
.public-site {
  --lm-on-accent: #fffdf7;
  --lm-footer-bg: #2c4034;
  --lm-footer-line: #617063;
  --lm-focus: #6b573d;
  --lm-link-line: #89947d;
  --lm-gap: clamp(2rem, 5vw, 5rem);
  --lm-radius-button: 2rem;
  --lm-radius-feature: 4rem;
  --lm-paper: #f6f2e9;
  --lm-surface: #fffdf7;
  --lm-ink: #293e32;
  --lm-muted: #60695b;
  --lm-accent: #344f3e;
  --lm-accent-hover: #243d2e;
  --lm-soft: #e7e9df;
  --lm-line: #cbd0c1;
  --lm-control-line: #7d8978;
  --lm-danger: #a13333;
  --lm-font-body: 'Source Sans 3', 'Segoe UI', sans-serif;
  --lm-font-heading: 'Fraunces', Georgia, serif;
  --lm-text: 1.1875rem;
  --lm-small: .9375rem;
  --lm-h1: clamp(2.6rem, 1.5rem + 3.3vw, 4.25rem);
  --lm-h2: clamp(2rem, 1.4rem + 1.6vw, 2.75rem);
  --lm-h3: 1.25rem;
  --lm-h4: 1.125rem;
  --lm-h2-invite: clamp(2.5rem,5vw,4rem);
  --lm-leading: 1.7;
  --lm-leading-heading: 1.15;
  --lm-space-1: .5rem;
  --lm-space-2: .75rem;
  --lm-space-3: 1rem;
  --lm-space-4: 1.5rem;
  --lm-space-5: 2rem;
  --lm-space-6: 3rem;
  --lm-space-7: 4rem;
  --lm-space-8: 5rem;
  --lm-gutter: clamp(1.25rem, 3.4vw, 3rem);
  --lm-section-space: clamp(4.5rem, 8vw, 8rem);
  --lm-content: 78rem;
  --lm-reading: 62ch;
  --lm-radius: .25rem;
  --lm-radius-media: 2px;
  --lm-border-width: 1px;
  --lm-control-text: 1rem;
  --lm-control-weight: 600;
  --lm-control-leading: 1.4;
  --lm-control-height: 3.25rem;
  --lm-control-padding-y: .9rem;
  --lm-control-padding-x: 1.45rem;
  --lm-panel-padding: clamp(1.5rem, 4vw, 4rem);
  --lm-shadow-menu: 0 .5rem 2rem rgb(41 62 50 / .06);
  --bs-body-font-family: var(--lm-font-body);
  --bs-body-font-size: var(--lm-text);
  --bs-body-color: var(--lm-ink);
  --bs-body-bg: var(--lm-paper);
  --bs-secondary-color: var(--lm-muted);
  --bs-secondary-rgb: 96, 105, 91;
  --bs-primary-rgb: 52, 79, 62;
  --bs-success-rgb: 52, 79, 62;
  --bs-light-rgb: 231, 233, 223;
  --bs-dark-rgb: 41, 62, 50;
  --bs-border-color: var(--lm-line);
  --bs-border-radius: var(--lm-radius);
  --bs-link-color: var(--lm-accent);
  --bs-link-hover-color: var(--lm-accent-hover);
  margin: 0;
  color: var(--lm-ink);
  background: var(--lm-paper);
  font: 400 var(--lm-text)/var(--lm-leading) var(--lm-font-body);
}

/* 2. One type hierarchy, including headings previously styled with .h3/.h5. */
.public-site :is(h1, h2, h3, h4, h5, h6) {
  color: var(--lm-ink);
  margin: 0 0 var(--lm-space-4);
  padding: 0;
  text-shadow: none;
  text-wrap: pretty;
  overflow-wrap: break-word;
}
.public-site :is(h1, h2) { font-family: var(--lm-font-heading); font-weight: 400; }
.public-site h1 { font-size: var(--lm-h1); line-height: 1.1; letter-spacing: -.035em; }
.public-site h2 { font-size: var(--lm-h2); line-height: var(--lm-leading-heading); letter-spacing: -.035em; }
.public-site h3 { font: 600 var(--lm-h3)/1.4 var(--lm-font-body); }
.public-site h4 { font: 600 var(--lm-h4)/1.4 var(--lm-font-body); }
.public-site :is(h5, h6) { font: 700 var(--lm-text)/1.4 var(--lm-font-body); }
.public-site p { font: 400 var(--lm-text)/var(--lm-leading) var(--lm-font-body); margin-bottom: var(--lm-space-4); }
.public-site :is(p, li, dd) { overflow-wrap: break-word; }
.public-site :is(small, .small, .form-text, figcaption, .lm-meta) { font-size: var(--lm-small); line-height: 1.5; }
.public-site :is(.form-text, figcaption, .lm-meta) { color: var(--lm-muted); }
.public-site strong { font-weight: 600; }
.public-site a { color: var(--lm-accent); text-decoration-color: var(--lm-link-line); text-underline-offset: .25em; text-decoration-thickness: 1px; }
.public-site a:where(:not(.btn)):hover { color: var(--lm-accent-hover); text-decoration-color: currentColor; }
.public-site :focus-visible { outline: 3px solid var(--lm-focus); outline-offset: 5px; }
.public-site [tabindex="-1"]:focus { outline: none; }
.public-site [id] { scroll-margin-top: 7rem; }
.public-site figcaption { margin-top: 1rem; }
.public-site img { max-width: 100%; height: auto; }
.public-site :is(.img-decorated, .guide-inline-image, .region-room-photo) { border-radius: var(--lm-radius-media); }
.public-site :is(audio, video, iframe) { max-width: 100%; }
.public-site iframe { border: 0; }
.public-site blockquote { margin: 0; padding-left: var(--lm-space-4); border-left: 2px solid var(--lm-line); }
.public-site li + li { margin-top: .35rem; }
.public-site :is(.nav, .dropdown-menu, .breadcrumb) li + li { margin-top: 0; }
.public-site .lm-kicker { font: 500 var(--lm-small)/1.5 var(--lm-font-body); color: var(--lm-muted); }

/* 3. Containers and reading layouts. Existing Bootstrap rows remain intact. */
.public-site :is(.container, .lm-breadcrumb) { width: 100%; max-width: var(--lm-content); margin-inline: auto; padding-inline: var(--lm-gutter); }
.public-site .container .lm-breadcrumb { padding-inline: 0; }
.public-site .container > .row.g-5 { --bs-gutter-x: min(3rem, calc(2 * var(--lm-gutter))); }
.public-site :is(main, .lm-content) :is(p, .lead, blockquote) { max-width: var(--lm-reading); }
/* Use inside a page container: reading width must never constrain the page itself. */
.public-site .lm-reading { width: 100%; max-width: var(--lm-reading); }
.public-site .lm-section { margin-block: var(--lm-section-space); }
.public-site .lm-prose-section + .lm-prose-section { margin-top: var(--lm-section-space); }
.public-site .lm-section-heading { margin-bottom: var(--lm-space-5); }
.public-site .lm-skip-link { position: fixed; left: 1rem; top: -10rem; z-index: 1100; padding: 1rem; background: var(--lm-surface); }
.public-site .lm-skip-link:focus { top: 1rem; }

/* 4. Shared components. */
.public-site .btn {
  --bs-btn-font-family: var(--lm-font-body);
  --bs-btn-font-size: var(--lm-control-text);
  --bs-btn-font-weight: var(--lm-control-weight);
  --bs-btn-line-height: var(--lm-control-leading);
  --bs-btn-border-radius: var(--lm-radius-button);
  --bs-btn-border-width: var(--lm-border-width);
  --bs-btn-padding-x: var(--lm-control-padding-x);
  --bs-btn-padding-y: var(--lm-control-padding-y);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  min-height: var(--lm-control-height);
  max-width: 100%;
  white-space: normal;
  text-decoration: none;
  transition: background-color .15s, border-color .15s, color .15s;
}
.public-site :is(.btn-primary, .btn-warning, .btn-success) {
  --bs-btn-color: var(--lm-on-accent);
  --bs-btn-bg: var(--lm-accent);
  --bs-btn-border-color: var(--lm-accent);
  --bs-btn-hover-color: var(--lm-on-accent);
  --bs-btn-hover-bg: var(--lm-accent-hover);
  --bs-btn-hover-border-color: var(--lm-accent-hover);
  --bs-btn-active-color: var(--lm-on-accent);
  --bs-btn-active-bg: var(--lm-accent-hover);
  --bs-btn-active-border-color: var(--lm-accent-hover);
  --bs-btn-disabled-color: var(--lm-on-accent);
  --bs-btn-disabled-bg: var(--lm-accent);
  --bs-btn-disabled-border-color: var(--lm-accent);
  color: var(--lm-on-accent);
}
.public-site :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-light, .btn-secondary, .btn-light) {
  --bs-btn-color: var(--lm-accent);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--lm-control-line);
  --bs-btn-hover-color: var(--lm-ink);
  --bs-btn-hover-bg: var(--lm-soft);
  --bs-btn-hover-border-color: var(--lm-accent);
  --bs-btn-active-color: var(--lm-ink);
  --bs-btn-active-bg: var(--lm-soft);
  --bs-btn-active-border-color: var(--lm-accent);
}
.public-site .lm-button-arrow { font-size: 1.3em; font-weight: 400; line-height: 1; }
.public-site .btn:focus-visible { box-shadow: none; }
.public-site :is(.form-control, .form-select) { min-height: var(--lm-control-height); padding: .7rem 1rem; border-color: var(--lm-control-line); border-radius: var(--lm-radius); background-color: var(--lm-surface); color: var(--lm-ink); font: 400 var(--lm-text)/1.5 var(--lm-font-body); }
.public-site :is(.form-control, .form-select):focus { border-color: var(--lm-accent); outline: 3px solid var(--lm-accent); outline-offset: 2px; box-shadow: none; }
.public-site :is(.form-label, .col-form-label, .form-check-label) { font: 600 var(--lm-small)/1.5 var(--lm-font-body); }
.public-site .form-check { min-height: var(--lm-control-height); display: flex; align-items: center; gap: .65rem; padding-left: 0; }
.public-site .form-check .form-check-input { float: none; flex-shrink: 0; margin: 0; border-color: var(--lm-control-line); width: 1.25rem; height: 1.25rem; }
.public-site .form-check-input:checked { background-color: var(--lm-accent); border-color: var(--lm-accent); }
.public-site .form-check-label { padding-block: .65rem; cursor: pointer; }
.public-site .invalid-feedback { color: var(--lm-danger); font-size: var(--lm-small); }
.public-site .alert { border-radius: var(--lm-radius); box-shadow: none; }
.public-site .hp-field { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; pointer-events: none; }
.public-site .signup-day-options { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.public-site :is(.signup-form-card, .contact-card, .login-form-card) { padding: var(--lm-panel-padding); background: var(--lm-surface); border: 1px solid var(--lm-line); border-radius: var(--lm-radius-media); }
.public-site :is(.signup-form-card, .contact-card) > .card-body { padding: 0; }
.public-site .card { --bs-card-border-width: 0; --bs-card-border-radius: 0; --bs-card-bg: transparent; --bs-card-cap-bg: transparent; --bs-card-spacer-x: 0; --bs-card-spacer-y: 0; }
.public-site .card-header { padding: 0 0 1rem; color: var(--lm-ink); border-bottom: 1px solid var(--lm-line); }
.public-site .card-footer { padding: 1rem 0 0; background: transparent; }
.public-site :is(.guide-exercise, .lesson-preview-experience, .posture-guidance, .lm-trial--panel) { padding: var(--lm-panel-padding); border: 0; border-radius: var(--lm-radius-media); background: var(--lm-soft); }
.public-site .lm-trial { margin-block: var(--lm-space-4); }
.public-site .lm-trial-actions { display: flex; flex-wrap: wrap; gap: var(--lm-space-3); }
.public-site .lm-trial--closing { text-align: center; padding-block: var(--lm-space-6) var(--lm-space-5); }
.public-site .lm-trial--closing::before { content: ''; display: block; width: 3rem; height: var(--lm-border-width); margin: 0 auto 2.5rem; background: var(--lm-muted); }
.public-site .lm-trial--closing h2 { font-size: var(--lm-h2-invite); }
.public-site .lm-trial--closing p { margin-inline: auto; max-width: 48ch; }
.public-site .lm-trial--closing .lm-trial-actions { justify-content: center; }
.public-site :is(.list-group-item, .table) { color: var(--lm-ink); background: transparent; }
.public-site .list-group { --bs-list-group-bg: transparent; --bs-list-group-border-color: var(--lm-line); }
.public-site .accordion { --bs-accordion-bg: transparent; --bs-accordion-border-color: var(--lm-line); --bs-accordion-border-radius: 0; --bs-accordion-inner-border-radius: 0; --bs-accordion-active-bg: transparent; --bs-accordion-active-color: var(--lm-accent); --bs-accordion-btn-focus-box-shadow: none; }
.public-site .accordion-item { border-width: 0 0 1px; }
.public-site .accordion-header { margin: 0; }
.public-site .accordion-button { padding: 1.25rem 0; gap: 1rem; color: var(--lm-ink); font: 600 var(--lm-text)/1.5 var(--lm-font-body); box-shadow: none; }
.public-site .accordion-body { padding: 0 0 1.5rem; font: 400 var(--lm-text)/var(--lm-leading) var(--lm-font-body); }
.public-site details { border-bottom: 1px solid var(--lm-line); }
.public-site summary { padding-block: 1.2rem; font-size: 1rem; color: var(--lm-accent); font-weight: 600; cursor: pointer; }
.public-site summary::marker { color: var(--lm-muted); }
.public-site details > :last-child { margin-bottom: 1.5rem; }
.public-site .breadcrumb { background: none; font-size: var(--lm-small); padding: 1rem 0; margin: 0; }
.public-site .breadcrumb-item.active { color: var(--lm-muted); }

/* Navigation: Bootstrap owns opening, closing and keyboard interaction. */
.public-site .homepage-navbar { padding-block: 1.2rem; background: var(--lm-paper); border-bottom: 1px solid var(--lm-line); }
.public-site .navbar-brand { display: flex; align-items: center; gap: .75rem; margin-right: 2rem; padding: 0; color: var(--lm-ink); }
.public-site .brand-mark { display: inline-block; flex-shrink: 0; width: 4.25rem; height: 1.8rem; background: currentColor; mask: url('../img/logo_small.png') center / contain no-repeat; }
.public-site .brand-name { font: 400 1.5rem/1.15 var(--lm-font-heading); letter-spacing: -.04em; white-space: nowrap; }
.public-site :is(h1,h2,.brand-name) { font-variation-settings: 'SOFT' 0, 'WONK' 0; font-optical-sizing: auto; }
.public-site .navbar .nav-link { font: 500 var(--lm-small)/1.5 var(--lm-font-body); color: var(--lm-ink); border: 0; border-radius: 0; background: transparent; padding: .75rem; white-space: nowrap; }
.public-site .navbar .nav-link:hover { color: var(--lm-accent); text-decoration: underline; text-underline-offset: .5em; }
.public-site .navbar .nav-link.active { text-decoration: underline; text-underline-offset: .5em; }
.public-site .homepage-nav-actions { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.public-site .homepage-nav-secondary { font-size: var(--lm-small); padding-block: .75rem; text-decoration: none; }
.public-site .homepage-nav-secondary:hover { text-decoration: underline; }
.public-site .homepage-nav-primary { --bs-btn-bg: transparent; --bs-btn-color: var(--lm-ink); --bs-btn-hover-bg: var(--lm-accent); min-height: 44px; padding: .7rem 1.2rem; color: var(--lm-ink); font-size: var(--lm-small); }
.public-site .homepage-nav-primary:hover { color: var(--lm-on-accent); }
.public-site .navbar-toggler { display: inline-flex; align-items: center; gap: .5rem; min-height: 48px; font: 500 1rem/1.5 var(--lm-font-body); border: 0; color: var(--lm-ink); padding-inline: .5rem; }
.public-site .navbar-toggler-icon { width: 1.2em; height: 1.2em; }
.public-site .dropdown-menu { --bs-dropdown-min-width: min(18rem, calc(100vw - 2.5rem)); --bs-dropdown-link-active-bg: var(--lm-soft); --bs-dropdown-link-active-color: var(--lm-ink); --bs-dropdown-link-hover-bg: var(--lm-soft); padding: .8rem; border: 1px solid var(--lm-line); border-radius: var(--lm-radius); background: var(--lm-paper); box-shadow: var(--lm-shadow-menu); max-width: calc(100vw - 2.5rem); }
.public-site .dropdown-item { padding: .65rem .75rem; color: var(--lm-ink); font: 400 1rem/1.5 var(--lm-font-body); white-space: normal; }
.public-site .dropdown-item.active { font-weight: 600; }
.public-site .dropdown-header { padding: .6rem .75rem; color: var(--lm-muted); font: 600 .875rem/1.5 var(--lm-font-body); letter-spacing: .08em; text-transform: uppercase; white-space: normal; cursor: default; margin: 0; }
.public-site .dropdown-menu li + li > .dropdown-header { margin-top: var(--lm-space-3); }
.public-site .dropdown-item small { color: var(--lm-muted); }
.public-site .lm-discover-menu { width: 45rem; }
.public-site .lm-menu-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.public-site .lm-menu-groups ul { padding: 0; margin: 0; list-style: none; }

/* Shared hero; the homepage has the approved standing landscape. */
.public-site .hero-header { padding-block: clamp(3rem,5vw,5rem) 2rem; }
.public-site .homepage-hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: var(--lm-gap); align-items: center; }
.public-site .homepage-hero-copy { min-width: 0; }
.public-site .homepage-hero-kicker { font: 500 var(--lm-small)/1.5 var(--lm-font-body); letter-spacing: .025em; color: var(--lm-muted); margin-bottom: 1.75rem; }
.public-site .homepage-hero-title { max-width: 17ch; margin-bottom: 1.5rem; }
.public-site .homepage-hero-lead { max-width: 47ch; }
.public-site .homepage-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 1.6rem; padding-top: .75rem; }
.public-site .homepage-hero-secondary { font-size: 1rem; padding-block: .7rem; }
.public-site .homepage-hero-image { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 85% center; border-radius: 0 var(--lm-radius-feature) 0 0; }
.public-site .hero-photograph { margin: 0; min-width: 0; }
.public-site .hero-photograph figcaption { text-align: right; }
.public-site .hero-header--simple .homepage-hero-grid { grid-template-columns: 1.35fr 1fr; }
.public-site .hero-header--simple .homepage-hero-title { max-width: 22ch; }
.public-site .hero-header--simple .homepage-hero-image { aspect-ratio: 4 / 3; object-position: center; }
.public-site .homepage-hero-card { margin-top: 2.5rem; padding-top: 2.5rem; border-top: 1px solid var(--lm-line); }
.public-site .homepage-hero-card-label { font: 500 var(--lm-small)/1.5 var(--lm-font-body); color: var(--lm-muted); letter-spacing: .025em; }
.public-site .homepage-hero-points { display: grid; gap: .5rem; margin: 1.5rem 0 0; }
.public-site .homepage-hero-points li { display: flex; gap: .7rem; margin: 0; }
.public-site .homepage-hero-points i { color: var(--lm-muted); }

/* Footer: all original destinations and the conditional privacy notice are preserved. */
.public-site .footer-shell { margin-top: var(--lm-section-space); padding-block: 4rem 5rem; background: var(--lm-footer-bg); color: var(--lm-paper); --lm-line: var(--lm-footer-line); --lm-focus: var(--lm-paper); }
.public-site .footer-signature { display: flex; align-items: center; gap: 1rem; margin-bottom: 3rem; }
.public-site .footer-signature .brand-name { font-size: 2rem; }
.public-site .lm-footer-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; }
.public-site .lm-footer-title { color: inherit; font: 600 1rem/1.5 var(--lm-font-body); margin-bottom: 1rem; }
.public-site .lm-footer ul { list-style: none; padding: 0; margin: 0; }
.public-site .lm-footer :is(a,summary) { color: inherit; }
.public-site .lm-footer summary::marker { color: currentColor; }
.public-site .lm-footer a { display: inline-block; padding-block: .45rem; font: 400 1rem/1.5 var(--lm-font-body); text-decoration: none; }
.public-site .lm-footer a:hover { text-decoration: underline; }
.public-site .lm-footer-topics { border-top: 1px solid var(--lm-line); margin-top: 3rem; }
.public-site .lm-footer-topics .lm-footer-grid { grid-template-columns: repeat(4,1fr); padding-block: 1rem 2rem; }
.public-site .lm-footer-bottom { font-size: var(--lm-small); margin-top: 2rem; }
.public-site .lm-privacy-note { margin-top: var(--lm-space-6); }
.public-site .lm-privacy-copy { max-width: var(--lm-reading); min-width: 0; }

/* Homepage: natural whitespace, quiet typographic entries and open compositions. */
.public-site .homepage-overview > * { margin-block: var(--lm-section-space); }
.public-site .homepage-intro { display: grid; grid-template-columns: 1fr 1.05fr; column-gap: var(--lm-gap); }
.public-site .intro-heading { grid-column: 2; grid-row: 1; align-self: end; }
.public-site .intro-copy { grid-column: 2; grid-row: 2; }
.public-site .intro-photograph { grid-column: 1; grid-row: 1 / 3; align-self: center; margin: 0; }
.public-site .homepage-room-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--lm-radius-media); }
.public-site .homepage-intro-points { display: grid; gap: 1.1rem; margin-block: 1.5rem; }
.public-site .homepage-intro-points li { margin: 0; }
.public-site .homepage-intro-points strong { display: block; }
.public-site .lm-text-link { display: inline-block; font-weight: 500; margin-block: .6rem; }
.public-site .homepage-qualities { padding-block: 3rem; border-block: 1px solid var(--lm-line); display: grid; grid-template-columns: 1fr 1.8fr; gap: 0 var(--lm-gap); }
.public-site .homepage-qualities > h2 { max-width: 12ch; }
.public-site .homepage-qualities .row { --bs-gutter-x: 0; margin-inline: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.public-site .homepage-qualities .col-md-6 { width: 100%; padding: 0; margin-top: 0; }
.public-site .homepage-qualities-summary { grid-column: 2; margin-top: 2rem; }
.public-site .homepage-curriculum > .homepage-panel > :is(h2,p) { max-width: 38rem; }
.public-site .course-previews { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--lm-space-5); margin-block: var(--lm-space-6); }
.public-site .course-preview { display: grid; grid-template-columns: 7rem minmax(0,1fr); grid-template-rows: auto 1fr auto; gap: var(--lm-space-4); align-items: start; }
.public-site .course-preview-photo { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: contain; border-radius: var(--lm-radius-media); }
.public-site .course-preview h3 { grid-column: 2; align-self: center; font: 400 var(--lm-h3)/1.3 var(--lm-font-heading); margin-bottom: 0; }
.public-site .course-preview h3:first-child { grid-column: 1 / -1; }
.public-site .course-preview > :is(p,a) { grid-column: 1 / -1; margin: 0; }
.public-site .course-preview > a { justify-self: start; align-self: end; font-size: 1rem; }
.public-site .homepage-programme { border-bottom: 0; }
.public-site .homepage-programme > summary { min-width: min(100%,19rem); }
.public-site .homepage-programme > summary::marker { content: ''; }
.public-site .homepage-programme > summary::-webkit-details-marker { display: none; }
.public-site .homepage-programme:not([open]) .programme-label-open,
.public-site .homepage-programme[open] .programme-label-closed { display: none; }
.public-site .homepage-lesson-list { padding: 0; }
.public-site .homepage-lesson-list > li { display: grid; margin: 0; }
.public-site .homepage-practical { background: var(--lm-soft); padding: var(--lm-panel-padding); border-radius: var(--lm-radius-media); }
.public-site .homepage-practical > h2 { margin-bottom: 2.5rem; }
.public-site .homepage-practical > .row { --bs-gutter-x: 3rem; }
.public-site .homepage-facts > div { margin-bottom: 1.5rem; }
.public-site .homepage-facts dt { font-size: 1rem; font-weight: 600; }
.public-site .homepage-facts dd { margin-top: .5rem; margin-bottom: 0; }
.public-site .homepage-trial { padding-left: 1.5rem; }
.public-site .course-packages { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lm-gap); margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--lm-line); }
.public-site .course-package-price { font: 400 2.5rem/1.2 var(--lm-font-heading); letter-spacing: -.03em; margin-block: 1.2rem; }
.public-site .homepage-guide { display: grid; grid-template-columns: 1fr 1.65fr; gap: var(--lm-gap); align-items: start; }
.public-site .guide-story h2 { margin-bottom: 2rem; }
.public-site .guide-portrait { position: sticky; top: 8rem; margin: 0; max-width: 18rem; }
.public-site :is(.homepage-guide-photo,.about-portrait) { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 58% center; border-radius: 0 2.5rem 0 0; }
.public-site .homepage-guide-invitation { margin-top: 1.5rem; }
.public-site :is(.homepage-spiritual,.homepage-review) { width: calc((100% - var(--lm-gap)) / 2.65 * 1.65); margin: 3rem 0 0 auto; }
.public-site .homepage-spiritual { padding-top: 2rem; border-top: 1px solid var(--lm-line); }
.public-site .testimonial-compact-card { padding-block: 2rem; border-block: 1px solid var(--lm-line); }
.public-site .testimonial-compact-header { display: flex; gap: 1rem; align-items: baseline; }
.public-site .testimonial-compact-icon { color: var(--lm-muted); }
.public-site .testimonial-compact-stars { color: var(--lm-accent); font-size: var(--lm-small); }
.public-site .testimonial-compact-author { color: var(--lm-muted); font: 600 var(--lm-small)/1.5 var(--lm-font-body); }
.public-site .homepage-faq { display: grid; grid-template-columns: 1fr 1.8fr; gap: var(--lm-gap); }

/* About: the portrait introduces the story; long sections share one reading column. */
.public-site .about-intro { display: grid; grid-template-columns: 1fr 1.65fr; gap: var(--lm-gap); align-items: start; }
.public-site .about-main .lm-prose-section { width: calc((100% - var(--lm-gap)) / 2.65 * 1.65); margin-left: auto; margin-top: var(--lm-section-space); }
.public-site .about-main .about-illustrated { width: 100%; }
.public-site .about-chapter { display: grid; grid-template-columns: 1fr 1.65fr; gap: var(--lm-gap); align-items: start; }
.public-site .about-photo { display: block; width: 100%; height: auto; margin: 0; }
/* Article photographs stay with their own text; no text wraps into the next section. */
.public-site .lm-media-layout { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); align-items: start; gap: 2rem; }
.public-site .lm-media-copy { min-width: 0; }
.public-site .lm-media-copy > :last-child { margin-bottom: 0; }
.public-site .lm-article-image { display: block; width: 100%; height: auto; }
.public-site .lm-article-section { margin-bottom: var(--lm-space-7); }
.public-site :is(.lm-article, .guide-intro) .lm-media-layout { grid-template-columns: minmax(0,1fr) 16rem; gap: clamp(2rem,4vw,3rem); }
.public-site .lm-quiet-list { --bs-list-group-item-padding-x: 0; --bs-list-group-item-padding-y: .8rem; }
.public-site .lm-sequence > div { padding-top: 1.5rem; border-top: 1px solid var(--lm-line); }
.public-site .lm-comparison { margin-top: 0; padding-block: 1.5rem; border-block: 1px solid var(--lm-line); }
.public-site .lm-practice-pause { margin-block: 2rem; padding-left: 1.5rem; border-left: 2px solid var(--lm-line); }
.public-site .lm-practice-pause ol { padding-left: 1.25rem; }

/* Other public page components share the same tokens. */
.public-site .lesson-steps { display: grid; gap: 2rem; }
.public-site .lesson-step + .lesson-step { padding-top: 2rem; border-top: 1px solid var(--lm-line); }
.public-site .lesson-step h3 { margin-bottom: 1rem; }
.public-site .lesson-hero-card { padding-block: 1.5rem; border-bottom: 1px solid var(--lm-line); }
.public-site .lesson-hero-image { display: block; width: min(100%,18rem); height: auto; margin-inline: auto; border-radius: var(--lm-radius-media); }
.public-site .lesson-intro-aside > img { display: block; width: 100%; height: auto; }
.public-site .lesson-section { margin-top: 3rem; }
.public-site .lesson-context { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 2rem 3rem; margin-block: 3rem; }
.public-site .lesson-context-media { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,10rem),1fr)); align-items: start; gap: 1.5rem; }
.public-site .lesson-context-media > :is(img,figure) { display: block; width: 100%; max-width: 22rem; height: auto; margin: 0; }
.public-site .lesson-context-media figure img { height: auto; }
.public-site .shared-meditation-image { display: block; width: min(100%,18rem); height: auto; }
.public-site .lm-overview-body { margin-top: 3rem; }
.public-site .lm-overview-photo { width: min(100%,24rem); margin: 0; }
.public-site .lm-overview-summary { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 3rem; }
.public-site .lesson-gallery-card { margin-bottom: 2rem; }
.public-site .lesson-gallery-caption { color: var(--lm-muted); }
.public-site .lesson-nav-card { position: relative; height: 100%; padding-top: 1rem; border-top: 1px solid var(--lm-line); }
.public-site .lesson-nav-card-media { position: relative; margin-bottom: 1.5rem; }
.public-site .lesson-nav-card-media img { display: block; width: 100%; height: auto; border-radius: var(--lm-radius-media); }
.public-site .lesson-nav-card-badge { display: inline-block; margin-top: .75rem; white-space: normal; text-align: left; }
.public-site .lesson-nav-card-eyebrow { font-size: var(--lm-small); color: var(--lm-muted); }
.public-site .lesson-nav-card.is-active { border-top: 3px solid var(--lm-accent); }
.public-site .meditation-guide { display: grid; grid-template-columns: minmax(0, 1fr) 16rem; gap: 3rem; }
.public-site .guide-content { grid-column: 1; grid-row: 1; min-width: 0; }
.public-site .guide-sidebar { grid-column: 2; grid-row: 1; align-self: start; position: sticky; top: 7rem; max-height: calc(100vh - 8rem); overflow-y: auto; }
.public-site .guide-toc { padding-left: 1.5rem; border-left: 1px solid var(--lm-line); }
.public-site .guide-toc a { display: inline-block; padding-block: .2rem; font-size: var(--lm-small); }
.public-site .guide-toc li { break-inside: avoid; }
.public-site .guide-toc ol { padding-left: 1.25rem; }
.public-site :is(.guide-label, .posture-label) { font: 500 var(--lm-small)/1.5 var(--lm-font-body); color: var(--lm-muted); }
.public-site .guide-section + .guide-section { margin-top: var(--lm-space-7); }
.public-site .guide-section h3 { margin-top: 2rem; }
.public-site .guide-inline-image { display: block; width: min(100%, 16rem); height: auto; margin: 0; }
.public-site :is(.guide-comparison, .posture-equipment) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; margin-block: 2rem; }
.public-site .guide-phrases { list-style: none; padding: 0; margin-bottom: 0; }
.public-site .guide-practice-note { padding: .5rem 0 .5rem 1.5rem; border-left: 2px solid var(--lm-line); }
.public-site .guide-steps { padding-left: 1.5rem; }
.public-site .guide-steps li + li { margin-top: 1rem; }
.public-site :is(.guide-practice-note, .guide-exercise) { margin-block: 2rem; }
.public-site .guide-definitions dd { margin-top: .5rem; }
.public-site .guide-definitions dd + dt { margin-top: 1.5rem; }
.public-site .posture-nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.public-site .posture-nav a { padding-block: .65rem; }
.public-site .posture-list { display: grid; gap: 3rem; }
.public-site .posture-card { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.3fr); gap: clamp(2rem,4vw,3.5rem); align-items: center; padding-block: 1.5rem; border-top: 1px solid var(--lm-line); }
.public-site .posture-photo { width: 100%; margin: 0; }
.public-site .posture-photo img { display: block; width: 100%; height: auto; border-radius: var(--lm-radius-media); }
.public-site .posture-photo--kneeling { max-width: 24rem; margin-inline: auto; }
.public-site .posture-item:nth-child(even) .posture-photo { order: 2; }
.public-site .posture-item:where(:nth-child(even)) .posture-card { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); }
.public-site .posture-tip { border-top: 1px solid var(--lm-line); padding-top: 1rem; }
.public-site .region-room-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.public-site .region-origin summary h3 { display: inline; font: inherit; }
.public-site .region-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
.public-site .online-learning-intro { display: flow-root; }
.public-site .online-learning-demo { padding-block: 2rem; }
.public-site .online-learning-demo-image-link { display: block; }
.public-site .online-learning-demo-image-link img { border: 1px solid var(--lm-line); border-radius: var(--lm-radius-media); }
.public-site .online-learning-demo-figure { margin-block: 2rem; }
.public-site .online-learning-demo-figure figcaption { margin-top: 1rem; }
.public-site .login-form-heading { margin-bottom: 1.5rem; }
.public-site :is(.login-form-icon, .link-card-icon) { color: var(--lm-muted); margin-bottom: 1rem; }
.public-site .login-form-options { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; }
.public-site .login-inline-button { border: 0; padding: .65rem 0; background: transparent; color: var(--lm-accent); font: inherit; text-decoration: underline; text-underline-offset: .2em; }
.public-site .login-aside-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--lm-radius-media); margin-bottom: 2rem; }
.public-site .login-aside-list { list-style: none; padding: 0; }
.public-site .login-aside-list i { margin-right: .5rem; }
.public-site .login-support { margin-top: 1.5rem; }
.public-site .privacy-detail-body { padding-bottom: 1.5rem; }
.public-site .link-card { border-top: 1px solid var(--lm-line); padding-top: 1.5rem; }
.public-site .admin-timeline-horizontal { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.public-site .timeline-icon { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 1px solid var(--lm-line); border-radius: var(--lm-radius); }

@media (min-width: 992px) {
  .public-site .homepage-lesson-list > li:last-child:nth-child(3n+1) { grid-column: 2; }
  .public-site .lm-privacy-note { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,var(--lm-reading)); gap: var(--lm-gap); align-items: start; }
  .public-site .lm-privacy-note > h2 { margin-bottom: 0; }
}
@media (min-width: 1200px) {
  .public-site .navbar-toggler { display: none; }
  .public-site .lm-discover-menu { left: 50%; transform: translateX(-50%); }
}
@media (max-width: 1199.98px) {
  .public-site .navbar-collapse { padding-block: 1.5rem .5rem; }
  .public-site .homepage-nav-actions { margin-top: 1.25rem; }
  .public-site .dropdown-menu { box-shadow: none; }
  .public-site .lm-discover-menu { width: 100%; }
}
@media (max-width: 991.98px) {
  .public-site .course-previews { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-site .posture-item .posture-card { grid-template-columns: 1fr; gap: 1.5rem; }
  .public-site .posture-photo { max-width: 30rem; }
  .public-site .posture-photo--kneeling { max-width: 24rem; margin-inline: 0; }
  .public-site .posture-equipment { grid-template-columns: 1fr; }
  .public-site .posture-item:nth-child(even) .posture-photo { order: 0; }
  .public-site .lesson-intro-aside { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 2rem; }
  .public-site .homepage-hero-grid { gap: 2rem; }
  .public-site .homepage-hero-image { aspect-ratio: 3 / 5; }
  .public-site .hero-header--simple .homepage-hero-grid { grid-template-columns: 1fr; }
  .public-site .hero-header--simple .homepage-hero-image { aspect-ratio: 3 / 1; max-height: 16rem; }
  .public-site .homepage-qualities { grid-template-columns: 1fr; }
  .public-site .homepage-qualities > h2 { max-width: none; }
  .public-site .homepage-qualities-summary { grid-column: 1; }
  .public-site .meditation-guide { display: flex; flex-direction: column; gap: 2rem; }
  .public-site .guide-sidebar { position: static; width: 100%; max-height: none; overflow: visible; }
  .public-site .guide-toc { padding: 0; border: 0; }
  .public-site .guide-toc ol { columns: 2; }
  .public-site .lm-footer-topics .lm-footer-grid { grid-template-columns: repeat(2,1fr); }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .public-site .course-previews > :last-child:nth-child(2n+1) { grid-column: 1 / -1; width: calc((100% - var(--lm-space-5)) / 2); justify-self: center; }
}
@media (max-width: 767.98px) {
  .public-site :is(.lesson-context,.lesson-intro-aside,.lm-overview-summary) { grid-template-columns: 1fr; gap: 1.5rem; }
  .public-site { --lm-section-space: 4.5rem; --lm-gap: 2rem; }
  .public-site .homepage-navbar { position: relative; padding-block: 1rem; }
  .public-site .navbar-brand { margin-right: 0; gap: .6rem; }
  .public-site .brand-mark { width: 3rem; height: 1.4rem; }
  .public-site .brand-name { font-size: 1.3rem; }
  .public-site .hero-header { padding-top: 2.5rem; }
  .public-site .homepage-hero-grid { grid-template-columns: 1fr; }
  .public-site .homepage-hero-title { max-width: 18ch; }
  .public-site .homepage-hero-actions { gap: 1rem; align-items: flex-start; }
  .public-site .homepage-hero-image { aspect-ratio: 5 / 4; object-position: 70% center; border-radius: 0 2.5rem 0 0; }
  .public-site :is(.homepage-intro,.homepage-guide,.homepage-faq,.about-intro) { display: flex; flex-direction: column; gap: 1.5rem; }
  .public-site .intro-heading { align-self: auto; }
  .public-site .intro-photograph { margin-top: 1rem; }
  .public-site .homepage-qualities { display: block; padding-block: 2rem; }
  .public-site .homepage-qualities .row { grid-template-columns: 1fr; gap: 1.5rem; }
  .public-site .course-previews { grid-template-columns: 1fr; }
  .public-site .homepage-practical { margin-inline: calc(-1 * var(--lm-gutter)); padding: 2.5rem var(--lm-gutter); border-radius: 0; }
  .public-site .homepage-practical > .row { --bs-gutter-x: 0; }
  .public-site .homepage-trial { padding-left: 0; }
  .public-site .course-packages { grid-template-columns: 1fr; gap: 2.5rem; }
  .public-site .course-package + .course-package { border-top: 1px solid var(--lm-line); padding-top: 2rem; }
  .public-site .guide-portrait { position: static; width: min(85%,18rem); }
  .public-site :is(.homepage-spiritual,.homepage-review) { width: auto; margin-top: 2.5rem; }
  .public-site .about-main .lm-prose-section { width: 100%; margin-left: 0; }
  .public-site .about-chapter { grid-template-columns: 1fr; gap: 1.5rem; }
  .public-site .about-photo { max-width: 24rem; }
  .public-site :is(.lm-media-layout, .lm-article .lm-media-layout, .guide-intro .lm-media-layout) { grid-template-columns: 1fr; gap: 1.5rem; }
  .public-site :is(.lm-article-image, .guide-inline-image) { width: min(100%,17rem); margin-inline: auto; }
  .public-site .lm-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 768px) {
  .public-site .lm-article .lm-media-layout--reverse { grid-template-columns: 16rem minmax(0,1fr); }
  .public-site .lm-media-layout--reverse .lm-media-copy { order: 2; }
  .public-site .lm-media-layout--reverse .lm-article-image { order: 1; }
}
@media (max-width: 575.98px) {
  .public-site :is(.lm-menu-groups,.guide-comparison) { grid-template-columns: 1fr; }
  .public-site .guide-toc ol { columns: 1; }
  .public-site .homepage-nav-actions { flex-wrap: wrap; }
}
@media (max-width: 359px) {
  .public-site .brand-mark { width: 2.3rem; }
  .public-site .brand-name { font-size: 1.2rem; }
  .public-site .navbar-toggler { font-size: .9rem; }
  .public-site .lm-footer-topics .lm-footer-grid { grid-template-columns: 1fr; }
  .public-site .footer-signature { gap: .65rem; }
  .public-site .footer-signature .brand-name { font-size: 1.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .public-site *, .public-site *::before, .public-site *::after { scroll-behavior: auto; transition: none; animation: none; }
}
