/* Final responsive audit: readable copy, intact controls, and touch targets. */
.program-intro,.overview-intro,.overview-content,.assessment-intro,.price-copy,.booking-copy{min-width:0}
@media (min-width:701px) and (max-width:1100px){
  .header{gap:18px}
  .brand img{width:112px}
  .menu-toggle{display:flex;flex:none;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;background:none;border:0;padding:11px;margin-left:auto;color:var(--ink)}
  .menu-toggle span{width:22px;height:1.5px;background:currentColor}
  .header nav{display:none;position:absolute;top:92px;left:0;right:0;padding:24px var(--page) 30px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 14px 30px #142e3512}
  .header.menu-open nav{display:flex;flex-direction:column;align-items:flex-start;gap:22px;font-size:17px}
  .header .header-cta{font-size:13px;padding:8px 18px;gap:14px}
  .hero{min-height:1000px}
  .hero-content{max-width:52%;margin-bottom:48px}
  .hero h1{font-size:34px}
  .hero-lead{font-size:15px;line-height:1.8}
  .hero-line{display:none}
  .hero-actions{flex-direction:column;align-items:flex-start;gap:22px}
  .hero-photo{inset:120px -110px 185px 42%;transform:none!important}
  .hero-photo img{height:100%;width:auto;right:0;bottom:0}
  .hero-wash{background:linear-gradient(90deg,var(--cream) 24%,rgba(250,247,238,.98) 36%,rgba(250,247,238,.94) 46%,rgba(250,247,238,.45) 55%,transparent 68%)}
  .hero-label{margin-bottom:34px}
  .content-nav{padding-left:var(--page)}
  .nav-runner-track{display:none}
}
@media(max-width:700px){
  .menu-toggle{width:40px;height:44px;flex:none;padding:9px}
  .header .header-cta{flex:none}
  .program{grid-template-columns:minmax(0,1fr)}
  .program h2 em{white-space:normal}
  .sign h3{font-size:clamp(18px,4.6vw,21px)}
  .request-fields input,.promo-input input{font-size:16px}
  .situation-tabs button{min-height:44px}
}
@media(max-width:370px){
  .header{padding-left:16px;padding-right:16px;gap:6px}
  .brand img{width:78px}
  .header .header-cta{font-size:10px;gap:7px;padding-left:10px;padding-right:10px}
  .header-cta .runner-gait{width:24px}
  .program h2{font-size:clamp(24px,7.7vw,28px)}
  .sign h3{font-size:23px}
}
@supports(padding:max(0px)){
  .mobile-booking{padding-bottom:max(12px,env(safe-area-inset-bottom))}
}
@media(min-width:701px) and (max-width:1100px){
  .hero-photo{right:-60px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 12%);mask-image:linear-gradient(180deg,transparent,#000 12%)}
}
@media(min-width:701px) and (max-width:900px){
  .assessment,.questions,.price-section,.booking{grid-template-columns:minmax(0,1fr);gap:40px}
  .assessment-intro,.questions .section-top{position:static}
  .assessment h2{font-size:44px}
  .assessment-note{max-width:none;margin-top:26px}
  .assessment-note p{max-width:none}
  .price-card{width:100%;max-width:600px;justify-self:center}
  .booking .request-panel{width:100%;max-width:600px;justify-self:center}
}
/* A 16px input size prevents automatic zoom when typing on iOS. */
.booking-form .request-fields input,.booking-modal .request-fields input{font-size:16px;min-width:0}
.modal-close{width:40px;height:40px}
/* Preserve the teal palette while making white button labels readable. */
.hero-actions .primary,.price-card>.button,.booking-form .request-submit,.booking-form .promo-input button,.mobile-booking a{background:#007f87}
.hero-actions .primary:hover,.price-card>.button:hover,.booking-form .promo-input button:hover,.mobile-booking a:hover{background:#006d75}
.section:not(.program):not(.return-section) h2 em{color:#00818a}
.assessment-list article>span,.steps li>span,.route-grid article>span{color:#007f87}
@media(min-width:701px) and (max-width:1100px){.hero-photo{bottom:150px}}
/* The inner form must scroll independently in short landscape viewports. */
.booking-modal-layout{grid-template-rows:minmax(0,1fr);min-height:0}
.booking-modal-content{min-height:0;max-height:calc(100dvh - 40px)}
.booking-modal-story{min-height:0}
@media(max-width:700px){.booking-modal-content{max-height:calc(100dvh - 24px)}}
@media(max-height:540px){
 .booking-modal-layout{display:block}
 .booking-modal-story{display:none}
 .booking-modal-content{max-height:calc(100dvh - 40px);padding:26px 32px}
 .booking-modal-heading>p{white-space:normal}
}
