/* Consolidated Cluster 1 brand system. Preserves the approved colour, type, layout, adapt and motion cascade. */
@media screen{
/* Cluster 1 colour roles. Approved palette, 11 September 2026.
Forest grounds; panel green information; gold actions and selection;
cream primary text; sage supporting text. Hex values preserve exact brand colours. */
:root{--cluster-forest:#132C20;--cluster-support:#1C3C2B;--cluster-panel:#273F33;--cluster-gold:#C8A45D;--cluster-cream:#FFFAF1;--cluster-sage:#D9E0D9}
html{color-scheme:dark}
body{background-color:var(--cluster-forest);color:var(--cluster-cream)}
::selection{background:var(--cluster-gold);color:var(--cluster-forest)}
:focus-visible{outline:3px solid var(--cluster-gold);outline-offset:4px}
input,textarea,select{accent-color:var(--cluster-gold)}
input::placeholder,textarea::placeholder{color:var(--cluster-sage);opacity:1}
html body :is(.button.light,.button,.nav-cta,.bm-nav-cta,.start-btn,.cta-btn,.share-whatsapp,.share-email){background:var(--cluster-gold);border-color:var(--cluster-gold);color:var(--cluster-forest)}
html body :is(.button.light,.button,.nav-cta,.bm-nav-cta,.start-btn,.cta-btn,.share-whatsapp,.share-email):is(:hover,:focus-visible){background:var(--cluster-cream);border-color:var(--cluster-cream);color:var(--cluster-forest)}
html body :is(.button.secondary,.button.ghost,.secondary,.previous-btn,.edit-btn,.share-print){background:transparent;border-color:var(--cluster-sage);color:var(--cluster-cream)}
html body :is(.button.secondary,.button.ghost,.secondary,.previous-btn,.edit-btn,.share-print):is(:hover,:focus-visible){background:var(--cluster-panel);border-color:var(--cluster-gold);color:var(--cluster-cream)}
html body :is(button,.button):disabled{background:var(--cluster-panel);border-color:var(--cluster-sage);color:var(--cluster-sage);cursor:not-allowed;opacity:.65}
@media(forced-colors:active){html body :is(button,.button,.nav-cta,.bm-nav-cta,.start-btn,.secondary){border:1px solid ButtonText}:focus-visible{outline-color:Highlight}}
/* Gold identifies destinations; hover has an explicit underline. */
.route:is(:hover,:focus-visible){background:var(--cluster-support)}
.route:is(:hover,:focus-visible) .route-title{color:var(--cluster-gold);text-decoration:underline}
.bm-desktop-nav>a[aria-current=page],.bm-mobile-menu a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--cluster-gold);text-underline-offset:6px}
.bm-mobile-menu nav{background:var(--cluster-panel)}
.bridge-jump-index span,.bridge-step-num{color:var(--cluster-gold)}
.hero,.page-hero,.section.alt,.contact-strip,.diagnostic-signature,.proof-primer,.proof-primer-panel,.work-depth-copy,.simulation-hero{background:var(--cluster-support)}
.hero::after,.hero::before{background:none}
.hero-home{background:var(--cluster-forest)}
.diagnosis-option[aria-pressed=true]{background:var(--cluster-gold);color:var(--cluster-forest);border-color:var(--cluster-gold)}
.diagnosis-option[aria-pressed=true] *{color:inherit}
.form-field input,.form-field select,.form-field textarea{background:var(--cluster-forest);color:var(--cluster-cream);border-color:var(--cluster-sage)}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--cluster-gold)}

html body :is(.button,.nav-cta,.bm-nav-cta) :is(span,strong,small){color:inherit}

body .page-hero,body .book-hero,body .hero,body .section.alt,body .proof-primer,body .diagnostic-signature{background:var(--cluster-support)}
body .page-hero::before,body .page-hero::after,body .book-hero::before,body .book-hero::after{background:none}


html body :is(.skip,.skip-link){background:var(--cluster-gold);color:var(--cluster-forest)}
body .tag{background:var(--cluster-forest);color:var(--cluster-gold)}
body .proof-logo-row img,body .logo-grid img,body .credential-grid img{background:var(--cluster-cream)}
}

/* Cluster 1 typography: the same families and roles on all six sites.
   !important font declarations replace the legacy per-site font overrides.
   Colour, content, and interaction logic are owned by their existing files. */
@font-face{font-family:'Source Sans 3';src:url('/assets/fonts/SourceSans3-Latin.woff2') format('woff2');font-style:normal;font-weight:200 900;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('/assets/fonts/SourceSerif4-Latin.woff2') format('woff2');font-style:normal;font-weight:200 900;font-display:swap}
:root{--cluster-font-body:'Source Sans 3',sans-serif;--cluster-font-display:'Source Serif 4',Georgia,serif;--cluster-text-caption:.875rem;--cluster-text-support:1rem;--cluster-text-body:1.125rem;--cluster-text-lead:1.25rem;--cluster-text-title:1.5rem;--cluster-text-heading:clamp(2rem,1.5rem + 1.5vw,3rem);--cluster-text-display:clamp(2.5rem,1.8rem + 2.6vw,4rem);--cluster-leading-body:1.65;--cluster-leading-heading:1.18;--cluster-measure:65ch}
@media screen{
html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--cluster-font-body)!important;font-size:var(--cluster-text-body)!important;font-weight:400;line-height:var(--cluster-leading-body);font-kerning:normal;font-optical-sizing:auto}
html body :is(h1,h2,h3,h4){font-family:var(--cluster-font-display)!important;font-weight:600!important;line-height:var(--cluster-leading-heading)!important;letter-spacing:-.02em!important;text-wrap:balance;overflow-wrap:break-word;word-break:normal}
html body h1{font-size:var(--cluster-text-display)!important;line-height:1.12!important;max-width:22ch}
html body h2{font-size:var(--cluster-text-heading)!important;max-width:28ch}
html body h3{font-size:var(--cluster-text-title)!important;max-width:36ch}
html body h4{font-size:var(--cluster-text-lead)!important}
html body :is(p,li,dd){line-height:var(--cluster-leading-body);text-wrap:pretty}
html body p{max-inline-size:var(--cluster-measure)}
html body :is(.lede,.landing-sub,.hero .intro){font-family:var(--cluster-font-body);font-size:var(--cluster-text-lead)!important;font-weight:400;line-height:1.6;max-inline-size:58ch}
html body :is(.intro,.hero-detail,.hero-explanation,.symptoms,.scope-note,.tool-switch){font-size:var(--cluster-text-body)!important;line-height:var(--cluster-leading-body)}
html body :is(.eyebrow,.label,.tool-label,.tag,.route-kind,.number,.step-no,.route-type,.rec-label,.history-label,.combo-label){font-family:var(--cluster-font-body)!important;font-size:var(--cluster-text-caption)!important;font-weight:600!important;line-height:1.45;letter-spacing:.075em;text-transform:uppercase}
html body :is(.button,.nav-cta,.bm-nav-cta,.secondary,.start-btn,.next-btn,.previous-btn,.edit-btn,.share-btn,.cta-btn,.text-button,input,textarea,select){font-family:var(--cluster-font-body)!important;font-size:var(--cluster-text-support)!important;line-height:1.45;letter-spacing:normal;text-transform:none}
html body :is(.button,.nav-cta,.bm-nav-cta,.secondary,.start-btn,.next-btn,.previous-btn,.edit-btn,.share-btn,.cta-btn){font-weight:700!important;text-wrap:balance;white-space:normal}
html body :is(nav a,summary){font-family:var(--cluster-font-body)!important;font-size:var(--cluster-text-support)!important;font-weight:600;line-height:1.45;letter-spacing:normal;text-transform:none}
html body :is(.bm-brand,.alignment-brand strong,.brand){font-family:var(--cluster-font-display)!important;font-size:1.375rem!important;line-height:1.2;font-weight:600;letter-spacing:normal}
html body :is(.bm-brand span,.alignment-brand small,.brand span){font-family:var(--cluster-font-body)!important;font-size:var(--cluster-text-caption)!important;line-height:1.4;font-weight:600;letter-spacing:.05em}
html body :is(.cta-note,.contact-note,.fallback,.note,.fine-print,.small,.scope,.route-note,.evidence-boundary,.evidence-work>p,.proof-attribution,.choice span span,.route-description,.video-description,.field-hint,.form-note){font-family:var(--cluster-font-body);font-size:var(--cluster-text-support)!important;line-height:1.6;max-inline-size:var(--cluster-measure)}
html body :is(footer,.foot,.bm-footer,.footer){font-family:var(--cluster-font-body)!important;font-size:var(--cluster-text-caption)!important;line-height:1.6;letter-spacing:normal}
html body :is(footer p,.foot p,.bm-footer p,.footer p,figcaption,.landing-credit){font-size:var(--cluster-text-caption)!important;line-height:1.6;letter-spacing:normal}
html body :is(.score-value,.section-score-number,.score-tag,.price strong,.programme-pricing-grid strong,.progress,.section-progress){font-variant-numeric:tabular-nums}
html body :is(.proof-case dt,.evidence-work dt,.answer-list dt,.calendar strong,.facts span){font-family:var(--cluster-font-body)!important;font-size:var(--cluster-text-support)!important;font-weight:600;line-height:1.45;letter-spacing:normal}
.alignment-shell,.bm-nav-shell,.header-row{min-width:0}
.alignment-brand,.bm-brand,.header-row .brand{flex-shrink:1;min-width:0}
@media(max-width:40rem){
 .alignment-shell,.bm-nav-shell,.header-row{flex-wrap:wrap;align-items:center;gap:.75rem}
 html body :is(.bm-brand,.alignment-brand strong,.brand){font-size:1.25rem!important}
 html body :is(.alignment-header nav a,.bm-header nav a){white-space:normal}
 html body :is(h1,h2,h3){hyphens:none}
}
}
@media screen{
.promise{font-family:var(--cluster-font-display);font-size:1.75rem;line-height:1.25}
.identity{font-size:var(--cluster-text-support);line-height:1.55}
.moment dd,.proof-quote{font-family:var(--cluster-font-display);font-size:1.75rem;line-height:1.3;font-weight:600}
.route-title{font-family:var(--cluster-font-display);font-size:var(--cluster-text-title);font-weight:600;line-height:1.25}
.method-steps p,.symptom p,.about-copy p,.trainer-layout p{font-size:var(--cluster-text-body)}
html body .book-subtitle{font-size:var(--cluster-text-title);line-height:1.35}
html body .book-hero h1{max-width:18ch}
.book-mobile-buy strong{font-variant-numeric:tabular-nums}
}

@media screen{
.alignment-header .desktop-nav,.bm-desktop-nav{flex-wrap:wrap;justify-content:flex-end;min-width:0}
.alignment-header .desktop-nav a,.bm-desktop-nav a{white-space:normal}
html body .book-mobile-buy .button :is(span,strong){font-size:var(--cluster-text-support);line-height:1.4}
}

@media screen{
/* Let text define height while grid and flex items shrink to their column. */
html body :is(h1,h2,h3,h4,p,li,dd,dt,a,button,summary,legend,figcaption,strong){overflow-wrap:anywhere}
html body :is(main,section,article,aside,figure,fieldset,nav){min-inline-size:0}
:is(.grid,.split,.hero-grid,.hero-layout,.about-layout,.trainer-layout,.proof-layout,.vision-layout,.close-layout,.section-inner,.result-grid,.tool-header,.stage-top,.bridge-grid,.investment-layout,.investment-cards,.choice-grid,.choice)>*{min-inline-size:0}
}

/* Cluster 1 layout: shared page rails and spacing; brand and tool densities remain distinct. */
:root{--layout-width:75rem;--layout-gutter:clamp(1.25rem,3vw,2.5rem);--layout-tight:.75rem;--layout-item:1.5rem;--layout-group:2rem;--layout-column:clamp(2rem,4vw,3rem);--layout-section:clamp(3rem,6vw,5rem);--layout-panel:clamp(1rem,2.5vw,2rem)}
@media screen{
html body :is(.alignment-shell,.bm-nav-shell){width:min(var(--layout-width),calc(100% - 2 * var(--layout-gutter)));max-width:none;margin-inline:auto;padding-inline:0;gap:var(--layout-item)}
.bm-nav-shell{padding-block:1rem}
html body :is(.hero-actions,.actions,.section-actions){gap:var(--layout-tight)}
html body :is(.button,.secondary,.nav-cta,.bm-nav-cta,.start-btn,.next-btn,.previous-btn){min-block-size:3rem}
html body :is(.hero-layout,.hero-grid,.split,.proof-layout,.about-layout,.vision-layout,.close-layout){gap:var(--layout-column)}
html body :is(.situation,.protection,.proof-case){padding:var(--layout-panel)}
}

@media screen{
html body .wrap{width:min(var(--layout-width),calc(100% - 2 * var(--layout-gutter)));max-width:none;padding-inline:0;margin-inline:auto}
html body :is(.section,.page-hero,.hero){padding-block:var(--layout-section)}
html body :is(.section,.page-hero){padding-inline:var(--layout-gutter)}
html body .section:has(>.wrap){padding-inline:0}
html body :is(.section-inner,.page-hero-inner){max-width:var(--layout-width)}
.bm-footer{padding:var(--layout-group) max(var(--layout-gutter),calc((100% - var(--layout-width))/2))}
.symptom-list{gap:var(--layout-group);margin-top:var(--layout-group)}
.method-steps{gap:var(--layout-item);margin-top:var(--layout-group)}
.method-steps li{min-width:0}
.trainer-layout{gap:var(--layout-group)}
.book-hero-copy h1 .nowrap{white-space:normal}
html body .trainer-section{padding-block:3rem}
@media(min-width:48rem) and (max-width:64rem){.method-steps{grid-template-columns:repeat(6,minmax(0,1fr))}.method-steps>li{grid-column:span 2}.method-steps>li:nth-last-child(-n+2){grid-column:span 3}}
@media(max-width:48rem){html body :is(.hero-layout,.proof-layout,.about-layout,.vision-layout,.close-layout,.trainer-layout){grid-template-columns:minmax(0,1fr)}.trainer-layout>div:first-child{grid-column:auto}}
}

@media screen{html body :is(.hero-grid,.book-hero-inner){max-width:var(--layout-width)}.book-hero{padding-inline:var(--layout-gutter)}}

/* Cluster 1 adaptation: touch access, short screens, and readable content grids. */
@media screen{
:root{--layout-gutter:max(1.25rem,min(3vw,2.5rem),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px))}
html body :is(.text-link,.outline,.home-link,.route-list a,.browse-links a){display:inline-flex;align-items:center;min-block-size:2.75rem}
html body :is(input:not([type=radio]):not([type=checkbox]),textarea,select){font-size:max(1rem,16px)}
@media(max-height:32rem){
 .alignment-shell,.bm-nav-shell{flex-wrap:wrap}
 .alignment-header .mobile-menu[open],.bm-header .bm-mobile-menu[open]{flex:1 0 100%;min-width:0}
 .alignment-header .mobile-menu[open]>summary,.bm-header .bm-mobile-menu[open]>summary{width:max-content;margin-inline-start:auto}
 .alignment-header .mobile-menu[open] nav,.bm-header .bm-mobile-menu[open] nav{position:static;width:100%;max-width:none;max-height:none;overflow:visible;margin-block-start:.75rem}
}
}

@media screen{
@media(min-width:40rem) and (max-width:63.99rem){
 html body .symptom-list,html body .method-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 .symptom-list>*:last-child:nth-child(odd),.method-steps>li:last-child:nth-child(odd){grid-column:1/-1}
 .method-steps>li:nth-child(n){grid-column:auto}.method-steps>li:last-child{grid-column:1/-1}
}
@media(max-width:39.99rem){html body :is(.programme-basics-grid,.programme-pricing-grid){grid-template-columns:minmax(0,1fr)}}
}

/* Cluster 1 motion: immediate feedback and short, non-blocking state transitions. */
:root{--cluster-motion-press:120ms;--cluster-motion-feedback:160ms;--cluster-motion-state:220ms;--cluster-motion-enter:360ms;--cluster-motion-ease:cubic-bezier(.22,1,.36,1)}
@keyframes cluster-state-enter{from{opacity:.8;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes cluster-heading-enter{from{opacity:.8;transform:translateY(6px)}to{opacity:1;transform:none}}
@media screen{
/* Replace competing entrance sequences; content never depends on an observer to be visible. */
html body :is(.hero,.hero *,.page-hero,.page-hero *,.book-hero,.book-hero *,.landing,.landing *){animation:none!important}
html body .motion-reveal{opacity:1!important;transform:none!important;transition:none!important}
.living-bridge-thread-cursor-halo,.progress-dot.current::after{animation:none!important}
.hero-media :is(img,video){transition:none!important;transform:none!important}
@media(prefers-reduced-motion:no-preference){
 html body :is(.button,.secondary,.nav-cta,.bm-nav-cta,.start-btn,.next-btn,.previous-btn,.edit-btn,.share-btn,.cta-btn,.text-button,.text-link,.outline,summary){transition:background-color var(--cluster-motion-feedback) var(--cluster-motion-ease),border-color var(--cluster-motion-feedback) var(--cluster-motion-ease),color var(--cluster-motion-feedback) var(--cluster-motion-ease),opacity var(--cluster-motion-feedback) var(--cluster-motion-ease),transform var(--cluster-motion-press) var(--cluster-motion-ease)!important}
 html body :is(.choice,.symptom,.cost-card,.choice-option span,.format-options label,input,textarea,select){transition:background-color var(--cluster-motion-feedback) var(--cluster-motion-ease),border-color var(--cluster-motion-feedback) var(--cluster-motion-ease),color var(--cluster-motion-feedback) var(--cluster-motion-ease),opacity var(--cluster-motion-feedback) var(--cluster-motion-ease)!important}
 html body :is(.button,.secondary,.nav-cta,.bm-nav-cta,.start-btn,.next-btn,.previous-btn,.edit-btn,.share-btn,.cta-btn):active:not(:disabled){transform:translateY(1px)!important}
 html body :is(.button,.secondary,.nav-cta,.bm-nav-cta,.start-btn,.next-btn,.previous-btn,.edit-btn,.share-btn,.cta-btn,.choice,.symptom,.cost-card):hover:not(:active){transform:none!important}
 html body details[open]>:not(summary){animation:cluster-state-enter var(--cluster-motion-state) var(--cluster-motion-ease) both!important}
 html body .progress span::before,html body .progress-bar::after{transition:transform var(--cluster-motion-state) var(--cluster-motion-ease)!important}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
}
@media screen and (prefers-reduced-motion:no-preference){html body :is(.hero,.page-hero,.book-hero) h1{animation:cluster-heading-enter var(--cluster-motion-enter) var(--cluster-motion-ease) both!important}}

/* Normalize: approved shared control shape and reading surfaces. */
:root{--cluster-radius:6px;--cluster-line:rgba(217,224,217,.28)}
@media screen{
 html body :is(.button,.nav-cta,.bm-nav-cta,.secondary,.start-btn,.next-btn,.previous-btn,.edit-btn,.share-btn,.cta-btn,.text-button){border-radius:var(--cluster-radius)}
}
