/* Type scale overrides, loaded last on both pages.
   Tiers: body 17/16, secondary 15, UI 15/14, note 13, label floor 12.
   Headings keep their existing sizes. */
:root{--muted:#646057}

/* Body */
.hero-description,.hero.has-banner .hero-description,.recruit-lead,
.prologue>p:not(.section-name),.scene-copy>p:not(.section-name),.care-copy>p,.studio-heading>p,
.pricing-heading>p:not(.section-name),.content-dialog>p,.practical-line p,.access-heading address,
.recruit-prologue p:not(.section-name),.mentor-editorial p:not(.section-name),.growth-heading>p:last-child,
.future-copy>p:not(.section-name),.rewards-intro p:not(.section-name):not(.recruit-note),.recruit-join>p:not(.section-name):not(.recruit-note),
.visual-heading>p:last-child:not(.section-name),.lesson-terms>div>p:not(.section-name){font-size:17px}

/* Secondary text */
summary,.care summary,.detail-body,.growth-sequence p,.arrival-steps span,.travel-options p,.price-inquiry,
.practical-location p,.experience-caption p,.calc-explanation p,.mentor-calculator details p,.lesson-terms details p,
.benefit-caption details p,.growth-terms details p,.pathways-content p,.pathways-content details p,
.benefit-full-terms>div>p:not(.section-name),.benefit-full-terms details summary,.benefit-caption details summary,
.benefit-one-line,.space-markers span,.human-loop,.pricing table,.recruit-rates table,.calc-controls label,.calc-controls select{font-size:15px}
.journey-frames figcaption p,.promotion-table th,.promotion-table td,.model-reward,.arrival-time,.parking-name>span{font-size:14px}

/* Actions */
.button,.text-link,.header-cta,.arrival-tabs button,.price-tabs button{font-size:15px}
.site-header nav,.audience-switch,.space-nav,.space-nav button,.experience-controls button,.contact-options button{font-size:14px}

/* Notes */
.price-note,.recruit-note,.rewards-intro p.recruit-note,.recruit-join p.recruit-note,.visual-note,.calc-hint,.calc-qualification,
#mentor-formula,.arrival-note,.arrival-source,.arrival-source p,.arrival-source summary,.space-foot,.care figcaption,
.mentor-editorial figcaption,.benefit-image-note,.swipe-hint,.content-dialog .dialog-note,.parking-name p,.parking-option>p,
.parking-price span,.parking-option .text-link,.pricing td span,.pricing tbody th span,.pricing .pair-total,.pricing .pair-pricing td>span,
.site-footer,.site-footer button,.recruit-page .site-footer a,.practical-location a,.story-link,.film-watch small{font-size:13px}

/* Labels: 12px floor */
.section-name,.service-location,.scroll-cue,.visual-disclosure,.scene-credit,.space-label,.film-caption,.film-top>span,.film-top button,
.glass-button,.hero-media-controls button,.pano-hint small,.pano-start>span,.direction-readout,.zoom #reset,.dialog-heading p,
.journey-number,.model-stage,.growth-sequence span,.growth-shared,.experience-caption>span,#experience-vision .experience-caption>small,
.calc-result>span,.grade-path li,.arrival-map figcaption,.arrival-steps li:before,.pricing thead,.pricing .pair-pricing thead th,
.pricing caption,.recruit-rates caption,.arrival-landmarks,#arrival-map-zoom{font-size:12px}

/* Mock screens (phone, report) are illustrations; raise the smallest text without breaking their frames. */
.phone-brand,.phone-stage span,.training-phone small,.sound-visual small,.vision-visual small,.report-brand,.report-demo,.report-session,
.report-subhead>span,.motion-frame figcaption,.rhythm-bars b,.rhythm-bars span,.report-comparison div>span,.report-comparison strong small,
.report-measures p,.report-measures section>small,.report-coach>span,.report-footer{font-size:10px}

@media(max-width:700px){
.hero-description,.hero.has-banner .hero-description,.recruit-lead,
.prologue>p:not(.section-name),.scene-copy>p:not(.section-name),.care-copy>p,.studio-heading>p,
.pricing-heading>p:not(.section-name),.content-dialog>p,.practical-line p,.access-heading address,
.recruit-prologue p:not(.section-name),.mentor-editorial p:not(.section-name),.growth-heading>p:last-child,
.future-copy>p:not(.section-name),.rewards-intro p:not(.section-name):not(.recruit-note),.recruit-join>p:not(.section-name):not(.recruit-note),
.visual-heading>p:last-child:not(.section-name),.lesson-terms>div>p:not(.section-name){font-size:16px}
summary,.growth-sequence p,.experience-caption p,.human-loop,.pricing table{font-size:15px}
.journey-frames figcaption p{font-size:14px}
.button,.text-link{font-size:15px}
.header-cta,.audience-switch,body:not(.recruit-page) .audience-switch,.recruit-page .audience-switch,.space-nav button,.experience-controls button{font-size:13px}
.price-note,.visual-note,.space-foot,.arrival-source p,.pricing td span,.pricing .pair-total,.pricing .pair-pricing thead th,.site-footer>span:nth-child(2){font-size:12px}
.section-name,.prologue .section-name,.studio-heading .section-name,.service-location,.scroll-cue,.story-link,
.visual-disclosure,.scene-credit,.space-label,.dialog-heading p,.direction-readout,.zoom #reset,.pano-hint small,
.pano-top .glass-button,.pano-bottom #pano-exit{font-size:12px}
.phone-stage,.report-session,.motion-frame figcaption,.report-footer,.report-measures section>small,.rhythm-bars b,.rhythm-bars span{font-size:10px}
.training-phone small{font-size:9px}
}

/* Larger body text re-wraps lines that were hand-broken for 13px; avoid one-character last lines. */
main p,main li,main summary,main address,.content-dialog p{text-wrap:pretty}
@media(max-width:700px){
.recruit-prologue p,.recruit-join>p,.prologue>p{text-wrap:balance}
.recruit-prologue p br,.rewards-intro p br,.calc-qualification br{display:none}
}
