:root {
  --bg: #fbf1ef;
  --ink: #344d3d;
  --muted: #526859;
  --rose: #c36b74;
  --line: #e8cfcb;
  --soft: #f8e9e6;
  --white: #fffaf8;
}

/* Guarantee [hidden] always hides — cannot be overridden by other rules */
[hidden] { display: none !important; }

* {
  box-sizing: border-box;
}

html {
  /* scroll-behavior: smooth removed — global smooth scroll causes pages to
     visibly drift after navigation as the browser restores scroll position.
     All intentional smooth scrolling is done in JS (scrollToTabs etc.)    */
  scrollbar-gutter: stable;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--bg);
  font-family: "Avenir Next", "Segoe UI", Arial, sans-serif;
  font-size: 18px;
  line-height: 1.35;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* No overflow-x here — setting overflow on html OR body propagates to the
     viewport, which breaks position:sticky on Android Chrome.
     The .mobile-menu is position:fixed so it cannot cause document overflow.
     Individual .section elements already have overflow:hidden.             */
}

body.menu-open {
  overflow: hidden;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--rose);
  outline-offset: 4px;
}

h1,
h2,
h3,
blockquote {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  line-height: 0.98;
}

h1 {
  max-width: 620px;
  font-size: clamp(4rem, 7vw, 6rem);
  letter-spacing: -0.025em;
}

h2 {
  font-size: clamp(2.8rem, 5vw, 4.2rem);
  letter-spacing: -0.02em;
}

h3 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  letter-spacing: -0.01em;
}

p {
  margin: 0;
}

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

.site-header {
  position: -webkit-sticky; /* iOS Safari / old Android Chrome fallback */
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  width: 100%;
  padding: 18px clamp(20px, 3.5%, 56px);
  /* Solid fallback for browsers that don't support color-mix() (Chrome < 111).
     Without this the header background is transparent and the header looks
     invisible even though position:sticky is working correctly.             */
  background: rgba(251, 241, 239, 0.92);
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(232, 207, 203, 0.4);
}

.brand img {
  width: clamp(210px, 20vw, 280px);
  height: auto;
}

.header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.header-main-row {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 42px);
}

.header-locale {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.header-city {
  padding: 3px 10px;
  border: 1px solid rgba(195, 107, 116, 0.38);
  border-radius: 100px;
  color: var(--rose);
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.header-locale-sep {
  display: none;
}

.header-lang {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
}

.header-lang a {
  color: var(--muted);
  transition: color 160ms ease;
}

.header-lang a.lang-active {
  color: var(--ink);
  font-weight: 700;
}

@media (hover: hover) {
  .header-lang a:hover {
    color: var(--rose);
  }
}

.header-lang span {
  color: rgba(82, 104, 89, 0.4);
  font-size: 0.65rem;
}

.desktop-nav {
  display: flex;
  align-items: center;
  gap: clamp(26px, 4vw, 54px);
  font-size: 17px;
  letter-spacing: 0.025em;
  color: #0e241b;
}

.desktop-nav a,
.footer-links a,
.mobile-menu a {
  transition: color 160ms ease;
  /* Prevent iOS Safari double-tap-to-navigate (first tap = hover, second = click) */
  touch-action: manipulation;
}

/* Hover colour only on real pointer devices — touch screens skip this entirely
   so iOS Safari navigates on the FIRST tap instead of needing two taps */
@media (hover: hover) {
  .desktop-nav a:hover,
  .footer-links a:hover,
  .mobile-menu a:hover {
    color: var(--rose);
  }
}

.desktop-nav .nav-button,
.mobile-menu .nav-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 26px;
  color: #fff;
  background: var(--ink);
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

@media (hover: hover) {
  .desktop-nav .nav-button:hover,
  .mobile-menu .nav-button:hover {
    color: #fff;
    background: var(--rose);
  }
}

.menu-toggle,
.menu-close {
  border: 0;
  color: var(--ink);
  background: transparent;
  cursor: pointer;
}

.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  padding: 10px;
}

.menu-toggle span:not(.sr-only) {
  display: block;
  height: 1.5px;
  margin: 6px 0;
  background: var(--ink);
}

.menu-close {
  font-size: 42px;
  line-height: 1;
}

.menu-scrim {
  position: fixed;
  inset: 0;
  z-index: 25;
  pointer-events: none;
  background: rgba(29, 39, 32, 0);
  transition: background 220ms ease;
}

.mobile-menu {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 30;
  display: flex;
  flex-direction: column;
  width: min(86vw, 390px);
  height: 100dvh;
  padding: 28px;
  overflow-y: auto;
  background: var(--white);
  border-left: 1px solid var(--line);
  box-shadow: -30px 0 70px rgba(58, 70, 58, 0.16);
  transform: translateX(110%);
  transition: transform 240ms ease;
}

.mobile-menu__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.mobile-menu__top .menu-logo {
  width: clamp(170px, 42vw, 220px);
  height: auto;
  max-height: 74px;
  object-fit: contain;
}

.mobile-menu nav {
  display: grid;
  justify-items: start;
  gap: 18px;
  margin-top: 52px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2rem;
}

.mobile-menu p {
  margin-top: auto;
  color: var(--rose);
  letter-spacing: 0.28em;
  font-size: 0.82rem;
  text-transform: uppercase;
}

.mobile-locale {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 28px;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.mobile-locale .header-city {
  color: var(--rose);
}

.mobile-locale a {
  color: var(--muted);
  transition: color 160ms ease;
}

.mobile-locale a.lang-active {
  color: var(--ink);
  font-weight: 700;
}

@media (hover: hover) {
  .mobile-locale a:hover {
    color: var(--rose);
  }
}

body.menu-open .menu-scrim {
  pointer-events: auto;
  background: rgba(29, 39, 32, 0.28);
}

body.menu-open .mobile-menu {
  transform: translateX(0);
}

.section {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(232, 207, 203, 0.55);
  scroll-margin-top: 140px; /* clear sticky header (≈130px) so eyebrow is fully visible */
}

/* Eyebrow labels used as hash-scroll targets on the classes page.
   Mobile header is ~102px (16px padding-top + ~70px logo + 16px padding-bottom).
   Set to 108px so native hash-scroll already clears the header; the JS nudge()
   then fine-tunes to the exact measured height.                               */
p.label-lines[id] {
  scroll-margin-top: 110px;
}

.section::before,
.classes::after,
.expect::after,
.sangha::after {
  display: none;
}

.section-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1480px;
  margin-inline: auto;
  padding: clamp(50px, 6vw, 86px) clamp(20px, 3.5%, 56px);
}

.hero {
  border-bottom: 0;
}

.practice::before {
  display: none;
}

.hero::after,
.quiet::after,
.practice::after {
  display: none;
}

.hero .section-inner {
  padding-top: 0;
  padding-bottom: 0;
  align-items: stretch;
  min-height: calc(100svh - 140px);
}

.quiet .section-inner {
  padding-top: clamp(32px, 3.5vw, 52px);
  padding-bottom: clamp(34px, 3.5vw, 54px);
}

.classes .section-inner {
  padding-top: clamp(36px, 4vw, 60px);
  padding-bottom: clamp(36px, 4vw, 60px);
}

.hero__grid,
.two-col {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  align-items: center;
  gap: clamp(32px, 5vw, 72px);
}

.two-col--reverse {
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1fr);
}

.hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(32px, 4vw, 60px) 0;
}

.hero h1 {
  max-width: 14ch;
  font-size: clamp(4.2rem, 5.8vw, 6.4rem);
  line-height: 1.0;
}

.eyebrow,
.kicker,
.label-lines {
  color: #b75f68;
  font-size: 0.9rem;
  letter-spacing: 0.18em;
}

.hero .eyebrow {
  margin-bottom: 18px;
}

.lead {
  max-width: 590px;
  margin-top: 54px;
  color: var(--muted);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}

.hero .lead {
  max-width: 560px;
  margin-top: 28px;
  color: var(--muted);
  font-size: clamp(1.25rem, 1.65vw, 1.5rem);
  line-height: 1.55;
}

.hero .lead + .lead {
  margin-top: 8px;
}

.clarity-line {
  max-width: 580px;
  margin-top: 18px;
  color: var(--ink);
  font-size: clamp(1rem, 1.4vw, 1.2rem);
}

.actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 30px;
  margin-top: 70px;
}

.hero .actions {
  margin-top: 42px;
}

.exchange .actions {
  align-items: center;
}

.exchange .actions .text-link {
  margin-top: 0;
}

.practice .actions {
  align-items: center;
  margin-top: 34px;
}

.practice .actions .text-link {
  margin-top: 0;
}

.tagline {
  margin-top: 12px;
  color: var(--ink);
  font-style: italic;
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  letter-spacing: 0.04em;
  opacity: 0.72;
}

.training-note {
  margin-top: 18px;
  color: var(--muted);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
}

.section-intro {
  max-width: 780px;
  margin-top: 20px;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.5vw, 1.22rem);
  line-height: 1.65;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 12px 32px;
  color: #fff;
  background: var(--ink);
  border: 0;
  border-radius: 999px;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}

.button:hover {
  color: #fff;
  background: var(--rose);
  transform: translateY(-1px);
}

.text-link {
  display: inline-block;
  color: var(--ink);
  border-bottom: 1px solid var(--rose);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  transition: color 160ms ease;
}

.text-link:hover {
  color: var(--rose);
}

.subtle-link {
  color: var(--muted);
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

.mantra {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(22px, 5vw, 70px);
  margin-top: 68px;
  color: var(--rose);
  letter-spacing: 0.38em;
  font-size: 0.8rem;
  text-transform: uppercase;
}

.hero .mantra {
  margin-top: 36px;
}

.image-crop {
  overflow: hidden;
  background: var(--soft);
}

.image-crop img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__image {
  position: relative;
  height: auto;
  background: transparent;
  overflow: visible;
  align-self: center;
}

/* Soft circle backdrop — sits behind the image, does not clip it */
.hero__image::before {
  content: "";
  position: absolute;
  width: 88%;
  aspect-ratio: 1 / 1;
  top: 52%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(248, 233, 230, 0.9);
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}

.hero__image::after {
  display: none;
}

.hero__image img {
  position: relative;
  z-index: 1;
  object-fit: contain;
  object-position: center center;
  filter: saturate(0.84) contrast(0.9) brightness(1.04) sepia(0.02);
}

.narrow {
  max-width: 760px;
}

.center {
  text-align: center;
}

.quiet h2 {
  margin-top: 70px;
  font-size: clamp(2rem, 3vw, 2.35rem);
}

.quiet p:not(.label-lines) {
  margin-top: 42px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4vw, 2.35rem);
  line-height: 1.08;
}

.quiet .text-link {
  margin-top: 70px;
}

.label-lines {
  display: inline-flex;
  align-items: center;
  gap: 22px;
  text-transform: uppercase;
  font-size: 0.78rem;
  letter-spacing: 0.44em;
}

.label-lines::before,
.label-lines::after {
  content: "";
  width: 36px;
  height: 1px;
  background: var(--rose);
}

.label-lines--left::after {
  display: none;
}

.section-heading {
  max-width: 620px;
  margin: 0 auto clamp(34px, 4vw, 48px);
}

.section-heading h2 {
  margin-top: 24px;
}

.section-heading p:last-child {
  margin-top: 22px;
  color: var(--muted);
  font-size: 1.35rem;
}

.class-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(6, auto);
  column-gap: clamp(18px, 2.5vw, 32px);
  row-gap: 0;
  margin-bottom: 36px;
}

.class-card {
  display: grid;
  grid-row: span 6;
  grid-template-rows: subgrid;
  padding: clamp(26px, 3.5vw, 42px);
  border: 1px solid rgba(232, 207, 203, 0.65);
  border-top: 1.5px solid var(--rose);
}

.class-card__icon {
  display: block;
  width: 44px;
  height: 44px;
  margin-bottom: 20px;
  flex-shrink: 0;
}

.class-card h3 {
  font-size: clamp(1.3rem, 1.9vw, 1.65rem);
  letter-spacing: -0.01em;
  line-height: 1.15;
}

.class-card__teacher {
  margin-top: 8px;
  color: var(--rose);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.class-card__modes {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.class-card__modes span {
  padding: 4px 12px;
  border: 1px solid rgba(195, 107, 116, 0.45);
  border-radius: 100px;
  color: var(--muted);
  font-size: 0.68rem;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.class-card__desc {
  margin-top: 16px;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.65;
  align-self: start;
}

.class-card .text-link {
  margin-top: 24px;
}

.accordion {
  max-width: 900px;
  margin: 0 auto 36px;
}

.accordion-item {
  border-bottom: 1px solid rgba(232, 207, 203, 0.6);
}

.accordion-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  padding: 24px 12px;
  border: 0;
  color: var(--ink);
  background: transparent;
  text-align: left;
  font: inherit;
  font-size: clamp(1.5rem, 2.4vw, 1.9rem);
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: color 160ms ease;
}

.accordion-trigger:hover {
  color: var(--rose);
}

.accordion-icon {
  position: relative;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border: 1px solid var(--rose);
  border-radius: 50%;
  transition: background 160ms ease;
}

.accordion-icon::before,
.accordion-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 1px;
  background: var(--rose);
  transform: translate(-50%, -50%);
  transition: opacity 160ms ease, background 160ms ease;
}

.accordion-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.accordion-trigger[aria-expanded="true"] .accordion-icon {
  background: var(--rose);
}

.accordion-trigger[aria-expanded="true"] .accordion-icon::before,
.accordion-trigger[aria-expanded="true"] .accordion-icon::after {
  background: #fff;
}

.accordion-trigger[aria-expanded="true"] .accordion-icon::after {
  opacity: 0;
}

.accordion-panel {
  padding: 0 12px 34px;
  color: var(--muted);
  font-size: 1.15rem;
  line-height: 1.6;
}

.accordion-panel p + p {
  margin-top: 16px;
}

.dummy-copy {
  color: var(--rose);
}

.practice__image {
  position: relative;
  height: clamp(270px, 28vw, 390px);
  background: transparent;
  overflow: visible;
  align-self: center;
}

.practice__image::before {
  content: "";
  position: absolute;
  width: 82%;
  aspect-ratio: 1 / 1;
  top: 52%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(248, 233, 230, 0.9);
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}

.practice__image img {
  position: relative;
  z-index: 1;
  object-fit: contain;
  object-position: bottom center;
  filter: saturate(0.84) contrast(0.9) brightness(1.04) sepia(0.02);
}

.practice .section-inner {
  padding-top: clamp(40px, 4.5vw, 66px);
  padding-bottom: clamp(40px, 4.5vw, 66px);
}

.trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.trust-row span {
  padding: 7px 16px;
  color: var(--ink);
  background: rgba(248, 233, 230, 0.5);
  border: 1px solid rgba(232, 207, 203, 0.7);
  border-radius: 2px;
  font-size: 0.84rem;
  letter-spacing: 0.04em;
}

.practice-return {
  grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1fr);
  gap: clamp(42px, 6vw, 82px);
}

.two-col h2 {
  margin-top: 22px;
}

.two-col p:not(.kicker) {
  max-width: 620px;
  margin-top: 18px;
  color: var(--muted);
  font-size: clamp(1.12rem, 1.55vw, 1.36rem);
}

.two-col .text-link {
  margin-top: 36px;
}

.exchange__image {
  width: min(100%, 330px);
  height: 450px;
  justify-self: center;
  border-radius: 0;
}

.exchange__image img {
  object-position: center;
}

.expect .section-inner {
  max-width: 1160px;
}

.expect h2 {
  margin-top: 28px;
}

.expect-list {
  display: grid;
  gap: 28px;
  max-width: 890px;
  margin-top: 64px;
}

.expect-list div {
  display: grid;
  grid-template-columns: 80px 1fr;
  column-gap: 18px;
  align-items: start;
}

.expect-list span {
  grid-row: span 2;
  color: #e6d0cd;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.8rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.expect-list p {
  margin-top: 8px;
  color: var(--muted);
  font-size: 1.15rem;
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 4vw, 48px);
}

figure {
  margin: 0;
  min-height: 246px;
  padding: clamp(28px, 4vw, 42px) 0;
  border: 0;
  border-top: 1.5px solid var(--rose);
}

blockquote {
  position: relative;
  font-size: clamp(1.55rem, 2.5vw, 1.95rem);
}

blockquote::before {
  content: "\201C";
  display: block;
  margin-bottom: 12px;
  color: var(--rose);
  font-size: 2.2rem;
  line-height: 0.7;
}

figcaption {
  margin-top: 28px;
  color: var(--muted);
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.instagram h2 {
  margin: 28px auto 40px;
}

.insta-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 205px));
  justify-content: center;
  gap: clamp(12px, 2vw, 20px);
  margin-bottom: 28px;
}

.insta-grid img {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 6px;
  object-fit: cover;
  background: var(--soft);
  transition: opacity 280ms ease, transform 280ms ease;
}

.insta-grid img:hover {
  opacity: 0.85;
  transform: scale(1.015);
}

.insta-grid img:nth-child(1) {
  object-position: center;
}

.insta-grid img:nth-child(2) {
  object-fit: contain;
  object-position: center;
}

.insta-grid img:nth-child(3) {
  object-fit: contain;
  object-position: bottom center;
}

.insta-grid img:nth-child(4) {
  object-position: center;
}

.site-footer {
  border-bottom: 0;
}

.footer-grid {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) 1.55fr;
  gap: clamp(50px, 8vw, 120px);
  padding-top: 42px;
  padding-bottom: 42px;
}

.brand img,
.footer-logo {
  width: clamp(210px, 20vw, 280px);
  height: auto;
}

.signup h2 {
  margin-top: 30px;
  font-size: 2.2rem;
}

.signup p {
  max-width: 560px;
  margin-top: 12px;
  color: var(--muted);
}

form {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 26px;
}

input {
  width: min(100%, 232px);
  min-height: 50px;
  padding: 14px 18px;
  color: var(--ink);
  background: transparent;
  border: 1px solid #eab2b6;
  border-radius: 2px;
  font: inherit;
  transition: border-color 160ms ease;
}

/* Checkbox — reset global input sizing so it stays small and aligns with text */
input[type="checkbox"] {
  width: 16px;
  min-width: 16px;
  max-width: 16px;
  height: 16px;
  min-height: 16px;
  padding: 0;
  flex-shrink: 0;
  margin: 3px 0 0;
  accent-color: var(--rose);
  cursor: pointer;
}

/* Select — transparent, matching site palette */
select {
  width: 100%;
  min-height: 50px;
  padding: 14px 18px;
  color: var(--ink);
  background: transparent;
  border: 1px solid #eab2b6;
  border-radius: 2px;
  font: inherit;
  cursor: pointer;
  transition: border-color 160ms ease;
  -webkit-appearance: auto;
  appearance: auto;
}

select:focus {
  border-color: var(--rose);
  outline: 2px solid rgba(195, 107, 116, 0.22);
  outline-offset: 0;
}

/* Consent row — checkbox + label on same line */
.letter-form .consent-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  grid-column: 1 / -1;
  padding: 4px 0;
  margin: 0;
}

.letter-form .consent-row label {
  flex: 1 1 auto;
  display: block;
  cursor: pointer;
  color: var(--muted);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
  font-size: 13px;
  line-height: 1.4;
  gap: 0;
}

input:focus,
textarea:focus {
  border-color: var(--rose);
  outline: 2px solid rgba(195, 107, 116, 0.22);
  outline-offset: 0;
}

textarea {
  width: 100%;
  resize: vertical;
  min-height: 160px;
  padding: 16px 18px;
  color: var(--ink);
  background: transparent;
  border: 1px solid #eab2b6;
  border-radius: 2px;
  font: inherit;
  transition: border-color 160ms ease;
}

form .button {
  margin-top: 2px;
}

.form-alt-path {
  margin-bottom: 24px;
  color: var(--muted);
  font-size: 0.94rem;
}

.form-alt-path a {
  color: var(--rose);
  border-bottom: 1px solid var(--rose);
  transition: color 160ms ease;
}

.form-alt-path a:hover {
  color: var(--ink);
}

.form-microcopy {
  width: 100%;
  grid-column: 1 / -1;
  margin-top: 6px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.6;
  letter-spacing: 0.01em;
}

.form-microcopy a {
  color: var(--rose);
  border-bottom: 1px solid transparent;
  transition: border-color 160ms ease;
}

.form-microcopy a:hover {
  border-bottom-color: var(--rose);
}

.footer-location {
  margin-top: 10px;
  color: var(--muted);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
}

.footer-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  align-content: start;
}

.footer-links div {
  display: grid;
  gap: 6px;
}

.footer-links h3 {
  margin: 0 0 14px;
  color: var(--rose);
  font: inherit;
  font-size: 0.76rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

.footer-links a {
  font-size: 0.96rem;
  letter-spacing: 0.01em;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-top: 0;
  padding-bottom: 42px;
  color: var(--rose);
  font-size: 0.82rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.footer-bottom nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  color: var(--muted);
}

.contact-hero .section-inner {
  padding-top: clamp(34px, 4vw, 58px);
}

.contact-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.76fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(48px, 7vw, 110px);
}

.contact-portrait {
  position: sticky;
  top: 130px;
  margin: 0;
  isolation: isolate;
  min-height: 560px;
  overflow: visible;
  background: transparent;
  border: 0;
}

.contact-portrait::before {
  content: "";
  position: absolute;
  width: 80%;
  aspect-ratio: 1 / 1;
  top: 46%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(248, 233, 230, 0.92);
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}

.contact-portrait img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: contain;
  object-position: center bottom;
  filter: saturate(0.9) contrast(0.94) brightness(1.02) sepia(0.018);
}

.contact-copy h1 {
  max-width: 760px;
  margin-top: 18px;
  font-size: clamp(4rem, 7vw, 6.8rem);
}

.contact-soft {
  max-width: 640px;
  margin-top: 18px;
  color: var(--muted);
  font-size: 1.15rem;
}

.letter-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  max-width: 720px;
  margin-top: 44px;
}

.letter-form label {
  display: grid;
  gap: 8px;
  color: var(--rose);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.letter-form .full,
.letter-form button {
  grid-column: 1 / -1;
}

.letter-form input {
  width: 100%;
}

.letter-form button {
  justify-self: start;
}

.contact-note .section-inner,
.direct-contact .section-inner {
  padding-top: clamp(40px, 4.5vw, 66px);
  padding-bottom: clamp(40px, 4.5vw, 66px);
}

.contact-note-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1fr);
  gap: clamp(34px, 6vw, 86px);
  align-items: start;
}

.contact-note-grid h2 {
  margin-top: 18px;
}

.contact-note-grid p:not(.eyebrow) {
  max-width: 760px;
  color: var(--muted);
  font-size: clamp(1.18rem, 2vw, 1.48rem);
}

.contact-note-grid p + p {
  margin-top: 22px;
}

.direct-contact-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.direct-contact-grid a {
  display: grid;
  gap: 12px;
  min-height: 150px;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid rgba(232, 207, 203, 0.65);
  border-top: 1.5px solid var(--rose);
  background: transparent;
  transition: background 200ms ease;
}

.direct-contact-grid a:hover {
  background: rgba(248, 233, 230, 0.35);
}

.direct-contact-grid span {
  color: var(--rose);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.direct-contact-grid strong {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.45rem, 3vw, 2rem);
  font-weight: 500;
  letter-spacing: -0.015em;
  overflow-wrap: anywhere;
}

.direct-contact-grid .whatsapp-card strong {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  color: #fff;
  background: var(--ink);
  border-radius: 50%;
  font-family: "Avenir Next", "Segoe UI", Arial, sans-serif;
  font-size: 2rem;
  line-height: 1;
  transition: background 200ms ease;
}

.direct-contact-grid .whatsapp-card:hover strong {
  background: var(--rose);
}

@media (max-width: 920px) {
  /* Switch from sticky to fixed on mobile — position:fixed is unconditionally
     reliable on all Android Chrome versions.  position:sticky can be silently
     broken by overflow on any ancestor, backdrop-filter, or Chrome quirks.
     padding-top on body compensates so content never slides under the header. */
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    padding: 16px 22px;
  }

  body {
    /* Logo ~70px + 16px padding-top + 16px padding-bottom = ~102px header */
    padding-top: 102px;
  }

  .section {
    scroll-margin-top: 110px;
  }

  .svc-tabwrap {
    scroll-margin-top: 115px;
  }

  .header-right {
    display: none;
  }

  .menu-toggle {
    display: block;
  }

  .hero .section-inner {
    align-items: start;
    min-height: unset;
    padding-top: clamp(20px, 3vw, 36px);
    padding-bottom: clamp(20px, 3vw, 36px);
  }

  .hero__copy {
    padding: 0;
  }

  .hero__image {
    height: clamp(340px, 50vw, 500px);
  }

  .hero__grid,
  .two-col,
  .two-col--reverse,
  .contact-grid,
  .contact-note-grid,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .direct-contact-grid {
    grid-template-columns: 1fr;
  }

  .contact-portrait {
    position: relative;
    top: auto;
    min-height: 400px;
    order: 2; /* text + form first on mobile, image below */
  }

  .contact-portrait img {
    min-height: 400px;
  }

  .hero__copy {
    padding-top: 18px;
  }

  .two-col--reverse .exchange__image {
    order: -1;
  }

  .class-cards {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: none;
    row-gap: clamp(20px, 3vw, 32px);
  }

  .class-card {
    display: flex;
    flex-direction: column;
    grid-row: auto;
  }

  .class-card__desc {
    flex: 1;
  }

  .testimonial-grid,
  .footer-links {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  body {
    font-size: 16px;
  }

  .site-header {
    gap: 16px;
  }

  .section-inner {
    padding-top: 42px;
    padding-bottom: 42px;
  }

  .brand img {
    width: min(46vw, 180px);
  }

  h1 {
    font-size: clamp(2.65rem, 13vw, 3.35rem);
  }

  h2 {
    font-size: clamp(2.1rem, 10vw, 2.55rem);
  }

  .lead,
  .quiet p:not(.label-lines),
  .two-col p:not(.kicker) {
    font-size: 1.18rem;
  }

  .hero__image {
    height: 300px;
  }

  .actions {
    gap: 18px;
    margin-top: 42px;
  }

  .button {
    min-height: 50px;
    padding-inline: 24px;
  }

  .mantra {
    display: grid;
    gap: 10px;
    letter-spacing: 0.24em;
  }

  .quiet h2 {
    margin-top: 42px;
  }

  .quiet .text-link {
    margin-top: 42px;
  }

  .accordion-trigger {
    padding: 24px 0;
  }

  .accordion-panel {
    padding-inline: 0;
  }

  .practice__image {
    height: 230px;
  }

  .exchange__image {
    width: min(100%, 270px);
    height: 350px;
  }

  .expect-list div {
    grid-template-columns: 58px 1fr;
  }

  .expect-list span {
    font-size: 2.2rem;
  }

  .class-cards {
    grid-template-columns: 1fr;
  }

  .insta-grid {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }

  form,
  input {
    width: 100%;
  }

  .letter-form {
    grid-template-columns: 1fr;
  }

  .contact-copy h1 {
    font-size: clamp(3.1rem, 14vw, 4rem);
  }

  .direct-contact-grid a {
    min-height: 124px;
  }

  /* ── Hero: fit buttons above the fold on small phones ──────────
     The lead + h1 fill most of the viewport; hide the secondary
     training note and tighten spacing so the CTA buttons are
     visible without scrolling.                                   */
  .training-note {
    display: none;
  }

  .hero .lead {
    margin-top: 14px;
  }

  .hero .actions {
    margin-top: 24px;
  }
}

@media (max-width: 430px) {
  .mobile-menu {
    width: min(84vw, 340px);
    padding: 22px;
  }

  .mobile-menu__top .menu-logo {
    width: min(52vw, 174px);
    max-height: 58px;
  }

  .menu-close {
    font-size: 34px;
  }

  .mobile-menu nav {
    gap: 14px;
    margin-top: 42px;
    font-size: 1.65rem;
  }

  .mobile-menu .nav-button {
    min-height: 40px;
    padding: 8px 22px;
    font-family: "Avenir Next", "Segoe UI", Arial, sans-serif;
    font-size: 0.82rem;
  }

  .mobile-menu p {
    margin-top: 46px;
    letter-spacing: 0.2em;
  }

  .hero__grid {
    gap: 28px;
  }

  .lead {
    margin-top: 30px;
  }

  .hero__image {
    height: 260px;
  }
}

/* =============================================
   WHO WE ARE PAGE
   ============================================= */

/* Hero — split screen (shared: who-we-are + classes) */
.wwa-hero .section-inner,
.classes-hero .section-inner {
  max-width: none;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: calc(100svh - 80px);
  align-items: stretch;
}

.wwa-hero__image,
.classes-hero__image {
  overflow: hidden;
  background: var(--soft);
}

.wwa-hero__image img,
.classes-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: saturate(0.82) contrast(0.9) brightness(1.04) sepia(0.025);
}

.wwa-hero__text,
.classes-hero__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(48px, 6vw, 86px) clamp(28px, 4%, 68px);
}

.wwa-hero__text h1,
.classes-hero__text h1 {
  max-width: 14ch;
  margin-top: 16px;
  font-size: clamp(2.6rem, 4vw, 4.4rem);
}

.wwa-hero__text .lead,
.classes-hero__text .lead {
  max-width: 500px;
  margin-top: 20px;
  font-size: clamp(1.02rem, 1.5vw, 1.18rem);
  line-height: 1.72;
}

.wwa-mission-quote {
  max-width: 500px;
  margin-top: 24px;
  padding-left: 18px;
  border-left: 2px solid var(--rose);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 1.6vw, 1.32rem);
  font-style: italic;
  color: var(--ink);
  line-height: 1.48;
}

/* Values */
.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 2vw, 24px);
  margin-top: clamp(36px, 4.5vw, 56px);
}

.value-card {
  padding: clamp(22px, 3vw, 36px);
  border: 1px solid rgba(232, 207, 203, 0.65);
  border-top: 1.5px solid var(--rose);
}

.value-card__num {
  display: block;
  margin-bottom: 14px;
  color: #e6d0cd;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
}

.value-card h3 {
  font-size: clamp(1.15rem, 1.8vw, 1.42rem);
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.value-card p {
  margin-top: 12px;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.68;
}

/* Teacher grid — 3-column card style */
.teachers-intro {
  max-width: 660px;
  margin-top: 18px;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.7;
}

.teacher-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(6, auto);
  column-gap: clamp(20px, 2.5vw, 36px);
  row-gap: 0;
  margin-top: clamp(36px, 4.5vw, 56px);
}

.teacher-card {
  display: grid;
  grid-row: span 6;
  grid-template-rows: subgrid;
  align-content: start;
}

.teacher-card__header {
  display: none; /* header row removed — name & practice repositioned */
}

/* Name sits centered below the photo */
.teacher-card__name {
  margin: 18px 0 0;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
  text-align: center;
}

/* Practice label now lives above the pills inside tags-group */
.teacher-card__practice {
  margin: 0 0 8px 0;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rose);
}

.teacher-card__photo {
  position: relative;
  width: 88%;
  margin: 0 auto;
  aspect-ratio: 1 / 1; /* square keeps photos compact so name+quote stay visible */
  overflow: visible;
  background: transparent;
}

/* Playful organic blob sits BEHIND the image — not a perfect circle */
.teacher-card__photo::before {
  content: "";
  position: absolute;
  width: 108%;
  aspect-ratio: 1 / 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(248, 233, 230, 0.9);
  z-index: 0;
  pointer-events: none;
  box-shadow:
    0 0 0 8px rgba(248, 233, 230, 0.72),
    0 0 0 16px rgba(210, 172, 166, 0.18),
    0 10px 36px rgba(195, 107, 116, 0.14);
  /* Default blob — overridden per card below */
  border-radius: 60% 40% 50% 50% / 50% 55% 45% 50%;
}

/* Each teacher gets their own unique blob personality */
.teacher-card:nth-child(1) .teacher-card__photo::before {
  border-radius: 62% 38% 46% 54% / 55% 44% 56% 45%;
}
.teacher-card:nth-child(2) .teacher-card__photo::before {
  border-radius: 44% 56% 58% 42% / 52% 46% 54% 48%;
}
.teacher-card:nth-child(3) .teacher-card__photo::before {
  border-radius: 54% 46% 38% 62% / 42% 60% 40% 58%;
}

.teacher-card__photo img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  filter: saturate(0.84) contrast(0.9) brightness(1.05) sepia(0.02);
  transition: transform 400ms ease;
}

.teacher-card__photo img:hover {
  transform: scale(1.04);
}

.teacher-card__insta {
  display: block;
  text-align: center;
  margin-top: 8px;
  color: var(--rose);
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  border-bottom: 1px solid transparent;
  transition: border-color 160ms ease;
}

.teacher-card__insta:hover {
  border-bottom-color: var(--rose);
}

.teacher-card__quote {
  margin-top: 16px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(0.94rem, 1.3vw, 1.06rem);
  font-style: italic;
  color: var(--ink);
  line-height: 1.45;
}

.teacher-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 14px;
}

.teacher-card__tags span {
  padding: 5px 13px;
  border: 1px solid var(--rose);
  border-radius: 100px;
  color: var(--rose);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.teacher-card__tags--czech {
  margin-top: 6px;
}

.teacher-card__tags--czech span {
  color: var(--muted);
  border-color: rgba(195, 107, 116, 0.38);
  font-size: 0.64rem;
  letter-spacing: 0.14em;
}

/* Invisible instagram spacer — keeps row height consistent */
.teacher-card__insta--hidden {
  visibility: hidden;
  pointer-events: none;
  user-select: none;
}

/* Tags group wrapper — counts as one subgrid row */
.teacher-card__tags-group {
  margin-top: 14px;
}

.teacher-card__tags-group .teacher-card__tags {
  margin-top: 0;
}

.teacher-card__tags-group .teacher-card__tags--czech {
  margin-top: 6px;
}

/* Bio wrapper — counts as one subgrid row */
.teacher-card__bios .teacher-card__bio:first-child {
  margin-top: 18px;
}

.teacher-card__bio {
  margin-top: 18px;
  color: var(--muted);
  font-size: clamp(0.9rem, 1.2vw, 0.98rem);
  line-height: 1.75;
}

.teacher-card__bio + .teacher-card__bio {
  margin-top: 10px;
}

/* Lineage */
.wwa-lineage .section-inner {
  max-width: 820px;
  margin-inline: auto;
}

.wwa-lineage h2 {
  margin-top: 20px;
}

.wwa-lineage p {
  max-width: 700px;
  margin-top: 20px;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.75;
}

.lineage-closing {
  margin-top: 32px;
  color: var(--rose);
  font-style: italic;
  font-size: 1rem;
  letter-spacing: 0.04em;
}

/* Message from Priyanka */
.wwa-message-grid {
  display: grid;
  grid-template-columns: minmax(240px, 0.68fr) minmax(0, 1fr);
  gap: clamp(40px, 6vw, 90px);
  align-items: start;
}

.wwa-message-photo {
  position: sticky;
  top: 120px;
  overflow: visible;
}

.wwa-message-photo::before {
  content: "";
  position: absolute;
  width: 88%;
  aspect-ratio: 1 / 1;
  top: 46%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(248, 233, 230, 0.9);
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}

.wwa-message-photo img {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center top;
  filter: saturate(0.86) contrast(0.9) brightness(1.05) sepia(0.02);
}

.wwa-message-copy h2 {
  margin-top: 14px;
}

.wwa-message-copy p {
  max-width: 640px;
  margin-top: 20px;
  color: var(--muted);
  font-size: clamp(1.02rem, 1.5vw, 1.18rem);
  line-height: 1.8;
}

.message-attribution {
  margin-top: clamp(28px, 3.5vw, 42px);
  padding-top: 22px;
  border-top: 1px solid rgba(232, 207, 203, 0.55);
  color: var(--rose);
  font-size: 0.84rem;
  font-style: italic;
  letter-spacing: 0.1em;
}

/* CTA */
.wwa-cta .section-inner {
  text-align: center;
  max-width: 680px;
  margin-inline: auto;
}

.wwa-cta h2 {
  margin-top: 18px;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
}

.wwa-cta-text {
  max-width: 560px;
  margin: 18px auto 0;
  color: var(--muted);
  font-size: clamp(1.02rem, 1.5vw, 1.18rem);
  line-height: 1.72;
}

.wwa-cta .actions {
  flex-direction: column;
  align-items: center;
  gap: 18px;
  margin-top: 38px;
}

/* Responsive — Who We Are */
@media (max-width: 920px) {
  .wwa-hero .section-inner,
  .classes-hero .section-inner {
    grid-template-columns: 1fr;
    min-height: unset;
  }

  .wwa-hero__image,
  .classes-hero__image {
    height: clamp(320px, 60vw, 520px);
  }

  .wwa-hero__text,
  .classes-hero__text {
    padding: clamp(36px, 5vw, 60px) clamp(22px, 4%, 48px);
  }

  .values-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .teacher-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: none;
    row-gap: clamp(40px, 6vw, 60px);
  }

  .teacher-card {
    display: flex;
    flex-direction: column;
    grid-row: auto;
  }

  .wwa-message-grid {
    grid-template-columns: 1fr;
    gap: clamp(24px, 4vw, 40px);
  }

  .wwa-message-photo {
    position: relative;
    top: auto;
    width: min(80vw, 380px);
    margin-inline: auto;
  }
}

@media (max-width: 640px) {
  .values-grid,
  .teacher-grid {
    grid-template-columns: 1fr;
  }

  .wwa-hero__text h1,
  .classes-hero__text h1 {
    font-size: clamp(2.4rem, 11vw, 3.2rem);
  }

  .wwa-hero__image,
  .classes-hero__image {
    height: clamp(260px, 70vw, 400px);
  }

  .classes-studio__left h2 {
    font-size: clamp(2.4rem, 10vw, 3.2rem);
  }

  .classes-online__body,
  .classes-kuba__body {
    gap: clamp(24px, 4vw, 36px);
  }

  .exchange-card {
    padding: clamp(36px, 8vw, 56px) clamp(22px, 6vw, 40px);
  }
}

/* ==========================================================
   CLASSES PAGE
   ========================================================== */

/* ── Online weekly classes ── */
.classes-online .section-inner {
  display: flex;
  flex-direction: column;
  gap: clamp(40px, 5vw, 64px);
}

.classes-online__intro h2 {
  margin-top: 16px;
}

.classes-with {
  margin-top: 8px;
  font-size: 0.88rem;
  letter-spacing: 0.08em;
  color: var(--rose);
  font-style: italic;
}

.classes-online__intro .lead {
  margin-top: 20px;
  max-width: 620px;
  color: var(--muted);
  line-height: 1.65;
}

.classes-online__body {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
}

.classes-online__image {
  position: sticky;
  top: 100px;
  border-radius: 2px;
  overflow: hidden;
}

.classes-online__image img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center top;
  filter: saturate(0.82) contrast(0.9) brightness(1.04) sepia(0.025);
  display: block;
}

/* ── Class entries (list) ── */
.class-entry {
  padding: clamp(28px, 3.5vw, 42px) 0;
  border-top: 1px solid var(--line);
}

.class-entry:last-child {
  border-bottom: 1px solid var(--line);
}

.class-entry__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

.class-entry__heading {
  display: flex;
  align-items: center;
  gap: 12px;
}

.class-entry__icon {
  flex-shrink: 0;
  opacity: 0.9;
}

.class-entry__heading h3 {
  font-size: clamp(1.4rem, 2.2vw, 1.8rem);
  letter-spacing: -0.01em;
}

.class-entry__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.class-entry__meta span {
  padding: 3px 11px;
  border: 1px solid rgba(195, 107, 116, 0.38);
  border-radius: 100px;
  color: var(--muted);
  font-size: 0.66rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.class-entry__desc {
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 18px;
  max-width: 58ch;
  font-size: 0.97rem;
}

/* ── Sound healing with Arun & Semina ── */
.classes-arun .section-inner {
  display: block;
}

.classes-arun__eyebrow {
  margin-bottom: clamp(20px, 2.5vw, 32px);
}

.classes-arun__content .classes-online__intro {
  margin-bottom: clamp(28px, 4vw, 48px);
}

/* ── Active meditation with Kuba (image right, full-section sticky) ── */
.classes-kuba .section-inner {
  display: block;
}

.classes-kuba__eyebrow {
  margin-bottom: clamp(20px, 2.5vw, 32px);
}

.classes-online__intro--no-eyebrow h2 {
  margin-top: 0;
}

.classes-kuba__body {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
}

.classes-kuba__content .classes-online__intro {
  margin-bottom: clamp(28px, 4vw, 48px);
}

.classes-kuba__image {
  position: sticky;
  top: 100px;
  border-radius: 2px;
  overflow: hidden;
  background: var(--bg);
}

.classes-kuba__image img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: contain;
  object-position: top center;
  display: block;
  filter: saturate(0.82) contrast(0.9) brightness(1.04) sepia(0.025);
}

.class-entry__ctas {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin-top: 4px;
}

/* ── In-studio workshops ── */
.classes-studio__grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(48px, 6vw, 96px);
  align-items: start;
}

.classes-studio__left .label-lines {
  margin-bottom: 20px;
}

.classes-studio__left h2 {
  font-size: clamp(2.6rem, 4.5vw, 4.8rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  max-width: 10ch;
}

.classes-studio__right {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  padding-top: clamp(8px, 2vw, 16px);
}

.classes-studio__right p {
  color: var(--muted);
  line-height: 1.75;
  font-size: clamp(1rem, 1.5vw, 1.1rem);
}

.classes-studio__right .text-link {
  margin-top: 8px;
}

.classes-request__closing {
  font-style: italic;
  color: var(--ink);
  opacity: 0.7;
}

.classes-cta__closing {
  font-style: italic;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.1rem);
  max-width: 560px;
  margin: 6px auto 0;
}

@media (max-width: 680px) {
  .classes-studio__grid {
    grid-template-columns: 1fr;
    gap: clamp(24px, 4vw, 36px);
  }
}

/* ── Energy exchange card ── */
.exchange-card {
  background: var(--ink);
  border-radius: 3px;
  padding: clamp(48px, 6vw, 80px) clamp(36px, 5vw, 72px);
  position: relative;
  overflow: hidden;
}

.exchange-card__eyebrow {
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rose);
  display: flex;
  align-items: center;
  gap: 12px;
}

.exchange-card__eyebrow::before {
  content: '';
  display: block;
  width: 28px;
  height: 1px;
  background: var(--rose);
  flex-shrink: 0;
}

.exchange-card h2 {
  color: #f5ede9;
  font-size: clamp(2.4rem, 4vw, 4rem);
  letter-spacing: -0.02em;
  margin-top: 18px;
  line-height: 1.08;
}

.exchange-card__offer {
  color: rgba(245, 237, 233, 0.78);
  margin-top: 22px;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.65;
}

.exchange-card__offer strong {
  color: var(--rose);
  font-weight: 600;
}

.exchange-card__terms {
  color: rgba(245, 237, 233, 0.42);
  font-size: 0.8rem;
  letter-spacing: 0.07em;
  margin-top: 10px;
}

.exchange-card__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 36px;
  padding: 15px 30px;
  border: 1px solid rgba(245, 237, 233, 0.3);
  color: #f5ede9;
  text-decoration: none;
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  transition: border-color 0.25s, background 0.25s;
}

.exchange-card__btn:hover {
  border-color: var(--rose);
  background: rgba(195, 107, 116, 0.12);
}

.exchange-card__deco {
  width: clamp(140px, 18vw, 220px);
  height: clamp(140px, 18vw, 220px);
  flex-shrink: 0;
  opacity: 0.9;
}

@media (max-width: 680px) {
  .exchange-card {
    grid-template-columns: 1fr;
  }

  .exchange-card__deco {
    display: none;
  }
}

/* ── Schedule section ── */
.classes-schedule .section-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.classes-schedule h2 {
  margin-top: 16px;
}

.classes-schedule__lead {
  max-width: 580px;
  margin-top: 18px;
  color: var(--muted);
  line-height: 1.7;
  font-size: clamp(1rem, 1.5vw, 1.12rem);
}

.schedule-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 1.5vw, 16px);
  width: 100%;
  margin-top: clamp(40px, 5vw, 60px);
}

.schedule-card {
  display: flex;
  flex-direction: column;
  padding: clamp(22px, 3vw, 32px) clamp(18px, 2vw, 28px);
  border: 1px solid var(--line);
  border-top: 1.5px solid var(--rose);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s, background 0.2s;
}

.schedule-card:hover {
  background: var(--soft);
  border-top-color: var(--rose);
}

.schedule-card__label {
  font-size: 0.64rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rose);
  margin-bottom: 14px;
}

.schedule-card__name {
  font-size: clamp(1.1rem, 1.8vw, 1.38rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 8px;
}

.schedule-card__teacher {
  font-size: 0.85rem;
  color: var(--muted);
  font-style: italic;
  margin-top: auto;
  padding-top: 10px;
}

.schedule-cta {
  margin-top: clamp(48px, 6vw, 72px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.schedule-cta p {
  max-width: 480px;
  color: var(--muted);
  line-height: 1.65;
  text-align: center;
}

/* ── Personal & on-request sessions — uses classes-studio__grid layout ── */

/* ── Responsive ── */
@media (max-width: 860px) {
  .classes-kuba__body {
    grid-template-columns: 1fr;
  }

  .classes-kuba__image {
    position: static;
    order: -1;
  }

  .classes-kuba__image img {
    /* The Kuba photo is landscape — force it to fill a landscape crop so the
       3:4 portrait aspect-ratio (desktop) doesn't create huge empty bars
       on mobile when displayed with object-fit: contain.                    */
    aspect-ratio: 4 / 3;
    object-fit: cover;
    height: auto;
  }

  .classes-online__body {
    grid-template-columns: 1fr;
  }

  .classes-online__image {
    position: static;
  }

  .classes-online__image img {
    aspect-ratio: 4 / 3;
  }

  .schedule-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .classes-request__body {
    grid-template-columns: 1fr;
  }

  .request-form {
    grid-template-columns: 1fr;
  }

  .request-form .button,
  .request-form .form-microcopy {
    grid-column: 1;
  }
}

@media (max-width: 560px) {
  .schedule-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================
   DECORATIVE BUBBLES — warm glowing orbs, playful depth
   All bubbles use filter:blur so they glow softly and are
   clearly visible without being harsh. Images are untouched.
   ========================================================== */

/* Image bubbles: warmer, more visible */
.hero__image::before,
.practice__image::before,
.teacher-card__photo::before,
.contact-portrait::before,
.wwa-message-photo::before {
  background: rgba(210, 172, 166, 0.55);
}

/* Every section becomes a positioning context */
.section {
  position: relative;
  overflow: clip;
}

/* Shared bubble shape */
.hero.section::before,
.hero.section::after,
.quiet.section::before,
.classes.section::before,
.classes.section::after,
.practice.section::after,
.expect.section::before,
.sangha.section::before,
.instagram.section::before,
.wwa-cta.section::before,
.wwa-lineage.section::before,
.contact-hero.section::before,
.contact-note.section::before,
.direct-contact.section::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

/* ── Hero ── */
.hero.section::before {
  width: clamp(320px, 44vw, 580px);
  aspect-ratio: 1 / 1;
  top: -10%;
  right: -4%;
  background: rgba(218, 182, 176, 0.48);
  filter: blur(55px);
}
.hero.section::after {
  width: clamp(180px, 22vw, 300px);
  aspect-ratio: 1 / 1;
  bottom: 4%;
  left: -3%;
  background: rgba(195, 107, 116, 0.14);
  filter: blur(44px);
}

/* ── Quiet invitation ── */
.quiet.section::before {
  width: clamp(220px, 30vw, 420px);
  aspect-ratio: 1 / 1;
  top: 50%;
  right: -4%;
  transform: translateY(-50%);
  background: rgba(218, 182, 176, 0.42);
  filter: blur(52px);
}

/* ── Classes ── */
.classes.section::before {
  width: clamp(200px, 26vw, 380px);
  aspect-ratio: 1 / 1;
  top: -5%;
  left: -3%;
  background: rgba(218, 182, 176, 0.44);
  filter: blur(50px);
}
.classes.section::after {
  width: clamp(140px, 16vw, 240px);
  aspect-ratio: 1 / 1;
  bottom: 2%;
  right: -2%;
  background: rgba(195, 107, 116, 0.13);
  filter: blur(40px);
}

/* ── Practice section ── */
.practice.section::after {
  width: clamp(220px, 30vw, 420px);
  aspect-ratio: 1 / 1;
  top: 50%;
  right: -4%;
  transform: translateY(-50%);
  background: rgba(218, 182, 176, 0.42);
  filter: blur(52px);
}

/* ── What to expect ── */
.expect.section::before {
  width: clamp(240px, 32vw, 480px);
  aspect-ratio: 1 / 1;
  bottom: -6%;
  left: -4%;
  background: rgba(218, 182, 176, 0.44);
  filter: blur(54px);
}

/* ── Sangha ── */
.sangha.section::before {
  width: clamp(280px, 40vw, 560px);
  aspect-ratio: 1 / 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(218, 182, 176, 0.36);
  filter: blur(60px);
}

/* ── Instagram ── */
.instagram.section::before {
  width: clamp(240px, 32vw, 460px);
  aspect-ratio: 1 / 1;
  bottom: -6%;
  right: -3%;
  background: rgba(218, 182, 176, 0.42);
  filter: blur(52px);
}

/* ── WWA CTA ── */
.wwa-cta.section::before {
  width: clamp(300px, 42vw, 580px);
  aspect-ratio: 1 / 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(218, 182, 176, 0.4);
  filter: blur(58px);
}

/* ── WWA Lineage ── */
.wwa-lineage.section::before {
  width: clamp(180px, 22vw, 320px);
  aspect-ratio: 1 / 1;
  top: 0%;
  right: -2%;
  background: rgba(218, 182, 176, 0.4);
  filter: blur(46px);
}

/* ── Contact hero ── */
.contact-hero.section::before {
  width: clamp(300px, 42vw, 560px);
  aspect-ratio: 1 / 1;
  top: 10%;
  left: -4%;
  background: rgba(218, 182, 176, 0.42);
  filter: blur(56px);
}

/* ── Contact note ── */
.contact-note.section::before {
  width: clamp(200px, 26vw, 380px);
  aspect-ratio: 1 / 1;
  top: 50%;
  left: -3%;
  transform: translateY(-50%);
  background: rgba(218, 182, 176, 0.42);
  filter: blur(50px);
}

/* ── Direct contact cards ── */
.direct-contact.section::after {
  width: clamp(160px, 20vw, 280px);
  aspect-ratio: 1 / 1;
  top: -4%;
  right: -2%;
  background: rgba(195, 107, 116, 0.12);
  filter: blur(42px);
}

/* ==========================================================
   TEACHER PHOTO LIGHTBOX
   ========================================================== */

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 300ms ease;
}

.lightbox--open {
  opacity: 1;
}

.lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(52, 77, 61, 0.82);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.lightbox__frame {
  position: relative;
  z-index: 1;
  max-width: min(88vw, 720px);
  max-height: 88vh;
  transform: scale(0.88);
  transition: transform 300ms cubic-bezier(0.34, 1.36, 0.64, 1);
}

.lightbox--open .lightbox__frame {
  transform: scale(1);
}

.lightbox__img {
  display: block;
  max-width: 100%;
  max-height: 88vh;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.38);
}

.lightbox__close {
  position: absolute;
  top: 20px;
  right: 24px;
  z-index: 2;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(251, 241, 239, 0.15);
  border: 1px solid rgba(251, 241, 239, 0.3);
  border-radius: 50%;
  color: #fbf1ef;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background 200ms ease, transform 200ms ease;
}

.lightbox__close:hover {
  background: rgba(251, 241, 239, 0.28);
  transform: scale(1.1);
}

/* Lightbox on small screens — larger tap target, image fills viewport width */
@media (max-width: 640px) {
  .lightbox__frame {
    max-width: 96vw;
  }

  .lightbox__img {
    max-height: 80vh;
    border-radius: 8px;
  }

  .lightbox__close {
    top: 12px;
    right: 12px;
    width: 52px;
    height: 52px;
    font-size: 1.75rem;
  }
}

/* ==========================================================
   SCHEDULE PAGE
   ========================================================== */

/* ── Hero ── */
.schedule-hero .section-inner {
  text-align: center;
  max-width: 680px;
  margin-inline: auto;
}

.schedule-hero__h1 {
  font-size: clamp(2.8rem, 5vw, 4.8rem);
  margin-top: 18px;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

/* ── Online classes grid ── */
.sched-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(14px, 2vw, 22px);
  margin-top: clamp(40px, 5vw, 60px);
}

.sched-card--wide {
  grid-column: span 2;
}

.sched-card {
  display: flex;
  flex-direction: column;
  padding: clamp(26px, 3vw, 38px);
  border: 1px solid var(--line);
  border-top: 2px solid var(--rose);
  background: var(--bg);
  transition: background 0.2s;
}

.sched-card:hover:not(.sched-card--soft) {
  background: var(--soft);
}

.sched-card--soft {
  border-top-color: var(--line);
  background: var(--soft);
}

.sched-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 12px;
}

.sched-card__badge {
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rose);
  border: 1px solid rgba(195, 107, 116, 0.35);
  padding: 3px 10px;
  border-radius: 100px;
  white-space: nowrap;
}

.sched-card__badge--muted {
  color: var(--muted);
  border-color: var(--line);
}

.sched-card__teacher {
  font-size: 0.82rem;
  font-style: italic;
  color: var(--rose);
  margin: 0;
}

.sched-card__name {
  font-size: clamp(1.45rem, 2.2vw, 1.85rem);
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0 0 22px;
  line-height: 1.15;
}

.sched-card__slots {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
  margin-bottom: 28px;
}

.sched-slot {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
}

.sched-slot:first-child {
  border-top: none;
  padding-top: 0;
}

.sched-slot__days {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rose);
  font-weight: 600;
}

.sched-slot__times {
  font-size: clamp(0.96rem, 1.4vw, 1.1rem);
  color: var(--ink);
  font-weight: 500;
}

.sched-card__note {
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.68;
  flex: 1;
  margin-bottom: 24px;
}

.sched-card__book {
  align-self: flex-start;
  font-size: 0.7rem;
  padding: 11px 26px;
  min-height: unset;
}

/* ── Workshops ── */
.workshop-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px, 3vw, 32px);
  margin-top: clamp(40px, 5vw, 60px);
}

.workshop-card {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: clamp(22px, 3vw, 36px);
  padding: clamp(32px, 4vw, 48px);
  border: 1px solid var(--line);
  border-top: 2px solid var(--rose);
  align-items: start;
}

.workshop-card__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 6px;
}

.workshop-card__day {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.6rem, 4vw, 3.8rem);
  line-height: 1;
  color: var(--ink);
  letter-spacing: -0.02em;
}

.workshop-card__month {
  font-size: 0.64rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rose);
  margin-top: 6px;
}

.workshop-card__tag {
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rose);
  margin-bottom: 10px;
}

.workshop-card__body h3 {
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 14px;
  line-height: 1.2;
}

.workshop-card__body p {
  color: var(--muted);
  line-height: 1.72;
  margin-bottom: 26px;
  font-size: 0.97rem;
}

.workshop-card__btn {
  font-size: 0.7rem;
  padding: 11px 26px;
  min-height: unset;
}

/* ── Membership / pricing ── */
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 2vw, 22px);
  margin-top: clamp(40px, 5vw, 60px);
  align-items: start;
}

.pricing-tier {
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3.5vw, 44px) clamp(22px, 3vw, 34px);
  border: 1px solid var(--line);
  border-top: 2px solid var(--rose);
}

.pricing-tier--private {
  background: var(--ink);
}

.pricing-tier__eyebrow {
  font-size: 0.64rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--rose);
  margin-bottom: clamp(20px, 3vw, 28px);
  display: flex;
  align-items: center;
  gap: 10px;
}

.pricing-tier__eyebrow::before {
  content: '';
  display: block;
  width: 20px;
  height: 1px;
  background: var(--rose);
  flex-shrink: 0;
}

.pricing-options {
  display: flex;
  flex-direction: column;
  flex: 1;
  margin-bottom: 28px;
}

.pricing-option {
  padding: 18px 0;
  border-top: 1px solid var(--line);
}

.pricing-option:first-child {
  border-top: none;
  padding-top: 0;
}

.pricing-tier--private .pricing-option {
  border-top-color: rgba(232, 207, 203, 0.12);
}

.pricing-option--best {
  position: relative;
  padding-left: 14px;
  border-left: 2px solid var(--rose);
}

.pricing-option__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
}

.pricing-option__tag {
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rose);
  margin-bottom: 6px;
}

.pricing-option__name {
  font-size: clamp(0.98rem, 1.4vw, 1.1rem);
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
}

.pricing-tier--private .pricing-option__name {
  color: #f5ede9;
}

.pricing-option__price {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  color: var(--ink);
  letter-spacing: -0.02em;
  white-space: nowrap;
  flex-shrink: 0;
}

.pricing-tier--private .pricing-option__price {
  color: #f5ede9;
}

.pricing-option__currency {
  font-size: 0.72em;
  font-family: "Avenir Next", "Segoe UI", Arial, sans-serif;
  letter-spacing: 0.04em;
  opacity: 0.65;
}

.pricing-option__detail {
  font-size: 0.83rem;
  color: var(--muted);
  line-height: 1.6;
  margin-top: 3px;
}

.pricing-option__detail--sub {
  font-style: italic;
  margin-top: 6px;
}

.pricing-tier--private .pricing-option__detail {
  color: rgba(245, 237, 233, 0.5);
}

.pricing-option__saving {
  font-size: 0.78rem;
  font-style: italic;
  color: var(--rose);
  margin-top: 8px;
}

.pricing-tier__link--light {
  color: rgba(245, 237, 233, 0.65);
  border-bottom-color: rgba(245, 237, 233, 0.25);
}

.pricing-tier__link--light:hover {
  color: #f5ede9;
  border-bottom-color: rgba(245, 237, 233, 0.5);
}

.pricing-note {
  margin-top: clamp(28px, 4vw, 44px);
  font-size: 0.78rem;
  color: var(--muted);
  letter-spacing: 0.04em;
  text-align: center;
  opacity: 0.8;
}

/* ── Schedule page responsive ── */
@media (max-width: 920px) {
  .workshop-grid {
    grid-template-columns: 1fr;
  }

  .pricing-grid {
    grid-template-columns: 1fr 1fr;
  }

  .pricing-tier--private {
    grid-column: span 2;
  }
}

@media (max-width: 640px) {
  .sched-grid {
    grid-template-columns: 1fr;
  }

  .sched-card--wide {
    grid-column: span 1;
  }

  .workshop-card {
    grid-template-columns: 54px 1fr;
    gap: 18px;
    padding: clamp(24px, 5vw, 36px);
  }

  .pricing-grid {
    grid-template-columns: 1fr;
  }

  .pricing-tier--private {
    grid-column: span 1;
  }

  .schedule-hero__h1 {
    font-size: clamp(2.4rem, 11vw, 3.2rem);
  }
}

/* ═══════════════════════════════════════════════════════════
   SVC — Schedule page (Pratyaksha-style rebuild)
   Prefix: svc-  (no conflicts with rest of site)
═══════════════════════════════════════════════════════════ */

/* ── Hero ── */
.svc-hero {
  background: var(--ink);
}

/* Cancel .section-inner's vertical padding — hero controls its own */
.svc-hero .section-inner {
  padding-top: clamp(36px, 5vw, 52px);
  padding-bottom: clamp(36px, 5vw, 52px);
}

.svc-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}

.svc-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rose);
  margin: 0 0 14px;
}
.svc-hero__eyebrow::before {
  content: '';
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--rose);
  flex-shrink: 0;
}

.svc-hero__title {
  font-size: clamp(2.6rem, 6.5vw, 4.8rem);
  font-weight: 500;
  line-height: 1.0;
  letter-spacing: -0.025em;
  color: #fffaf8;
  margin: 0 0 16px;
}
.svc-hero__title em {
  font-style: italic;
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  color: var(--rose);
  letter-spacing: -0.01em;
}

.svc-hero__meta {
  font-size: clamp(0.85rem, 1.1vw, 0.95rem);
  color: rgba(255, 250, 248, 0.5);
  margin: 0 0 16px;
  letter-spacing: 0.01em;
}

.svc-hero__location {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 250, 248, 0.65);
  border: 1px solid rgba(255, 250, 248, 0.18);
  border-radius: 40px;
  padding: 7px 16px 7px 13px;
}

.svc-hero__pin {
  width: 10px;
  height: 13px;
  flex-shrink: 0;
  opacity: 0.6;
}

@media (max-width: 640px) {
  .svc-hero__title {
    font-size: clamp(2.4rem, 11vw, 3.2rem);
  }
}

/* ── Stats bar ── */
.svc-stats-bar {
  background: var(--ink);
  color: var(--white);
  padding: 28px 24px;
}

.svc-stats-grid {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 24px 32px;
  max-width: 1100px;
  margin: 0 auto;
}

.svc-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
}

.svc-stat__num {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1;
}

.svc-stat__label {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,250,248,0.65);
}

/* ── Schedule section header ── */
.svc-schedule__top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}

.svc-schedule__top h2 {
  margin: 8px 0 0;
}

/* ── Toggle ── */
.svc-toggle {
  display: flex;
  gap: 0;
  border: 1.5px solid var(--line);
  border-radius: 40px;
  overflow: hidden;
  background: var(--white);
  flex-shrink: 0;
}

.svc-toggle__btn {
  background: none;
  border: none;
  padding: 10px 24px;
  font-size: 0.9rem;
  font-family: inherit;
  color: var(--muted);
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  letter-spacing: 0.02em;
}

.svc-toggle__btn--active {
  background: var(--ink);
  color: var(--white);
  border-radius: 40px;
}

.svc-toggle__btn--soon {
  color: var(--line);
  cursor: default;
  opacity: 0.7;
}

.svc-toggle__btn--soon:hover {
  background: none;
  color: var(--line);
}

.svc-soon-badge {
  display: inline-block;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  background: var(--line);
  color: var(--muted);
  border-radius: 20px;
  padding: 1px 6px;
  vertical-align: middle;
  margin-left: 5px;
  position: relative;
  top: -1px;
}

/* ── Days wrap + day grid ── */
.svc-days-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
  margin: 0 -8px;
  padding: 0 8px 8px;
}

.svc-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(148px, 1fr));
  gap: 12px;
  min-width: 960px;
}

.svc-days--hidden {
  display: none;
}

/* ── Day column ── */
.svc-day {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.svc-day--empty {
  opacity: 0.55;
}

.svc-day__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px 10px;
  border-bottom: 1px solid var(--line);
  background: var(--soft);
}

.svc-day__name {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
}

.svc-day__count {
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--rose);
  color: var(--white);
  border-radius: 20px;
  padding: 2px 8px;
  letter-spacing: 0.04em;
}

.svc-day__count--zero {
  background: var(--line);
  color: var(--muted);
}

.svc-day__cards {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  flex: 1;
}

.svc-day__rest {
  font-size: 0.88rem;
  color: var(--muted);
  font-style: italic;
  text-align: center;
  padding: 16px 0 8px;
  margin: 0;
}

/* ── Class card ── */
.svc-class-card {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px 12px 10px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.svc-class-card__time {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--rose);
  text-transform: uppercase;
}

.svc-class-card__name {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
  line-height: 1.2;
}

.svc-class-card__teacher {
  font-size: 0.78rem;
  color: var(--muted);
  margin: 0;
}

.svc-class-card__badge {
  display: inline-block;
  font-size: 0.65rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 2px 8px;
  margin-top: 4px;
  width: fit-content;
}

.svc-class-card__book {
  display: inline-block;
  margin-top: 8px;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s;
}

.svc-class-card__book:hover {
  color: var(--rose);
}

/* ── In-person message ── */
.svc-inperson-msg {
  grid-column: 1 / -1;
  min-width: 960px;
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: clamp(40px, 6vw, 64px) clamp(28px, 5vw, 48px);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.svc-inperson-msg p {
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  color: var(--muted);
  margin: 0;
}

/* ── Schedule note ── */
.svc-schedule__note {
  margin-top: 24px;
  font-size: 0.85rem;
  color: var(--muted);
  border-left: 2px solid var(--line);
  padding-left: 14px;
  line-height: 1.5;
}

/* ── Section intro ── */
.section-intro {
  font-size: clamp(1rem, 1.5vw, 1.1rem);
  color: var(--muted);
  max-width: 560px;
  margin: 8px 0 36px;
  line-height: 1.5;
}

/* ── Teachers section ── */
.svc-teacher-row {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin: 32px 0 28px;
}

.svc-teacher {
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 18px 22px;
  flex: 1;
  min-width: 200px;
  text-decoration: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.svc-teacher:hover {
  border-color: var(--rose);
  box-shadow: 0 4px 16px rgba(195,107,116,0.12);
}

.svc-teacher__initial {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--soft);
  border: 1.5px solid var(--line);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.02em;
  flex-shrink: 0;
}

.svc-teacher__info {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.svc-teacher__name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
}

.svc-teacher__practice {
  font-size: 0.8rem;
  color: var(--muted);
  letter-spacing: 0.02em;
}

/* ── Ethos grid ── */
.svc-ethos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 8px;
}

.svc-ethos-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: clamp(28px, 4vw, 40px) clamp(24px, 3vw, 32px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.svc-ethos-card__icon {
  display: block;
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  font-size: 0;
  line-height: 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.svc-ethos-card:nth-child(1) .svc-ethos-card__icon {
  background-image: url('/Assets/icon-tradition.svg');
}
.svc-ethos-card:nth-child(2) .svc-ethos-card__icon {
  background-image: url('/Assets/icon-intentional.svg');
}
.svc-ethos-card:nth-child(3) .svc-ethos-card__icon {
  background-image: url('/Assets/icon-wherever.svg');
}

.svc-ethos-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
  line-height: 1.2;
}

.svc-ethos-card p {
  font-size: 0.9rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
}

/* ── CTA strip ── */
.svc-cta-strip {
  background: var(--ink);
  color: var(--white);
  padding: clamp(32px, 5vw, 48px) 24px;
}

.svc-cta-strip__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.svc-cta-strip__text {
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  color: rgba(255,250,248,0.88);
  margin: 0;
}

.svc-cta-strip__text strong {
  color: var(--white);
}

.svc-cta-strip .button {
  background: var(--white);
  color: var(--ink);
  border-color: transparent;
  white-space: nowrap;
}

.svc-cta-strip .button:hover {
  background: var(--soft);
}

/* ── Pricing ── */
.pricing-note {
  margin-top: 32px;
  font-size: 0.82rem;
  color: var(--muted);
  text-align: center;
  letter-spacing: 0.02em;
}

.pricing-tier__link--light {
  color: var(--white);
  opacity: 0.85;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: 0.9rem;
}

.pricing-tier__link--light:hover {
  opacity: 1;
}

/* ── SVC responsive ── */
@media (max-width: 1024px) {
  .svc-ethos-grid {
    grid-template-columns: 1fr 1fr;
  }

  .svc-ethos-card:last-child {
    grid-column: span 2;
    max-width: 520px;
  }
}

@media (max-width: 860px) {
  .svc-teacher-row {
    flex-direction: column;
  }

  .svc-teacher {
    min-width: unset;
  }

  .svc-schedule__top {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .svc-cta-strip__inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 640px) {
  .svc-hero__title {
    font-size: clamp(2.6rem, 12vw, 3.4rem);
  }

  .svc-ethos-grid {
    grid-template-columns: 1fr;
  }

  .svc-ethos-card:last-child {
    grid-column: span 1;
    max-width: 100%;
  }

  .svc-stats-grid {
    justify-content: flex-start;
    gap: 20px 40px;
  }

  .svc-inperson-msg {
    min-width: unset;
    padding: clamp(32px, 7vw, 48px) clamp(20px, 5vw, 32px);
  }
}

/* ═══════════════════════════════════════════════════════════
   SVC v3 — Stats tabs · Day rows · Workshop rows · Plan cards
═══════════════════════════════════════════════════════════ */

/* ── Tab wrap ── */
.svc-tabwrap {
  border-top: 1px solid var(--line);
  scroll-margin-top: 140px; /* clears the sticky header */
}

/* Panels: only one visible at a time */
.svc-panel[hidden] { display: none; }
/* When browser scrolls to a panel via hash, clear the sticky header */
.svc-panel { scroll-margin-top: 140px; }

.svc-panel > .section-inner.svc-section__inner {
  padding-top: clamp(40px, 5vw, 60px);
  padding-bottom: clamp(40px, 5vw, 60px);
}

/* ── Stats tabs bar — horizontal flex row ── */
.svc-tabs {
  display: flex;              /* ← horizontal row */
  align-items: stretch;
  width: 100%;
  background: var(--soft);
  border-bottom: 1px solid var(--line);
}

.svc-tab {
  flex: 1;                    /* ← equal width columns */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 24px 16px;
  border: none;
  border-right: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
  transition: background 0.15s;
  text-align: center;
}
.svc-tab:last-child { border-right: none; }
.svc-tab:hover:not(.svc-tab--static) { background: var(--bg); }

.svc-tab--active {
  background: var(--white);
  box-shadow: inset 0 0 0 1.5px var(--ink);
}

.svc-tab--static {
  cursor: default;
  pointer-events: none;
}

.svc-tab__num {
  display: block;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  color: var(--ink);
  line-height: 1;
}
.svc-tab--static .svc-tab__num { color: var(--muted); }

.svc-tab__label {
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ── Section shared ── */
.svc-section {
  border-top: 1px solid var(--line);
  scroll-margin-top: 155px; /* header + tabs */
}

/* Section header row */
.svc-sec-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}

.svc-sec-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rose);
  margin: 0 0 10px;
}
.svc-sec-eyebrow::before {
  content: '';
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--rose);
  flex-shrink: 0;
}

.svc-sec-title {
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  color: var(--ink);
  margin: 0;
  letter-spacing: -0.02em;
  line-height: 1.0;
}

.svc-sec-sub {
  font-size: 0.92rem;
  color: var(--muted);
  margin: 8px 0 0;
  line-height: 1.5;
  max-width: 520px;
}

.svc-sec-link {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--rose);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}
.svc-sec-link:hover { text-decoration: underline; }

.svc-sec-link-muted {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--muted);
  flex-shrink: 0;
}

/* ── Online / In-Person mode toggle ── */
.svc-mode-toggle {
  display: flex;
  gap: 0;
  flex-shrink: 0;
}

.svc-mode-btn {
  padding: 9px 20px;
  border: 1.5px solid var(--ink);
  background: none;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  font-family: inherit;
  color: var(--ink);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.svc-mode-btn:first-child { border-radius: 6px 0 0 6px; }
.svc-mode-btn:last-child  { border-radius: 0 6px 6px 0; border-left: none; }

.svc-mode-btn--active {
  background: var(--ink);
  color: var(--white);
}

.svc-mode-btn--soon {
  color: var(--line);
  border-color: var(--line);
  cursor: default;
}

/* ── Day nav tabs ── */
.svc-day-nav {
  display: flex;
  border: 1px solid var(--line);
  border-radius: 0;
  overflow: hidden;
  margin-bottom: 0;
}

.svc-day-tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 14px 8px;
  border: none;
  border-right: 1px solid var(--line);
  background: var(--bg);
  cursor: pointer;
  transition: background 0.15s;
}
.svc-day-tab:last-child { border-right: none; }
.svc-day-tab:hover:not(.svc-day-tab--active) { background: var(--soft); }

.svc-day-tab--active {
  background: var(--ink);
  color: var(--white);
}
.svc-day-tab--active .svc-day-tab__name,
.svc-day-tab--active .svc-day-tab__count { color: var(--white); }

.svc-day-tab--empty { opacity: 0.45; cursor: default; }
.svc-day-tab--empty:hover { background: var(--bg); }

.svc-day-tab__name {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

.svc-day-tab__count {
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  color: var(--ink);
  line-height: 1;
}

/* ── Class rows ── */
.svc-class-list {
  border-top: 1px solid var(--line);
}

.svc-class-row {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.svc-class-row__time {
  min-width: 72px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-shrink: 0;
}

.svc-class-row__hour {
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  color: var(--ink);
  line-height: 1;
}

.svc-class-row__ampm {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 3px;
}

.svc-class-row__info {
  flex: 1;
}

.svc-class-row__name {
  font-size: clamp(1rem, 1.6vw, 1.15rem);
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 3px;
}

.svc-class-row__sub {
  font-size: 0.82rem;
  color: var(--muted);
  font-style: italic;
  margin: 0;
}

.svc-class-row__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.svc-class-row__badge {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid var(--line);
  border-radius: 40px;
  padding: 5px 14px;
  color: var(--muted);
  white-space: nowrap;
}

.svc-class-row__book {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1.5px solid var(--ink);
  border-radius: 5px;
  padding: 7px 18px;
  color: var(--ink);
  background: none;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
}
.svc-class-row__book:hover {
  background: var(--ink);
  color: var(--white);
}

/* ── Sunday rest ── */
.svc-day-rest {
  padding: 40px 0 32px;
  text-align: center;
}
.svc-day-rest__line {
  font-size: 1.2rem;
  font-family: Georgia, serif;
  font-style: italic;
  color: var(--ink);
  margin: 0 0 8px;
}
.svc-day-rest__sub {
  font-size: 0.88rem;
  color: var(--muted);
  margin: 0;
}

/* ── Schedule note ── */
.svc-schedule-note {
  margin-top: 24px;
  font-size: 0.82rem;
  color: var(--muted);
  border-left: 2px solid var(--line);
  padding-left: 14px;
  line-height: 1.55;
}

/* ── Workshop rows ── */
.svc-workshop-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.svc-workshop-row:first-of-type {
  border-top: 1px solid var(--line);
}

.svc-workshop-row__info { flex: 1; }

.svc-workshop-row__name {
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 5px;
}

.svc-workshop-row__meta {
  font-size: 0.82rem;
  color: var(--muted);
  margin: 0 0 4px;
}

.svc-workshop-row__with {
  font-size: 0.82rem;
  color: var(--rose);
  font-style: italic;
  margin: 0;
}

.svc-workshop-row__cta { flex-shrink: 0; }

.svc-workshop-row__btn.button {
  font-size: 0.72rem;
  padding: 10px 22px;
  letter-spacing: 0.08em;
}

/* ── Membership plan grid ── */
.svc-plan-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

/* 5th card (private) spans full width */
.svc-plan-card--private {
  grid-column: 1 / -1;
}

.svc-plan-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  background: var(--white);
  display: flex;
  flex-direction: column;
}

.svc-plan-card--featured {
  border-color: var(--ink);
}

/* Card header bar */
.svc-plan-card__header {
  background: var(--ink);
  color: var(--white);
  text-align: center;
  padding: 10px 16px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.svc-plan-card__header--offer {
  background: var(--rose);
}

.svc-plan-card__header--best {
  background: var(--ink);
  letter-spacing: 0.2em;
}

.svc-plan-card__header--private {
  background: var(--muted);
}

/* Card body */
.svc-plan-card__body {
  padding: clamp(20px, 3vw, 28px);
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
}

.svc-plan-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.svc-plan-card__name {
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  color: var(--ink);
  margin: 0;
  line-height: 1.2;
}

.svc-plan-card__type {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1px solid var(--line);
  border-radius: 40px;
  padding: 4px 12px;
  color: var(--muted);
  white-space: nowrap;
  flex-shrink: 0;
}

.svc-plan-card__desc {
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.55;
  margin: 0 0 18px;
}

.svc-plan-card__old-price {
  font-size: 0.8rem;
  color: var(--muted);
  text-decoration: line-through;
  margin: 0 0 2px;
}

.svc-plan-card__price-row {
  display: flex;
  align-items: baseline;
  gap: 5px;
  margin-bottom: 6px;
}

.svc-plan-card__price {
  font-size: clamp(1.8rem, 3.5vw, 2.4rem);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  color: var(--rose);
  line-height: 1;
}

.svc-plan-card__currency {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--rose);
}

.svc-plan-card__freq {
  font-size: 0.78rem;
  color: var(--muted);
  margin-left: 4px;
}

.svc-plan-card__detail {
  font-size: 0.8rem;
  color: var(--muted);
  margin: 0 0 16px;
  line-height: 1.4;
}

.svc-plan-card__savings {
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 12px 14px;
  margin-bottom: 16px;
}

.svc-plan-card__savings-title {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--rose);
  margin: 0 0 4px;
}

.svc-plan-card__savings-text {
  font-size: 0.8rem;
  color: var(--muted);
  font-style: italic;
  margin: 0;
  line-height: 1.45;
}

.svc-plan-card__actions {
  display: flex;
  gap: 10px;
  margin-top: auto;
  padding-top: 8px;
}

.svc-plan-card__details {
  flex: 1;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: none;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
  text-decoration: none;
  transition: border-color 0.15s, color 0.15s;
}
.svc-plan-card__details:hover {
  border-color: var(--ink);
  color: var(--ink);
}

.svc-plan-card__enrol {
  flex: 1;
  padding: 11px 12px;
  background: var(--ink);
  border: 1.5px solid var(--ink);
  border-radius: 5px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--white);
  text-align: center;
  text-decoration: none;
  transition: background 0.15s;
}
.svc-plan-card__enrol:hover { background: var(--muted); border-color: var(--muted); }

.svc-plan-card__enrol--light {
  background: var(--soft);
  border-color: var(--line);
  color: var(--ink);
}
.svc-plan-card__enrol--light:hover {
  background: var(--line);
  border-color: var(--line);
}

/* Private card — single enrol button full width */
.svc-plan-card--private .svc-plan-card__actions {
  flex-wrap: wrap;
}

.svc-pricing-note {
  margin-top: 28px;
  font-size: 0.8rem;
  color: var(--muted);
  text-align: center;
  letter-spacing: 0.01em;
}

/* ── New plan card design (v4) ── */
#membership-entry { scroll-margin-top: 160px; /* sticky header + tabs bar */ }

.svc-plan-rowlabel {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 14px;
}
.svc-plan-rowlabel--sub {
  margin-top: 36px;
}

.svc-plan-grid--3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.svc-plan-grid--2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

/* Base card */
.svc-plan {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 26px 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  transition: box-shadow 0.2s;
}
.svc-plan:hover {
  box-shadow: 0 4px 24px rgba(52,77,61,0.09);
}

/* Featured — ink dark card */
.svc-plan--featured {
  background: var(--ink);
  border-color: var(--ink);
}

/* Private — soft rose tint */
.svc-plan--private {
  background: var(--soft);
  border-color: var(--line);
}

/* Entry — plain white, slightly muted */
.svc-plan--entry {
  background: var(--bg);
}

/* Tag label */
.svc-plan__tag {
  display: inline-block;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rose);
  margin-bottom: 12px;
}
.svc-plan--featured .svc-plan__tag {
  color: rgba(255,250,248,0.6);
}
.svc-plan--private .svc-plan__tag {
  color: var(--muted);
}
.svc-plan__tag--offer {
  background: var(--rose);
  color: var(--white);
  border-radius: 20px;
  padding: 3px 10px;
}

/* Plan name */
.svc-plan__name {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  color: var(--ink);
  margin: 0 0 10px;
  line-height: 1.2;
}
.svc-plan--featured .svc-plan__name { color: var(--white); }

/* Description */
.svc-plan__desc {
  font-size: 0.84rem;
  color: var(--muted);
  line-height: 1.55;
  margin: 0 0 18px;
  flex: 1;
}
.svc-plan--featured .svc-plan__desc { color: rgba(255,250,248,0.65); }

/* Pricing row */
.svc-plan__pricing {
  display: flex;
  align-items: baseline;
  gap: 4px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.svc-plan__old {
  font-size: 0.82rem;
  color: var(--muted);
  text-decoration: line-through;
  margin-right: 2px;
}
.svc-plan__price {
  font-size: clamp(1.9rem, 3.5vw, 2.6rem);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  color: var(--rose);
  line-height: 1;
}
.svc-plan--featured .svc-plan__price { color: rgba(255,250,248,0.9); }
.svc-plan__currency {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--rose);
}
.svc-plan--featured .svc-plan__currency { color: rgba(255,250,248,0.7); }
.svc-plan__freq {
  font-size: 0.76rem;
  color: var(--muted);
  margin-left: 2px;
}
.svc-plan--featured .svc-plan__freq { color: rgba(255,250,248,0.5); }

/* Detail line */
.svc-plan__detail {
  font-size: 0.76rem;
  color: var(--muted);
  margin: 0 0 0;
  line-height: 1.4;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.svc-plan--featured .svc-plan__detail {
  color: rgba(255,250,248,0.45);
  border-bottom-color: rgba(255,250,248,0.12);
}

/* Action buttons */
.svc-plan__actions {
  display: flex;
  gap: 8px;
  padding-top: 16px;
  margin-top: auto;
}

.svc-plan__learn {
  flex: 1;
  padding: 10px 8px;
  text-align: center;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 7px;
  text-decoration: none;
  transition: border-color 0.15s, color 0.15s;
}
.svc-plan__learn:hover { border-color: var(--ink); color: var(--ink); }
.svc-plan--featured .svc-plan__learn {
  border-color: rgba(255,250,248,0.2);
  color: rgba(255,250,248,0.6);
}
.svc-plan--featured .svc-plan__learn:hover {
  border-color: rgba(255,250,248,0.6);
  color: var(--white);
}

.svc-plan__cta {
  flex: 1;
  padding: 10px 8px;
  text-align: center;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--ink);
  border: 1px solid var(--ink);
  border-radius: 7px;
  text-decoration: none;
  transition: background 0.15s;
}
.svc-plan__cta:hover { background: var(--muted); border-color: var(--muted); }
.svc-plan--featured .svc-plan__cta {
  background: var(--white);
  border-color: var(--white);
  color: var(--ink);
}
.svc-plan--featured .svc-plan__cta:hover { background: var(--soft); }
.svc-plan--entry .svc-plan__cta {
  background: var(--ink);
  color: var(--white);
}

/* Responsive */
@media (max-width: 900px) {
  .svc-plan-grid--3 { grid-template-columns: 1fr 1fr; }
  .svc-plan--private { grid-column: span 2; }
}
@media (max-width: 600px) {
  .svc-plan-grid--3,
  .svc-plan-grid--2 { grid-template-columns: 1fr; }
  .svc-plan--private { grid-column: span 1; }
}

/* ── SVC v3 Responsive ── */
@media (max-width: 860px) {
  .svc-sec-head { flex-direction: column; align-items: flex-start; }
  .svc-workshop-row { flex-direction: column; align-items: flex-start; gap: 16px; }
  .svc-plan-grid { grid-template-columns: 1fr; }
  .svc-plan-card--private { grid-column: span 1; }
}

@media (max-width: 640px) {
  .svc-tabs { flex-wrap: wrap; }
  .svc-tab { flex: 1 1 50%; border-bottom: 1px solid var(--line); }
  .svc-day-nav { overflow-x: auto; }
  .svc-day-tab { min-width: 52px; padding: 12px 6px; }
  .svc-class-row { gap: 14px; }
  .svc-class-row__actions { flex-direction: column; align-items: flex-end; gap: 6px; }
  .svc-class-row__badge { display: none; }
}

/* ── Italic emphasis inside section titles ── */
.svc-sec-title em {
  font-style: italic;
  color: var(--rose);
}

/* ── Who holds the space — voices grid ── */
.svc-voices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  margin-top: 36px;
}

.svc-voice {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 36px 32px;
  border-right: 1px solid var(--line);
}
.svc-voice:last-child { border-right: none; }

.svc-voice__avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--soft);
  border: 1.5px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.02em;
  flex-shrink: 0;
}

.svc-voice__name {
  font-size: 1.05rem;
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 500;
  color: var(--ink);
  margin: 0 0 4px;
}

.svc-voice__role {
  font-size: 0.78rem;
  color: var(--rose);
  letter-spacing: 0.03em;
  font-style: italic;
  margin: 0 0 6px;
}

.svc-voice__note {
  font-size: 0.84rem;
  color: var(--muted);
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 800px) {
  .svc-voices { grid-template-columns: 1fr; }
  .svc-voice { border-right: none; border-bottom: 1px solid var(--line); padding: 28px 0; }
  .svc-voice:last-child { border-bottom: none; }
}

/* ════════════════════════════════════════════════════════════════════ */
/* BOOKING / REQUEST PAGES                                               */
/* (book-class.php, book-workshop.php, request-practice.php)             */
/* Styled to match the main site: serif titles, global input borders,   */
/* pill buttons. Inputs/selects/textarea inherit the global form styling */
/* (border #eab2b6, radius 2px) so they look identical to the contact   */
/* page; we only force full width inside booking fields.                 */
/* ════════════════════════════════════════════════════════════════════ */
.booking-page { padding: clamp(40px, 6vw, 80px) 0; }
.booking-page__inner { max-width: 660px; margin: 0 auto; }

.booking-page__title {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(2.6rem, 5vw, 3.6rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 8px 0 6px;
  color: var(--ink);
}
.booking-page__meta {
  color: var(--muted);
  font-size: 15px;
  margin: 0 0 6px;
}
.booking-page__with {
  color: var(--muted);
  font-size: 14px;
  margin: 0 0 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.booking-page__form { display: flex; flex-direction: column; gap: 18px; margin-top: 14px; }
.booking-page__field { display: flex; flex-direction: column; gap: 8px; }
.booking-page__field > span {
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rose);
}
/* Full width inside booking fields (global input caps at 232px) */
.booking-page__field input,
.booking-page__field select,
.booking-page__field textarea { width: 100%; }
.booking-page__field textarea { min-height: 120px; }

.booking-page__actions {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 6px;
}

/* Ghost button — matches the pill .button but outlined */
.button--ghost {
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--line);
}
.button--ghost:hover { background: transparent; color: var(--rose); border-color: var(--rose); }

.booking-page__error {
  background: #fbeae9;
  border: 1px solid #f0c7c5;
  color: #a63125;
  padding: 12px 14px;
  border-radius: 6px;
  font-size: 14px;
  margin: 4px 0 16px;
}
.booking-page__error p { margin: 0; }
.booking-page__error p + p { margin-top: 4px; }

.booking-page__success {
  background: #eef5ee;
  border: 1px solid #cfe0cf;
  border-radius: 10px;
  padding: 28px;
  margin-top: 16px;
}
.booking-page__success h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(2rem, 4vw, 2.6rem);
  margin: 0 0 10px;
  color: var(--ink);
}
.booking-page__success p { margin: 0 0 14px; color: var(--ink); }
.booking-page__success p:last-child { margin-bottom: 0; }

/* ── Class wizard steps ─────────────────────────────────────────────── */
.cwiz-step { display: none; }
.cwiz-step.is-active { display: flex; flex-direction: column; gap: 18px; }
.cwiz-hint { color: var(--muted); font-size: 15px; line-height: 1.55; margin: 0; }

.cwiz-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.cwiz-fieldset {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px 18px;
  margin: 0;
}
.cwiz-fieldset legend {
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rose);
  padding: 0 6px;
}

/* Checkbox grid + rows (the inline <style> in the page also covers this,
   but keep it here so the layout holds even without inline CSS). */
.cwiz-checkgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 24px; margin-top: 8px; }
.cwiz-check-row { display: flex; align-items: flex-start; gap: 10px; padding: 4px 0; font-size: 14px; line-height: 1.35; }
.cwiz-check-row > input[type="checkbox"] { flex: 0 0 16px; margin: 3px 0 0; }
.cwiz-check-row > label { flex: 1 1 auto; cursor: pointer; color: var(--ink); font-weight: 400; }
.cwiz-other { grid-column: 1 / -1; width: 100%; box-sizing: border-box; margin-top: 6px; }

/* Generic consent row (booking pages) */
.consent-row { display: flex; align-items: flex-start; gap: 10px; padding: 6px 0; font-size: 13px; color: var(--muted); line-height: 1.4; }
.consent-row > input[type="checkbox"] { flex: 0 0 16px; margin: 3px 0 0; }
.consent-row > label { flex: 1 1 auto; cursor: pointer; color: var(--muted); font-weight: 400; font-size: 13px; line-height: 1.4; }

/* ── Plan cards ─────────────────────────────────────────────────────── */
.cwiz-plans { display: grid; grid-template-columns: 1fr; gap: 12px; }
.cwiz-plan {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 10px;
  cursor: pointer;
  background: var(--white);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.cwiz-plan:hover { border-color: var(--rose); }
.cwiz-plan > input[type="radio"] { flex: 0 0 18px; width: 18px; height: 18px; margin: 3px 0 0; min-height: 0; accent-color: var(--rose); }
.cwiz-plan:has(input:checked) { border-color: var(--rose); box-shadow: 0 0 0 1px var(--rose); }
.cwiz-plan__body { flex: 1 1 auto; }
.cwiz-plan__tag {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rose);
  margin-bottom: 4px;
}
.cwiz-plan__name {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 1.4rem;
  margin: 0 0 4px;
  color: var(--ink);
}
.cwiz-plan__price { margin: 0 0 4px; color: var(--ink); font-size: 1rem; }
.cwiz-plan__freq { color: var(--muted); font-size: 0.88rem; }
.cwiz-plan__detail { margin: 0; color: var(--muted); font-size: 0.88rem; }

/* ── Payment block ──────────────────────────────────────────────────── */
.cwiz-payment {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  align-items: flex-start;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--soft);
}
.cwiz-payment__info { flex: 1 1 260px; }
.cwiz-payment__info p { margin: 0 0 6px; font-size: 14px; color: var(--ink); }
.cwiz-payment__amount { font-size: 16px !important; margin-top: 8px !important; }
.cwiz-payment__note { color: var(--muted); font-size: 13px !important; }
.cwiz-payment__qr { flex: 0 0 auto; }
.cwiz-payment__qr img { width: 140px; height: 140px; object-fit: contain; border-radius: 6px; background: #fff; padding: 6px; }

.cwiz-linkbtn {
  background: none;
  border: 0;
  color: var(--rose);
  text-decoration: underline;
  font: inherit;
  font-size: 14px;
  padding: 4px 0;
  cursor: pointer;
  align-self: flex-start;
  min-height: 0;
}

@media (max-width: 540px) {
  .cwiz-grid { grid-template-columns: 1fr; }
  .cwiz-checkgrid { grid-template-columns: 1fr; }
  .cwiz-payment { flex-direction: column; }
  .booking-page__actions { flex-direction: column; align-items: stretch; }
  .booking-page__actions .button { width: 100%; text-align: center; }
}

/* ── Legal pages (terms / privacy / refunds / disclaimer) ──────────── */
.legal-page { padding: clamp(40px, 6vw, 80px) 0; }
.legal-page__inner { max-width: 760px; margin: 0 auto; }
.legal-page__title {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(2.4rem, 5vw, 3.4rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
  color: var(--ink);
}
.legal-page__body { font-size: 17px; line-height: 1.7; color: var(--ink); }
.legal-page__body p { margin: 0 0 1.2em; }
.legal-page__body h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 1.7rem;
  margin: 1.6em 0 0.4em;
}
.legal-page__body h3 { font-size: 1.3rem; margin: 1.3em 0 0.3em; }
.legal-page__body ul, .legal-page__body ol { padding-left: 1.4em; margin: 0 0 1.2em; }
.legal-page__body li { margin-bottom: 0.4em; }
.legal-page__body a { color: var(--rose); }
.legal-page__empty { color: var(--muted); font-size: 16px; }
.legal-page__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.legal-page__nav a { color: var(--muted); font-size: 14px; text-decoration: none; }
.legal-page__nav a:hover { color: var(--rose); }

/* Instagram widget embed container (when an admin pastes a feed widget) */
.insta-embed { margin: 28px auto 8px; max-width: 1000px; }
.insta-embed iframe { width: 100% !important; border: 0; }

/* ════════════════════════════════════════════════════════════════════ */
/* JOURNAL (blog) — listing + article detail                            */
/* Re-added after a styles.css revert dropped the whole block.          */
/* ════════════════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────────────────── */
.journal-hero { padding: clamp(48px, 7vw, 96px) 0 clamp(24px, 3vw, 40px); }
.journal-hero__inner { max-width: 880px; margin: 0 auto; text-align: center; }
.journal-hero__eyebrow {
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--rose);
  margin: 0 0 14px;
}
.journal-hero__title {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(2.8rem, 6vw, 4.4rem);
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 0 0 18px;
  color: var(--ink);
}
.journal-hero__title em { color: var(--rose); font-style: italic; }
.journal-hero__sub {
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.6;
  max-width: 620px;
  margin: 0 auto;
}

/* ── Category chips ────────────────────────────────────────────────── */
.journal-cats { border-bottom: 1px solid var(--line); }
.journal-cats__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  padding-top: 18px;
  padding-bottom: 18px;
}
.journal-cat {
  display: inline-block;
  padding: 7px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 14px;
  color: var(--muted);
  text-decoration: none;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.journal-cat:hover { border-color: var(--rose); color: var(--rose); }
.journal-cat--active { background: var(--ink); border-color: var(--ink); color: #fff; }
.journal-cat--active:hover { color: #fff; }

/* ── Posts grid ────────────────────────────────────────────────────── */
.journal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 4vw, 48px);
  margin-top: 8px;
}
.journal-card { display: flex; flex-direction: column; }
.journal-card__img {
  display: block;
  overflow: hidden;
  border-radius: 10px;
  aspect-ratio: 3 / 2;
  background: var(--soft);
}
.journal-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.journal-card:hover .journal-card__img img { transform: scale(1.03); }
.journal-card__body { padding-top: 16px; }
.journal-card__cat {
  display: inline-block;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 11px;
  color: var(--rose);
  margin-bottom: 8px;
}
.journal-card__title {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 1.15;
  margin: 0 0 8px;
}
.journal-card__title a { color: var(--ink); text-decoration: none; }
.journal-card__title a:hover { color: var(--rose); }
.journal-card__excerpt { color: var(--muted); font-size: 0.98rem; line-height: 1.6; margin: 0 0 10px; }
.journal-card__meta { color: var(--muted); font-size: 0.82rem; letter-spacing: 0.02em; margin: 0; }

/* ── Pager ─────────────────────────────────────────────────────────── */
.journal-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: clamp(40px, 5vw, 64px);
}
.journal-pager__btn {
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--rose);
  font-size: 0.95rem;
}
.journal-pager__btn:hover { color: var(--rose); }
.journal-pager__info { color: var(--muted); font-size: 0.9rem; }

/* ── Empty state ───────────────────────────────────────────────────── */
.journal-empty { color: var(--muted); font-size: 17px; text-align: center; padding: 64px 0; }
.journal-empty-wrap { min-height: 40vh; display: flex; flex-direction: column; justify-content: center; }

/* ── Article detail ────────────────────────────────────────────────── */
.journal-back {
  max-width: 760px;
  margin: 28px auto 0;
  padding: 0 24px;
  font-size: 13px;
  letter-spacing: 0.06em;
}
.journal-back a { color: var(--muted); text-decoration: none; }
.journal-back a:hover { color: var(--rose); }

.journal-article__header {
  max-width: 760px;
  margin: 16px auto 28px;
  padding: 0 24px;
  text-align: left;
}
.journal-article__cat {
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--rose);
  margin: 0 0 12px;
}
.journal-article__title {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin: 0 0 14px;
  color: var(--ink);
}
.journal-article__meta { color: var(--muted); font-size: 14px; margin: 0; }

/* Featured image — override the global figure {} rule (rose border + min-height) */
.journal-article__hero {
  max-width: 1080px;
  margin: 12px auto 32px;
  padding: 0 24px;
  border-top: 0;
  min-height: 0;
}
.journal-article__hero img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.journal-article__body {
  max-width: 680px;
  margin: 0 auto;
  padding: 8px 24px 0;
  font-size: 18px;
  line-height: 1.7;
  color: var(--ink);
}
.journal-article__body p { margin: 0 0 1.3em; }
.journal-article__body h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 1.9rem;
  line-height: 1.2;
  margin: 1.6em 0 0.4em;
}
.journal-article__body h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  font-size: 1.4rem;
  margin: 1.4em 0 0.3em;
}
.journal-article__body blockquote {
  margin: 1.4em 0;
  padding: 14px 22px;
  border-left: 3px solid var(--rose);
  color: var(--muted);
  font-style: italic;
}
.journal-article__body ul, .journal-article__body ol { padding-left: 1.4em; margin: 0 0 1.3em; }
.journal-article__body li { margin-bottom: 0.4em; }
.journal-article__body a { color: var(--rose); }
.journal-article__body img { max-width: 100%; height: auto; border-radius: 6px; margin: 1em 0; }
.journal-article__body figure { margin: 1.4em 0; border-top: 0; min-height: 0; padding: 0; }
.journal-article__body figcaption { font-size: 13px; color: var(--muted); text-align: center; margin-top: 6px; }

/* Author card */
.journal-article__author {
  max-width: 680px;
  margin: 48px auto 0;
  padding: 22px 24px;
  border-top: 1px solid var(--line);
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

/* Related */
.journal-related { max-width: 1080px; margin: 56px auto 0; padding: 40px 24px 0; border-top: 1px solid var(--line); }

@media (max-width: 700px) {
  .journal-grid { grid-template-columns: 1fr; }
}

/* ── Region (currency) toggle — CZK / INR ──────────────────────────── */
.region-toggle {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 999px;
  overflow: hidden;
  background: #fff;
}
.region-toggle__btn {
  padding: 7px 16px;
  font-size: 14px;
  color: var(--muted);
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.region-toggle__btn + .region-toggle__btn { border-left: 1px solid var(--line); }
.region-toggle__btn:hover { color: var(--rose); }
.region-toggle__btn.is-active { background: var(--ink); color: #fff; }

/* Booking page: space the toggle under the meta line */
.booking-page .region-toggle { margin: 4px 0 18px; }

/* UPI bits on the payment step */
.cwiz-payment__upi { font-family: ui-monospace, monospace; word-break: break-all; }
.cwiz-payment__qrcap { margin: 8px 0 0; font-size: 12px; color: var(--muted); text-align: center; }
