/* ================================================================
   GLOBAL TYPOGRAPHY + RESPONSIVE QA
   Final cascade: consistent rhythm, controlled wrapping and no page overflow.
   ================================================================ */
html{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:320px;overflow-x:clip}
main,.site-footer,.section,.hero,.authority,.gallery-strip,.process-result{max-width:100%;overflow-x:clip}
img,video,svg{max-width:100%}
.container,.section-title,.title-line,.split-heading>*,.motion-heading>*,.field-heading>*,.story-heading>*,.experience-layout>*,.footer-grid>*{min-width:0}
.section-title,.hero-copy h1,.footer-brand h2{text-wrap:balance}
.section-title{font-kerning:normal;font-synthesis:none}
.title-line{max-width:100%}
p{overflow-wrap:break-word;text-wrap:pretty}
.section-label,.eyebrow{line-height:1.35}
.btn{line-height:1.2;text-align:center}
section[id]{scroll-margin-top:76px}

/* The Hero overlay must retain the centering transform after its intro. */
.motion-ready.hero-ready .hero-overlay{transform:translateX(-50%)}
.hero{overflow:hidden}

/* Desktop title corrections: preserve authored lines inside their columns. */
.journey-intro .section-title{font-size:clamp(46px,3.8vw,60px)}
.method .section-title{font-size:clamp(58px,4.25vw,72px)}
.next-copy .section-title{font-size:clamp(48px,3.75vw,64px)}
.next-video-copy .section-title{font-size:clamp(52px,4.4vw,76px)}
.field-heading .section-title,.performance-motion .motion-heading .section-title,.stories-carousel .section-title{max-width:100%}
.experience-content,.coach-dashboard,.next-copy{min-width:0}

@media(min-width:1700px){
  :root{--container:1560px}
}

/* Fluid grids should shrink before their content can enlarge the page. */
.method-layout,.method-steps,.field-heading,.field-layout,.next-layout,.next-video-layout,.coach-profile-layout,.coach-dashboard,.motion-heading,.motion-layout,.story-heading,.experience-layout{min-width:0}
.method-layout>*,.method-steps>*,.field-layout>*,.next-layout>*,.next-video-layout>*,.coach-profile-layout>*,.coach-dashboard>*,.motion-layout>*,.experience-layout>*{min-width:0}

@media(max-width:1180px){
  .main-nav{z-index:120;max-height:calc(100svh - 76px);overflow-y:auto;box-shadow:0 22px 45px rgba(0,0,0,.35)}
  .section-title{letter-spacing:-.035em}
  .profile-copy .section-title,.next-copy .section-title,.coach-copy .section-title{max-width:720px}
}

@media(max-width:900px){
  :root{--section-space:clamp(78px,11vw,104px)}
  .section-title{line-height:.87}
  .title-line{white-space:normal}
  .title-line-accent{margin-top:.14em}
  .split-heading,.field-heading,.motion-heading,.story-heading{grid-template-columns:minmax(0,1fr)}
  .hero-content{min-width:0}
  .method-layout,.field-section .field-layout,.next-layout,.next-video-layout,.coach-profile-layout,.performance-motion .motion-layout,.experience-layout{grid-template-columns:minmax(0,1fr)}
  .performance-motion .motion-heading{grid-template-columns:minmax(0,1fr)}
  .performance-motion .motion-menu{width:100%;min-width:0;max-width:100%;overscroll-behavior-inline:contain}
  .performance-motion .video-main,.performance-motion .video-grid{width:100%;min-width:0}
  .story-heading{gap:30px}
  .experience-content{max-width:760px}
}

@media(max-width:640px){
  :root{--gutter:16px;--section-space:80px}
  .container{width:calc(100% - 32px)}
  .section-label,.eyebrow{margin-bottom:18px;font-size:8px;letter-spacing:.14em}
  .section-label::before{width:6px;height:6px;flex:none}
  .btn{min-height:46px;padding-inline:18px;font-size:9px;letter-spacing:.08em}
  .title-line-accent{margin-top:.1em}

  .hero-copy h1{font-size:clamp(52px,16vw,64px);line-height:.86}
  .hero-lead{font-size:11px}
  .hero-copy .button-row{grid-template-columns:1fr;gap:9px}

  .journey-intro .section-title{font-size:clamp(48px,13.5vw,54px);line-height:.91}
  .journey-intro>p:not(.section-label){font-size:11px}
  .journey .card-copy h3{font-size:clamp(29px,9vw,36px);white-space:normal}

  .method-layout,.field-heading{width:calc(100% - 32px)}
  .method .section-title{font-size:clamp(45px,12.4vw,50px);line-height:.9}
  .method-steps h3{font-size:clamp(29px,9vw,36px)}
  .method-steps p{font-size:10px}

  .profile-copy{padding-inline:16px}
  .profile-copy .section-title{font-size:clamp(48px,13vw,52px);line-height:.9}
  .profile-copy>p:not(.section-label){font-size:11px}
  .profile-radar{height:320px;overflow:visible}
  .radar-labels text{font-size:6.5px}
  .profile-metric{grid-template-columns:minmax(70px,82px) minmax(60px,1fr) 39px;gap:9px}

  .field-heading .section-title{font-size:clamp(48px,13vw,52px);line-height:.88}
  .field-heading>p:last-child{font-size:11px}
  .field-section .field-layout{width:calc(100% - 24px)}
  .field-section .field-board,.field-section .field-panel{width:100%;min-width:0}
  .field-board-top{left:14px;right:14px;gap:10px;font-size:6px}
  .field-section .hotspot{white-space:nowrap}

  .next-copy .section-title{font-size:clamp(48px,13.5vw,54px);line-height:.89}
  .next-video-copy .section-title{font-size:clamp(48px,13.5vw,54px);line-height:.89}
  .next-copy>p:not(.section-label),.next-video-copy>p:not(.section-label){font-size:11px}
  .next-layout,.next-video-layout{width:calc(100% - 32px)}
  .next-slide,.next-slides,.next-slider{max-width:100%;overflow:hidden}
  .children-stage{margin-inline:-16px}
  .capability-list article{grid-template-columns:54px 1fr;padding:18px}
  .capability-icon{width:50px;height:50px}
  .capability-list p{max-width:none;font-size:9.5px}

  .coach-profile-layout,.coach-career-route{width:calc(100% - 32px)}
  .coach-profile .coach-copy .section-title{font-size:clamp(48px,13.5vw,54px);line-height:.88}
  .coach-lead{font-size:11px}
  .coach-dashboard,.coach-dashboard-card,.coach-achievement-card{max-width:100%;overflow:hidden}
  .coach-dashboard-card>div,.coach-achievement-title{gap:10px}
  .coach-copinha strong{font-size:34px}

  .performance-motion .motion-heading .section-title{font-size:clamp(46px,12.5vw,50px);line-height:.88}
  .performance-motion .motion-heading>p{font-size:11px}
  .performance-motion .motion-layout,.performance-motion .motion-heading{width:calc(100% - 32px)}
  .performance-motion .motion-layout{grid-template-columns:minmax(0,1fr);overflow:visible}
  .performance-motion .motion-menu{grid-template-columns:repeat(5,minmax(96px,1fr));overflow-x:auto}
  .performance-motion .motion-menu button{min-width:0;padding-inline:8px}
  .performance-motion .video-main{width:100%;min-height:0;aspect-ratio:16/9}
  .performance-motion .video-grid{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .performance-motion .video-main .video-meta{inset:auto 18px 17px}
  .performance-motion .video-main .video-meta h3{font-size:clamp(24px,8vw,30px)}

  .inside-process .gallery-title{width:calc(100% - 32px)}
  .inside-process .gallery-title strong{font-size:clamp(36px,11vw,44px)}

  .story-heading,.story-navigation{width:calc(100% - 32px)}
  .stories-carousel .section-title{font-size:clamp(48px,13.5vw,54px);line-height:.88}
  .story-intro>p{font-size:11px}
  .stories-carousel .story-card,.stories-carousel .story-card-featured{width:min(86vw,360px)}
  .story-content h3{overflow-wrap:break-word}

  .process-result{padding-inline:16px}
  .process-words{gap:12px;font-size:6px;letter-spacing:.1em}

  .experience-layout,.experience-status{width:calc(100% - 32px)}
  .experience-content .section-title{font-size:clamp(48px,13.5vw,54px);line-height:.87}
  .experience-lead{font-size:11px}
  .experience-promise strong{font-size:21px}
  .experience-card-headline span{font-size:clamp(17px,5vw,22px)}
  .experience-card-headline strong{font-size:clamp(25px,7.6vw,34px)}

  .site-footer .footer-brand h2{font-size:clamp(38px,11vw,46px);line-height:.87}
  .site-footer .footer-brand p{font-size:11px}
}

@media(max-width:420px){
  .header-brand{width:124px}
  .menu-toggle{width:42px;height:42px}
  .hero-content{padding-inline:18px}
  .hero-copy h1{font-size:clamp(49px,15.5vw,60px)}
  .method-steps{gap:8px}
  .method-steps article,.method-steps article:nth-child(n){min-height:270px;padding:14px}
  .method-steps article>i{margin-bottom:34px}
  .method-steps h3{font-size:28px}
  .profile-radar{height:295px}
  .profile-metric{grid-template-columns:74px minmax(50px,1fr) 36px;gap:7px}
  .profile-metric>span{font-size:7px}
  .field-section .hotspot{font-size:5.5px;letter-spacing:.06em}
  .coach-portrait-stage{min-height:520px}
  .coach-floating-stat{padding:9px 10px}
  .coach-floating-stat strong{font-size:26px}
  .coach-trophy{grid-template-columns:45px 1fr}
  .performance-motion .motion-menu{grid-template-columns:repeat(5,94px)}
  .story-content h3{font-size:28px}
  .experience-media{border-radius:15px}
  .experience-media .experience-card-headline{left:14px;right:14px;bottom:16px}
}

@media(max-width:340px){
  .stories-carousel .section-title{font-size:45px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}
