/* ============================================
   YOGA BEYOND THE POSES — Premium design system v2
   Layered on top of style.css. Wherever this file
   redefines a token or component, this wins.
   ============================================ */

:root {
  /* ---- Refined palette (additive) ---- */
  --color-bronze:        #8a6d4f; /* deeper accent for buttons-on-light, dividers */
  --color-bronze-dark:   #6b5238;
  --color-bronze-soft:   #c9b29a;
  --color-ink:           #1f1c1a; /* darker than charcoal for headlines */
  --color-mist:          #f8f4ec; /* slightly warmer than cream */
  --color-paper:         #fdfaf3; /* card / surface */
  --color-line:          rgba(31, 28, 26, 0.10);
  --color-line-strong:   rgba(31, 28, 26, 0.22);

  /* ---- Type scale (clamp() so it scales nicely) ---- */
  --text-xs:      0.75rem;
  --text-sm:      0.875rem;
  --text-base:    1rem;
  --text-lg:      1.125rem;
  --text-xl:      clamp(1.25rem, 1.6vw, 1.4rem);
  --text-2xl:     clamp(1.5rem, 2vw, 1.875rem);
  --text-3xl:     clamp(2rem, 3vw, 2.75rem);
  --text-4xl:     clamp(2.5rem, 4.5vw, 4rem);
  --text-display: clamp(3rem, 7.5vw, 6.5rem);

  /* Letter spacing — small uppercase = luxury when tracked out */
  --tracking-eyebrow: 0.22em;
  --tracking-button:  0.14em;

  /* ---- Section rhythm ---- */
  --section-pad-y: clamp(5rem, 10vh, 9rem);
  --gutter:        clamp(1rem, 4vw, 3rem);
  --max-w-narrow:  720px;
  --max-w-prose:   860px;
  --max-w-wide:    1320px;

  /* ---- Image treatment (apply globally to most photos) ---- */
  --photo-filter: saturate(0.92) contrast(0.97) brightness(0.99);

  /* ---- Curves ---- */
  --ease-luxe:   cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-stand:  cubic-bezier(0.4, 0, 0.2, 1);
}

/* ============================================
   Base resets / global rhythm
   ============================================ */
body {
  background: var(--color-mist);
  color: var(--color-ink);
}

::selection { background: var(--color-bronze-soft); color: var(--color-ink); }

img.is-luxe,
.luxe-img { filter: var(--photo-filter); }

/* Apply the warm filter globally to all <img> by default; opt out with .raw-img */
img:not(.raw-img):not(.no-filter) {
  filter: var(--photo-filter);
}

a { transition: color 220ms var(--ease-stand); }

/* Smooth view-transitions where supported */
@view-transition { navigation: auto; }
::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 380ms;
  animation-timing-function: var(--ease-luxe);
}

/* ============================================
   Premium navigation (5 items max)
   ============================================ */
.nav-premium {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  padding: clamp(0.9rem, 2vw, 1.5rem) var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: transparent;
  transition: background 380ms var(--ease-stand),
              backdrop-filter 380ms var(--ease-stand),
              border-color 380ms var(--ease-stand);
  border-bottom: 1px solid transparent;
  color: var(--color-ink);
}
.nav-premium.is-on-photo { color: var(--color-cream); }
.nav-premium.is-scrolled {
  background: rgba(253, 250, 243, 0.86);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border-bottom-color: var(--color-line);
  color: var(--color-ink);
}

.nav-premium__logo {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  letter-spacing: 0.01em;
  line-height: 1.05;
  display: inline-block;
}
.nav-premium__logo em {
  font-style: italic;
  display: block;
  font-size: 0.95rem;
  opacity: 0.85;
  margin-top: 2px;
}

.nav-premium__links {
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-premium__link {
  position: relative;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  padding: 0.4rem 0.1rem;
  color: inherit;
  opacity: 0.92;
  transition: opacity 220ms var(--ease-stand);
}
.nav-premium__link::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  height: 1px;
  width: 0;
  background: currentColor;
  transition: width 280ms var(--ease-luxe);
}
.nav-premium__link:hover { opacity: 1; }
.nav-premium__link:hover::after,
.nav-premium__link.is-active::after { width: 100%; }

.nav-premium__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  color: var(--color-ink);
  background: var(--color-cream);
  border: 1px solid var(--color-ink);
  border-radius: 999px;
  transition: background 220ms var(--ease-stand), color 220ms var(--ease-stand);
}
.nav-premium.is-on-photo:not(.is-scrolled) .nav-premium__cta {
  color: var(--color-cream);
  background: transparent;
  border-color: var(--color-cream);
}
.nav-premium__cta:hover {
  background: var(--color-ink);
  color: var(--color-cream);
}
.nav-premium.is-on-photo:not(.is-scrolled) .nav-premium__cta:hover {
  background: var(--color-cream);
  color: var(--color-ink);
}

.nav-premium__toggle {
  display: none;
  width: 40px; height: 40px;
  background: transparent;
  border: 1px solid currentColor;
  border-radius: 999px;
  position: relative;
  cursor: pointer;
}
.nav-premium__toggle span {
  position: absolute;
  left: 11px; right: 11px;
  height: 1px;
  background: currentColor;
  transition: transform 280ms var(--ease-luxe), opacity 200ms var(--ease-stand);
}
.nav-premium__toggle span:nth-child(1) { top: 14px; }
.nav-premium__toggle span:nth-child(2) { top: 19px; }
.nav-premium__toggle span:nth-child(3) { top: 24px; }
.nav-premium__toggle.is-open span:nth-child(1) { top: 19px; transform: rotate(45deg); }
.nav-premium__toggle.is-open span:nth-child(2) { opacity: 0; }
.nav-premium__toggle.is-open span:nth-child(3) { top: 19px; transform: rotate(-45deg); }

@media (max-width: 880px) {
  .nav-premium__links {
    position: fixed;
    inset: 64px 0 0 0;
    flex-direction: column;
    gap: 0;
    background: var(--color-mist);
    padding: clamp(2rem, 6vh, 4rem) var(--gutter);
    transform: translateY(-12px);
    opacity: 0;
    pointer-events: none;
    transition: transform 380ms var(--ease-luxe), opacity 280ms var(--ease-stand);
  }
  .nav-premium__links.is-open {
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }
  .nav-premium__link {
    font-size: 1.6rem;
    letter-spacing: 0.04em;
    text-transform: none;
    font-family: var(--font-heading);
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-line);
    width: 100%;
    text-align: left;
  }
  .nav-premium__link::after { display: none; }
  .nav-premium__cta { display: none; }
  .nav-premium__toggle { display: inline-block; }
}

/* ============================================
   Page hero — full-bleed photo + headline + CTA
   (Hero treatment "A")
   ============================================ */
.page-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: flex-end;
  padding: 0;
  color: var(--color-cream);
  overflow: hidden;
  isolation: isolate;
}
.page-hero--short { min-height: 64vh; }
.page-hero--tall  { min-height: 100vh; }

/* Collage hero (Yoga Expressions) — bento of Wix images, dark overlay for type */
.page-hero--collage {
  min-height: 90vh;
  align-items: flex-end;
}
.page-hero__collage {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: grid;
  grid-template-columns: 1.15fr 0.75fr 1.1fr;
  grid-template-rows: 1fr 1fr;
  gap: 5px;
  background: var(--color-ink);
  overflow: hidden;
}
.page-hero__collage-cell {
  position: relative;
  overflow: hidden;
  min-height: 0;
}
.page-hero__collage-cell--a { grid-row: 1 / span 2; grid-column: 1; }
.page-hero__collage-cell--b { grid-row: 1; grid-column: 2; }
.page-hero__collage-cell--c { grid-row: 2; grid-column: 2; }
.page-hero__collage-cell--d { grid-row: 1 / span 2; grid-column: 3; }
.page-hero__collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: var(--photo-filter) brightness(0.85);
  transform: scale(1.01);
  animation: none;
}
@media (max-width: 720px) {
  .page-hero--collage { min-height: 78vh; }
  .page-hero__collage {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, minmax(100px, 1fr));
  }
  .page-hero__collage-cell--a { grid-row: 1 / span 2; grid-column: 1; }
  .page-hero__collage-cell--b { grid-row: 1; grid-column: 2; }
  .page-hero__collage-cell--c { grid-row: 2; grid-column: 2; }
  .page-hero__collage-cell--d { grid-row: 3; grid-column: 1 / -1; min-height: 120px; }
}
.page-hero--collage .page-hero__inner {
  position: relative;
  z-index: 1;
}
.page-hero--collage + .section { margin-top: 0; }

.page-hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
  overflow: hidden;
}
.page-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: var(--photo-filter) brightness(0.78);
  animation: kenburns 32s ease-in-out infinite alternate;
  transform-origin: 50% 60%;
}
@keyframes kenburns {
  0%   { transform: scale(1.02) translate3d(0, 0, 0); }
  100% { transform: scale(1.10) translate3d(-1%, -1%, 0); }
}
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(31,28,26,0.12) 0%, rgba(31,28,26,0.42) 60%, rgba(31,28,26,0.66) 100%);
}
.page-hero.page-hero--collage::before {
  background: linear-gradient(
    180deg,
    rgba(31, 28, 26, 0.18) 0%,
    rgba(31, 28, 26, 0.48) 50%,
    rgba(31, 28, 26, 0.93) 100%
  );
  z-index: 0;
}

.page-hero__inner {
  width: 100%;
  max-width: var(--max-w-wide);
  margin: 0 auto;
  padding: clamp(8rem, 18vh, 14rem) var(--gutter) clamp(3rem, 8vh, 6rem);
}
.page-hero__eyebrow {
  font-size: 0.72rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 1.4rem;
  opacity: 0.92;
}
.page-hero__title {
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: var(--text-display);
  line-height: 0.96;
  letter-spacing: -0.01em;
  max-width: 18ch;
  margin: 0 0 1.4rem;
}
.page-hero__title em {
  font-style: italic;
  font-weight: 300;
  display: inline-block;
}
.page-hero__lede {
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  line-height: 1.6;
  max-width: 48ch;
  opacity: 0.9;
  margin-bottom: 2.4rem;
}
.page-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 1rem 2rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  color: var(--color-cream);
  background: transparent;
  border: 1px solid var(--color-cream);
  border-radius: 999px;
  transition: background 240ms var(--ease-stand), color 240ms var(--ease-stand), transform 240ms var(--ease-stand);
}
.page-hero__cta:hover {
  background: var(--color-cream);
  color: var(--color-ink);
  transform: translateY(-1px);
}
.page-hero__cta::after {
  content: "→";
  font-size: 1.1em;
  transition: transform 240ms var(--ease-stand);
}
.page-hero__cta:hover::after { transform: translateX(3px); }

.page-hero__scroll {
  position: absolute;
  left: 50%; bottom: clamp(1.2rem, 3vh, 2rem);
  transform: translateX(-50%);
  font-size: 0.66rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-cream);
  opacity: 0.78;
}
@media (max-width: 880px) {
  .page-hero__scroll { display: none; }
}
.page-hero__scroll::after {
  content: "";
  width: 1px;
  height: 36px;
  background: currentColor;
  animation: scrollLine 2.4s ease-in-out infinite;
  transform-origin: top;
}
@keyframes scrollLine {
  0%   { transform: scaleY(0.2); opacity: 0.2; }
  50%  { transform: scaleY(1);   opacity: 0.9; }
  100% { transform: scaleY(0.2); opacity: 0.2; }
}

/* ============================================
   Section primitives
   ============================================ */
.section {
  padding: var(--section-pad-y) var(--gutter);
}
.section--cream { background: var(--color-cream); }
.section--mist  { background: var(--color-mist); }
.section--paper { background: var(--color-paper); }
.section--ink   { background: var(--color-ink); color: var(--color-cream); }
.section--ink h1, .section--ink h2, .section--ink h3 { color: var(--color-cream); }
.section--ink .section-header .eyebrow { color: rgba(255, 255, 255, 0.5); }
.section--ink .section-header .section-lede { color: rgba(255, 255, 255, 0.78); }

.section__inner {
  max-width: var(--max-w-wide);
  margin: 0 auto;
}
.section__inner--narrow { max-width: var(--max-w-prose); }
.section__inner--prose  { max-width: var(--max-w-narrow); }

.section-header {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-bottom: clamp(2.5rem, 5vh, 4rem);
}
.section-header--center { text-align: center; align-items: center; }
.eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-bronze);
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}
.eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--color-bronze);
  opacity: 0.7;
}
.section-header--center .eyebrow::before { display: none; }

.section-title {
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: var(--text-4xl);
  line-height: 1.05;
  letter-spacing: -0.005em;
  max-width: 22ch;
}
.section-header--center .section-title { margin-inline: auto; }
.section-title em { font-style: italic; }

.section-lede {
  max-width: 56ch;
  font-size: clamp(1rem, 1.2vw, 1.1rem);
  line-height: 1.65;
  color: var(--color-charcoal-light);
  margin-top: 0.4rem;
}
.section-header--center .section-lede { margin-inline: auto; }

/* ============================================
   Editorial split row (asymmetric image + text)
   ============================================ */
.editorial {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.editorial--reverse { grid-template-columns: 1fr 1.1fr; }
.editorial--reverse .editorial__media { order: 2; }
.editorial__media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: 4px;
}
.editorial__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease-luxe);
}
.editorial:hover .editorial__media img { transform: scale(1.04); }
.editorial__body { padding: clamp(0.5rem, 2vw, 2rem) 0; }
.editorial__body .section-title { margin-bottom: 1.5rem; }
.editorial__body p { color: var(--color-charcoal-light); margin-bottom: 1rem; }
.editorial__sig {
  margin-top: 2rem;
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 1.4rem;
  color: var(--color-bronze);
}
@media (max-width: 880px) {
  .editorial,
  .editorial--reverse { grid-template-columns: 1fr; }
  .editorial--reverse .editorial__media { order: -1; }
}

/* ============================================
   Service tiles (homepage trailer)
   ============================================ */
.service-tiles {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1rem, 2vw, 1.5rem);
}
.service-tile {
  position: relative;
  aspect-ratio: 5 / 6;
  overflow: hidden;
  border-radius: 4px;
  color: var(--color-cream);
  isolation: isolate;
  display: block;
  text-decoration: none;
}
.service-tile img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease-luxe);
  filter: var(--photo-filter) brightness(0.7);
}
.service-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 30%, rgba(31, 28, 26, 0.6) 100%);
  transition: opacity 380ms var(--ease-stand);
}
.service-tile:hover img { transform: scale(1.05); }
.service-tile__inner {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 2;
  padding: clamp(1.5rem, 3vw, 2.4rem);
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.service-tile__eyebrow {
  font-size: 0.7rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  opacity: 0.85;
}
.service-tile__title {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 2.4vw, 2.2rem);
  font-weight: 400;
  line-height: 1.1;
}
.service-tile__cta {
  margin-top: 1rem;
  font-size: 0.74rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  opacity: 0.92;
}
.service-tile__cta::after {
  content: "→";
  transition: transform 240ms var(--ease-stand);
}
.service-tile:hover .service-tile__cta::after { transform: translateX(4px); }

@media (max-width: 720px) {
  .service-tiles { grid-template-columns: 1fr; }
  .service-tile { aspect-ratio: 4 / 5; }
}

/* ============================================
   Quote (single hero pull-quote)
   ============================================ */
.quote-hero {
  text-align: center;
  max-width: var(--max-w-prose);
  margin: 0 auto;
  padding: clamp(2rem, 4vh, 4rem) var(--gutter);
}
.quote-hero__mark {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 5rem;
  line-height: 0.4;
  color: var(--color-bronze);
  display: block;
  margin-bottom: 1.5rem;
}
.quote-hero__text {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.35;
  color: var(--color-ink);
  font-weight: 300;
}
.quote-hero__attr {
  margin-top: 1.6rem;
  font-size: 0.78rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-bronze);
}

/* Compact secondary pull-quote (About page) */
.quote-band {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto;
  font-family: var(--font-heading);
  font-style: italic;
  font-size: clamp(1.1rem, 1.8vw, 1.4rem);
  line-height: 1.5;
  color: var(--color-ink);
}
.quote-band__attr {
  margin-top: 0.85rem;
  font-size: 0.72rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-bronze);
}

.section__inner--prose h3 {
  font-family: var(--font-heading);
  font-size: clamp(1.15rem, 1.6vw, 1.4rem);
  font-weight: 500;
  margin-top: 2.1rem;
  margin-bottom: 0.6rem;
  color: var(--color-ink);
}
.section__inner--prose h3:first-of-type { margin-top: 0.5rem; }

/* ============================================
   Schedule strip (home preview)
   ============================================ */
.upnext {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: center;
}
.upnext__list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--color-line);
}
.upnext__item {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 1.5rem;
  align-items: baseline;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--color-line);
}
.upnext__date {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  font-weight: 500;
  font-style: italic;
  color: var(--color-bronze);
}
.upnext__name {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  line-height: 1.2;
}
.upnext__meta {
  font-size: 0.78rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-warm-gray);
}
.upnext__cta {
  font-size: 0.78rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-bronze);
}
.upnext__cta::after { content: " →"; }
.upnext__empty {
  padding: 2rem 0;
  font-style: italic;
  color: var(--color-warm-gray);
}
@media (max-width: 720px) {
  .upnext { grid-template-columns: 1fr; }
  .upnext__item { grid-template-columns: 80px 1fr; }
  .upnext__cta { grid-column: 1 / -1; padding-top: 0.5rem; }
}

/* ============================================
   Premium footer
   ============================================ */
.footer-premium {
  background: var(--color-ink);
  color: var(--color-cream);
  padding: clamp(4rem, 8vh, 7rem) var(--gutter) 2rem;
}
.footer-premium__inner {
  max-width: var(--max-w-wide);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: clamp(2rem, 4vw, 4rem);
}
.footer-premium__brand h3 {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1.05;
  margin-bottom: 0.5rem;
}
.footer-premium__brand h3 em { font-style: italic; }
.footer-premium__brand p {
  font-size: 0.95rem;
  line-height: 1.6;
  opacity: 0.7;
  max-width: 32ch;
}
.footer-premium h4 {
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.04em;
  margin-bottom: 1rem;
  opacity: 0.9;
}
.footer-premium ul { list-style: none; padding: 0; margin: 0; }
.footer-premium li { margin: 0.4rem 0; }
.footer-premium a {
  font-size: 0.92rem;
  opacity: 0.7;
  transition: opacity 220ms var(--ease-stand);
}
.footer-premium a:hover { opacity: 1; }
.footer-premium__newsletter p {
  opacity: 0.7;
  font-size: 0.92rem;
  line-height: 1.5;
  margin-bottom: 1rem;
}
.footer-premium__newsletter input {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,0.3);
  padding: 0.7rem 0;
  color: var(--color-cream);
  font-family: var(--font-body);
  font-size: 0.95rem;
  outline: none;
  transition: border-color 220ms var(--ease-stand);
}
.footer-premium__newsletter input:focus { border-color: var(--color-cream); }
.footer-premium__newsletter button {
  margin-top: 0.8rem;
  background: transparent;
  color: var(--color-cream);
  border: 1px solid rgba(255,255,255,0.5);
  padding: 0.7rem 1.6rem;
  border-radius: 999px;
  font-size: 0.74rem;
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  cursor: pointer;
  transition: background 220ms var(--ease-stand), color 220ms var(--ease-stand);
}
.footer-premium__newsletter button:hover {
  background: var(--color-cream);
  color: var(--color-ink);
}
.footer-premium__bar {
  max-width: var(--max-w-wide);
  margin: clamp(3rem, 6vh, 5rem) auto 0;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.8rem;
  opacity: 0.6;
}
.footer-premium__bar a { opacity: inherit; }
@media (max-width: 880px) {
  .footer-premium__inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  .footer-premium__inner { grid-template-columns: 1fr; }
}

/* ============================================
   Pricing cards (used on /classes)
   ============================================ */
.price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
}
.price-card {
  background: var(--color-paper);
  padding: clamp(2rem, 3vw, 2.6rem);
  border-radius: 4px;
  border: 1px solid var(--color-line);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: border-color 280ms var(--ease-stand), transform 280ms var(--ease-stand);
}
.price-card:hover { border-color: var(--color-bronze); transform: translateY(-3px); }
.price-card__name {
  font-family: var(--font-heading);
  font-size: 1.6rem;
}
.price-card__price {
  font-family: var(--font-heading);
  font-size: 2.4rem;
  font-style: italic;
  color: var(--color-bronze);
  line-height: 1;
}
.price-card__price small {
  font-size: 0.85rem;
  font-style: normal;
  color: var(--color-warm-gray);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}
.price-card ul { list-style: none; padding: 0; margin: 0.5rem 0; }
.price-card li {
  position: relative;
  padding-left: 1.4rem;
  margin: 0.5rem 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--color-charcoal-light);
}
.price-card li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--color-bronze);
}
.price-card__zelle {
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--color-line);
  font-size: 0.85rem;
  color: var(--color-warm-gray);
}
.price-card__zelle code {
  background: var(--color-mist);
  padding: 0.15rem 0.4rem;
  border-radius: 3px;
  font-size: 0.85em;
}
@media (max-width: 880px) {
  .price-grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
}

/* ============================================
   Schedule (full page)
   ============================================ */
.schedule-list {
  border-top: 1px solid var(--color-line);
}
.schedule-row {
  display: grid;
  grid-template-columns: 140px 1fr auto;
  gap: 1.5rem;
  align-items: center;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--color-line);
  transition: padding-left 280ms var(--ease-stand);
}
.schedule-row:hover { padding-left: 0.6rem; }
.schedule-row__date {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-style: italic;
  color: var(--color-bronze);
}
.schedule-row__name {
  font-family: var(--font-heading);
  font-size: 1.5rem;
}
.schedule-row__meta {
  font-size: 0.78rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-warm-gray);
  margin-top: 0.3rem;
}
.schedule-row__desc {
  font-size: 0.95rem;
  color: var(--color-warm-gray);
  margin-top: 0.45rem;
  max-width: 56ch;
  line-height: 1.55;
}
.schedule-row__tag {
  font-size: 0.72rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  padding: 0.35rem 0.8rem;
  border: 1px solid var(--color-line-strong);
  border-radius: 999px;
  color: var(--color-charcoal-light);
}
.schedule-row__side {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.schedule-row__price {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  color: var(--color-bronze);
  white-space: nowrap;
}
.schedule-row__register {
  font-size: 0.78rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  background: var(--color-bronze);
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 200ms var(--ease-stand), filter 200ms;
}
.schedule-row__register:hover { transform: translateY(-1px); filter: brightness(1.05); }
.event-card__cta--register {
  background: var(--color-bronze);
  color: #fff;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  display: inline-block;
}
.event-card__cta--register:hover { filter: brightness(1.05); }
.event-card__price {
  font-family: var(--font-heading);
  font-style: italic;
  color: var(--color-bronze);
  margin: 0.15rem 0 0.4rem;
  font-size: 1.05rem;
}
@media (max-width: 720px) {
  .schedule-row { grid-template-columns: 100px 1fr; }
  .schedule-row__side { grid-column: 1 / -1; justify-self: flex-start; }
}

/* ============================================
   Blog index magazine grid
   ============================================ */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 2vw, 2rem);
}
.blog-grid__card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  text-decoration: none;
  color: inherit;
}
.blog-grid__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 4px;
}
.blog-grid__media-fallback {
  width: 100%;
  height: 100%;
  min-height: 6rem;
  background: linear-gradient(145deg, var(--color-mist), var(--color-line));
}
.blog-grid__empty {
  color: var(--color-warm-gray);
  font-size: 0.95rem;
  margin: 0;
  padding: 1rem 0;
}
.blog-grid__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.4s var(--ease-luxe);
}
.blog-grid__card:hover .blog-grid__media img { transform: scale(1.05); }
.blog-grid__tag {
  font-size: 0.7rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-bronze);
}
.blog-grid__title {
  font-family: var(--font-heading);
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  line-height: 1.2;
  letter-spacing: -0.005em;
}
.blog-grid__sub {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--color-charcoal-light);
}
.blog-grid__meta {
  font-size: 0.78rem;
  color: var(--color-warm-gray);
  letter-spacing: 0.04em;
  margin-top: auto;
}
@media (max-width: 880px) { .blog-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .blog-grid { grid-template-columns: 1fr; } }

/* Featured (first) blog card spans 2 cols */
.blog-grid--featured .blog-grid__card:first-child {
  grid-column: span 2;
}
.blog-grid--featured .blog-grid__card:first-child .blog-grid__media {
  aspect-ratio: 16 / 10;
}
.blog-grid--featured .blog-grid__card:first-child .blog-grid__title {
  font-size: clamp(2rem, 3vw, 2.6rem);
}
@media (max-width: 880px) {
  .blog-grid--featured .blog-grid__card:first-child { grid-column: span 2; }
}
@media (max-width: 540px) {
  .blog-grid--featured .blog-grid__card:first-child { grid-column: span 1; }
}

/* ============================================
   Lineage / Yoga Expressions editorial (used on About)
   ============================================ */
.philosophy-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1rem, 2vw, 2rem);
}
.philosophy-grid--three {
  grid-template-columns: repeat(3, 1fr);
  max-width: 1100px;
  margin-inline: auto;
}
.philosophy-card {
  padding: clamp(1.5rem, 2.5vw, 2.2rem);
  background: var(--color-paper);
  border-radius: 4px;
  border-left: 2px solid var(--color-bronze);
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.philosophy-card__num {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--color-bronze);
  letter-spacing: 0.04em;
}
.philosophy-card__name {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  line-height: 1.2;
}
.philosophy-card__desc {
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--color-charcoal-light);
}
@media (max-width: 880px) {
  .philosophy-grid { grid-template-columns: 1fr 1fr; }
  .philosophy-grid--three { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  .philosophy-grid { grid-template-columns: 1fr; }
  .philosophy-grid--three { grid-template-columns: 1fr; }
}

.lineage-note {
  max-width: 720px;
  margin: clamp(2rem, 4vw, 3.5rem) auto 0;
  padding: clamp(1.2rem, 2vw, 1.8rem) clamp(1.4rem, 3vw, 2.2rem);
  border-left: 2px solid var(--color-bronze);
  font-family: var(--font-heading);
  font-style: italic;
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  line-height: 1.6;
  color: var(--color-charcoal-light);
}

/* ============================================
   Forms (refined)
   ============================================ */
.form-luxe {
  display: grid;
  gap: 1.5rem;
}
.form-luxe__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
@media (max-width: 640px) { .form-luxe__row { grid-template-columns: 1fr; } }

.form-luxe__group {
  position: relative;
}
.form-luxe__group input,
.form-luxe__group textarea {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--color-line-strong);
  padding: 1rem 0 0.7rem;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-ink);
  outline: none;
  transition: border-color 220ms var(--ease-stand);
}
.form-luxe__group textarea { resize: vertical; min-height: 110px; }
.form-luxe__group label {
  position: absolute;
  left: 0; top: 1.1rem;
  font-size: 0.95rem;
  color: var(--color-warm-gray);
  pointer-events: none;
  transition: top 220ms var(--ease-stand), font-size 220ms var(--ease-stand), color 220ms var(--ease-stand);
}
.form-luxe__group input:focus,
.form-luxe__group textarea:focus {
  border-color: var(--color-bronze);
}
.form-luxe__group input:focus + label,
.form-luxe__group input:not(:placeholder-shown) + label,
.form-luxe__group textarea:focus + label,
.form-luxe__group textarea:not(:placeholder-shown) + label {
  top: -0.4rem;
  font-size: 0.7rem;
  color: var(--color-bronze);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.btn-luxe {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 1rem 2rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: var(--tracking-button);
  text-transform: uppercase;
  background: var(--color-ink);
  color: var(--color-cream);
  border: 1px solid var(--color-ink);
  border-radius: 999px;
  cursor: pointer;
  transition: background 240ms var(--ease-stand), color 240ms var(--ease-stand), transform 240ms var(--ease-stand);
}
.btn-luxe:hover { background: transparent; color: var(--color-ink); transform: translateY(-1px); }
.btn-luxe::after { content: "→"; transition: transform 220ms var(--ease-stand); }
.btn-luxe:hover::after { transform: translateX(3px); }
.btn-luxe--ghost {
  background: transparent;
  color: var(--color-ink);
}
.btn-luxe--ghost:hover { background: var(--color-ink); color: var(--color-cream); }
.btn-luxe--light {
  background: var(--color-cream);
  color: var(--color-ink);
  border-color: var(--color-cream);
}
.btn-luxe--light:hover { background: transparent; color: var(--color-cream); border-color: var(--color-cream); }

/* ============================================
   In-person classes (Parsippany pilot)
   Self-contained so the entire section can be removed after the trial.
   ============================================ */
.inperson-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: clamp(1.5rem, 3vw, 2.4rem);
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
}
.inperson-info {
  background: var(--color-paper);
  padding: clamp(1.5rem, 3vw, 2rem);
  border-radius: 14px;
  border: 1px solid var(--color-line);
}
.inperson-info__heading {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  margin: 0 0 0.6rem;
  color: var(--color-charcoal);
}
.inperson-info__heading + .inperson-info__heading,
.inperson-info__list + .inperson-info__heading {
  margin-top: 1.5rem;
}
.inperson-info__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.45rem;
}
.inperson-info__list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.3rem 0;
  border-bottom: 1px solid var(--color-line);
  color: var(--color-charcoal-light);
}
.inperson-info__list li:last-child { border-bottom: 0; }
.inperson-info__list strong {
  font-weight: 500;
  color: var(--color-charcoal);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  font-size: 0.78rem;
}
.inperson-info__list span {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 1rem;
  color: var(--color-bronze);
}
.inperson-info__address {
  font-style: normal;
  line-height: 1.6;
  color: var(--color-charcoal-light);
}
.inperson-special {
  background: linear-gradient(135deg, var(--color-mist), var(--color-cream));
  border: 1px solid var(--color-line);
  border-radius: 14px;
  padding: clamp(1.6rem, 3vw, 2rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}
.inperson-special__eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-bronze);
  margin-bottom: 0.6rem;
}
.inperson-special__price {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2rem);
  margin: 0;
  line-height: 1.2;
}
.inperson-special__price strong {
  color: var(--color-bronze);
  font-weight: 600;
}
.inperson-special__note {
  margin-top: 0.4rem;
  font-size: 0.85rem;
  color: var(--color-warm-gray);
}

.inperson-pricing {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(1rem, 2vw, 1.5rem);
  margin-top: clamp(1rem, 2vw, 1.5rem);
}
.inperson-tier {
  background: var(--color-paper);
  border: 1px solid var(--color-line);
  border-radius: 14px;
  padding: clamp(1.4rem, 3vw, 1.8rem);
}
.inperson-tier--accent {
  background: var(--color-ink);
  color: var(--color-cream);
  border-color: var(--color-ink);
}
.inperson-tier__name {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  margin: 0 0 1rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  text-align: center;
  font-weight: 500;
}
.inperson-tier ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.7rem;
}
.inperson-tier li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--color-line);
}
.inperson-tier--accent li {
  border-bottom-color: rgba(255, 255, 255, 0.12);
}
.inperson-tier li:last-child { border-bottom: 0; padding-bottom: 0; }
.inperson-tier li small {
  display: block;
  font-size: 0.75rem;
  color: var(--color-warm-gray);
  margin-top: 0.15rem;
}
.inperson-tier--accent li small { color: rgba(255, 255, 255, 0.55); }
.inperson-tier strong {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  color: var(--color-bronze);
  white-space: nowrap;
}
.inperson-tier--accent strong { color: var(--color-cream); }

.inperson-cta {
  margin-top: clamp(1.5rem, 3vw, 2.2rem);
  text-align: center;
}
.inperson-cta__note {
  margin-top: 0.8rem;
  font-size: 0.78rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-warm-gray);
}

@media (max-width: 720px) {
  .inperson-grid,
  .inperson-pricing { grid-template-columns: 1fr; }
}

.form-feedback {
  font-size: 0.9rem;
  padding: 0.5rem 0;
  display: none;
}
.form-feedback.is-error   { color: #b14040; display: block; }
.form-feedback.is-success { color: var(--color-sage-dark); display: block; }
.form-feedback.is-info    { color: var(--color-warm-gray); display: block; }

/* ============================================
   Reveal animation
   ============================================ */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 800ms var(--ease-luxe), transform 800ms var(--ease-luxe);
  transition-delay: var(--reveal-delay, 0ms);
}
.reveal.is-revealed {
  opacity: 1;
  transform: none;
}
.reveal--d1 { --reveal-delay:  80ms; }
.reveal--d2 { --reveal-delay: 160ms; }
.reveal--d3 { --reveal-delay: 240ms; }
.reveal--d4 { --reveal-delay: 320ms; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .page-hero__media img { animation: none; }
  .page-hero__scroll::after { animation: none; }
}

/* ============================================
   Premium testimonials (single hero quote on home,
   full collection on testimonials section / classes)
   ============================================ */
.testimonial-luxe {
  display: grid;
  grid-template-columns: minmax(200px, 320px) 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
  max-width: var(--max-w-wide);
  margin: 0 auto;
}
.testimonial-luxe__media {
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 4px;
}
.testimonial-luxe__media img {
  width: 100%; height: 100%; object-fit: cover;
}
.testimonial-luxe__quote {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  line-height: 1.4;
  color: var(--color-ink);
  font-weight: 300;
  margin-bottom: 1.4rem;
}
.testimonial-luxe__attr {
  font-size: 0.8rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-bronze);
}
@media (max-width: 720px) { .testimonial-luxe { grid-template-columns: 1fr; } }

/* ============================================
   Dark quote-hero variant (used inside .section--ink)
   ============================================ */
.section--ink .quote-hero__text {
  color: var(--color-cream);
}
.section--ink .quote-hero__mark,
.section--ink .quote-hero__attr {
  color: var(--color-bronze-soft);
}

/* ============================================
   Utility classes (avoid inline styles for CSP)
   ============================================ */
.u-text-center { text-align: center; }
.u-mt-md { margin-top: 1.5rem; }
.u-mt-lg { margin-top: clamp(2rem, 4vh, 3rem); }
.u-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 1rem;
}

/* Compact "what's next" intro copy on home */
.upnext__intro {
  max-width: 48ch;
  color: var(--color-charcoal-light);
  line-height: 1.65;
}
.upnext__intro + .btn-luxe { margin-top: 1.5rem; }

/* Editorial body lists */
.editorial__body ul,
.editorial__body p + ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.editorial__body li {
  padding: 0.4rem 0;
  color: var(--color-charcoal-light);
  font-size: 0.98rem;
  line-height: 1.6;
}

/* Payments expandable details (Zelle / Refunds) */
.payments-detail {
  border-bottom: 1px solid var(--color-line);
  padding: 1.25rem 0;
  cursor: pointer;
}
.payments-detail summary {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 500;
  list-style: none;
  position: relative;
  padding-right: 2rem;
}
.payments-detail summary::-webkit-details-marker { display: none; }
.payments-detail summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 0;
  color: var(--color-bronze);
  transition: transform 240ms var(--ease-stand);
  font-size: 1.5rem;
  line-height: 1;
}
.payments-detail[open] summary::after { content: "−"; }
.payments-detail p {
  margin-top: 0.8rem;
  color: var(--color-charcoal-light);
  font-size: 0.95rem;
  line-height: 1.65;
}

/* ============================================
   Contact page layout
   ============================================ */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
@media (max-width: 880px) {
  .contact-layout { grid-template-columns: 1fr; }
}

.contact-aside .section-title { margin-bottom: 0.5rem; }
.contact-aside__methods {
  margin-top: 2.5rem;
  display: grid;
  gap: 1.6rem;
}
.contact-aside__method {
  display: grid;
  gap: 0.2rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--color-line);
  text-decoration: none;
  color: inherit;
  transition: border-color 220ms var(--ease-stand);
}
a.contact-aside__method:hover { border-bottom-color: var(--color-bronze); }
.contact-aside__method-label {
  font-size: 0.7rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-bronze);
}
.contact-aside__method-value {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  color: var(--color-ink);
}
.contact-aside__social {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
}
.contact-aside__social a {
  font-size: 0.78rem;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-charcoal-light);
  position: relative;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--color-line-strong);
  transition: color 220ms var(--ease-stand), border-color 220ms var(--ease-stand);
}
.contact-aside__social a:hover {
  color: var(--color-bronze);
  border-bottom-color: var(--color-bronze);
}

.contact-form-wrap {
  background: var(--color-paper);
  padding: clamp(1.8rem, 3.5vw, 3rem);
  border-radius: 4px;
  border: 1px solid var(--color-line);
}
.contact-form__fineprint {
  margin-top: 1rem;
  font-size: 0.78rem;
  line-height: 1.55;
  color: var(--color-warm-gray);
  font-style: italic;
}

/* Re-skin the legacy testimonials slider for premium pages */
.section--cream .testimonials__slider,
.section--mist  .testimonials__slider {
  background: var(--color-paper);
  border-radius: 4px;
  border: 1px solid var(--color-line);
}
.section--cream .testimonials__submit,
.section--mist  .testimonials__submit {
  background: transparent;
  margin-top: clamp(2rem, 4vh, 3rem);
}
.section--cream .testimonials__submit-header h3,
.section--mist  .testimonials__submit-header h3 {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  margin-bottom: 0.3rem;
}
.section--cream .testimonial-form__note,
.section--mist  .testimonial-form__note {
  font-size: 0.85rem;
  color: var(--color-warm-gray);
  font-style: italic;
}

/* Yoga Expressions longform */
.yoga-expr-article {
  max-width: min(100%, 52rem);
  margin-inline: auto;
  padding: 0;
}
.yoga-expr-article p {
  margin: 0 0 1.1rem;
  line-height: 1.75;
  color: var(--color-charcoal-light);
  font-size: 0.98rem;
}
.yoga-expr-article h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.2rem, 1.9vw, 1.6rem);
  font-weight: 500;
  line-height: 1.3;
  margin: 0;
  padding: 2.25rem 0 0.85rem;
  color: var(--color-ink);
  border-top: 1px solid var(--color-line);
}
.yoga-expr-article h2:first-of-type {
  border-top: 0;
  padding-top: 0.5rem;
}
.yoga-expr-article__intro p:first-of-type {
  font-size: 1.02rem;
}
.yoga-expr-article .four-paths {
  list-style: none;
  margin: 1rem 0 1.5rem;
  padding: 0;
}
.yoga-expr-article .four-paths li {
  border-left: 2px solid var(--color-bronze);
  padding: 0.4rem 0 0.4rem 1rem;
  margin-bottom: 0.45rem;
  line-height: 1.6;
}
.yoga-expr-article .four-paths li strong {
  font-weight: 500;
  color: var(--color-ink);
}
.yoga-expr-next {
  font-size: 0.95rem;
  color: var(--color-warm-gray);
}
.yoga-expr-paths { max-width: 52rem; margin: 0 auto; }
.four-paths--on-ink {
  list-style: none;
  margin: 0 auto 2rem;
  padding: 0;
  max-width: 40rem;
}
.four-paths--on-ink li {
  border-left: 2px solid var(--color-bronze-soft);
  padding: 0.4rem 0 0.4rem 1rem;
  margin-bottom: 0.45rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
}
.four-paths--on-ink li strong {
  font-weight: 500;
  color: var(--color-cream);
}
.yoga-expr-paths__closing {
  color: rgba(255, 255, 255, 0.8);
  max-width: 48rem;
  margin: 0 auto;
  font-size: 0.98rem;
  line-height: 1.7;
}
