/* English marketing pages: shared component rules, loaded after page layouts. */
:root{
 --gf-body:20px;--gf-small:16px;--gf-caption:16px;--gf-label:13px;--gf-leading:1.6;
 --gf-h1:clamp(52px,5.5vw,80px);--gf-h2:clamp(42px,4.5vw,64px);--gf-h3:36px;
 --gf-section:clamp(64px,6vw,88px);--gf-gap:clamp(28px,5vw,64px);
 --gf-lead:25px;--gf-button:18px;--gf-price:40px;
}
body.training-site{font-size:var(--gf-body);line-height:var(--gf-leading);color:var(--gf-ink)}
.training-site :is(h1,h2,h3){font-family:Heading,Impact,sans-serif;font-weight:400;letter-spacing:-.02em;text-wrap:balance}
.training-site :is(.offer-hero h1,.classes-hero h1,.workshop-offer h1){font-size:var(--gf-h1);line-height:1.06;margin:0 0 24px;max-width:18ch}
.training-site :is(h2,.training-film h2,.core-heading h2,.class-practice h2,#contact h2,.wk-planner-heading h2){font-size:var(--gf-h2);line-height:1.08;margin:0 0 24px}
.training-site :is(h3,.path-copy h3,.class-offer h3,.coaching-prices h3,.wk-pricing h3,.joining-steps h3,.simple-belts h3){font-size:var(--gf-h3);line-height:1.12;margin:0 0 20px;min-height:0}
.training-site p{margin:0 0 24px;max-width:62ch}
.training-site p:last-child{margin-bottom:0}
.training-site :is(.large,.coach p.large,.core-copy .large){font-size:var(--gf-lead);line-height:1.5}
.training-site :is(.wk-details p,.wk-details li,.lesson-introduction p,.coach p:not(.large):not(.eyebrow),.joining-steps p,.faq summary,.faq details p,#contact p){font-size:var(--gf-body);line-height:var(--gf-leading)}
.training-site :is(.eyebrow,.core-heading .eyebrow){font-size:var(--gf-label);line-height:1.5;letter-spacing:.13em;margin:0 0 12px;text-transform:uppercase}
.training-site :is(.offer-note,.offer-terms,.lesson-duration,.wk-micro,.wk-caption,.wk-hint,.wk-parent,.wk-reference,.wk-terms,.wk-alternative,.class-arrival,.class-price-detail,.class-age-note,.path-price-note,.path-facts,.belt-duration,.belt-timing-note){font-size:var(--gf-small);line-height:1.6}
.training-site .button{display:inline-flex;justify-content:center;align-items:center;min-height:56px;height:auto;max-width:100%;padding:15px 24px;gap:12px;border:1px solid var(--gf-ink);font:500 var(--gf-button)/1.35 Body,Arial,sans-serif;border-radius:0;text-align:center;text-decoration:none;white-space:normal}
.training-site #adults .button{font-size:var(--gf-button)}
.training-site .button .link-arrow{width:16px;height:16px;flex:0 0 16px}
.training-site :is(.text-link,.wk-back,.wk-alternative a,.path-help a){font-size:var(--gf-button);line-height:1.5;text-underline-offset:5px}
.training-site :is(.text-link,.wk-back){min-height:44px;display:inline-flex;gap:12px;align-items:center}
.training-site .site-header{padding-block:18px;padding-inline:max(var(--gutter),calc((100% - 1200px)/2));gap:24px}
.training-site .site-header .logo{width:110px;height:auto;display:block}
.training-site .site-header>nav{gap:18px}
.training-site .site-header nav a{font-size:14px;line-height:1.5}
.training-site .site-header .header-actions{gap:12px}
.training-site .site-header .button.small{font-size:14px;line-height:1.35;min-height:48px;padding:12px 16px}
.training-site .header-actions{--nav-action-height:48px}
.training-site .section{padding-block:var(--gf-section)}
.training-site :is(.section-heading,.core-heading){margin-bottom:40px}
.training-site .section-heading h2,.training-site .core-heading h2{margin-bottom:0}
.training-site .section-heading p{margin-top:0}
.training-site :is(.split,.section-heading,.class-offers,.core-grid,.joining-section,.class-practice,.lesson-location,.wk-details){gap:var(--gf-gap);align-items:start}
.training-site :is(.classes-hero,.offer-hero){grid-template-columns:1.08fr .92fr;gap:var(--gf-gap);align-items:start;padding-block:var(--gf-section)}
.training-site :is(.offer-photo,.classes-photo){margin:0 20px 24px 0;position:relative;isolation:isolate}
.training-site .offer-photo>img{display:block;aspect-ratio:4/3;object-fit:cover;object-position:50% 24%;position:relative;z-index:0}
.training-site .offer-photo::before{z-index:1;mix-blend-mode:multiply;pointer-events:none}
.training-site .classes-photo-surface{position:relative;z-index:0}
.training-site .offer-photo img{filter:var(--gf-photo-filter);mix-blend-mode:multiply}
.training-site .core-grid{align-items:center}
.training-site .core-address{font-size:var(--gf-small);line-height:1.6}
/* Currency is always Body type; only its information role changes the scale. */
.training-site :is(.path-price,.class-pricing,.wk-amount,.coaching-prices dd,.wk-price-live){font-family:Body,Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:0}
.training-site .path-copy .path-price{font-size:24px;line-height:1.3;font-weight:600;min-height:0;margin:0 0 8px}
.training-site .path-copy .path-price-note{min-height:3.2em;margin:0 0 24px}
.training-site .path-copy .path-facts{padding-top:0;min-height:3.2em;margin:auto 0 16px}
.training-site .path-copy h3{margin-bottom:20px}
.training-site .path-copy>.button{font-size:var(--gf-button);margin-top:0}
.training-site .class-pricing{margin-top:auto;margin-bottom:24px}
.training-site .class-pricing>p:first-child{display:flex;align-items:baseline;gap:0;font:600 var(--gf-price)/1.2 Body,Arial,sans-serif;margin:0 0 12px;white-space:nowrap}
.training-site .class-pricing .price-amount{font:inherit;letter-spacing:0}
.training-site .class-pricing .price-unit{font:400 var(--gf-small)/1.5 Body,Arial,sans-serif}
.training-site .class-pricing .class-price-detail{font-size:var(--gf-small);line-height:1.6;margin:0}
.training-site .class-facts>div{font-size:var(--gf-body);line-height:1.5;grid-template-columns:75px minmax(0,1fr);padding:16px 0}
.training-site .class-facts dt{font-size:var(--gf-small)}
.training-site .class-age-note{font-size:var(--gf-small);font-weight:400}
.training-site .class-arrival{font-size:var(--gf-small);margin:0 0 28px}
.training-site .class-offer>h3+p{min-height:6.4em}
.training-site .class-action{margin-top:0}
.training-site .class-action>.button{min-height:56px}
.training-site .class-training-photo{margin:0 0 24px}
.training-site .joining-steps h3{margin-bottom:12px}
.training-site .joining-steps p{margin:0}
.training-site .class-practice{padding-top:0}
.training-site .coaching-prices{gap:32px}
.training-site .coaching-prices>div{min-width:0}
.training-site .coaching-prices h3{font-size:var(--gf-h3);min-height:1.12em}
.training-site .coaching-prices dl{margin:0}
.training-site .coaching-prices dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px 0;align-items:baseline;font-size:var(--gf-small);line-height:1.5}
.training-site .coaching-prices dd{font-size:var(--gf-body);font-weight:600;margin:0;text-align:right;white-space:nowrap}
.training-site .wk-pricing{gap:32px}
.training-site .wk-pricing>div{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.training-site .wk-pricing h3{min-height:2.24em}
.training-site .wk-pricing p{font-size:var(--gf-small);line-height:1.6;flex:1;margin:0 0 24px}
.training-site .wk-amount{font-size:var(--gf-price);line-height:1.2;font-weight:600;white-space:nowrap}
.training-site .wk-amount small{font-size:var(--gf-small);line-height:1.5;font-weight:400}
.training-site .wk-planner-heading h2{max-width:none}
.training-site :is(.wk-choice strong,.wk-field>span,.wk-inline>label,#workshop-form .wk-inline legend,.wk-summary>div){font-size:var(--gf-body);line-height:1.5}
.training-site :is(.wk-choice small,.wk-progress li,.wk-planner-heading>p:last-child){font-size:var(--gf-small);line-height:1.6}
.training-site :is(.wk-field input,.wk-field textarea){font:400 var(--gf-body)/1.5 Body,Arial,sans-serif;min-height:56px;padding:14px 16px}
.training-site .wk-options{gap:16px}
.training-site .wk-details h2{max-width:12ch}
.training-site .wk-pricing,.training-site .group-workshops,.training-site .wk-planner{margin-top:48px}
.training-site .wk-planner [data-step="3"]>p{font-size:var(--gf-small)}
.training-site .simple-belts h3{margin-bottom:8px}
.training-site .simple-belts p{font-size:var(--gf-small);line-height:1.6}
.training-site footer{gap:24px}
.training-site :is(.footer-paths a,.footer-brand>a,.footer-brand>.share-site,.footer-inclusion,.footer-legal){font-size:var(--gf-small);line-height:1.5}
.training-site .footer-paths{gap:16px 28px;margin:0}
.utility-page.training-site main{padding-block:var(--gf-section)}
.utility-page.training-site .legal-page{max-width:900px}
.utility-page.training-site .legal-page h1{font-size:var(--gf-h1);line-height:1.06;margin:0 0 24px}
.utility-page.training-site .legal-page h2{font-size:var(--gf-h3);line-height:1.12;margin:0 0 20px}
.utility-page.training-site .legal-page section{margin-top:40px}
@media(max-width:1150px){.training-site .site-header{grid-template-columns:auto 1fr 44px;gap:12px}.training-site .site-header .mobile-menu nav a{font-size:18px}}
@media(max-width:760px){
 :root{--gf-body:19px;--gf-lead:23px;--gf-h1:clamp(48px,11vw,64px);--gf-h2:42px;--gf-h3:32px;--gf-price:36px;--gf-gap:28px;--gf-section:64px}
 .training-site .site-header{padding:16px 24px;gap:8px}
 .training-site .site-header .logo{width:78px}
 .training-site .site-header .header-actions{gap:8px}
 .training-site .site-header .button.small{font-size:12px;padding-inline:10px}
 .training-site :is(.classes-hero,.offer-hero,.joining-section,.class-practice,.core-grid){grid-template-columns:1fr}
 .training-site :is(.classes-hero,.offer-hero){padding-top:40px;gap:40px}
 .training-site :is(.section-heading,.core-heading){margin-bottom:32px}
 .training-site :is(.class-offers,.path-grid){gap:48px}
 .training-site :is(.path-copy .path-facts,.path-copy .path-price-note,.class-offer>h3+p,.coaching-prices h3,.wk-pricing h3){min-height:0}
 .training-site .path-copy .path-facts{margin-top:0}
 .training-site .path-copy>.button,.training-site .class-action>.button{width:100%}
 .training-site .class-pricing{margin-top:0}
 .training-site .class-facts>div{grid-template-columns:64px minmax(0,1fr)}
 .training-site .class-arrival{min-height:0}
 .training-site .core-heading h2{max-width:11ch}
 .training-site .core-heading .eyebrow{max-width:none}
 .training-site .wk-pricing>div{display:flex;padding:24px 0;gap:0}
 .training-site .wk-pricing h3{margin-bottom:12px}
 .training-site .wk-pricing p{margin-bottom:16px;flex:none}
 .training-site .wk-amount small{display:inline;margin:0}
 .training-site .wk-planner{padding:24px}
 .training-site .wk-progress{gap:12px}
 .training-site .wk-progress li{font-size:14px}
 .training-site .wk-choice strong{font-size:18px}
 .training-site .wk-actions .button{font-size:var(--gf-button)}
 .training-site .coaching-prices h3{margin-bottom:20px}
 .training-site .hero-choices{gap:16px 24px}
}
@media(max-width:380px){.training-site .site-header{padding-inline:16px}.training-site .site-header .logo{width:64px}.training-site .site-header .button.small{font-size:11px;padding-inline:8px}}

.training-site .wk-micro{margin-bottom:24px}
.training-site .path-copy .path-price-note{min-height:3.2em}
@media(max-width:760px){.training-site .path-copy .path-price-note{min-height:0}}
/* Stretch peer offers so differing fact counts do not move prices or actions. */
.training-site .class-offers{align-items:stretch}
.utility-page.training-site main h1{font-size:var(--gf-h1);line-height:1.06;margin:0 0 24px}

.training-site .offer-hero .offer-note{margin:0 0 24px}

/* Practical facts share one line-icon vocabulary; their text remains explicit. */
.fact-icon{display:block;width:20px;height:20px;flex:0 0 20px;color:currentColor;overflow:visible}
.has-fact-icon{display:flex;align-items:flex-start;gap:12px}
.has-fact-icon>.fact-icon{margin-top:3px}
.has-fact-icon>span{min-width:0}
.training-site .class-facts>div{grid-template-columns:88px minmax(0,1fr);gap:16px;align-items:start}
.training-site .class-facts dt{display:flex;align-items:center;align-self:start;gap:8px;padding-top:3px;line-height:1.5;font-size:16px}
.training-site .class-facts dd{line-height:1.5}
.training-site .class-facts .class-age-note{font-size:16px;line-height:1.5;margin-top:6px;max-width:none}
.training-site .class-schedule{display:flex;flex-wrap:wrap;gap:0 16px}
.class-time{white-space:nowrap}
.training-site .class-pricing .class-price-detail{min-height:3.2em}
.training-site .class-pricing .class-drop-in{display:flex;align-items:center;min-height:44px;font-size:16px;line-height:1.5;margin:8px 0 0}
.class-drop-in a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px;text-decoration-thickness:1px}
.training-site .core-address{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px}
.core-address>.fact-icon{margin-top:3px}
.training-site .wk-location-tease{border-left:0;padding-left:0}
.wk-location-tease>.fact-icon{margin-top:5px}
.training-site .group-quote-note{font-size:16px;line-height:1.6;margin-top:28px;margin-bottom:12px}
.training-site .group-quote-note+.lesson-duration{margin-top:0}
.training-site .wk-pricing{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(min-width:761px) and (max-width:1000px){.training-site .wk-pricing{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}}
@media(max-width:760px){
 .training-site .class-facts>div{grid-template-columns:80px minmax(0,1fr);gap:16px}
 .training-site .class-facts dt{font-size:16px}
 .training-site .class-facts .class-age-note{max-width:26ch}
 .training-site .class-schedule{gap:0 8px}
 .desktop-detail-break{display:none}
 .training-site .wk-pricing{grid-template-columns:1fr}
}
/* Workshop options form a compact price list on narrow screens. */
@media(max-width:760px){
 .training-site .wk-pricing{gap:0}
 .training-site .wk-pricing>div{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:8px 16px;align-items:start;padding:24px 0}
 .training-site .wk-pricing h3{grid-column:1;grid-row:1;margin:0}
 .training-site .wk-pricing p{grid-column:1;grid-row:2;margin:0}
 .training-site .wk-pricing .wk-amount{grid-column:2;grid-row:1/3;align-self:start;justify-self:end;font-size:var(--gf-price);text-align:right}
 .training-site .wk-pricing .wk-amount small{display:block;margin-top:4px;text-align:right}
}

/* A compact route to the shared FAQ page replaces embedded service-page FAQs. */
.training-site .faq-page-link{padding-block:28px}
@media(max-width:760px){.training-site .faq-page-link{padding-block:24px}}

/* One training group in the main and mobile navigation. */
.training-site .site-header .training-menu{position:relative;min-width:0}
.training-site .site-header .training-menu>summary{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;width:auto;height:auto;padding:10px 0;border:0;background:transparent;color:var(--gf-ink);font:400 14px/1.5 Body,Arial,sans-serif;list-style:none;cursor:pointer;white-space:nowrap;text-underline-offset:7px;text-decoration-thickness:2px}
.training-menu>summary::-webkit-details-marker{display:none}
.training-site .site-header .training-menu>summary::before,.training-site .site-header .training-menu>summary::after{content:none}
.training-site .training-menu.is-current>summary{text-decoration:underline}
.nav-chevron{display:block;width:14px;height:14px;flex:none;transition:transform .18s ease}
.training-menu[open]>summary .nav-chevron{transform:rotate(180deg)}
.training-site .site-header .training-menu-links{position:absolute;z-index:20;top:calc(100% + 8px);left:-16px;width:224px;padding:8px;border:1px solid var(--gf-rule);background:var(--gf-paper);box-shadow:0 10px 24px #19191818;display:flex;flex-direction:column;gap:0}
.training-site .site-header .training-menu-links>a{display:flex;align-items:center;min-height:44px;padding:10px 12px;font-size:14px;line-height:1.5;white-space:nowrap;text-decoration:none}
.training-site .site-header .training-menu-links>a::after{content:none}
.training-site .site-header .training-menu-links>a:hover,.training-site .site-header .training-menu-links>a:focus-visible{background:var(--gf-yellow);color:var(--gf-ink)}
.training-site .site-header .training-menu-links>a[aria-current=page]{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}
@media(max-width:1150px){
 .training-site .site-header .mobile-menu>nav{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .training-site .site-header .mobile-menu .training-menu{width:100%}
 .training-site .site-header .mobile-menu .training-menu>summary{width:100%;justify-content:space-between;min-height:48px;padding:12px 0;font-size:18px;text-align:left}
 .training-site .site-header .mobile-menu .training-menu-links{position:static;top:auto;left:auto;width:auto;margin:4px 0 12px;padding:0 0 0 14px;border:0;border-left:2px solid var(--gf-yellow);background:transparent;box-shadow:none}
 .training-site .site-header .mobile-menu .training-menu-links>a{font-size:18px;min-height:44px;padding:10px 8px}
}
@media(prefers-reduced-motion:reduce){.nav-chevron{transition:none}}
@media(max-width:1150px){.training-site .site-header .mobile-menu>nav>a{display:flex;align-items:center;min-height:48px;padding:12px 0}}

/* Class signup is the primary marketing action; contact stays available as help. */
html[lang="en"] .training-site #contact .funnel-question{font-size:var(--gf-small);line-height:1.6;margin:24px 0 0}html[lang="en"] .funnel-question a{text-underline-offset:5px}
.workshop-classes-link{font-size:var(--gf-small);line-height:1.6;margin:28px 0}.workshop-classes-link a{text-underline-offset:5px}

/* Let visitors choose when to explore the full belt guide. */
.belt-explore{margin-top:24px;border-top:1px solid var(--gf-rule);padding-top:20px}
.belt-explore>summary{width:fit-content;cursor:pointer;font-size:18px;text-underline-offset:5px}
.belt-explore>summary:hover,.belt-explore>summary:focus-visible{text-decoration:underline}
.belt-explore-content{padding-top:24px}
.belt-explore-content>p:first-child{max-width:760px;margin-bottom:32px}
