/* Good Fight design system. Owner reference: Good-Fight-Style-Guide.html.
   Loaded after legacy page styles; shared components belong here. */
:root{--gf-paper:#f8efdd;--gf-ink:#191918;--gf-yellow:#ffbc00;--gf-blue:#1550a0;--gf-muted:#eadfca;--gf-photo-paper:#e8ddc8;--gf-rule:#d5cbbb;--gf-body:20px;--gf-small:16px;--gf-caption:15px;--gf-label:13px;--gf-leading:1.65;--gf-gap:clamp(28px,5vw,64px);--gf-section:clamp(64px,7vw,104px);--gf-h1:clamp(52px,6vw,88px);--gf-h2:clamp(42px,5vw,72px);--gf-h3:clamp(32px,3.5vw,48px);--gf-photo-filter:grayscale(1);--gutter:clamp(24px,5vw,72px)}
body.training-site{font-size:var(--gf-body);line-height:var(--gf-leading)}
.training-site .wrap{width:min(1200px,calc(100% - var(--gutter)*2))}
.training-site .section,.training-site #contact{padding-block:var(--gf-section)}
.training-site h1,.training-site h2,.training-site h3{font-weight:400;letter-spacing:-.02em;text-wrap:balance}
.training-site .offer-hero h1,.training-site .workshop-offer h1{font-size:var(--gf-h1);line-height:1.06;margin:0 0 24px}
.training-site h2,.training-site #contact h2{font-size:var(--gf-h2);line-height:1.08;margin-bottom:24px}
.training-site h3,.training-site .wk-details h3,.training-site .lesson-introduction h3{font-size:var(--gf-h3);line-height:1.12;margin-bottom:20px}
.training-site p{margin-bottom:24px;max-width:62ch}.training-site p:last-child{margin-bottom:0}
.training-site .large,.training-site .coach p.large{font-size:clamp(23px,2vw,27px);line-height:1.5}
.training-site .eyebrow{font-size:var(--gf-label);line-height:1.5;letter-spacing:.13em;text-transform:uppercase;margin:0 0 16px}
.training-site .coach p:not(.eyebrow):not(.large),.training-site .wk-details p,.training-site .wk-details li,.training-site .lesson-introduction p,.training-site .faq summary,.training-site .faq details p,.training-site #contact p{font-size:var(--gf-body);line-height:var(--gf-leading)}
.training-site .button{min-height:56px;padding:15px 24px;gap:12px;border:1px solid var(--gf-ink);border-radius:0;font-size:18px;line-height:1.35;letter-spacing:0;text-align:center;font-weight:500;cursor:pointer;white-space:normal}
.training-site .button:hover{transform:none;background:var(--gf-yellow);color:var(--gf-ink)}
.training-site .button:active{transform:translateY(1px)}
.training-site .site-header .button.small{min-height:48px;height:auto;padding:12px 16px;font-size:14px}
.training-site .button:disabled{cursor:wait;opacity:.65}
.training-site .text-link,.training-site .wk-back{font-size:18px;line-height:1.5;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center;gap:10px}
.training-site :focus-visible{outline:3px solid var(--gf-blue);outline-offset:5px}
.training-site #contact :focus-visible{outline-color:var(--gf-paper)}
.training-site .split,.training-site .section-heading,.training-site .offer-hero,.training-site .lesson-location,.training-site .lesson-practical .lesson-introduction,.training-site .lesson-faq .faq-columns,.training-site .wk-details,.training-site .workshop-offer .wk-intro{gap:var(--gf-gap)}
.training-site .section-heading{align-items:start;margin-bottom:40px}.training-site .section-heading p{margin-top:0}
.training-site .path-grid{gap:var(--gf-gap);align-items:stretch}
.training-site .path-option{display:flex;flex-direction:column;min-width:0}
.training-site .path-photo{flex:none;aspect-ratio:8/5}
.training-site .path-copy{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:24px 0 32px;border-bottom:1px solid var(--gf-rule)}
.training-site .path-copy h3{font-size:clamp(36px,3.7vw,52px);min-height:1.12em;margin:0 0 20px}
.training-site .path-copy>p:not(.eyebrow){max-width:36ch}
.training-site .path-copy .path-facts{margin-top:auto;font-size:var(--gf-small);padding-top:8px;margin-bottom:12px}
.training-site .path-copy .path-price{font-size:23px;line-height:1.4;font-weight:600;margin-bottom:20px}
.training-site .path-copy>.text-link{margin-top:0}
/* Same warm paper wash for every documentary photograph; artwork and logos excluded. */
.training-site :is(.path-photo,.offer-photo,.coach-photo,.wk-gallery figure){background:var(--gf-photo-paper);isolation:isolate}
.training-site :is(.path-photo,.offer-photo,.coach-photo,.wk-gallery figure) img{filter:var(--gf-photo-filter);mix-blend-mode:multiply}
.training-site .coach-photo{margin:0;max-width:100%;width:100%}
.training-site .offer-photo{margin:0 14px 18px 0;overflow:visible}
.training-site .offer-photo:before{content:"";position:absolute;z-index:-1}
.training-site .wk-gallery{gap:24px;margin-top:48px}
.training-site .wk-gallery figure{aspect-ratio:4/3}
.training-site .wk-caption{font-size:var(--gf-caption);line-height:1.5;margin:16px 0 48px}
.training-site .lesson-options .coaching-prices,.training-site .wk-pricing{gap:32px;align-items:stretch}
.training-site .coaching-prices>div,.training-site .wk-pricing>div{padding-top:24px;border-top:3px solid var(--gf-ink)}
.training-site .coaching-prices h3,.training-site .wk-pricing h3{font-size:32px;line-height:1.15;min-height:2.3em;margin-bottom:16px}
.training-site .coaching-prices dl>div{font-size:18px;line-height:1.5;padding:16px 0}
.training-site .wk-pricing>div{display:flex;flex-direction:column;align-items:flex-start}
.training-site .wk-pricing p{font-size:var(--gf-small);line-height:1.55;min-height:0;flex:1;margin-bottom:24px}
.training-site .wk-amount{font-size:40px;line-height:1.1}.training-site .wk-amount small{font-size:var(--gf-small)}
.training-site :is(.offer-terms,.offer-note,.wk-terms,.wk-alternative,.wk-parent,.wk-reference,.wk-micro,.lesson-duration){font-size:var(--gf-small);line-height:1.6}
.training-site .lesson-faq{padding-top:0}
.training-site .wk-planner{padding:clamp(24px,4vw,48px);margin-top:56px;background:var(--gf-muted)}
.training-site .wk-planner-heading h3{font-size:var(--gf-h2)}
.training-site .wk-planner-heading>p:last-child,.training-site .wk-price-live,.training-site .wk-field>span,.training-site .wk-inline>label,.training-site #workshop-form .wk-inline legend{font-size:18px}
.training-site .wk-progress{margin:32px 0 24px}.training-site .wk-progress li{font-size:var(--gf-small);line-height:1.5}
.training-site .wk-choice{padding:20px 16px;gap:12px;align-items:flex-start}
.training-site .wk-choice strong{font-size:18px;line-height:1.5}.training-site .wk-choice small{font-size:var(--gf-small);line-height:1.55}
.training-site .wk-field input,.training-site .wk-field textarea{min-height:56px;font-size:18px;line-height:1.5;padding:14px 16px}
.training-site .wk-hint{font-size:var(--gf-small);line-height:1.6}
.training-site .wk-actions{gap:16px;margin-top:32px}.training-site .wk-actions .button{font-size:18px}
.training-site .wk-summary>div{font-size:18px;line-height:1.6}
.training-site .wk-error{font-size:var(--gf-small)}
.training-site .footer-paths a,.training-site .footer-legal,.training-site .footer-inclusion,.training-site .share-site{font-size:var(--gf-small);line-height:1.5}
.training-site footer{align-items:center;gap:24px}.training-site .footer-paths{margin:0;padding-block:24px;gap:16px 28px}
@media(max-width:760px){:root{--gf-body:19px;--gf-h1:clamp(48px,10.5vw,70px);--gf-h2:clamp(40px,9vw,52px);--gf-h3:36px;--gf-gap:28px;--gf-section:64px;--gutter:24px}
.training-site .path-photo{aspect-ratio:4/3}.training-site .path-grid{gap:48px}.training-site .path-copy h3{font-size:40px;min-height:0}.training-site .path-copy .path-facts{margin-top:0}
.training-site .coaching-prices h3,.training-site .wk-pricing h3{font-size:30px;min-height:0}
.training-site .wk-pricing>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:24px 0}.training-site .wk-pricing h3{margin:0}.training-site .wk-pricing p{grid-column:1;margin:0}.training-site .wk-amount{grid-column:2;grid-row:1/3;align-self:center;font-size:34px}.training-site .wk-amount small{display:block;margin-top:8px}
.training-site .wk-gallery{gap:12px;margin-top:32px}.training-site .wk-gallery figure{aspect-ratio:3/4}.training-site .wk-caption{margin-bottom:32px}
.training-site .wk-progress li{font-size:14px}.training-site .wk-planner{padding:24px}.training-site .wk-actions{align-items:stretch}.training-site .wk-actions .button{max-width:100%;margin-left:auto}.training-site .wk-summary>div{font-size:17px}
.training-site .site-header{padding-inline:24px}.training-site .site-header .button.small{font-size:12px;padding-inline:12px}.training-site .site-header .logo{width:78px}.training-site .offer-photo{max-width:480px}
.training-site .coach-photo{width:100%;margin:0}.training-site .lesson-faq .faq-columns{gap:0}.training-site #contact .contact-copy{padding-right:0}
}
@media(max-width:380px){.training-site .site-header{padding-inline:16px}.training-site .site-header .logo{width:64px}.training-site .site-header .button.small{padding-inline:8px}.training-site .language-switch{width:44px}.training-site .wk-planner{padding:20px}.training-site .wk-actions .button{width:100%}.training-site .wk-progress{gap:8px}}
@media(prefers-reduced-motion:reduce){.training-site .button,.training-site .path-photo img{transition:none;transform:none}}
.training-site .path-copy .path-price{margin-bottom:8px}.training-site .path-copy .path-price-note{font-size:var(--gf-small);line-height:1.5;min-height:3em;margin:0 0 24px;max-width:36ch}.training-site .path-copy>.button{margin-top:0}
@media(max-width:760px){.training-site .path-copy .path-price-note{min-height:0}}
.training-site .site-header{padding-inline:max(var(--gutter),calc((100% - 1200px)/2))}.training-site .workshop-offer .wk-intro{align-items:start}.training-site .workshop-offer .wk-opening{padding-top:32px}
@media(max-width:760px){.training-site .site-header{padding-inline:24px}.training-site .workshop-offer .wk-opening{padding-top:0}}
@media(max-width:380px){.training-site .site-header{padding-inline:16px}}

/* Same textured yellow paper and entrance as the homepage portrait. */
.offer-photo::before{inset:15% -24px -24px 9%;background-color:var(--gold);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.065' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23paper)' opacity='.32'/%3E%3C/svg%3E");background-blend-mode:multiply;clip-path:polygon(1% 3%,13% 1%,25% 2%,39% 0%,51% 2%,65% 1%,79% 3%,93% 1%,99% 4%,98% 17%,100% 29%,98% 42%,100% 58%,98% 72%,99% 87%,97% 98%,84% 97%,70% 100%,57% 98%,43% 100%,30% 98%,15% 99%,2% 97%,3% 82%,0% 67%,2% 53%,0% 39%,2% 24%);transform:rotate(-5deg);transform-origin:50% 65%;transition:transform 850ms cubic-bezier(.2,.8,.25,1),opacity 650ms ease;will-change:transform,opacity}.motion-ready .offer-photo:not(.paper-arrived)::before{transform:translate(-38px,48px) rotate(-12deg);opacity:0}.motion-ready .offer-photo.paper-arrived::before{transform:translate(0,0) rotate(-5deg);opacity:1}.offer-photo img{mix-blend-mode:multiply}
.training-site .path-copy .path-price{margin-bottom:4px}.training-site .path-copy .path-commitment{font-size:16px;margin:0 0 22px}.training-audiences{padding-bottom:48px}
@media(prefers-reduced-motion:reduce){.motion-ready .offer-photo::before{transform:rotate(-5deg)!important;opacity:1!important;transition:none!important}}

.group-workshops{display:grid;grid-template-columns:1fr 1fr;gap:var(--gf-gap);align-items:center;margin:64px 0;padding:48px 0;border-top:1px solid var(--gf-rule);border-bottom:1px solid var(--gf-rule)}.group-workshop-photo{margin:0;background:var(--gf-photo-paper);isolation:isolate}.group-workshop-photo img{display:block;width:100%;height:auto;filter:var(--gf-photo-filter);mix-blend-mode:multiply}.group-workshops h3{font-size:var(--gf-h3)}.group-workshops p{font-size:var(--gf-body)}.group-workshops .eyebrow{font-size:var(--gf-label)}@media(max-width:760px){.group-workshops{grid-template-columns:1fr;gap:28px;margin:40px 0;padding:32px 0}}

/* Match portrait frames without stretching the photographs. */
.training-site .wk-gallery{align-items:start}
.training-site .wk-gallery figure{margin:0;aspect-ratio:4/5;overflow:hidden}
.training-site .wk-gallery img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
@media(max-width:760px){
 .training-site .wk-gallery{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px}
 .training-site .wk-gallery figure{flex:0 0 86%;scroll-snap-align:start}
}

/* Shared editorial rhythm: consistent sections, component gaps and actions. */
:root{--gf-section:clamp(64px,6vw,88px);--gf-stack:24px;--gf-block:48px}
.training-site .eyebrow{margin-bottom:12px}
.training-site .split,.training-site .offer-hero,.training-site .lesson-location{align-items:start}
.training-site .button{min-height:56px;padding:15px 24px}
.training-site p+.button{margin-top:8px}
.training-site .path-copy .path-facts{min-height:3.2em;margin-bottom:16px;padding-top:12px}
.training-site .path-copy .path-price{margin:0 0 20px}
.training-site .path-copy>.button{margin-top:0}
.home-page .training-film{padding-top:56px}
.home-page .training-film h2{margin-bottom:24px}
.home-page #approach{padding-block:var(--gf-section) 40px}
.home-page #justin{padding-top:40px}
.training-site .coach-photo::before,.training-site .offer-photo::before{opacity:1}
.motion-ready .coach-photo.paper-arrived::before,.motion-ready .offer-photo.paper-arrived::before{opacity:1}
.training-site .offer-hero{padding-bottom:48px}
.training-site .training-audiences{padding-top:24px;padding-bottom:64px}
.training-site .coaching-prices h3{min-height:2.3em;margin-bottom:24px}
.training-site .coaching-prices dl{margin:0}
.training-site .lesson-duration{margin:32px 0 16px}
.training-site .offer-terms{margin-bottom:24px}
.training-site .lesson-kids{margin-top:48px;padding-top:40px;border-top:1px solid var(--gf-rule)}
.training-site .lesson-kids-copy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.training-site .lesson-kids-copy p{margin:0}
.training-site .lesson-location{margin-top:48px;padding-top:40px}
.training-site .lesson-location h2{margin-bottom:0}
.training-site .lesson-faq{padding-bottom:64px}
.training-site .offer-cross{padding-block:64px}
.training-site .workshop-offer .wk-intro{grid-template-columns:1.2fr 1fr;gap:48px}
.training-site .workshop-offer h1{font-size:clamp(48px,5.2vw,76px);max-width:18ch}
.training-site .workshop-offer .wk-opening{padding-top:0}
.training-site .wk-pricing{margin-top:48px}
.training-site .wk-terms{max-width:none;width:100%;margin:24px 0 0;padding-top:20px;border-top:1px solid var(--gf-rule)}
.training-site .group-workshops{margin:48px 0;padding-block:40px;align-items:start}
.training-site .wk-planner{margin-top:48px}
.training-site .wk-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.training-site .wk-price-live:empty{display:none}
.training-site .wk-actions{margin-top:24px}
.training-site .wk-error:empty{display:none}
.training-site .wk-alternative{margin:20px 0 0;padding-top:20px;border-top:1px solid var(--gf-rule)}
.training-site .workshop-offer{padding-bottom:48px}
.training-site footer{padding-top:24px}
@media(max-width:760px){
 .home-page .training-film{padding-top:40px}
 .home-page #approach{padding-bottom:24px}.home-page #justin{padding-top:32px}
 .training-site .path-copy .path-facts{min-height:0}
 .training-site .offer-hero{padding-bottom:40px}
 .training-site .training-audiences{padding-top:16px;padding-bottom:48px}
 .training-site .lesson-kids-copy{grid-template-columns:1fr;gap:24px}
 .training-site .lesson-kids,.training-site .lesson-location{margin-top:40px;padding-top:32px}
 .training-site .lesson-faq,.training-site .offer-cross{padding-bottom:48px}
 .training-site .offer-cross{padding-top:48px}
 .training-site .workshop-offer .wk-intro{grid-template-columns:1fr;gap:32px}
 .training-site .workshop-offer h1{font-size:clamp(46px,10vw,64px);max-width:18ch!important}
 .training-site .wk-options{grid-template-columns:1fr}
 .training-site .group-workshops{margin:40px 0;padding-block:32px}
 .training-site .wk-planner{margin-top:40px}
 .training-site .workshop-offer{padding-bottom:32px}
}

/* Keep decorative ink above the copy and footer controls on one baseline. */
.home-page #approach .ink-approach{width:540px;height:76px;left:-120px;top:-24px;transform:none;overflow:hidden}
.training-site .footer-brand{gap:20px;align-items:center}
.training-site .footer-brand>a,.training-site .footer-brand>.share-site{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0;font-family:Body,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.5;text-decoration:underline;text-underline-offset:5px}
.training-site .footer-brand .link-arrow{width:16px;height:16px;flex:0 0 16px}
.training-site .footer-brand strong{font-size:24px;line-height:1.2}
.training-site .share-status:empty{display:none}
@media(max-width:760px){.home-page #approach .ink-approach{width:360px;height:60px;left:-100px;top:-24px}.training-site .footer-brand{gap:12px 20px}}

/* The ink embraces the heading, with the words kept inside its open centre. */
.home-page #approach .approach-title{position:relative;isolation:isolate;padding:80px 0;min-width:0;align-self:start}
.home-page #approach .approach-title h2{position:relative;z-index:1;margin:0}
.home-page #approach .ink-approach{position:absolute;width:calc(100% + 200px);height:100%;left:-160px;top:0;z-index:0;pointer-events:none;overflow:hidden}
.training-site .simple-belt-guide{padding-top:0;padding-bottom:64px}
.simple-belts{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;padding:0;margin:0}
.simple-belts li{min-width:0}.simple-belts svg{display:block;width:100%;height:auto;margin-bottom:24px}
.training-site .simple-belts h3{font-size:36px;margin-bottom:8px}
.training-site .simple-belts p{font-size:18px;line-height:1.6;margin-bottom:0}
.training-site .simple-belts .belt-duration{font-size:16px;margin-bottom:16px;font-weight:600}
.training-site .belt-timing-note{font-size:16px;line-height:1.6;max-width:85ch;margin:32px 0 0;padding-top:24px;border-top:1px solid var(--gf-rule)}
.training-site .belt-timing-note strong{text-decoration-line:underline;text-decoration-color:#ffbc00;text-decoration-thickness:3px;text-underline-offset:4px;text-decoration-skip-ink:none}
@media(max-width:1000px){.simple-belts{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}}
@media(max-width:760px){.home-page #approach .approach-title{padding:64px 0}.home-page #approach .ink-approach{width:calc(100% + 120px);left:-96px;height:100%;top:0}.training-site .simple-belt-guide{padding-bottom:48px}.training-site .simple-belts h3{font-size:32px}.simple-belts{gap:32px 24px}}
@media(max-width:420px){.simple-belts{grid-template-columns:1fr}.simple-belts svg{max-width:260px}}
.home-page #approach .approach-title{padding:104px 0}
.home-page #approach .ink-approach{width:calc(100% + 300px);left:-250px}
@media(max-width:760px){.home-page #approach .approach-title{padding:96px 0}.home-page #approach .ink-approach{width:calc(100% + 240px);left:-200px}}

/* Compact lesson essentials and clear testimonial-to-FAQ rhythm. */
.training-site .lesson-practical{padding-top:56px;padding-bottom:48px}
.training-site .lesson-essentials{margin-top:0;padding-top:0;border-top:0}
.training-site .lesson-essentials h3{margin-bottom:16px}
.training-site .lesson-essentials p{margin:0 0 16px}
.training-site .lesson-essentials p:last-child{margin-bottom:0}
.training-site .lesson-location{margin-top:32px;padding-top:28px}
.training-site .simple-belt-guide{padding-bottom:40px}
.training-site .lesson-quote{padding-block:36px}
.training-site .lesson-quote .parent-quote blockquote{font-size:clamp(22px,2vw,28px);line-height:1.5}
.training-site .lesson-quote>.wrap>.eyebrow{margin-bottom:16px}
.training-site .lesson-quote+.lesson-faq{padding-top:48px!important}
@media(max-width:760px){
 .training-site .lesson-practical{padding-top:40px;padding-bottom:36px}
 .training-site .lesson-essentials{gap:28px}
 .training-site .lesson-quote{padding-block:32px}
 .training-site .lesson-quote+.lesson-faq{padding-top:40px!important}
}
