

:root {
  --qm-sage:      #8DAEB5;
  --qm-sage-d:    #5E8089;
  --qm-sage-dd:   #466069;
  --qm-cream:     #F4F1EA;
  --qm-cream-2:   #FAF8F3;
  --qm-ink:       #2B3338;
  --qm-ink-2:     #3D474C;
  --qm-muted:     #5F6B70;
  --qm-faint:     #8C969A;
  --qm-surface:   #FFFFFF;
  --qm-line:      #E6E4DD;
  --qm-line-2:    #D6D3C9;
  --qm-radius:    14px;
  --qm-radius-sm: 9px;
  --qm-shadow:    0 1px 2px rgba(43,51,56,.03), 0 2px 10px rgba(43,51,56,.05);
  --qm-shadow-lg: 0 14px 38px rgba(43,51,56,.08);
  --qm-display:   'Manrope', system-ui, -apple-system, sans-serif;
  --qm-body:      'Inter', system-ui, -apple-system, sans-serif;

  --brand-primary: var(--qm-sage-d);
  --brand-accent:  var(--qm-sage);
  --paper:         var(--qm-surface);
  --paper-card:    var(--qm-surface);
  --ink:           var(--qm-ink);
  --ink-soft:      var(--qm-muted);
  --line:          var(--qm-line);
  --line-strong:   var(--qm-line-2);
  --font-display:  var(--qm-display);
  --font-body:     var(--qm-body);
}

html, body { background: var(--qm-surface); color: var(--qm-ink); font-family: var(--qm-body); -webkit-font-smoothing: antialiased; line-height:1.65; }
a { color: var(--qm-sage-d); }
a:hover { color: var(--qm-sage-dd); }
h1,h2,h3,h4 { font-family: var(--qm-display); color: var(--qm-ink); letter-spacing:-.015em; }
.skip-link { position:absolute; left:-9999px; top:0; z-index:1000; background: var(--qm-sage-d); color:#fff; padding:.6rem 1rem; border-radius:0 0 var(--qm-radius-sm) 0; }
.skip-link:focus { left:0; }
.visually-hidden { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

.qm-wrap { max-width:1080px; margin:0 auto; padding:0 1.5rem; }
.qm-wrap--mid { max-width:760px; }
.qm-wrap--narrow { max-width:760px; }

.qm-topbar { background: var(--qm-cream); border-bottom:1px solid var(--qm-line); font-size:.82rem; color: var(--qm-ink-2); }
.qm-topbar__inner { display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:36px; padding:.35rem 0; flex-wrap:wrap; }
.qm-topbar__links { display:flex; gap:.9rem; align-items:center; }
.qm-topbar__links a { color: var(--qm-sage-d); text-decoration:none; white-space:nowrap; font-weight:600; }
.qm-topbar__links a:hover { color: var(--qm-sage-dd); }
@media (max-width:560px){ .qm-topbar__inner{justify-content:center;} .qm-topbar__hours{display:none;} }

.site-nav, .qm-header { background: var(--qm-surface); border-bottom:1px solid var(--qm-line); position:sticky; top:0; z-index:50; }
.site-nav__inner, .qm-header__inner { max-width:1080px; margin:0 auto; padding:.65rem 1.5rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:70px; }
.site-nav__brand, .qm-brand { display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; font-family: var(--qm-display); font-weight:700; font-size:1.16rem; color: var(--qm-ink); letter-spacing:-.015em; }
.qm-brand__accent { color: var(--qm-sage-d); }
.site-nav__links, .qm-nav__list { display:flex; align-items:center; gap:.35rem; list-style:none; margin:0; padding:0; }
.site-nav__links a, .qm-nav__link { display:inline-flex; align-items:center; text-decoration:none; color: var(--qm-ink-2); font-weight:600; font-size:.95rem; padding:.5rem .85rem; border-radius:99px; }
.site-nav__links a:hover, .qm-nav__link:hover { color: var(--qm-ink); background: var(--qm-cream-2); }
.site-nav__cta, .qm-nav__link--cta { background: var(--qm-sage-d) !important; color:#fff !important; padding:.6rem 1.3rem; box-shadow: var(--qm-shadow); }
.site-nav__cta:hover, .qm-nav__link--cta:hover { background: var(--qm-sage-dd) !important; color:#fff !important; }
.qm-nav__link--ghost { color: var(--qm-muted); }
.nav-toggle, .qm-nav__toggle { display:none; background:none; border:1px solid var(--qm-line-2); border-radius:99px; width:44px; height:44px; align-items:center; justify-content:center; cursor:pointer; color: var(--qm-ink); }
.nav-toggle svg, .qm-nav__toggle svg { width:22px; height:22px; }
@media (max-width:860px){
  .nav-toggle, .qm-nav__toggle { display:inline-flex; }
  .site-nav__inner, .qm-header__inner { position:relative; flex-wrap:wrap; }
  .site-nav__links, .qm-nav__list {
    position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch;
    background: var(--qm-surface); border-bottom:1px solid var(--qm-line); box-shadow: var(--qm-shadow-lg);
    max-height:0; overflow:hidden; transition:max-height .25s ease; padding:0 1rem;
  }
  .site-nav__links.is-open, .qm-nav__list.is-open { max-height:520px; padding:.75rem 1rem 1.1rem; }
  .site-nav__links a, .qm-nav__link { padding:.7rem .6rem; }
  .site-nav__cta, .qm-nav__link--cta { justify-content:center; margin-top:.4rem; }
}

.qm-btn, .btn-primary, .button.is-primary {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family: var(--qm-body); font-weight:600; font-size:1rem; line-height:1;
  padding:.9rem 1.6rem; border-radius:99px; border:1px solid transparent; text-decoration:none; cursor:pointer;
  transition: background .15s ease, border-color .15s ease;
}
.qm-btn--primary, .btn-primary, .button.is-primary { background: var(--qm-sage-d); color:#fff !important; box-shadow: var(--qm-shadow); }
.qm-btn--primary:hover, .btn-primary:hover, .button.is-primary:hover { background: var(--qm-sage-dd); color:#fff; }
.qm-btn--ghost { background: var(--qm-surface); color: var(--qm-ink) !important; border:1px solid var(--qm-line-2); }
.qm-btn--ghost:hover { background: var(--qm-cream-2); border-color: var(--qm-sage-d); }
.qm-btn--large { padding:1.05rem 1.9rem; font-size:1.05rem; }

.qm-eyebrow { display:inline-block; font-weight:700; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color: var(--qm-sage-d); margin:0 0 1rem; }
.qm-section { padding: clamp(3.5rem,7vw,6rem) 0; }
.qm-section--cream-soft { background: var(--qm-cream-2); }
.qm-section--paper { background: var(--qm-surface); }
.qm-head { max-width:640px; margin:0 auto clamp(2.5rem,5vw,3.5rem); text-align:center; }
.qm-head__title { font-size: clamp(1.8rem,1.25rem+2.2vw,2.7rem); font-weight:700; line-height:1.12; margin:0 0 1rem; }
.qm-head__lede { font-size:1.1rem; color: var(--qm-muted); margin:0 auto; max-width:560px; line-height:1.65; }

.qm-hero { padding: clamp(4rem,8vw,6.5rem) 0 clamp(2rem,4vw,3rem); }
.qm-hero__inner { max-width:760px; margin:0 auto; text-align:center; }
.qm-hero__headline { font-size: clamp(2.3rem,1.4rem+3.6vw,4rem); font-weight:700; line-height:1.07; margin:0 0 1.3rem; }
.qm-hero__sub { font-size: clamp(1.1rem,1rem+.5vw,1.3rem); color: var(--qm-muted); margin:0 auto 2rem; max-width:560px; }
.qm-hero__cta { display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }
.qm-hero__trust { display:flex; justify-content:center; gap:2.75rem; flex-wrap:wrap; margin:2.5rem 0 0; }
.qm-trust__item { text-align:center; }
.qm-trust__num { display:block; font-family: var(--qm-display); font-weight:700; font-size:1.5rem; color: var(--qm-sage-d); }
.qm-trust__label { display:block; font-size:.85rem; color: var(--qm-muted); margin-top:.2rem; }
.qm-hero__media { margin: clamp(2.5rem,5vw,4rem) 0 0; }
.qm-hero__img { width:100%; aspect-ratio:16/8; object-fit:cover; border-radius:20px; border:1px solid var(--qm-line); box-shadow: var(--qm-shadow-lg); display:block; }

.qm-rows { display:flex; flex-direction:column; gap: clamp(2.5rem,5vw,4rem); }
.qm-row { display:grid; grid-template-columns:1.2fr .8fr; gap:2.5rem; align-items:center; }
.qm-row--reverse .qm-row__copy { order:2; }
.qm-row--reverse .qm-row__visual { order:1; }
.qm-row__number { font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color: var(--qm-sage-d); margin:0 0 .6rem; }
.qm-row__heading { font-size:1.5rem; font-weight:700; margin:0 0 .8rem; line-height:1.2; }
.qm-row__body { color: var(--qm-muted); margin:0 0 .8rem; line-height:1.7; }
.qm-row__meta { font-size:.88rem; color: var(--qm-faint); margin:0; }
.qm-row__visual { display:flex; justify-content:center; }
.qm-glyph { width:160px; height:160px; color: var(--qm-sage); display:flex; align-items:center; justify-content:center; background: var(--qm-cream); border-radius:50%; }
.qm-glyph svg { width:100px; height:100px; }
@media (max-width:720px){ .qm-row,.qm-row--reverse .qm-row__copy,.qm-row--reverse .qm-row__visual{grid-template-columns:1fr; order:initial;} .qm-row__visual{order:-1;} }

.qm-library__count { display:inline-block; font-size:.9rem; font-weight:600; color: var(--qm-sage-d); margin-top:.5rem; }
.qm-class-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.75rem; }
.qm-class { background: var(--qm-surface); border:1px solid var(--qm-line); border-radius: var(--qm-radius); overflow:hidden; box-shadow: var(--qm-shadow); }
.qm-class:hover { box-shadow: var(--qm-shadow-lg); transform:translateY(-2px); transition:all .18s ease; }
.qm-class__media { aspect-ratio:4/3; overflow:hidden; background: var(--qm-cream); }
.qm-class__media img { width:100%; height:100%; object-fit:cover; display:block; }
.qm-class__body-wrap { padding:1.2rem 1.35rem 1.5rem; }
.qm-class__intent { font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color: var(--qm-sage-d); margin:0 0 .35rem; }
.qm-class__title { font-family: var(--qm-display); font-weight:700; font-size:1.18rem; margin:0 0 .55rem; color: var(--qm-ink); }
.qm-class__body { color: var(--qm-muted); font-size:.95rem; line-height:1.6; margin:0 0 1rem; }
.qm-class__meta { display:flex; flex-direction:column; gap:.2rem; font-size:.84rem; color: var(--qm-faint); border-top:1px solid var(--qm-line); padding-top:.8rem; }
.qm-class__teacher { color: var(--qm-ink-2); font-weight:600; }

.qm-lib-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.qm-lib-thumb {
  position: relative;
  margin: 0;
  border-radius: var(--qm-radius);
  overflow: hidden;
  background: var(--qm-cream);
  box-shadow: var(--qm-shadow);
  aspect-ratio: 4/3;
}
.qm-lib-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s ease;
}
.qm-lib-thumb:hover img { transform: scale(1.04); }
.qm-lib-chip {
  position: absolute;
  bottom: .65rem;
  left: .65rem;
  background: rgba(43,51,56,.62);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  padding: .28rem .65rem;
  border-radius: 99px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  line-height: 1;
}
@media (max-width: 680px) {
  .qm-lib-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 400px) {
  .qm-lib-grid { grid-template-columns: 1fr; }
}

.qm-plan { max-width:460px; margin:0 auto; background: var(--qm-surface); border:1px solid var(--qm-line); border-radius:20px; padding: clamp(2rem,4vw,2.75rem); box-shadow: var(--qm-shadow-lg); text-align:center; }
.qm-plan__name { font-size:1rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color: var(--qm-sage-d); margin:0 0 .8rem; }
.qm-plan__price { font-family: var(--qm-display); font-weight:800; font-size: clamp(2.8rem,2rem+2.5vw,3.6rem); color: var(--qm-ink); line-height:1; margin:0; }
.qm-plan__period { color: var(--qm-muted); margin:.4rem 0 0; }
.qm-plan__initial { font-size:.9rem; color: var(--qm-muted); margin:.6rem 0 0; }
.qm-plan__divider { border:none; border-top:1px solid var(--qm-line); margin:1.6rem 0; }
.qm-plan__includes { list-style:none; margin:0 0 1.6rem; padding:0; text-align:left; }
.qm-plan__includes li { position:relative; padding:.55rem 0 .55rem 1.7rem; color: var(--qm-ink-2); border-bottom:1px solid var(--qm-line); font-size:.97rem; }
.qm-plan__includes li:last-child { border-bottom:none; }
.qm-plan__includes li::before { content:""; position:absolute; left:0; top:.95rem; width:14px; height:14px; border-radius:50%; border:1.5px solid var(--qm-sage); }
.qm-plan__cta { width:100%; }
.qm-plan__trial { font-size:.9rem; color: var(--qm-faint); margin:1rem 0 0; }
.qm-plan__descriptor { font-size:.82rem; color: var(--qm-faint); margin:1rem 0 0; }
.qm-plan__descriptor strong { color: var(--qm-ink-2); }

.qm-faq__list { max-width:760px; margin:0 auto; }
.qm-faq__item { border-bottom:1px solid var(--qm-line); }
.qm-faq__item summary { display:flex; justify-content:space-between; align-items:center; gap:1rem; cursor:pointer; list-style:none; padding:1.25rem 0; font-family: var(--qm-display); font-weight:700; color: var(--qm-ink); font-size:1.08rem; }
.qm-faq__item summary::-webkit-details-marker { display:none; }
.qm-faq__item summary::after { content:"+"; color: var(--qm-sage-d); font-weight:700; font-size:1.4rem; line-height:1; }
.qm-faq__item[open] summary::after { content:"\2212"; }
.qm-faq__answer { color: var(--qm-muted); line-height:1.7; margin:0 0 1.25rem; padding-right:2rem; }

.qm-cta { background: var(--qm-cream); }
.qm-cta__inner { max-width:640px; margin:0 auto; text-align:center; }
.qm-cta__title { font-size: clamp(1.7rem,1.2rem+2vw,2.5rem); font-weight:700; margin:.4rem 0 .8rem; }
.qm-cta__lede { color: var(--qm-muted); margin:0 0 1.8rem; font-size:1.1rem; }

.site-footer, .qm-footer { background: var(--qm-ink); color:#B5BDC0; padding: clamp(3rem,5vw,4rem) 0 1.5rem; }
.site-footer a, .qm-footer a { color:#B5BDC0; text-decoration:none; }
.site-footer a:hover, .qm-footer a:hover { color:#fff; }
.container-yoga, .qm-footer__container { max-width:1080px; margin:0 auto; padding:0 1.5rem; }
.site-footer__grid, .qm-footer__grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem; }
.site-footer__brand-name, .qm-footer__name { font-family: var(--qm-display); font-weight:700; color:#fff; font-size:1.15rem; margin:.5rem 0 .25rem; }
.site-footer h4, .qm-footer__heading { font-weight:700; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:#fff; margin:0 0 .9rem; }
.site-footer ul, .qm-footer ul { list-style:none; margin:0; padding:0; }
.site-footer li, .qm-footer li { margin-bottom:.55rem; font-size:.92rem; }
.site-footer__base, .qm-footer__base { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.75rem; border-top:1px solid rgba(255,255,255,.1); margin-top:2.5rem; padding-top:1.5rem; font-size:.82rem; color:#828B8E; }
.footer-payment, .qm-footer__payment { display:flex; justify-content:center; margin-top:1.25rem; }
@media (max-width:780px){ .site-footer__grid, .qm-footer__grid{grid-template-columns:1fr 1fr;} }
@media (max-width:480px){ .site-footer__grid, .qm-footer__grid{grid-template-columns:1fr;} .site-footer__base, .qm-footer__base{flex-direction:column; text-align:center;} }

.btn.btn-primary, button.signup-submit, .signup-pay, .signup-submit { background: var(--qm-sage-d); color:#fff; border:1px solid transparent; border-radius:99px; font-family: var(--qm-body); font-weight:600; }
.btn.btn-primary:hover, button.signup-submit:hover, .signup-pay:hover { background: var(--qm-sage-dd); color:#fff; }
.legal-prose { color: var(--qm-ink-2); line-height:1.75; }
.legal-prose h1,.legal-prose h2,.legal-prose h3 { color: var(--qm-ink); }
.legal-prose a { color: var(--qm-sage-d); }
.page--members, body { background: var(--qm-surface); }
