/* =============================================================
   NuraMoves — Design System
   Complete rewrite for the NuraMoves brand redesign.
   ============================================================= */

/* ── 1. TOKENS ─────────────────────────────────────────────── */
:root {
  /* Colors — legacy (used on inner pages) */
  --ivory:      #F7F6F3;
  --charcoal:   #26241E;
  --burgundy:   #5C1F2E;
  --navy:       #2C3A4F;
  --stone:      rgba(38,36,30,0.6);
  --clay:       rgba(38,36,30,0.38);
  --surface:    #EDE8DF;
  --surface-2:  #E6E0D6;
  --white:      #FAFAF8;
  --border:     rgba(38,36,30,0.1);
  --border-md:  rgba(38,36,30,0.18);

  /* Colors — design system v2 */
  --ink-black:   #161513;
  --navy-deep:   #101826;
  --oxblood:     #4A1522;
  --cream:       #F7F6F3;
  --clay-accent: #8C3B34;

  /* Typography */
  --font-display: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --font-body:    'Inter', 'Helvetica Neue', Arial, sans-serif;

  /* Type scale */
  --step-tag:  0.68rem;
  --step-body: 1.05rem;
  --step-lead: 1.2rem;
  --step-h3:   clamp(1.4rem, 2.5vw, 2rem);
  --step-h2:   clamp(2rem, 4.5vw, 4rem);
  --step-h1:   clamp(2.8rem, 7vw, 6.5rem);
  --step-hero: clamp(4rem, 10vw, 9rem);
  --step-display: clamp(5rem, 13vw, 12rem);

  /* Layout */
  --header-h:       4.5rem;
  --gutter:         clamp(1.5rem, 5vw, 5rem);
  --section-pad:    clamp(6rem, 12vw, 10rem);
  --section-pad-sm: clamp(3.5rem, 7vw, 6rem);
  --container:      1280px;
  --radius:         0;

  /* Motion */
  --ease: cubic-bezier(0.16, 0.84, 0.32, 1);
}

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

/* ── 2. REDUCED MOTION ─────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ── 3. RESET ──────────────────────────────────────────────── */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

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

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

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4 {
  margin: 0;
}

button {
  font-family: inherit;
  cursor: pointer;
  background: none;
  border: none;
}

/* ── 4. BASE TYPE ──────────────────────────────────────────── */
body {
  font-family: var(--font-body);
  font-size: var(--step-body);
  line-height: 1.75;
  color: var(--charcoal);
  background: var(--ivory);
}

h1,
h2 {
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.05;
  text-transform: none;
}

h3,
h4 {
  font-family: var(--font-body);
  font-weight: 500;
}

::selection {
  background: var(--oxblood);
  color: var(--cream);
}

/* ── 5. TAG ────────────────────────────────────────────────── */
.tag {
  font-family: var(--font-body);
  font-size: var(--step-tag);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clay-accent);
  display: inline-block;
}

/* ── 6. LAYOUT HELPERS ─────────────────────────────────────── */
.container {
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.section {
  padding: var(--section-pad) var(--gutter);
}

.section--sm {
  padding: var(--section-pad-sm) var(--gutter);
}

.section--dark {
  background: var(--charcoal);
  color: var(--white);
}

.section--surface {
  background: var(--surface);
}

.mt-0 { margin-top: 0 !important; }

/* ── 7. BUTTONS ────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.9em 1.8em;
  border: 1px solid currentColor;
  transition: background 0.3s var(--ease), color 0.3s var(--ease);
  white-space: nowrap;
  cursor: pointer;
}

.btn--primary {
  background: var(--oxblood);
  color: var(--white);
  border-color: var(--oxblood);
}
.btn--primary:hover {
  background: transparent;
  color: var(--oxblood);
}

.btn--ghost {
  background: transparent;
  color: var(--charcoal);
  border-color: var(--charcoal);
}
.btn--ghost:hover {
  background: var(--charcoal);
  color: var(--white);
}

.btn--light {
  background: var(--white);
  color: var(--charcoal);
  border-color: var(--white);
}
.btn--light:hover {
  background: transparent;
  color: var(--white);
  border-color: var(--white);
}

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  transition: opacity 0.2s;
}
.link-arrow:hover {
  opacity: 0.6;
}

/* ── 8. HEADER ─────────────────────────────────────────────── */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: var(--header-h);
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  background: var(--ivory);
  border-bottom: 1px solid var(--border);
  transition: background 0.4s var(--ease), border-color 0.4s var(--ease), box-shadow 0.3s var(--ease);
}

/* Homepage: start transparent, transition to ivory on scroll */
.page-home .site-header {
  background: transparent;
  border-bottom-color: transparent;
}

.site-header.is-scrolled {
  background: var(--ivory);
  border-bottom-color: var(--border);
  box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}

/* Nav links — white over dark hero (homepage only) */
.page-home .site-header:not(.is-scrolled) .nav-list a {
  color: rgba(250,250,248,0.75);
}
.page-home .site-header:not(.is-scrolled) .nav-list a:hover,
.page-home .site-header:not(.is-scrolled) .nav-list a.is-active {
  color: var(--white);
}
.page-home .site-header:not(.is-scrolled) .brand-mark {
  color: var(--white);
}
.page-home .site-header:not(.is-scrolled) .nav-toggle span {
  background: var(--white);
}

/* Non-home pages: header always solid */
body:not(.page-home) .site-header {
  background: var(--ivory);
  border-bottom-color: var(--border);
}

.brand-mark {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
}

.site-header nav {
  order: 1;
}

.nav-list {
  display: flex;
  gap: 2.5rem;
}

.nav-list a {
  font-family: var(--font-body);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--charcoal);
  transition: color 0.2s;
}

.nav-list a:hover {
  color: var(--clay-accent);
}

.nav-list a.is-active {
  color: var(--clay-accent);
  font-weight: 500;
}

.nav-apply {
  order: 3;
  margin-left: auto;
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.65em 1.3em;
  background: var(--oxblood);
  color: var(--white);
  border: 1px solid var(--oxblood);
  transition: background 0.3s var(--ease), color 0.3s var(--ease);
  white-space: nowrap;
  cursor: pointer;
  display: inline-block;
}

.nav-apply:hover {
  background: transparent;
  color: var(--oxblood);
  border-color: var(--oxblood);
}

.nav-apply.is-active {
  background: var(--oxblood);
  border-color: var(--oxblood);
  color: var(--white);
}

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 0.4rem;
  margin-left: auto;
  background: none;
  border: none;
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--charcoal);
  transition: transform 0.3s var(--ease), opacity 0.3s;
}

/* ── 9. REVEAL ─────────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── 10. FOOTER ────────────────────────────────────────────── */
.site-footer {
  background: linear-gradient(rgba(0,0,0,0.83), rgba(0,0,0,0.83)),
              url('../assets/images/gym-dark.jpg') center/cover no-repeat;
  color: var(--white);
}

.footer-inner {
  padding: clamp(2rem,4vw,3rem) var(--gutter) clamp(1rem,2vw,1.5rem);
  display: flex;
  flex-direction: column;
  gap: 0;
}

.footer-top {
  padding-bottom: 1.1rem;
  margin-bottom: 1.1rem;
  border-bottom: 1px solid rgba(250,250,248,0.1);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.footer-brand {
  position: static;
  transform: none;
  color: var(--white);
}

.footer-tagline {
  font-size: 0.73rem;
  font-style: italic;
  color: rgba(250,250,248,0.38);
}

.footer-mid {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 1.1rem;
  margin-bottom: 1.1rem;
  border-bottom: 1px solid rgba(250,250,248,0.08);
}

.footer-nav {
  display: flex;
  gap: 1.25rem;
  flex-wrap: wrap;
  align-items: center;
}

.footer-nav a + a::before {
  content: '·';
  margin-right: 1.25rem;
  color: rgba(250,250,248,0.25);
  font-size: 0.7rem;
}

.footer-nav a {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(250,250,248,0.5);
  transition: color 0.2s;
}

.footer-nav a:hover {
  color: var(--white);
}

.footer-social {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.footer-social-link {
  display: flex;
  align-items: center;
  color: rgba(250,250,248,0.5);
  transition: color 0.2s;
}

.footer-social-link:hover {
  color: var(--white);
}

.footer-social-link svg {
  width: 18px;
  height: 18px;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  color: rgba(250,250,248,0.4);
}

/* ── 11. HOMEPAGE — HERO ───────────────────────────────────── */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--ink-black);
}

.hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(20,10,12,0.35) 0%,
    rgba(20,10,12,0.08) 35%,
    rgba(20,10,12,0.0) 55%,
    rgba(20,10,12,0.65) 100%
  );
}

.hero__content {
  position: relative;
  z-index: 1;
  padding: clamp(3rem,6vw,5rem) var(--gutter);
  padding-top: calc(var(--header-h) + 2rem);
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  max-width: 72rem;
}

.hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: var(--step-tag);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(250,250,248,0.65);
}

.hero__headline {
  font-family: var(--font-body);
  font-size: clamp(2.2rem, 10vw, 60px);
  font-weight: 300;
  line-height: 1.1;
  font-style: normal;
  color: var(--white);
}

.hero__sub {
  max-width: 44ch;
  font-size: var(--step-lead);
  line-height: 1.75;
  color: rgba(250,250,248,0.8);
}

.hero__actions {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

/* ── 12. HOMEPAGE — CHALLENGE ──────────────────────────────── */
.challenge {
  border-top: 1px solid var(--border);
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 60vh;
  align-items: center;
}

.challenge__left {
  padding: var(--section-pad) var(--gutter);
}

.challenge__tag {
  margin-bottom: 1.5rem;
}

.challenge__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  font-weight: 400;
  line-height: 1.1;
  max-width: 20ch;
}

.challenge__right {
  padding: var(--section-pad) var(--gutter);
  border-left: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 0;
  align-self: stretch;
  justify-content: center;
}

.challenge__item {
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--border);
  font-size: var(--step-body);
  line-height: 1.7;
  color: var(--stone);
  display: flex;
  gap: 0.75rem;
}

.challenge__item:first-child {
  border-top: 1px solid var(--border);
}

.challenge__item::before {
  content: "—";
  color: var(--clay-accent);
  flex-shrink: 0;
}

/* ── 13. HOMEPAGE — PHILOSOPHY (dark) ──────────────────────── */
.philosophy {
  background: var(--charcoal);
  color: var(--white);
  padding: var(--section-pad) var(--gutter);
  text-align: center;
}

.philosophy__tag {
  color: rgba(250,250,248,0.5);
}

.philosophy__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  font-style: italic;
  color: var(--white);
  max-width: 22ch;
  margin: 1.5rem auto;
  line-height: 1.1;
}

.philosophy__body {
  max-width: 48ch;
  margin: 0 auto;
  color: rgba(250,250,248,0.65);
  line-height: 1.8;
}

.philosophy__principles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 4rem;
  border-top: 1px solid rgba(250,250,248,0.15);
}

.philosophy__principle {
  padding: 2rem clamp(1rem,2vw,2rem);
  border-right: 1px solid rgba(250,250,248,0.12);
}

.philosophy__principle:last-child {
  border-right: none;
}

.principle__num {
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(250,250,248,0.35);
  display: block;
  margin-bottom: 1rem;
}

.principle__text {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1rem,1.6vw,1.4rem);
  line-height: 1.4;
  color: rgba(250,250,248,0.9);
}

.philosophy__link {
  margin-top: 3rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--white);
  border-bottom: 1px solid rgba(250,250,248,0.4);
  padding-bottom: 2px;
  transition: opacity 0.2s;
}

.philosophy__link:hover {
  opacity: 0.6;
}

/* ── 14. HOMEPAGE — SERVICES ───────────────────────────────── */
.services {
  padding: var(--section-pad) var(--gutter);
  background: var(--ivory);
}

.services__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 3rem;
  gap: 2rem;
}

.services__header-left {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex: 1;
}

.services__rule {
  flex: 1;
  height: 1px;
  background: var(--border);
}

.services__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border: 1px solid var(--border-md);
}

.service-card {
  display: flex;
  flex-direction: column;
  padding: clamp(2rem,4vw,3.5rem);
  border-right: 1px solid var(--border-md);
  border-bottom: 1px solid var(--border-md);
  position: relative;
  overflow: hidden;
}

.service-card:nth-child(2n) {
  border-right: none;
}

.service-card:nth-last-child(-n+2) {
  border-bottom: none;
}

.service-card__label {
  margin-bottom: 1.2rem;
}

.service-card__image {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.service-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  transition: transform 0.8s var(--ease);
}

.service-card:hover .service-card__image img {
  transform: scale(1.03);
}

.service-card__name {
  font-family: var(--font-display);
  font-size: clamp(1.4rem,2.5vw,2.2rem);
  font-weight: 400;
  line-height: 1.1;
  margin-bottom: 0.8rem;
}

.service-card__desc {
  font-size: 0.92rem;
  line-height: 1.75;
  color: var(--stone);
  max-width: 36ch;
  flex: 1;
}

.service-card__cta {
  margin-top: 1.5rem;
}

.coming-soon-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: var(--charcoal);
  color: var(--white);
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.3em 0.7em;
}

/* Waitlist form */
.waitlist-form {
  margin-top: 1.5rem;
  display: flex;
  gap: 0;
}

.waitlist-form input[type="email"] {
  flex: 1;
  padding: 0.7em 1em;
  font-family: var(--font-body);
  font-size: 0.82rem;
  border: 1px solid var(--border-md);
  background: var(--ivory);
  color: var(--charcoal);
  outline: none;
  transition: border-color 0.2s;
  border-radius: 0;
}

.waitlist-form input[type="email"]:focus {
  border-color: var(--charcoal);
}

.waitlist-form button {
  padding: 0.7em 1.2em;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--charcoal);
  color: var(--white);
  border: 1px solid var(--charcoal);
  cursor: pointer;
  transition: background 0.2s;
  white-space: nowrap;
}

.waitlist-form button:hover {
  background: var(--stone);
  border-color: var(--stone);
}

.waitlist-success {
  font-size: 0.85rem;
  color: var(--stone);
  padding: 0.75rem 0;
}

/* ── 15. HOMEPAGE — METHOD ─────────────────────────────────── */
.method-section {
  display: grid;
  grid-template-columns: 40% 60%;
  min-height: 70vh;
  border-top: 1px solid var(--border);
}

.method-section__image {
  overflow: hidden;
}

.method-section__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
}

.method-section__content {
  padding: var(--section-pad) var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2rem;
  border-left: 1px solid var(--border);
}

.method-section__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  max-width: 18ch;
  line-height: 1.05;
}

.method-section__intro {
  font-size: var(--step-lead);
  line-height: 1.8;
  color: var(--stone);
  max-width: 44ch;
}

.method-steps {
  display: flex;
  flex-direction: column;
}

.method-step {
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 1.2rem 0;
  border-top: 1px solid var(--border);
}

.method-step__num {
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--clay-accent);
  min-width: 2rem;
  padding-top: 0.3rem;
  flex-shrink: 0;
}

.method-step__title {
  font-weight: 600;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--charcoal);
}

.method-step__desc {
  font-size: 0.88rem;
  line-height: 1.7;
  color: var(--stone);
  margin-top: 0.25rem;
}

/* ── 16. HOMEPAGE — TESTIMONIALS ───────────────────────────── */
.testimonials {
  background: var(--surface);
  padding: var(--section-pad) var(--gutter);
}

.testimonials__header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.testimonials__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  font-style: italic;
  line-height: 1.05;
}

.testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  margin-top: 3rem;
}

.testimonial-card {
  background: var(--ivory);
  padding: clamp(2rem,3vw,2.8rem);
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.testimonial-card__quote-mark {
  font-family: var(--font-display);
  font-size: 4rem;
  line-height: 0.8;
  color: var(--border-md);
  font-style: italic;
}

.testimonial-card__body {
  font-family: var(--font-display);
  font-size: clamp(1rem,1.4vw,1.2rem);
  font-style: italic;
  line-height: 1.6;
  color: var(--charcoal);
  flex: 1;
}

.testimonial-card__attribution {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--stone);
  margin-top: auto;
  padding-top: 1.2rem;
  border-top: 1px solid var(--border);
}

/* ── 17. HOMEPAGE — JOURNEY ────────────────────────────────── */
.journey-section {
  background: var(--ivory);
  padding: var(--section-pad) var(--gutter);
  border-top: 1px solid var(--border);
}

.journey__header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
}

.journey__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  line-height: 1.05;
}

.journey__steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  position: relative;
}

.journey__steps::before {
  content: "";
  position: absolute;
  top: 1.5rem;
  left: 10%;
  right: 10%;
  height: 1px;
  background: var(--border);
}

.journey-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.8rem;
  padding-top: 0;
}

.journey-step__num {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  border: 1px solid var(--border-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  font-weight: 500;
  background: var(--ivory);
  z-index: 1;
  position: relative;
}

.journey-step__title {
  font-weight: 600;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--charcoal);
  margin-top: 0.5rem;
}

.journey-step__desc {
  font-size: 0.78rem;
  line-height: 1.65;
  color: var(--stone);
  max-width: 16ch;
}

/* ── 18. HOMEPAGE — FAQ ────────────────────────────────────── */
.faq-section {
  background: var(--ivory);
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: var(--gutter);
  padding: var(--section-pad) var(--gutter);
  align-items: start;
  border-top: 1px solid var(--border);
}

.faq__heading {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  font-style: italic;
  line-height: 1.05;
  position: sticky;
  top: calc(var(--header-h) + 2rem);
}

.faq-list {
  display: flex;
  flex-direction: column;
}

.faq-item {
  border-bottom: 1px solid var(--border);
}

.faq-item:first-child {
  border-top: 1px solid var(--border);
}

.faq-q {
  width: 100%;
  text-align: left;
  padding: 1.4rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--charcoal);
  cursor: pointer;
  background: none;
  border: none;
}

.faq-q__icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  position: relative;
}

.faq-q__icon::before,
.faq-q__icon::after {
  content: "";
  position: absolute;
  background: var(--charcoal);
  transition: transform 0.3s;
}

.faq-q__icon::before {
  left: 0;
  top: 50%;
  width: 100%;
  height: 1px;
  transform: translateY(-50%);
}

.faq-q__icon::after {
  top: 0;
  left: 50%;
  width: 1px;
  height: 100%;
  transform: translateX(-50%);
}

.faq-item.is-open .faq-q__icon::after {
  transform: translateX(-50%) scaleY(0);
}

.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease);
}

.faq-a__inner {
  padding-bottom: 1.4rem;
  font-size: 0.9rem;
  line-height: 1.8;
  color: var(--stone);
  max-width: 52ch;
}

.faq-item.is-open .faq-a {
  max-height: 280px;
}

/* ── 19. CTA BANNER ────────────────────────────────────────── */
.cta-banner {
  background: var(--oxblood);
  color: var(--white);
  padding: clamp(2.5rem, 4vw, 3.5rem) var(--gutter);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.cta-banner__tag {
  color: rgba(250,250,248,0.45);
}

.cta-banner__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  font-style: normal;
  color: var(--white);
  max-width: 22ch;
  line-height: 1.1;
}

.cta-banner__body {
  font-size: var(--step-body);
  color: rgba(250,250,248,0.55);
  max-width: 40ch;
}

.cta-banner__actions {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  justify-content: center;
}

/* ── 20. ABOUT PAGE ────────────────────────────────────────── */
.about-hero {
  display: grid;
  grid-template-columns: 38% 62%;
  min-height: calc(100vh - var(--header-h));
  margin-top: var(--header-h);
  overflow: hidden;
}

.about-hero__image {
  overflow: hidden;
}

.about-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: grayscale(100%);
}

.about-hero__content {
  padding: var(--section-pad) var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 2rem;
  border-left: 1px solid var(--border);
  background: var(--ivory);
}

.about-hero__headline {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 4vw, 30px);
  font-style: italic;
  line-height: 1;
  color: var(--charcoal);
}

.about-hero__intro {
  font-size: var(--step-lead);
  line-height: 1.8;
  color: var(--stone);
  max-width: 44ch;
}

/* Story */
.story {
  padding: var(--section-pad) var(--gutter);
  max-width: 800px;
  margin: 0 auto;
}

.story__tag {
  margin-bottom: 2rem;
}

.story__narrative {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.story__narrative p {
  font-size: var(--step-lead);
  line-height: 1.85;
  color: var(--charcoal);
}

.story__pullquote {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.4rem,2.5vw,2.2rem);
  line-height: 1.4;
  color: var(--charcoal);
  border-left: 2px solid var(--clay-accent);
  padding-left: 2rem;
  margin: 1rem 0;
}

/* About philosophy */
.about-philosophy {
  background: var(--surface);
  padding: var(--section-pad) var(--gutter);
}

.about-philosophy__header {
  margin-bottom: 3rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.about-philosophy__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  line-height: 1.05;
}

.philosophy-belief {
  padding: 2rem 0;
  border-bottom: 1px solid var(--border);
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--gutter);
  align-items: start;
}

.philosophy-belief:first-of-type {
  border-top: 1px solid var(--border);
}

.philosophy-belief__name {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.2rem,2vw,1.8rem);
  color: var(--charcoal);
  line-height: 1.2;
}

.philosophy-belief__body {
  font-size: var(--step-body);
  line-height: 1.8;
  color: var(--stone);
}

/* Experience */
.experience {
  padding: var(--section-pad) var(--gutter);
  max-width: 840px;
  margin: 0 auto;
}

.experience__tag {
  margin-bottom: 1.5rem;
}

.experience__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  line-height: 1.05;
  margin-bottom: 2rem;
}

.experience__body {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.experience__body p {
  font-size: var(--step-body);
  line-height: 1.8;
  color: var(--stone);
}

/* Credentials */
.credentials {
  background: var(--surface);
  padding: var(--section-pad-sm) var(--gutter);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}

.credential {
  padding: 1.5rem var(--gutter);
  border-right: 1px solid var(--border);
}

.credential:last-child {
  border-right: none;
}

.credential__label {
  margin-bottom: 0.3rem;
}

.credential__value {
  font-size: var(--step-body);
  font-weight: 500;
  color: var(--charcoal);
  margin-top: 0.3rem;
  line-height: 1.4;
}

/* ── 20b. COACHING PAGE (new) ──────────────────────────────── */
.coaching-split-hero {
  display: grid;
  grid-template-columns: 45% 55%;
  min-height: 100vh;
  margin-top: var(--header-h);
}

.coaching-split-hero__left {
  background: var(--ink-black);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2.5rem;
  padding: clamp(3.5rem, 6vw, 5rem) clamp(2rem, 5vw, 4rem);
  padding-bottom: clamp(4rem, 8vw, 6rem);
  color: var(--white);
}

.coaching-split-hero__tag {
  color: var(--clay-accent);
  letter-spacing: 0.2em;
  font-size: 17px;
}

.coaching-split-hero__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.5rem;
  max-width: 340px;
  text-align: center;
}

.coaching-split-hero__headline {
  font-family: var(--font-body);
  font-size: clamp(1.8rem, 2.8vw, 2.8rem);
  font-weight: 300;
  line-height: 1.35;
  letter-spacing: 0.08em;
  color: var(--white);
  text-align: center;
}

.coaching-split-hero__right {
  background: #e8e8e8;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.coaching-split-hero__right img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  display: block;
}

@media (max-width: 860px) {
  .coaching-split-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .coaching-split-hero__right {
    aspect-ratio: 3 / 4;
  }
  .coaching-split-hero__left {
    justify-content: center;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}

.coaching-pg-services {
  background: #fff !important;
  padding: clamp(5rem, 10vw, 8rem) var(--gutter);
}
.coaching-pg-services .services-glass__grid {
  gap: 2rem;
}
.coaching-pg-services .glass-card {
  background: linear-gradient(rgba(0,0,0,0.52), rgba(0,0,0,0.52)),
              url('../assets/images/gym-dark.jpg') center/cover no-repeat;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  box-shadow: none;
  padding: clamp(2.5rem, 4vw, 3.5rem);
  color: var(--white);
}
.coaching-pg-services .glass-card:hover {
  background: linear-gradient(rgba(0,0,0,0.38), rgba(0,0,0,0.38)),
              url('../assets/images/gym-dark.jpg') center/cover no-repeat;
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.12);
}

.coaching-pg-card__tag {
  color: rgba(255,255,255,0.5) !important;
  margin-bottom: 0.5rem;
}

.glass-card__desc {
  font-size: 0.88rem;
  line-height: 1.75;
  color: rgba(250,250,248,0.6);
  font-weight: 300;
  flex: 1;
}

/* ── CLIENT JOURNEY HERO ────────────────────────────────────── */
.coaching-pg-hero {
  position: relative;
  height: 70vh;
  min-height: 400px;
  max-height: 600px;
  overflow: hidden;
  margin-top: var(--header-h);
}
.coaching-pg-hero__panels {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}
.coaching-pg-hero__panel {
  position: relative;
  overflow: hidden;
}
.coaching-pg-hero__panel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.coaching-pg-hero__panel--bw img {
  filter: grayscale(100%);
  object-position: 35% center;
}
.coaching-pg-hero__panel--color img {
  object-position: 50% center;
}
.coaching-pg-hero__panel--warm img {
  filter: sepia(18%) saturate(65%) brightness(0.93) hue-rotate(-8deg);
  object-position: 62% center;
}
.coaching-pg-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.52);
}
.coaching-pg-hero__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: clamp(2.5rem, 5vw, 4rem) clamp(2rem, 5vw, 5rem);
  gap: 1.25rem;
  color: var(--white);
  z-index: 2;
  width: 33.33%;
}
.coaching-pg-hero__tag { color: rgba(255,255,255,0.55); }
.coaching-pg-hero__headline {
  font-size: clamp(1.6rem, 3vw, 2.8rem);
  font-weight: 300;
  line-height: 1.15;
  color: var(--white);
}

.coaching-pg-method {
  background: var(--cream);
  padding: clamp(4rem, 8vw, 6rem) var(--gutter);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.5rem;
}

.coaching-pg-method__headline {
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 300;
  color: var(--charcoal);
}

.coaching-pg-method__body {
  font-size: var(--step-body);
  line-height: 1.8;
  color: var(--stone);
  max-width: 52ch;
}

/* ── 21. COACHING PAGE ─────────────────────────────────────── */
.coaching-hero {
  display: grid;
  grid-template-columns: 50% 50%;
  min-height: 100vh;
  margin-top: var(--header-h);
  overflow: hidden;
  background: var(--charcoal);
}

.coaching-hero__content {
  padding: var(--section-pad) var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2rem;
  color: var(--white);
}

.coaching-hero__tag {
  color: rgba(250,250,248,0.5);
}

.coaching-hero__headline {
  font-family: var(--font-display);
  font-size: var(--step-hero);
  font-style: italic;
  color: var(--white);
  line-height: 1;
}

.coaching-hero__sub {
  color: rgba(250,250,248,0.65);
  font-size: var(--step-lead);
  line-height: 1.75;
  max-width: 42ch;
}

.coaching-hero__image {
  overflow: hidden;
}

.coaching-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: grayscale(100%);
}

/* Coaching services */
.coaching-services {
  display: flex;
  flex-direction: column;
}

.coaching-service {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 50vh;
  border-bottom: 1px solid var(--border);
}

.coaching-service__image {
  overflow: hidden;
}

.coaching-service__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
}

.coaching-service__content {
  padding: clamp(2.5rem,5vw,5rem) var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1.2rem;
  border-left: 1px solid var(--border);
}

.coaching-service--reverse .coaching-service__image {
  order: 2;
}

.coaching-service--reverse .coaching-service__content {
  order: 1;
  border-left: none;
  border-right: 1px solid var(--border);
}

.coaching-service__name {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  font-style: italic;
  color: var(--charcoal);
  line-height: 1.05;
}

.coaching-service__desc {
  font-size: var(--step-lead);
  line-height: 1.8;
  color: var(--stone);
  max-width: 42ch;
}

.coaching-service__details {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.coaching-service__details li {
  font-size: 0.85rem;
  color: var(--stone);
  display: flex;
  gap: 0.5rem;
}

.coaching-service__details li::before {
  content: "—";
  color: var(--clay-accent);
  flex-shrink: 0;
}

.coaching-service__cta {
  margin-top: 1rem;
}

/* Who this is for (coaching page) */
.who-section {
  padding: var(--section-pad) var(--gutter);
  background: var(--surface);
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--gutter);
  align-items: start;
}

.who-section__tag {
  margin-bottom: 1rem;
}

.who-section__heading {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  line-height: 1.05;
  position: sticky;
  top: calc(var(--header-h) + 2rem);
}

.who-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

.who-col__label {
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--stone);
  margin-bottom: 1rem;
}

.who-col__list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.who-col__list li {
  font-size: 0.9rem;
  color: var(--charcoal);
  display: flex;
  gap: 0.5rem;
}

.who-col__list li::before {
  content: "—";
  color: var(--clay-accent);
  flex-shrink: 0;
}

/* ── 21b. CLIENT JOURNEY PAGE ──────────────────────────────── */
.cj-stories__grid {
  grid-template-columns: repeat(3, 1fr);
}

.cj-card__rule {
  border: none;
  border-top: 1px solid rgba(250,250,248,0.15);
  margin: 0;
}

.cj-card__attr {
  font-size: var(--step-tag);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(250,250,248,0.45);
}

/* ── CLIENT JOURNEY STAGES ──────────────────────────────────── */
.cj-stages {
  background: var(--ivory);
  padding: clamp(5rem, 10vw, 8rem) var(--gutter);
}

.cj-stages__header {
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.cj-stages__headline {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 400;
  font-style: italic;
  color: var(--ink-black);
  line-height: 1.05;
  margin-top: 0.75rem;
}

.cj-stages__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2rem, 4vw, 4rem);
  border-top: 1px solid rgba(22,21,19,0.12);
}

.cj-stage {
  padding-top: clamp(2rem, 3vw, 2.5rem);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.cj-stage__number {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  color: var(--oxblood);
}

.cj-stage__name {
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 1.8vw, 1.6rem);
  font-weight: 400;
  color: var(--ink-black);
  line-height: 1.15;
}

.cj-stage__desc {
  font-size: 0.95rem;
  line-height: 1.8;
  color: rgba(22,21,19,0.65);
  max-width: 36ch;
}

.cj-outcomes {
  background: var(--cream);
  padding: clamp(4rem, 8vw, 6rem) var(--gutter);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3rem;
  text-align: center;
}

.cj-outcomes__headline {
  font-size: clamp(1.6rem, 2.5vw, 2.4rem);
  font-weight: 300;
  color: var(--charcoal);
}

.cj-outcomes__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  text-align: left;
  width: 100%;
}

.cj-outcome {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}

.cj-outcome__name {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--charcoal);
  letter-spacing: 0.02em;
}

.cj-outcome__desc {
  font-size: 0.85rem;
  line-height: 1.7;
  color: var(--stone);
  font-weight: 300;
}

@media (max-width: 860px) {
  .cj-stories__grid { grid-template-columns: 1fr; }
  .cj-outcomes__grid { grid-template-columns: 1fr 1fr; }
}

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

@media (max-width: 640px) {
  /* Contact page: stack to single column */
  .contact-page__inner {
    grid-template-columns: 1fr;
    gap: clamp(2.5rem, 6vw, 4rem);
  }

  /* Results hero: full-width content on mobile */
  .coaching-pg-hero__content {
    width: 100%;
    padding: var(--gutter);
    justify-content: flex-end;
    padding-bottom: 2.5rem;
  }

  /* CJ stages: stack to single column */
  .cj-stages__grid {
    grid-template-columns: 1fr;
  }

  /* Philosophy split: tighten top margin */
  .philosophy-split {
    margin-top: clamp(40px, 8vw, 80px);
  }
  .philosophy-split__label {
    margin-bottom: clamp(40px, 8vw, 80px);
  }
}

/* ── 22. RESULTS PAGE ──────────────────────────────────────── */
.results-hero {
  padding: var(--section-pad) var(--gutter);
  margin-top: var(--header-h);
  max-width: 720px;
}

.results-hero__tag {
  margin-bottom: 1.5rem;
}

.results-hero__headline {
  font-family: var(--font-display);
  font-size: var(--step-hero);
  font-style: italic;
  line-height: 1;
  color: var(--charcoal);
  margin-bottom: 1.5rem;
}

.results-hero__sub {
  font-size: var(--step-lead);
  color: var(--stone);
  line-height: 1.75;
  max-width: 44ch;
}

/* Testimonials full */
.testimonials-full {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--border);
}

.testimonial-row {
  padding: var(--section-pad-sm) var(--gutter);
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--gutter);
  align-items: center;
  border-bottom: 1px solid var(--border);
}

.testimonial-row:nth-child(odd) {
  background: var(--ivory);
}

.testimonial-row:nth-child(even) {
  background: var(--surface);
}

.testimonial-row__quote {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.1rem,2vw,1.6rem);
  line-height: 1.55;
  color: var(--charcoal);
}

.testimonial-row__attribution {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--stone);
  margin-top: 1rem;
}

.testimonial-row__meta {
  padding-left: var(--gutter);
  border-left: 1px solid var(--border);
}

.testimonial-row__detail {
  font-size: 0.82rem;
  color: var(--stone);
  line-height: 1.7;
}

.testimonial-row__detail strong {
  display: block;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--stone);
  margin-bottom: 0.25rem;
}

/* Outcomes grid */
.outcomes-grid-section {
  background: var(--charcoal);
  padding: var(--section-pad) var(--gutter);
}

.outcomes-grid-section__header {
  text-align: center;
  margin-bottom: 3rem;
}

.outcomes-grid-section__tag {
  color: rgba(250,250,248,0.45);
}

.outcomes-grid-section__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  font-style: italic;
  color: var(--white);
  margin-top: 1rem;
}

.outcomes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}

.outcome-item {
  padding: clamp(2rem,4vw,3rem) var(--gutter);
  border-right: 1px solid rgba(250,250,248,0.1);
  border-bottom: 1px solid rgba(250,250,248,0.1);
}

.outcome-item:nth-child(3n) {
  border-right: none;
}

.outcome-item__name {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.4rem,2.5vw,2rem);
  color: var(--white);
  line-height: 1.1;
}

.outcome-item__desc {
  font-size: 0.88rem;
  line-height: 1.75;
  color: rgba(250,250,248,0.55);
  margin-top: 0.5rem;
}

/* ── 23. APPLY PAGE ────────────────────────────────────────── */
.apply-hero {
  padding: var(--section-pad) var(--gutter) var(--section-pad-sm);
  margin-top: var(--header-h);
}

.apply-hero__tag {
  margin-bottom: 1.5rem;
}

.apply-hero__headline {
  font-family: var(--font-display);
  font-size: var(--step-hero);
  font-style: italic;
  line-height: 1;
  color: var(--charcoal);
}

.apply-hero__body {
  font-size: var(--step-lead);
  line-height: 1.8;
  color: var(--stone);
  max-width: 48ch;
  margin-top: 1rem;
}

.apply-form-section {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: var(--gutter);
  padding: 0 var(--gutter) var(--section-pad);
  align-items: start;
}

.apply-form__sidebar {
  position: sticky;
  top: calc(var(--header-h) + 2rem);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.apply-form__sidebar-title {
  font-weight: 600;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--charcoal);
  margin-bottom: 0.75rem;
}

.apply-form__sidebar-items {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.apply-form__sidebar-items li {
  font-size: 0.82rem;
  color: var(--stone);
  line-height: 1.5;
}

.apply-form__sidebar-note {
  font-size: 0.8rem;
  color: var(--stone);
  line-height: 1.7;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

/* Apply form */
.apply-form {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.form-group__label {
  font-size: var(--step-tag);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--stone);
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border);
}

/* ── 23b. QUESTIONNAIRE ────────────────────────────────────── */

/* Ensure [hidden] always wins regardless of display CSS */
.qs-intro[hidden],
.qs-questions[hidden],
.questionnaire__confirmation[hidden] { display: none !important; }

.questionnaire {
  min-height: calc(100vh - var(--header-h));
  margin-top: var(--header-h);
  background: var(--ivory);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(2rem, 4vw, 3rem) var(--gutter);
}

.qs-panel {
  width: 100%;
  max-width: 590px;
  min-height: 580px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* ── INTRO STATE ── */
.qs-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 2rem;
  animation: qs-fade 0.4s var(--ease);
}

.qs-intro__tag {
  color: var(--clay-accent);
  letter-spacing: 0.2em;
  font-size: 0.6rem;
}

.qs-intro__headline {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 3.8vw, 3.2rem);
  font-weight: 300;
  font-style: normal;
  line-height: 1.1;
  color: var(--charcoal);
}

.qs-intro__body {
  font-size: 1.05rem;
  line-height: 1.85;
  color: var(--stone);
  max-width: 40ch;
}

.qs-intro__contact {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: var(--stone);
  text-decoration: none;
  margin-top: 0.25rem;
  transition: color 0.2s;
}
.qs-intro__contact:hover {
  color: var(--oxblood);
}

.qs-start {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--oxblood);
  border: 1px solid var(--oxblood);
  padding: 1em 2.4em;
  cursor: pointer;
  align-self: center;
  transition: background 0.2s var(--ease), color 0.2s var(--ease);
}

.qs-start:hover {
  background: transparent;
  color: var(--oxblood);
}

.qs-intro__links {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.72rem;
  color: rgba(0,0,0,0.35);
  margin-top: -0.5rem;
}

.qs-intro__links a {
  color: rgba(0,0,0,0.45);
  text-decoration: none;
  transition: color 0.2s;
}

.qs-intro__links a:hover { color: var(--oxblood); }
.qs-intro__dot { opacity: 0.3; }

/* ── QUESTIONS STATE ── */
.qs-questions {
  display: flex;
  flex-direction: column;
  min-height: 580px;
  animation: qs-fade 0.35s var(--ease);
}

.qs-questions__header {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 2.5rem;
}

.qs-counter {
  font-size: 0.6rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--stone);
}

#qs-form {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.qs-body {
  flex: 1;
  overflow: hidden;
}

/* Steps */
.questionnaire__step {
  display: none;
  flex-direction: column;
  gap: 1.5rem;
}

.questionnaire__step.is-active {
  display: flex;
  animation: qs-fade 0.32s var(--ease);
}

@keyframes qs-fade {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.questionnaire__tag {
  color: var(--clay-accent);
  letter-spacing: 0.18em;
  font-size: 0.6rem;
}

.questionnaire__question {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  font-weight: 300;
  font-style: normal;
  line-height: 1.2;
  color: var(--charcoal);
  text-align: center;
}

.questionnaire__hint {
  font-size: 0.72rem;
  color: var(--stone);
  margin-top: -0.5rem;
}

/* Full-width stacked answer options */
.questionnaire__chips {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.chip {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: var(--charcoal);
  background: transparent;
  border: 1px solid rgba(0,0,0,0.15);
  padding: 1em 1.5em;
  width: 100%;
  text-align: center;
  cursor: pointer;
  transition: all 0.18s var(--ease);
  border-radius: 0;
  line-height: 1;
}

.chip:hover {
  border-color: var(--oxblood);
  color: var(--oxblood);
}

.chip.is-selected {
  background: var(--clay-accent);
  border-color: var(--clay-accent);
  color: var(--white);
  font-weight: 600;
}

.qs-textarea,
.qs-input {
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 300;
  color: var(--charcoal);
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(0,0,0,0.18);
  padding: 0.75rem 0;
  width: 100%;
  outline: none;
  transition: border-color 0.2s var(--ease);
  resize: none;
}

.qs-textarea:focus,
.qs-input:focus { border-bottom-color: var(--oxblood); }

.qs-textarea::placeholder,
.qs-input::placeholder { color: rgba(0,0,0,0.28); }

.qs-fields {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.qs-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.qs-label {
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--stone);
}

.qs-required { color: var(--oxblood); }

.questionnaire__error {
  font-size: 0.7rem;
  color: var(--oxblood);
  letter-spacing: 0.04em;
}

/* Nav */
.questionnaire__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(0,0,0,0.07);
}

.qs-back {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--stone);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s var(--ease);
}

.qs-back:hover { color: var(--charcoal); }

.qs-next,
.qs-submit {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--oxblood);
  border: 1px solid var(--oxblood);
  padding: 0.85em 2.2em;
  cursor: pointer;
  transition: background 0.2s var(--ease), color 0.2s var(--ease);
}

.qs-next:hover,
.qs-submit:hover {
  background: transparent;
  color: var(--oxblood);
}

/* Confirmation — only after submit */
.questionnaire__confirmation {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  animation: qs-fade 0.5s var(--ease);
}

.questionnaire__confirmation-headline {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300;
  font-style: italic;
  color: var(--charcoal);
  line-height: 1.1;
}

.questionnaire__confirmation-body {
  font-size: 0.95rem;
  line-height: 1.85;
  color: var(--stone);
  max-width: 42ch;
}

/* ── 24. CONTACT PAGE ───────────────────────────────────────── */
.contact-page {
  background: var(--ivory);
  margin-top: var(--header-h);
  padding: clamp(5rem, 10vw, 8rem) var(--gutter);
}

.contact-page__inner {
  max-width: var(--container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(4rem, 8vw, 8rem);
  align-items: start;
}

.contact-page__intro {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.contact-page__form-col {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.ct-main__intro {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.ct-hero__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  font-style: italic;
  line-height: 1.05;
  color: var(--charcoal);
}

.ct-hero__sub {
  font-size: var(--step-lead);
  line-height: 1.75;
  color: var(--stone);
  max-width: 44ch;
}

.ct-main__links {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ct-connect-label {
  font-size: var(--step-tag);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--stone);
}

.ct-icons {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

.ct-contact-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border: 1px solid var(--border-md);
  color: var(--charcoal);
  transition: background 0.2s, color 0.2s;
}

.ct-contact-link:hover {
  background: var(--charcoal);
  color: var(--white);
}

.ct-contact-link__icon {
  width: 16px;
  height: 16px;
}

.ct-main__note {
  font-size: 0.8rem;
  color: var(--stone);
  font-style: italic;
}

.ct-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.ct-field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.ct-label {
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--stone);
}

.ct-input,
.ct-textarea,
.ct-select {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--charcoal);
  background: var(--ivory);
  border: 1px solid var(--border-md);
  padding: 0.75em 1em;
  outline: none;
  transition: border-color 0.2s;
  width: 100%;
  border-radius: 0;
  -webkit-appearance: none;
}

.ct-input:focus,
.ct-textarea:focus,
.ct-select:focus {
  border-color: var(--charcoal);
}

.ct-textarea {
  resize: vertical;
  min-height: 120px;
}

.ct-select-wrap {
  position: relative;
}

.ct-select-wrap::after {
  content: "";
  position: absolute;
  right: 1em;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 5px;
  background: var(--charcoal);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  pointer-events: none;
}

.ct-submit {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.9em 1.8em;
  background: var(--oxblood);
  color: var(--white);
  border: 1px solid var(--oxblood);
  cursor: pointer;
  transition: background 0.3s var(--ease), color 0.3s var(--ease);
  align-self: flex-start;
}

.ct-submit:hover {
  background: transparent;
  color: var(--oxblood);
}

.ct-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.ct-form-success {
  background: var(--ivory);
  border-left: 2px solid var(--oxblood);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ct-form-success[hidden] {
  display: none;
}

.ct-form-success__headline {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-style: italic;
  color: var(--charcoal);
}

.ct-form-success__body {
  font-size: 0.9rem;
  color: var(--stone);
  line-height: 1.7;
}

.ct-form-error {
  font-size: 0.85rem;
  color: #8B3A3A;
  padding: 0.75rem 1rem;
  background: rgba(139,58,58,0.08);
  border-left: 2px solid #8B3A3A;
}

.ct-form-error[hidden] {
  display: none;
}

.ct-form-error a {
  text-decoration: underline;
}

/* ── 25. JOURNEY SLIDER (coaching page) ────────────────────── */
.c-journey__slides {
  position: relative;
  min-height: 280px;
}

.c-journey__slide {
  display: none;
  flex-direction: column;
  gap: 1.2rem;
}

.c-journey__slide.is-active {
  display: flex;
}

.c-journey__slide.is-exit {
  animation: slideExit 0.42s var(--ease) forwards;
}

@keyframes slideExit {
  to { opacity: 0; transform: translateX(-12px); }
}

.c-journey__step {
  font-size: var(--step-tag);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--clay-accent);
}

.c-journey__lead {
  font-family: var(--font-display);
  font-size: var(--step-h3);
  font-style: italic;
  line-height: 1.2;
  color: var(--charcoal);
}

.c-journey__list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.c-journey__list li {
  font-size: var(--step-body);
  color: var(--stone);
  display: flex;
  gap: 0.5rem;
}

.c-journey__list li::before {
  content: "—";
  color: var(--clay-accent);
  flex-shrink: 0;
}

.c-journey__nav {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

.c-journey__prev,
.c-journey__next {
  font-size: 1rem;
  padding: 0.4em 0.8em;
  border: 1px solid var(--border-md);
  background: none;
  color: var(--charcoal);
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.c-journey__prev:hover,
.c-journey__next:hover {
  background: var(--charcoal);
  color: var(--white);
}

.c-journey__count {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--stone);
}

/* Coaching journey layout */
.coaching-journey {
  padding: var(--section-pad) var(--gutter);
  background: var(--surface);
  border-top: 1px solid var(--border);
}

.coaching-journey__header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
}

.coaching-journey__headline {
  font-family: var(--font-display);
  font-size: var(--step-h2);
  line-height: 1.05;
}

.coaching-journey__inner {
  display: grid;
  grid-template-columns: 40% 60%;
  gap: var(--gutter);
  align-items: start;
}

.coaching-journey__image {
  overflow: hidden;
  position: sticky;
  top: var(--header-h);
}

.coaching-journey__image img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  filter: grayscale(100%);
}

/* ── 26. MOBILE NAV ────────────────────────────────────────── */
@media (max-width: 860px) {
  .nav-toggle {
    display: flex;
  }

  .nav-list {
    position: fixed;
    inset: 0;
    background: var(--ivory);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2.5rem;
    transform: translateY(-100%);
    opacity: 0;
    transition: transform 0.4s var(--ease), opacity 0.4s var(--ease);
    z-index: 99;
  }

  .nav-open .nav-list {
    transform: translateY(0);
    opacity: 1;
  }

  .nav-list a {
    font-size: 1.2rem;
  }

  .nav-apply {
    display: none;
  }
}

/* ── 27. RESPONSIVE LAYOUTS ────────────────────────────────── */
@media (max-width: 860px) {
  .hero {
    align-items: flex-end;
  }

  .coaching-hero {
    grid-template-columns: 1fr;
  }

  .coaching-hero__image {
    aspect-ratio: 3/4;
  }

  .about-hero {
    grid-template-columns: 1fr;
  }

  .about-hero__content {
    border-left: none;
  }

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

  .challenge__right {
    border-left: none;
    border-top: 1px solid var(--border);
  }

  .method-section {
    grid-template-columns: 1fr;
  }

  .method-section__image {
    aspect-ratio: 4/3;
  }

  .method-section__content {
    border-left: none;
  }

  .coaching-service {
    grid-template-columns: 1fr;
  }

  .coaching-service--reverse .coaching-service__image {
    order: 0;
  }

  .coaching-service--reverse .coaching-service__content {
    order: 0;
    border-right: none;
  }

  .coaching-service__content {
    border-left: none;
  }

  .who-section {
    grid-template-columns: 1fr;
  }

  .who-section__heading {
    position: static;
  }

  .coaching-journey__inner {
    grid-template-columns: 1fr;
  }

  .coaching-journey__image {
    position: static;
    aspect-ratio: 4/3;
  }

  .ct-main {
    grid-template-columns: 1fr;
  }

  .ct-main__image {
    display: none;
  }

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

  .apply-form__sidebar {
    position: static;
  }
}

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

  .philosophy__principle:nth-child(2n) {
    border-right: none;
  }

  .testimonials__grid {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .journey__steps {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .journey__steps::before {
    display: none;
  }

  .journey-step {
    flex-direction: row;
    text-align: left;
    align-items: flex-start;
  }

  .journey-step__num {
    flex-shrink: 0;
  }

  .faq-section {
    grid-template-columns: 1fr;
  }

  .faq__heading {
    position: static;
  }

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

  .outcome-item:nth-child(3n) {
    border-right: 1px solid rgba(250,250,248,0.1);
  }

  .outcome-item:nth-child(2n) {
    border-right: none;
  }

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

  .credential {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .credential:last-child {
    border-bottom: none;
  }

  .testimonial-row {
    grid-template-columns: 1fr;
  }

  .testimonial-row__meta {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid var(--border);
    padding-top: 1rem;
  }

  .philosophy-belief {
    grid-template-columns: 1fr;
  }

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

  .service-card {
    border-right: none;
  }

  .service-card:nth-last-child(-n+2) {
    border-bottom: 1px solid var(--border-md);
  }

  .service-card:last-child {
    border-bottom: none;
  }

  .footer-mid {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
  }

  .footer-nav {
    flex-direction: column;
    gap: 0.75rem;
  }

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

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

  .philosophy__principle {
    border-right: none;
    border-bottom: 1px solid rgba(250,250,248,0.12);
  }

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

  .outcome-item {
    border-right: none;
  }
}

/* ── 28. UTILITIES ─────────────────────────────────────────── */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}

/* ── 29. MISSING CLASS FILLS (replaces inline styles) ──────── */

/* Light variant for .link-arrow used inside dark sections */
.link-arrow--light {
  color: var(--white);
}
.link-arrow--light:hover {
  opacity: 0.6;
}

/* link-arrow--muted: for 70% white links on dark backgrounds */
.link-arrow--muted {
  color: rgba(250,250,248,0.7);
}

/* Coaching hero actions row */
.coaching-hero__actions {
  margin-top: 1rem;
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  align-items: center;
}

/* Online coaching image placeholder (no photo available) */
.coaching-service__image--placeholder {
  background: var(--surface);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 320px;
}

/* Typographic coming-soon headline inside the placeholder */
.coaching-coming-headline {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-style: italic;
  color: var(--charcoal);
  line-height: 1.1;
  max-width: 16ch;
  text-align: center;
  padding: 3rem;
}

/* Position context for the coming-soon badge inside service content */
.coaching-service__content {
  position: relative;
}

/* Badge when rendered inline (static flow, not absolute) */
.coming-soon-badge--inline {
  position: static;
  align-self: flex-start;
  margin-bottom: 0.5rem;
}

/* Small descriptive note beneath waitlist form */
.waitlist-note {
  font-size: 0.82rem;
  color: var(--stone);
  margin-top: 0.5rem;
}

/* Contact page margin-top for main (accounts for fixed header) */
.ct-main {
  margin-top: var(--header-h);
}

/* Contact page redirect note */
.ct-redirect-note {
  font-size: 0.85rem;
  color: var(--stone);
  margin-top: -0.5rem;
}
.ct-redirect-note a {
  text-decoration: underline;
  color: var(--charcoal);
}

/* Testimonial detail row spacing */
.testimonial-row__detail {
  margin-top: 1rem;
}

/* Centered journey/FAQ CTA wrapper */
.section-cta-center {
  text-align: center;
  margin-top: 3rem;
}

/* Apply sidebar note paragraphs */
.apply-sidebar-note {
  margin-top: 0.75rem;
  font-size: 0.88rem;
  line-height: 1.7;
  color: var(--stone);
}
.apply-sidebar-note strong {
  font-weight: 500;
  color: var(--charcoal);
}

/* ── 30. HOMEPAGE — PHILOSOPHY EDITORIAL ───────────────────── */
.philosophy-editorial {
  padding: var(--section-pad) var(--gutter);
  max-width: 900px;
}
.philosophy-editorial .tag { margin-bottom: 2rem; }
.philosophy-editorial__headline {
  font-family: var(--font-display);
  font-size: var(--step-display);
  font-style: italic;
  font-weight: 400;
  line-height: 1;
  color: var(--charcoal);
  margin-bottom: 2.5rem;
}
.philosophy-editorial__body {
  font-size: var(--step-lead);
  line-height: 1.75;
  color: var(--stone);
  max-width: 52ch;
  margin-bottom: 2rem;
}

/* ── 31. HOMEPAGE — SERVICES EDITORIAL ─────────────────────── */
.services-editorial {
  padding: var(--section-pad) var(--gutter);
  border-top: 1px solid var(--border);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 6vw, 6rem);
  align-items: start;
}
.services-editorial__intro {
  position: sticky;
  top: calc(var(--header-h) + 2rem);
}
.services-editorial__intro .tag { margin-bottom: 1.5rem; }
.services-editorial__sentence {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  line-height: 1.3;
  color: var(--charcoal);
  max-width: 28ch;
}
.services-list {
  display: flex;
  flex-direction: column;
}
.service-item {
  padding: 2.5rem 0;
  border-top: 1px solid var(--border);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  align-items: start;
}
.service-item:last-child {
  border-bottom: 1px solid var(--border);
}
.service-item__name {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 2.8vw, 2.4rem);
  font-weight: 400;
  line-height: 1.1;
  color: var(--charcoal);
  margin-bottom: 0.5rem;
}
.service-item__desc {
  font-size: 0.9rem;
  color: var(--stone);
  line-height: 1.6;
  margin-bottom: 1rem;
}
.service-item__waitlist { grid-column: 1 / -1; }

/* ── 32. HOMEPAGE — BELIEF MOMENT ───────────────────────────── */
.belief-moment {
  padding: clamp(3rem, 6vw, 5rem) var(--gutter);
  background: #fff;
  text-align: center;
}
.belief-moment__line {
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 300;
  font-size: clamp(0.95rem, 3vw, 1.6rem);
  line-height: 1.3;
  color: var(--ink-black);
  max-width: none;
}

/* ── 33. HOMEPAGE — EDITORIAL IMAGE ─────────────────────────── */
.editorial-image {
  position: relative;
  height: 85vh;
  overflow: hidden;
}
.editorial-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.editorial-image__caption {
  position: absolute;
  bottom: 2rem;
  right: var(--gutter);
  font-family: var(--font-body);
  font-size: var(--step-tag);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(250,250,248,0.6);
}

/* ── 34. HOMEPAGE — PHILOSOPHY PROSE ────────────────────────── */
.philosophy-prose {
  padding: clamp(7rem, 14vw, 12rem) var(--gutter);
  background: var(--ivory);
  max-width: 860px;
}
.philosophy-prose .tag {
  display: block;
  margin-bottom: 2.5rem;
}
.philosophy-prose__text {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--step-h2);
  line-height: 1.25;
  color: var(--charcoal);
  max-width: 44ch;
  margin-bottom: 2.5rem;
}

/* ── 35. HOMEPAGE — TESTIMONIALS STORY ──────────────────────── */
.testimonials-story {
  padding: var(--section-pad) var(--gutter);
  border-top: 1px solid var(--border);
}
.testimonials-story > .tag {
  display: block;
  margin-bottom: clamp(4rem, 8vw, 7rem);
}
.testimonials-story__cta {
  margin-top: 3rem;
}

/* Pull quote — base */
.pull-quote {
  margin-bottom: clamp(4rem, 8vw, 7rem);
}
.pull-quote__mark {
  font-family: var(--font-display);
  font-size: 4rem;
  line-height: 0.7;
  color: var(--clay-accent);
  display: block;
  margin-bottom: 1.25rem;
  opacity: 0.5;
}
.pull-quote__text {
  font-family: var(--font-display);
  font-style: italic;
  line-height: 1.25;
  color: var(--charcoal);
  margin-bottom: 1.25rem;
}
.pull-quote__attr {
  font-size: var(--step-tag);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--stone);
}

/* Pull quote — dominant (large, anchored left) */
.pull-quote--dominant {
  max-width: 960px;
  margin-bottom: clamp(7rem, 14vw, 12rem);
}
.pull-quote--dominant .pull-quote__text {
  font-size: var(--step-h1);
}

/* Pull quote — quiet (smaller, second and third voices) */
.pull-quote--quiet {
  max-width: 560px;
  margin-bottom: clamp(3rem, 6vw, 5rem);
}
.pull-quote--quiet .pull-quote__text {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
}
.pull-quote--quiet.pull-quote--right {
  margin-left: auto;
}

/* ── 33. HOMEPAGE — CTA MINIMAL ────────────────────────────── */
.cta-minimal {
  padding: clamp(3.5rem, 6vw, 5rem) var(--gutter);
  background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)),
              url('../assets/images/gym-concrete.jpg') center/cover no-repeat;
  color: var(--white);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
.cta-minimal .tag {
  color: rgba(241,235,225,0.55);
  letter-spacing: 0.22em;
}
.cta-minimal__headline {
  font-family: var(--font-display);
  font-style: normal;
  letter-spacing: 0.08em;
  font-size: clamp(1.75rem, 3.9vw, 3.5rem);
  font-weight: 400;
  line-height: 1.05;
  color: var(--white);
}

/* ── 34. RESULTS PAGE — CTA OVERRIDE ───────────────────────── */
.cta-minimal--results {
  background: var(--oxblood);
}
.cta-minimal--results .cta-minimal__headline {
  font-size: 20px;
  font-style: normal;
}

/* ── 34. COACHING PAGE — CTA OVERRIDE ──────────────────────── */
.cta-minimal--coaching {
  position: relative;
  background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),
              url('../assets/images/gym-warm.jpg') center/cover no-repeat;
}
.cta-minimal--coaching::before {
  content: '';
  position: absolute;
  top: -60px;
  left: 0;
  right: 0;
  height: 120px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  mask-image: linear-gradient(to bottom, transparent 0%, black 40%, black 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 40%, black 60%, transparent 100%);
  pointer-events: none;
  z-index: 1;
}

/* ── 36. RESPONSIVE — NEW SECTIONS ─────────────────────────── */
@media (max-width: 860px) {
  .belief-moment {
    padding: clamp(5rem, 12vw, 8rem) var(--gutter);
  }
  .editorial-image {
    height: 60vh;
  }
  .services-editorial {
    grid-template-columns: 1fr;
  }
  .services-editorial__intro {
    position: static;
  }
  .pull-quote--quiet.pull-quote--right {
    margin-left: 0;
  }
  .pull-quote--dominant .pull-quote__text {
    font-size: clamp(2rem, 8vw, 3.5rem);
  }
}

/* ── 37. HOMEPAGE — PHILOSOPHY SPLIT ───────────────────────── */
.philosophy-split {
  display: flex;
  flex-direction: column;
  background: var(--ivory);
  padding: clamp(1rem, 2vw, 1.5rem) clamp(2rem, 6vw, 6rem) clamp(2.5rem, 4vw, 3.5rem);
  margin-top: clamp(80px, 10vw, 120px);
  gap: 0;
}

.philosophy-split__label {
  text-align: center;
  letter-spacing: 0.18em;
  font-size: clamp(1.1rem, 4vw, 28px);
  color: var(--clay-accent);
  margin-bottom: clamp(80px, 10vw, 120px);
}

.philosophy-split__columns {
  display: grid;
  grid-template-columns: 44% 56%;
  align-items: center;
  gap: clamp(48px, 5vw, 64px);
}

.philosophy-split__image {
  position: relative;
  overflow: hidden;
  border-radius: 2px;
}

.philosophy-split__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  aspect-ratio: 3 / 4;
}

.philosophy-split__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: clamp(24px, 2.5vw, 32px);
  background: none;
}

.philosophy-split__text {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.15rem, 1.6vw, 1.45rem);
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: var(--charcoal);
  max-width: 38ch;
  width: 100%;
  background: none;
}

.philosophy-split__content .link-arrow {
  border-bottom: none;
  padding-bottom: 0;
  letter-spacing: 4px;
}

/* ── 38. HOMEPAGE — SERVICES GLASS CARDS ───────────────────── */
.services-glass {
  background: linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)),
              url('../assets/images/gym-dark.jpg') center/cover no-repeat;
  padding: clamp(4rem, 8vw, 7rem) var(--gutter);
}
.services-glass--home {
  background: var(--ivory) !important;
  padding: clamp(2rem, 4vw, 3rem) var(--gutter) clamp(5rem, 10vw, 8rem);
}
.services-glass--home .services-glass__grid {
  gap: 2.5rem;
}
.services-glass--home .glass-card {
  min-height: 500px;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none;
  border-radius: 0;
  padding: clamp(2rem, 3vw, 2.5rem);
  color: var(--white);
  text-align: left;
  align-items: flex-start;
  justify-content: space-between;
}
.services-glass--home .services-glass__grid .glass-card:nth-child(1) {
  background: linear-gradient(rgba(0,0,0,0.44), rgba(0,0,0,0.44)),
              url('../assets/images/coaching-hero.jpg') center top/cover no-repeat;
  transition-delay: 0s;
  box-shadow: 7px 7px 0 var(--ink-black);
}
.services-glass--home .services-glass__grid .glass-card:nth-child(2) {
  background: linear-gradient(rgba(0,0,0,0.44), rgba(0,0,0,0.44)),
              url('../assets/images/gym-outdoor.jpg') center/cover no-repeat;
  transition-delay: 0.15s;
  box-shadow: 7px 7px 0 var(--ink-black);
}
.services-glass--home .services-glass__grid .glass-card:nth-child(3) {
  background: linear-gradient(rgba(0,0,0,0.44), rgba(0,0,0,0.44)),
              url('../assets/images/gym-warm.jpg') center/cover no-repeat;
  transition-delay: 0.3s;
  box-shadow: 7px 7px 0 var(--ink-black);
}
.services-glass--home .services-glass__grid .glass-card:nth-child(1):hover {
  background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)),
              url('../assets/images/coaching-hero.jpg') center top/cover no-repeat;
}
.services-glass--home .services-glass__grid .glass-card:nth-child(2):hover {
  background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)),
              url('../assets/images/gym-outdoor.jpg') center/cover no-repeat;
}
.services-glass--home .services-glass__grid .glass-card:nth-child(3):hover {
  background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)),
              url('../assets/images/gym-warm.jpg') center/cover no-repeat;
}
.home-card__eyebrow {
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.home-card__bottom {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}
.services-glass--home .glass-card .glass-card__name {
  font-size: clamp(1.4rem, 1.9vw, 2rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.1;
}
.services-glass--home .glass-card__cta {
  text-decoration: none;
  align-self: flex-start;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

.services-glass__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.glass-card {
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease);
}

.glass-card:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.18);
}

.glass-card__name {
  font-family: var(--font-body);
  font-size: clamp(1.2rem, 1.8vw, 1.6rem);
  font-weight: 300;
  font-style: normal;
  color: var(--white);
  line-height: 1.1;
  letter-spacing: 0.02em;
}

.glass-card__cta {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(250, 250, 248, 0.55);
  border-bottom: 1px solid rgba(250, 250, 248, 0.2);
  padding-bottom: 1px;
  align-self: flex-start;
  transition: color 0.2s;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
  cursor: pointer;
}

.glass-card__cta:hover {
  color: var(--white);
}

.services-glass .service-row__waitlist-area {
  margin-top: 2rem;
  padding: 0;
}

/* ── 38b. HOMEPAGE — SERVICES NUMBERED (dark) — legacy ─────── */
.services-numbered {
  display: grid;
  grid-template-columns: 38% 62%;
  background: var(--navy-deep);
  color: var(--white);
  border-top: 1px solid rgba(250,250,248,0.08);
}

.services-numbered__left {
  padding: clamp(5rem, 10vw, 8rem) var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 3rem;
  border-right: 1px solid rgba(250,250,248,0.1);
  background: #0C1320;
}

.services-numbered__tag {
  color: rgba(250,250,248,0.4);
}

.services-numbered__headline {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.8rem, 3.5vw, 3rem);
  line-height: 1.1;
  color: var(--white);
  font-weight: 400;
}

.services-numbered__right {
  padding: clamp(5rem, 10vw, 8rem) var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.service-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2.5rem 0;
  border-top: 1px solid rgba(250,250,248,0.1);
}

.service-row__meta {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.service-row--last {
  border-bottom: 1px solid rgba(250,250,248,0.1);
}

.service-row__num {
  font-family: var(--font-body);
  font-size: 0.62rem;
  letter-spacing: 0.16em;
  color: rgba(250,250,248,0.28);
  font-weight: 500;
}

.service-row__name {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2vw, 2rem);
  font-weight: 400;
  color: var(--white);
  line-height: 1.1;
}

.service-row__cta {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(250,250,248,0.5);
  border-bottom: 1px solid rgba(250,250,248,0.2);
  padding-bottom: 1px;
  transition: color 0.2s;
  white-space: nowrap;
}

.service-row__cta:hover {
  color: var(--white);
}

.service-row__cta--muted {
  color: rgba(250,250,248,0.3);
  border-bottom-color: rgba(250,250,248,0.12);
  cursor: default;
}

.service-row__cta--toggle {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(250,250,248,0.5);
  background: none;
  border: none;
  border-bottom: 1px solid rgba(250,250,248,0.2);
  padding: 0 0 1px 0;
  cursor: pointer;
  transition: color 0.2s;
  white-space: nowrap;
}

.service-row__cta--toggle:hover {
  color: var(--white);
}

.service-row__waitlist-area {
  padding: 1.75rem 0 0 3.5rem;
}

/* Waitlist form on dark background */
.waitlist-form--dark {
  display: flex;
  gap: 0;
  max-width: 400px;
}

.waitlist-form--dark input[type="email"] {
  flex: 1;
  padding: 0.7em 1em;
  font-family: var(--font-body);
  font-size: 0.82rem;
  border: 1px solid rgba(250,250,248,0.15);
  background: rgba(250,250,248,0.06);
  color: var(--white);
  outline: none;
  transition: border-color 0.2s;
  border-radius: 0;
}

.waitlist-form--dark input[type="email"]::placeholder {
  color: rgba(250,250,248,0.3);
}

.waitlist-form--dark input[type="email"]:focus {
  border-color: rgba(250,250,248,0.4);
}

.waitlist-form--dark button {
  padding: 0.7em 1.2em;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--white);
  color: var(--charcoal);
  border: 1px solid var(--white);
  cursor: pointer;
  transition: background 0.2s;
  white-space: nowrap;
}

.waitlist-form--dark button:hover {
  background: rgba(250,250,248,0.85);
}

.services-numbered .waitlist-success {
  font-size: 0.85rem;
  color: rgba(250,250,248,0.6);
  padding: 0.75rem 0;
}

/* ── 39. HOMEPAGE — CLIENT JOURNEYS ────────────────────────── */
.client-journeys {
  background: var(--cream);
  padding: clamp(3rem, 6vw, 5rem) var(--gutter);
  display: flex;
  align-items: center;
  justify-content: center;
  border-top: 1px solid var(--border);
}

.client-journeys__link {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--charcoal);
  border-bottom: 1px solid var(--charcoal);
  padding-bottom: 2px;
  transition: opacity 0.2s;
}

.client-journeys__link:hover {
  opacity: 0.5;
}

/* ── 39b. HOMEPAGE — TESTIMONIALS TRIO ──────────────────────── */
.testimonials-trio {
  background: var(--cream);
  border-top: 1px solid var(--border);
}

.testimonials-trio__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: stretch;
}

.testimonial-col {
  padding: clamp(2.5rem, 4vw, 3.5rem) clamp(1.25rem, 2.5vw, 2rem);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.testimonial-col:last-child {
  border-right: none;
}

.testimonial-col--photo {
  padding: 0;
  border-right: 1px solid var(--border);
  overflow: hidden;
}

.testimonial-col--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  min-height: 320px;
}

.testimonial-col__stories {
  margin-top: auto;
}

.testimonial-col__mark {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 2.5rem;
  line-height: 1;
  color: var(--charcoal);
  opacity: 0.25;
  display: block;
}

.testimonial-col__text {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1rem, 1.4vw, 1.25rem);
  line-height: 1.65;
  color: var(--charcoal);
  flex: 1;
}

.testimonial-col__rule {
  border: none;
  border-top: 1px solid var(--border);
  margin: 0;
}

.testimonial-col__attr {
  font-family: var(--font-body);
  font-size: var(--step-tag);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--stone);
}

.testimonials-trio__footer {
  padding: 2rem var(--gutter) clamp(3.5rem, 7vw, 5rem);
  border-top: 1px solid var(--border);
}

/* ── 40. HOMEPAGE — FAQ SPLIT ───────────────────────────────── */
.faq-split {
  background: var(--ivory);
  color: var(--ink-black);
  padding: clamp(2rem, 4vw, 3rem) var(--gutter);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.faq-split__header {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  text-align: center;
  align-items: center;
}

.faq-split__tag {
  color: rgba(22,21,19,0.45);
}

.faq-split__heading {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 17px;
  line-height: 1.05;
  color: var(--ink-black);
  font-weight: 400;
}

.faq-split__right {
  background: transparent;
  border-left: none;
  padding: 0;
}

.faq-split__right .faq-list {
  /* inherits existing faq-list styles */
}

.faq-split .faq-item {
  border-bottom-color: rgba(22,21,19,0.12);
}

.faq-split .faq-item:first-child {
  border-top: 1px solid rgba(22,21,19,0.12);
}

.faq-split .faq-q {
  color: var(--ink-black);
}

.faq-split .faq-q__icon::before,
.faq-split .faq-q__icon::after {
  background: var(--ink-black);
}

.faq-split .faq-a__inner {
  color: rgba(22,21,19,0.6);
}

/* ── 41. RESPONSIVE — NEW SECTIONS ─────────────────────────── */
@media (max-width: 900px) {
  .philosophy-split__columns {
    grid-template-columns: 1fr;
  }

  .philosophy-split__image img {
    aspect-ratio: 4 / 3;
  }

  .philosophy-split__content {
    align-items: center;
    text-align: center;
  }

  .services-glass__grid {
    grid-template-columns: 1fr;
  }

  .services-numbered {
    grid-template-columns: 1fr;
  }

  .services-numbered__left {
    border-right: none;
    border-bottom: 1px solid rgba(250,250,248,0.1);
    padding-bottom: clamp(3rem, 6vw, 5rem);
  }

  .services-numbered__right {
    padding-top: clamp(2rem, 5vw, 4rem);
  }

  .faq-split__right {
    border-left: none;
  }
}

@media (max-width: 660px) {
  .testimonials-trio__grid {
    grid-template-columns: 1fr 1fr;
  }

  .testimonial-col--photo {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 7;
    min-height: unset;
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .testimonial-col--photo img {
    min-height: unset;
  }

  .testimonial-col {
    border-right: none;
    border-bottom: 1px solid var(--border);
  }

  .testimonial-col:last-child {
    border-bottom: none;
  }

  .service-row {
    padding: 1.75rem 0;
  }

  .service-row__name {
    font-size: clamp(1.1rem, 4vw, 1.4rem);
  }
}
