/* =====================================================================
   The Morphic Field — Pro Theme / content.css
   Page-specific content sections (hero, bridge, services, pricing, FAQ,
   testimonials, blog, about, soul/advanced/group programs, courses, etc.)
   ===================================================================== */

/* ---------- Hero ---------- */
.hero,
.section--hero{
  position: relative;
  padding-top: clamp(5rem, 10vw, 8rem);
  padding-bottom: clamp(4rem, 8vw, 6.5rem);
  background: var(--cream);
  overflow: hidden;
}
.hero > .container{ position: relative; z-index: 2; }

.hero h1{
  max-width: 22ch;
  margin-bottom: 0;
}
.hero h1 em,
.hero h1 i{
  font-style: italic;
  color: var(--clay);
  font-weight: 400;
}

.hero-copy-group{
  display: flex;
  flex-direction: column;
  max-width: 640px;
}
.hero-subheading{
  margin-top: 1.5rem;
  color: var(--ink-soft);
  font-size: var(--t-md);
  max-width: 54ch;
}
.hero__actions,
.hero-actions,
.hero-cta-group{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  margin-top: 2.25rem;
}

/* Soft decorative field lines (replaces old dark resonance) */
.resonance-field,
.hero__vignette{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.resonance-field svg{
  position: absolute;
  right: -6%;
  top: 10%;
  width: min(720px, 55%);
  max-width: 55%;
  opacity: 0.35;
}
.resonance-field circle{
  fill: none;
  stroke: var(--clay);
  stroke-width: 0.6;
  opacity: 0.4;
}
.resonance-field circle:nth-child(1){ animation: field-pulse 8s ease-in-out infinite; }
.resonance-field circle:nth-child(2){ animation: field-pulse 8s ease-in-out infinite .6s; }
.resonance-field circle:nth-child(3){ animation: field-pulse 8s ease-in-out infinite 1.2s; }
.resonance-field circle:nth-child(4){ animation: field-pulse 8s ease-in-out infinite 1.8s; }
.resonance-field circle:nth-child(5){ animation: field-pulse 8s ease-in-out infinite 2.4s; }
.resonance-field circle:nth-child(6){ animation: field-pulse 8s ease-in-out infinite 3s; }
.resonance-field circle:nth-child(7){ animation: field-pulse 8s ease-in-out infinite 3.6s; }
.hero__vignette{
  background:
    radial-gradient(700px 420px at 85% 30%, rgba(181,107,73,.07), transparent 60%),
    radial-gradient(700px 420px at 15% 80%, rgba(20,36,63,.05), transparent 60%);
}
@keyframes field-pulse{
  0%, 100%{ opacity: .2; transform: scale(1); }
  50%{ opacity: .55; transform: scale(1.03); }
}

/* About hero */
.hero--about{ padding-top: clamp(5rem, 10vw, 8rem); }
.hero-about__meta{
  font-family: var(--ff-body);
  font-size: .72rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--ink-dim);
  margin-bottom: 1rem;
}
.hero-about__description{
  margin-top: 1.25rem;
  color: var(--ink-soft);
  font-size: var(--t-md);
  max-width: 60ch;
}

/* ---------- Field-movement bridge (homepage intro) ---------- */
.field-movement-bridge,
.field-movement-bridge--homepage,
.bridge,
.bridge__inner{
  text-align: center;
  padding: clamp(3rem, 6vw, 4.5rem) 0;
  background: var(--cream-soft);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.field-movement-bridge h2,
.bridge h2{
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  margin: 0 auto;
  max-width: 22ch;
}
.field-movement-bridge p,
.bridge p{
  margin: 1rem auto 0;
  max-width: 52ch;
  color: var(--ink-soft);
  font-size: var(--t-md);
}

/* ---------- Transition note ---------- */
.transition-note{
  background: var(--cream-soft);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.transition-note__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
  align-items: center;
}
@media (min-width: 900px){ .transition-note__grid{ grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 5vw, 4rem); } }
.transition-note__media{
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  background: var(--paper);
}
.transition-note__media img{
  width: 100%; height: 100%;
  object-fit: cover;
  filter: saturate(.92) contrast(1.02);
}
.transition-note__lead{
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.4rem, 2.8vw, 2rem);
  line-height: 1.35;
  color: var(--ink-strong);
  margin-bottom: 1rem;
}
.transition-note__pivot{
  color: var(--ink-soft);
  font-size: var(--t-md);
}

/* ---------- Welcome / meet block ---------- */
.welcome-morphic,
.welcome-block{ padding: var(--section-y) 0; }

/* ---------- Steps ---------- */
.steps{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
  counter-reset: step;
}
@media (min-width: 780px){ .steps{ grid-template-columns: repeat(3, 1fr); } }
.step{
  padding-top: 1.5rem;
  border-top: 1px solid var(--clay);
  position: relative;
}
.step__number{
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 400;
  color: var(--clay);
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1;
  margin-bottom: .5rem;
  display: block;
}
.step h3{
  font-size: 1.3rem;
  margin: 0 0 .5rem;
  color: var(--ink-strong);
}
.step p{ color: var(--ink-soft); font-size: .96rem; }

/* ---------- Feature grid ---------- */
.feature-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 720px){ .feature-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .feature-grid{ grid-template-columns: repeat(3, 1fr); } }
.feature-item{
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}
.feature-item h3{
  font-size: 1.2rem;
  margin: 0 0 .55rem;
  color: var(--ink-strong);
}
.feature-item p{ color: var(--ink-soft); font-size: .95rem; }
.feature-grid--cards .feature-item{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: var(--space-6);
  border-top: 1px solid var(--line);
}

/* ---------- Service / practice / course / blog cards ---------- */
.card--service,
.card--blog,
.practice-card{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.card--service:hover,
.card--blog:hover,
.practice-card:hover{
  border-color: var(--clay);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.card--service h3,
.card--blog h3,
.practice-card h3{
  font-size: 1.4rem;
  margin: 0 0 .75rem;
}
.card--service p,
.card--blog p,
.practice-card p{ color: var(--ink-soft); }
.card--service-featured{
  border: 1px solid var(--clay);
  background: linear-gradient(180deg, rgba(181,107,73,.06), var(--paper) 40%);
  position: relative;
}
.card--service-featured::before{
  content: "Most chosen";
  position: absolute;
  top: -12px;
  left: var(--space-6);
  background: var(--clay);
  color: var(--cream);
  font-family: var(--ff-body);
  font-size: .65rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  font-weight: 500;
  padding: .35rem .7rem;
}

.practice-card__icon{
  width: 56px; height: 56px;
  border: 1px solid var(--line-strong);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--clay);
  background: var(--cream);
  margin-bottom: 1.25rem;
}
.practice-card__icon svg{ width: 24px; height: 24px; }

/* ---------- Testimonial cards ---------- */
.card--testimonial,
.group-testimonial-card,
.advanced-participant-testimonials article{
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 3px solid var(--clay);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 1rem;
}
.card--testimonial q,
.group-testimonial-card q{
  font-family: var(--ff-display);
  font-style: italic;
  font-size: 1.1rem;
  line-height: 1.5;
  color: var(--ink-strong);
  display: block;
  quotes: none;
}
.card--testimonial q::before,
.card--testimonial q::after{ content: ""; }
.testimonial-author,
.card--testimonial cite,
.card--testimonial footer,
.group-testimonial-card cite{
  font-family: var(--ff-body);
  font-style: normal;
  font-weight: 500;
  font-size: .72rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--clay);
  margin-top: auto;
}
.testimonial-context{
  display: block;
  font-family: var(--ff-body);
  font-style: normal;
  font-weight: 400;
  font-size: .7rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ink-dim);
  margin-top: .25rem;
}
.testimonial-slider,
.advanced-participant-testimonials{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 780px){
  .testimonial-slider,
  .advanced-participant-testimonials{ grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1100px){
  .testimonial-slider{ grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Pricing ---------- */
.pricing-card{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  height: 100%;
  transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.pricing-card:hover{
  border-color: var(--clay);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.pricing-card h3{
  font-size: clamp(1.4rem, 2vw, 1.6rem);
  margin: 0;
}
.pricing-card__emotion{
  font-family: var(--ff-display);
  font-style: italic;
  color: var(--clay);
  font-size: 1rem;
}
.pricing-card__path{
  font-family: var(--ff-body);
  font-size: .72rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--ink-dim);
}
.pricing-card .price,
.pricing-card__price{
  font-family: var(--ff-display);
  font-size: clamp(1.7rem, 2.8vw, 2.2rem);
  color: var(--ink-strong);
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1;
}
.pricing-card--featured{
  border-color: var(--clay);
  background: linear-gradient(180deg, rgba(181,107,73,.06), var(--paper) 45%);
  position: relative;
}
.pricing-card--featured::before{
  content: "Most chosen";
  position: absolute;
  top: -12px; left: var(--space-6);
  background: var(--clay);
  color: var(--cream);
  font-family: var(--ff-body);
  font-size: .65rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  font-weight: 500;
  padding: .35rem .7rem;
}
.pricing-cta-primary{ margin-top: 1rem; }
.pricing-cta-secondary{ margin-top: .25rem; }
.pricing-cta-link{
  font-family: var(--ff-body);
  font-size: .78rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--clay);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.pricing-cta-link::after{ content: "→"; transition: transform var(--dur-fast) var(--ease); }
.pricing-cta-link:hover{ color: var(--clay-dark); }
.pricing-cta-link:hover::after{ transform: translateX(3px); }
.pricing-bridge{
  text-align: center;
  font-family: var(--ff-display);
  font-style: italic;
  color: var(--ink-soft);
  margin: 2rem 0;
  font-size: 1.1rem;
}

/* ---------- Experience / who-this-is-for ---------- */
.experience-layout,
.who-this-layout{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 900px){
  .experience-layout,
  .who-this-layout{ grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 5vw, 4rem); }
}
.session-bullets,
.checklist,
.program-benefits-list,
.soul-checklist--two-col,
.soul-checklist--star,
.soul-checklist--cross,
.stlp-is-you{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .7rem;
}
.session-bullets li,
.checklist li,
.program-benefits-list li,
.soul-checklist--two-col li,
.stlp-is-you li{
  padding-left: 1.5rem;
  position: relative;
  color: var(--ink-soft);
  font-size: .97rem;
  line-height: 1.55;
}
.session-bullets li::before,
.checklist li::before,
.program-benefits-list li::before,
.soul-checklist--two-col li::before,
.stlp-is-you li::before{
  content: "";
  position: absolute;
  left: 0; top: .7em;
  width: 14px; height: 1px;
  background: var(--clay);
}
.soul-checklist--star li{ padding-left: 1.6rem; position: relative; color: var(--ink-soft); }
.soul-checklist--star li::before{ content: "☆"; color: var(--clay); position: absolute; left: 0; top: 0; }
.soul-checklist--cross li{ padding-left: 1.6rem; position: relative; color: var(--ink-dim); }
.soul-checklist--cross li::before{ content: "×"; color: var(--ink-dim); position: absolute; left: 0; top: 0; font-weight: 500; }
.soul-checklist--two-col{ display: grid; gap: .7rem; }
@media (min-width: 720px){ .soul-checklist--two-col{ grid-template-columns: repeat(2, 1fr); gap: .7rem 1.5rem; } }

.session-key-message,
.soul-note{
  font-family: var(--ff-display);
  font-style: italic;
  font-size: 1.15rem;
  line-height: 1.45;
  color: var(--ink-strong);
  border-left: 3px solid var(--clay);
  padding: .25em 0 .25em 1.25rem;
  margin: 1.5rem 0;
  max-width: 46ch;
}

/* ---------- Courses hub ---------- */
.courses-hub-hero{ padding: var(--section-y) 0; }
.courses-hub-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 720px){ .courses-hub-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .courses-hub-grid{ grid-template-columns: repeat(3, 1fr); } }
.course-hub-card{
  background: var(--paper);
  border: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.course-hub-card:hover{ border-color: var(--clay); transform: translateY(-2px); }
.course-hub-card__media{
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}
.course-hub-card__media img{
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(.92);
  transition: transform var(--dur-slow) var(--ease), filter var(--dur-slow) var(--ease);
}
.course-hub-card:hover .course-hub-card__media img{ transform: scale(1.03); filter: saturate(1); }
.course-hub-card__body{ padding: var(--space-6); display: flex; flex-direction: column; gap: .6rem; }
.course-hub-card__tag{
  align-self: flex-start;
  display: inline-flex;
  padding: .25rem .6rem;
  font-family: var(--ff-body);
  font-size: .65rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  background: var(--cream-soft);
  color: var(--ink-soft);
  border: 1px solid var(--line);
}
.course-hub-card__tag--live{
  background: var(--clay);
  color: var(--cream);
  border-color: var(--clay);
}

/* STLP */
.stlp-hero{ padding: var(--section-y) 0; }
.stlp-section{ padding: var(--section-y) 0; }
.stlp-section:nth-of-type(even){ background: var(--cream-soft); }
.stlp-soft-cards{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 780px){ .stlp-soft-cards{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px){ .stlp-soft-cards{ grid-template-columns: repeat(3, 1fr); } }
.stlp-grid-2{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 780px){ .stlp-grid-2{ grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 5vw, 4rem); } }

.stlp-is-you li{ padding-left: 1.6rem; }
.stlp-is-you li::before{
  content: "→";
  width: auto; height: auto;
  background: transparent;
  color: var(--clay);
  top: .05em;
  font-weight: 500;
}
.stlp-price__box{
  text-align: center;
  border: 1px solid var(--clay);
  padding: var(--space-6);
  background: linear-gradient(180deg, rgba(181,107,73,.06), var(--paper));
  max-width: 420px;
  margin: 2rem auto;
}
.stlp-price__strike{
  text-decoration: line-through;
  color: var(--ink-dim);
  font-size: 1.1rem;
  display: block;
  margin-bottom: .35rem;
}
.stlp-price__value{
  font-family: var(--ff-display);
  font-size: clamp(2rem, 3.8vw, 3rem);
  color: var(--ink-strong);
  font-weight: 500;
  letter-spacing: -.015em;
  line-height: 1;
}

/* ---------- Soul / Advanced / Group programs ---------- */
.soul-hero{ padding: var(--section-y) 0; }
.soul-hero__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
  align-items: center;
}
@media (min-width: 900px){ .soul-hero__grid{ grid-template-columns: 6fr 5fr; gap: clamp(2.5rem, 5vw, 4rem); } }
.soul-section{ padding: var(--section-y) 0; }
.soul-section--narrow{ padding: clamp(3rem, 6vw, 5rem) 0; }
.soul-section:nth-of-type(even){ background: var(--cream-soft); }
.soul-chip-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
}
.soul-chip-grid > *{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 1rem 1.2rem;
  font-size: .95rem;
  color: var(--ink-soft);
}
.soul-about-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
  align-items: center;
}
@media (min-width: 900px){ .soul-about-grid{ grid-template-columns: 5fr 7fr; gap: clamp(2.5rem, 5vw, 4rem); } }

.advanced-hero-image-section{ padding: var(--section-y) 0; }
.advanced-hero-image-container{ max-width: var(--col-max); margin: 0 auto; padding: 0 var(--container-pad); }
.advanced-hero-image,
.advanced-hero-image-wrap,
.group-hero-image-wrap,
.hero-image,
.hero-image-wrap,
.hero-image-frame,
.hero-image-container{
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  background: var(--paper);
}
.advanced-hero-image img,
.advanced-hero-image-wrap img,
.group-hero-image-wrap img,
.hero-image img,
.hero-image-wrap img,
.hero-image-frame img,
.hero-image-container img{
  width: 100%; height: 100%;
  object-fit: cover;
  filter: saturate(.92) contrast(1.02);
}
.hero-image-section{ padding: var(--section-y) 0; }
.hero-inner{ max-width: var(--col-max); margin: 0 auto; padding: 0 var(--container-pad); }
.hero-transition{ padding: clamp(2rem, 5vw, 4rem) 0; text-align: center; }
.hero-ctx{ font-size: .92rem; color: var(--ink-dim); margin-top: 1rem; font-family: var(--ff-body); letter-spacing: .03em; }
.hero-copy-group--one,
.hero-copy-group--two,
.hero-copy-group--three{ max-width: 640px; }
.hero-author{ margin-top: 1.5rem; display: flex; align-items: center; gap: .85rem; color: var(--ink-soft); font-size: .9rem; }
.hero-author img{ width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.advanced-programs-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 900px){ .advanced-programs-grid{ grid-template-columns: repeat(2, 1fr); } }
.program-card--primary{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: var(--space-6);
}
.program-anchor{ scroll-margin-top: 100px; }
.program-benefits-list li::before{
  content: "→";
  width: auto; height: auto;
  background: transparent;
  color: var(--clay);
  top: .05em;
  font-weight: 500;
}
.program-cta-block{
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}

.hero--group{ padding: var(--section-y) 0; }
.featured-event{
  border: 1px solid var(--clay);
  padding: var(--space-6);
  background: linear-gradient(180deg, rgba(181,107,73,.06), var(--paper));
  position: relative;
}
.event-pill{
  display: inline-flex;
  background: var(--clay);
  color: var(--cream);
  font-family: var(--ff-body);
  font-size: .65rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  font-weight: 500;
  padding: .35rem .7rem;
  margin-bottom: 1rem;
}
.event-highlight{
  font-family: var(--ff-display);
  font-style: italic;
  color: var(--clay);
}
.experience-block{ padding-top: 1.5rem; border-top: 1px solid var(--line); }
.group-testimonials-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 780px){ .group-testimonials-grid{ grid-template-columns: repeat(2, 1fr); } }

/* Transformations / case studies */
.featured-client-experiences{ padding: var(--section-y) 0; }
.featured-client-experiences-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 900px){ .featured-client-experiences-grid{ grid-template-columns: repeat(2, 1fr); } }
.featured-client-experiences-card{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: var(--space-6);
}
.case-study{
  padding-top: var(--space-7);
  border-top: 1px solid var(--line);
  margin-top: var(--space-7);
}
.case-study:first-of-type{ padding-top: 0; border-top: 0; margin-top: 0; }
.transformations-report-directions{
  border-left: 3px solid var(--clay);
  background: var(--cream-soft);
  padding: 1rem 1.5rem;
  margin: 1.5rem 0;
}
.transformations-report-directions ol,
.transformations-report-directions ul{ margin: 0; padding-left: 1.25em; }

/* Family field / working field */
.family-field__layout,
.working-field__layout{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
  align-items: start;
}
@media (min-width: 900px){
  .family-field__layout{ grid-template-columns: 7fr 5fr; gap: clamp(2.5rem, 5vw, 4rem); }
  .working-field__layout{ grid-template-columns: 5fr 7fr; gap: clamp(2.5rem, 5vw, 4rem); }
}

/* Contact & booking */
.contact-form{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: var(--paper);
  border: 1px solid var(--line);
  padding: var(--space-7);
}
.booking-embed{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 1rem;
  min-height: 500px;
}

/* FAQ (details/summary) */
.faq-item,
details{
  border-bottom: 1px solid var(--line);
  padding: 1.25rem 0;
}
details > summary,
.faq-item__q{
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: 1.15rem;
  color: var(--ink-strong);
  cursor: pointer;
  transition: color var(--dur-fast) var(--ease);
  padding-right: .25rem;
}
details > summary::-webkit-details-marker{ display: none; }
details > summary::after,
.faq-item__q::after{
  content: "+";
  font-family: var(--ff-display);
  font-weight: 300;
  color: var(--clay);
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
}
details[open] > summary::after{ content: "−"; }
details > summary:hover,
.faq-item__q:hover{ color: var(--clay); }
details > *:not(summary){
  color: var(--ink-soft);
  line-height: 1.65;
  margin-top: 1rem;
  max-width: 68ch;
}
.faq-item__a{
  color: var(--ink-soft);
  line-height: 1.65;
  margin-top: 1rem;
  max-width: 68ch;
}

/* CTA band / banner */
.cta-band,
.cta-banner{
  background: var(--cream-soft);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: var(--section-y) 0;
  text-align: left;
}
.cta-band h2,
.cta-banner h2{
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  margin-bottom: 1rem;
}
.cta-band h2 em,
.cta-banner h2 em,
.cta-band h2 i,
.cta-banner h2 i{
  color: var(--clay);
  font-style: italic;
  font-weight: 400;
}
.cta-band p,
.cta-banner p{ color: var(--ink-soft); max-width: 60ch; font-size: var(--t-md); }
.cta-banner__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 2rem;
}
.cta-banner--final{ background: var(--navy); color: var(--cream); }
.cta-banner--final h2{ color: var(--cream); }
.cta-banner--final h2 em,
.cta-banner--final h2 i{ color: var(--clay-soft); }
.cta-banner--final p{ color: #c9c9d4; }
.cta-banner--final .btn{ border-color: var(--cream); color: var(--cream); }
.cta-banner--final .btn:hover{ background: var(--cream); color: var(--navy); }
.cta-banner--final .btn--accent{ background: var(--clay); border-color: var(--clay); color: var(--cream); }
.cta-banner--final .btn--accent:hover{ background: var(--clay-soft); border-color: var(--clay-soft); }

.cta-banner--learn-next,
.cta-banner--take-further{ background: var(--cream-soft); }

/* Blog / article pages */
.article-header{ padding: var(--section-y) 0 clamp(2rem, 4vw, 3rem); text-align: left; }
.article-header h1{ max-width: 22ch; }
.article-meta,
.article-tag,
.article-tags{
  font-family: var(--ff-body);
  font-size: .72rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--ink-dim);
}
.article-meta{ margin-bottom: 1rem; display: flex; gap: 1rem; flex-wrap: wrap; }
.article-meta span + span{ padding-left: 1rem; border-left: 1px solid var(--line); }
.article-tags{ margin-top: var(--space-6); display: flex; gap: .5rem; flex-wrap: wrap; }
.article-tag{
  padding: .35rem .75rem;
  background: var(--cream-soft);
  border: 1px solid var(--line);
  color: var(--ink-soft);
}
.article-body{
  max-width: var(--col-read);
  margin: 0 auto;
  padding: clamp(2rem, 4vw, 3rem) 0;
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--ink);
}
.article-body h2{
  margin-top: 2.5rem;
  font-size: clamp(1.6rem, 2.4vw, 2rem);
}
.article-body h3{
  margin-top: 2rem;
  font-size: 1.3rem;
}
.article-body p,
.article-body ul,
.article-body ol{ max-width: none; }
.article-body blockquote{
  font-size: 1.2rem;
  margin: 1.5rem 0;
}
.article-footer{
  max-width: var(--col-read);
  margin: 0 auto;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--line);
}

/* Blog grid */
.blog-grid,
.articles{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 720px){ .blog-grid, .articles{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .blog-grid, .articles{ grid-template-columns: repeat(3, 1fr); } }

/* Art (article card) variants */
.art{
  background: var(--paper);
  border: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.art:hover{ border-color: var(--clay); transform: translateY(-2px); }
.art__img{ aspect-ratio: 4 / 3; overflow: hidden; }
.art__img img{
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(.92);
  transition: transform var(--dur-slow) var(--ease);
}
.art:hover .art__img img{ transform: scale(1.03); }
.art__body{ padding: var(--space-6); display: flex; flex-direction: column; gap: .75rem; flex: 1; }
.art__cat,
.art__meta{
  font-family: var(--ff-body);
  font-size: .7rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--clay);
}
.art__meta{ color: var(--ink-dim); }
.art h3{ font-size: 1.2rem; margin: 0; }

/* Arrow link */
.arrow-link{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-family: var(--ff-body);
  font-size: .78rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--clay);
  text-decoration: none;
  transition: gap var(--dur-fast) var(--ease);
}
.arrow-link::after{ content: "→"; }
.arrow-link:hover{ gap: .65rem; color: var(--clay-dark); }

/* Announce bar (if used) */
.announce{
  background: var(--navy);
  color: var(--cream);
  padding: .6rem 0;
  text-align: center;
  font-family: var(--ff-body);
  font-size: .78rem;
  letter-spacing: .04em;
}
.announce a{ color: var(--clay-soft); margin-left: .75rem; }
.announce a:hover{ color: var(--cream); }

/* Image placeholder */
.img-placeholder{
  aspect-ratio: 4 / 3;
  border: 1px dashed var(--line-strong);
  background: var(--cream-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-dim);
  font-family: var(--ff-body);
  font-size: .8rem;
  letter-spacing: .04em;
}

/* =====================================================================
   Pro theme — Page-specific patterns (catch-all for BEM sub-elements)
   Covers orphan classes used on individual pages.
   ===================================================================== */

/* ---------- Generic titles & pills ---------- */
.section-title{
  font-family: var(--ff-display);
  font-weight: 400;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  line-height: var(--lh-snug);
  letter-spacing: var(--track-display);
  color: var(--ink-strong);
  margin: 0 0 1rem;
}
.section-title--center{ text-align: center; margin-left: auto; margin-right: auto; max-width: 22ch; }
.section-subhead{ font-size: var(--t-md); color: var(--ink-soft); max-width: 56ch; }
.section--soft-tint{ background: var(--cream-soft); }

.pill{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .3rem .7rem;
  font-family: var(--ff-body);
  font-size: .68rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  font-weight: 500;
  background: var(--cream-soft);
  color: var(--ink-soft);
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
}
.pill--accent{
  background: var(--clay);
  color: var(--cream);
  border-color: var(--clay);
}

.punct{ color: var(--clay); font-style: italic; }
.is-disabled{ opacity: .5; pointer-events: none; }

/* ---------- Container variants ---------- */
.container--blog{ max-width: var(--col-read); margin: 0 auto; padding-left: var(--container-pad); padding-right: var(--container-pad); }

/* ---------- Media frame variants ---------- */
.media-frame--landscape{ aspect-ratio: 16 / 10; }

/* ---------- Split sub-elements ---------- */
.split__content{ display: flex; flex-direction: column; gap: 1rem; }
.split__image{ position: relative; }

/* ---------- Feature grid sub-elements ---------- */
.feature-item__icon{
  width: 48px; height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line-strong);
  color: var(--clay);
  background: var(--cream);
  margin-bottom: 1rem;
}
.feature-item__icon svg{ width: 22px; height: 22px; }
.feature-item--card{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: var(--space-6);
  border-top: 1px solid var(--line);
}

/* ---------- Primary button / card (legacy) ---------- */
.primary-button{
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .85rem 1.6rem;
  background: var(--clay);
  color: var(--cream);
  font-family: var(--ff-body);
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid var(--clay);
  transition: background var(--dur-fast) var(--ease);
}
.primary-button:hover{ background: var(--clay-dark); border-color: var(--clay-dark); color: var(--cream); }
.primary-card{ background: var(--paper); border: 1px solid var(--line); padding: var(--space-6); }

/* ---------- Home / landing patterns ---------- */
.intro{ padding: var(--section-y) 0; }
.intro__grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); align-items: start; }
@media (min-width: 900px){ .intro__grid{ grid-template-columns: 5fr 7fr; gap: clamp(2.5rem, 5vw, 4rem); } }
.intro__title{
  font-family: var(--ff-display);
  font-size: clamp(2rem, 3.6vw, 2.8rem);
  line-height: var(--lh-snug);
  margin: 0 0 1rem;
}
.intro__body{ color: var(--ink-soft); font-size: var(--t-md); }
.intro__pullquote{
  font-family: var(--ff-display);
  font-style: italic;
  font-size: clamp(1.3rem, 2.2vw, 1.6rem);
  line-height: 1.4;
  color: var(--ink-strong);
  border-left: 3px solid var(--clay);
  padding-left: 1.25rem;
  margin: 1.5rem 0;
}

/* Meet Megan strip */
.meet{ padding: var(--section-y) 0; background: var(--cream-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.meet__grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); align-items: center; }
@media (min-width: 900px){ .meet__grid{ grid-template-columns: 5fr 7fr; gap: clamp(2.5rem, 5vw, 4rem); } }
.meet__portrait{ aspect-ratio: 4 / 5; overflow: hidden; border: 1px solid var(--line-strong); background: var(--paper); }
.meet__portrait img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.meet__kicker{
  font-family: var(--ff-body);
  font-size: .72rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--clay);
  margin-bottom: 1rem;
}
.meet__title{ font-family: var(--ff-display); font-size: clamp(1.8rem, 3.2vw, 2.4rem); margin: 0 0 1rem; }
.meet__body{ color: var(--ink-soft); font-size: 1rem; line-height: 1.65; }
.meet__credentials{ margin-top: 1.5rem; display: flex; gap: 1rem; flex-wrap: wrap; }
.meet__cred{
  font-family: var(--ff-body);
  font-size: .7rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--ink-dim);
  padding: .4rem .75rem;
  border: 1px solid var(--line);
  background: var(--paper);
}

/* Movements (home) */
.movements{ padding: var(--section-y) 0; }
.movements__header{ max-width: 840px; margin-bottom: var(--space-7); }
.movements__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
}
@media (min-width: 900px){ .movements__grid{ grid-template-columns: repeat(3, 1fr); } }
.movement{
  padding: var(--space-6);
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 2px solid var(--clay);
  display: flex;
  flex-direction: column;
  gap: .6rem;
  height: 100%;
}
.movement__num{
  font-family: var(--ff-display);
  font-style: italic;
  font-size: 2.2rem;
  color: var(--clay);
  line-height: 1;
  margin-bottom: .4rem;
}
.movement__icon{
  width: 48px; height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--clay);
  margin-bottom: .5rem;
}
.movement__label{
  font-family: var(--ff-body);
  font-size: .7rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--clay);
}
.movement__title{ font-family: var(--ff-display); font-size: 1.3rem; margin: .25rem 0 .5rem; color: var(--ink-strong); }
.movement__desc,
.movement__body{ color: var(--ink-soft); font-size: .95rem; line-height: 1.6; }

/* Manifesto strip */
.manifesto{ padding: var(--section-y) 0; background: var(--navy); color: var(--cream); text-align: center; }
.manifesto h2{ color: var(--cream); max-width: 28ch; margin: 0 auto 1rem; }
.manifesto p{ color: #c9c9d4; max-width: 52ch; margin: 0 auto; }
.manifesto__swatches{ display: flex; justify-content: center; gap: .5rem; margin-top: 2rem; flex-wrap: wrap; }
.manifesto__swatches > *{ width: 36px; height: 36px; border: 1px solid var(--line-dark-strong); }

/* Hero sub-elements (additional) */
.hero__headline,
.hero__headline-top{ font-family: var(--ff-display); font-weight: 400; margin: 0 0 .2em; }
.hero__sub{ font-size: var(--t-md); color: var(--ink-soft); margin-top: 1.2rem; max-width: 58ch; }
.hero__meta{
  font-family: var(--ff-body);
  font-size: .72rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--ink-dim);
  margin-bottom: 1rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.hero__cta,
.hero__cta-primary{ display: flex; gap: .75rem; margin-top: 2rem; flex-wrap: wrap; }
.hero__footer{ margin-top: 2rem; font-size: .85rem; color: var(--ink-dim); font-family: var(--ff-body); }

.hero-about__founder{ margin-top: 1rem; font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--ink-dim); }
.hero-group__copy{ max-width: 640px; }

/* ---------- Blog card sub-elements ---------- */
.card--blog__image{ aspect-ratio: 4/3; overflow: hidden; }
.card--blog__image img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); transition: transform var(--dur-slow) var(--ease); }
.card--blog:hover .card--blog__image img{ transform: scale(1.03); }
.card--blog__body{ padding: var(--space-6); display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.card--blog__category,
.card--blog__meta{
  font-family: var(--ff-body);
  font-size: .68rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  color: var(--ink-dim);
}
.card--blog__category{ color: var(--clay); }

/* ---------- Event cards ---------- */
.event-card{
  background: var(--paper);
  border: 1px solid var(--line);
  padding: var(--space-6);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.5rem;
  align-items: center;
  margin-bottom: 1rem;
  transition: border-color var(--dur-fast) var(--ease);
}
.event-card:hover{ border-color: var(--clay); }
.event-card__date{
  text-align: center;
  padding: 1rem 1.25rem;
  border: 1px solid var(--clay);
  min-width: 90px;
  background: linear-gradient(180deg, rgba(181,107,73,.06), var(--paper));
}
.event-card__day{ font-family: var(--ff-display); font-size: 2rem; font-weight: 500; color: var(--ink-strong); line-height: 1; display: block; }
.event-card__month{ font-family: var(--ff-body); font-size: .7rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--clay); display: block; margin-top: .25rem; }
.event-card__details h3{ margin: 0 0 .5rem; font-size: 1.2rem; }
.event-card__info{ font-family: var(--ff-body); font-size: .85rem; color: var(--ink-soft); }
.event-intro,
.event-description{ color: var(--ink-soft); font-size: 1rem; line-height: 1.65; max-width: 62ch; }
.event-details{ display: flex; gap: 1rem; flex-wrap: wrap; font-family: var(--ff-body); font-size: .8rem; color: var(--ink-dim); }
.upcoming-group{ padding: var(--section-y) 0; }

/* ---------- Soul & STLP sub-elements ---------- */
.soul-hero__eyebrow{ color: var(--clay); font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; margin-bottom: 1rem; }
.soul-hero__lead{ color: var(--ink-soft); font-size: var(--t-md); max-width: 52ch; }
.soul-hero__markers{ display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; font-family: var(--ff-body); font-size: .75rem; color: var(--ink-dim); letter-spacing: .04em; text-transform: uppercase; }
.soul-about-header{ margin-bottom: var(--space-6); }
.soul-about-image,
.soul-about-image-wrap{ aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--line-strong); background: var(--paper); }
.soul-about-image img,
.soul-about-image-wrap img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.soul-about-megan{ padding: var(--section-y) 0; }
.soul-checklist{ list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.soul-checklist li{ padding-left: 1.5rem; position: relative; color: var(--ink-soft); }
.soul-checklist li::before{ content: ""; position: absolute; left: 0; top: .7em; width: 14px; height: 1px; background: var(--clay); }
.soul-list-title{ font-family: var(--ff-display); font-size: 1.2rem; margin: 0 0 1rem; color: var(--ink-strong); }
.soul-results-grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); }
@media (min-width: 720px){ .soul-results-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .soul-results-grid{ grid-template-columns: repeat(3, 1fr); } }
.soul-results-card{ background: var(--paper); border: 1px solid var(--line); padding: var(--space-6); }
.soul-testimonials{ padding: var(--section-y) 0; }

.stlp-hero__inner{ max-width: var(--col-max); margin: 0 auto; }
.stlp-kicker{ font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--clay); margin-bottom: 1rem; }
.stlp-content{ display: flex; flex-direction: column; gap: 1rem; }
.stlp-content--left{ max-width: 640px; }
.stlp-image{ aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--line-strong); }
.stlp-image img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.stlp-actions{ display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1.5rem; }
.stlp-alt{ background: var(--cream-soft); }
.stlp-soft-card{ background: var(--paper); border: 1px solid var(--line); padding: var(--space-6); }
.stlp-price{ text-align: center; padding: var(--space-7) 0; }
.stlp-price__list{ list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .5rem; max-width: 380px; margin-left: auto; margin-right: auto; }
.stlp-price__list li{ padding: .6rem 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); }
.stlp-price__cta{ margin-top: 1.5rem; }
.stlp-testimonials{ padding: var(--section-y) 0; }
.stlp-testimonials__grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); }
@media (min-width: 780px){ .stlp-testimonials__grid{ grid-template-columns: repeat(2, 1fr); } }
.stlp-testimonial{ background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--clay); padding: var(--space-6); }
.stlp-is-you__num{ font-family: var(--ff-display); font-style: italic; color: var(--clay); font-size: 1.4rem; margin-right: .75rem; }
.stlp-is-you__divider{ border: 0; border-top: 1px solid var(--line); margin: 1rem 0; }
.stlp-is-you__item{ padding: .5rem 0; }

/* ---------- Group page patterns ---------- */
.group-hero-image,
.group-hero-image-frame{ aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--line-strong); background: var(--paper); }
.group-hero-image img,
.group-hero-image-frame img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.group-how,
.group-who-this{ padding: var(--section-y) 0; }
.group-how-block{ padding: var(--space-6) 0; border-top: 1px solid var(--line); }
.group-how-list,
.group-surprise-list,
.group-who-this-checklist{ list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.group-how-list li,
.group-surprise-list li,
.group-who-this-checklist li{ padding-left: 1.5rem; position: relative; color: var(--ink-soft); line-height: 1.55; }
.group-how-list li::before,
.group-surprise-list li::before,
.group-who-this-checklist li::before{ content: ""; position: absolute; left: 0; top: .7em; width: 14px; height: 1px; background: var(--clay); }
.group-testimonials{ padding: var(--section-y) 0; background: var(--cream-soft); }
.group-testimonials-image,
.group-testimonials-image-wrap{ aspect-ratio: 4/3; overflow: hidden; border: 1px solid var(--line-strong); }
.group-testimonials-image img,
.group-testimonials-image-wrap img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.group-testimonial-card--featured{ border-top: 3px solid var(--clay); background: linear-gradient(180deg, rgba(181,107,73,.06), var(--paper)); }

/* ---------- Who-this-is-for sub-elements ---------- */
.who-this-content{ display: flex; flex-direction: column; gap: 1rem; }
.who-this-lead{ font-family: var(--ff-display); font-style: italic; font-size: clamp(1.2rem, 2vw, 1.5rem); color: var(--ink-strong); line-height: 1.45; }
.who-this-checklist{ list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.who-this-checklist li{ padding-left: 1.5rem; position: relative; color: var(--ink-soft); line-height: 1.55; }
.who-this-checklist li::before{ content: ""; position: absolute; left: 0; top: .7em; width: 14px; height: 1px; background: var(--clay); }
.who-this-intro-group{ max-width: 640px; }
.who-this-media{ aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--line-strong); }
.who-this-media img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.who-this-restoring-line{ font-family: var(--ff-display); font-style: italic; color: var(--clay); margin-top: 1rem; }

/* ---------- Experience sub-elements (1-on-1) ---------- */
.experience-text{ display: flex; flex-direction: column; gap: 1rem; }
.experience-media{ aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--line-strong); }
.experience-media img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }

/* ---------- Working-field / Family-field sub-elements ---------- */
.family-field__content,
.working-field__content{ display: flex; flex-direction: column; gap: 1rem; }
.family-field__media,
.working-field__media{ aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--line-strong); background: var(--paper); }
.family-field__media img,
.working-field__media img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }
.working-field-section{ padding: var(--section-y) 0; }
.working-field__link-top,
.working-field__link-bottom,
.working-field__arrow,
.working-field__link-line{ font-family: var(--ff-body); font-size: .78rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--clay); text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; }
.working-field__link-top:hover,
.working-field__link-bottom:hover{ color: var(--clay-dark); }

/* ---------- Field movement bridge sub-elements ---------- */
.field-movement-bridge__inner{ max-width: var(--col-max); margin: 0 auto; padding: 0 var(--container-pad); }
.field-movement-bridge__grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); }
@media (min-width: 720px){ .field-movement-bridge__grid{ grid-template-columns: repeat(3, 1fr); } }
.field-movement-bridge__line{ display: block; border: 0; border-top: 1px solid var(--clay); width: 60px; margin: 0 auto 1rem; }
.field-movement-bridge__subhead{ font-family: var(--ff-display); font-style: italic; font-size: 1.1rem; color: var(--ink-strong); margin-bottom: .5rem; }
.field-movement-bridge__subtext{ color: var(--ink-soft); font-size: .95rem; }

/* ---------- Transformations sub-elements ---------- */
.featured-client-experiences__inner{ max-width: var(--col-max); margin: 0 auto; padding: 0 var(--container-pad); }
.featured-client-experiences__grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); }
@media (min-width: 900px){ .featured-client-experiences__grid{ grid-template-columns: repeat(2, 1fr); } }
.featured-client-experiences__micro{ font-family: var(--ff-body); font-size: .7rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--ink-dim); margin-bottom: 1rem; }
.featured-experience-card{ background: var(--paper); border: 1px solid var(--line); padding: var(--space-6); display: flex; flex-direction: column; gap: 1rem; }
.featured-experience-card__author,
.featured-experience-card__name{ font-family: var(--ff-body); font-weight: 500; font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--clay); margin-top: auto; }
.featured-experience-card__meta{ font-family: var(--ff-body); font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-dim); }
.transformations-case-studies{ padding: var(--section-y) 0; }
.transformations-report-wrap{ background: var(--cream-soft); padding: var(--space-7) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.transformations-report-list{ list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.transformations-report-list li{ padding-left: 1.5rem; position: relative; color: var(--ink-soft); }
.transformations-report-list li::before{ content: ""; position: absolute; left: 0; top: .7em; width: 14px; height: 1px; background: var(--clay); }
.transformations-report-subhead{ font-family: var(--ff-display); font-size: 1.2rem; margin: 0 0 1rem; color: var(--ink-strong); }

/* ---------- Pricing-card sub-elements ---------- */
.pricing-card__header{ padding-bottom: 1rem; border-bottom: 1px solid var(--line); margin-bottom: 1rem; }
.pricing-card__duration{ font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--ink-dim); margin-top: .5rem; }
.pricing-card__features{ list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.pricing-card__features li{ padding-left: 1.25rem; position: relative; color: var(--ink-soft); font-size: .95rem; }
.pricing-card__features li::before{ content: "—"; position: absolute; left: 0; color: var(--clay); }
.pricing-card__actions{ margin-top: 1rem; display: flex; flex-direction: column; gap: .5rem; }
.pricing-card__actions--direct{ gap: .75rem; }
.pricing-card--one-on-one{ border-top: 3px solid var(--clay); }
.pricing-cta-note,
.pricing-header-note{ font-family: var(--ff-body); font-size: .8rem; color: var(--ink-dim); font-style: italic; }

/* Services wraps */
.services-featured-wrap{ padding: var(--section-y) 0; }
.services-grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); }
@media (min-width: 720px){ .services-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px){ .services-grid{ grid-template-columns: repeat(3, 1fr); } }

/* ---------- Courses hub (spirit-team) sub-elements ---------- */
.courses-hub-begin{ padding: var(--section-y) 0; background: var(--cream-soft); }
.courses-hub-begin__choice-intro{ font-family: var(--ff-display); font-style: italic; font-size: 1.1rem; color: var(--ink-strong); margin-bottom: 1rem; }
.courses-hub-close{ padding: var(--section-y) 0; text-align: center; }
.courses-hub-grid-section{ padding: var(--section-y) 0; }
.courses-hub-subheading{ font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--clay); margin-bottom: 1rem; }
.course-hub-card__btn{ align-self: flex-start; margin-top: .75rem; display: inline-flex; gap: .4rem; font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--clay); text-decoration: none; }
.course-hub-card__btn::after{ content: "→"; transition: transform var(--dur-fast) var(--ease); }
.course-hub-card:hover .course-hub-card__btn::after{ transform: translateX(3px); }
.course-spirit-list{ list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.course-spirit-list li{ padding-left: 1.5rem; position: relative; color: var(--ink-soft); }
.course-spirit-list li::before{ content: ""; position: absolute; left: 0; top: .7em; width: 14px; height: 1px; background: var(--clay); }

/* ---------- Constellation explanation (home / what-is) ---------- */
.constellation-explanation{ padding: var(--section-y) 0; }
.constellation-hero__closing{ font-family: var(--ff-display); font-style: italic; font-size: 1.2rem; color: var(--clay); margin-top: 1.5rem; }

/* ---------- CTA banner sub-elements ---------- */
.cta-banner__copy{ max-width: 640px; }
.cta-banner__subtext{ color: var(--ink-soft); font-size: var(--t-md); }
.cta-bridge-line{ font-family: var(--ff-display); font-style: italic; color: var(--ink-soft); text-align: center; margin: 2rem 0; font-size: 1.1rem; }
.cta-divider{ border: 0; border-top: 1px solid var(--line); margin: var(--space-7) 0; }

/* ---------- Session closing (1-on-1) ---------- */
.session-closing-copy{ color: var(--ink-soft); font-size: 1.02rem; line-height: 1.65; max-width: 62ch; }
.session-closing-copy--first{ margin-top: 1.5rem; }
.session-closing-copy--second{ margin-top: 1rem; }

/* ---------- Profile image variants ---------- */
.profile-image,
.profile-image--experience,
.profile-image--who-this{ aspect-ratio: 4/5; overflow: hidden; border: 1px solid var(--line-strong); background: var(--paper); }
.profile-image img,
.profile-image--experience img,
.profile-image--who-this img{ width: 100%; height: 100%; object-fit: cover; filter: saturate(.92); }

/* ---------- Private testimonials ---------- */
.private-testimonials-grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); }
@media (min-width: 780px){ .private-testimonials-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px){ .private-testimonials-grid{ grid-template-columns: repeat(3, 1fr); } }
.private-testimonial-card{ background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--clay); padding: var(--space-6); display: flex; flex-direction: column; gap: 1rem; }

/* ---------- Program sub-elements ---------- */
.program-card--secondary{ background: var(--cream-soft); border: 1px solid var(--line); padding: var(--space-6); }
.program-cta-note{ font-family: var(--ff-body); font-size: .8rem; color: var(--ink-dim); font-style: italic; margin-top: .5rem; }
.program-section-break{ border: 0; border-top: 1px solid var(--line); margin: var(--space-7) 0; }

/* ---------- Video embed / watch ---------- */
.video-embed{ aspect-ratio: 16/9; width: 100%; border: 1px solid var(--line); overflow: hidden; }
.video-embed iframe{ width: 100%; height: 100%; border: 0; display: block; }
.watch__intro{ margin-bottom: var(--space-6); }

/* ---------- Story image band ---------- */
.story-image-band{ padding: var(--section-y) 0; background: var(--cream-soft); }

/* ---------- Welcome-morphic sub-elements ---------- */
.welcome-morphic--after-bridge{ padding-top: 0; }
.welcome-morphic--landing,
.welcome-morphic__landing{ padding: var(--section-y) 0; }
.welcome-morphic__grid{ display: grid; grid-template-columns: 1fr; gap: var(--grid-gap); align-items: center; }
@media (min-width: 900px){ .welcome-morphic__grid{ grid-template-columns: 5fr 7fr; gap: clamp(2.5rem, 5vw, 4rem); } }
.welcome-morphic__text{ display: flex; flex-direction: column; gap: 1rem; }
.welcome-morphic__emphasis{ font-family: var(--ff-display); font-style: italic; color: var(--clay); font-size: 1.15rem; }

/* ---------- Transition note variants ---------- */
.transition-note--pre-bridge{ padding-top: var(--section-y); padding-bottom: var(--section-y); }
.transition-note__text{ display: flex; flex-direction: column; gap: 1rem; }

/* ---------- Optional learn section ---------- */
.optional-learn-section{ padding: var(--section-y) 0; background: var(--cream-soft); }

/* ---------- Slider dots (for carousels, rudimentary) ---------- */
.slider-dots{ display: flex; justify-content: center; gap: .6rem; margin-top: 1.5rem; }
.slider-dots button{
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--line-strong); border: 0; padding: 0; cursor: pointer;
  transition: background var(--dur-fast) var(--ease);
}
.slider-dots button[aria-current="true"],
.slider-dots button.is-active{ background: var(--clay); }

/* ---------- Testimonial generic (concepts/the-field-v1) ---------- */
.testimonial{ padding: var(--section-y) 0; background: var(--cream-soft); text-align: center; }
.testimonial__inner{ max-width: var(--col-read); margin: 0 auto; padding: 0 var(--container-pad); }
.testimonial__mark{ font-family: var(--ff-display); font-style: italic; font-size: 3rem; color: var(--clay); line-height: .8; margin-bottom: 1rem; }
.testimonial__text{ font-family: var(--ff-display); font-style: italic; font-size: clamp(1.3rem, 2.4vw, 1.7rem); line-height: 1.45; color: var(--ink-strong); }
.testimonial__cite,
.testimonial__role{ font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--clay); margin-top: 1.5rem; display: inline-block; }
.testimonial__role{ color: var(--ink-dim); margin-left: .75rem; }

/* ---------- Concepts page: topbar / final / footer ---------- */
.topbar{
  position: sticky; top: 0; z-index: 100;
  background: var(--cream);
  border-bottom: 1px solid var(--line);
  padding: 1rem 0;
}
.topbar__nav{
  max-width: 1200px; margin: 0 auto;
  padding: 0 var(--container-pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
.topbar__brand{
  font-family: var(--ff-display);
  font-weight: 500;
  font-style: italic;
  font-size: 1.1rem;
  color: var(--ink-strong);
  text-decoration: none;
}
.topbar__dot{ display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--clay); margin-right: .5rem; vertical-align: middle; }
.topbar__cta{
  font-family: var(--ff-body);
  font-size: .72rem;
  letter-spacing: var(--track-cap);
  text-transform: uppercase;
  padding: .7rem 1.2rem;
  background: var(--navy);
  color: var(--cream);
  border: 1px solid var(--navy);
  text-decoration: none;
  transition: background var(--dur-fast) var(--ease);
}
.topbar__cta:hover{ background: var(--navy-deep); color: var(--cream); }

.final{ padding: var(--section-y) 0; background: var(--navy); color: var(--cream); text-align: center; }
.final__label{ font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--clay-soft); margin-bottom: 1rem; }
.final__headline{ font-family: var(--ff-display); font-size: clamp(2rem, 4vw, 3rem); color: var(--cream); max-width: 28ch; margin: 0 auto 2rem; line-height: 1.1; }
.final__actions{ display: flex; gap: .75rem; flex-wrap: wrap; justify-content: center; }
.final a{ color: var(--clay-soft); }
.final a:hover{ color: var(--cream); }

.footer{ background: var(--navy); color: #c9c9d4; padding: clamp(3rem, 6vw, 4.5rem) 0 1.5rem; }
.footer__grid{ max-width: 1200px; margin: 0 auto; padding: 0 var(--container-pad); display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 720px){ .footer__grid{ grid-template-columns: 2fr 1fr 1fr 1fr; } }
.footer__brand{ font-family: var(--ff-display); font-style: italic; font-size: 1.2rem; color: var(--cream); }
.footer__col h5{ font-family: var(--ff-body); font-size: .72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--cream); margin-bottom: 1rem; }
.footer__col a{ display: block; color: #c9c9d4; text-decoration: none; padding: .25rem 0; font-size: .92rem; }
.footer__col a:hover{ color: var(--clay-soft); }
.footer__tag{ font-family: var(--ff-body); font-size: .75rem; color: #8a90a4; margin-top: 1rem; }
.footer__bottom{ max-width: 1200px; margin: 2rem auto 0; padding: 1.5rem var(--container-pad) 0; border-top: 1px solid var(--line-dark-strong); font-family: var(--ff-body); font-size: .75rem; color: #8a90a4; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }

/* ---------- Booking embed placeholder ---------- */
.booking-embed__placeholder{
  padding: var(--space-7);
  text-align: center;
  background: var(--cream-soft);
  border: 1px dashed var(--line-strong);
  color: var(--ink-dim);
  font-family: var(--ff-body);
  font-size: .9rem;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
}
