/* Homepage rhythm: preserve components and brand; refine their spacing only. */
body.home {
  --rf-section-space: clamp(40px, 4.5vw, 64px);
  --rf-heading-space: clamp(24px, 2.4vw, 32px);
  --rf-card-gap: clamp(16px, 1.8vw, 24px);
  --rf-page-gutter: clamp(32px, 7.8vw, 112px);
}
.home #main > .section,
.home #main > .offers,
.home #main > .gallery,
.home #main > .locations { padding-block: var(--rf-section-space); }
.home #main > .benefits { padding-block: clamp(32px, 3.4vw, 48px); }
.home #main .section-heading { margin-bottom: var(--rf-heading-space); gap:24px; align-items:center; }
.home #main .eyebrow { margin-bottom:8px; }
.home #main .branches { gap:var(--rf-card-gap); padding-bottom:clamp(28px,3vw,40px); }
.home #main .benefits-grid,
.home #main .offers-panel,
.home #main > .gallery,
.home #main .locations-grid,
.home .site-footer { width:calc(100% - var(--rf-page-gutter)); max-width:var(--content); }
.home #main .benefits-grid { row-gap:28px; }
.home #main .benefits article { padding:8px 20px; }
.home #main .benefits article > svg { margin-bottom:16px; }
.home #main .benefits h2 { margin-bottom:10px; }
.home #main .benefits p { line-height:1.45; }
.home #main .trainer-grid,
.home #main .gallery-grid,
.home #main .plans,
.home #main .rf-blog-grid { gap:var(--rf-card-gap); }
.home #main .trainer-info { padding:16px 10px; display:flex; flex-direction:column; flex:1; }
.home #main .trainer-card { display:flex; flex-direction:column; }
.home #main .trainer-info p { margin:8px 0 16px; white-space:normal; line-height:1.35; }
.home #main .trainer-info .button { margin-top:auto; min-height:40px; }
.home #main .offers-panel { padding:clamp(20px,2.3vw,32px); gap:var(--rf-card-gap); }
.home #main .offers-intro { padding:0; }
.home #main .offer-tagline { margin:12px 0 16px; line-height:1.4; }
.home #main .offers-intro > p:not(.offer-tagline) { line-height:1.5; }
.home #main .offers-intro .button { margin-top:24px; min-height:44px; }
.home #main .offer-copy { padding:16px 12px 18px; }
.home #main .offer-copy p { margin-top:10px; line-height:1.4; }
.home #main .membership h2 { margin-bottom:12px; }
.home #main .membership-tagline { line-height:1.5; }
.home #main .branch-switch { margin:24px auto 36px; padding:4px; }
.home #main .branch-switch button { min-height:44px; }
.home #main .plan { padding:28px 24px 24px; }
.home #main .price { margin:12px 0 20px; }
.home #main .plan ul { margin-bottom:24px; line-height:1.45; }
.home #main .plan li + li { margin-top:8px; }
.home #main .plan > .button { min-height:44px; }
.home #main .membership-note { margin-top:24px; line-height:1.5; }
.home #main .gallery .section-heading { padding-inline:0; }
.home #main .rf-blog-copy { padding:24px; }
.home #main .rf-blog-copy h3 { margin:14px 0 12px; }
.home #main .rf-blog-copy p { line-height:1.5; }
.home #main .rf-blog-copy .button { margin-top:20px; min-height:44px; }
.home #main .locations-grid { gap:clamp(24px,3vw,40px); }
.home #main .location-card h3 { margin-bottom:12px; }
.home #main .location-card p { margin-bottom:6px; }
.home #main .location-card .button { margin-top:16px; min-height:44px; }
.home #main .location-map h2 { margin-bottom:20px; }
.home .site-footer { padding-block:32px; gap:24px; min-height:112px; }
@media (max-width:1100px) and (min-width:761px) {
  .home #main .offers-panel { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .home #main .offers-intro { grid-column:1 / -1; margin-bottom:8px; }
  .home #main .plan { padding-inline:18px; }
}
@media (max-width:760px) {
  .home { --rf-page-gutter:32px; --rf-card-gap:16px; }
  .home #main .section-heading { align-items:flex-start; flex-wrap:wrap; gap:16px; }
  .home #main .section-heading > .button { min-height:44px; }
  .home #main .benefits article { padding:8px 12px; }
  .home #main .offers-panel { padding:24px 18px; gap:20px; }
  .home #main .offers-intro { margin-bottom:4px; }
  .home #main .trainer-info { padding:16px 10px; }
  .home #main .trainer-info .button { min-height:44px; }
  .home #main .plan { padding:28px 24px 24px; }
  .home #main .plans { row-gap:28px; }
  .home #main .location-card .button { padding-inline:12px; }
  .home #main .rf-blog-copy { padding:22px; }
  .home .site-footer { padding-block:28px; row-gap:24px; }
}
