/**
 * Balance Pilates — brand tokens
 *
 * Brand-specific values live under --bp-*. The --wt-* aliases below let the
 * parent components inherit the project identity without template overrides.
 */

:root {
  /* Brand palette sampled and normalised from the approved mockup. */
  --bp-color-ink: #34261f;
  --bp-color-text: #57483f;
  --bp-color-muted: #806f64;
  --bp-color-brand: #8a5f45;
  --bp-color-brand-hover: #6f4934;
  --bp-color-brand-soft: #c7a991;
  --bp-color-cream: #fbf7f1;
  --bp-color-cream-deep: #f4ece2;
  --bp-color-surface: #fffdf9;
  --bp-color-border: #e7d9cc;
  --bp-color-white: #ffffff;

  /* Source Serif 4 has a complete Vietnamese set and soft display proportions. */
  --bp-font-heading: "Source Serif 4", Georgia, "Times New Roman", serif;
  --bp-font-body: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bp-font-size-xs: 0.75rem;
  --bp-font-size-display: clamp(3rem, 6vw, 5.5rem);
  --bp-font-size-h1: clamp(2.5rem, 4.5vw, 4.5rem);
  --bp-font-size-h2: clamp(2rem, 3vw, 3rem);
  --bp-font-size-h3: clamp(1.375rem, 2vw, 1.75rem);
  --bp-font-size-section-title: clamp(2rem, 3vw, 3rem);
  --bp-leading-display: 1.02;
  --bp-leading-heading: 1.16;
  --bp-leading-body: 1.7;

  /* Layout and shape. */
  --bp-container-max: 1320px;
  --bp-section-space: clamp(4rem, 8vw, 7.5rem);
  --bp-section-space-compact: clamp(2.5rem, 5vw, 4.5rem);
  --bp-home-section-space: clamp(3.25rem, 5vw, 5rem);
  --bp-radius-sm: 8px;
  --bp-radius-md: 14px;
  --bp-radius-lg: 20px;
  --bp-radius-pill: 999px;
  --bp-shadow-card: 0 12px 40px rgba(91, 62, 45, 0.08);
  --bp-shadow-card-hover: 0 18px 50px rgba(91, 62, 45, 0.14);

  /* Parent-theme semantic aliases. */
  --wt-bg-base: var(--bp-color-cream);
  --wt-bg-shade: var(--bp-color-cream-deep);
  --wt-bg-subtle: #f0e5da;
  --wt-bg-card: var(--bp-color-surface);
  --wt-bg-input: var(--bp-color-white);
  --wt-text-main: var(--bp-color-ink);
  --wt-text-body: var(--bp-color-text);
  --wt-text-muted: var(--bp-color-muted);
  --wt-text-faint: #8d7d72;
  --wt-border-light: var(--bp-color-border);
  --wt-border-medium: #d8c5b5;
  --wt-color-primary: var(--bp-color-brand);
  --wt-color-primary-hover: var(--bp-color-brand-hover);
  --wt-color-primary-muted: var(--bp-color-brand-soft);
  --wt-link-color: var(--bp-color-brand);
  --wt-link-hover-color: var(--bp-color-brand-hover);
  --wt-font-sans: var(--bp-font-body);
  --wt-container-max: var(--bp-container-max);
  --wt-radius-sm: var(--bp-radius-sm);
  --wt-radius-base: var(--bp-radius-sm);
  --wt-radius-md: var(--bp-radius-md);
  --wt-radius-lg: var(--bp-radius-lg);
  --wt-radius-full: var(--bp-radius-pill);
  --wt-shadow-subtle: var(--bp-shadow-card);
  --wt-shadow-hover: var(--bp-shadow-card-hover);
  --wt-shadow-focus: 0 0 0 3px rgba(138, 95, 69, 0.2);
}

/* Personalised training approach */
.bp-home-approach { padding: clamp(4rem, 7vw, 7rem) 0; color: var(--bp-color-ink); background: #f8f2ea; }
.bp-home-approach__panel { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, .86fr) minmax(32rem, 1.14fr); min-height: 39rem; border: 1px solid rgba(133,82,52,.14); border-radius: 2rem; background: #fffdf9; box-shadow: 0 2rem 5rem rgba(80,49,32,.09); }
.bp-home-approach__panel::before,
.bp-home-approach__panel::after { position: absolute; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; pointer-events: none; content: ""; }
.bp-home-approach__panel::before { width: 27rem; height: 27rem; left: -14rem; bottom: -15rem; }
.bp-home-approach__panel::after { width: 16rem; height: 16rem; left: 4rem; bottom: -11rem; }
.bp-home-approach__intro { position: relative; z-index: 1; display: flex; padding: clamp(2.5rem, 5vw, 5rem); flex-direction: column; align-items: flex-start; color: #fff; background: linear-gradient(145deg, #9d684a 0%, #815038 100%); }
.bp-home-approach__intro .bp-section-heading__eyebrow { color: #f1d8c5; }
.bp-home-approach__intro h2 { max-width: 13ch; margin: .85rem 0 1.5rem; color: #fff; font-family: inherit; font-size: clamp(2.4rem, 3.7vw, 4rem); font-style: normal; font-weight: 600; letter-spacing: -.045em; line-height: 1.06; }
.bp-home-approach__intro > p { max-width: 36rem; margin: 0; color: rgba(255,255,255,.78); font-size: .95rem; line-height: 1.85; }
.bp-home-approach__intro > a { display: inline-flex; margin-top: 2rem; padding: .8rem 1.15rem; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; align-items: center; gap: 1rem; color: #fff; font-size: .82rem; font-weight: 700; text-decoration: none; transition: color .25s ease, background .25s ease, transform .25s ease; }
.bp-home-approach__intro > a:hover { transform: translateY(-2px); color: #85543b; background: #fff; }
.bp-home-approach__seal { display: flex; margin-top: auto; padding-top: 2.5rem; align-items: center; gap: .8rem; color: #fff; }
.bp-home-approach__seal strong { display: grid; width: 3.35rem; height: 3.35rem; border-radius: 50%; place-items: center; color: #8d5b40; background: #f8ecdf; font-size: 1.15rem; font-weight: 600; }
.bp-home-approach__seal small { max-width: 6rem; color: rgba(255,255,255,.72); font-size: .7rem; font-weight: 600; letter-spacing: .08em; line-height: 1.45; text-transform: uppercase; }
.bp-home-approach__steps { position: relative; display: grid; padding: clamp(1.5rem, 3vw, 3rem); gap: .85rem; align-content: center; background: linear-gradient(135deg, #fffdf9, #fbf5ed); }
.bp-home-approach__steps::before { position: absolute; width: 1px; top: 18%; bottom: 18%; left: calc(clamp(1.5rem, 3vw, 3rem) + 2.55rem); background: linear-gradient(transparent, rgba(149,97,68,.28) 15%, rgba(149,97,68,.28) 85%, transparent); content: ""; }
.bp-home-approach__steps article { position: relative; z-index: 1; display: grid; grid-template-columns: 5.1rem 1fr; gap: 1.4rem; min-height: 9.4rem; padding: 1.35rem 1.6rem 1.35rem 1rem; border: 1px solid rgba(149,97,68,.14); border-radius: 1.35rem; align-items: center; background: rgba(255,255,255,.86); box-shadow: 0 .8rem 2rem rgba(80,49,32,.045); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.bp-home-approach__steps article:nth-child(2) { transform: translateX(1rem); }
.bp-home-approach__steps article:hover { transform: translateX(.4rem); border-color: rgba(149,97,68,.32); box-shadow: 0 1.2rem 2.5rem rgba(80,49,32,.09); }
.bp-home-approach__steps article:nth-child(2):hover { transform: translateX(1.4rem); }
.bp-home-approach__icon { position: relative; display: grid; width: 4.6rem; height: 4.6rem; border: 1px solid rgba(149,97,68,.2); border-radius: 50%; place-items: center; color: #996447; background: #fbf3e9; }
.bp-home-approach__icon svg { width: 2rem; height: 2rem; stroke-width: 1.4; }
.bp-home-approach__icon small { position: absolute; top: -.25rem; right: -.15rem; display: grid; width: 1.55rem; height: 1.55rem; border-radius: 50%; place-items: center; color: #fff; background: #996447; font-size: .55rem; font-weight: 700; }
.bp-home-approach__label { display: block; margin-bottom: .3rem; color: #aa8066; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.bp-home-approach__steps h3 { margin: 0 0 .5rem; color: #35271f; font-family: inherit; font-size: 1.12rem; font-style: normal; font-weight: 700; }
.bp-home-approach__steps p { max-width: 34rem; margin: 0; color: #756155; font-size: .87rem; line-height: 1.7; }

@media (max-width: 1050px) {
  .bp-home-approach__panel { grid-template-columns: 1fr; }
  .bp-home-approach__intro { min-height: 32rem; }
  .bp-home-approach__steps article:nth-child(2),
  .bp-home-approach__steps article:nth-child(2):hover { transform: none; }
}

@media (max-width: 600px) {
  .bp-home-approach__panel { min-height: 0; border-radius: 1.35rem; }
  .bp-home-approach__intro { min-height: 0; padding: 2rem 1.35rem; }
  .bp-home-approach__seal { margin-top: 2rem; }
  .bp-home-approach__steps { padding: 1rem; }
  .bp-home-approach__steps::before { display: none; }
  .bp-home-approach__steps article { grid-template-columns: 3.75rem 1fr; min-height: 0; padding: 1.25rem 1rem; gap: 1rem; }
  .bp-home-approach__icon { width: 3.55rem; height: 3.55rem; }
  .bp-home-approach__icon svg { width: 1.55rem; height: 1.55rem; }
}

/* Single class landing page */

.bp-class-detail {
  --bp-detail-cream: #f8f2e9;
  --bp-detail-paper: #fffdf9;
  --bp-detail-ink: #30231d;
  --bp-detail-brand: #956144;
  --bp-detail-line: rgba(149, 97, 68, 0.18);
  color: var(--bp-detail-ink);
  background: var(--bp-detail-paper);
}

.bp-class-detail h1,
.bp-class-detail h2,
.bp-class-detail h3 { margin: 0; color: var(--bp-detail-ink); font-family: inherit; font-style: normal; }
.bp-class-detail p { margin-top: 0; }
.bp-class-detail__hero { position: relative; overflow: hidden; padding: clamp(3rem, 6vw, 6rem) 0; background: linear-gradient(115deg, #fbf6ef 0%, #f5eadc 100%); }
.bp-class-detail__hero::before { position: absolute; width: 38rem; height: 38rem; left: -19rem; bottom: -28rem; border: 1px solid rgba(149,97,68,.13); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(255,255,255,.18), 0 0 0 8rem rgba(255,255,255,.12); content: ""; }
.bp-class-detail__hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, .82fr) minmax(32rem, 1.18fr); gap: clamp(2.5rem, 6vw, 6.5rem); align-items: center; }
.bp-class-detail__hero-copy { max-width: 40rem; }
.bp-class-detail__back { display: inline-flex; margin-bottom: 2.2rem; color: #80604d; font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-decoration: none; }
.bp-class-detail__eyebrow { display: block; margin-bottom: .85rem; color: var(--bp-detail-brand); font-size: .76rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.bp-class-detail__hero h1 { max-width: 10ch; font-size: clamp(3.5rem, 6.4vw, 6.8rem); font-weight: 600; letter-spacing: -.055em; line-height: .94; }
.bp-class-detail__tagline { margin: 1.5rem 0 .75rem; color: var(--bp-detail-brand); font-size: clamp(1.15rem, 1.8vw, 1.5rem); font-weight: 600; }
.bp-class-detail__summary { max-width: 38rem; margin-bottom: 0; color: #69574c; font-size: 1rem; line-height: 1.8; }
.bp-class-detail__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.bp-class-detail__primary,
.bp-class-detail__call { display: inline-flex; min-height: 3.25rem; padding: .75rem 1.35rem; border: 1px solid var(--bp-detail-line); border-radius: 999px; align-items: center; justify-content: center; gap: 1rem; color: var(--bp-detail-brand); font-size: .88rem; font-weight: 700; text-decoration: none; transition: transform .25s ease, background .25s ease, color .25s ease; }
.bp-class-detail__primary { border-color: var(--bp-detail-brand); color: #fff; background: var(--bp-detail-brand); }
.bp-class-detail__primary:hover,
.bp-class-detail__call:hover { transform: translateY(-2px); color: #fff; background: var(--bp-detail-ink); }
.bp-class-detail__hero-media { position: relative; overflow: hidden; min-height: clamp(28rem, 43vw, 42rem); border-radius: 52% 52% 2rem 2rem / 45% 45% 2rem 2rem; background: #dcc6b4; box-shadow: 0 1.8rem 4rem rgba(68,42,29,.15); }
.bp-class-detail__hero-image { width: 100%; height: 100%; position: absolute; inset: 0; display: block; object-fit: cover; object-position: center; }
.bp-class-detail__placeholder { position: absolute; inset: 0; background: radial-gradient(circle at 65% 30%, #f8eee4, transparent 24%), linear-gradient(135deg, #ead9ca, #c19d87); }
.bp-class-detail__media-label { position: absolute; right: 1.5rem; bottom: 1.5rem; display: grid; padding: .9rem 1.15rem; border: 1px solid rgba(255,255,255,.65); border-radius: 1rem; color: #fff; background: rgba(48,35,29,.62); backdrop-filter: blur(12px); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bp-class-detail__media-label small { margin-top: .25rem; font-size: .64rem; font-weight: 500; letter-spacing: .04em; text-transform: none; }

.bp-class-detail__facts { position: relative; z-index: 2; background: #fff; border-block: 1px solid var(--bp-detail-line); }
.bp-class-detail__facts-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.bp-class-detail__facts-grid > div { position: relative; padding: 1.75rem clamp(1rem, 2.5vw, 2.5rem); }
.bp-class-detail__facts-grid > div + div { border-left: 1px solid var(--bp-detail-line); }
.bp-class-detail__facts span { display: block; margin-bottom: .35rem; color: #9b7b67; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.bp-class-detail__facts strong { font-size: .98rem; font-weight: 650; }

.bp-class-detail__fit,
.bp-class-detail__gallery,
.bp-class-detail__benefits,
.bp-class-detail__editor,
.bp-class-detail__process { padding: clamp(4.5rem, 8vw, 7.5rem) 0; }
.bp-class-detail__fit-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.bp-class-detail__fit h2,
.bp-class-detail__section-heading h2 { font-size: clamp(2.25rem, 4vw, 4rem); font-weight: 600; letter-spacing: -.045em; line-height: 1.08; }
.bp-class-detail__fit header > p,
.bp-class-detail__section-heading > p { max-width: 40rem; margin: 1.25rem 0 0; color: #705e52; font-size: .98rem; line-height: 1.8; }
.bp-class-detail__audience { display: grid; border-top: 1px solid var(--bp-detail-line); }
.bp-class-detail__audience article { display: grid; grid-template-columns: 3.5rem 1fr; gap: 1rem; padding: 1.65rem 0; border-bottom: 1px solid var(--bp-detail-line); align-items: start; }
.bp-class-detail__audience article > span { color: #b99278; font-size: .76rem; font-weight: 700; letter-spacing: .1em; }
.bp-class-detail__audience p { max-width: 36rem; margin: 0; font-size: 1.05rem; font-weight: 600; line-height: 1.55; }

.bp-class-detail__benefits { background: var(--bp-detail-cream); }
.bp-class-detail__section-heading { max-width: 50rem; margin-bottom: 3rem; }
.bp-class-detail__benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.bp-class-detail__benefit-grid article { min-height: 18rem; padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--bp-detail-line); border-radius: 1.5rem; background: rgba(255,253,249,.78); box-shadow: 0 1.25rem 3rem rgba(80,49,32,.05); }
.bp-class-detail__benefit-icon { display: grid; width: 3rem; height: 3rem; margin-bottom: 3.5rem; border: 1px solid var(--bp-detail-line); border-radius: 50%; place-items: center; color: var(--bp-detail-brand); font-size: .72rem; font-weight: 700; background: #fff; }
.bp-class-detail__benefit-grid h3 { margin-bottom: .9rem; font-size: 1.25rem; font-weight: 650; line-height: 1.35; }
.bp-class-detail__benefit-grid p { margin-bottom: 0; color: #756155; font-size: .9rem; line-height: 1.75; }

.bp-class-detail__editor { padding-top: 0; }
.bp-class-detail__editor-inner { max-width: 58rem; margin-inline: auto; padding: clamp(2rem, 5vw, 5rem); border: 1px solid var(--bp-detail-line); border-radius: 1.5rem; background: #fff; box-shadow: 0 1.5rem 4rem rgba(80,49,32,.06); }
.bp-class-detail__editor-inner h2 { margin: 2.5rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.bp-class-detail__editor-inner h2:first-child { margin-top: 0; }
.bp-class-detail__editor-inner p,
.bp-class-detail__editor-inner li { color: #665449; font-size: 1rem; line-height: 1.85; }

.bp-class-detail__process-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid var(--bp-detail-line); }
.bp-class-detail__process-grid article { padding: 2.25rem clamp(1rem, 3vw, 3rem); }
.bp-class-detail__process-grid article + article { border-left: 1px solid var(--bp-detail-line); }
.bp-class-detail__process-grid span { color: #ba967e; font-size: 2rem; font-weight: 500; }
.bp-class-detail__process-grid h3 { margin: 2.5rem 0 .75rem; font-size: 1.2rem; font-weight: 650; }
.bp-class-detail__process-grid p { margin-bottom: 0; color: #725f53; font-size: .9rem; line-height: 1.75; }

.bp-class-detail__cta { padding: 0 0 clamp(4.5rem, 8vw, 7.5rem); }
.bp-class-detail__cta-inner { display: grid; grid-template-columns: 1fr auto; gap: 2rem; padding: clamp(2rem, 5vw, 4.5rem); border-radius: 1.75rem; align-items: center; color: #fff; background: linear-gradient(125deg, #84543c, #a97758); box-shadow: 0 1.5rem 4rem rgba(80,49,32,.16); }
.bp-class-detail__cta .bp-class-detail__eyebrow { color: #f1d8c5; }
.bp-class-detail__cta h2 { max-width: 18ch; color: #fff; font-size: clamp(2rem, 3.6vw, 3.5rem); font-weight: 600; letter-spacing: -.04em; line-height: 1.08; }
.bp-class-detail__cta p { max-width: 40rem; margin: 1rem 0 0; color: rgba(255,255,255,.78); line-height: 1.7; }
.bp-class-detail__cta .bp-class-detail__actions { margin-top: 0; }
.bp-class-detail__cta .bp-class-detail__primary { color: var(--bp-detail-brand); border-color: #fff; background: #fff; }
.bp-class-detail__cta .bp-class-detail__call { color: #fff; border-color: rgba(255,255,255,.35); }

@media (max-width: 1024px) {
  .bp-class-detail__hero-grid { grid-template-columns: 1fr; }
  .bp-class-detail__hero-copy { max-width: 48rem; }
  .bp-class-detail__hero h1 { max-width: 14ch; }
  .bp-class-detail__hero-media { min-height: min(65vw, 38rem); border-radius: 2rem; }
  .bp-class-detail__fit-grid { grid-template-columns: 1fr; gap: 3rem; }
  .bp-class-detail__cta-inner { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .bp-class-detail__hero { padding: 2.25rem 0 3rem; }
  .bp-class-detail__back { margin-bottom: 1.5rem; }
  .bp-class-detail__hero h1 { font-size: clamp(3rem, 15vw, 4.5rem); }
  .bp-class-detail__hero-media { min-height: 72vw; border-radius: 1.25rem; }
  .bp-class-detail__media-label { right: .8rem; bottom: .8rem; }
  .bp-class-detail__facts-grid { grid-template-columns: repeat(2, 1fr); }
  .bp-class-detail__facts-grid > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--bp-detail-line); }
  .bp-class-detail__facts-grid > div:nth-child(4) { border-top: 1px solid var(--bp-detail-line); }
  .bp-class-detail__benefit-grid,
  .bp-class-detail__process-grid { grid-template-columns: 1fr; }
  .bp-class-detail__benefit-grid article { min-height: auto; }
  .bp-class-detail__benefit-icon { margin-bottom: 2rem; }
  .bp-class-detail__process-grid article + article { border-left: 0; border-top: 1px solid var(--bp-detail-line); }
  .bp-class-detail__process-grid h3 { margin-top: 1.25rem; }
  .bp-class-detail__cta-inner { border-radius: 1.25rem; }
  .bp-class-detail__actions { align-items: stretch; flex-direction: column; }
}

/* Balance Reformer: compact rhythm, readable hero and a complete product gallery. */
.bp-reformer-page {
	--bp-reformer-space: clamp(3rem, 4.6vw, 4.75rem);
}
.bp-reformer-hero {
	padding-block: clamp(2.75rem, 4.2vw, 4.25rem);
}
.bp-reformer-hero__grid {
	grid-template-columns: minmax(31rem, 1.05fr) minmax(25rem, .95fr);
	gap: clamp(2.5rem, 5vw, 5rem);
}
.bp-reformer-hero h1 {
	max-width: 11.5ch;
	font-size: clamp(3rem, 4.35vw, 4.65rem);
	line-height: 1.04;
	letter-spacing: -.045em;
}
.bp-reformer-hero figure {
	height: clamp(25rem, 37vw, 34rem);
}
.bp-reformer-section {
	padding-block: var(--bp-reformer-space);
}
.bp-reformer-heading {
	margin-bottom: clamp(1.75rem, 2.7vw, 2.5rem);
}
.bp-reformer-heading h2,
.bp-reformer-warranty h2,
.bp-reformer-offer h2 {
	font-size: clamp(2.15rem, 3.25vw, 3.45rem);
	line-height: 1.08;
}
.bp-reformer-intro {
	background: radial-gradient(circle at 92% 8%, rgba(199,150,116,.12), transparent 25rem), #fffaf5;
}
.bp-reformer-feature-grid article {
	min-height: 13.5rem;
	padding: 1.5rem;
}
.bp-reformer-feature-grid h3 {
	margin-top: 1.8rem;
}
.bp-reformer-gallery__grid {
	grid-auto-rows: 10.5rem;
}
.bp-reformer-gallery__grid figure:nth-child(5) {
	grid-column: span 12;
	grid-row: span 1;
}
.bp-reformer-gallery__grid a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	color: #fff;
	overflow: hidden;
}
.bp-reformer-gallery__grid a > span {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	display: grid;
	width: 2.65rem;
	height: 2.65rem;
	place-items: center;
	border: 1px solid rgba(255,255,255,.48);
	border-radius: 50%;
	background: rgba(48,31,24,.56);
	backdrop-filter: blur(8px);
	transition: transform .25s ease, background-color .25s ease;
}
.bp-reformer-gallery__grid a:hover > span {
	transform: scale(1.08);
	background: rgba(155,98,67,.9);
}
.bp-reformer-warranty {
	background: radial-gradient(circle at 8% 80%, rgba(196,141,104,.13), transparent 26rem), #fffdf9;
}
.bp-reformer-warranty figure {
	height: clamp(25rem, 36vw, 33rem);
}
.bp-reformer-offer figure {
	min-height: 26rem;
}
.bp-reformer-actions button,
.bp-reformer-offer button {
	display: inline-flex;
	gap: .8rem;
	padding: .9rem 1.25rem;
	align-items: center;
	border: 1px solid #9b6243;
	border-radius: 999px;
	color: #fff;
	background: #9b6243;
	font: inherit;
	font-size: .85rem;
	font-weight: 600;
	cursor: pointer;
	transition: transform .25s ease, background-color .25s ease;
}
.bp-reformer-actions button:hover,
.bp-reformer-offer button:hover {
	transform: translateY(-2px);
	background: #7f4d35;
}
.bp-reformer-offer button {
	margin-top: 1.75rem;
	border-color: #fff;
	color: #6d432f;
	background: #fff;
}
@media (max-width: 1050px) {
	.bp-reformer-hero__grid {
		grid-template-columns: minmax(0, 1fr) minmax(22rem, .82fr);
		gap: 2.5rem;
	}
	.bp-reformer-hero h1 {
		font-size: clamp(2.8rem, 5.5vw, 4rem);
	}
}
@media (max-width: 800px) {
	.bp-reformer-hero__grid {
		grid-template-columns: 1fr;
	}
	.bp-reformer-gallery__grid figure:nth-child(5) {
		grid-column: auto;
		grid-row: auto;
	}
}
@media (max-width: 560px) {
	.bp-reformer-hero h1 {
		max-width: none;
		font-size: clamp(2.55rem, 13vw, 3.35rem);
	}
	.bp-reformer-actions button {
		justify-content: center;
	}
}

body {
  font-family: var(--bp-font-body);
  background: var(--bp-color-cream);
  color: var(--bp-color-text);
}

/* Homepage links are presented as designed controls; the parent theme's
 * generic a:hover underline makes every CTA look like it has a stray foot. */
.bp-home a,
.bp-home a:hover,
.bp-home a:focus,
.bp-home a:focus-visible,
.bp-home a:visited {
  text-decoration: none;
  text-decoration-line: none;
}

:where(h1, h2, .page-title) {
  font-family: var(--bp-font-heading);
  color: var(--bp-color-ink);
  font-weight: 500;
  letter-spacing: -0.02em;
}

:where(h3, h4, h5, h6) {
  font-family: var(--bp-font-body);
  color: var(--bp-color-ink);
  font-weight: 600;
  letter-spacing: -0.015em;
}

h1,
.page-title {
  font-size: var(--bp-font-size-h1);
  line-height: var(--bp-leading-heading);
}

h2 {
  font-size: var(--bp-font-size-h2);
  line-height: var(--bp-leading-heading);
}

h3 {
  font-size: var(--bp-font-size-h3);
  line-height: 1.2;
}

/* Keep the parent header while applying the approved warm visual language. */
.site-header,
.site-header.scrolled,
.site-header.is-sticky-visible {
  --wt-header-bg-scrolled: rgba(251, 247, 241, 0.96);
  background-color: var(--bp-color-cream);
}

.page-header {
  background-color: var(--bp-color-cream-deep);
}

.btn,
.header-cta {
  border-radius: var(--bp-radius-pill);
}

::selection {
  background: var(--bp-color-brand);
  color: var(--bp-color-white);
}

/* Front page — Hero */
.bp-home-hero {
  position: relative;
  min-height: clamp(36rem, 52vw, 49rem);
  background: var(--bp-color-cream-deep);
  overflow: hidden;
}

.bp-home-hero__media,
.bp-home-hero__overlay {
  position: absolute;
  inset: 0;
}

.bp-home-hero__media {
  z-index: 0;
}

.bp-home-hero__overlay {
  z-index: 1;
  background: linear-gradient(
    90deg,
    rgba(251, 247, 241, 0.96) 0%,
    rgba(251, 247, 241, 0.84) 25%,
    rgba(251, 247, 241, 0.18) 48%,
    rgba(251, 247, 241, 0) 68%
  );
  pointer-events: none;
}

.bp-home-hero__main {
  position: relative;
  z-index: 2;
  display: grid;
  align-items: center;
  min-height: inherit;
  padding-top: clamp(3rem, 7vw, 6rem);
  padding-bottom: clamp(8.5rem, 13vw, 11rem);
}

.bp-home-hero__content {
  position: relative;
  z-index: 1;
  align-self: center;
  width: min(44%, 40rem);
  min-width: 31rem;
}

.bp-home-hero__eyebrow {
  margin: 0 0 var(--wt-space-4);
  color: var(--bp-color-brand);
  font-family: var(--bp-font-body);
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  letter-spacing: 0.025em;
}

.bp-home-hero__title {
  margin: 0;
  color: var(--bp-color-ink);
  font-family: var(--bp-font-heading);
  font-size: clamp(3rem, 3.75vw, 4.1rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: var(--bp-leading-display);
}

.bp-home-hero__title span,
.bp-home-hero__title em {
  display: block;
  white-space: nowrap;
}

.bp-home-hero__title em {
  color: var(--bp-color-brand);
  font-family: inherit;
  font-weight: 500;
  letter-spacing: -0.035em;
  white-space: nowrap;
}

.bp-home-hero__description {
  max-width: 31rem;
  margin-top: var(--wt-space-6);
  color: var(--bp-color-text);
  font-size: var(--wt-text-base);
  line-height: var(--bp-leading-body);
}

.bp-home-hero__description > :last-child {
  margin-bottom: 0;
}

.bp-home-hero__cta {
  display: inline-flex;
  gap: var(--wt-space-3);
  align-items: center;
  margin-top: var(--wt-space-6);
  padding: 0.75rem 1.5rem;
  border: 1px solid var(--bp-color-brand);
  border-radius: var(--bp-radius-pill);
  background: var(--bp-color-brand);
  color: var(--bp-color-white);
  font-size: var(--wt-text-sm);
  font-weight: 500;
  line-height: 1.3;
  text-decoration: none;
}

.bp-home-hero__cta:hover,
.bp-home-hero__cta:focus-visible {
  border-color: var(--bp-color-brand-hover);
  background: var(--bp-color-brand-hover);
  color: var(--bp-color-white);
}

.bp-home-hero__media {
  overflow: hidden;
}

.bp-home-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.bp-home-hero__benefits {
  position: absolute;
  z-index: 3;
  bottom: var(--wt-space-6);
  left: 50%;
  width: min(calc(100% - 3rem), var(--bp-container-max));
  max-width: none;
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  padding: var(--wt-space-5) var(--wt-space-4);
  border: 1px solid rgba(138, 95, 69, 0.13);
  border-radius: var(--bp-radius-lg);
  background: rgba(255, 253, 249, 0.94);
  box-shadow: 0 16px 42px rgba(91, 62, 45, 0.14);
  backdrop-filter: blur(10px);
}

.bp-home-hero__benefit {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--wt-space-2);
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding-inline: var(--wt-space-4);
  text-align: center;
}

.bp-home-hero__benefit:not(:last-child)::after {
  position: absolute;
  top: 15%;
  right: 0;
  width: 1px;
  height: 70%;
  background: rgba(138, 95, 69, 0.14);
  content: "";
}

.bp-home-hero__benefit-icon {
  display: grid;
  flex: 0 0 3.75rem;
  width: 3.75rem;
  height: 3.75rem;
  padding: 0.5rem;
  place-items: center;
  border: 1px solid rgba(138, 95, 69, 0.14);
  border-radius: 50%;
  background: rgba(244, 236, 226, 0.72);
  color: var(--bp-color-brand);
}

.bp-home-hero__benefit-icon img,
.bp-home-hero__benefit-icon svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.bp-home-hero__benefit-icon svg {
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  vector-effect: non-scaling-stroke;
}

.bp-home-hero__benefit p {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.5;
}

.bp-home-hero__benefit strong,
.bp-home-hero__benefit span {
  display: block;
}

.bp-home-hero__benefit strong {
  color: var(--bp-color-ink);
  font-weight: 600;
  white-space: nowrap;
}

.bp-home-hero__benefit span {
  color: var(--bp-color-text);
}

@media (min-width: 768px) {
  .bp-home-hero--no-media .bp-home-hero__main {
    justify-items: start;
  }

  .bp-home-hero--no-media .bp-home-hero__content {
    width: min(100%, 36rem);
  }

  .bp-home-hero__benefits {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .bp-home-hero {
    min-height: auto;
  }

  .bp-home-hero__main {
    min-height: 44rem;
    align-items: end;
    padding-top: 18rem;
    padding-bottom: 12rem;
  }

  .bp-home-hero__content {
    width: min(100%, 30rem);
    min-width: 0;
  }

  .bp-home-hero__overlay {
    background: linear-gradient(0deg, rgba(251, 247, 241, 0.98) 0%, rgba(251, 247, 241, 0.88) 45%, rgba(251, 247, 241, 0.05) 78%);
  }

  .bp-home-hero__image {
    object-position: 62% top;
  }

  .bp-home-hero__title em {
    white-space: normal;
  }

  .bp-home-hero__title span {
    white-space: normal;
  }

  .bp-home-hero__benefits {
    bottom: var(--wt-space-4);
    width: calc(100% - 2rem);
    padding: var(--wt-space-4) var(--wt-space-2);
    background: rgba(255, 253, 249, 0.96);
  }

  .bp-home-hero__benefit {
    padding-block: var(--wt-space-2);
    padding-inline: var(--wt-space-2);
  }

  .bp-home-hero__benefit:nth-child(2)::after {
    display: none;
  }

  .bp-home-hero__benefit strong {
    white-space: normal;
  }
}

/* Front page — Closing CTA */
.bp-home-cta {
  padding: clamp(2rem, 4vw, 4rem) 0 clamp(4rem, 7vw, 7rem);
  background: var(--bp-color-surface);
}

.bp-home-cta__inner {
  position: relative;
  min-height: clamp(24rem, 37vw, 31rem);
  border-radius: 1.75rem;
  background:
    radial-gradient(circle at 82% 25%, rgba(255, 255, 255, 0.7), transparent 20%),
    linear-gradient(135deg, #ead9ca, #c8a58c);
  box-shadow: 0 24px 70px rgba(77, 51, 36, 0.13);
  overflow: hidden;
}

.bp-home-cta__inner::before {
  position: absolute;
  inset: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.44);
  border-radius: 1.2rem;
  content: "";
  pointer-events: none;
}

.bp-home-cta__content {
  position: relative;
  z-index: 2;
  display: flex;
  width: min(58%, 45rem);
  min-height: inherit;
  padding: clamp(2.5rem, 6vw, 5.5rem);
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.bp-home-cta__eyebrow {
  margin-bottom: 0.8rem;
  color: var(--bp-color-brand);
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.bp-home-cta h2 {
  max-width: 40rem;
  margin: 0;
  color: var(--bp-color-ink);
  font-size: clamp(2.25rem, 4vw, 3.8rem);
  font-weight: 500;
  line-height: 1.08;
}

.bp-home-cta__content p {
  max-width: 34rem;
  margin: 1.2rem 0 0;
  color: var(--bp-color-text);
  font-size: 0.95rem;
  line-height: 1.75;
}

.bp-home-cta__button {
  display: inline-flex;
  gap: 1.1rem;
  align-items: center;
  margin-top: 1.75rem;
  padding: 0.9rem 1.35rem;
  border-radius: var(--bp-radius-pill);
  background: var(--bp-color-brand);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: background var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-home-cta__button:hover {
  background: var(--bp-color-ink);
  color: #fff;
  transform: translateY(-3px);
}

.bp-home-cta__visual {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  bottom: 0;
  width: 46%;
}

.bp-home-cta__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.bp-home-cta__visual::after {
  position: absolute;
  inset: 0 auto 0 0;
  width: 35%;
  background: linear-gradient(90deg, #d9bea9, transparent);
  content: "";
}

.bp-home-cta__orb {
  position: absolute;
  border-radius: 50%;
  background: linear-gradient(145deg, #f8eee7, #aa7c60);
  box-shadow: inset -18px -18px 35px rgba(91, 62, 45, 0.18), 0 18px 45px rgba(91, 62, 45, 0.16);
}

.bp-home-cta__orb--large { right: 10%; bottom: 12%; width: 14rem; height: 14rem; }
.bp-home-cta__orb--small { top: 14%; right: 12%; width: 5rem; height: 5rem; }

.bp-home-cta__roller {
  position: absolute;
  right: 33%;
  bottom: 10%;
  width: 13rem;
  height: 3.25rem;
  border-radius: var(--bp-radius-pill);
  background: linear-gradient(180deg, #d4b8a3, #9b7056);
  box-shadow: 0 14px 30px rgba(91, 62, 45, 0.18);
  transform: rotate(-8deg);
}

@media (max-width: 767px) {
  .bp-home-cta__inner { min-height: 36rem; }
  .bp-home-cta__content { width: 100%; min-height: auto; padding: 2.5rem 2rem; }
  .bp-home-cta__visual { top: auto; width: 100%; height: 15rem; }
  .bp-home-cta__visual::after { inset: 0 0 auto; width: 100%; height: 35%; background: linear-gradient(180deg, #d9bea9, transparent); }
  .bp-home-cta__orb--large { width: 10rem; height: 10rem; }
}

/* Front page — About / why Balance */
.bp-about-icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.bp-home-about {
  padding-block: clamp(4rem, 7vw, 7rem);
  background: var(--bp-color-surface);
}

.bp-about-main {
  display: grid;
  gap: clamp(2.5rem, 5vw, 5.5rem);
  grid-template-columns: minmax(18rem, 0.85fr) minmax(0, 1.15fr);
  align-items: center;
}

.bp-about-main__media {
  position: relative;
  height: clamp(27rem, 42vw, 38rem);
  border-radius: 45% 45% 1.25rem 1.25rem;
  background: #dfc7b5;
  overflow: hidden;
}

.bp-about-main__media::after {
  position: absolute;
  inset: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: inherit;
  content: "";
  pointer-events: none;
}

.bp-about-main__image,
.bp-about-main__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bp-about-main__placeholder {
  position: relative;
  background:
    radial-gradient(circle at 52% 38%, rgba(255, 255, 255, 0.75), transparent 19%),
    linear-gradient(150deg, #eadfd6, #c7a48d);
}

.bp-about-main__placeholder span {
  position: absolute;
  top: 48%;
  left: 50%;
  color: rgba(87, 62, 48, 0.62);
  font-family: var(--bp-font-heading);
  font-size: clamp(1.7rem, 3vw, 2.7rem);
  line-height: 1.05;
  text-align: center;
  transform: translate(-50%, -50%);
}

.bp-about-main__content h2 {
  max-width: 38rem;
  margin: 0.55rem 0 clamp(2rem, 4vw, 3rem);
  font-size: clamp(2rem, 3.4vw, 3.25rem);
  font-weight: 500;
  line-height: 1.1;
}

.bp-about-reasons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(111, 73, 51, 0.15);
  border-left: 1px solid rgba(111, 73, 51, 0.15);
}

.bp-about-reason {
  display: grid;
  gap: 1.15rem;
  min-height: 11.5rem;
  padding: 1.65rem;
  grid-template-columns: auto minmax(0, 1fr);
  border-right: 1px solid rgba(111, 73, 51, 0.15);
  border-bottom: 1px solid rgba(111, 73, 51, 0.15);
}

.bp-about-reason__icon {
  position: relative;
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 1px solid rgba(138, 95, 69, 0.2);
  border-radius: 50%;
  background: var(--bp-color-cream);
  color: var(--bp-color-brand);
}

.bp-about-reason__icon svg {
  width: 1.65rem;
  height: 1.65rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

.bp-about-reason__icon small {
  position: absolute;
  top: -0.35rem;
  right: -0.35rem;
  display: grid;
  width: 1.35rem;
  height: 1.35rem;
  place-items: center;
  border-radius: 50%;
  background: var(--bp-color-brand);
  color: #fff;
  font-size: var(--bp-font-size-xs);
  line-height: 1;
}

.bp-about-reason h3 {
  margin: 0 0 0.5rem;
  font-family: var(--bp-font-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}

.bp-about-reason p {
  margin: 0;
  color: var(--bp-color-muted);
  font-size: 0.875rem;
  line-height: 1.7;
}

@media (max-width: 900px) {
  .bp-about-main { grid-template-columns: 1fr; }
  .bp-about-main__media { height: clamp(24rem, 75vw, 38rem); }
}

@media (max-width: 600px) {
  .bp-about-reasons { grid-template-columns: 1fr; }
}

/* Front page — motion */
@media (prefers-reduced-motion: no-preference) {
  .wt-js .bp-home-hero__media {
    opacity: 0;
    transition: opacity 700ms ease;
  }

  .wt-js .bp-home-hero__eyebrow,
  .wt-js .bp-home-hero__title span,
  .wt-js .bp-home-hero__title em,
  .wt-js .bp-home-hero__description,
  .wt-js .bp-home-hero__cta {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 600ms var(--wt-ease-out), transform 700ms var(--wt-ease-out);
  }

  .wt-js .bp-home-hero__benefit {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 500ms var(--wt-ease-out), transform 600ms var(--wt-ease-out);
  }

  .wt-js .bp-home-hero.is-ready .bp-home-hero__media {
    opacity: 1;
  }

  .wt-js .bp-home-hero.is-ready .bp-home-hero__eyebrow,
  .wt-js .bp-home-hero.is-ready .bp-home-hero__title span,
  .wt-js .bp-home-hero.is-ready .bp-home-hero__title em,
  .wt-js .bp-home-hero.is-ready .bp-home-hero__description,
  .wt-js .bp-home-hero.is-ready .bp-home-hero__cta,
  .wt-js .bp-home-hero.is-ready .bp-home-hero__benefit {
    opacity: 1;
    transform: translateY(0);
  }

  .wt-js .bp-home-hero.is-ready .bp-home-hero__title span { transition-delay: 80ms; }
  .wt-js .bp-home-hero.is-ready .bp-home-hero__title em { transition-delay: 150ms; }
  .wt-js .bp-home-hero.is-ready .bp-home-hero__description { transition-delay: 230ms; }
  .wt-js .bp-home-hero.is-ready .bp-home-hero__cta { transition-delay: 310ms; }
  .wt-js .bp-home-hero.is-ready .bp-home-hero__benefit:nth-child(1) { transition-delay: 360ms; }
  .wt-js .bp-home-hero.is-ready .bp-home-hero__benefit:nth-child(2) { transition-delay: 420ms; }
  .wt-js .bp-home-hero.is-ready .bp-home-hero__benefit:nth-child(3) { transition-delay: 480ms; }
  .wt-js .bp-home-hero.is-ready .bp-home-hero__benefit:nth-child(4) { transition-delay: 540ms; }
}

/* Front page — Classes slider */
.bp-home-classes {
  padding-block: clamp(3rem, 5vw, 5rem);
  background: var(--bp-color-cream);
  overflow: hidden;
}

.bp-section-heading {
  max-width: 48rem;
  margin: 0 auto var(--wt-space-6);
  text-align: center;
}

.bp-section-heading__eyebrow {
  display: inline-flex;
  align-items: center;
  margin-bottom: var(--wt-space-2);
  color: var(--bp-color-brand);
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.bp-section-heading__title-row {
  display: flex;
  gap: var(--wt-space-3);
  align-items: center;
  justify-content: center;
}

.bp-section-heading__ornament {
  position: relative;
  display: block;
  flex: 0 0 clamp(2.5rem, 5vw, 5rem);
  width: clamp(2.5rem, 5vw, 5rem);
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--bp-color-brand-soft));
}

.bp-section-heading__ornament--right {
  background: linear-gradient(90deg, var(--bp-color-brand-soft), transparent);
}

.bp-section-heading__ornament::after {
  position: absolute;
  top: 50%;
  right: -2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--bp-color-brand-soft);
  content: "";
  transform: translateY(-50%);
}

.bp-section-heading__ornament--right::after {
  right: auto;
  left: -2px;
}

.bp-section-heading h2 {
  margin: 0;
  color: var(--bp-color-ink);
  font-family: var(--bp-font-heading);
  font-size: clamp(1.75rem, 2.7vw, 2.5rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.1;
  text-transform: uppercase;
}

.bp-section-heading p {
  margin: var(--wt-space-2) 0 0;
  color: var(--bp-color-muted);
  font-size: var(--wt-text-sm);
}

.bp-section-heading p::after {
  display: block;
  width: 5rem;
  height: 1px;
  margin: var(--wt-space-3) auto 0;
  background: rgba(138, 95, 69, 0.28);
  content: "";
}

.bp-home-classes__stage {
  position: relative;
  padding-inline: 3.75rem;
}

.bp-home-classes__slider {
  padding: var(--wt-space-2) 2px 2.75rem;
  overflow: hidden;
}

.bp-class-card {
  display: flex;
  height: auto;
  min-height: 31rem;
  flex-direction: column;
  border: 1px solid rgba(111, 73, 51, 0.11);
  border-radius: 1.25rem;
  background: var(--bp-color-surface);
  box-shadow: 0 14px 40px rgba(77, 51, 36, 0.08);
  overflow: hidden;
  isolation: isolate;
  transition: border-color var(--wt-transition-base), box-shadow var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-class-card:hover {
  border-color: rgba(138, 95, 69, 0.28);
  box-shadow: var(--bp-shadow-card-hover);
  transform: translateY(-6px);
}

.bp-class-card__media {
  position: relative;
  display: block;
  height: 16rem;
  background:
    radial-gradient(circle at 68% 25%, rgba(255, 255, 255, 0.76), transparent 21%),
    linear-gradient(145deg, #eadbce, #cfae98);
  overflow: hidden;
}

.bp-class-card__media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 42%, rgba(43, 28, 21, 0.58));
  content: "";
  pointer-events: none;
}

.bp-class-card__image,
.bp-class-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--wt-ease-out);
}

.bp-class-card:nth-child(2n) .bp-class-card__placeholder {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.28), rgba(138, 95, 69, 0.08));
}

.bp-class-card:nth-child(3n) .bp-class-card__placeholder {
  background: linear-gradient(35deg, rgba(138, 95, 69, 0.12), rgba(255, 255, 255, 0.32));
}

.bp-class-card:hover .bp-class-card__image {
  transform: scale(1.045);
}

.bp-class-card__number {
  position: absolute;
  z-index: 2;
  top: 1.15rem;
  left: 1.15rem;
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  background: rgba(255, 253, 249, 0.82);
  backdrop-filter: blur(8px);
  color: var(--bp-color-brand);
  font-family: var(--bp-font-heading);
  font-size: 0.9rem;
}

.bp-class-card__type {
  position: absolute;
  z-index: 2;
  right: 1.25rem;
  bottom: 1.15rem;
  left: 1.25rem;
  color: #fff;
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

.bp-class-card__body {
  display: flex;
  min-height: 15rem;
  padding: 1.6rem 1.55rem 1.5rem;
  flex-direction: column;
  background: linear-gradient(155deg, #fffdf9 0%, #faf5ee 100%);
}

.bp-class-card__body h3 {
  margin: 0 0 1rem;
  color: var(--bp-color-ink);
  font-family: var(--bp-font-heading);
  font-size: clamp(1.35rem, 1.8vw, 1.7rem);
  font-weight: 500;
  line-height: 1.15;
}

.bp-class-card__body h3 { min-height:2.3em; }
.bp-class-card__body ul { min-height:5.4rem; align-content:start; }
.bp-class-detail__benefit-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:720px){.bp-class-detail__benefit-grid--4{grid-template-columns:1fr}}

.bp-class-card__body h3 a {
  color: inherit;
  text-decoration: none;
}

.bp-class-card__body ul {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bp-class-card__body li {
  position: relative;
  padding-left: 1.25rem;
  color: var(--bp-color-text);
  font-size: 0.84rem;
  line-height: 1.45;
}

.bp-class-card__body li::before {
  position: absolute;
  top: 0.3em;
  left: 0;
  width: 0.65rem;
  height: 0.65rem;
  border: 1px solid rgba(138, 95, 69, 0.55);
  border-radius: 50%;
  background: radial-gradient(circle, var(--bp-color-brand) 0 1.5px, transparent 2px);
  content: "";
}

.bp-class-card__link {
  display: inline-flex;
  gap: 0.75rem;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(138, 95, 69, 0.13);
  color: var(--bp-color-brand);
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
}

.bp-class-card__link:hover,
.bp-class-card__link:focus,
.bp-class-card__link:focus-visible,
.bp-class-card__link:visited {
  color: var(--bp-color-brand);
  text-decoration: none;
  text-decoration-line: none;
}

.bp-class-card__arrow {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: var(--bp-color-brand);
  color: var(--bp-color-white);
  transition: transform var(--wt-transition-base), background var(--wt-transition-base);
}

.bp-class-card__link:hover .bp-class-card__arrow {
  background: var(--bp-color-ink);
  transform: translateX(3px);
}

.bp-home-classes__nav {
  position: absolute;
  z-index: 10;
  top: 47%;
  display: grid;
  width: 3.15rem;
  height: 3.15rem;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(138, 95, 69, 0.2);
  border-radius: 50%;
  background: #fffdf9;
  color: var(--bp-color-brand);
  box-shadow: 0 10px 30px rgba(77, 51, 36, 0.15);
  transform: translateY(-50%);
  transition: background var(--wt-transition-base), color var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-home-classes__nav:hover {
  background: var(--bp-color-brand);
  color: #fff;
  transform: translateY(-50%) scale(1.05);
}

.bp-home-classes__nav svg {
  width: 1.25rem;
  height: 1.25rem;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.bp-home-classes__nav.swiper-button-disabled {
  opacity: 0.38;
  cursor: default;
}

.bp-home-classes__nav.swiper-button-lock,
.bp-home-classes__pagination.swiper-pagination-lock,
.bp-home-classes__slider.swiper-lock .bp-home-classes__pagination {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.bp-home-classes__nav--prev {
  left: 0;
}

.bp-home-classes__nav--next { right: 0; }

.bp-home-classes__pagination {
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
}

.bp-home-classes__pagination .swiper-pagination-bullet-active {
  background: var(--bp-color-brand);
}

@media (prefers-reduced-motion: no-preference) {
  .wt-js .bp-home-classes .bp-section-heading,
  .wt-js .bp-home-classes .bp-class-card {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 600ms var(--wt-ease-out), transform 700ms var(--wt-ease-out);
  }

  .wt-js .bp-home-classes.is-ready .bp-section-heading,
  .wt-js .bp-home-classes.is-ready .bp-class-card {
    opacity: 1;
    transform: translateY(0);
  }

  .wt-js .bp-home-classes.is-ready .bp-class-card:nth-child(2) { transition-delay: 70ms; }
  .wt-js .bp-home-classes.is-ready .bp-class-card:nth-child(3) { transition-delay: 140ms; }
  .wt-js .bp-home-classes.is-ready .bp-class-card:nth-child(4) { transition-delay: 210ms; }

  .wt-js .bp-home-classes.is-ready .bp-class-card:hover {
    transform: translateY(-6px);
  }
}

@media (max-width: 767px) {
  .bp-section-heading__ornament {
    flex-basis: 1.75rem;
    width: 1.75rem;
  }

  .bp-section-heading h2 {
    font-size: 1.75rem;
  }

  .bp-home-classes__stage {
    padding-inline: 0;
  }

  .bp-home-classes__nav {
    top: auto;
    bottom: -0.2rem;
    width: 2.5rem;
    height: 2.5rem;
    transform: none;
  }

  .bp-home-classes__nav:hover {
    transform: none;
  }

  .bp-class-card__media {
    height: 15rem;
  }
}

/* Front page — Training and studio setup */
.bp-home-services {
  padding: clamp(1rem, 2.5vw, 2.5rem) 0 clamp(4rem, 7vw, 7rem);
  background: var(--bp-color-cream);
}

.bp-home-services__grid {
  display: grid;
  gap: 1.5rem;
}

.bp-service-card {
  display: grid;
  min-height: 27rem;
  grid-template-columns: minmax(0, 1.05fr) minmax(18rem, 0.95fr);
  border: 1px solid rgba(111, 73, 51, 0.12);
  border-radius: 1.5rem;
  background: #fffdf9;
  box-shadow: 0 16px 50px rgba(77, 51, 36, 0.07);
  overflow: hidden;
}

.bp-service-card:nth-child(even) {
  grid-template-columns: minmax(18rem, 0.95fr) minmax(0, 1.05fr);
}

.bp-service-card:nth-child(even) .bp-service-card__content { order: 2; }
.bp-service-card:nth-child(even) .bp-service-card__media { order: 1; }

.bp-service-card__content {
  display: flex;
  padding: clamp(2rem, 4vw, 4rem);
  flex-direction: column;
  justify-content: center;
}

.bp-service-card__eyebrow {
  margin-bottom: 0.7rem;
  color: var(--bp-color-brand);
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.bp-service-card h2 {
  max-width: 35rem;
  margin: 0;
  color: var(--bp-color-ink);
  font-family: var(--bp-font-heading);
  font-size: clamp(1.8rem, 3vw, 2.75rem);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.bp-service-card__content > p {
  margin: 0.65rem 0 1.5rem;
  color: var(--bp-color-muted);
  font-size: 0.9rem;
}

.bp-service-card ul {
  display: grid;
  gap: 0.7rem;
  margin: 0 0 1.75rem;
  padding: 0;
  list-style: none;
}

.bp-service-card li {
  position: relative;
  padding-left: 1.65rem;
  color: var(--bp-color-text);
  font-size: 0.88rem;
}

.bp-service-card li::before {
  position: absolute;
  top: 0.05rem;
  left: 0;
  display: grid;
  width: 1.1rem;
  height: 1.1rem;
  place-items: center;
  border: 1px solid rgba(138, 95, 69, 0.28);
  border-radius: 50%;
  color: var(--bp-color-brand);
  content: "\2713";
  font-size: var(--bp-font-size-xs);
}

.bp-service-card__cta {
  display: inline-flex;
  gap: 1rem;
  align-items: center;
  width: max-content;
  margin-top: auto;
  padding: 0.8rem 1.25rem;
  border-radius: var(--bp-radius-pill);
  background: var(--bp-color-brand);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 500;
  text-decoration: none;
  transition: background var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-service-card__cta:hover {
  background: var(--bp-color-ink);
  color: #fff;
  transform: translateY(-2px);
}

.bp-service-card__media {
  position: relative;
  min-height: 100%;
  background: #dfcbbb;
  overflow: hidden;
}

.bp-service-card__image,
.bp-service-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 27rem;
  object-fit: cover;
}

.bp-service-card__placeholder {
  position: relative;
  background:
    radial-gradient(circle at 68% 28%, rgba(255, 255, 255, 0.78), transparent 18%),
    linear-gradient(145deg, #eadbcf, #c7a48d);
}

.bp-service-card--setup .bp-service-card__placeholder {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.45), transparent 40%),
    linear-gradient(35deg, #b79278, #eadfd5 62%, #cfb7a5);
}

.bp-service-card__placeholder span {
  position: absolute;
  right: 1.5rem;
  bottom: 1rem;
  color: rgba(255, 255, 255, 0.48);
  font-family: var(--bp-font-heading);
  font-size: 5rem;
}

@media (max-width: 900px) {
  .bp-service-card,
  .bp-service-card:nth-child(even) {
    grid-template-columns: 1fr;
  }

  .bp-service-card:nth-child(even) .bp-service-card__content,
  .bp-service-card:nth-child(even) .bp-service-card__media {
    order: initial;
  }

  .bp-service-card__media,
  .bp-service-card__image,
  .bp-service-card__placeholder {
    min-height: 18rem;
  }
}

/* Front page — Shared locations */
.bp-home-locations {
  padding-block: clamp(4rem, 7vw, 7rem);
  background: #f8f3ec;
}

.bp-location-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 1fr);
  grid-template-rows: repeat(2, minmax(15rem, 18rem));
}

.bp-location-card {
  position: relative;
  min-width: 0;
  border-radius: 0.75rem;
  overflow: hidden;
}

.bp-location-card:first-child { grid-row: 1 / 3; }

.bp-location-card__media {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  background: #d9c0ad;
  overflow: hidden;
}

.bp-location-card__media::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 35%, rgba(36, 25, 20, 0.82));
  content: "";
  opacity: 1;
  transition: opacity var(--wt-transition-base);
}

.bp-location-card:hover .bp-location-card__media::after { opacity: 0.9; }

.bp-location-card__image,
.bp-location-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 800ms var(--wt-ease-out);
}

.bp-location-card:hover .bp-location-card__image { transform: scale(1.045); }

.bp-location-card__index {
  position: absolute;
  z-index: 3;
  top: 1rem;
  left: 1rem;
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 50%;
  background: rgba(52, 38, 31, 0.48);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: var(--bp-font-size-xs);
  letter-spacing: 0.08em;
}

.bp-location-card__placeholder {
  position: relative;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.42), transparent 42%),
    linear-gradient(35deg, #b9957e, #eadcd0 60%, #c9ad99);
}

.bp-location-card__content {
  position: absolute;
  z-index: 3;
  right: clamp(1.25rem, 2.5vw, 2rem);
  bottom: clamp(1.25rem, 2.5vw, 2rem);
  left: clamp(1.25rem, 2.5vw, 2rem);
  display: flex;
  gap: 1rem;
  padding: 0;
  align-items: flex-end;
  justify-content: space-between;
  color: #fff;
  pointer-events: none;
}

.bp-location-card h3 {
  margin: 0 0 0.45rem;
  color: #fff;
  font-size: clamp(1.25rem, 2vw, 1.8rem);
  font-weight: 500;
}

.bp-location-card h3 a { color: inherit; text-decoration: none; pointer-events: auto; }

.bp-location-card__content p {
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: var(--bp-font-size-xs);
  line-height: 1.55;
}

.bp-location-card__hours {
  display: block;
  margin-top: 0.45rem;
  color: rgba(255, 255, 255, 0.68);
  font-size: var(--bp-font-size-xs);
}

.bp-location-card__actions {
  display: flex;
  gap: 0.55rem;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: flex-end;
  pointer-events: auto;
}

.bp-location-card__call,
.bp-location-card__map {
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
  padding: 0.6rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: var(--bp-radius-pill);
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: var(--bp-font-size-xs);
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  pointer-events: auto;
}

.bp-location-card__map {
  padding-inline: 0.9rem;
}

.bp-location-card__call:hover,
.bp-location-card__map:hover {
  border-color: #fff;
  background: #fff;
  color: var(--bp-color-ink);
}

.bp-home-locations__footer {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

.bp-home-locations__footer a {
  display: inline-flex;
  gap: 0.8rem;
  align-items: center;
  padding: 0.8rem 1.3rem;
  border: 1px solid rgba(138, 95, 69, 0.24);
  border-radius: var(--bp-radius-pill);
  color: var(--bp-color-brand);
  font-size: 0.82rem;
  font-weight: 500;
  text-decoration: none;
}

.bp-home-locations__footer a:hover {
  background: var(--bp-color-brand);
  color: #fff;
}

@media (max-width: 900px) {
  .bp-location-grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }

  .bp-location-card,
  .bp-location-card:first-child {
    grid-row: auto;
    height: clamp(19rem, 65vw, 29rem);
  }
}

@media (max-width: 560px) {
  .bp-location-card__content { align-items: flex-start; flex-direction: column; }
  .bp-location-card__actions { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
}

/* Location directory presentation: functional rather than portfolio-like. */
.bp-location-directory {
  display: grid;
  grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.8fr);
  border: 1px solid rgba(111, 73, 51, 0.14);
  border-radius: 1.25rem;
  background: var(--bp-color-surface);
  box-shadow: 0 18px 55px rgba(77, 51, 36, 0.08);
  overflow: hidden;
}

.bp-location-directory__intro {
  position: relative;
  display: flex;
  padding: clamp(2rem, 4vw, 3.5rem);
  flex-direction: column;
  isolation: isolate;
  background:
    radial-gradient(circle at 92% 8%, rgba(255, 228, 204, 0.24), transparent 28%),
    radial-gradient(circle at 8% 78%, rgba(64, 31, 18, 0.25), transparent 38%),
    linear-gradient(145deg, #a87353 0%, #8b583d 48%, #70442f 100%);
  color: #fff;
  overflow: hidden;
}

.bp-location-directory__intro::before,
.bp-location-directory__intro::after {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  content: "";
}

.bp-location-directory__intro::before {
  top: -7rem;
  right: -7rem;
  width: 19rem;
  height: 19rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 50%;
  box-shadow:
    0 0 0 2.4rem rgba(255, 255, 255, 0.035),
    0 0 0 5rem rgba(255, 255, 255, 0.02);
}

.bp-location-directory__intro::after {
  right: -3.5rem;
  bottom: 5.5rem;
  width: 13rem;
  height: 6rem;
  border-top: 1px solid rgba(255, 255, 255, 0.13);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  transform: rotate(-18deg);
}

.bp-location-directory__intro > * { position: relative; z-index: 1; }

.bp-location-directory__intro .bp-section-heading__eyebrow { color: rgba(255, 255, 255, 0.7); }

.bp-location-directory__intro h2 {
  margin: 0.7rem 0 1rem;
  color: #fff;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 500;
  line-height: 1.08;
}

.bp-location-directory__intro > p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.86rem;
  line-height: 1.65;
}

.bp-location-directory__intro > strong {
  display: flex;
  gap: 0.7rem;
  width: max-content;
  margin-top: 2.25rem;
  padding: 0.7rem 1rem 0.7rem 0.8rem;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--bp-radius-pill);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09);
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.8rem;
  font-weight: 500;
  backdrop-filter: blur(5px);
}

.bp-location-directory__intro > strong span {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  margin: 0;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  color: var(--bp-color-brand);
  font-family: var(--bp-font-heading);
  font-size: 1.35rem;
  line-height: 1;
}

.bp-location-directory__all {
  display: inline-flex;
  gap: 0.8rem;
  align-items: center;
  width: max-content;
  margin-top: auto;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.44);
  border-radius: var(--bp-radius-pill);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: var(--bp-font-size-xs);
  text-decoration: none;
  transition: background var(--wt-transition-base), color var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-location-directory__all:hover {
  background: #fff;
  color: var(--bp-color-brand);
  transform: translateY(-2px);
}

.bp-location-list { padding: 0 clamp(1.5rem, 3vw, 2.75rem); background: #fffdf9; }

.bp-location-list .bp-location-card {
  display: grid;
  min-height: 11rem;
  grid-template-columns: 11rem minmax(0, 1fr);
  border-bottom: 1px solid rgba(111, 73, 51, 0.13);
  border-radius: 0;
  overflow: visible;
  transition: background var(--wt-transition-base);
}

.bp-location-list .bp-location-card:hover { background: rgba(244, 236, 226, 0.36); }

.bp-location-list .bp-location-card:last-child { border-bottom: 0; }

.bp-location-list .bp-location-card:first-child { grid-row: auto; }

.bp-location-list .bp-location-card__media {
  width: 9.75rem;
  height: 8rem;
  margin: auto 0;
  border-radius: 0.65rem;
}

.bp-location-list .bp-location-card__media::after { display: none; }

.bp-location-list .bp-location-card__content {
  position: static;
  display: grid;
  gap: 0.9rem 1.25rem;
  padding: 1.35rem 1rem 1.35rem 0;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  color: var(--bp-color-text);
  pointer-events: auto;
}

.bp-location-list .bp-location-card__index {
  position: static;
  display: block;
  width: auto;
  height: auto;
  margin-bottom: 0.3rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--bp-color-brand);
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.bp-location-list .bp-location-card h3 {
  margin-bottom: 0.35rem;
  color: var(--bp-color-ink);
  font-size: 1.3rem;
}

.bp-location-list .bp-location-card__main { grid-column: 1 / -1; }

.bp-location-list .bp-location-card__content p { color: var(--bp-color-muted); }

.bp-location-list .bp-location-card__hours { color: var(--bp-color-brand); }

.bp-location-card__meta {
  display: flex;
  gap: 0.55rem;
  align-items: center;
}

.bp-location-card__meta > span {
  display: inline-flex;
  gap: 0.4rem;
  align-items: center;
  padding: 0.45rem 0.65rem;
  border-radius: var(--bp-radius-pill);
  background: var(--bp-color-cream-deep);
}

.bp-location-card__meta small {
  color: var(--bp-color-muted);
  font-size: var(--bp-font-size-xs);
}

.bp-location-card__meta small::after { content: ":"; }

.bp-location-card__meta strong {
  color: var(--bp-color-ink);
  font-size: 0.8rem;
  font-weight: 500;
  white-space: nowrap;
}

.bp-location-list .bp-location-card__actions {
  gap: 0.45rem;
  min-width: 0;
  flex-direction: row;
  align-items: center;
}

.bp-location-list .bp-location-card__actions a { justify-content: center; }

.bp-location-list .bp-location-card__call,
.bp-location-list .bp-location-card__map {
  border-color: rgba(138, 95, 69, 0.2);
  background: var(--bp-color-cream);
  color: var(--bp-color-brand);
  backdrop-filter: none;
  white-space: nowrap;
}

.bp-location-list .bp-location-card__call {
  background: transparent;
}

.bp-location-list .bp-location-card__map {
  border-color: var(--bp-color-brand);
  background: var(--bp-color-brand);
  color: #fff;
}

.bp-location-list .bp-location-card__call:hover,
.bp-location-list .bp-location-card__map:hover {
  border-color: var(--bp-color-brand);
  background: var(--bp-color-brand);
  color: #fff;
}

/* Four shared locations stay inside one balanced directory instead of making
 * the whole homepage section disproportionately tall. */
.bp-location-directory--count-4 .bp-location-list .bp-location-card {
	min-height: 8.65rem;
}
.bp-location-directory--count-4 .bp-location-list .bp-location-card__media {
	width: 8.5rem;
	height: 6.75rem;
}
.bp-location-directory--count-4 .bp-location-list .bp-location-card__content {
	gap: .55rem 1rem;
	padding-block: .85rem;
}
.bp-location-directory--count-4 .bp-location-list .bp-location-card__index {
	margin-bottom: .15rem;
}
.bp-location-directory--count-4 .bp-location-list .bp-location-card h3 {
	margin-bottom: .2rem;
	font-size: 1.16rem;
}
.bp-location-directory--count-4 .bp-location-card__meta > span {
	padding-block: .38rem;
}

@media (max-width: 900px) {
  .bp-location-directory { grid-template-columns: 1fr; }
  .bp-location-directory__all { margin-top: 1.5rem; }
  .bp-location-list .bp-location-card,
  .bp-location-list .bp-location-card:first-child { height: auto; }
}

@media (max-width: 600px) {
	.bp-location-directory--count-4 .bp-location-list .bp-location-card {
		min-height: 0;
	}
	.bp-location-directory--count-4 .bp-location-list .bp-location-card__media {
		width: 5.75rem;
		height: 6.75rem;
	}
}

@media (max-width: 760px) {
  .bp-location-list .bp-location-card__content {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .bp-location-card__meta {
    grid-column: 1 / -1;
    grid-row: 2;
    flex-wrap: wrap;
  }

  .bp-location-list .bp-location-card__actions { grid-column: 1 / -1; grid-row: 3; }
}

@media (max-width: 600px) {
  .bp-location-list { padding-inline: 1rem; }
  .bp-location-list .bp-location-card { grid-template-columns: 6.5rem minmax(0, 1fr); }
  .bp-location-list .bp-location-card__media { width: 5.75rem; height: 6.75rem; }
  .bp-location-list .bp-location-card__content { align-items: flex-start; }
  .bp-location-list .bp-location-card__actions { flex-direction: row; align-items: flex-start; }
  .bp-location-list .bp-location-card__call span:last-child { display: none; }
}

/* Front page — Before/after feedback */
.bp-home-feedback {
  padding-block: clamp(4rem, 7vw, 7rem);
  background: var(--bp-color-cream-deep);
  overflow: hidden;
}

.bp-feedback-stage {
  position: relative;
  width: 100%;
  padding-inline: clamp(1rem, 3vw, 3.5rem);
}

.bp-feedback-slider {
  padding: 3.25rem 2px;
  overflow: hidden;
}

.bp-feedback-card {
  height: auto;
  margin: 0;
  aspect-ratio: 0.95;
  border: 1px solid rgba(111, 73, 51, 0.12);
  border-radius: 1.15rem;
  background: #fffdf9;
  box-shadow: 0 2px 8px rgba(77, 51, 36, 0.06);
  overflow: hidden;
  opacity: 0.3;
  filter: saturate(0.55) blur(0.35px);
  transform-origin: center center;
  transform: scale(0.74);
  transition: opacity 600ms ease, filter 600ms ease, box-shadow 600ms ease, transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.bp-feedback-card.swiper-slide-active {
  z-index: 3;
  border-color: rgba(138, 95, 69, 0.24);
  box-shadow: 0 4px 14px rgba(77, 51, 36, 0.1);
  opacity: 1;
  filter: none;
  transform: scale(1.075);
}

.bp-feedback-card.swiper-slide-prev,
.bp-feedback-card.swiper-slide-next {
  z-index: 2;
  opacity: 0.7;
  filter: saturate(0.82);
  transform: scale(0.84);
}

.bp-feedback-card__artwork-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.bp-feedback-card__trigger {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.bp-feedback-card__zoom {
  position: absolute;
  top: 1rem;
  right: 1rem;
  bottom: auto;
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  background: rgba(36, 27, 23, 0.6);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: 1.25rem;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-feedback-card__trigger:hover .bp-feedback-card__zoom,
.bp-feedback-card__trigger:focus-visible .bp-feedback-card__zoom {
  opacity: 1;
  transform: translateY(0);
}

.bp-feedback-nav {
  position: absolute;
  z-index: 5;
  top: 48%;
  display: grid;
  width: 3.15rem;
  height: 3.15rem;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(138, 95, 69, 0.2);
  border-radius: 50%;
  background: #fffdf9;
  color: var(--bp-color-brand);
  box-shadow: 0 10px 30px rgba(77, 51, 36, 0.14);
  transform: translateY(-50%);
  transition: background var(--wt-transition-base), border-color var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-feedback-nav:hover {
  border-color: var(--bp-color-brand);
  background: var(--bp-color-brand);
  color: #fff;
  transform: translateY(-50%) scale(1.05);
}

.bp-feedback-nav--prev { left: clamp(0.35rem, 1vw, 1rem); }
.bp-feedback-nav--next { right: clamp(0.35rem, 1vw, 1rem); }

body.bp-lightbox-open { overflow: hidden; }

.bp-feedback-lightbox {
  position: fixed;
  z-index: 100000;
  inset: 0;
  display: grid;
  padding: clamp(1rem, 3vw, 3rem) clamp(3.75rem, 7vw, 7rem);
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(0.75rem, 2vw, 2rem);
  align-items: center;
  background: rgba(24, 17, 14, 0.94);
  backdrop-filter: blur(12px);
  animation: bp-lightbox-in 220ms ease both;
}

.bp-feedback-lightbox__stage {
  display: flex;
  height: 100%;
  min-height: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.bp-feedback-lightbox__stage img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 7rem);
  border-radius: 0.75rem;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
  object-fit: contain;
}

.bp-feedback-lightbox__stage span {
  margin-top: 0.75rem;
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--bp-font-size-xs);
  letter-spacing: 0.12em;
}

.bp-feedback-lightbox__close,
.bp-feedback-lightbox__nav {
  display: grid;
  width: 3rem;
  height: 3rem;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  cursor: pointer;
  transition: background var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-feedback-lightbox__close:hover,
.bp-feedback-lightbox__nav:hover {
  background: var(--bp-color-brand);
  transform: scale(1.06);
}

.bp-feedback-lightbox__close {
  position: absolute;
  z-index: 2;
  top: 1.25rem;
  right: 1.25rem;
  font-size: 1.5rem;
}

@keyframes bp-lightbox-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (max-width: 767px) {
  .bp-feedback-stage { padding-inline: 1rem; }
  .bp-feedback-nav { display: none; }

  .bp-feedback-lightbox {
    padding: 4rem 0.75rem 1rem;
    grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem;
    gap: 0.4rem;
  }

  .bp-feedback-lightbox__close,
  .bp-feedback-lightbox__nav {
    width: 2.75rem;
    height: 2.75rem;
  }
}

/* Homepage rhythm: adjacent sections share one spacing unit. Each section
 * owns half above and half below so its background still frames the content. */
.bp-home > section:not(.bp-home-hero) {
  padding-top: calc(var(--bp-home-section-space) / 2);
  padding-bottom: calc(var(--bp-home-section-space) / 2);
}

.bp-home :where(h1, h2) {
  font-family: var(--bp-font-heading);
  font-weight: 500;
  letter-spacing: -0.025em;
}

.bp-home :where(h3, h4, h5, h6) {
  font-family: var(--bp-font-body);
  letter-spacing: -0.015em;
}

.bp-home :where(
  .bp-section-heading__eyebrow,
  .bp-home-hero__eyebrow,
  .bp-class-card__type,
  .bp-service-card__eyebrow,
  .bp-home-cta__eyebrow
) {
  font-family: var(--bp-font-body);
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.45;
}

.bp-section-heading h2,
.bp-about-main__content h2,
.bp-location-directory__intro h2 {
  font-size: var(--bp-font-size-section-title);
  line-height: 1.12;
}

.bp-location-list .bp-location-card h3,
.bp-about-reason h3 { font-family: var(--bp-font-body); }

/* Programme names are display content, not UI labels. Keep them in the same
 * softer Vietnamese serif used by the page headings. */
.bp-home .bp-class-card__body h3 {
	font-family: var(--bp-font-heading);
	font-size: clamp(1.45rem, 1.65vw, 1.72rem);
	font-weight: 500;
	letter-spacing: -.025em;
	line-height: 1.12;
}

.bp-home :where(
  .bp-class-card__body li,
  .bp-class-card__link,
  .bp-service-card__content > p,
  .bp-service-card li,
  .bp-service-card__cta,
  .bp-location-card__content p,
  .bp-location-card__meta strong,
  .bp-about-reason p
) { font-size: 0.875rem; }

@media (max-width: 767px) {
  :root { --bp-home-section-space: 3rem; }
}

/* About refinement: clearer narrative, softer reason cards and a real CTA. */
.bp-about-main__content h2 {
  margin-bottom: 0.9rem;
}

.bp-about-main__lead {
  max-width: 62ch;
  margin: 0 0 1.65rem;
  color: var(--bp-color-muted);
  font-size: 0.9375rem;
  line-height: 1.75;
}

.bp-about-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 0 1.4rem;
  padding: 1rem 0;
  border-block: 1px solid rgba(138, 95, 69, 0.16);
}

.bp-about-stats > div {
  display: grid;
  padding: 0.25rem 1rem;
  gap: 0.2rem;
}

.bp-about-stats > div:first-child { padding-left: 0; }
.bp-about-stats > div + div { border-left: 1px solid rgba(138, 95, 69, 0.16); }
.bp-about-stats strong { color: var(--bp-color-brand); font-size: clamp(1.25rem, 2vw, 1.75rem); font-weight: 600; line-height: 1; }
.bp-about-stats span { color: var(--bp-color-muted); font-size: 0.6875rem; line-height: 1.45; }

.bp-about-reasons {
  gap: 0.75rem;
  border: 0;
}

.bp-about-reason {
  min-height: 10.25rem;
  padding: 1.35rem;
  border: 1px solid rgba(111, 73, 51, 0.12);
  border-radius: 1rem;
  background: linear-gradient(145deg, #fffdf9, #faf4ec);
  box-shadow: 0 8px 24px rgba(77, 51, 36, 0.035);
  transition: border-color var(--wt-transition-base), box-shadow var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-about-reason:hover {
  border-color: rgba(138, 95, 69, 0.28);
  box-shadow: 0 14px 32px rgba(77, 51, 36, 0.08);
  transform: translateY(-3px);
}

.bp-about-main__cta {
  display: inline-flex;
  gap: 1.5rem;
  min-height: 3rem;
  margin-top: 1.5rem;
  padding: 0.75rem 0.85rem 0.75rem 1.25rem;
  align-items: center;
  border: 1px solid rgba(138, 95, 69, 0.25);
  border-radius: var(--bp-radius-pill);
  background: var(--bp-color-brand);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  transition: background var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-about-main__cta span:last-child {
  display: grid;
  width: 1.8rem;
  height: 1.8rem;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
}

.bp-about-main__cta:hover {
  background: var(--bp-color-ink);
  color: #fff;
  transform: translateY(-2px);
}

/* Front page — dynamic news slider. */
.bp-home-news {
  background:
    radial-gradient(circle at 8% 15%, rgba(199, 169, 145, 0.15), transparent 23rem),
    var(--bp-color-cream-deep);
  overflow: hidden;
}

.bp-home-news__header {
  display: flex;
  gap: 2rem;
  margin-bottom: 1.75rem;
  align-items: flex-end;
  justify-content: space-between;
}

.bp-home-news .bp-section-heading--left {
  max-width: 48rem;
  margin: 0;
  text-align: left;
}

.bp-home-news .bp-section-heading--left h2 {
  text-transform: none;
}

.bp-home-news .bp-section-heading--left p::after {
  margin-left: 0;
}

.bp-home-news__all {
  display: inline-flex;
  gap: 0.8rem;
  flex: 0 0 auto;
  padding: 0.75rem 1rem;
  align-items: center;
  border: 1px solid rgba(138, 95, 69, 0.22);
  border-radius: var(--bp-radius-pill);
  color: var(--bp-color-brand);
  font-size: 0.8125rem;
  font-weight: 600;
}

.bp-home-news__all:hover {
  background: var(--bp-color-brand);
  color: #fff;
}

.bp-home-news__stage {
  position: relative;
  padding-inline: 3.6rem;
}

.bp-home-news__slider {
  padding: 0.35rem 0.15rem 2.75rem;
  overflow: hidden;
}

.bp-news-card {
  height: auto;
  border: 1px solid rgba(111, 73, 51, 0.12);
  border-radius: 1.1rem;
  background: var(--bp-color-surface);
  box-shadow: 0 12px 35px rgba(77, 51, 36, 0.055);
  overflow: hidden;
  transition: box-shadow var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-news-card:hover {
  box-shadow: 0 18px 45px rgba(77, 51, 36, 0.11);
  transform: translateY(-5px);
}

.bp-news-card__media {
  position: relative;
  display: block;
  height: 14rem;
  background: #dfc8b7;
  overflow: hidden;
}

.bp-news-card__image,
.bp-news-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 650ms var(--wt-ease-out);
}

.bp-news-card:hover .bp-news-card__image { transform: scale(1.035); }

.bp-news-card__placeholder {
  position: relative;
  background:
    radial-gradient(circle at 72% 25%, rgba(255, 255, 255, 0.75), transparent 18%),
    linear-gradient(145deg, #eadbcf, #c8a991);
}

.bp-news-card__placeholder > span {
  position: absolute;
  right: 1.25rem;
  bottom: 1rem;
  color: rgba(82, 53, 38, 0.48);
  font-family: var(--bp-font-heading);
  font-size: 1.4rem;
  line-height: 1.05;
}

.bp-news-card__category {
  position: absolute;
  bottom: 0.85rem;
  left: 0.85rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: var(--bp-radius-pill);
  background: rgba(52, 38, 31, 0.62);
  backdrop-filter: blur(8px);
  color: #fff;
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
}

.bp-news-card__content {
  display: flex;
  min-height: 15rem;
  padding: 1.4rem;
  flex-direction: column;
}

.bp-news-card__content time {
  color: var(--bp-color-brand);
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
}

.bp-news-card__content h3 {
  margin: 0.65rem 0 0.7rem;
  font-size: 1.125rem;
  line-height: 1.45;
}

.bp-news-card__content h3 a { color: var(--bp-color-ink); }
.bp-news-card__content h3 a:hover { color: var(--bp-color-brand); }

.bp-news-card__content p {
  margin: 0;
  color: var(--bp-color-muted);
  font-size: 0.875rem;
  line-height: 1.7;
}

.bp-news-card__link {
  display: flex;
  gap: 1rem;
  margin-top: auto;
  padding-top: 1rem;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgba(138, 95, 69, 0.13);
  color: var(--bp-color-brand);
  font-size: 0.8125rem;
  font-weight: 600;
}

.bp-home-news__nav {
  position: absolute;
  z-index: 5;
  top: 45%;
  display: grid;
  width: 2.9rem;
  height: 2.9rem;
  padding: 0;
  place-items: center;
  border: 1px solid var(--bp-color-border);
  border-radius: 50%;
  background: var(--bp-color-surface);
  box-shadow: var(--bp-shadow-card);
  color: var(--bp-color-brand);
  cursor: pointer;
  transform: translateY(-50%);
}

.bp-home-news__nav:hover { background: var(--bp-color-brand); color: #fff; }
.bp-home-news__nav--prev { left: 0; }
.bp-home-news__nav--next { right: 0; }

.bp-home-news__pagination {
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  text-align: center;
}

.bp-home-news__pagination .swiper-pagination-bullet-active { background: var(--bp-color-brand); }

@media (max-width: 767px) {
  .bp-about-stats { grid-template-columns: 1fr; }
  .bp-about-stats > div { padding: 0.75rem 0; }
  .bp-about-stats > div + div { border-top: 1px solid rgba(138, 95, 69, 0.12); border-left: 0; }
  .bp-about-reasons { grid-template-columns: 1fr; }
  .bp-about-reason { min-height: auto; }
  .bp-home-news__header { align-items: flex-start; flex-direction: column; }
  .bp-home-news__all { align-self: flex-start; }
  .bp-home-news__stage { padding-inline: 0; }
  .bp-home-news__nav { display: none; }
  .bp-news-card__media { height: 13rem; }
}

/* Homepage QA polish. */
.bp-home {
  overflow: clip;
}

.bp-home > section[id] {
  scroll-margin-top: 6rem;
}

.bp-section-heading {
  margin-bottom: clamp(1.6rem, 3vw, 2.35rem);
}

.bp-section-heading p {
  max-width: 44rem;
  margin-right: auto;
  margin-left: auto;
  line-height: 1.65;
}

.bp-home :where(a, button):focus-visible {
  outline: 3px solid rgba(138, 95, 69, 0.28);
  outline-offset: 3px;
}

.bp-home :where(
  .bp-home-hero__cta,
  .bp-service-card__cta,
  .bp-about-main__cta,
  .bp-home-news__all,
  .bp-home-cta__button
) {
  min-height: 3rem;
}

.bp-class-card,
.bp-news-card {
  backface-visibility: hidden;
}

.bp-class-card__body h3,
.bp-news-card__content h3 {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.bp-news-card__content > p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.bp-location-list .bp-location-card__image,
.bp-about-main__image,
.bp-service-card__image,
.bp-news-card__image {
  background: var(--bp-color-cream-deep);
}

@media (max-width: 1100px) and (min-width: 768px) {
  .bp-about-main {
    gap: 2.5rem;
    grid-template-columns: minmax(17rem, 0.75fr) minmax(0, 1.25fr);
  }

  .bp-about-reason {
    gap: 0.85rem;
    padding: 1.1rem;
    grid-template-columns: 2.65rem minmax(0, 1fr);
  }

  .bp-about-reason__icon {
    width: 2.65rem;
    height: 2.65rem;
  }
}

@media (max-width: 767px) {
  .bp-home > section[id] { scroll-margin-top: 4.5rem; }

  .bp-section-heading {
    margin-bottom: 1.5rem;
  }

  .bp-about-main__content h2 {
    margin-top: 0.45rem;
  }

  .bp-about-main__cta {
    width: 100%;
    justify-content: space-between;
  }

  .bp-home-news__header {
    gap: 1.1rem;
    margin-bottom: 1.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bp-home *,
  .bp-home *::before,
  .bp-home *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Class pages audit — shared rhythm, typography, icons and decision content. */
.bp-class-archive,
.bp-class-detail {
  --bp-class-space: clamp(3.75rem, 6vw, 6rem);
  font-family: var(--bp-font-body);
}

.bp-class-archive :where(h1, h2, h3, p, a, button),
.bp-class-detail :where(h1, h2, h3, p, a, summary, strong, span) {
  font-family: var(--bp-font-body);
}

.bp-class-archive :where(h1, h2),
.bp-class-detail :where(h1, h2) {
  color: var(--bp-color-ink);
  font-style: normal;
  font-weight: 600;
  text-wrap: balance;
}

.bp-class-archive :where(p, li),
.bp-class-detail :where(p, li) { color: var(--bp-color-muted); }

/* Only the following section owns the space at each boundary. */
.bp-class-catalog { padding: var(--bp-class-space) 0 calc(var(--bp-class-space) / 2); }
.bp-class-consult { padding: calc(var(--bp-class-space) / 2) 0 var(--bp-class-space); }
.bp-class-detail__fit,
.bp-class-detail__benefits,
.bp-class-detail__editor,
.bp-class-detail__process,
.bp-class-detail__faq { padding: var(--bp-class-space) 0 0; }
.bp-class-detail__cta { padding: var(--bp-class-space) 0; }

.bp-class-archive__hero h1 { font-weight: 600; }
.bp-class-catalog__header { margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.bp-class-catalog__header > div:first-child { max-width: 43rem; }
.bp-class-catalog__header p { max-width: 62ch; font-size: 0.9375rem; line-height: 1.75; }

.bp-class-program__body { min-height: 24rem; }
.bp-class-program__body h3 { font-weight: 600; letter-spacing: -0.025em; }
.bp-class-program__facts { display: flex; margin-top: 1rem; padding: 0.75rem 0; border-block: 1px solid rgba(138,95,69,.11); flex-wrap: wrap; gap: 0.65rem 1rem; }
.bp-class-program__facts span { display: inline-flex; align-items: center; gap: 0.4rem; color: #765f51; font-size: 0.72rem; line-height: 1.4; }
.bp-class-program__facts svg { width: 1rem; height: 1rem; flex: 0 0 auto; color: var(--bp-color-brand); stroke-width: 1.5; }
.bp-class-program__body ul { margin: 1rem 0; }
.bp-class-program__link { text-decoration: none !important; }

.bp-class-detail__hero h1 { font-weight: 600; }
.bp-class-detail__facts-grid > div { display: grid; grid-template-columns: 2.4rem 1fr; column-gap: 0.8rem; align-items: center; }
.bp-class-detail__facts-grid svg { grid-row: 1 / span 2; width: 2.15rem; height: 2.15rem; padding: 0.48rem; border: 1px solid var(--bp-detail-line); border-radius: 50%; color: var(--bp-detail-brand); stroke-width: 1.4; background: #fbf5ed; }
.bp-class-detail__facts span { margin-bottom: 0.15rem; }
.bp-class-detail__facts strong { line-height: 1.4; }
.bp-class-detail__benefit-icon { margin-bottom: 2.25rem; }
.bp-class-detail__benefit-icon svg { width: 1.35rem; height: 1.35rem; stroke-width: 1.5; }
.bp-class-detail__benefit-grid article { min-height: 16rem; }
.bp-class-detail__process-grid { border-bottom: 0; }

.bp-class-detail__faq { background: var(--bp-detail-paper); }
.bp-class-detail__faq-grid { display: grid; grid-template-columns: minmax(16rem, .75fr) minmax(0, 1.25fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.bp-class-detail__faq h2 { font-size: clamp(2.25rem, 4vw, 4rem); letter-spacing: -.045em; line-height: 1.08; }
.bp-class-detail__faq header p { max-width: 34rem; margin: 1rem 0 0; font-size: .92rem; line-height: 1.75; }
.bp-class-detail__faq-list { border-top: 1px solid var(--bp-detail-line); }
.bp-class-detail__faq-list details { border-bottom: 1px solid var(--bp-detail-line); }
.bp-class-detail__faq-list summary { display: flex; padding: 1.35rem 0; align-items: center; justify-content: space-between; gap: 1rem; color: var(--bp-detail-ink); font-size: .98rem; font-weight: 600; line-height: 1.5; cursor: pointer; list-style: none; }
.bp-class-detail__faq-list summary::-webkit-details-marker { display: none; }
.bp-class-detail__faq-list summary span { display: grid; width: 1.8rem; height: 1.8rem; flex: 0 0 auto; border: 1px solid var(--bp-detail-line); border-radius: 50%; place-items: center; color: var(--bp-detail-brand); transition: transform .2s ease; }
.bp-class-detail__faq-list details[open] summary span { transform: rotate(45deg); }
.bp-class-detail__faq-list details p { max-width: 46rem; margin: -.25rem 3rem 1.35rem 0; font-size: .9rem; line-height: 1.75; }

.bp-class-detail :where(a, summary):focus-visible { outline: 3px solid rgba(149,97,68,.28); outline-offset: 3px; }

@media (max-width: 1024px) {
  .bp-class-detail__faq-grid { grid-template-columns: 1fr; gap: 2rem; }
}

@media (max-width: 767px) {
  .bp-class-archive,
  .bp-class-detail { --bp-class-space: 3.25rem; }
  .bp-class-program__body { min-height: 0; }
  .bp-class-detail__facts-grid > div { padding: 1.25rem 0.85rem; grid-template-columns: 2rem 1fr; column-gap: .55rem; }
  .bp-class-detail__facts-grid svg { width: 1.8rem; height: 1.8rem; padding: .38rem; }
  .bp-class-detail__facts strong { font-size: .82rem; }
}

/* Class archive — programme finder. */
.bp-class-archive {
  overflow: clip;
  background: var(--bp-color-cream);
}

.bp-class-archive__hero {
  position: relative;
  min-height: 0;
  display: flex;
  align-items: center;
  background:
    radial-gradient(circle at 82% 28%, rgba(199, 169, 145, 0.22), transparent 25rem),
    linear-gradient(125deg, #fbf7f1 0%, #f7eee4 62%, #ecdbcc 100%);
  overflow: hidden;
}

.bp-class-archive__hero::before {
  position: absolute;
  inset: auto auto -10rem -7rem;
  width: 25rem;
  height: 25rem;
  border: 1px solid rgba(138, 95, 69, 0.1);
  border-radius: 50%;
  box-shadow: 0 0 0 4rem rgba(138, 95, 69, 0.025), 0 0 0 8rem rgba(138, 95, 69, 0.018);
  content: "";
}

.bp-class-archive__hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  gap: clamp(2.5rem, 4vw, 4rem);
  padding-block: clamp(2.5rem, 4vw, 3.5rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
}

.bp-class-archive__hero-copy {
  max-width: 48rem;
}

.bp-class-archive__eyebrow {
  display: inline-flex;
  margin-bottom: 0.75rem;
  color: var(--bp-color-brand);
  font-family: var(--bp-font-body);
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.bp-class-archive__hero h1 {
  max-width: 13ch;
  margin: 0;
  color: var(--bp-color-ink);
  font-size: clamp(2.8rem, 5vw, 5.2rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.98;
}

.bp-class-archive__hero h1 em {
  color: var(--bp-color-brand);
  font-style: normal;
  font-weight: inherit;
}

.bp-class-archive__hero-copy > p {
  max-width: 62ch;
  margin: 1.5rem 0 0;
  color: var(--bp-color-muted);
  font-size: 0.9375rem;
  line-height: 1.8;
}

.bp-class-archive__hero-actions {
  display: flex;
  gap: 0.75rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}

.bp-class-archive__primary,
.bp-class-archive__secondary {
  display: inline-flex;
  gap: 0.8rem;
  min-height: 3.1rem;
  padding: 0.75rem 1.2rem;
  align-items: center;
  border: 1px solid rgba(138, 95, 69, 0.24);
  border-radius: var(--bp-radius-pill);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
}

.bp-class-archive__primary { background: var(--bp-color-brand); color: #fff; }
.bp-class-archive__secondary { background: rgba(255, 253, 249, 0.65); color: var(--bp-color-brand); }
.bp-class-archive__primary:hover { background: var(--bp-color-ink); color: #fff; }
.bp-class-archive__secondary:hover { background: #fff; color: var(--bp-color-ink); }

.bp-class-archive__hero-art {
  position: relative;
  width: min(100%, 35rem);
  aspect-ratio: 1.08;
  justify-self: end;
  border: 1px solid rgba(138, 95, 69, 0.13);
  border-radius: 50% 50% 2rem 50%;
  background:
    radial-gradient(circle at 42% 30%, rgba(255, 255, 255, 0.88), transparent 24%),
    linear-gradient(145deg, rgba(255, 253, 249, 0.72), rgba(190, 150, 121, 0.48));
  box-shadow: 0 28px 70px rgba(91, 62, 45, 0.13);
  overflow: hidden;
}

.bp-class-archive__hero-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.bp-class-archive__hero-art--image::after {
  position: absolute;
  inset: 45% 0 0;
  background: linear-gradient(180deg, transparent, rgba(52, 38, 31, 0.66));
  content: "";
}

.bp-class-archive__ring {
  position: absolute;
  border: 1px solid rgba(138, 95, 69, 0.22);
  border-radius: 50%;
}

.bp-class-archive__ring--large { inset: 9% 10% 15% 8%; }
.bp-class-archive__ring--small { inset: 26% 29% 31% 25%; border-style: dashed; }

.bp-class-archive__figure {
  position: absolute;
  inset: 24% 23% 24% 25%;
  display: block;
}

.bp-class-archive__figure::before {
  position: absolute;
  top: 4%;
  left: 44%;
  width: 16%;
  aspect-ratio: 1;
  border: 2px solid var(--bp-color-brand);
  border-radius: 50%;
  content: "";
}

.bp-class-archive__figure i,
.bp-class-archive__figure b {
  position: absolute;
  display: block;
  height: 2px;
  background: var(--bp-color-brand);
  transform-origin: center;
}

.bp-class-archive__figure i {
  top: 43%;
  left: 8%;
  width: 85%;
  transform: rotate(-15deg);
  box-shadow: 0 0 0 7px rgba(138, 95, 69, 0.04);
}

.bp-class-archive__figure b {
  top: 59%;
  left: 28%;
  width: 68%;
  transform: rotate(38deg);
}

.bp-class-archive__count {
  position: absolute;
  z-index: 3;
  right: 1.25rem;
  bottom: 1.25rem;
  display: flex;
  gap: 0.7rem;
  padding: 0.7rem 0.9rem;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.38);
  border-radius: var(--bp-radius-pill);
  background: rgba(52, 38, 31, 0.62);
  backdrop-filter: blur(10px);
  color: #fff;
  box-shadow: 0 8px 24px rgba(52, 38, 31, 0.16);
}

.bp-class-archive__count strong {
  color: inherit;
  font-family: var(--bp-font-heading);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1;
}

.bp-class-archive__count small {
  color: rgba(255, 255, 255, 0.82);
  font-size: var(--bp-font-size-xs);
  line-height: 1.45;
}

.bp-class-catalog {
  padding-block: clamp(4rem, 7vw, 6.5rem);
  background: var(--bp-color-surface);
}

.bp-class-catalog__header {
  display: flex;
  gap: 2rem;
  margin-bottom: 2.5rem;
  align-items: flex-end;
  justify-content: space-between;
}

.bp-class-catalog__header h2 {
  margin: 0;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  font-weight: 500;
}

.bp-class-catalog__header p {
  margin: 0.6rem 0 0;
  color: var(--bp-color-muted);
  font-size: 0.875rem;
}

.bp-class-filter {
  display: flex;
  gap: 0.55rem;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.bp-class-filter button {
  display: inline-flex;
  gap: 0.55rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.75rem 0.55rem 1rem;
  align-items: center;
  border: 1px solid var(--bp-color-border);
  border-radius: var(--bp-radius-pill);
  background: var(--bp-color-cream);
  color: var(--bp-color-text);
  font-size: 0.8125rem;
  cursor: pointer;
  transition: background var(--wt-transition-base), border-color var(--wt-transition-base), color var(--wt-transition-base);
}

.bp-class-filter button span {
  display: grid;
  min-width: 1.65rem;
  height: 1.65rem;
  padding-inline: 0.35rem;
  place-items: center;
  border-radius: var(--bp-radius-pill);
  background: rgba(138, 95, 69, 0.09);
  font-size: var(--bp-font-size-xs);
}

.bp-class-filter button:hover,
.bp-class-filter button.is-active {
  border-color: var(--bp-color-brand);
  background: var(--bp-color-brand);
  color: #fff;
}

.bp-class-filter button.is-active span { background: rgba(255, 255, 255, 0.18); }

.bp-class-catalog__grid {
  display: grid;
  gap: clamp(1.25rem, 2vw, 2rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bp-class-program {
  display: grid;
  min-height: 0;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  border: 1px solid rgba(111, 73, 51, 0.13);
  border-radius: 1.35rem;
  background: linear-gradient(145deg, #fffdf9, #faf5ee);
  box-shadow: 0 14px 38px rgba(77, 51, 36, 0.055);
  overflow: hidden;
  transition: box-shadow var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-class-program[hidden] { display: none !important; }

.bp-class-program:hover {
  box-shadow: 0 22px 50px rgba(77, 51, 36, 0.12);
  transform: translateY(-5px);
}

.bp-class-program__media {
  position: relative;
  display: block;
  height: clamp(13rem, 17vw, 15rem);
  min-height: 0;
  background: #d9c0ad;
  overflow: hidden;
}

.bp-class-program__media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(52, 38, 31, 0.02), rgba(52, 38, 31, 0.52));
  content: "";
}

.bp-class-program__image,
.bp-class-program__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--wt-ease-out);
}

.bp-class-program:hover .bp-class-program__image { transform: scale(1.035); }

.bp-class-program__placeholder {
  background:
    radial-gradient(circle at 65% 25%, rgba(255, 255, 255, 0.78), transparent 18%),
    linear-gradient(145deg, #eadbcf, #ba9175);
}

.bp-class-program__format,
.bp-class-program__capacity {
  position: absolute;
  z-index: 2;
  left: 1rem;
  border-radius: var(--bp-radius-pill);
  backdrop-filter: blur(8px);
  font-size: var(--bp-font-size-xs);
  font-weight: 600;
}

.bp-class-program__format {
  top: 1rem;
  padding: 0.45rem 0.65rem;
  background: rgba(255, 253, 249, 0.82);
  color: var(--bp-color-brand);
}

.bp-class-program__capacity {
  right: 1rem;
  bottom: 1rem;
  left: auto;
  padding: 0.5rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.38);
  background: rgba(52, 38, 31, 0.54);
  color: #fff;
}

.bp-class-program__body {
  position: relative;
  display: flex;
  padding: clamp(1.5rem, 2.5vw, 2.15rem);
  flex-direction: column;
  min-height: 20rem;
}

.bp-class-program__number {
  color: var(--bp-color-brand-soft);
  font-family: var(--bp-font-heading);
  font-size: 1.05rem;
}

.bp-class-program__body h3 {
  margin: 0.65rem 0 0.8rem;
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  line-height: 1.25;
}

.bp-class-program__body h3 a { color: var(--bp-color-ink); text-decoration: none; }

.bp-class-program__body > p {
  margin: 0;
  color: var(--bp-color-muted);
  font-size: 0.875rem;
  line-height: 1.7;
}

.bp-class-program__body ul {
  display: grid;
  gap: 0.55rem;
  margin: 1.25rem 0;
  padding: 0;
  list-style: none;
}

.bp-class-program__body li {
  position: relative;
  padding-left: 1.15rem;
  color: var(--bp-color-text);
  font-size: 0.8125rem;
}

.bp-class-program__body li::before {
  position: absolute;
  top: 0.45em;
  left: 0;
  width: 0.45rem;
  height: 0.45rem;
  border: 1px solid var(--bp-color-brand-soft);
  border-radius: 50%;
  content: "";
}

.bp-class-program__link {
  display: flex;
  gap: 1rem;
  margin-top: auto;
  padding-top: 1rem;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgba(138, 95, 69, 0.13);
  color: var(--bp-color-brand);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
}

.bp-class-program__link span:last-child {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: var(--bp-color-brand);
  color: #fff;
  transition: background var(--wt-transition-base), transform var(--wt-transition-base);
}

.bp-class-program__link:hover { color: var(--bp-color-brand); text-decoration: none; }
.bp-class-program__link:hover span:last-child { background: var(--bp-color-ink); transform: translateX(3px); }

.bp-class-catalog__empty {
  padding: 3rem;
  border: 1px dashed var(--bp-color-border);
  border-radius: var(--bp-radius-lg);
  color: var(--bp-color-muted);
  text-align: center;
}

.bp-class-consult {
  padding-block: clamp(3.5rem, 6vw, 5.5rem);
  background: var(--bp-color-cream-deep);
}

.bp-class-consult__inner {
  position: relative;
  display: flex;
  gap: 2rem;
  padding: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  justify-content: space-between;
  border-radius: 1.75rem;
  background:
    radial-gradient(circle at 88% 18%, rgba(255, 255, 255, 0.15), transparent 15rem),
    linear-gradient(135deg, #9b6748, #704630);
  box-shadow: 0 22px 55px rgba(77, 51, 36, 0.13);
  color: #fff;
  overflow: hidden;
}

.bp-class-consult__inner > div:first-child { position: relative; z-index: 1; max-width: 49rem; }
.bp-class-consult .bp-class-archive__eyebrow { color: rgba(255, 255, 255, 0.72); }

.bp-class-consult h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 3.5vw, 3.25rem);
  font-weight: 500;
  line-height: 1.08;
}

.bp-class-consult p { max-width: 60ch; margin: 1rem 0 0; color: rgba(255, 255, 255, 0.72); font-size: 0.875rem; line-height: 1.7; }

.bp-class-consult__actions {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 0.75rem;
  flex: 0 0 auto;
  flex-direction: column;
}

.bp-class-consult__actions a {
  display: flex;
  gap: 1rem;
  min-height: 3rem;
  padding: 0.75rem 1.1rem;
  align-items: center;
  justify-content: space-between;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--bp-radius-pill);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
}

.bp-class-consult__call { background: #fff; color: var(--bp-color-brand) !important; }
.bp-class-consult__actions a:hover { background: var(--bp-color-ink); border-color: var(--bp-color-ink); color: #fff !important; }

.bp-class-archive :where(a, button):focus-visible {
  outline: 3px solid rgba(138, 95, 69, 0.3);
  outline-offset: 3px;
}

@media (max-width: 1280px) {
  .bp-class-catalog__header {
    align-items: flex-start;
    flex-direction: column;
  }

  .bp-class-filter {
    justify-content: flex-start;
  }
}

@media (max-width: 1100px) {
  .bp-class-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bp-class-program__media { height: clamp(14rem, 28vw, 17rem); }
}

@media (max-width: 900px) {
  .bp-class-archive__hero-inner { grid-template-columns: 1fr; }
  .bp-class-archive__hero-copy { max-width: 52rem; }
  .bp-class-archive__hero h1 { max-width: 15ch; }
  .bp-class-archive__hero-art { display: none; }
  .bp-class-consult__inner { align-items: flex-start; flex-direction: column; }
  .bp-class-consult__actions { width: min(100%, 24rem); }
}

@media (max-width: 767px) {
  .bp-class-catalog__grid { grid-template-columns: 1fr; }
  .bp-class-program__media { height: clamp(15rem, 58vw, 19rem); }
}

@media (max-width: 640px) {
  .bp-class-archive__hero { min-height: auto; }
  .bp-class-archive__hero-inner { padding-block: 2.5rem; }
  .bp-class-archive__hero h1 { font-size: clamp(2.55rem, 13vw, 3.5rem); }
  .bp-class-archive__hero-actions { align-items: stretch; flex-direction: column; }
  .bp-class-archive__hero-actions a { justify-content: space-between; }
  .bp-class-filter { width: 100%; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 0.35rem; scrollbar-width: none; }
  .bp-class-filter::-webkit-scrollbar { display: none; }
  .bp-class-filter button { flex: 0 0 auto; }
  .bp-class-program { min-height: 0; grid-template-columns: 1fr; }
  .bp-class-program__media { height: 14rem; min-height: 0; }
  .bp-class-program__body { min-height: 20rem; }
  .bp-class-consult__inner { padding: 2rem 1.35rem; border-radius: 1.25rem; }
}

/* Setup & operations landing page */
.bp-setup-page { --bps-ink:#2f201a; --bps-brand:#986044; --bps-muted:#765f53; --bps-line:rgba(125,79,55,.17); color:var(--bps-ink); background:#fffdf9; }
.bp-setup-page h1,.bp-setup-page h2 { margin:0; color:var(--bps-ink); font-family:"Source Serif 4",Georgia,serif; font-weight:500; letter-spacing:-.035em; }
.bp-setup-page h3,.bp-setup-page p { font-family:"Be Vietnam Pro",sans-serif; }
.bp-setup-section { padding-block:clamp(4.5rem,8vw,7rem); }
.bp-setup-eyebrow { display:block; color:var(--bps-brand); font-size:.75rem; font-weight:600; letter-spacing:.18em; line-height:1.5; text-transform:uppercase; }
.bp-setup-heading { max-width:52rem; margin:0 auto clamp(2.5rem,5vw,4rem); text-align:center; }
.bp-setup-heading h2 { margin:.65rem 0 1rem; font-size:clamp(2.4rem,4.5vw,4rem); line-height:1.08; }
.bp-setup-heading p,.bp-setup-lead { margin:0; color:var(--bps-muted); font-size:.9375rem; line-height:1.8; }
.bp-setup-hero { padding-block:clamp(3rem,6vw,5rem); overflow:hidden; background:radial-gradient(circle at 8% 78%,rgba(180,125,91,.13),transparent 30%),#f8f0e8; }
.bp-setup-hero__grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(30rem,1.1fr); gap:clamp(3rem,7vw,7rem); align-items:center; }
.bp-setup-hero__content h1 { max-width:46rem; margin:.8rem 0 1.25rem; font-size:clamp(3.4rem,6.1vw,6.4rem); line-height:.96; }
.bp-setup-hero__content>p { max-width:43rem; margin:0; color:var(--bps-muted); font-size:1rem; line-height:1.8; }
.bp-setup-actions { display:flex; flex-wrap:wrap; gap:1rem 1.4rem; margin-top:2rem; align-items:center; }
.bp-setup-button { display:inline-flex; min-height:3.2rem; padding:.8rem 1.4rem; gap:.75rem; align-items:center; justify-content:center; border-radius:999px; color:#fff!important; background:var(--bps-brand); font-size:.8125rem; font-weight:600; text-decoration:none!important; box-shadow:0 .75rem 1.8rem rgba(116,67,44,.18); }
.bp-setup-button:hover { color:#fff!important; background:#73462f; transform:translateY(-2px); }
.bp-setup-text-link { display:inline-flex; gap:.55rem; align-items:center; color:var(--bps-ink)!important; font-size:.8125rem; font-weight:600; text-decoration:none!important; }
.bp-setup-hero__stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:42rem; margin-top:2.5rem; border-top:1px solid var(--bps-line); }
.bp-setup-hero__stats span { display:grid; gap:.18rem; padding:1.25rem 1rem 0; }
.bp-setup-hero__stats span:first-child { padding-left:0; }
.bp-setup-hero__stats span+span { border-left:1px solid var(--bps-line); }
.bp-setup-hero__stats strong { font:500 1.55rem/1.2 "Source Serif 4",Georgia,serif; }
.bp-setup-hero__stats small { color:var(--bps-muted); font-size:.7rem; line-height:1.5; }
.bp-setup-hero__media { position:relative; min-height:39rem; margin:0; overflow:hidden; border-radius:15rem 15rem 1.5rem 1.5rem; background:#dbc4b3; box-shadow:0 2rem 5rem rgba(71,43,30,.13); }
.bp-setup-hero__media>img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.bp-setup-hero__media figcaption { position:absolute; right:1.5rem; bottom:1.5rem; display:flex; gap:.8rem; min-width:14rem; padding:.85rem 1rem; align-items:center; border:1px solid rgba(152,96,68,.16); border-radius:1rem; color:var(--bps-ink); background:rgba(255,252,248,.94); box-shadow:0 1rem 2.5rem rgba(57,35,26,.18); backdrop-filter:blur(12px); }
.bp-setup-hero__media figcaption>i { display:grid; width:2.25rem; height:2.25rem; flex:0 0 auto; place-items:center; border-radius:50%; color:#fff; background:var(--bps-brand); font-size:.75rem; box-shadow:0 .45rem 1rem rgba(116,67,44,.22); }
.bp-setup-hero__media figcaption>span { display:grid; gap:.15rem; }
.bp-setup-hero__media figcaption small { color:var(--bps-muted); font:500 .6875rem/1.4 "Be Vietnam Pro",sans-serif; letter-spacing:.04em; }
.bp-setup-hero__media figcaption strong { color:var(--bps-ink); font:600 .875rem/1.4 "Be Vietnam Pro",sans-serif; }
.bp-setup-placeholder { display:grid; min-height:inherit; place-items:center; color:#a27055; font-size:3rem; }
.bp-setup-benefits { background:#fffdf9; }
.bp-setup-benefits__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:hidden; border:1px solid var(--bps-line); border-radius:1.4rem; box-shadow:0 1.3rem 3.5rem rgba(67,42,31,.07); }
.bp-setup-benefits article { min-width:0; background:#fff; }
.bp-setup-benefits article+article { border-left:1px solid var(--bps-line); }
.bp-setup-benefits figure { height:18rem; margin:0; overflow:hidden; background:#ead9cc; }
.bp-setup-benefits figure img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.bp-setup-benefits article:hover figure img { transform:scale(1.035); }
.bp-setup-benefits article>div { position:relative; min-height:15rem; padding:2rem; }
.bp-setup-benefits article>div>span { position:absolute; top:2rem; right:2rem; color:#b98b70; font:500 .85rem/1.5 "Source Serif 4",serif; }
.bp-setup-benefits h3 { max-width:18rem; margin:0 2rem .8rem 0; font-size:1.12rem; line-height:1.45; }
.bp-setup-benefits p,.bp-setup-scope p,.bp-setup-fit__items p { margin:0; color:var(--bps-muted); font-size:.875rem; line-height:1.75; }
.bp-setup-scope { background:#f6ede5; }
.bp-setup-scope__grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(24rem,.72fr); gap:clamp(3rem,7vw,7rem); align-items:center; }
.bp-setup-scope__content>h2,.bp-setup-fit h2 { max-width:46rem; margin:.65rem 0 1rem; font-size:clamp(2.6rem,4.5vw,4.3rem); line-height:1.06; }
.bp-setup-scope__content>p { max-width:48rem; }
.bp-setup-scope__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin-top:2.3rem; border-top:1px solid var(--bps-line); }
.bp-setup-scope__list article { display:grid; grid-template-columns:2.6rem 1fr; gap:.9rem; padding:1.4rem 1.2rem 1.4rem 0; border-bottom:1px solid var(--bps-line); }
.bp-setup-scope__list article:nth-child(even) { padding-left:1.2rem; border-left:1px solid var(--bps-line); }
.bp-setup-scope__list i,.bp-setup-fit__items i { display:grid; width:2.6rem; height:2.6rem; place-items:center; border:1px solid rgba(152,96,68,.2); border-radius:50%; color:var(--bps-brand); background:#fffaf5; }
.bp-setup-scope__list h3,.bp-setup-fit__items h3 { margin:0 0 .45rem; font-size:.95rem; line-height:1.45; }
.bp-setup-scope__media { position:relative; min-height:43rem; margin:0; overflow:hidden; border-radius:12rem 12rem 1.2rem 1.2rem; background:#dcc5b5; }
.bp-setup-scope__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.bp-setup-scope__media figcaption { position:absolute; right:1.2rem; bottom:1.2rem; display:flex; gap:.7rem; padding:.75rem .95rem; align-items:center; border:1px solid rgba(152,96,68,.16); border-radius:1rem; color:var(--bps-ink); background:rgba(255,252,248,.94); box-shadow:0 1rem 2.5rem rgba(57,35,26,.18); backdrop-filter:blur(12px); }
.bp-setup-scope__media figcaption strong { color:var(--bps-brand); font:600 2rem/1 "Source Serif 4",serif; }
.bp-setup-scope__media figcaption span { color:var(--bps-ink); font:600 .75rem/1.45 "Be Vietnam Pro",sans-serif; }
.bp-setup-process { color:#fff; background:#30211b; }
.bp-setup-heading.is-light h2 { color:#fff; }
.bp-setup-heading.is-light p { color:rgba(255,255,255,.82); }
.bp-setup-heading.is-light .bp-setup-eyebrow { color:#d8a98b; }
.bp-setup-process ol { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:0; padding:0; border-top:1px solid rgba(255,255,255,.16); list-style:none; }
.bp-setup-process li { min-height:17rem; padding:1.7rem 1.4rem; border-bottom:1px solid rgba(255,255,255,.16); }
.bp-setup-process li+li { border-left:1px solid rgba(255,255,255,.16); }
.bp-setup-process li>span { color:#d3a487; font:500 .9rem/1.5 "Source Serif 4",serif; }
.bp-setup-process li>div { margin-top:4.2rem; }
.bp-setup-process h3 { margin:0 0 .7rem; color:#fff; font-size:.95rem; line-height:1.5; }
.bp-setup-process p { margin:0; color:rgba(255,255,255,.62); font-size:.8rem; line-height:1.75; }
.bp-setup-fit__grid { display:grid; grid-template-columns:minmax(20rem,.75fr) minmax(0,1.25fr); gap:clamp(3rem,8vw,8rem); align-items:start; }
.bp-setup-fit__items { border-top:1px solid var(--bps-line); }
.bp-setup-fit__items article { display:grid; grid-template-columns:3rem 1fr; gap:1rem; padding:1.35rem 0; border-bottom:1px solid var(--bps-line); }
.bp-setup-gallery { display:grid; grid-template-columns:1.25fr .75fr .75fr 1.25fr; grid-auto-rows:15rem; gap:1rem; margin-top:clamp(3rem,6vw,5rem); }
.bp-setup-gallery figure { margin:0; overflow:hidden; border-radius:1rem; background:#e7d5c8; }
.bp-setup-gallery img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.bp-setup-gallery figure:hover img { transform:scale(1.035); }
.bp-setup-gallery__item--1,.bp-setup-gallery__item--4 { grid-row:span 2; }
.bp-setup-contact { background:#f4e6da; }
.bp-setup-contact__grid { display:grid; grid-template-columns:minmax(0,.82fr) minmax(32rem,1.18fr); padding:0!important; overflow:hidden; border:1px solid var(--bps-line); border-radius:1.5rem; background:#fffdf9; box-shadow:0 1.5rem 4rem rgba(70,43,30,.1); }
.bp-setup-faq { padding:clamp(2rem,4vw,4rem); }
.bp-setup-faq h2,.bp-setup-form-wrap h2 { margin:.6rem 0 1.5rem; font-size:clamp(2.1rem,3.5vw,3.4rem); line-height:1.08; }
.bp-setup-faq details { border-bottom:1px solid var(--bps-line); }
.bp-setup-faq summary { display:flex; gap:1rem; padding:1rem 0; align-items:center; justify-content:space-between; cursor:pointer; font-size:.875rem; font-weight:600; line-height:1.5; list-style:none; }
.bp-setup-faq summary::-webkit-details-marker { display:none; }
.bp-setup-faq summary i { display:grid; width:1.8rem; height:1.8rem; flex:0 0 auto; place-items:center; border:1px solid var(--bps-line); border-radius:50%; color:var(--bps-brand); font-size:.65rem; transition:transform .2s ease; }
.bp-setup-faq details[open] summary i { transform:rotate(45deg); }
.bp-setup-faq details p { margin:-.15rem 2.8rem 1.1rem 0; color:var(--bps-muted); font-size:.82rem; line-height:1.7; }
.bp-setup-form-wrap { position:relative; isolation:isolate; overflow:hidden; padding:clamp(2.5rem,4vw,4.5rem); background:radial-gradient(circle at 100% 0,rgba(255,218,190,.2),transparent 35%),linear-gradient(145deg,#a86d4e 0%,#92583e 48%,#75422f 100%); box-shadow:inset 1px 0 rgba(255,255,255,.15); }
.bp-setup-form-wrap::before,.bp-setup-form-wrap::after { content:""; position:absolute; z-index:-1; border:1px solid rgba(255,255,255,.13); border-radius:50%; pointer-events:none; }
.bp-setup-form-wrap::before { width:28rem; height:28rem; right:-13rem; top:-17rem; }
.bp-setup-form-wrap::after { width:16rem; height:16rem; right:-7rem; bottom:-9rem; box-shadow:0 0 0 3.5rem rgba(255,255,255,.025),0 0 0 7rem rgba(255,255,255,.018); }
.bp-setup-form-wrap>* { position:relative; z-index:1; }
.bp-setup-form-wrap .bp-setup-eyebrow { color:rgba(255,255,255,.7); }
.bp-setup-form-wrap h2 { color:#fff; }
.bp-setup-form-wrap>p { margin:0 0 1.5rem; color:rgba(255,255,255,.72); font-size:.875rem; line-height:1.75; }
.bp-setup-form { display:grid; gap:.9rem; }
.bp-setup-form__row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; }
.bp-setup-form label { display:grid; gap:.4rem; margin:0; color:rgba(255,255,255,.88); font-size:.72rem; font-weight:600; }
.bp-setup-form input,.bp-setup-form textarea { width:100%; min-height:3.25rem; margin:0; padding:.85rem 1rem; border:1px solid rgba(255,255,255,.3); border-radius:.8rem; outline:none; color:#fff; background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.07)); font:400 .875rem/1.5 "Be Vietnam Pro",sans-serif; box-shadow:inset 0 1px rgba(255,255,255,.06),0 .5rem 1.5rem rgba(64,32,20,.07); }
.bp-setup-form textarea { min-height:7rem; resize:vertical; }
.bp-setup-form input::placeholder,.bp-setup-form textarea::placeholder { color:rgba(255,255,255,.5); }
.bp-setup-form input:focus,.bp-setup-form textarea:focus { border-color:rgba(255,255,255,.8); background:rgba(255,255,255,.17); box-shadow:0 0 0 3px rgba(255,255,255,.08); }
.bp-setup-form .btn-submit { display:inline-flex; width:max-content; min-height:3.15rem; padding:.75rem 1.3rem; gap:.7rem; align-items:center; justify-content:center; border:0; border-radius:999px; color:var(--bps-brand); background:#fff; font:600 .8rem/1.2 "Be Vietnam Pro",sans-serif; cursor:pointer; }
.bp-setup-form .form-message { padding:.8rem 1rem; border-radius:.7rem; font-size:.8rem; }
.bp-setup-form .form-message.success { color:#285c3e; background:#eef8f1; }
.bp-setup-form .form-message.error { color:#8c3c34; background:#fff0ed; }
@media(max-width:980px){.bp-setup-hero__grid,.bp-setup-scope__grid,.bp-setup-fit__grid,.bp-setup-contact__grid{grid-template-columns:1fr}.bp-setup-hero__media,.bp-setup-scope__media{min-height:34rem}.bp-setup-process ol{grid-template-columns:repeat(2,minmax(0,1fr))}.bp-setup-process li:nth-child(odd){border-left:0}.bp-setup-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.bp-setup-section{padding-block:3.5rem}.bp-setup-hero__content h1{font-size:clamp(3rem,14vw,4.5rem)}.bp-setup-hero__media,.bp-setup-scope__media{min-height:27rem;border-radius:8rem 8rem 1rem 1rem}.bp-setup-benefits__grid,.bp-setup-scope__list,.bp-setup-process ol{grid-template-columns:1fr}.bp-setup-benefits article+article,.bp-setup-scope__list article:nth-child(even),.bp-setup-process li+li{border-left:0;border-top:1px solid var(--bps-line)}.bp-setup-scope__list article:nth-child(even){padding-left:0}.bp-setup-process li{min-height:0}.bp-setup-process li>div{margin-top:2rem}.bp-setup-gallery{grid-auto-rows:12rem}.bp-setup-gallery__item--1,.bp-setup-gallery__item--4{grid-row:span 1}.bp-setup-form__row{grid-template-columns:1fr}}

/* Setup page refinement: clearer type scale, editorial sections and gallery lightbox. */
.bp-setup-page { --bps-surface:#fffaf5; --bps-surface-deep:#f1e1d4; font-size:16px; }
.bp-setup-page h3 { color:var(--bps-ink); font-weight:600; }
.bp-setup-section { padding-block:clamp(4rem,6vw,5.75rem); }
.bp-setup-eyebrow { font-size:.8125rem; }
.bp-setup-heading { margin-bottom:clamp(2.25rem,4vw,3.5rem); }
.bp-setup-heading h2 { font-size:clamp(3rem,5vw,4.75rem); }
.bp-setup-heading p,.bp-setup-lead,.bp-setup-hero__content>p,.bp-setup-scope__content>p { font-size:1rem; line-height:1.8; }
.bp-setup-benefits { background:linear-gradient(180deg,#fffdf9 0%,#fff9f3 100%); }
.bp-setup-benefits__grid { gap:1rem; overflow:visible; border:0; border-radius:0; box-shadow:none; }
.bp-setup-benefits article { overflow:hidden; border:1px solid var(--bps-line)!important; border-radius:1.5rem; box-shadow:0 1.2rem 3rem rgba(67,42,31,.07); transition:transform .3s ease,box-shadow .3s ease; }
.bp-setup-benefits article:hover { transform:translateY(-6px); box-shadow:0 1.7rem 3.8rem rgba(67,42,31,.12); }
.bp-setup-benefits figure { height:clamp(17rem,23vw,23rem); }
.bp-setup-benefits article>div { min-height:13.5rem; padding:2rem 2rem 2.25rem; background:linear-gradient(145deg,#fff,#fffaf5); }
.bp-setup-benefits h3 { font-size:1.25rem; }
.bp-setup-benefits p,.bp-setup-scope p,.bp-setup-fit__items p { font-size:.9375rem; line-height:1.75; }

.bp-setup-scope { position:relative; overflow:hidden; background:radial-gradient(circle at 8% 12%,rgba(176,115,78,.12),transparent 24%),linear-gradient(135deg,#f8eee5,#f4e5d8); }
.bp-setup-scope::before { content:""; position:absolute; width:30rem; height:30rem; right:-12rem; bottom:-18rem; border:1px solid rgba(152,96,68,.14); border-radius:50%; }
.bp-setup-scope__grid { grid-template-columns:minmax(0,1.15fr) minmax(22rem,.65fr); gap:clamp(3rem,6vw,6rem); }
.bp-setup-scope__content>h2,.bp-setup-fit h2 { font-size:clamp(3rem,5vw,4.75rem); }
.bp-setup-scope__list { gap:1rem; margin-top:2.5rem; border:0; }
.bp-setup-scope__list article,.bp-setup-scope__list article:nth-child(even) { position:relative; grid-template-columns:3.4rem 1fr; gap:1rem; min-height:12rem; padding:1.4rem; border:1px solid rgba(152,96,68,.14); border-radius:1.2rem; background:rgba(255,253,249,.78); box-shadow:0 .8rem 2rem rgba(91,55,38,.05); backdrop-filter:blur(8px); transition:transform .25s ease,background .25s ease; }
.bp-setup-scope__list article:hover { z-index:1; transform:translateY(-4px); background:#fffdf9; }
.bp-setup-scope__icon { position:relative; display:block; width:3.25rem; height:3.25rem; }
.bp-setup-scope__list .bp-setup-scope__icon i { width:3.25rem; height:3.25rem; font-size:1.15rem; box-shadow:0 .55rem 1.25rem rgba(102,62,43,.09); }
.bp-setup-scope__icon small { position:absolute; right:-.35rem; bottom:-.25rem; display:grid; width:1.35rem; height:1.35rem; place-items:center; border-radius:50%; color:#fff; background:var(--bps-brand); font:600 .58rem/1 "Be Vietnam Pro",sans-serif; }
.bp-setup-scope__list h3 { margin-top:.25rem; font-size:1.0625rem; }
.bp-setup-scope__media { min-height:47rem; border:1px solid rgba(255,255,255,.6); border-radius:14rem 14rem 1.5rem 1.5rem; box-shadow:0 2rem 4rem rgba(78,47,33,.14); }

.bp-setup-process { position:relative; overflow:hidden; background:radial-gradient(circle at 18% 20%,rgba(154,91,61,.2),transparent 26%),radial-gradient(circle at 86% 78%,rgba(105,62,44,.2),transparent 28%),linear-gradient(145deg,#34231d,#271a16 72%); }
.bp-setup-process::after { content:""; position:absolute; inset:auto 0 0; height:12rem; pointer-events:none; background:linear-gradient(transparent,rgba(0,0,0,.13)); }
.bp-setup-process .container { position:relative; z-index:1; }
.bp-setup-process ol { position:relative; gap:1rem; border:0; }
.bp-setup-process ol::before { display:none; }
.bp-setup-process li,.bp-setup-process li+li { position:relative; min-height:19rem; padding:0 1.25rem 1.8rem; overflow:hidden; border:1px solid rgba(255,255,255,.17); border-radius:1.2rem; background:linear-gradient(155deg,rgba(255,255,255,.105),rgba(255,255,255,.045)); box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 1.2rem 2.5rem rgba(0,0,0,.08); transition:transform .3s ease,border-color .3s ease,background .3s ease; }
.bp-setup-process li:nth-child(even) { background:linear-gradient(155deg,rgba(169,104,72,.16),rgba(255,255,255,.035)); }
.bp-setup-process li::before { content:""; position:absolute; top:0; right:1.25rem; left:1.25rem; height:2px; background:linear-gradient(90deg,transparent,#d39a77,transparent); opacity:.75; }
.bp-setup-process li::after { content:attr(data-step); position:absolute; right:.7rem; bottom:-1.25rem; color:rgba(255,255,255,.035); font:600 6.5rem/1 "Source Serif 4",Georgia,serif; pointer-events:none; }
.bp-setup-process li:hover { transform:translateY(-6px); border-color:rgba(222,165,128,.36); background:linear-gradient(155deg,rgba(177,109,75,.2),rgba(255,255,255,.055)); }
.bp-setup-process__marker { display:flex; height:4.4rem; margin:0!important; align-items:center; justify-content:space-between; }
.bp-setup-process__marker span { position:relative; z-index:1; color:#f0b38d; font:600 .8rem/1 "Be Vietnam Pro",sans-serif; letter-spacing:.08em; }
.bp-setup-process__marker i { display:grid; width:2.75rem; height:2.75rem; place-items:center; border:1px solid rgba(224,173,140,.42); border-radius:50%; color:#f4c5a7; background:#34231d; font-size:1rem; box-shadow:0 0 0 .45rem #30201a; }
.bp-setup-process li>div:last-child { margin-top:4rem; }
.bp-setup-page .bp-setup-process h3 { color:#fff; font-size:1.0625rem; }
.bp-setup-process p { color:rgba(255,255,255,.78); font-size:.9rem; line-height:1.75; }

.bp-setup-fit { background:linear-gradient(180deg,#fffdf9,#faf1e9); }
.bp-setup-fit__items { display:grid; gap:1rem; border:0; }
.bp-setup-fit__items article { grid-template-columns:3.6rem 1fr; gap:1.15rem; padding:1.4rem; border:1px solid var(--bps-line); border-radius:1.15rem; background:#fff; box-shadow:0 .8rem 2rem rgba(74,43,29,.05); }
.bp-setup-fit__items i { width:3.4rem; height:3.4rem; font-size:1.1rem; background:#fbf0e6; }
.bp-setup-fit__items h3 { font-size:1.0625rem; }
.bp-setup-gallery { grid-template-columns:1.3fr .75fr .75fr 1.2fr; grid-auto-rows:13rem; gap:1rem; }
.bp-setup-gallery__item { position:relative; display:block; width:100%; min-width:0; margin:0; padding:0; overflow:hidden; border:0; border-radius:1.1rem; background:#e7d5c8; cursor:zoom-in; box-shadow:0 1rem 2.5rem rgba(69,42,30,.09); }
.bp-setup-gallery__item img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease,filter .4s ease; }
.bp-setup-gallery__item>span { position:absolute; right:1rem; bottom:1rem; display:flex; gap:.55rem; padding:.6rem .75rem; align-items:center; border:1px solid rgba(255,255,255,.35); border-radius:999px; color:#fff; background:rgba(47,32,26,.62); opacity:0; transform:translateY(.5rem); backdrop-filter:blur(8px); transition:.3s ease; }
.bp-setup-gallery__item>span small { font:500 .72rem/1 "Be Vietnam Pro",sans-serif; }
.bp-setup-gallery__item:hover img { transform:scale(1.045); filter:saturate(1.06); }
.bp-setup-gallery__item:hover>span,.bp-setup-gallery__item:focus-visible>span { opacity:1; transform:none; }
.bp-setup-gallery__item--1,.bp-setup-gallery__item--6 { grid-row:span 2; }
.bp-setup-gallery__item--4 { grid-column:span 2; }

.bp-setup-faq summary { font-size:.9375rem; }
.bp-setup-faq details p,.bp-setup-form-wrap>p { font-size:.9rem; }
.bp-setup-form label { font-size:.8125rem; }
.bp-setup-form input,.bp-setup-form textarea { font-size:.9375rem; }
.bp-setup-form .btn-submit { font-size:.875rem; text-decoration:none!important; }

.bp-setup-lightbox[hidden] { display:none; }
.bp-lightbox-open { overflow:hidden; }
.bp-setup-lightbox { position:fixed; z-index:99999; inset:0; display:grid; grid-template-columns:4rem minmax(0,1fr) 4rem; padding:clamp(1rem,3vw,2.5rem); align-items:center; background:rgba(28,18,14,.94); backdrop-filter:blur(12px); }
.bp-setup-lightbox figure { display:grid; max-width:min(88vw,90rem); max-height:88vh; margin:auto; justify-items:center; }
.bp-setup-lightbox img { display:block; max-width:100%; max-height:82vh; width:auto; height:auto; border-radius:.75rem; box-shadow:0 2rem 6rem rgba(0,0,0,.4); }
.bp-setup-lightbox figcaption { margin-top:.75rem; color:rgba(255,255,255,.7); font:500 .78rem/1.4 "Be Vietnam Pro",sans-serif; letter-spacing:.15em; }
.bp-setup-lightbox button { display:grid; width:3rem; height:3rem; padding:0; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; background:rgba(255,255,255,.08); cursor:pointer; transition:.2s ease; }
.bp-setup-lightbox button:hover { border-color:#fff; background:rgba(255,255,255,.17); transform:scale(1.06); }
.bp-setup-lightbox__close { position:absolute; top:1.25rem; right:1.25rem; }

@media(max-width:1100px){.bp-setup-process ol{grid-template-columns:repeat(3,minmax(0,1fr))}.bp-setup-process ol::before{display:none}.bp-setup-process li>div:last-child{margin-top:2rem}.bp-setup-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.bp-setup-gallery__item--4{grid-column:span 1}}
@media(max-width:980px){.bp-setup-scope__list article,.bp-setup-scope__list article:nth-child(even){min-height:auto}.bp-setup-scope__media{min-height:35rem}.bp-setup-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.bp-setup-contact__grid{grid-template-columns:1fr}.bp-setup-form-wrap{box-shadow:inset 0 1px rgba(255,255,255,.15)}}
@media(max-width:720px){.bp-setup-page{font-size:15px}.bp-setup-section{padding-block:3.75rem}.bp-setup-heading h2,.bp-setup-scope__content>h2,.bp-setup-fit h2{font-size:clamp(2.45rem,12vw,3.5rem)}.bp-setup-benefits__grid,.bp-setup-scope__list,.bp-setup-process ol{gap:.85rem}.bp-setup-benefits article>div{min-height:auto}.bp-setup-process li,.bp-setup-process li+li{min-height:auto;border:1px solid rgba(255,255,255,.12)}.bp-setup-process li>div:last-child{margin-top:1rem}.bp-setup-gallery{grid-auto-rows:11rem}.bp-setup-gallery__item--1,.bp-setup-gallery__item--6{grid-row:span 1}.bp-setup-gallery__item>span{opacity:1;transform:none}.bp-setup-lightbox{grid-template-columns:3rem minmax(0,1fr) 3rem;padding:.75rem}.bp-setup-lightbox button{width:2.6rem;height:2.6rem}}
@media(max-width:720px){.bp-setup-hero__media figcaption{right:.85rem;bottom:.85rem;min-width:0;padding:.7rem .8rem}.bp-setup-hero__media figcaption>i{width:2rem;height:2rem}.bp-setup-hero__media figcaption small{display:none}.bp-setup-hero__media figcaption strong{font-size:.8125rem}}

/* Balanced setup-page heading hierarchy. */
.bp-setup-hero__content h1 { max-width:43rem; font-size:clamp(3.25rem,5.2vw,5.35rem); line-height:1; letter-spacing:-.04em; }
.bp-setup-heading h2 { max-width:46rem; margin-inline:auto; font-size:clamp(2.65rem,4vw,3.9rem); line-height:1.08; }
.bp-setup-scope__content>h2,.bp-setup-fit h2 { font-size:clamp(2.7rem,4.1vw,4rem); line-height:1.08; }
.bp-setup-faq h2,.bp-setup-form-wrap h2 { font-size:clamp(2.35rem,3.2vw,3.25rem); line-height:1.1; }
@media(max-width:720px){.bp-setup-hero__content h1{font-size:clamp(2.8rem,12vw,3.75rem)}.bp-setup-heading h2,.bp-setup-scope__content>h2,.bp-setup-fit h2{font-size:clamp(2.25rem,10vw,3rem)}.bp-setup-faq h2,.bp-setup-form-wrap h2{font-size:clamp(2.1rem,9vw,2.7rem)}}

/* Soft atmospheric accents between setup sections. */
.bp-setup-benefits { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(circle at 92% 12%,rgba(200,153,121,.11),transparent 23%),linear-gradient(180deg,#fffdf9 0%,#fff8f1 100%); }
.bp-setup-benefits::before { content:""; position:absolute; z-index:-1; width:30rem; height:30rem; top:-19rem; left:-12rem; border:1px solid rgba(152,96,68,.12); border-radius:50%; box-shadow:0 0 0 5rem rgba(152,96,68,.018),0 0 0 10rem rgba(152,96,68,.012); }
.bp-setup-benefits::after { content:""; position:absolute; z-index:-1; width:18rem; height:1px; right:5%; bottom:3.5rem; background:linear-gradient(90deg,transparent,rgba(152,96,68,.22)); transform:rotate(-12deg); }
.bp-setup-fit { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(ellipse at 10% 42%,rgba(195,139,103,.12),transparent 27%),radial-gradient(ellipse at 88% 78%,rgba(222,184,157,.14),transparent 25%),linear-gradient(180deg,#fffdf9,#f9efe6); }
.bp-setup-fit::before { content:""; position:absolute; z-index:-1; width:24rem; height:24rem; top:2rem; right:-12rem; border:1px solid rgba(152,96,68,.13); border-radius:50%; box-shadow:0 0 0 4rem rgba(152,96,68,.018); }
.bp-setup-fit::after { content:""; position:absolute; z-index:-1; width:12rem; height:12rem; left:-5rem; bottom:12%; border:1px solid rgba(152,96,68,.11); border-radius:50%; }
.bp-setup-contact { position:relative; isolation:isolate; overflow:hidden; background:radial-gradient(circle at 8% 100%,rgba(174,108,75,.15),transparent 25%),radial-gradient(circle at 94% 0,rgba(255,255,255,.55),transparent 24%),linear-gradient(135deg,#f1dfd1,#f7eae0); }
.bp-setup-contact::before { content:""; position:absolute; z-index:-1; width:22rem; height:22rem; left:-10rem; bottom:-14rem; border:1px solid rgba(152,96,68,.14); border-radius:50%; box-shadow:0 0 0 4rem rgba(152,96,68,.025); }
.bp-setup-benefits>.container,.bp-setup-fit>.container,.bp-setup-contact>.container { position:relative; z-index:1; }

@media (prefers-reduced-motion: reduce) {
  .bp-class-archive *,
  .bp-class-archive *::before,
  .bp-class-archive *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* Final class archive cascade: keep one section gap, never two. */
.bp-class-archive { --bp-class-space: clamp(3.75rem, 6vw, 6rem); font-family: var(--bp-font-body); }
.bp-class-archive :where(h1, h2, h3, p, a, button) { font-family: var(--bp-font-body); }
.bp-class-catalog { padding: var(--bp-class-space) 0 calc(var(--bp-class-space) / 2); }
.bp-class-consult { padding: calc(var(--bp-class-space) / 2) 0 var(--bp-class-space); }
.bp-class-program__body { min-height: 24rem; }
.bp-class-program__facts { display: flex; margin-top: 1rem; padding: .75rem 0; border-block: 1px solid rgba(138,95,69,.11); flex-wrap: wrap; gap: .65rem 1rem; }
.bp-class-program__facts span { display: inline-flex; align-items: center; gap: .4rem; color: #765f51; font-size: .72rem; line-height: 1.4; }
.bp-class-program__facts svg { width: 1rem; height: 1rem; flex: 0 0 auto; color: var(--bp-color-brand); stroke-width: 1.5; }

@media (max-width: 767px) {
  .bp-class-archive { --bp-class-space: 3.25rem; }
  .bp-class-program__body { min-height: 0; }
}

/* Class detail visual system: half + half = one section gap. */
.bp-class-detail {
  --bp-class-space: clamp(4rem, 6vw, 6rem);
  --bp-class-half-space: calc(var(--bp-class-space) / 2);
}

.bp-class-detail__fit,
.bp-class-detail__benefits,
.bp-class-detail__editor,
.bp-class-detail__process,
.bp-class-detail__faq {
  padding-block: var(--bp-class-half-space);
}

.bp-class-detail__cta {
  padding: var(--bp-class-half-space) 0 var(--bp-class-space);
}

.bp-class-detail__fit { background: linear-gradient(180deg, #fffdf9, #fbf7f1); }
.bp-class-detail__gallery { background: #39291f; }
.bp-class-detail__benefits { background: linear-gradient(145deg, #f4e9dc, #faf4ec); }
.bp-class-detail__process { background: #fffdf9; }
.bp-class-detail__faq { background: linear-gradient(180deg, #f8f1e8, #fbf7f1); }

.bp-class-detail__facts {
  background: linear-gradient(90deg, #fffdf9, #fbf5ed 50%, #fffdf9);
  box-shadow: 0 .8rem 2.5rem rgba(80,49,32,.045);
}
.bp-class-detail__facts-grid > div { min-height: 6rem; }
.bp-class-detail__facts-grid svg {
  width: 2.65rem;
  height: 2.65rem;
  padding: .62rem;
  border-color: rgba(149,97,68,.22);
  color: #986044;
  background: linear-gradient(145deg, #fff, #f7e9dc);
  box-shadow: 0 .45rem 1rem rgba(80,49,32,.07);
}

.bp-class-detail__audience { border: 0; gap: .75rem; }
.bp-class-detail__audience article {
  grid-template-columns: 3rem 1fr;
  padding: 1.15rem 1.25rem;
  border: 1px solid rgba(149,97,68,.14);
  border-radius: 1rem;
  align-items: center;
  background: rgba(255,255,255,.78);
  box-shadow: 0 .6rem 1.8rem rgba(80,49,32,.035);
}
.bp-class-detail__audience article > span {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, #aa7455, #845038);
  box-shadow: 0 .45rem 1rem rgba(111,70,47,.16);
  font-size: .66rem;
}
.bp-class-detail__audience p { font-size: .98rem; }

.bp-class-detail__benefit-grid { gap: 1.15rem; }
.bp-class-detail__benefit-grid article {
  position: relative;
  overflow: hidden;
  min-height: 17rem;
  border-color: rgba(149,97,68,.16);
  background: linear-gradient(155deg, rgba(255,255,255,.94), rgba(255,250,244,.82));
  box-shadow: 0 1rem 2.6rem rgba(80,49,32,.07);
}
.bp-class-detail__benefit-grid article::after {
  position: absolute;
  right: -3rem;
  bottom: -4rem;
  width: 9rem;
  height: 9rem;
  border: 1px solid rgba(149,97,68,.09);
  border-radius: 50%;
  box-shadow: 0 0 0 1.5rem rgba(149,97,68,.025);
  content: "";
}
.bp-class-detail__benefit-icon {
  position: relative;
  z-index: 1;
  width: 3.6rem;
  height: 3.6rem;
  margin-bottom: 2.4rem;
  border-color: rgba(149,97,68,.22);
  color: #965f43;
  background: linear-gradient(145deg, #fff, #f4e4d6);
  box-shadow: 0 .7rem 1.4rem rgba(80,49,32,.09);
}
.bp-class-detail__benefit-icon svg { width: 1.6rem; height: 1.6rem; }

.bp-class-detail__process-grid { border: 0; gap: 1rem; }
.bp-class-detail__process-grid article {
  padding: 1.75rem;
  border: 1px solid rgba(149,97,68,.14);
  border-radius: 1.15rem;
  background: linear-gradient(145deg, #fff, #fbf5ed);
  box-shadow: 0 .8rem 2rem rgba(80,49,32,.045);
}
.bp-class-detail__process-grid article + article { border-left: 1px solid rgba(149,97,68,.14); }
.bp-class-detail__process-icon {
  position: relative;
  display: grid;
  width: 3.75rem;
  height: 3.75rem;
  border: 1px solid rgba(149,97,68,.2);
  border-radius: 1rem;
  place-items: center;
  color: #945e42;
  background: #f8eadf;
}
.bp-class-detail__process-icon svg { width: 1.65rem; height: 1.65rem; stroke-width: 1.45; }
.bp-class-detail__process-icon small {
  position: absolute;
  top: -.45rem;
  right: -.45rem;
  display: grid;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  place-items: center;
  color: #fff;
  background: #915b3f;
  font-size: .55rem;
  font-weight: 700;
}
.bp-class-detail__process-grid h3 { margin-top: 1.6rem; }

.bp-class-detail__faq-list { border-top: 0; }
.bp-class-detail__faq-list details {
  margin-bottom: .65rem;
  padding-inline: 1.2rem;
  border: 1px solid rgba(149,97,68,.14);
  border-radius: .9rem;
  background: rgba(255,255,255,.75);
}
.bp-class-detail__faq-list summary span { background: #fff8f0; }
.bp-class-detail__faq-list summary span svg { width: 1rem; height: 1rem; stroke-width: 1.6; }
.bp-class-detail__faq-list details[open] summary span { transform: rotate(180deg); color: #fff; background: var(--bp-detail-brand); }
.bp-class-detail__call > svg,
.bp-class-archive__secondary > svg,
.bp-class-consult__actions a > svg { width: 1.05rem; height: 1.05rem; flex: 0 0 auto; stroke-width: 1.55; }
.bp-class-consult__actions a > svg { width: 1.15rem; height: 1.15rem; }

@media (max-width: 767px) {
  .bp-class-detail { --bp-class-space: 3.5rem; }
  .bp-class-detail__facts-grid svg { width: 2rem; height: 2rem; padding: .42rem; }
  .bp-class-detail__audience article { grid-template-columns: 2.6rem 1fr; padding: 1rem; }
  .bp-class-detail__process-grid article + article { border-left: 1px solid rgba(149,97,68,.14); }
}

.bp-class-detail__gallery-heading {
  display: grid;
  grid-template-columns: 1fr minmax(18rem, .75fr);
  gap: 2rem;
  margin-bottom: 1.75rem;
  align-items: end;
}
.bp-class-detail__gallery .bp-class-detail__eyebrow { color: #d8ad91; }
.bp-class-detail__gallery h2 { color: #fff; font-size: clamp(2.2rem, 4vw, 3.8rem); letter-spacing: -.045em; line-height: 1.08; }
.bp-class-detail__gallery-heading > p { max-width: 38rem; margin: 0; color: rgba(255,255,255,.7); font-size: .9375rem; line-height: 1.75; }
.bp-class-detail__gallery-grid { display: grid; height: clamp(28rem, 46vw, 42rem); gap: .75rem; }
.bp-class-detail__gallery-grid--1 { grid-template-columns: 1fr; }
.bp-class-detail__gallery-grid--2 { grid-template-columns: repeat(2, 1fr); }
.bp-class-detail__gallery-grid--3 { grid-template-columns: minmax(0, 1.45fr) minmax(17rem, .75fr); grid-template-rows: repeat(2, 1fr); }
.bp-class-detail__gallery-grid--3 .bp-class-detail__gallery-item--1 { grid-row: 1 / span 2; }
.bp-class-detail__gallery-item { position: relative; overflow: hidden; display: block; min-height: 0; border-radius: 1.1rem; background: #765b4d; }
.bp-class-detail__gallery-image { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .6s var(--wt-ease-out), filter .35s ease; }
.bp-class-detail__gallery-item::after { position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(25,16,11,.42)); content: ""; pointer-events: none; }
.bp-class-detail__gallery-item > span { position: absolute; z-index: 2; right: .9rem; bottom: .9rem; display: grid; width: 2.65rem; height: 2.65rem; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; place-items: center; color: #fff; background: rgba(48,33,25,.58); backdrop-filter: blur(8px); transition: background .25s ease, transform .25s ease; }
.bp-class-detail__gallery-item > span i { font-size: .9rem; }
.bp-class-detail__gallery-item:hover .bp-class-detail__gallery-image { transform: scale(1.035); filter: saturate(1.04); }
.bp-class-detail__gallery-item:hover > span { transform: translateY(-2px); background: var(--bp-detail-brand); }

@media (max-width: 767px) {
  .bp-class-detail__gallery-heading { grid-template-columns: 1fr; gap: 1rem; }
  .bp-class-detail__gallery-grid,
  .bp-class-detail__gallery-grid--3 { height: auto; grid-template-columns: 1fr; grid-template-rows: none; }
  .bp-class-detail__gallery-grid--3 .bp-class-detail__gallery-item--1 { grid-row: auto; }
  .bp-class-detail__gallery-item { aspect-ratio: 4 / 3; }
  .bp-class-detail__gallery-item--1 { aspect-ratio: 16 / 10; }
}

/* Class pages legibility pass — no interface copy below 13px. */
.bp-class-detail__back,
.bp-class-detail__eyebrow,
.bp-class-archive__eyebrow { font-size: 0.8125rem; line-height: 1.5; }

.bp-class-detail__summary,
.bp-class-archive__hero-copy > p { font-size: 1rem; }

.bp-class-detail__primary,
.bp-class-detail__call,
.bp-class-archive__primary,
.bp-class-archive__secondary,
.bp-class-consult__actions a { font-size: 0.875rem; }

.bp-class-detail__media-label {
  min-width: 15rem;
  padding: 1rem 1.2rem;
  font-size: 0.875rem;
  line-height: 1.45;
  background: rgba(58,39,29,.78);
}
.bp-class-detail__media-label small { margin-top: .3rem; font-size: 0.8125rem; line-height: 1.45; opacity: .88; }

.bp-class-detail__facts span,
.bp-class-program__facts span,
.bp-class-program__format,
.bp-class-program__capacity { font-size: 0.8125rem; line-height: 1.45; }
.bp-class-detail__facts strong { font-size: 1rem; }

.bp-class-catalog__header p,
.bp-class-program__body > p,
.bp-class-program__body li,
.bp-class-detail__benefit-grid p,
.bp-class-detail__process-grid p,
.bp-class-detail__faq header p,
.bp-class-detail__faq-list details p,
.bp-class-consult p { font-size: 0.9375rem; line-height: 1.75; }

.bp-class-filter button,
.bp-class-program__link { font-size: 0.875rem; }
.bp-class-filter button span { font-size: 0.8125rem; }
.bp-class-detail__audience article > span { font-size: 0.8125rem; }
.bp-class-detail__audience p { font-size: 1rem; }
.bp-class-detail__process-icon small { width: 1.8rem; height: 1.8rem; font-size: 0.8125rem; }
.bp-class-detail__faq-list summary { font-size: 1rem; }
.bp-class-archive__count small { font-size: 0.8125rem; }

@media (max-width: 767px) {
  .bp-class-detail__facts strong { font-size: 0.9375rem; }
  .bp-class-detail__media-label { min-width: 0; max-width: calc(100% - 1.6rem); }
  .bp-class-detail__hero h1 { font-size: clamp(2.8rem, 13vw, 4.25rem); }
}

/* Quick facts rebuilt as compact cards to prevent stretched/distorted rows. */
.bp-class-detail__facts {
  padding-block: 1rem;
  border-block: 1px solid rgba(149,97,68,.13);
  background: #fbf6ef;
  box-shadow: none;
}
.bp-class-detail__facts-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}
.bp-class-detail__facts-grid > div {
  display: grid;
  min-width: 0;
  min-height: 5.25rem;
  padding: 1rem 1.1rem;
  grid-template-columns: 2.75rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: .85rem;
  align-content: center;
  align-items: center;
  border: 1px solid rgba(149,97,68,.14);
  border-radius: 1rem;
  background: rgba(255,253,249,.86);
  box-shadow: 0 .45rem 1.4rem rgba(80,49,32,.035);
}
.bp-class-detail__facts-grid > div + div { border-left: 1px solid rgba(149,97,68,.14); }
.bp-class-detail__facts-grid svg {
  box-sizing: border-box;
  grid-column: 1;
  grid-row: 1 / span 2;
  display: block;
  width: 2.75rem;
  height: 2.75rem;
  min-width: 2.75rem;
  padding: .65rem;
  border-radius: 50%;
  align-self: center;
}
.bp-class-detail__facts span,
.bp-class-detail__facts strong {
  grid-column: 2;
  min-width: 0;
  margin: 0;
}
.bp-class-detail__facts span {
  align-self: end;
  color: #9a6c51;
  font-size: .8125rem;
  letter-spacing: .09em;
  line-height: 1.3;
}
.bp-class-detail__facts strong {
  align-self: start;
  overflow-wrap: anywhere;
  color: #30231d;
  font-size: .9375rem;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.4;
}

@media (max-width: 1050px) {
  .bp-class-detail__facts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .bp-class-detail__facts { padding-block: .75rem; }
  .bp-class-detail__facts-grid { grid-template-columns: 1fr; gap: .55rem; }
  .bp-class-detail__facts-grid > div { min-height: 4.75rem; padding: .85rem 1rem; }
}

/* Font Awesome 6.5.1 — one reliable icon family for all class pages. */
.bp-class-detail__facts-grid > div > i {
  box-sizing: border-box;
  grid-column: 1;
  grid-row: 1 / span 2;
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  min-width: 2.75rem;
  border: 1px solid rgba(149,97,68,.22);
  border-radius: 50%;
  align-self: center;
  place-items: center;
  color: #986044;
  background: linear-gradient(145deg, #fff, #f7e9dc);
  box-shadow: 0 .45rem 1rem rgba(80,49,32,.07);
  font-size: 1rem;
  line-height: 1;
}
.bp-class-detail__benefit-icon > i { font-size: 1.45rem; line-height: 1; }
.bp-class-detail__process-icon > i { font-size: 1.4rem; line-height: 1; }
.bp-class-detail__faq-list summary span > i { font-size: .8rem; line-height: 1; }
.bp-class-detail__call > i,
.bp-class-archive__secondary > i,
.bp-class-consult__actions a > i { width: 1.1rem; flex: 0 0 auto; font-size: .95rem; line-height: 1; text-align: center; }
.bp-class-program__facts i { width: 1rem; flex: 0 0 auto; color: var(--bp-color-brand); font-size: .9rem; line-height: 1; text-align: center; }

@media (max-width: 767px) {
  .bp-class-detail__facts-grid > div > i { width: 2.25rem; height: 2.25rem; min-width: 2.25rem; font-size: .9rem; }
}

/* Locations directory — one shared Options Page, no individual location pages. */
.bp-locations-page {
  --bp-location-ink: #30231d;
  --bp-location-muted: #765f52;
  color: var(--bp-location-ink);
  background: #fffdf9;
}
.bp-locations-page__eyebrow {
  display: block;
  margin-bottom: .8rem;
  color: #986044;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}
.bp-locations-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(4rem, 7vw, 6.5rem);
  background:
    radial-gradient(circle at 84% 30%, rgba(255,255,255,.8) 0 4%, transparent 28%),
    linear-gradient(120deg, #fbf5ed 0%, #f3e6d9 100%);
  border-bottom: 1px solid rgba(149,97,68,.13);
}
.bp-locations-hero::before,
.bp-locations-hero::after {
  position: absolute;
  content: "";
  border: 1px solid rgba(149,97,68,.13);
  border-radius: 50%;
  pointer-events: none;
}
.bp-locations-hero::before { width: 26rem; height: 26rem; right: -8rem; top: -15rem; }
.bp-locations-hero::after { width: 13rem; height: 13rem; right: 8rem; bottom: -9rem; }
.bp-locations-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, .38fr);
  gap: clamp(2rem, 7vw, 8rem);
  align-items: end;
}
.bp-locations-hero__content { max-width: 48rem; }
.bp-locations-hero h1,
.bp-locations-directory h2 {
  margin: 0;
  color: var(--bp-location-ink);
  font-family: "Source Serif 4", Georgia, serif;
  font-weight: 500;
  letter-spacing: -.035em;
}
.bp-locations-hero h1 { font-size: clamp(3.25rem, 6vw, 6rem); line-height: .98; }
.bp-locations-hero__content > p {
  max-width: 43rem;
  margin: 1.5rem 0 0;
  color: var(--bp-location-muted);
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.8;
}
.bp-locations-hero__summary {
  display: grid;
  grid-template-columns: 3.25rem auto;
  grid-template-rows: auto auto;
  gap: .1rem 1rem;
  align-items: center;
  padding: 1.35rem 1.5rem;
  border: 1px solid rgba(149,97,68,.18);
  border-radius: 1.25rem;
  background: rgba(255,253,249,.7);
  box-shadow: 0 1.2rem 3rem rgba(81,48,30,.08);
  backdrop-filter: blur(12px);
}
.bp-locations-hero__summary > i {
  grid-row: 1 / 3;
  display: grid;
  width: 3.25rem;
  height: 3.25rem;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #986044;
  font-size: 1.1rem;
}
.bp-locations-hero__summary strong { font: 500 2.4rem/1 "Source Serif 4", Georgia, serif; }
.bp-locations-hero__summary span { color: var(--bp-location-muted); font-size: .875rem; line-height: 1.45; }

.bp-locations-directory { padding-block: clamp(4rem, 7vw, 7rem); }
.bp-locations-directory__heading {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(20rem, .65fr);
  gap: 3rem;
  align-items: end;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.bp-locations-directory h2 { font-size: clamp(2.5rem, 4.5vw, 4.25rem); line-height: 1; }
.bp-locations-directory__heading > p {
  margin: 0;
  color: var(--bp-location-muted);
  font-size: 1rem;
  line-height: 1.75;
}
.bp-locations-directory__list { display: grid; gap: 1.25rem; }
.bp-locations-directory__card {
  display: grid;
  grid-template-columns: minmax(17rem, 31%) minmax(0, 1fr);
  min-height: 18rem;
  overflow: hidden;
  border: 1px solid rgba(149,97,68,.16);
  border-radius: 1.5rem;
  background: #fff;
  box-shadow: 0 1rem 3.5rem rgba(81,48,30,.07);
  transition: transform .3s ease, box-shadow .3s ease;
}
.bp-locations-directory__card:hover { transform: translateY(-3px); box-shadow: 0 1.4rem 4rem rgba(81,48,30,.11); }
.bp-locations-directory__media { position: relative; display: block; min-height: 18rem; overflow: hidden; background: #ead8c9; }
.bp-locations-directory__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.bp-locations-directory__card:hover .bp-locations-directory__media img { transform: scale(1.025); }
.bp-locations-directory__placeholder { display: grid; width: 100%; height: 100%; min-height: 18rem; place-items: center; color: rgba(149,97,68,.55); background: linear-gradient(145deg, #f6e9de, #ceb09b); font-size: 2rem; }
.bp-locations-directory__number {
  position: absolute;
  top: 1.1rem;
  left: 1.1rem;
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  place-items: center;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 50%;
  color: #fff;
  background: rgba(48,35,29,.56);
  backdrop-filter: blur(8px);
  font-size: .8rem;
  font-weight: 600;
}
.bp-locations-directory__body { display: grid; grid-template-rows: auto auto 1fr auto auto; padding: clamp(1.5rem, 3vw, 2.5rem); }
.bp-locations-directory__label { color: #986044; font-size: .75rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.bp-locations-directory__body h3 { margin: .35rem 0 .7rem; color: var(--bp-location-ink); font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 600; letter-spacing: -.03em; }
.bp-locations-directory__address { display: flex; gap: .75rem; margin: 0 0 1.4rem; color: var(--bp-location-muted); font-size: .9375rem; line-height: 1.65; }
.bp-locations-directory__address > i { margin-top: .3rem; color: #986044; }
.bp-locations-directory__facts { display: flex; flex-wrap: wrap; gap: .65rem; align-self: end; padding-top: 1.2rem; border-top: 1px solid rgba(149,97,68,.14); }
.bp-locations-directory__facts > span { display: flex; gap: .7rem; align-items: center; min-width: 12rem; padding: .75rem .9rem; border-radius: .8rem; background: #fbf5ee; }
.bp-locations-directory__facts i { color: #986044; font-size: .9rem; }
.bp-locations-directory__facts span span { display: grid; gap: .15rem; }
.bp-locations-directory__facts small { color: #917565; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.bp-locations-directory__facts strong { color: var(--bp-location-ink); font-size: .875rem; font-weight: 600; }
.bp-locations-directory__actions { display: flex; gap: .75rem; justify-content: flex-end; padding-top: 1.25rem; }
.bp-locations-directory__actions a {
  display: inline-flex;
  gap: .65rem;
  min-height: 2.9rem;
  padding: .75rem 1.15rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(149,97,68,.25);
  border-radius: 999px;
  color: #87563c;
  font-size: .875rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: color .25s ease, background .25s ease, border-color .25s ease;
}
.bp-locations-directory__actions a:hover { color: #fff; border-color: #986044; background: #986044; }
.bp-locations-directory__actions .is-primary { color: #fff; border-color: #986044; background: #986044; }
.bp-locations-directory__actions .is-primary:hover { background: #75462f; border-color: #75462f; }

@media (max-width: 900px) {
  .bp-locations-hero__grid,
  .bp-locations-directory__heading { grid-template-columns: 1fr; gap: 1.75rem; }
  .bp-locations-hero__summary { max-width: 24rem; }
  .bp-locations-directory__card { grid-template-columns: minmax(14rem, 38%) minmax(0, 1fr); }
}
@media (max-width: 680px) {
  .bp-locations-hero { padding-block: 3.5rem; }
  .bp-locations-hero h1 { font-size: clamp(2.7rem, 14vw, 4rem); }
  .bp-locations-directory { padding-block: 3.5rem; }
  .bp-locations-directory__heading { margin-bottom: 1.75rem; }
  .bp-locations-directory__heading > p { font-size: .9375rem; }
  .bp-locations-directory__card { grid-template-columns: 1fr; }
  .bp-locations-directory__media { min-height: 14rem; aspect-ratio: 16 / 9; }
  .bp-locations-directory__body { padding: 1.4rem; }
  .bp-locations-directory__facts > span { flex: 1 1 100%; }
  .bp-locations-directory__actions { justify-content: stretch; }
  .bp-locations-directory__actions a { flex: 1 1 0; }
}

/* Compact pass: keep the directory useful without letting hero/cards dominate. */
.bp-locations-hero { padding-block: clamp(2.75rem, 4.5vw, 4.25rem); }
.bp-locations-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(15rem, 19rem); gap: clamp(2rem, 5vw, 5rem); }
.bp-locations-hero h1 { font-size: clamp(3rem, 4.8vw, 4.75rem); }
.bp-locations-hero__content > p { max-width: 42rem; margin-top: 1.1rem; line-height: 1.7; }
.bp-locations-hero__summary { padding: 1rem 1.15rem; }
.bp-locations-hero__summary > i { width: 2.75rem; height: 2.75rem; }
.bp-locations-hero__summary strong { font-size: 2rem; }
.bp-locations-directory { padding-block: clamp(2rem, 3.5vw, 3.5rem); }
.bp-locations-directory__heading { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.bp-locations-directory__card {
  grid-template-columns: minmax(13rem, 24%) minmax(0, 1fr);
  min-height: 13.75rem;
  border-radius: 1.25rem;
}
.bp-locations-directory__media,
.bp-locations-directory__placeholder { min-height: 13.75rem; }
.bp-locations-directory__body {
  grid-template-columns: minmax(15rem, 1fr) auto;
  grid-template-rows: auto auto 1fr auto;
  column-gap: 1.5rem;
  padding: 1.4rem 1.6rem;
}
.bp-locations-directory__label,
.bp-locations-directory__body h3,
.bp-locations-directory__address { grid-column: 1; }
.bp-locations-directory__body h3 { margin: .2rem 0 .45rem; font-size: clamp(1.4rem, 2vw, 1.8rem); }
.bp-locations-directory__address { margin-bottom: .8rem; line-height: 1.5; }
.bp-locations-directory__facts {
  grid-column: 1;
  gap: .5rem;
  padding-top: .8rem;
}
.bp-locations-directory__facts > span { min-width: 10.5rem; padding: .58rem .75rem; }
.bp-locations-directory__actions {
  grid-column: 2;
  grid-row: 1 / -1;
  align-self: end;
  padding: 0;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .bp-locations-hero__grid { grid-template-columns: 1fr; }
  .bp-locations-directory__card { grid-template-columns: minmax(12rem, 32%) minmax(0, 1fr); }
  .bp-locations-directory__body { grid-template-columns: 1fr; }
  .bp-locations-directory__actions { grid-column: 1; grid-row: auto; margin-top: .9rem; justify-content: flex-start; }
}

@media (max-width: 680px) {
  .bp-locations-hero { padding-block: 2.75rem; }
  .bp-locations-directory { padding-block: 2rem 3rem; }
  .bp-locations-directory__card { grid-template-columns: 1fr; }
  .bp-locations-directory__media,
  .bp-locations-directory__placeholder { min-height: 12rem; }
}

/* Trainer course landing page. */
.bp-training-page {
  --bpt-ink: #30231d;
  --bpt-brand: #986044;
  --bpt-muted: #755f53;
  color: var(--bpt-ink);
  background: #fffdf9;
}
.bp-training-page h1,
.bp-training-page h2 {
  margin: 0;
  color: var(--bpt-ink);
  font-family: "Source Serif 4", Georgia, serif;
  font-weight: 500;
  letter-spacing: -.04em;
}
.bp-training-page h3 { color: var(--bpt-ink); font-weight: 600; }
.bp-training-eyebrow {
  display: block;
  margin-bottom: .8rem;
  color: var(--bpt-brand);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}
.bp-training-section { padding-block: clamp(2.75rem, 4vw, 4rem); }
.bp-training-heading { display: grid; max-width: 48rem; margin: 0 auto clamp(2.25rem, 4vw, 3.5rem); text-align: center; }
.bp-training-heading h2 { font-size: clamp(2.35rem, 3.8vw, 3.75rem); line-height: 1.08; }
.bp-training-heading p,
.bp-training-lead { margin: 1rem auto 0; color: var(--bpt-muted); font-size: 1rem; line-height: 1.75; }
.bp-training-button {
  display: inline-flex;
  gap: .75rem;
  min-height: 3.15rem;
  padding: .8rem 1.35rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bpt-brand);
  border-radius: 999px;
  color: #fff;
  background: var(--bpt-brand);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: transform .25s ease, color .25s ease, background .25s ease;
}
.bp-training-button:hover { transform: translateY(-2px); color: #fff; background: #75462f; }
.bp-training-button.is-ghost { color: #87563c; border-color: rgba(152,96,68,.25); background: rgba(255,255,255,.72); }
.bp-training-button.is-ghost:hover { color: #fff; border-color: var(--bpt-brand); background: var(--bpt-brand); }

.bp-training-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(3.5rem, 6vw, 6rem);
  background:
    radial-gradient(circle at 9% 92%, rgba(196,151,121,.13), transparent 25%),
    linear-gradient(120deg, #fcf7f0 0%, #f3e6da 100%);
}
.bp-training-hero::after { position: absolute; width: 31rem; height: 31rem; right: -15rem; top: -19rem; content: ""; border: 1px solid rgba(152,96,68,.14); border-radius: 50%; }
.bp-training-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .9fr) minmax(24rem, .8fr); gap: clamp(2.5rem, 6vw, 6.5rem); align-items: center; }
.bp-training-hero__content { max-width: 44rem; }
.bp-training-hero h1 { font-size: clamp(3.1rem, 5vw, 5.1rem); line-height: 1.01; }
.bp-training-hero__content > p { max-width: 41rem; margin: 1.35rem 0 0; color: var(--bpt-muted); font-size: clamp(1rem, 1.25vw, 1.1rem); line-height: 1.78; }
.bp-training-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.bp-training-hero__facts { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2rem; border-block: 1px solid rgba(152,96,68,.16); }
.bp-training-hero__facts span { display: grid; gap: .25rem; padding: 1rem .9rem; }
.bp-training-hero__facts span + span { border-left: 1px solid rgba(152,96,68,.16); }
.bp-training-hero__facts strong { font-size: .9rem; font-weight: 600; }
.bp-training-hero__facts small { color: var(--bpt-muted); font-size: .75rem; line-height: 1.4; }
.bp-training-hero__media { position: relative; min-height: clamp(26rem, 43vw, 39rem); overflow: hidden; border-radius: 48% 48% 1.75rem 1.75rem; background: #d9bdab; box-shadow: 0 1.8rem 5rem rgba(80,49,32,.15); }
.bp-training-hero__media > img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.bp-training-placeholder { display: grid; width: 100%; height: 100%; min-height: inherit; place-items: center; align-content: center; gap: .8rem; color: #9c6d54; background: linear-gradient(145deg, #f2e4d8, #ceb09b); }
.bp-training-placeholder i { font-size: 2rem; }
.bp-training-placeholder small { font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.bp-training-hero__badge { position: absolute; right: 1.2rem; bottom: 1.2rem; display: flex; gap: .75rem; padding: .9rem 1rem; align-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 1rem; color: #fff; background: rgba(67,43,32,.68); backdrop-filter: blur(10px); font-size: .75rem; line-height: 1.45; }
.bp-training-hero__badge > i { font-size: 1.2rem; }
.bp-training-hero__badge strong { font-size: .82rem; }

.bp-training-profile { border-block: 1px solid rgba(152,96,68,.14); background: #fff; }
.bp-training-profile__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bp-training-profile__grid > div { display: grid; grid-template-columns: 2.75rem 1fr; gap: .75rem; padding: 1.15rem 1rem; align-items: center; }
.bp-training-profile__grid > div + div { border-left: 1px solid rgba(152,96,68,.14); }
.bp-training-profile i { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border-radius: 50%; color: var(--bpt-brand); background: #fbf1e7; }
.bp-training-profile span { display: grid; gap: .2rem; }
.bp-training-profile small { color: #a1745c; font-size: .75rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.bp-training-profile strong { color: var(--bpt-ink); font-size: .9375rem; font-weight: 600; line-height: 1.4; }

.bp-training-overview { background: #fffdf9; }
.bp-training-overview__grid { display: grid; grid-template-columns: minmax(19rem, .78fr) minmax(0, 1fr); gap: clamp(3rem, 7vw, 8rem); align-items: start; }
.bp-training-overview h2 { font-size: clamp(2.5rem, 4.2vw, 4rem); line-height: 1.08; }
.bp-training-overview__content { max-width: 45rem; }
.bp-training-overview__content > p { margin: 0; color: var(--bpt-muted); font-size: 1rem; line-height: 1.85; }
.bp-training-overview__content > p + p { margin-top: 1rem; }
.bp-training-overview__content > div { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.5rem; }
.bp-training-overview__content span { display: inline-flex; gap: .5rem; padding: .65rem .8rem; align-items: center; border-radius: 999px; color: #765340; background: #f8eee5; font-size: .8125rem; font-weight: 600; }
.bp-training-overview__content i { color: var(--bpt-brand); font-size: .75rem; }

.bp-training-outcomes { background: #fffdf9; }
.bp-training-outcomes__grid { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid rgba(152,96,68,.16); border-radius: 1.5rem; overflow: hidden; box-shadow: 0 1.2rem 3.5rem rgba(80,49,32,.06); }
.bp-training-outcomes__grid article { position: relative; min-width: 0; overflow: hidden; background: #fff; }
.bp-training-outcomes__grid article + article { border-left: 1px solid rgba(152,96,68,.16); }
.bp-training-outcomes__grid figure { margin: 0; overflow: hidden; aspect-ratio: 4 / 5; background: #f3e8df; }
.bp-training-outcomes__grid figure img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .45s ease; }
.bp-training-outcomes__grid article:hover figure img { transform: scale(1.025); }
.bp-training-outcomes__body { position: relative; min-height: 14rem; padding: 1.6rem 1.75rem 1.8rem; }
.bp-training-outcomes__body > i { display: grid; width: 2.8rem; height: 2.8rem; margin-bottom: 1.2rem; place-items: center; border-radius: 50%; color: var(--bpt-brand); background: #fbf1e7; font-size: 1rem; }
.bp-training-index { position: absolute; top: 1.8rem; right: 1.8rem; color: #bc9278; font: 500 1rem/1 "Source Serif 4", Georgia, serif; }
.bp-training-outcomes h3 { margin: 0 0 .7rem; font-size: 1.15rem; }
.bp-training-outcomes article p { margin: 0; color: var(--bpt-muted); font-size: .9375rem; line-height: 1.7; }

.bp-training-audience { background: #f8f0e7; }
.bp-training-audience__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; }
.bp-training-audience article { padding: 1.45rem; border: 1px solid rgba(152,96,68,.15); border-radius: 1.1rem; background: rgba(255,253,249,.86); }
.bp-training-audience article > i { display: grid; width: 3rem; height: 3rem; margin-bottom: 1.4rem; place-items: center; border-radius: 50%; color: var(--bpt-brand); background: #f6e9de; font-size: 1.05rem; }
.bp-training-audience h3 { margin: 0 0 .65rem; font-size: 1rem; line-height: 1.5; }
.bp-training-audience p { margin: 0; color: var(--bpt-muted); font-size: .9375rem; line-height: 1.7; }

.bp-training-curriculum { background: #f8f0e7; }
.bp-training-curriculum__grid { display: grid; grid-template-columns: minmax(22rem, .8fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.bp-training-curriculum__media { min-height: 39rem; overflow: hidden; border-radius: 1.5rem 12rem 1.5rem 1.5rem; background: #d7b9a5; box-shadow: 0 1.5rem 4rem rgba(80,49,32,.12); }
.bp-training-curriculum__media img { width: 100%; height: 100%; min-height: 39rem; object-fit: cover; }
.bp-training-curriculum__content h2 { font-size: clamp(2.45rem, 4vw, 3.9rem); line-height: 1.08; }
.bp-training-curriculum__content ol { margin: 2rem 0 0; padding: 0; list-style: none; counter-reset: curriculum; }
.bp-training-curriculum__content li { position: relative; display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.15rem 0; counter-increment: curriculum; border-top: 1px solid rgba(152,96,68,.17); }
.bp-training-curriculum__content li::before { content: counter(curriculum, decimal-leading-zero); color: #b27e60; font: 500 1rem/1.5 "Source Serif 4", Georgia, serif; }
.bp-training-curriculum h3 { margin: 0 0 .35rem; font-size: 1rem; }
.bp-training-curriculum li p { margin: 0; color: var(--bpt-muted); font-size: .9375rem; line-height: 1.7; }

.bp-training-reasons { background: #fffdf9; }
.bp-training-reasons__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.bp-training-reasons article { display: grid; grid-template-columns: 3.25rem 1fr; grid-template-rows: auto auto; gap: .3rem 1rem; padding: 1.6rem; border: 1px solid rgba(152,96,68,.15); border-radius: 1.2rem; background: #fff; box-shadow: 0 .8rem 2.5rem rgba(80,49,32,.045); }
.bp-training-reasons article > i { grid-row: 1 / 3; display: grid; width: 3.25rem; height: 3.25rem; place-items: center; border-radius: 50%; color: var(--bpt-brand); background: #fbf1e7; font-size: 1.05rem; }
.bp-training-reasons h3 { margin: .1rem 0 0; font-size: 1rem; }
.bp-training-reasons p { margin: 0; color: var(--bpt-muted); font-size: .9375rem; line-height: 1.7; }

.bp-training-trainers { background: #30231d; }
.bp-training-trainers__grid { display: grid; grid-template-columns: minmax(19rem, .9fr) minmax(17rem, .72fr) minmax(13rem, .64fr); gap: clamp(1.5rem, 3.2vw, 3.5rem); align-items: center; }
.bp-training-trainers .bp-training-eyebrow { color: #d7a98d; }
.bp-training-trainers h2 { color: #fff; font-size: clamp(2.45rem, 4vw, 3.8rem); line-height: 1.08; }
.bp-training-trainers__content > p { margin: 1.2rem 0 0; color: #d8c8be; font-size: 1rem; line-height: 1.75; }
.bp-training-trainers ul { display: grid; gap: .85rem; margin: 1.7rem 0 0; padding: 0; list-style: none; }
.bp-training-trainers li { display: flex; gap: .75rem; color: #f4ebe5; font-size: .9375rem; line-height: 1.65; }
.bp-training-trainers li i { margin-top: .25rem; color: #d7a98d; }
.bp-training-trainers__portrait { min-height: 31rem; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 10rem 10rem 1rem 1rem; background: #d8c0af; box-shadow: 0 1.5rem 4rem rgba(0,0,0,.2); }
.bp-training-trainers__portrait img { display: block; width: 100%; height: 100%; min-height: 31rem; object-fit: cover; object-position: center top; }
.bp-training-trainers__certificates { display: grid; gap: 1rem; align-content: center; }
.bp-training-trainers__certificates > header { display: flex; gap: .75rem; align-items: center; }
.bp-training-trainers__certificates > header > i { display: grid; width: 3.2rem; height: 3.2rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; color: #e4b99e; font-size: 1.1rem; }
.bp-training-trainers__certificates header div { display: grid; gap: .3rem; }
.bp-training-trainers__certificates header span { color: #c9aa98; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.bp-training-trainers__certificates header strong { color: #fff; font: 500 1.05rem/1.3 "Source Serif 4", Georgia, serif; }
.bp-training-trainers__certificates > div { display: grid; gap: .75rem; }
.bp-training-trainers__certificates figure { margin: 0; padding: .5rem; overflow: hidden; border-radius: .75rem; background: #fff; box-shadow: 0 .8rem 2rem rgba(0,0,0,.2); }
.bp-training-trainers__certificates img { display: block; width: 100%; height: auto; aspect-ratio: 1.36 / 1; object-fit: contain; }

.bp-training-faq { background: #fffdf9; }
.bp-training-faq__grid { display: grid; grid-template-columns: minmax(18rem, .6fr) minmax(0, 1fr); gap: clamp(3rem, 7vw, 8rem); }
.bp-training-faq__grid > div:first-child { max-width: 31rem; }
.bp-training-faq h2 { font-size: clamp(2.5rem, 4vw, 3.8rem); line-height: 1.08; }
.bp-training-faq__grid > div:first-child > p { margin: 1rem 0 0; color: var(--bpt-muted); font-size: .9375rem; line-height: 1.75; }
.bp-training-faq__list { border-top: 1px solid rgba(152,96,68,.2); }
.bp-training-faq details { border-bottom: 1px solid rgba(152,96,68,.2); }
.bp-training-faq summary { display: flex; gap: 1rem; padding: 1.2rem 0; align-items: center; justify-content: space-between; color: var(--bpt-ink); cursor: pointer; font-size: 1rem; font-weight: 600; line-height: 1.5; list-style: none; }
.bp-training-faq summary::-webkit-details-marker { display: none; }
.bp-training-faq summary i { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(152,96,68,.2); border-radius: 50%; color: var(--bpt-brand); font-size: .7rem; transition: transform .25s ease; }
.bp-training-faq details[open] summary i { transform: rotate(45deg); }
.bp-training-faq details > p { max-width: 45rem; margin: -.2rem 3rem 1.25rem 0; color: var(--bpt-muted); font-size: .9375rem; line-height: 1.75; }

.bp-training-offers { background: #f5e8dc; }
.bp-training-offers__inner {
  display: grid;
  grid-template-columns: minmax(20rem, .82fr) minmax(32rem, 1.18fr);
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(113,67,45,.16);
  border-radius: 1.6rem;
  background: rgba(255,253,250,.88);
  box-shadow: 0 1.5rem 4rem rgba(79,48,33,.09);
}
.bp-training-offers__content { padding: clamp(2rem, 4vw, 4rem); background: linear-gradient(145deg, #a56d4d 0%, #7f4a34 100%); }
.bp-training-offers__content .bp-training-eyebrow { color: rgba(255,255,255,.72); }
.bp-training-offers h2 { max-width: 32rem; margin: .8rem 0 2rem; color: #fff; font-size: clamp(2.25rem, 3.5vw, 3.45rem); line-height: 1.08; }
.bp-training-offers__list { border-top: 1px solid rgba(255,255,255,.2); }
.bp-training-offers__list > div { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(152,96,68,.2); }
.bp-training-offers__content .bp-training-offers__list > div { border-bottom-color: rgba(255,255,255,.18); }
.bp-training-offers__list span { color: rgba(255,255,255,.68); font: 500 .9rem/1.7 "Source Serif 4", Georgia, serif; }
.bp-training-offers__list p { margin: 0; color: rgba(255,255,255,.9); font-size: .875rem; line-height: 1.65; }
.bp-training-button.is-light { flex: 0 0 auto; color: #fff; }

.bp-training-consult {
  display: flex;
  align-items: center;
  padding: clamp(1.5rem, 3.5vw, 3.5rem);
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(250,242,235,.82));
}
.bp-training-consult__heading { margin-bottom: .35rem; }
.bp-training-consult__heading h3 {
  margin: .45rem 0 .45rem;
  color: var(--bpt-ink);
  font: 500 clamp(1.65rem, 2.3vw, 2.25rem)/1.2 "Source Serif 4", Georgia, serif;
  letter-spacing: -.025em;
}
.bp-training-consult__heading p { margin: 0; color: var(--bpt-muted); font-size: .875rem; line-height: 1.7; }
.bp-training-consult__notes { display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; margin-top: 1.35rem; color: rgba(255,255,255,.78); font-size: .75rem; font-weight: 600; }
.bp-training-consult__notes span { display: inline-flex; align-items: center; gap: .45rem; }
.bp-training-consult__notes i { width: 1rem; text-align: center; }
.bp-training-consult__form { display: grid; width: 100%; gap: 1rem; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.bp-training-consult__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.bp-training-consult__form label { display: grid; gap: .5rem; margin: 0; color: #4a3024; font-size: .8125rem; font-weight: 650; }
.bp-training-consult__form label > span:first-child b { color: #a05e3e; }
.bp-training-consult__control { position: relative; display: block; }
.bp-training-consult__control > i { position: absolute; z-index: 1; top: 50%; left: 1rem; width: 1rem; color: #a16a4d; font-size: .9rem; text-align: center; transform: translateY(-50%); pointer-events: none; }
.bp-training-consult__control.is-textarea > i { top: 1.05rem; transform: none; }
.bp-training-consult__form input,
.bp-training-consult__form textarea {
  width: 100%;
  min-height: 3.25rem;
  margin: 0;
  padding: .82rem 1rem .82rem 2.8rem;
  border: 1px solid rgba(129,81,57,.2);
  border-radius: .8rem;
  outline: none;
  color: var(--bpt-ink);
  background: #fffdfb;
  font: 400 .9375rem/1.5 "Be Vietnam Pro", sans-serif;
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.bp-training-consult__form textarea { min-height: 6.4rem; resize: vertical; }
.bp-training-consult__form input::placeholder,
.bp-training-consult__form textarea::placeholder { color: #a49389; opacity: 1; }
.bp-training-consult__form input:focus,
.bp-training-consult__form textarea:focus { border-color: #a46849; background: #fff; box-shadow: 0 0 0 3px rgba(164,104,73,.1); }
.bp-training-consult__submit { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding-top: .2rem; }
.bp-training-consult__submit p { max-width: 22rem; margin: 0; color: #8d776b; font-size: .75rem; line-height: 1.55; }
.bp-training-consult__submit .btn-submit {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  min-height: 3.15rem;
  padding: .75rem 1.25rem;
  border: 1px solid var(--bpt-brand);
  border-radius: 999px;
  color: #fff;
  background: var(--bpt-brand);
  font: 650 .8125rem/1.2 "Be Vietnam Pro", sans-serif;
  cursor: pointer;
  box-shadow: 0 .6rem 1.4rem rgba(119,70,47,.16);
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.bp-training-consult__submit .btn-submit:hover { background: #75462f; transform: translateY(-2px); box-shadow: 0 .8rem 1.6rem rgba(119,70,47,.22); }
.bp-training-consult__submit .btn-submit:disabled { cursor: wait; opacity: .68; transform: none; }
.bp-training-consult__form .form-message { margin: 0; padding: .8rem 1rem; border-radius: .75rem; font-size: .8125rem; line-height: 1.55; }
.bp-training-consult__form .form-message.success { color: #356448; border: 1px solid #cce2d3; background: #edf7f0; }
.bp-training-consult__form .form-message.error { color: #934239; border: 1px solid #ebcbc6; background: #fff0ed; }

/* Parent-theme link hover must never draw an underline on pill CTAs. */
.bp-training-page a.bp-training-button,
.bp-training-page a.bp-training-button:hover,
.bp-training-page a.bp-training-button:focus,
.bp-training-page a.bp-training-button:active {
  text-decoration: none !important;
  text-decoration-line: none !important;
  background-image: none;
}
.bp-training-page a.bp-training-button::before,
.bp-training-page a.bp-training-button::after {
  display: none !important;
  content: none !important;
}

@media (max-width: 980px) {
  .bp-training-hero__grid,
  .bp-training-curriculum__grid,
  .bp-training-trainers__grid { grid-template-columns: 1fr; }
  .bp-training-hero__media { min-height: 32rem; }
  .bp-training-curriculum__media { min-height: 30rem; }
  .bp-training-curriculum__media img { min-height: 30rem; }
  .bp-training-trainers__content { max-width: 43rem; }
  .bp-training-trainers__certificates { grid-template-columns: minmax(13rem, .45fr) minmax(0, 1fr); }
  .bp-training-trainers__certificates > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bp-training-profile__grid,
  .bp-training-audience__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bp-training-profile__grid > div:nth-child(3) { border-left: 0; border-top: 1px solid rgba(152,96,68,.14); }
  .bp-training-profile__grid > div:nth-child(4) { border-top: 1px solid rgba(152,96,68,.14); }
  .bp-training-overview__grid,
  .bp-training-faq__grid { grid-template-columns: 1fr; gap: 2rem; }
  .bp-training-offers__inner { grid-template-columns: 1fr; }
  .bp-training-consult { min-height: auto; }
}
@media (max-width: 720px) {
  .bp-training-section { padding-block: 2.5rem; }
  .bp-training-hero { padding-block: 3rem; }
  .bp-training-hero h1 { font-size: clamp(2.8rem, 13vw, 4.2rem); }
  .bp-training-hero__media { min-height: 25rem; border-radius: 45% 45% 1.25rem 1.25rem; }
  .bp-training-hero__facts { grid-template-columns: 1fr; }
  .bp-training-hero__facts span + span { border-top: 1px solid rgba(152,96,68,.16); border-left: 0; }
  .bp-training-outcomes__grid { grid-template-columns: 1fr; }
  .bp-training-outcomes__grid article { min-height: 0; }
  .bp-training-outcomes__grid article + article { border-top: 1px solid rgba(152,96,68,.16); border-left: 0; }
  .bp-training-reasons__grid { grid-template-columns: 1fr; }
  .bp-training-profile__grid,
  .bp-training-audience__grid { grid-template-columns: 1fr; }
  .bp-training-profile__grid > div + div { border-top: 1px solid rgba(152,96,68,.14); border-left: 0; }
  .bp-training-trainers__portrait { min-height: 29rem; border-radius: 9rem 9rem .85rem .85rem; }
  .bp-training-trainers__portrait img { min-height: 29rem; }
  .bp-training-trainers__certificates { gap: 1.25rem; padding-top: 1.5rem; }
  .bp-training-trainers__certificates,
  .bp-training-trainers__certificates > div { grid-template-columns: 1fr; }
  .bp-training-trainers__certificates > div { gap: .55rem; }
}

@media (max-width: 640px) {
  .bp-training-offers__inner { border-radius: 1.15rem; }
  .bp-training-offers__content { padding: 1.5rem; }
  .bp-training-consult { padding: 1.5rem; }
  .bp-training-consult__row { grid-template-columns: 1fr; }
  .bp-training-consult__form { padding: 1rem; }
  .bp-training-consult__submit { align-items: stretch; flex-direction: column; }
  .bp-training-consult__submit .btn-submit { width: 100%; }
}

/* Final cross-page title flow audit — keep last so page-specific rules cannot reintroduce narrow caps. */
.bp-home-approach__intro h2,
.bp-home-cta h2,
.bp-class-archive__hero h1,
.bp-class-detail__hero h1,
.bp-class-detail__cta h2,
.bp-training-offers h2,
.bp-setup-hero__content h1,
.bp-setup-heading h2,
.bp-setup-scope__content>h2,
.bp-setup-fit h2 {
  max-width:none;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:wrap;
}

.bp-section-heading,
.bp-setup-heading,
.bp-training-heading {
  width:min(100%,70rem);
  max-width:none;
}

.bp-class-detail__section-heading {
  width:min(100%,68rem);
  max-width:none;
}

.bp-class-archive :where(h1,h2),
.bp-class-detail :where(h1,h2),
.bp-training-page :where(h1,h2),
.bp-locations-page :where(h1,h2),
.bp-setup-page :where(h1,h2) {
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:wrap;
}

/* Contact page */
.bp-contact-page { --bpc-ink:#30231d; --bpc-brand:#986044; --bpc-muted:#765f53; --bpc-line:rgba(152,96,68,.17); color:var(--bpc-ink); background:#fffdf9; font-family:"Be Vietnam Pro",sans-serif; font-size:16px; }
.bp-contact-page :where(h1,h2) { max-width:none; margin:0; overflow-wrap:normal; color:var(--bpc-ink); font-family:"Source Serif 4",Georgia,serif; font-weight:500; hyphens:none; letter-spacing:-.035em; line-height:1.06; text-wrap:wrap; word-break:normal; }
.bp-contact-page :where(h3,p) { margin-top:0; }
.bp-contact-eyebrow { display:block; margin-bottom:.75rem; color:var(--bpc-brand); font-size:.8125rem; font-weight:600; letter-spacing:.17em; line-height:1.5; text-transform:uppercase; }
.bp-contact-eyebrow.is-light { color:#efcbb3; }

.bp-contact-hero { position:relative; isolation:isolate; overflow:hidden; padding-block:clamp(4rem,6vw,6rem); background:radial-gradient(circle at 7% 90%,rgba(185,126,89,.13),transparent 25%),linear-gradient(120deg,#fcf7f0,#f3e5d9); }
.bp-contact-hero::before,.bp-contact-hero::after { content:""; position:absolute; z-index:-1; border:1px solid rgba(152,96,68,.13); border-radius:50%; }
.bp-contact-hero::before { width:30rem; height:30rem; right:-10rem; top:-20rem; box-shadow:0 0 0 5rem rgba(152,96,68,.018); }
.bp-contact-hero::after { width:13rem; height:13rem; right:20%; bottom:-9rem; }
.bp-contact-hero__grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(22rem,.7fr); gap:clamp(3rem,8vw,8rem); align-items:end; }
.bp-contact-hero h1 { font-size:clamp(3.4rem,5.5vw,5.75rem); }
.bp-contact-hero__copy>p { max-width:50rem; margin:1.4rem 0 0; color:var(--bpc-muted); font-size:1.0625rem; line-height:1.8; }
.bp-contact-hero__summary { display:grid; overflow:hidden; border:1px solid var(--bpc-line); border-radius:1.4rem; background:rgba(255,253,249,.78); box-shadow:0 1.4rem 3.5rem rgba(77,47,31,.08); backdrop-filter:blur(12px); }
.bp-contact-hero__summary>div { display:grid; grid-template-columns:3.2rem 1fr; gap:1rem; padding:1.3rem 1.4rem; align-items:center; }
.bp-contact-hero__summary>div+div { border-top:1px solid var(--bpc-line); }
.bp-contact-hero__summary i { display:grid; width:3.2rem; height:3.2rem; place-items:center; border-radius:50%; color:#fff; background:var(--bpc-brand); font-size:1rem; }
.bp-contact-hero__summary span { display:grid; gap:.2rem; }
.bp-contact-hero__summary strong { color:var(--bpc-ink); font:500 1.35rem/1.2 "Source Serif 4",Georgia,serif; }
.bp-contact-hero__summary small { color:var(--bpc-muted); font-size:.875rem; line-height:1.45; }

.bp-contact-main { padding-block:clamp(4rem,6vw,5.75rem); background:radial-gradient(circle at 95% 100%,rgba(190,133,97,.12),transparent 24%),#f8efe7; }
.bp-contact-main__panel { display:grid; grid-template-columns:minmax(23rem,.78fr) minmax(32rem,1.22fr); padding:0!important; overflow:hidden; border:1px solid var(--bpc-line); border-radius:1.75rem; background:#fffdf9; box-shadow:0 2rem 5rem rgba(75,44,29,.1); }
.bp-contact-info { position:relative; isolation:isolate; overflow:hidden; padding:clamp(2.5rem,4vw,4.5rem); color:#fff; background:radial-gradient(circle at 0 100%,rgba(205,143,104,.2),transparent 30%),linear-gradient(145deg,#432c24,#2d1e19); }
.bp-contact-info::after { content:""; position:absolute; z-index:-1; width:22rem; height:22rem; right:-13rem; bottom:-15rem; border:1px solid rgba(255,255,255,.11); border-radius:50%; box-shadow:0 0 0 4rem rgba(255,255,255,.018); }
.bp-contact-info h2 { color:#fff; font-size:clamp(2.6rem,3.8vw,3.8rem); }
.bp-contact-info>p { margin:1.2rem 0 0; color:rgba(255,255,255,.72); font-size:.9375rem; line-height:1.8; }
.bp-contact-channels { display:grid; gap:.75rem; margin-top:2rem; }
.bp-contact-channels a { display:grid; grid-template-columns:3rem 1fr auto; gap:.9rem; padding:.85rem; align-items:center; border:1px solid rgba(255,255,255,.14); border-radius:1rem; color:#fff!important; background:rgba(255,255,255,.07); text-decoration:none!important; transition:transform .25s ease,background .25s ease,border-color .25s ease; }
.bp-contact-channels a:hover { transform:translateX(4px); border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.12); }
.bp-contact-channels a>i { display:grid; width:3rem; height:3rem; place-items:center; border-radius:50%; color:#3c281f; background:#f6dfcf; font-size:1.05rem; }
.bp-contact-channels a span { display:grid; gap:.15rem; }
.bp-contact-channels a small { color:rgba(255,255,255,.68); font-size:.8125rem; }
.bp-contact-channels a strong { font-size:1rem; }
.bp-contact-channels a b { color:#e8b796; font-size:1rem; }
.bp-contact-promises { display:grid; margin-top:2.25rem; border-top:1px solid rgba(255,255,255,.14); }
.bp-contact-promises article { display:grid; grid-template-columns:2rem 1fr; gap:.8rem; padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.14); }
.bp-contact-promises article>span { color:#dfaa88; font-size:.8125rem; font-weight:600; letter-spacing:.08em; }
.bp-contact-promises h3 { margin:0 0 .25rem; color:#fff; font-size:.9375rem; font-weight:600; line-height:1.45; }
.bp-contact-promises p { margin:0; color:rgba(255,255,255,.7); font-size:.875rem; line-height:1.65; }

.bp-contact-form-wrap { position:relative; padding:clamp(2.5rem,4vw,4.5rem); background:radial-gradient(circle at 100% 0,rgba(197,143,109,.1),transparent 28%),#fffdf9; }
.bp-contact-form-wrap h2 { font-size:clamp(2.7rem,4vw,4rem); }
.bp-contact-form-wrap>p { max-width:46rem; margin:1rem 0 2rem; color:var(--bpc-muted); font-size:.9375rem; line-height:1.75; }
.bp-contact-form { display:grid; gap:1rem; }
.bp-contact-form__row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.bp-contact-form label { display:grid; gap:.45rem; margin:0; color:var(--bpc-ink); font-size:.8125rem; font-weight:600; }
.bp-contact-control { position:relative; display:block; }
.bp-contact-control>i { position:absolute; z-index:1; top:50%; left:1rem; color:#ac7556; font-size:.9rem; transform:translateY(-50%); }
.bp-contact-control.is-textarea>i { top:1.15rem; transform:none; }
.bp-contact-form input,.bp-contact-form textarea { width:100%; min-height:3.4rem; margin:0; padding:.85rem 1rem .85rem 2.75rem; border:1px solid rgba(152,96,68,.2); border-radius:.85rem; outline:none; color:var(--bpc-ink); background:#fff; font:400 .9375rem/1.55 "Be Vietnam Pro",sans-serif; box-shadow:0 .5rem 1.5rem rgba(76,46,31,.035); }
.bp-contact-form textarea { min-height:9rem; resize:vertical; }
.bp-contact-form input::placeholder,.bp-contact-form textarea::placeholder { color:#aa968a; }
.bp-contact-form input:focus,.bp-contact-form textarea:focus { border-color:rgba(152,96,68,.62); box-shadow:0 0 0 3px rgba(152,96,68,.09); }
.bp-contact-form__submit { display:flex; gap:1.2rem; margin-top:.25rem; align-items:center; justify-content:space-between; }
.bp-contact-form__submit small { display:flex; gap:.45rem; align-items:center; color:var(--bpc-muted); font-size:.75rem; }
.bp-contact-form__submit small i { color:var(--bpc-brand); }
.bp-contact-form .btn-submit { display:inline-flex; min-height:3.25rem; padding:.8rem 1.35rem; gap:.8rem; align-items:center; justify-content:center; border:0; border-radius:999px; color:#fff; background:var(--bpc-brand); font:600 .875rem/1.2 "Be Vietnam Pro",sans-serif; cursor:pointer; box-shadow:0 .8rem 2rem rgba(120,69,44,.16); transition:transform .25s ease,background .25s ease; }
.bp-contact-form .btn-submit:hover { transform:translateY(-2px); background:#73462f; }
.bp-contact-form .form-message { padding:.8rem 1rem; border-radius:.75rem; font-size:.8125rem; }
.bp-contact-form .form-message.success { color:#356448; border:1px solid #cce2d3; background:#edf7f0; }
.bp-contact-form .form-message.error { color:#934239; border:1px solid #ebcbc6; background:#fff0ed; }

.bp-contact-locations { position:relative; isolation:isolate; overflow:hidden; padding-block:clamp(4rem,6vw,5.75rem); background:radial-gradient(circle at 6% 12%,rgba(193,138,103,.11),transparent 24%),linear-gradient(180deg,#fffdf9,#faf1e9); }
.bp-contact-locations::before { content:""; position:absolute; z-index:-1; width:24rem; height:24rem; right:-11rem; bottom:-15rem; border:1px solid rgba(152,96,68,.12); border-radius:50%; box-shadow:0 0 0 5rem rgba(152,96,68,.018); }
.bp-contact-locations__heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(24rem,.7fr); gap:clamp(2rem,7vw,7rem); margin-bottom:clamp(2.25rem,4vw,3.5rem); align-items:end; }
.bp-contact-locations__heading h2 { font-size:clamp(2.8rem,4.5vw,4.35rem); }
.bp-contact-locations__heading>p { margin:0; color:var(--bpc-muted); font-size:.9375rem; line-height:1.8; }
.bp-contact-locations__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.bp-contact-location { overflow:hidden; border:1px solid var(--bpc-line); border-radius:1.35rem; background:#fff; box-shadow:0 1rem 3rem rgba(77,47,31,.07); transition:transform .3s ease,box-shadow .3s ease; }
.bp-contact-location:hover { transform:translateY(-5px); box-shadow:0 1.5rem 3.5rem rgba(77,47,31,.11); }
.bp-contact-location figure { position:relative; height:15rem; margin:0; overflow:hidden; background:linear-gradient(145deg,#ead8ca,#c9a992); }
.bp-contact-location figure img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.bp-contact-location:hover figure img { transform:scale(1.035); }
.bp-contact-location figure>span { display:grid; width:100%; height:100%; place-items:center; color:#a36c4e; font-size:2rem; }
.bp-contact-location figure>small { position:absolute; top:1rem; left:1rem; display:grid; width:2.5rem; height:2.5rem; place-items:center; border-radius:50%; color:#fff; background:rgba(50,34,28,.66); backdrop-filter:blur(8px); font-size:.75rem; font-weight:600; }
.bp-contact-location>div { padding:1.4rem; }
.bp-contact-location>div>span { color:var(--bpc-brand); font-size:.8125rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.bp-contact-location h3 { margin:.35rem 0 .7rem; color:var(--bpc-ink); font-size:1.35rem; line-height:1.35; }
.bp-contact-location p { display:flex; gap:.55rem; min-height:3.5rem; margin:0; color:var(--bpc-muted); font-size:.875rem; line-height:1.65; }
.bp-contact-location p i { margin-top:.25rem; color:var(--bpc-brand); }
.bp-contact-location nav { display:flex; gap:.55rem; margin-top:1.1rem; padding-top:1rem; border-top:1px solid var(--bpc-line); }
.bp-contact-location nav a { display:inline-flex; min-height:2.65rem; padding:.6rem .85rem; gap:.55rem; align-items:center; justify-content:center; border:1px solid var(--bpc-line); border-radius:999px; color:var(--bpc-brand)!important; font-size:.8125rem; font-weight:600; text-decoration:none!important; }
.bp-contact-location nav a.is-primary { margin-left:auto; border-color:var(--bpc-brand); color:#fff!important; background:var(--bpc-brand); }
.bp-contact-location nav a:hover { color:#fff!important; border-color:#34261f; background:#34261f; }
.bp-contact-page :where(.bp-contact-channels a,.bp-contact-location nav a)::before,
.bp-contact-page :where(.bp-contact-channels a,.bp-contact-location nav a)::after { display:none!important; content:none!important; }

@media(max-width:1050px){.bp-contact-hero__grid,.bp-contact-main__panel,.bp-contact-locations__heading{grid-template-columns:1fr}.bp-contact-hero__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bp-contact-hero__summary>div+div{border-top:0;border-left:1px solid var(--bpc-line)}.bp-contact-locations__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.bp-contact-page{font-size:15px}.bp-contact-hero,.bp-contact-main,.bp-contact-locations{padding-block:3.5rem}.bp-contact-hero h1{font-size:clamp(2.8rem,12vw,3.8rem)}.bp-contact-hero__summary,.bp-contact-form__row,.bp-contact-locations__grid{grid-template-columns:1fr}.bp-contact-hero__summary>div+div{border-top:1px solid var(--bpc-line);border-left:0}.bp-contact-info,.bp-contact-form-wrap{padding:2rem 1.35rem}.bp-contact-info h2,.bp-contact-form-wrap h2,.bp-contact-locations__heading h2{font-size:clamp(2.25rem,10vw,3rem)}.bp-contact-form__submit{align-items:stretch;flex-direction:column}.bp-contact-form .btn-submit{width:100%}.bp-contact-location figure{height:13rem}}

/* Contact page — compact information + form layout. */
.bp-contact-main { padding-block:clamp(3rem,5vw,5rem); }
.bp-contact-heading { margin-bottom:clamp(2rem,3vw,3rem); }
.bp-contact-heading h1 { font-size:clamp(2.8rem,4.5vw,4.4rem); }
.bp-contact-heading>p { max-width:52rem; margin:1rem 0 0; color:var(--bpc-muted); font-size:1rem; line-height:1.75; }
.bp-contact-main__panel { grid-template-columns:minmax(22rem,.8fr) minmax(32rem,1.2fr); }
.bp-contact-compact-locations { margin-top:2rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.16); }
.bp-contact-compact-locations>h3 { margin:0 0 .75rem; color:#fff; font-size:1rem; font-weight:600; }
.bp-contact-compact-locations article { display:grid; grid-template-columns:1.5rem minmax(0,1fr) 1.75rem; gap:.6rem; padding:.75rem 0; align-items:start; border-top:1px solid rgba(255,255,255,.1); }
.bp-contact-compact-locations article>i { margin-top:.2rem; color:#e8b796; }
.bp-contact-compact-locations article>div { display:grid; gap:.2rem; }
.bp-contact-compact-locations strong { color:#fff; font-size:.875rem; line-height:1.45; }
.bp-contact-compact-locations span { color:rgba(255,255,255,.68); font-size:.8125rem; line-height:1.55; }
.bp-contact-compact-locations article>a { display:grid; width:1.75rem; height:1.75rem; place-items:center; border-radius:50%; color:#fff!important; background:rgba(255,255,255,.1); text-decoration:none!important; }
.bp-contact-compact-locations article>a:hover { background:rgba(255,255,255,.2); }
.bp-contact-compact-locations article>a::before,.bp-contact-compact-locations article>a::after { display:none!important; content:none!important; }
.bp-contact-channels a strong,.bp-contact-channels a:visited strong,.bp-contact-channels a:hover strong { color:#fff!important; }
.bp-contact-channels a small,.bp-contact-channels a:visited small { color:rgba(255,255,255,.72)!important; }
.bp-contact-info h2,.bp-contact-form-wrap h2 { font-size:clamp(2.2rem,3vw,3rem); }
.bp-contact-form-wrap h2 { margin-bottom:1.75rem; }
@media(max-width:1050px){.bp-contact-main__panel{grid-template-columns:1fr}}
@media(max-width:720px){.bp-contact-main{padding-block:3rem}.bp-contact-heading h1{font-size:clamp(2.7rem,12vw,3.7rem)}}

/* Class detail — final visual hierarchy, section accents and consultation modal. */
.bp-class-detail { --bp-detail-section-y:clamp(3.5rem,5vw,5rem); overflow:clip; }
.bp-class-detail__hero { padding-block:clamp(3.5rem,5vw,5.25rem); }
.bp-class-detail__hero-grid { grid-template-columns:minmax(26rem,.95fr) minmax(30rem,1.05fr); gap:clamp(3rem,6vw,6rem); }
.bp-class-detail__hero-copy { max-width:44rem; }
.bp-class-detail__hero h1 { max-width:none; font-size:clamp(3.25rem,5.2vw,5.35rem); letter-spacing:-.045em; line-height:.98; text-wrap:wrap; }
.bp-class-detail__tagline { max-width:34rem; font-size:clamp(1.15rem,1.55vw,1.4rem); line-height:1.5; }
.bp-class-detail__hero-media { min-height:clamp(27rem,39vw,39rem); border-radius:48% 48% 1.5rem 1.5rem / 38% 38% 1.5rem 1.5rem; }
.bp-class-detail__primary { appearance:none; cursor:pointer; font-family:inherit; }
.bp-class-detail :where(.bp-class-detail__primary,.bp-class-detail__call):is(:hover,:focus,:visited) { text-decoration:none!important; }
.bp-class-detail :where(.bp-class-detail__primary,.bp-class-detail__call)::before,
.bp-class-detail :where(.bp-class-detail__primary,.bp-class-detail__call)::after { display:none!important; content:none!important; }

.bp-class-detail__fit,.bp-class-detail__gallery,.bp-class-detail__benefits,.bp-class-detail__editor,.bp-class-detail__process,.bp-class-detail__faq { padding-block:var(--bp-detail-section-y); }
.bp-class-detail__fit { position:relative; isolation:isolate; background:radial-gradient(circle at 95% 18%,rgba(182,124,88,.09),transparent 24%),#fffdf9; }
.bp-class-detail__fit::before { position:absolute; z-index:-1; width:24rem; height:24rem; left:-15rem; bottom:-16rem; border:1px solid rgba(152,96,68,.1); border-radius:50%; content:""; }
.bp-class-detail__gallery { position:relative; background:radial-gradient(circle at 90% 0,rgba(183,120,83,.18),transparent 27%),linear-gradient(145deg,#3d2921,#2b1d18); }
.bp-class-detail__benefits { background:radial-gradient(circle at 10% 8%,rgba(190,132,96,.1),transparent 25%),linear-gradient(180deg,#f8eee5,#fdf8f2); }
.bp-class-detail__benefit-grid article { min-height:0; background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(255,250,245,.82)); box-shadow:0 1.2rem 3rem rgba(80,49,32,.07); }
.bp-class-detail__editor { background:#fffdf9; }
.bp-class-detail__editor-inner { max-width:64rem; border-color:rgba(149,97,68,.14); background:linear-gradient(145deg,#fff,#fdf8f3); }
.bp-class-detail__process { position:relative; background:radial-gradient(circle at 100% 100%,rgba(181,119,82,.11),transparent 26%),#f6ebe1; }
.bp-class-detail__process-grid { overflow:hidden; border:1px solid rgba(149,97,68,.15); border-radius:1.4rem; background:rgba(255,253,249,.74); box-shadow:0 1.2rem 3rem rgba(80,49,32,.055); }
.bp-class-detail__faq { background:linear-gradient(180deg,#fffdf9,#faf2ea); }

.bp-class-detail__cta { position:relative; isolation:isolate; overflow:hidden; padding-block:var(--bp-detail-section-y); background:#fffdf9; }
.bp-class-detail__cta-inner { position:relative; overflow:hidden; grid-template-columns:minmax(0,1fr) auto; padding:clamp(2.5rem,4.5vw,4rem); border:1px solid rgba(255,255,255,.13); background:radial-gradient(circle at 78% 5%,rgba(235,181,145,.22),transparent 25%),linear-gradient(125deg,#4a3027,#8f593f); box-shadow:0 1.8rem 4.5rem rgba(70,40,26,.18); }
.bp-class-detail__cta-inner::after { position:absolute; width:22rem; height:22rem; right:-12rem; bottom:-17rem; border:1px solid rgba(255,255,255,.13); border-radius:50%; box-shadow:0 0 0 4rem rgba(255,255,255,.025); content:""; pointer-events:none; }
.bp-class-detail__cta h2 { max-width:none; color:#fff; font-size:clamp(2.4rem,3.7vw,3.75rem); }
.bp-class-detail__cta .bp-class-detail__primary { color:#4b3026!important; border-color:#fff; background:#fff; }
.bp-class-detail__cta .bp-class-detail__primary:hover { color:#fff!important; border-color:#2e201b; background:#2e201b; }

.bp-modal-open { overflow:hidden; }
.bp-class-consult-modal[hidden] { display:none; }
.bp-class-consult-modal { position:fixed; z-index:99999; inset:0; display:grid; padding:1.25rem; place-items:center; opacity:0; transition:opacity .22s ease; }
.bp-class-consult-modal.is-open { opacity:1; }
.bp-class-consult-modal__backdrop { position:absolute; inset:0; background:rgba(31,20,16,.7); backdrop-filter:blur(7px); }
.bp-class-consult-modal__dialog { position:relative; width:min(100%,46rem); max-height:calc(100vh - 2.5rem); overflow:auto; padding:clamp(2rem,4vw,3.25rem); border:1px solid rgba(152,96,68,.18); border-radius:1.5rem; background:radial-gradient(circle at 100% 0,rgba(190,132,96,.12),transparent 27%),#fffdf9; box-shadow:0 2rem 6rem rgba(25,15,11,.3); transform:translateY(18px) scale(.985); transition:transform .22s ease; }
.bp-class-consult-modal.is-open .bp-class-consult-modal__dialog { transform:none; }
.bp-class-consult-modal__dialog h2 { margin:0; color:#30231d; font:500 clamp(2rem,4vw,3.25rem)/1.08 "Source Serif 4",Georgia,serif; letter-spacing:-.035em; }
.bp-class-consult-modal__dialog>p { margin:.75rem 0 1.75rem; color:#765f53; font-size:.9375rem; line-height:1.7; }
.bp-class-consult-modal__close { position:absolute; top:1rem; right:1rem; display:grid; width:2.6rem; height:2.6rem; padding:0; place-items:center; border:1px solid rgba(152,96,68,.2); border-radius:50%; color:#754b37; background:#fff; cursor:pointer; }
.bp-class-consult-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.bp-class-consult-form>div { display:grid; gap:.45rem; }
.bp-class-consult-form .is-wide { grid-column:1/-1; }
.bp-class-consult-form label { color:#3d2b23; font-size:.8125rem; font-weight:600; }
.bp-class-consult-form :where(input,textarea) { width:100%; min-height:3.35rem; padding:.85rem 1rem; border:1px solid rgba(152,96,68,.2); border-radius:.8rem; outline:0; color:#30231d; background:#fff; font:400 .9375rem/1.55 "Be Vietnam Pro",sans-serif; }
.bp-class-consult-form textarea { min-height:7.5rem; resize:vertical; }
.bp-class-consult-form :where(input,textarea):focus { border-color:rgba(152,96,68,.62); box-shadow:0 0 0 3px rgba(152,96,68,.09); }
.bp-class-consult-form__submit { display:flex!important; gap:1rem; align-items:center; }
.bp-class-consult-form .btn-submit { display:inline-flex; min-height:3.2rem; padding:.8rem 1.35rem; gap:.7rem; align-items:center; justify-content:center; border:0; border-radius:999px; color:#fff; background:#986044; font:600 .875rem/1.2 "Be Vietnam Pro",sans-serif; cursor:pointer; }
.bp-class-consult-form .form-message { flex:1; margin:0; padding:.7rem .9rem; border-radius:.7rem; font-size:.8125rem; }
.bp-class-consult-form .form-message.success { color:#356448; background:#edf7f0; }
.bp-class-consult-form .form-message.error { color:#934239; background:#fff0ed; }

@media(max-width:1024px){.bp-class-detail__hero-grid{grid-template-columns:1fr}.bp-class-detail__hero-copy{max-width:50rem}.bp-class-detail__hero-media{min-height:min(68vw,38rem)}.bp-class-detail__cta-inner{grid-template-columns:1fr}}
@media(max-width:720px){.bp-class-detail{--bp-detail-section-y:3.25rem}.bp-class-detail__hero h1{font-size:clamp(2.8rem,12vw,4rem)}.bp-class-detail__hero-media{min-height:75vw;border-radius:1.25rem}.bp-class-consult-form{grid-template-columns:1fr}.bp-class-consult-form .is-wide{grid-column:auto}.bp-class-consult-form__submit{align-items:stretch;flex-direction:column}.bp-class-consult-form .btn-submit{width:100%}}
@media(prefers-reduced-motion:reduce){.bp-class-consult-modal,.bp-class-consult-modal__dialog{transition:none}}

/* Compact opening area on class detail pages. */
.bp-class-detail__hero { padding-block:clamp(2.5rem,3.5vw,3.75rem); }
.bp-class-detail__hero-grid { gap:clamp(2.25rem,5vw,5rem); }
.bp-class-detail__back { margin-bottom:1.4rem; }
.bp-class-detail__hero h1 { font-size:clamp(2.9rem,4.5vw,4.65rem); line-height:1; }
.bp-class-detail__tagline { margin:1.1rem 0 .55rem; }
.bp-class-detail__summary { line-height:1.7; }
.bp-class-detail__actions { margin-top:1.45rem; }
.bp-class-detail__hero-media { min-height:clamp(23rem,33vw,32rem); }
.bp-class-detail__facts { padding-block:.65rem; }
.bp-class-detail__facts-grid { gap:.6rem; }
.bp-class-detail__facts-grid>div { min-height:4.35rem; padding:.7rem .85rem; grid-template-columns:2.35rem minmax(0,1fr); column-gap:.7rem; }
.bp-class-detail__facts-grid>div>i { width:2.35rem; height:2.35rem; min-width:2.35rem; font-size:.85rem; }
.bp-class-detail__facts span { font-size:.75rem; }
.bp-class-detail__facts strong { font-size:.875rem; }
@media(max-width:720px){.bp-class-detail__hero{padding-block:2.25rem}.bp-class-detail__hero h1{font-size:clamp(2.6rem,11vw,3.65rem)}.bp-class-detail__hero-media{min-height:68vw}.bp-class-detail__facts{padding-block:.55rem}}

/* Gallery heading accent and in-page lightbox. */
.bp-class-detail__gallery-heading { grid-template-columns:minmax(0,1.35fr) minmax(20rem,.65fr); padding:clamp(1.4rem,2.5vw,2rem); border:1px solid rgba(255,255,255,.11); border-radius:1.25rem; background:linear-gradient(115deg,rgba(255,255,255,.085),rgba(255,255,255,.025)); box-shadow:inset 0 1px rgba(255,255,255,.04); }
.bp-class-detail__gallery-heading h2 { font-size:clamp(2.2rem,3.35vw,3.35rem); }
@media(min-width:1100px){.bp-class-detail__gallery-heading h2{white-space:nowrap}}

.bp-class-gallery-lightbox[hidden] { display:none; }
.bp-class-gallery-lightbox { position:fixed; z-index:100000; inset:0; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:1rem; padding:clamp(1rem,3vw,2.5rem); align-items:center; background:rgba(20,13,10,.92); backdrop-filter:blur(10px); opacity:0; transition:opacity .2s ease; }
.bp-class-gallery-lightbox.is-open { opacity:1; }
.bp-class-gallery-lightbox figure { display:grid; max-width:min(82vw,80rem); max-height:88vh; margin:0 auto; gap:.7rem; justify-items:center; }
.bp-class-gallery-lightbox img { display:block; max-width:100%; max-height:82vh; width:auto; height:auto; object-fit:contain; border-radius:.75rem; box-shadow:0 2rem 5rem rgba(0,0,0,.35); }
.bp-class-gallery-lightbox figcaption { color:rgba(255,255,255,.75); font-size:.8125rem; }
.bp-class-gallery-lightbox button { display:grid; width:3rem; height:3rem; padding:0; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; background:rgba(255,255,255,.1); cursor:pointer; }
.bp-class-gallery-lightbox button:hover { background:#986044; }
.bp-class-gallery-lightbox__close { position:absolute; z-index:2; top:1.25rem; right:1.25rem; }
@media(max-width:900px){.bp-class-detail__gallery-heading{grid-template-columns:1fr;gap:.75rem}.bp-class-gallery-lightbox{grid-template-columns:1fr;padding:1rem}.bp-class-gallery-lightbox__nav{position:absolute;z-index:2;top:50%;transform:translateY(-50%)}.bp-class-gallery-lightbox__nav.is-prev{left:.75rem}.bp-class-gallery-lightbox__nav.is-next{right:.75rem}.bp-class-gallery-lightbox figure{max-width:100%}}

/* Long-form class copy paired with a real class image. */
.bp-class-detail__editor { background:radial-gradient(circle at 92% 10%,rgba(184,124,88,.11),transparent 24%),#f7ede4; }
.bp-class-detail__editor-layout { display:grid; grid-template-columns:minmax(22rem,.82fr) minmax(0,1.18fr); overflow:hidden; border:1px solid rgba(149,97,68,.15); border-radius:1.5rem; background:#fffdf9; box-shadow:0 1.5rem 4rem rgba(80,49,32,.08); }
.bp-class-detail__editor-layout figure { position:relative; min-height:32rem; margin:0; overflow:hidden; background:#d6bdab; }
.bp-class-detail__editor-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.bp-class-detail__editor-layout figure::after { position:absolute; inset:55% 0 0; background:linear-gradient(transparent,rgba(42,27,20,.46)); content:""; }
.bp-class-detail__editor-layout figure>span { position:absolute; z-index:2; left:1.4rem; bottom:1.25rem; color:#fff; font-size:.8125rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.bp-class-detail__editor-inner { max-width:none; margin:0; padding:clamp(2.5rem,4.5vw,4.5rem); border:0; border-radius:0; background:radial-gradient(circle at 100% 100%,rgba(184,124,88,.07),transparent 28%),#fffdf9; box-shadow:none; align-self:stretch; }
.bp-class-detail__editor-inner h2 { font-size:clamp(2rem,3vw,3rem); line-height:1.12; }
@media(max-width:900px){.bp-class-detail__editor-layout{grid-template-columns:1fr}.bp-class-detail__editor-layout figure{min-height:min(68vw,30rem)}}
@media(max-width:560px){.bp-class-detail__editor-layout figure{min-height:72vw}.bp-class-detail__editor-inner{padding:2rem 1.35rem}}

/* Image-backed final CTA keeps the lower half of long class pages visual. */
.bp-class-detail__cta-inner { grid-template-columns:minmax(0,1.05fr) minmax(22rem,.75fr); padding:0; align-items:stretch; }
.bp-class-detail__cta-copy { position:relative; z-index:2; padding:clamp(2.5rem,4.5vw,4.25rem); align-self:center; }
.bp-class-detail__cta h2 { font-size:clamp(2.25rem,3vw,3.15rem); line-height:1.08; }
.bp-class-detail__cta .bp-class-detail__actions { justify-content:flex-start; }
.bp-class-detail__cta-inner>figure { position:relative; min-height:25rem; margin:0; overflow:hidden; }
.bp-class-detail__cta-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.bp-class-detail__cta-inner>figure::after { position:absolute; inset:0; background:linear-gradient(90deg,rgba(74,48,39,.55),transparent 45%); content:""; }
@media(max-width:900px){.bp-class-detail__cta-inner{grid-template-columns:1fr}.bp-class-detail__cta-inner>figure{min-height:min(62vw,28rem);order:-1}.bp-class-detail__cta-inner>figure::after{background:linear-gradient(180deg,transparent 55%,rgba(74,48,39,.7))}}
@media(min-width:1180px){.bp-class-detail__cta h2{white-space:nowrap}}

/* Class detail typography scale — one hierarchy across every programme. */
.bp-class-detail__hero h1 {
  font-size:clamp(3rem,4.25vw,4.4rem);
  font-weight:600;
  letter-spacing:-.04em;
  line-height:1.02;
}
.bp-class-detail :where(.bp-class-detail__fit h2,.bp-class-detail__section-heading h2,.bp-class-detail__gallery h2,.bp-class-detail__faq h2) {
  max-width:none;
  font-size:clamp(2.35rem,3.25vw,3.25rem);
  font-weight:600;
  letter-spacing:-.035em;
  line-height:1.1;
}
.bp-class-detail__editor-inner h2 {
  margin:2rem 0 .8rem;
  font-size:clamp(1.75rem,2.25vw,2.25rem);
  font-weight:600;
  letter-spacing:-.025em;
  line-height:1.18;
}
.bp-class-detail__editor-inner h2:first-child { margin-top:0; }
.bp-class-detail__benefit-grid h3,.bp-class-detail__process-grid h3 { font-size:1.2rem; line-height:1.4; }
.bp-class-detail__cta h2 { font-size:clamp(2.25rem,2.8vw,2.9rem); letter-spacing:-.03em; line-height:1.1; }
.bp-class-consult-modal__dialog h2 { font-size:clamp(2rem,3vw,2.8rem); }
@media(max-width:720px){.bp-class-detail__hero h1{font-size:clamp(2.6rem,10.5vw,3.6rem)}.bp-class-detail :where(.bp-class-detail__fit h2,.bp-class-detail__section-heading h2,.bp-class-detail__gallery h2,.bp-class-detail__faq h2){font-size:clamp(2rem,8.5vw,2.7rem)}.bp-class-detail__editor-inner h2{font-size:clamp(1.65rem,7vw,2rem)}}

/* Restrained heading scale for the long-form class pages. */
.bp-class-detail__hero h1 { font-size:clamp(2.8rem,3.8vw,3.9rem); }
.bp-class-detail :where(.bp-class-detail__fit h2,.bp-class-detail__section-heading h2,.bp-class-detail__gallery h2,.bp-class-detail__faq h2) { font-size:clamp(2rem,2.55vw,2.65rem); line-height:1.16; letter-spacing:-.025em; }
.bp-class-detail__faq-grid { grid-template-columns:minmax(22rem,.9fr) minmax(0,1.1fr); gap:clamp(2.5rem,5vw,5rem); }
.bp-class-detail__editor-inner h2 { font-size:clamp(1.65rem,2vw,2rem); line-height:1.22; }
.bp-class-detail__cta h2 { font-size:clamp(2rem,2.4vw,2.5rem); }
.bp-class-consult-modal__dialog h2 { font-size:clamp(1.9rem,2.6vw,2.5rem); }
@media(max-width:1024px){.bp-class-detail__faq-grid{grid-template-columns:1fr}.bp-class-detail__faq-grid header{max-width:44rem}}
@media(max-width:720px){.bp-class-detail__hero h1{font-size:clamp(2.45rem,9.5vw,3.2rem)}.bp-class-detail :where(.bp-class-detail__fit h2,.bp-class-detail__section-heading h2,.bp-class-detail__gallery h2,.bp-class-detail__faq h2){font-size:clamp(1.85rem,7.5vw,2.3rem)}.bp-class-detail__editor-inner h2{font-size:clamp(1.55rem,6.5vw,1.85rem)}}

/*
 * Final class-detail heading scale.
 * Do not use :where() here: its zero specificity allowed older component
 * rules to win and made Process/FAQ headings much larger than the rest.
 */
.bp-class-detail .bp-class-detail__fit h2,
.bp-class-detail .bp-class-detail__section-heading h2,
.bp-class-detail .bp-class-detail__gallery-heading h2,
.bp-class-detail .bp-class-detail__faq h2 {
	max-width: 22ch;
	margin-top: .55rem;
	font-size: clamp(2rem, 2.35vw, 2.7rem);
	font-weight: 600;
	letter-spacing: -.025em;
	line-height: 1.14;
}
.bp-class-detail .bp-class-detail__process .bp-class-detail__section-heading h2 {
	max-width: 28ch;
}
.bp-class-detail .bp-class-detail__gallery-heading h2 {
	max-width: none;
}
.bp-class-detail .bp-class-detail__editor-inner h2 {
	font-size: clamp(1.6rem, 1.85vw, 1.95rem);
	line-height: 1.22;
}
.bp-class-detail .bp-class-detail__cta h2 {
	max-width: 24ch;
	font-size: clamp(2rem, 2.25vw, 2.45rem);
	line-height: 1.12;
}
@media (max-width: 720px) {
	.bp-class-detail .bp-class-detail__fit h2,
	.bp-class-detail .bp-class-detail__section-heading h2,
	.bp-class-detail .bp-class-detail__gallery-heading h2,
	.bp-class-detail .bp-class-detail__faq h2 {
		font-size: clamp(1.8rem, 7vw, 2.2rem);
	}
}

/* About + Balance Reformer pages. */
.bp-page-eyebrow{display:block;margin-bottom:.75rem;color:#9b5f3d;font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.bp-about-page,.bp-reformer-page{color:#39271f;background:#fffdf9}.bp-about-page :where(h1,h2),.bp-reformer-page :where(h1,h2){margin:0;font-family:var(--bp-font-heading);font-weight:500;letter-spacing:-.035em;line-height:1.08}.bp-about-page p,.bp-reformer-page p{color:#765846;font-size:1rem;line-height:1.75}
.bp-about-page__hero,.bp-reformer-hero{padding:clamp(3.5rem,6vw,6rem) 0;background:radial-gradient(circle at 5% 85%,rgba(190,139,105,.15),transparent 28rem),#f8eee5}.bp-about-page__hero-grid,.bp-reformer-hero__grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(24rem,1.12fr);gap:clamp(3rem,7vw,7rem);align-items:center}.bp-about-page__hero h1,.bp-reformer-hero h1{max-width:13ch;font-size:clamp(3rem,5.2vw,5.25rem)}.bp-about-page__hero p,.bp-reformer-hero p{max-width:42rem;margin:1.35rem 0 0}.bp-about-page__hero figure,.bp-reformer-hero figure{position:relative;height:clamp(27rem,44vw,40rem);margin:0;overflow:hidden;border-radius:48% 48% 1.75rem 1.75rem;box-shadow:0 1.7rem 4rem rgba(74,43,27,.13)}.bp-about-page img,.bp-reformer-page img{display:block;width:100%;height:100%;object-fit:cover}
.bp-about-page__story{padding:clamp(4rem,7vw,7rem) 0}.bp-about-page__story-grid{display:grid;grid-template-columns:minmax(22rem,.9fr) minmax(0,1.1fr);gap:clamp(3rem,7vw,7rem);align-items:center}.bp-about-page__story figure{height:clamp(25rem,40vw,36rem);margin:0;overflow:hidden;border-radius:1.5rem 7rem 1.5rem 1.5rem}.bp-about-page__story h2,.bp-about-page__values h2,.bp-reformer-heading h2,.bp-reformer-warranty h2,.bp-reformer-offer h2{font-size:clamp(2.35rem,3.8vw,4rem)}.bp-about-page__copy{margin-top:1.25rem}.bp-about-page__copy p{margin:.8rem 0}
.bp-about-page__values{padding:clamp(4rem,7vw,6.5rem) 0;background:#f6eadf}.bp-about-page__values header{max-width:47rem;margin-bottom:2.25rem}.bp-about-page__value-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(126,82,56,.14);border-radius:1.5rem;background:#fffdf9;overflow:hidden;box-shadow:0 1.2rem 3rem rgba(74,43,27,.06)}.bp-about-page__value-grid article{min-height:15rem;padding:2rem;border-right:1px solid rgba(126,82,56,.14)}.bp-about-page__value-grid article:last-child{border:0}.bp-about-page__value-grid article>span,.bp-reformer-feature-grid article>span i{display:grid;width:3rem;height:3rem;place-items:center;border-radius:50%;color:#a56846;background:#f6eadf}.bp-about-page__value-grid h3{margin:2rem 0 .65rem;font-size:1.05rem}.bp-about-page__value-grid p{margin:0;font-size:.9rem}
.bp-about-page__cta{padding:clamp(4rem,7vw,7rem) 0}.bp-about-page__cta>.container{display:flex;gap:2rem;padding:clamp(2.5rem,5vw,4.5rem);align-items:center;justify-content:space-between;border-radius:1.75rem;color:#fff;background:linear-gradient(125deg,#4a3027,#936044);box-shadow:0 1.5rem 4rem rgba(74,43,27,.15)}.bp-about-page__cta h2{color:#fff;font-size:clamp(2rem,3.2vw,3.1rem)}.bp-about-page__cta p{margin:.8rem 0 0;color:rgba(255,255,255,.75)}
.bp-about-page__actions,.bp-reformer-actions{display:flex;gap:.75rem;flex:0 0 auto}.bp-about-page__actions a,.bp-reformer-actions a,.bp-reformer-offer a{display:inline-flex;gap:.8rem;padding:.9rem 1.25rem;align-items:center;border:1px solid #fff;border-radius:999px;color:#6d432f;background:#fff;font-size:.85rem;font-weight:600;text-decoration:none;transition:.25s ease}.bp-about-page__actions a:hover,.bp-reformer-actions a:hover,.bp-reformer-offer a:hover{text-decoration:none;transform:translateY(-2px)}.bp-about-page__actions .is-outline{color:#fff;background:transparent}
.bp-reformer-actions{margin-top:1.75rem}.bp-reformer-actions a{border-color:#9b6243;color:#fff;background:#9b6243}.bp-reformer-actions .is-outline{color:#8a573b;background:transparent}.bp-reformer-hero figcaption{position:absolute;right:1.25rem;bottom:1.25rem;display:flex;gap:.7rem;padding:.8rem 1rem;align-items:center;border-radius:1rem;color:#fff;background:rgba(62,40,31,.72);backdrop-filter:blur(12px);font-size:.76rem}.bp-reformer-hero__facts{display:flex;gap:1.75rem;margin-top:2.25rem}.bp-reformer-hero__facts span{display:grid}.bp-reformer-hero__facts strong{font-family:var(--bp-font-heading);font-size:1.45rem;font-weight:500}.bp-reformer-hero__facts small{color:#93694f}
.bp-reformer-section{padding:clamp(4rem,7vw,7rem) 0}.bp-reformer-heading{max-width:53rem;margin:0 auto 2.75rem;text-align:center}.bp-reformer-heading.is-left{max-width:58rem;margin-left:0;text-align:left}.bp-reformer-heading p{margin:1rem 0 0}.bp-reformer-feature-grid{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid rgba(126,82,56,.14);border-radius:1.5rem;background:#fff;overflow:hidden;box-shadow:0 1.2rem 3rem rgba(74,43,27,.06)}.bp-reformer-feature-grid article{min-height:17rem;padding:1.8rem;border-right:1px solid rgba(126,82,56,.13)}.bp-reformer-feature-grid article:last-child{border:0}.bp-reformer-feature-grid article>span{display:flex;align-items:flex-start;justify-content:space-between;color:#a56846}.bp-reformer-feature-grid article>span small{font-family:var(--bp-font-heading);font-size:1.2rem}.bp-reformer-feature-grid h3{margin:3rem 0 .65rem;font-size:1.05rem}.bp-reformer-feature-grid p{margin:0;font-size:.88rem}
.bp-reformer-gallery{background:#35241d}.bp-reformer-gallery .bp-page-eyebrow{color:#e3a87f}.bp-reformer-gallery h2{color:#fff}.bp-reformer-gallery__grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:12rem;gap:1rem}.bp-reformer-gallery__grid figure{margin:0;overflow:hidden;border-radius:1.25rem}.bp-reformer-gallery__grid figure:nth-child(1){grid-column:span 5;grid-row:span 2}.bp-reformer-gallery__grid figure:nth-child(2){grid-column:span 3;grid-row:span 2}.bp-reformer-gallery__grid figure:nth-child(3),.bp-reformer-gallery__grid figure:nth-child(4){grid-column:span 4}.bp-reformer-gallery__grid img{transition:transform .6s ease}.bp-reformer-gallery__grid figure:hover img{transform:scale(1.035)}
.bp-reformer-warranty__grid{display:grid;grid-template-columns:minmax(22rem,.85fr) minmax(0,1.15fr);gap:clamp(3rem,7vw,7rem);align-items:center}.bp-reformer-warranty figure{height:clamp(28rem,43vw,39rem);margin:0;overflow:hidden;border-radius:1.5rem 7rem 1.5rem 1.5rem}.bp-reformer-warranty ul,.bp-reformer-offer ul{display:grid;gap:.75rem;margin:1.75rem 0 0;padding:0;list-style:none}.bp-reformer-warranty li,.bp-reformer-offer li{display:flex;gap:.85rem;align-items:flex-start;color:#684b3b;line-height:1.6}.bp-reformer-warranty li i{display:grid;width:2rem;height:2rem;flex:0 0 auto;place-items:center;border-radius:50%;color:#9b6243;background:#f6e9de}
.bp-reformer-offer{background:#f5e7dc}.bp-reformer-offer__panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(24rem,.8fr);padding:0;overflow:hidden;border-radius:1.75rem;color:#fff;background:#784b36;box-shadow:0 1.7rem 4rem rgba(74,43,27,.14)}.bp-reformer-offer__panel>div{padding:clamp(2.5rem,5vw,4.5rem)}.bp-reformer-offer h2{max-width:14ch;color:#fff}.bp-reformer-offer li{color:rgba(255,255,255,.82)}.bp-reformer-offer li i{color:#efb58d}.bp-reformer-offer a{margin-top:1.75rem}.bp-reformer-offer figure{min-height:31rem;margin:0}
@media(max-width:1050px){.bp-about-page__value-grid,.bp-reformer-feature-grid{grid-template-columns:repeat(2,1fr)}.bp-about-page__value-grid article:nth-child(2),.bp-reformer-feature-grid article:nth-child(even){border-right:0}}
@media(max-width:800px){.bp-about-page__hero-grid,.bp-about-page__story-grid,.bp-reformer-hero__grid,.bp-reformer-warranty__grid,.bp-reformer-offer__panel{grid-template-columns:1fr}.bp-about-page__hero figure,.bp-reformer-hero figure{height:min(115vw,36rem)}.bp-about-page__story figure{height:min(90vw,30rem)}.bp-about-page__cta>.container{align-items:flex-start;flex-direction:column}.bp-reformer-gallery__grid{grid-template-columns:1fr;grid-auto-rows:16rem}.bp-reformer-gallery__grid figure:nth-child(n){grid-column:auto;grid-row:auto}.bp-reformer-offer figure{min-height:24rem;order:-1}}
@media(max-width:560px){.bp-about-page__value-grid,.bp-reformer-feature-grid{grid-template-columns:1fr}.bp-about-page__value-grid article,.bp-reformer-feature-grid article{min-height:auto;border-right:0;border-bottom:1px solid rgba(126,82,56,.13)}.bp-about-page__actions,.bp-reformer-actions,.bp-reformer-hero__facts{align-items:stretch;flex-direction:column}.bp-about-page__actions a,.bp-reformer-actions a{justify-content:center}}

/* About page compact rhythm: each boundary owns one spacing value only. */
.bp-about-page__hero {
	padding-block: clamp(2.75rem, 4.5vw, 4.5rem);
}
.bp-about-page__hero-grid {
	gap: clamp(2.5rem, 5vw, 5rem);
}
.bp-about-page__hero h1 {
	font-size: clamp(2.8rem, 4.5vw, 4.6rem);
}
.bp-about-page__hero figure {
	height: clamp(23rem, 36vw, 33rem);
}
.bp-about-page__story {
	padding-block: clamp(3.25rem, 5vw, 5rem);
	background:
		radial-gradient(circle at 92% 16%, rgba(194, 147, 113, .18), transparent 24rem),
		linear-gradient(135deg, #fbf4ed 0%, #f3e5da 100%);
}
.bp-about-page__story-grid {
	gap: clamp(2.5rem, 5vw, 5rem);
}
.bp-about-page__story figure {
	height: clamp(22rem, 34vw, 30rem);
}
.bp-about-page__story h2,
.bp-about-page__values h2 {
	font-size: clamp(2.15rem, 3.25vw, 3.35rem);
}
.bp-about-page__story-grid > div {
	padding: clamp(1.75rem, 3vw, 3rem);
	border: 1px solid rgba(126, 82, 56, .12);
	border-radius: 1.5rem;
	background: rgba(255, 253, 249, .82);
	box-shadow: 0 1rem 2.75rem rgba(74, 43, 27, .055);
}
.bp-about-page__values {
	padding-block: clamp(3.25rem, 5vw, 5rem);
	background:
		radial-gradient(circle at 8% 92%, rgba(173, 112, 76, .2), transparent 23rem),
		radial-gradient(circle at 94% 4%, rgba(255, 255, 255, .72), transparent 20rem),
		#f0dfd1;
}
.bp-about-page__values header {
	margin-bottom: clamp(1.5rem, 2.5vw, 2.25rem);
}
.bp-about-page__value-grid article {
	min-height: 12.5rem;
	padding: clamp(1.5rem, 2.5vw, 2rem);
}
.bp-about-page__value-grid h3 {
	margin-top: 1.4rem;
}
.bp-about-page__cta {
	padding-block: clamp(3.25rem, 5vw, 5rem);
	background:
		radial-gradient(circle at 86% 50%, rgba(196, 148, 113, .22), transparent 22rem),
		linear-gradient(180deg, #f8efe7 0%, #f1e2d6 100%);
}
.bp-about-page__cta > .container {
	padding: clamp(2.25rem, 4vw, 3.5rem);
}
@media (max-width: 800px) {
	.bp-about-page__hero,
	.bp-about-page__story,
	.bp-about-page__values,
	.bp-about-page__cta {
		padding-block: 3rem;
	}
	.bp-about-page__hero figure {
		height: min(95vw, 30rem);
	}
}

/* Process cards must be independent; the old shared panel visually covered gaps. */
.bp-class-detail .bp-class-detail__process-grid {
	overflow: visible;
	gap: clamp(.9rem, 1.5vw, 1.35rem);
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.bp-class-detail .bp-class-detail__process-grid article,
.bp-class-detail .bp-class-detail__process-grid article + article {
	position: relative;
	z-index: 1;
	overflow: hidden;
	border: 1px solid rgba(149,97,68,.15);
	border-radius: 1.15rem;
	background: linear-gradient(145deg,#fffdf9,#fbf3eb);
	box-shadow: 0 .9rem 2.2rem rgba(80,49,32,.055);
}
@media (max-width: 767px) {
	.bp-class-detail .bp-class-detail__process-grid {
		gap: .85rem;
	}
}

/* Blend the CTA photo into the warm panel instead of a hard vertical split. */
.bp-class-detail .bp-class-detail__cta-inner > figure {
	isolation: isolate;
}
.bp-class-detail .bp-class-detail__cta-image {
	filter: saturate(.88) contrast(.96) brightness(.94);
}
.bp-class-detail .bp-class-detail__cta-inner > figure::after {
	z-index: 1;
	inset: 0;
	background: linear-gradient(90deg,#684232 0%,rgba(104,66,50,.92) 5%,rgba(104,66,50,.55) 18%,rgba(104,66,50,.16) 36%,transparent 58%);
}
@media (max-width: 900px) {
	.bp-class-detail .bp-class-detail__cta-inner > figure::after {
		background: linear-gradient(180deg,transparent 48%,rgba(104,66,50,.42) 76%,#684232 100%);
	}
}

/* CTA image joins — let the panel colour show through the photograph itself.
 * This avoids a visible seam and keeps one clean outline around the component. */
.bp-home-cta__inner {
	border: 1px solid rgba(128, 84, 58, .12);
	background: #dec3af;
}
.bp-home-cta__inner::before {
	display: none;
}
.bp-home-cta__visual {
	width: 54%;
}
.bp-home-cta__image {
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .16) 9%, #000 38%);
	mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .16) 9%, #000 38%);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
.bp-home-cta__visual::after {
	display: none;
}

.bp-class-detail .bp-class-detail__cta-inner > figure::after {
	display: none;
}
.bp-class-detail .bp-class-detail__cta-image {
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .18) 10%, #000 42%);
	mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .18) 10%, #000 42%);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
@media (max-width: 900px) {
	.bp-home-cta__visual {
		width: 100%;
	}
	.bp-home-cta__image,
	.bp-class-detail .bp-class-detail__cta-image {
		-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 62%, rgba(0, 0, 0, .22) 86%, transparent 100%);
		mask-image: linear-gradient(180deg, #000 0%, #000 62%, rgba(0, 0, 0, .22) 86%, transparent 100%);
	}
}

/* Homepage locations: switch before the list column becomes too narrow. */
@media (max-width: 1180px) {
	.bp-home-locations .bp-location-directory {
		grid-template-columns: 1fr;
	}
	.bp-home-locations .bp-location-directory__intro {
		min-height: 0;
	}
	.bp-home-locations .bp-location-directory__all {
		margin-top: 1.5rem;
	}
	.bp-home-locations .bp-location-list .bp-location-card__content {
		grid-template-columns: minmax(0,1fr) auto;
	}
}
@media (max-width: 820px) {
	.bp-home-locations .bp-location-card__meta,
	.bp-home-locations .bp-location-list .bp-location-card__actions {
		grid-column: 1 / -1;
	}
	.bp-home-locations .bp-location-card__meta {
		grid-row: 2;
		flex-wrap: wrap;
	}
	.bp-home-locations .bp-location-card__meta > span {
		flex: 0 0 auto;
	}
	.bp-home-locations .bp-location-card__meta small {
		white-space: nowrap;
	}
	.bp-home-locations .bp-location-list .bp-location-card__actions {
		grid-row: 3;
	}
}

/* One news item is content, not a carousel: remove slider gutters and dead space. */
.bp-home-news__stage.is-single {
	padding-inline: 0;
}
.bp-home-news__stage.is-single .bp-home-news__slider {
	max-width: 52rem;
	padding: .25rem 0 0;
	overflow: visible;
}
.bp-home-news__stage.is-single .swiper-wrapper {
	display: block;
	transform: none !important;
}
.bp-home-news__stage.is-single .bp-news-card {
	display: grid;
	width: 100% !important;
	grid-template-columns: minmax(16rem,.9fr) minmax(0,1.1fr);
}
.bp-home-news__stage.is-single .bp-news-card__media {
	height: 100%;
	min-height: 20rem;
}
.bp-home-news__stage.is-single .bp-news-card__content {
	min-height: 20rem;
}
.bp-home-news__stage.is-single :where(.bp-home-news__nav,.bp-home-news__pagination) {
	display: none;
}
@media (max-width: 700px) {
	.bp-home-news__stage.is-single .bp-news-card {
		grid-template-columns: 1fr;
	}
	.bp-home-news__stage.is-single .bp-news-card__media {
		height: 13rem;
		min-height: 0;
	}
	.bp-home-news__stage.is-single .bp-news-card__content {
		min-height: 15rem;
	}
}

/* News controls align to the full container, pagination stays truly centred. */
.bp-home-news__stage:not(.is-single) .bp-home-news__nav--prev {
	left: -1.5rem;
}
.bp-home-news__stage:not(.is-single) .bp-home-news__nav--next {
	right: -1.5rem;
}
.bp-home-news__stage:not(.is-single) .bp-home-news__pagination {
	right: 0 !important;
	left: 0 !important;
	width: 100% !important;
	transform: none !important;
	text-align: center;
}
.bp-home-news__stage:not(.is-single) .bp-home-news__pagination .swiper-pagination-bullet {
	width: .46rem;
	height: .46rem;
	margin-inline: .3rem;
	border-radius: 999px;
	background: rgba(111,73,51,.28);
	opacity: 1;
	transition: width .3s ease,background-color .3s ease,transform .3s ease;
}
.bp-home-news__stage:not(.is-single) .bp-home-news__pagination .swiper-pagination-bullet-active {
	width: 1.65rem;
	background: var(--bp-color-brand);
	transform: none;
}

/* Keep the news rail aligned to the shared site container. */
.bp-home-news__stage:not(.is-single) {
	width: 100%;
	padding-inline: 0;
}
.bp-home-news__stage:not(.is-single) .bp-home-news__slider {
	padding-inline: 0;
}
.bp-home-news__stage:not(.is-single) .bp-home-news__nav {
	top: calc(50% - 1.35rem);
	width: 3rem;
	height: 3rem;
	box-shadow: 0 .9rem 2.25rem rgba(77,51,36,.16);
}
@media (max-width: 767px) {
	.bp-home-news__stage:not(.is-single) {
		padding-inline: 0;
	}
	.bp-home-news__stage:not(.is-single) .bp-home-news__nav {
		display: none;
	}
}

/* Classes use the same full-container rail as the homepage news slider. */
.bp-home-classes__stage {
	width: 100%;
	padding-inline: 0;
}

.bp-home-classes__slider {
	padding: .5rem 0 3.65rem;
}

.bp-home-classes__nav--prev {
	left: -1.5rem;
}

.bp-home-classes__nav--next {
	right: -1.5rem;
}

.bp-home-classes__pagination {
	bottom: .65rem !important;
	right: 0 !important;
	left: 0 !important;
	width: 100% !important;
	transform: none !important;
	text-align: center;
}

.bp-home-classes__pagination .swiper-pagination-bullet {
	width: .46rem;
	height: .46rem;
	padding: 0;
	margin-inline: .3rem;
	border: 0;
	border-radius: 999px;
	background: rgba(111, 73, 51, .28);
	opacity: 1;
	transition: width .3s ease, background-color .3s ease;
}

.bp-home-classes__pagination .swiper-pagination-bullet-active {
	width: 1.65rem;
	background: var(--bp-color-brand);
}

@media (max-width: 767px) {
	.bp-home-classes__nav {
		display: none;
	}
}

/* Final Reformer overrides live after the page's original component rules. */
.bp-reformer-page {
	--bp-reformer-space: clamp(3rem, 4.6vw, 4.75rem);
}
.bp-reformer-page .bp-reformer-hero {
	padding-block: clamp(2.75rem, 4.2vw, 4.25rem);
}
.bp-reformer-page .bp-reformer-hero__grid {
	grid-template-columns: minmax(31rem, 1.05fr) minmax(25rem, .95fr);
	gap: clamp(2.5rem, 5vw, 5rem);
}
.bp-reformer-page .bp-reformer-hero h1 {
	max-width: 16ch;
	font-size: clamp(3rem, 4vw, 4.4rem);
	line-height: 1.04;
	letter-spacing: -.045em;
}
.bp-reformer-page .bp-reformer-hero figure {
	height: clamp(25rem, 37vw, 34rem);
}
.bp-reformer-page .bp-reformer-section {
	padding-block: var(--bp-reformer-space);
}
.bp-reformer-page .bp-reformer-heading {
	margin-bottom: clamp(1.75rem, 2.7vw, 2.5rem);
}
.bp-reformer-page :where(.bp-reformer-heading h2,.bp-reformer-warranty h2,.bp-reformer-offer h2) {
	font-size: clamp(2.15rem, 3.25vw, 3.45rem);
	line-height: 1.08;
}
.bp-reformer-page .bp-reformer-intro {
	background: radial-gradient(circle at 92% 8%, rgba(199,150,116,.12), transparent 25rem), #fffaf5;
}
.bp-reformer-page .bp-reformer-feature-grid article {
	min-height: 13.5rem;
	padding: 1.5rem;
}
.bp-reformer-page .bp-reformer-feature-grid h3 {
	margin-top: 1.8rem;
}
.bp-reformer-page .bp-reformer-gallery__grid {
	grid-auto-rows: 10.5rem;
}
.bp-reformer-page .bp-reformer-gallery__grid figure:nth-child(5) {
	grid-column: span 12;
	grid-row: span 1;
}
.bp-reformer-page .bp-reformer-gallery__grid a {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	color: #fff;
	overflow: hidden;
	text-decoration: none;
}
.bp-reformer-page .bp-reformer-gallery__grid a > span {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	display: grid;
	width: 2.65rem;
	height: 2.65rem;
	place-items: center;
	border: 1px solid rgba(255,255,255,.48);
	border-radius: 50%;
	background: rgba(48,31,24,.56);
	backdrop-filter: blur(8px);
	transition: transform .25s ease, background-color .25s ease;
}
.bp-reformer-page .bp-reformer-gallery__grid a:hover > span {
	transform: scale(1.08);
	background: rgba(155,98,67,.9);
}
.bp-reformer-page .bp-reformer-warranty {
	background: radial-gradient(circle at 8% 80%, rgba(196,141,104,.13), transparent 26rem), #fffdf9;
}
.bp-reformer-page .bp-reformer-warranty figure {
	height: clamp(25rem, 36vw, 33rem);
}
.bp-reformer-page .bp-reformer-offer figure {
	min-height: 26rem;
}
.bp-reformer-page :where(.bp-reformer-actions button,.bp-reformer-offer button) {
	display: inline-flex;
	gap: .8rem;
	padding: .9rem 1.25rem;
	align-items: center;
	border: 1px solid #9b6243;
	border-radius: 999px;
	color: #fff;
	background: #9b6243;
	font: inherit;
	font-size: .85rem;
	font-weight: 600;
	cursor: pointer;
	transition: transform .25s ease, background-color .25s ease;
}
.bp-reformer-page :where(.bp-reformer-actions button,.bp-reformer-offer button):hover {
	transform: translateY(-2px);
	background: #7f4d35;
}
.bp-reformer-page .bp-reformer-offer button {
	margin-top: 1.75rem;
	border-color: #fff;
	color: #6d432f;
	background: #fff;
}
@media (max-width: 1050px) {
	.bp-reformer-page .bp-reformer-hero__grid {
		grid-template-columns: minmax(0, 1fr) minmax(22rem, .82fr);
		gap: 2.5rem;
	}
	.bp-reformer-page .bp-reformer-hero h1 {
		max-width: 15ch;
		font-size: clamp(2.8rem, 5vw, 3.8rem);
	}
}
@media (max-width: 800px) {
	.bp-reformer-page .bp-reformer-hero__grid {
		grid-template-columns: 1fr;
	}
	.bp-reformer-page .bp-reformer-gallery__grid figure:nth-child(5) {
		grid-column: auto;
		grid-row: auto;
	}
}
@media (max-width: 560px) {
	.bp-reformer-page .bp-reformer-hero h1 {
		max-width: none;
		font-size: clamp(2.55rem, 13vw, 3.35rem);
	}
	.bp-reformer-page .bp-reformer-actions button {
		justify-content: center;
	}
}

/* Compact caption over the Reformer hero photo. */
.bp-reformer-page .bp-reformer-hero figcaption {
	right: 1rem;
	bottom: 1rem;
	gap: .55rem;
	max-width: max-content;
	padding: .65rem .8rem;
	border: 1px solid rgba(255,255,255,.28);
	border-radius: .8rem;
	background: rgba(55,38,31,.64);
	box-shadow: 0 .65rem 1.5rem rgba(43,28,21,.16);
	font-size: .72rem;
	line-height: 1.25;
}
.bp-reformer-page .bp-reformer-hero figcaption > i {
	font-size: .8rem;
}
.bp-reformer-page .bp-reformer-hero figcaption > span {
	display: grid;
	gap: .12rem;
}
.bp-reformer-page .bp-reformer-hero figcaption strong {
	font-size: .76rem;
	font-weight: 600;
}
.bp-reformer-page .bp-reformer-hero figcaption small {
	color: rgba(255,255,255,.78);
	font-size: .68rem;
}

/* Keep the image badges consistent across the training and Reformer pages. */
.bp-training-hero__badge,
.bp-reformer-page .bp-reformer-hero figcaption {
	gap: .7rem;
	min-width: 12.5rem;
	padding: .72rem .9rem .72rem .72rem;
	border: 1px solid rgba(255,255,255,.34);
	border-radius: .9rem;
	color: #fff;
	background: linear-gradient(135deg, rgba(86,52,39,.9), rgba(126,82,61,.78));
	box-shadow: 0 .8rem 2rem rgba(43,27,20,.2), inset 0 1px 0 rgba(255,255,255,.12);
	-webkit-backdrop-filter: blur(12px) saturate(120%);
	backdrop-filter: blur(12px) saturate(120%);
}
.bp-training-hero__badge > i,
.bp-reformer-page .bp-reformer-hero figcaption > i {
	display: grid;
	width: 2.25rem;
	height: 2.25rem;
	flex: 0 0 2.25rem;
	place-items: center;
	border: 1px solid rgba(255,255,255,.3);
	border-radius: 50%;
	color: #774b37;
	background: #fff8f1;
	box-shadow: 0 .35rem .9rem rgba(40,25,18,.14);
	font-size: .88rem;
}
.bp-training-hero__badge > span,
.bp-reformer-page .bp-reformer-hero figcaption > span {
	display: grid;
	gap: .14rem;
	min-width: 0;
	line-height: 1.25;
}
.bp-training-hero__badge,
.bp-training-hero__badge strong,
.bp-reformer-page .bp-reformer-hero figcaption strong {
	font-size: .78rem;
	font-weight: 600;
}
.bp-training-hero__badge small,
.bp-reformer-page .bp-reformer-hero figcaption small {
	color: rgba(255,255,255,.76);
	font-size: .7rem;
	font-weight: 400;
}

@media (max-width: 560px) {
	.bp-training-hero__badge,
	.bp-reformer-page .bp-reformer-hero figcaption {
		right: .75rem;
		bottom: .75rem;
		min-width: 0;
		max-width: calc(100% - 1.5rem);
		padding: .58rem .72rem .58rem .58rem;
		border-radius: .78rem;
	}
	.bp-training-hero__badge > i,
	.bp-reformer-page .bp-reformer-hero figcaption > i {
		width: 1.9rem;
		height: 1.9rem;
		flex-basis: 1.9rem;
		font-size: .76rem;
	}
}

/* The page sections already own their bottom rhythm; avoid adding a second,
 * body-coloured gap before the parent-theme footer. */
body .site-footer.site-footer--spacing-normal,
body .site-footer.site-footer--spacing-compact {
	margin-top: 0;
}

/* Full brand-colour header so the supplied light-on-brown logo blends in. */
.site-header {
	--bp-header-brand-bg: #ad7555;
	isolation: isolate;
}
.site-header::after {
	display: none;
}
.site-header .site-branding {
	position: relative;
	z-index: 0;
	align-self: stretch;
	padding-right: clamp(1rem, 2vw, 1.75rem);
}
.site-header .site-branding::before {
	display: none;
}
.site-header .site-branding::after {
	display: none;
}
.site-header .custom-logo-link {
	display: flex;
	height: 100%;
	align-items: center;
}
.site-header .custom-logo {
	filter: saturate(.92) contrast(1.02);
}
.site-header,
.site-header.scrolled,
.site-header.is-sticky-visible,
.site-header.is-sticky-hidden {
	--wt-header-bg-scrolled: rgba(173,117,85,.97);
	border-bottom-color: rgba(255,255,255,.18);
	background: var(--bp-header-brand-bg);
}
.site-header .nav-menu > li > a,
.site-header .nav-menu > li.current-menu-item > a,
.site-header .nav-menu > li.current_page_item > a,
.site-header .nav-menu > li > a[aria-current="page"] {
	color: rgba(255,255,255,.9);
}
.site-header .nav-menu > li > a:hover,
.site-header .nav-menu > li.current-menu-item > a,
.site-header .nav-menu > li.current_page_item > a,
.site-header .nav-menu > li > a[aria-current="page"] {
	color: #fff;
}
.site-header .nav-menu > li.current-menu-item > a,
.site-header .nav-menu > li.current_page_item > a,
.site-header .nav-menu > li > a[aria-current="page"] {
	font-weight: 700;
}
.site-header .header-search-toggle {
	border-color: rgba(255,255,255,.36);
	color: #fff;
	background: rgba(255,255,255,.08);
}
.site-header .header-search-toggle:hover {
	border-color: rgba(255,255,255,.7);
	color: #fff;
	background: rgba(255,255,255,.15);
}
.site-header .header-cta {
	border-color: #fffaf5;
	color: #75472f;
	background: #fffaf5;
	box-shadow: 0 .6rem 1.5rem rgba(75,43,28,.15);
}
.site-header .header-cta:hover {
	border-color: #fff;
	color: #673b27;
	background: #fff;
}
.site-header .mobile-header-actions {
	border-left-color: rgba(255,255,255,.25);
}
@media (max-width: 1024px) {
	.site-header,
	.site-header.scrolled,
	.site-header.is-sticky-visible {
		background: var(--bp-header-brand-bg);
	}
	.site-header .site-branding {
		padding-right: .75rem;
	}
	.site-header :where(.header-search-toggle,.nav-toggle) {
		border-color: rgba(255,255,255,.32);
		color: #fff;
	}
	.site-header .nav-toggle__bar {
		background: #fff;
	}
}

/* Homepage needs a quieter header so it does not compete with the hero photo.
 * Keep the brown identity as a deliberate logo tab and a fine accent line. */
:where(body.home,body.page-template-front-page) .site-header,
:where(body.home,body.page-template-front-page) .site-header.scrolled,
:where(body.home,body.page-template-front-page) .site-header.is-sticky-visible,
:where(body.home,body.page-template-front-page) .site-header.is-sticky-hidden {
	--wt-header-bg-scrolled: rgba(251,247,241,.96);
	border-top: 3px solid var(--bp-header-brand-bg);
	border-bottom-color: rgba(132,88,61,.14);
	background: rgba(251,247,241,.95);
	backdrop-filter: blur(16px);
}
:where(body.home,body.page-template-front-page) .site-header .site-branding {
	align-self: stretch;
	padding: 0 1rem;
	border-radius: 0 0 .8rem .8rem;
	background: var(--bp-header-brand-bg);
	box-shadow: 0 .45rem 1.1rem rgba(91,57,39,.12);
}
:where(body.home,body.page-template-front-page) .site-header .nav-menu > li > a {
	color: #33241d;
}
:where(body.home,body.page-template-front-page) .site-header .nav-menu > li > a:hover,
:where(body.home,body.page-template-front-page) .site-header .nav-menu > li.current-menu-item > a,
:where(body.home,body.page-template-front-page) .site-header .nav-menu > li.current_page_item > a,
:where(body.home,body.page-template-front-page) .site-header .nav-menu > li > a[aria-current="page"] {
	color: #8f583a;
}
:where(body.home,body.page-template-front-page) .site-header .header-search-toggle {
	border-color: rgba(132,88,61,.2);
	color: #33241d;
	background: rgba(255,255,255,.42);
}
:where(body.home,body.page-template-front-page) .site-header .header-search-toggle:hover {
	border-color: rgba(132,88,61,.42);
	color: #8f583a;
	background: #fff;
}
:where(body.home,body.page-template-front-page) .site-header .header-cta {
	border-color: var(--bp-header-brand-bg);
	color: #fff;
	background: var(--bp-header-brand-bg);
}
@media (max-width: 1024px) {
	:where(body.home,body.page-template-front-page) .site-header :where(.header-search-toggle,.nav-toggle) {
		border-color: rgba(132,88,61,.24);
		color: #33241d;
	}
	:where(body.home,body.page-template-front-page) .site-header .nav-toggle__bar {
		background: #33241d;
	}
}

/* Homepage responsive QA — keep the composition readable from laptop to phone. */
@media (max-width: 1180px) and (min-width: 768px) {
	.bp-home-hero {
		min-height: clamp(39rem, 66vw, 45rem);
	}
	.bp-home-hero__main {
		padding-top: 3rem;
		padding-bottom: 9.5rem;
	}
	.bp-home-hero__content {
		width: 47%;
		min-width: 25rem;
	}
	.bp-home-hero__title {
		font-size: clamp(2.65rem, 5vw, 3.55rem);
	}
	.bp-home-hero__description {
		max-width: 27rem;
	}
	.bp-home-cta__content {
		width: 62%;
		padding: clamp(2.25rem, 4vw, 3.5rem);
	}
	.bp-home-cta h2 {
		font-size: clamp(2.15rem, 4.2vw, 3.15rem);
	}
}

@media (max-width: 900px) {
	.bp-home-cta__inner {
		display: grid;
		min-height: 0;
		grid-template-columns: 1fr;
	}
	.bp-home-cta__content {
		width: 100%;
		min-height: 21rem;
		padding: clamp(2rem, 6vw, 3.5rem);
	}
	.bp-home-cta__visual {
		position: relative;
		width: 100%;
		height: clamp(15rem, 47vw, 24rem);
	}
	.bp-home-cta__image {
		-webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.22) 12%, #000 38%);
		mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.22) 12%, #000 38%);
	}
	.bp-feedback-slider {
		padding-block: 2.25rem 2.75rem;
	}
}

@media (max-width: 767px) {
	:where(body.home,body.page-template-front-page) .site-header,
	:where(body.home,body.page-template-front-page) .site-header.scrolled,
	:where(body.home,body.page-template-front-page) .site-header.is-sticky-visible {
		border-top-width: 2px;
	}
	:where(body.home,body.page-template-front-page) .site-header .site-branding {
		padding: .35rem .65rem;
		border-radius: 0 0 .6rem .6rem;
		box-shadow: 0 .35rem .8rem rgba(91,57,39,.1);
	}
	:where(body.home,body.page-template-front-page) .site-header .custom-logo {
		max-height: 3.25rem;
	}
	.bp-home-hero__main {
		min-height: 42rem;
		padding-top: 15.5rem;
		/* The benefits panel is absolute; reserve its real height plus the CTA
		 * gap so the button never slips underneath it on narrow screens. */
		padding-bottom: 15.25rem;
	}
	.bp-home-hero__content {
		padding-inline: .25rem;
	}
	.bp-home-hero__eyebrow {
		margin-bottom: .65rem;
		font-size: 1rem;
	}
	.bp-home-hero__title {
		max-width: 11ch;
		font-size: clamp(2.35rem, 11vw, 3.05rem);
		line-height: 1.02;
	}
	.bp-home-hero__description {
		max-width: 31rem;
		margin-top: 1rem;
		font-size: .9rem;
		line-height: 1.65;
	}
	.bp-home-hero__cta {
		margin-top: 1rem;
	}
	.bp-home-hero__benefits {
		gap: .25rem 0;
		padding: .65rem .35rem;
		border-radius: 1rem;
	}
	.bp-home-hero__benefit {
		gap: .3rem;
		padding: .45rem .3rem;
	}
	.bp-home-hero__benefit-icon {
		width: 2.75rem;
		height: 2.75rem;
		flex-basis: 2.75rem;
		padding: .38rem;
	}
	.bp-home-hero__benefit p {
		font-size: .72rem;
		line-height: 1.4;
	}
	.bp-section-heading__title-row {
		gap: .6rem;
	}
	.bp-section-heading h2 {
		font-size: clamp(1.65rem, 8vw, 2rem);
		line-height: 1.12;
	}
	.bp-service-card {
		min-height: 0;
		border-radius: 1.15rem;
	}
	.bp-service-card__content {
		padding: 1.65rem 1.35rem;
	}
	.bp-service-card__media,
	.bp-service-card__image,
	.bp-service-card__placeholder {
		min-height: 15rem;
	}
	.bp-location-directory {
		border-radius: 1rem;
	}
	.bp-location-directory__intro {
		padding: 2rem 1.35rem;
	}
	.bp-location-directory__intro h2 {
		max-width: none;
		font-size: 2.15rem;
	}
	.bp-location-list .bp-location-card {
		min-height: 0;
		padding-block: .35rem;
	}
	.bp-location-list .bp-location-card__content {
		gap: .7rem;
		padding-block: 1rem;
	}
	.bp-feedback-card {
		transform: scale(.9);
	}
	.bp-feedback-card.swiper-slide-active {
		transform: scale(1);
	}
	.bp-home-news__slider {
		padding-bottom: 2.35rem;
	}
	.bp-news-card__content {
		min-height: 14rem;
		padding: 1.15rem;
	}
	.bp-home-cta__inner {
		border-radius: 1.2rem;
	}
	.bp-home-cta__content {
		min-height: 0;
		padding: 2rem 1.35rem;
	}
	.bp-home-cta h2 {
		font-size: clamp(2rem, 9vw, 2.65rem);
	}
}

@media (max-width: 420px) {
	.bp-home-hero__main {
		min-height: 43rem;
		padding-top: 14rem;
	}
	.bp-home-hero__benefit span {
		display: none;
	}
	.bp-home-hero__benefit strong {
		font-size: .7rem;
	}
	.bp-location-list .bp-location-card {
		grid-template-columns: 5.25rem minmax(0,1fr);
	}
	.bp-location-list .bp-location-card__media {
		width: 4.65rem;
		height: 5.75rem;
	}
	.bp-location-card__meta {
		display: grid;
		grid-template-columns: 1fr;
	}
}

/* Balance Pilates footer -------------------------------------------------- */
body .site-footer {
	position: relative;
	margin-top: 0;
	padding: clamp(3.75rem, 6vw, 5.75rem) 0 0;
	overflow: hidden;
	background:
		radial-gradient(circle at 8% 8%, rgba(173, 117, 85, .28), transparent 25rem),
		radial-gradient(circle at 95% 92%, rgba(255, 241, 224, .09), transparent 24rem),
		linear-gradient(135deg, #2b1d18 0%, #38261f 58%, #2c1e19 100%);
	color: rgba(255, 250, 245, .72);
	--wt-footer-bg: transparent;
	--wt-footer-text: rgba(255, 250, 245, .72);
	--wt-footer-title: #fffaf5;
	--wt-footer-border: rgba(255, 255, 255, .12);
}

body .site-footer::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, transparent 7%, #ad7555 34%, #ead0bd 50%, #ad7555 66%, transparent 93%);
}

body .site-footer > .container {
	position: relative;
	z-index: 1;
	width: min(calc(100% - 3rem), 82rem);
	max-width: none;
	padding-inline: 0;
}

.bp-footer-main {
	display: grid;
	grid-template-columns: 1.25fr .72fr 1.25fr 1.12fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
	padding-bottom: clamp(3rem, 5vw, 4.75rem);
}

.bp-footer-main h2 {
	margin: 0 0 1.25rem;
	color: #fffaf5;
	font-family: var(--bp-font-body);
	font-size: .78rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.bp-footer-brand__logo {
	display: inline-flex;
	align-items: center;
	min-height: 5rem;
	margin-bottom: 1.5rem;
	padding: .55rem 1rem;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: .85rem;
	background: #ad7555;
	box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, .18);
}

.bp-footer-brand__logo .custom-logo-link {
	display: block;
	line-height: 0;
}

.bp-footer-brand__logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: 9rem;
	max-height: 4rem;
	object-fit: contain;
}

.bp-footer-brand > p,
.bp-footer-cta > p {
	margin: 0;
	color: rgba(255, 250, 245, .7);
	font-size: .9rem;
	line-height: 1.8;
}

.bp-footer-brand__note {
	display: flex;
	gap: .65rem;
	align-items: center;
	margin-top: 1.35rem;
	color: #e8c8b3;
	font-size: .76rem;
	font-weight: 500;
	letter-spacing: .04em;
}

.bp-footer-brand__note i {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: 1px solid rgba(232, 200, 179, .28);
	border-radius: 50%;
}

.bp-footer-nav ul,
.bp-footer-locations {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bp-footer-nav ul {
	display: grid;
	gap: .76rem;
}

.bp-footer-nav a {
	position: relative;
	display: inline-flex;
	align-items: center;
	color: rgba(255, 250, 245, .76);
	font-size: .88rem;
	line-height: 1.5;
	text-decoration: none;
	transition: color .2s ease, transform .2s ease;
}

.bp-footer-nav a::before {
	content: "";
	width: 0;
	height: 1px;
	margin-right: 0;
	background: #d9aa8d;
	transition: width .2s ease, margin .2s ease;
}

.bp-footer-nav a:hover,
.bp-footer-nav a:focus-visible,
.bp-footer-contact a:hover,
.bp-footer-contact a:focus-visible,
.bp-footer-bottom a:hover,
.bp-footer-bottom a:focus-visible {
	color: #fff;
	text-decoration: none;
}

.bp-footer-nav a:hover::before,
.bp-footer-nav a:focus-visible::before {
	width: 1rem;
	margin-right: .5rem;
}

.bp-footer-contact__hotline {
	display: flex;
	gap: .75rem;
	align-items: center;
	margin-bottom: 1.25rem;
	padding: .9rem 1rem;
	border: 1px solid rgba(255, 255, 255, .13);
	border-radius: .85rem;
	background: rgba(255, 255, 255, .055);
	color: #fffaf5;
	text-decoration: none;
}

.bp-footer-contact__hotline > i {
	display: grid;
	width: 2.35rem;
	height: 2.35rem;
	flex: 0 0 auto;
	place-items: center;
	border-radius: 50%;
	background: #ad7555;
	color: #fff;
}

.bp-footer-contact__hotline span {
	display: grid;
	gap: .15rem;
}

.bp-footer-contact__hotline small {
	color: rgba(255, 250, 245, .6);
	font-size: .75rem;
}

.bp-footer-contact__hotline strong {
	color: #fffaf5;
	font-size: .98rem;
	font-weight: 600;
}

.bp-footer-locations {
	display: grid;
	gap: .9rem;
}

.bp-footer-locations li {
	display: grid;
	grid-template-columns: 1rem minmax(0, 1fr);
	gap: .65rem;
	align-items: start;
}

.bp-footer-locations li > i {
	margin-top: .2rem;
	color: #d9aa8d;
	font-size: .78rem;
}

.bp-footer-locations a,
.bp-footer-locations span {
	display: grid;
	gap: .18rem;
	color: rgba(255, 250, 245, .77);
	text-decoration: none;
}

.bp-footer-locations strong {
	color: rgba(255, 250, 245, .9);
	font-size: .82rem;
	font-weight: 600;
}

.bp-footer-locations small {
	overflow: hidden;
	color: rgba(255, 250, 245, .5);
	font-size: .75rem;
	line-height: 1.5;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.bp-footer-cta {
	position: relative;
	padding: 1.7rem;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 1.15rem;
	background: linear-gradient(145deg, rgba(173, 117, 85, .35), rgba(255, 255, 255, .045));
	box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, .15);
}

.bp-footer-cta::after {
	content: "";
	position: absolute;
	right: -3.5rem;
	bottom: -3.5rem;
	width: 8rem;
	height: 8rem;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 50%;
}

.bp-footer-cta__eyebrow {
	display: block;
	margin-bottom: .75rem;
	color: #e8b997;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.bp-footer-cta h2 {
	max-width: 15rem;
	margin-bottom: .8rem;
	font-family: var(--bp-font-heading);
	font-size: clamp(1.65rem, 2.2vw, 2.15rem);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -.025em;
	text-transform: none;
}

.bp-footer-cta h2,
.bp-footer-cta p,
.bp-footer-cta span {
	color: inherit;
}

.bp-footer-cta h2 {
	color: #fffaf5;
}

.bp-footer-cta .bp-footer-cta__eyebrow {
	color: #efc2a5;
}

.bp-footer-cta__button {
	position: relative;
	z-index: 1;
	display: inline-flex;
	gap: 1.2rem;
	align-items: center;
	justify-content: space-between;
	margin-top: 1.35rem;
	padding: .78rem 1rem;
	border-radius: 999px;
	background: #fff9f3;
	color: #70452f;
	font-size: .78rem;
	font-weight: 600;
	text-decoration: none;
	transition: background .2s ease, transform .2s ease;
}

.bp-footer-cta__button:hover,
.bp-footer-cta__button:focus-visible {
	background: #fff;
	color: #70452f;
	text-decoration: none;
	transform: translateY(-2px);
}

.bp-footer-bottom {
	display: flex;
	gap: 1.5rem;
	align-items: center;
	justify-content: space-between;
	min-height: 4.25rem;
	padding-block: 1rem;
	border-top: 1px solid rgba(255, 255, 255, .1);
	color: rgba(255, 250, 245, .47);
	font-size: .75rem;
}

.bp-footer-bottom p {
	margin: 0;
	color: rgba(255, 250, 245, .52);
}

.bp-footer-bottom > div {
	display: flex;
	gap: 1.25rem;
	align-items: center;
}

.bp-footer-bottom a {
	color: rgba(255, 250, 245, .6);
	text-decoration: none;
}

/* Global body typography assigns colours directly to p/strong/small. Keep
 * every footer text level legible on the dark brand surface. */
.site-footer .bp-footer-brand p,
.site-footer .bp-footer-cta p {
	color: rgba(255, 250, 245, .7);
}

.site-footer .bp-footer-contact__hotline strong,
.site-footer .bp-footer-locations strong {
	color: #fffaf5;
}

.site-footer .bp-footer-contact__hotline small,
.site-footer .bp-footer-locations small {
	color: rgba(255, 250, 245, .58);
}

.site-footer .bp-footer-bottom,
.site-footer .bp-footer-bottom p,
.site-footer .bp-footer-bottom span {
	color: rgba(255, 250, 245, .52);
}

@media (max-width: 1080px) {
	.bp-footer-main {
		grid-template-columns: 1.1fr .8fr 1.1fr;
	}
	.bp-footer-cta {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: 2rem;
		align-items: center;
	}
	.bp-footer-cta__eyebrow,
	.bp-footer-cta h2,
	.bp-footer-cta p {
		grid-column: 1;
	}
	.bp-footer-cta__button {
		grid-column: 2;
		grid-row: 1 / 4;
		margin-top: 0;
	}
}

@media (max-width: 760px) {
	body .site-footer {
		padding-top: 3.25rem;
	}
	body .site-footer > .container {
		width: min(calc(100% - 2rem), 82rem);
	}
	.bp-footer-main {
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem 1.5rem;
	}
	.bp-footer-brand,
	.bp-footer-cta {
		grid-column: 1 / -1;
	}
	.bp-footer-cta {
		display: block;
	}
	.bp-footer-cta__button {
		margin-top: 1.25rem;
	}
	.bp-footer-bottom,
	.bp-footer-bottom > div {
		align-items: flex-start;
	}
	.bp-footer-bottom {
		flex-direction: column;
	}
	.bp-footer-bottom > div {
		flex-wrap: wrap;
	}
}

@media (max-width: 480px) {
	.bp-footer-main {
		grid-template-columns: 1fr;
	}
	.bp-footer-brand,
	.bp-footer-cta {
		grid-column: auto;
	}
	.bp-footer-nav ul {
		grid-template-columns: 1fr 1fr;
	}
	.bp-footer-locations small {
		white-space: normal;
	}
	.bp-footer-bottom > div {
		gap: .65rem 1rem;
	}
}

/* Setup gallery: keep the composition flush on both edges for any image count.
 * The previous masonry spans left empty notches when the gallery was not six items. */
.bp-setup-page .bp-setup-gallery {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-flow: row;
	grid-auto-rows: clamp(13rem, 19vw, 19rem);
	gap: 1rem;
}

.bp-setup-page .bp-setup-gallery__item {
	grid-column: span 4;
	grid-row: span 1;
	min-height: 0;
}

/* Seven images form two complete rows: 3 images above, 4 below. */
.bp-setup-page .bp-setup-gallery--count-7 .bp-setup-gallery__item:nth-child(-n+3) {
	grid-column: span 4;
}

.bp-setup-page .bp-setup-gallery--count-7 .bp-setup-gallery__item:nth-child(n+4) {
	grid-column: span 3;
}

/* Five images form a balanced 2 + 3 composition without a trailing hole. */
.bp-setup-page .bp-setup-gallery--count-5 .bp-setup-gallery__item:nth-child(-n+2) {
	grid-column: span 6;
}

.bp-setup-page .bp-setup-gallery--count-5 .bp-setup-gallery__item:nth-child(n+3) {
	grid-column: span 4;
}

@media (max-width: 980px) {
	.bp-setup-page .bp-setup-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: clamp(12rem, 36vw, 18rem);
	}

	.bp-setup-page .bp-setup-gallery__item,
	.bp-setup-page .bp-setup-gallery--count-7 .bp-setup-gallery__item:nth-child(n),
	.bp-setup-page .bp-setup-gallery--count-5 .bp-setup-gallery__item:nth-child(n) {
		grid-column: span 1;
	}

	.bp-setup-page .bp-setup-gallery__item:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

@media (max-width: 600px) {
	.bp-setup-page .bp-setup-gallery {
		grid-template-columns: 1fr;
		grid-auto-rows: auto;
		gap: .75rem;
	}

	.bp-setup-page .bp-setup-gallery__item,
	.bp-setup-page .bp-setup-gallery__item:last-child:nth-child(odd) {
		grid-column: 1;
		aspect-ratio: 4 / 3;
	}
}

/* Final interaction/accessibility guard shared by every child-theme page. */
:where(
	.bp-home-page,
	.bp-class-archive,
	.bp-class-detail,
	.bp-training-page,
	.bp-setup-page,
	.bp-locations-page,
	.bp-contact-page,
	.bp-about-page,
	.bp-reformer-page,
	.site-footer
) :where(a, button, input, textarea):focus-visible {
	outline: 2px solid #ad7555;
	outline-offset: 3px;
}

:where(
	.bp-home-page,
	.bp-class-archive,
	.bp-class-detail,
	.bp-training-page,
	.bp-setup-page,
	.bp-locations-page,
	.bp-contact-page,
	.bp-about-page,
	.bp-reformer-page
) :where(button, [class*="button"], [class*="__cta"] a):is(:hover, :focus, :active) {
	text-decoration: none;
	text-decoration-line: none;
}

@media (prefers-reduced-motion: reduce) {
	.bp-home-page *,
	.bp-class-archive *,
	.bp-class-detail *,
	.bp-training-page *,
	.bp-setup-page *,
	.bp-locations-page *,
	.bp-contact-page *,
	.bp-about-page *,
	.bp-reformer-page * {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* Class archive final audit ------------------------------------------------
 * Earlier compatibility rules deliberately normalised every heading to the
 * body face. Restore the brand hierarchy here without touching class detail. */
.bp-class-archive {
	--bp-class-space: clamp(3.5rem, 5vw, 5.25rem);
}

.bp-class-archive :where(h1, h2, h3) {
	font-family: var(--bp-font-heading);
	font-style: normal;
	font-weight: 500;
	letter-spacing: -.025em;
}

.bp-class-archive__hero-inner {
	gap: clamp(2.5rem, 4vw, 4.5rem);
	padding-block: clamp(3rem, 4.8vw, 4.5rem);
	grid-template-columns: minmax(0, 1.1fr) minmax(26rem, .9fr);
}

.bp-class-archive__hero-copy {
	max-width: 47rem;
}

.bp-class-archive__hero h1 {
	max-width: 22ch;
	font-family: var(--bp-font-heading);
	font-size: clamp(3.25rem, 4vw, 4.3rem);
	font-weight: 500;
	letter-spacing: -.045em;
	line-height: 1.02;
	text-wrap: pretty;
}

.bp-class-archive__hero-copy > p {
	max-width: 57ch;
	margin-top: 1.25rem;
	font-size: .975rem;
	line-height: 1.75;
}

.bp-class-archive__hero-actions {
	margin-top: 1.75rem;
}

.bp-class-archive__hero-art {
	width: min(100%, 35rem);
	box-shadow: 0 1.75rem 4.5rem rgba(91, 62, 45, .14);
}

.bp-class-catalog {
	background:
		radial-gradient(circle at 94% 4%, rgba(190, 141, 107, .08), transparent 22rem),
		linear-gradient(180deg, #fffdf9 0%, #fbf6ef 100%);
}

.bp-class-catalog__header {
	display: block;
	max-width: 52rem;
	margin-bottom: clamp(2rem, 3vw, 2.75rem);
}

.bp-class-catalog__header h2 {
	max-width: none;
	margin-top: .55rem;
	font-family: var(--bp-font-heading);
	font-size: clamp(2.35rem, 3.4vw, 3.25rem);
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: 1.08;
}

.bp-class-catalog__header p {
	max-width: 62ch;
	margin-top: .75rem;
	font-size: .975rem;
	line-height: 1.7;
}

.bp-class-filter button {
	background: rgba(255, 253, 249, .82);
	box-shadow: 0 .35rem 1rem rgba(77, 51, 36, .035);
}

.bp-class-catalog__grid {
	gap: clamp(1.25rem, 1.8vw, 1.75rem);
}

.bp-class-program {
	box-shadow: 0 1rem 2.75rem rgba(77, 51, 36, .07);
}

.bp-class-program__body {
	min-height: 22.5rem;
	padding: clamp(1.4rem, 2vw, 1.8rem);
}

.bp-class-program__body h3 {
	margin: 0 0 .7rem;
	font-family: var(--bp-font-heading);
	font-size: clamp(1.55rem, 1.8vw, 1.8rem);
	font-weight: 500;
	letter-spacing: -.025em;
	line-height: 1.18;
}

.bp-class-consult h2 {
	font-family: var(--bp-font-heading);
	font-size: clamp(2.15rem, 3.2vw, 3.15rem);
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: 1.06;
}

@media (max-width: 1280px) {
	.bp-class-catalog__header {
		align-items: flex-start;
	}
}

@media (max-width: 1100px) {
	.bp-class-archive__hero-inner {
		gap: 3rem;
		grid-template-columns: minmax(0, 1fr) minmax(24rem, .9fr);
	}
	.bp-class-archive__hero h1 {
		font-size: clamp(3rem, 5vw, 4.1rem);
	}
}

@media (max-width: 900px) {
	.bp-class-archive__hero-inner {
		grid-template-columns: 1fr;
	}
	.bp-class-archive__hero h1 {
		max-width: 16ch;
	}
}

@media (max-width: 640px) {
	.bp-class-archive {
		--bp-class-space: 3rem;
	}
	.bp-class-archive__hero-inner {
		padding-block: 2.5rem 2.75rem;
	}
	.bp-class-archive__hero h1 {
		max-width: 12ch;
		font-size: clamp(2.65rem, 12vw, 3.35rem);
		line-height: 1.02;
	}
	.bp-class-archive__hero-copy > p {
		font-size: .92rem;
	}
	.bp-class-catalog__header h2 {
		font-size: 2.35rem;
	}
	.bp-class-program__body {
		min-height: 0;
	}
}

/* Buttons in the class archive must not inherit the parent theme link underline. */
.bp-class-archive__hero-actions :where(a, a:hover, a:focus, a:active, a:visited),
.bp-class-archive__hero-actions :where(a, a:hover, a:focus, a:active, a:visited) * {
	text-decoration: none !important;
	text-decoration-line: none !important;
}

/* Class detail final audit: typography, one shared section gap and responsive layouts. */
.bp-class-detail {
	--bp-detail-section-gap: clamp(4.5rem, 6vw, 6.5rem);
	--bp-detail-section-half: calc(var(--bp-detail-section-gap) / 2);
}

.bp-class-detail :where(h1, h2) {
	font-family: var(--bp-font-heading);
	font-style: normal;
	font-weight: 500;
}

.bp-class-detail__hero-grid {
	grid-template-columns: minmax(25rem, .95fr) minmax(28rem, 1.05fr);
	gap: clamp(2.5rem, 5vw, 5rem);
}

.bp-class-detail__hero h1 {
	max-width: 16ch;
	font-size: clamp(2.9rem, 3.8vw, 3.9rem);
	font-weight: 500;
	letter-spacing: -.035em;
	line-height: 1.04;
	text-wrap: pretty;
}

.bp-class-detail__fit,
.bp-class-detail__gallery,
.bp-class-detail__benefits,
.bp-class-detail__editor,
.bp-class-detail__process,
.bp-class-detail__faq {
	padding-block: var(--bp-detail-section-half);
}

.bp-class-detail__cta {
	padding: var(--bp-detail-section-half) 0 var(--bp-detail-section-gap);
}

.bp-class-detail .bp-class-detail__fit h2,
.bp-class-detail .bp-class-detail__section-heading h2,
.bp-class-detail .bp-class-detail__gallery-heading h2,
.bp-class-detail .bp-class-detail__faq h2,
.bp-class-detail .bp-class-detail__cta h2 {
	font-family: var(--bp-font-heading);
	font-weight: 500;
}

.bp-class-detail__section-heading {
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.bp-class-detail__benefit-icon {
	margin-bottom: 1.75rem;
}

.bp-class-detail__process-grid h3 {
	margin-top: 1.25rem;
}

.bp-class-detail__cta .bp-class-detail__actions {
	margin-top: 1.5rem;
}

.bp-class-detail :where(.bp-class-detail__primary, .bp-class-detail__call),
.bp-class-detail :where(.bp-class-detail__primary, .bp-class-detail__call):is(:hover, :focus, :active, :visited),
.bp-class-detail :where(.bp-class-detail__primary, .bp-class-detail__call) * {
	text-decoration: none !important;
	text-decoration-line: none !important;
}

@media (max-width: 1024px) {
	.bp-class-detail__hero-grid {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
	.bp-class-detail__hero-copy {
		max-width: 46rem;
	}
	.bp-class-detail__hero h1 {
		max-width: 18ch;
	}
	.bp-class-detail__hero-media {
		min-height: 0;
		aspect-ratio: 16 / 10;
		border-radius: 1.5rem;
	}
	.bp-class-detail__benefit-grid,
	.bp-class-detail__benefit-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.bp-class-detail__benefit-grid article:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

@media (max-width: 767px) {
	.bp-class-detail {
		--bp-detail-section-gap: 4rem;
	}
	.bp-class-detail__hero {
		padding-block: 2rem 2.5rem;
	}
	.bp-class-detail__hero h1 {
		max-width: 14ch;
		font-size: clamp(2.4rem, 10vw, 3.1rem);
	}
	.bp-class-detail__hero-media {
		aspect-ratio: 4 / 3;
	}
	.bp-class-detail__facts-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.bp-class-detail__facts-grid > div {
		min-height: 4.75rem;
	}
	.bp-class-detail__gallery-grid,
	.bp-class-detail__gallery-grid--3 {
		display: grid;
		height: auto;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto;
	}
	.bp-class-detail__gallery-grid--3 .bp-class-detail__gallery-item--1 {
		grid-column: 1 / -1;
		grid-row: auto;
		aspect-ratio: 16 / 10;
	}
	.bp-class-detail__gallery-item:not(.bp-class-detail__gallery-item--1) {
		aspect-ratio: 1;
	}
	.bp-class-detail__benefit-grid,
	.bp-class-detail__benefit-grid--4 {
		grid-template-columns: 1fr;
	}
	.bp-class-detail__benefit-grid article:last-child:nth-child(odd) {
		grid-column: auto;
	}
	.bp-class-detail__cta-copy {
		padding: 2rem 1.4rem;
	}
	.bp-class-detail__cta-inner > figure {
		min-height: 66vw;
	}
}

@media (max-width: 480px) {
	.bp-class-detail__facts-grid {
		grid-template-columns: 1fr;
	}
	.bp-class-detail__facts-grid > div {
		min-height: 4.35rem;
	}
	.bp-class-detail__gallery-grid,
	.bp-class-detail__gallery-grid--3 {
		gap: .55rem;
	}
}
