/* Shared hierarchy adapted from FitnessPoint v5.216.
   Keep its heading proportions and 400/600/700 weights, with a 16px body,
   14px controls/card copy and a 12px minimum for secondary metadata. */
:root{
  --type-h1:clamp(2rem,3.18vw,3.35rem);
  --type-h2:clamp(1.5rem,1.88vw,1.94rem);
  --type-component:1rem;
  --type-body:1rem;
  --type-small:.875rem;
  --type-action:.875rem;
  --type-meta:.8125rem;
  --type-micro:.75rem;
  --type-cta:clamp(1.375rem,1.7vw,1.8rem);
  --type-regular:400;
  --type-medium:600;
  --type-bold:700;
}
body{font-size:var(--type-body);font-weight:var(--type-regular);line-height:1.6;letter-spacing:-.012em}
p{line-height:1.65}

/* Page titles: the same scale on all four routes. */
h1,.hero h1,h1.page-title,.faq-section .faq-intro h1#faq-title{
  font-size:var(--type-h1);line-height:1.1;font-weight:var(--type-bold);letter-spacing:-.05em;
}
.section-heading h1,.faq-intro h1{margin-bottom:0}
.hero h1{margin-bottom:var(--space-item-row)}
h1 em,h2 em{font-weight:inherit}

/* Section and module headings; form headings use the same second level. */
h2,.overview-copy h2,.feature-detail .feature-title,.demo-form h3,.faq-section .faq-intro h2#faq-title{
  font-size:var(--type-h2);line-height:1.18;font-weight:var(--type-bold);letter-spacing:-.038em;
}

/* Card headings and result titles share one size and weight. */
h3,.audience-card h3,.steps .step-title,
.benefit-copy strong,.feature-result strong,.video-dialog-header h2{
  font-size:var(--type-component);line-height:1.35;font-weight:var(--type-bold);letter-spacing:-.02em;
}

/* Descriptive introductions and primary reading text. */
.lead,.split-heading>p,.overview-copy>p,.faq-section .faq-intro>p,
.feature-detail-copy>p{
  font-size:var(--type-body);line-height:1.65;font-weight:var(--type-regular);letter-spacing:-.012em;
}

/* Check lists use the same compact body scale as FitnessPoint v5.216. */
.check-list li{
  font-size:.88rem;line-height:1.55;font-weight:var(--type-regular);letter-spacing:-.012em;
}

/* Supporting copy inside cards, modules and the contact form. */
.benefit-copy p,.audience-card p,.steps p,.feature-result p,
.faq-section .faq-list details p,.video-dialog-footer p{
  font-size:var(--type-small);line-height:1.6;font-weight:var(--type-regular);letter-spacing:-.012em;
}
.faq-section .faq-list summary{
  font-size:var(--type-action);line-height:1.5;font-weight:var(--type-medium);letter-spacing:-.012em;
}

/* Actions and controls retain the same optical scale across components. */
.button,.button-small,.form-submit,.text-link,
.faq-section .faq-intro .text-link,.header-login,.main-nav,
.features .process-step strong,.floating-contact{
  font-size:var(--type-action);line-height:1.5;font-weight:var(--type-medium);letter-spacing:-.012em;
}
.text-link,.faq-section .faq-intro .text-link{font-weight:var(--type-bold)}
.demo-form label{font-size:var(--type-small);line-height:1.5;font-weight:var(--type-medium)}
.demo-form input,.demo-form select,.demo-form textarea{
  font-size:var(--type-body);line-height:1.5;font-weight:var(--type-regular);letter-spacing:inherit;
}

/* Compact secondary levels stay subordinate without becoming illegible. */
.form-status,.video-dialog-footer p{
  font-size:var(--type-meta);line-height:1.55;font-weight:var(--type-regular);
}
.feature-caption{font-size:var(--type-small);line-height:1.55;font-weight:var(--type-medium)}
.features .feature-kicker,.features .result-label,.features .process-index{
  font-size:var(--type-micro);line-height:1.5;font-weight:var(--type-bold);letter-spacing:.08em;
}
.form-note,.demo-form label>span,.dashboard-panel>p,.screen-callout,
.footer-brand-copy,.footer-contact-meta,.footer-contact-copy>span{
  font-size:var(--type-micro);line-height:1.55;font-weight:var(--type-regular);
}
.step-number{font-size:1.5rem;line-height:1;font-weight:var(--type-bold);font-variant-numeric:tabular-nums}

/* The closing invitation is deliberately compact, as in FitnessPoint. */
.closing-cta-copy h2{font-size:var(--type-cta);line-height:1.18;font-weight:var(--type-bold);letter-spacing:-.038em}
.closing-cta-copy p{font-size:var(--type-small);line-height:1.6;font-weight:var(--type-regular)}

/* Reflow for longer labels and browser text enlargement. */
.section-heading>div,.overview-copy,.feature-detail-copy,
.feature-result,.benefit-copy,.steps li,.demo-form,.footer-contact-block{min-width:0}
h1,h2,h3,.benefit-copy strong,.feature-result strong,.faq-list summary{overflow-wrap:break-word}
.button{white-space:normal;text-align:center}
.hero-actions,.closing-cta-actions{flex-wrap:wrap}
.closing-cta-panel{flex-wrap:wrap}
.footer-contact-copy>span{overflow-wrap:anywhere}

@media(max-width:768px){
  :root{--type-h1:2.02rem;--type-h2:1.5rem;--type-cta:1.375rem}
}
@media(max-width:480px){
  :root{--type-h1:2rem}
}

@media(max-width:650px){
  .screen-callout{font-size:.5rem}
}
