/* =====================================================================
   TYPOGRAPHY SYSTEM — loads last so every page uses the same type.
   Headings: Playfair Display.  Everything else: Helvetica stack.
   ===================================================================== */
main :is(h1,h2,h3){font-family:var(--font-heading)!important}
main :is(p,li,h4,h5,h6,div,label,input,textarea,select,button,a,span,small,strong,b,em,td,th,dt,dd,figcaption){font-family:var(--font-helv)!important}
main :is(h1,h2,h3) *{font-family:inherit!important}

/* Quotes / pull-lines: Playfair italic everywhere */
main :is(.calm-copy .big,.quote-box p,.mindset-banner p,.info-healing h2){font-family:var(--font-heading)!important;font-style:italic}
main .member .tag span{font-family:var(--font-helv)!important;font-size:13px}

/* Page titles (H1) — home keeps its larger hero title */
main :is(.ph-title,.info-h1,.pg-events h1){font-size:clamp(34px,4vw,48px)!important;font-weight:400!important;line-height:1.12}

/* Section headings (H2) */
main :is(h2,.section-title){font-size:clamp(30px,3.2vw,42px)!important;font-weight:400!important;line-height:1.2}
main .practitioner-name{font-size:clamp(28px,2.6vw,36px)!important}

/* Card / step headings (H3) */
main .emb h3{font-size:clamp(20px,1.8vw,24px)!important;font-weight:400!important;line-height:1.3}
main .emb :is(.faq-question,.fallback-title){font-size:20px!important}
main .emb .practitioner-role{font-size:18px!important;font-style:italic}
main .emb .bio-section h3{font-family:var(--font-helv)!important;font-size:14px!important;font-weight:700!important;letter-spacing:3px;color:var(--terracotta)}

/* Body copy */
main .emb :is(p,li){font-size:16px!important;line-height:1.7}
main .emb :is(.tiny,.addon-note,.detail-text-box p,.card-tag,.badge-tag,.practitioner-tag,.program-date,.faq-preview){font-size:14px!important}
main :is(.why-item p,.mission .more){font-weight:400!important}
main :is(.ag-card h3,.ag-card p){font-weight:300!important}
main .ag-card h3{font-family:var(--font-heading)!important;font-size:20px!important;font-weight:400!important}

/* Eyebrows / small caps labels: one style */
main :is(.ph-eyebrow,.eyebrow,.eyebrow2,.label,.hero-tagline,.section-subtitle.upper){font-family:var(--font-helv)!important;font-weight:700!important;font-size:14px!important;letter-spacing:3px!important;text-transform:uppercase;color:var(--terracotta)}

/* Agreements cards: readable text, cards grow to fit */
main .ag-card p{font-size:15px!important;max-width:200px}
main .ag-card{height:auto!important;min-height:234px}
/* Home lead paragraphs: same 18px as other lead text */
main :is(.space-copy .desc,.quote-box ~ p,.space-copy p:not(.desc)){font-size:18px!important}

/* ===== Closing call-to-action headings: one size on every page ===== */
:root body main :is(.closer h2,.ready h2,.cta-band h2,.cta-title,.cta-funnel-title,.ner-cta h2,.cta-container h2,.ag-ready-copy h2,.cta-block h2){font-size:clamp(38px,4.4vw,56px)!important;font-weight:400!important;line-height:1.12!important}
main :is(.closer h2,.ready h2) *{font-weight:400!important}
main :is(.closer p,.ready p,.cta-band p,.cta-subtext,.cta-funnel-sub,.ner-cta p,.cta-container > p,.cta-block p,.ag-ready-copy p){font-size:18px!important;line-height:1.7}

/* ===== Buttons: one shape, size and weight everywhere (colours kept) ===== */
main :is(.cbtn,.wbtn,.btn-primary-booking,.btn-cta-consultation,.btn-learn-more,.btn-primary,.btn-funnel-action,.btn-ask){font-family:var(--font-helv)!important;font-size:16px!important;font-weight:500!important;letter-spacing:.2px!important;text-transform:none!important;border-radius:10px!important;min-height:52px;padding:0 24px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:10px;text-decoration:none}

/* ===== Paragraphs: ONE style site-wide =====
   17px Helvetica, line-height 1.75, regular weight, no extra letter-spacing.
   Dark text uses the body colour (#464646); light text on plum stays light. */
:root body main :is(p,li){font-size:17px!important;line-height:1.75!important;font-weight:400!important;letter-spacing:normal!important}
:root body main .tx-body{color:var(--body)!important}
/* Small print: one size */
:root body main :is(.tiny,.addon-note,.detail-text-box p,.faq-preview,.practitioner-tag,.card-tag,.badge-tag,.program-date,.member .tag span){font-size:14px!important;line-height:1.5!important}
/* Short card text (pillars, agreement cards, promise cards): one size */
:root body main :is(.pillar p,.ag-card p,.ag-p p){font-size:15px!important;line-height:1.6!important}
/* Quotes keep their display size */
:root body main :is(.calm-copy .big,.ag-arch p,.quote-box p){font-size:22px!important;line-height:1.4!important}
/* Small event label stays a label */
:root body main .pg-events .event-meta p,:root body main .pg-events p[style*="uppercase"]{letter-spacing:2px!important}

/* ===== Breathing room: sections never touch their content ===== */
:root{--sec-pad:clamp(56px,6vw,88px)}
main .info-who{padding:var(--sec-pad) 24px}
main :is(.space,.ready,.closer){padding-top:var(--sec-pad)!important;padding-bottom:var(--sec-pad)!important}
main .emb-sec{padding-top:var(--sec-pad)!important;padding-bottom:var(--sec-pad)!important}
/* Blocks inside the embedded pages: same gap between every block */
main .emb > * > section:not(.practitioner-row) + section:not(.practitioner-row){margin-top:72px!important}
main .emb > * > section:not(.practitioner-row){margin-bottom:0!important}
main :is(.addon-highlight-box,.philosophy-block){padding:44px clamp(24px,4vw,48px)!important}

/* Mentorship: breathing room between the checklist card and the closing banner */
main .emb > * > section.checklist-section{margin-bottom:64px!important}
:root body main .cta-funnel-title{margin-bottom:22px!important}

/* A card/section followed by a non-section block (banner, CTA) keeps a clear gap */
main .emb > * > section:not(.practitioner-row):has(+ :not(section)){margin-bottom:56px!important}

/* Team photos: keep faces in frame */
.profile-image-frame img{object-position:50% 12%!important}
img[src*="/img/team/"]{object-position:50% 14%!important}
