/* Internal-page rhythm: preserve components and brand; refine their spacing only. */
body:not(.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);
}
body:not(.home) #main > .section,
body:not(.home) #main > .offers,
body:not(.home) #main > .gallery,
body:not(.home) #main > .locations { padding-block: var(--rf-section-space); }
body:not(.home) #main > .benefits { padding-block: clamp(32px, 3.4vw, 48px); }
body:not(.home) #main .section-heading { margin-bottom: var(--rf-heading-space); gap:24px; align-items:center; }
body:not(.home) #main .eyebrow { margin-bottom:8px; }
body:not(.home) #main .branches { gap:var(--rf-card-gap); padding-bottom:clamp(28px,3vw,40px); }
body:not(.home) #main .benefits-grid,
body:not(.home) #main .offers-panel,
body:not(.home) #main > .gallery,
body:not(.home) #main .locations-grid,
body:not(.home) .site-footer { width:calc(100% - var(--rf-page-gutter)); max-width:var(--content); }
body:not(.home) #main .benefits-grid { row-gap:28px; }
body:not(.home) #main .benefits article { padding:8px 20px; }
body:not(.home) #main .benefits article > svg { margin-bottom:16px; }
body:not(.home) #main .benefits h2 { margin-bottom:10px; }
body:not(.home) #main .benefits p { line-height:1.45; }
body:not(.home) #main .trainer-grid,
body:not(.home) #main .gallery-grid,
body:not(.home) #main .plans,
body:not(.home) #main .rf-blog-grid { gap:var(--rf-card-gap); }
body:not(.home) #main .trainer-info { padding:16px 10px; display:flex; flex-direction:column; flex:1; }
body:not(.home) #main .trainer-card { display:flex; flex-direction:column; }
body:not(.home) #main .trainer-info p { margin:8px 0 16px; white-space:normal; line-height:1.35; }
body:not(.home) #main .trainer-info .button { margin-top:auto; min-height:40px; }
body:not(.home) #main .offers-panel { padding:clamp(20px,2.3vw,32px); gap:var(--rf-card-gap); }
body:not(.home) #main .offers-intro { padding:0; }
body:not(.home) #main .offer-tagline { margin:12px 0 16px; line-height:1.4; }
body:not(.home) #main .offers-intro > p:not(.offer-tagline) { line-height:1.5; }
body:not(.home) #main .offers-intro .button { margin-top:24px; min-height:44px; }
body:not(.home) #main .offer-copy { padding:16px 12px 18px; }
body:not(.home) #main .offer-copy p { margin-top:10px; line-height:1.4; }
body:not(.home) #main .membership h2 { margin-bottom:12px; }
body:not(.home) #main .membership-tagline { line-height:1.5; }
body:not(.home) #main .branch-switch { margin:24px auto 36px; padding:4px; }
body:not(.home) #main .branch-switch button { min-height:44px; }
body:not(.home) #main .plan { padding:28px 24px 24px; }
body:not(.home) #main .price { margin:12px 0 20px; }
body:not(.home) #main .plan ul { margin-bottom:24px; line-height:1.45; }
body:not(.home) #main .plan li + li { margin-top:8px; }
body:not(.home) #main .plan > .button { min-height:44px; }
body:not(.home) #main .membership-note { margin-top:24px; line-height:1.5; }
body:not(.home) #main .gallery .section-heading { padding-inline:0; }
body:not(.home) #main .rf-blog-copy { padding:24px; }
body:not(.home) #main .rf-blog-copy h3 { margin:14px 0 12px; }
body:not(.home) #main .rf-blog-copy p { line-height:1.5; }
body:not(.home) #main .rf-blog-copy .button { margin-top:20px; min-height:44px; }
body:not(.home) #main .locations-grid { gap:clamp(24px,3vw,40px); }
body:not(.home) #main .location-card h3 { margin-bottom:12px; }
body:not(.home) #main .location-card p { margin-bottom:6px; }
body:not(.home) #main .location-card .button { margin-top:16px; min-height:44px; }
body:not(.home) #main .location-map h2 { margin-bottom:20px; }
body:not(.home) .site-footer { padding-block:32px; gap:24px; min-height:112px; }
@media (max-width:1100px) and (min-width:761px) {
  body:not(.home) #main .offers-panel { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body:not(.home) #main .offers-intro { grid-column:1 / -1; margin-bottom:8px; }
  body:not(.home) #main .plan { padding-inline:18px; }
}
@media (max-width:760px) {
  body:not(.home) { --rf-page-gutter:32px; --rf-card-gap:16px; }
  body:not(.home) #main .section-heading { align-items:flex-start; flex-wrap:wrap; gap:16px; }
  body:not(.home) #main .section-heading > .button { min-height:44px; }
  body:not(.home) #main .benefits article { padding:8px 12px; }
  body:not(.home) #main .offers-panel { padding:24px 18px; gap:20px; }
  body:not(.home) #main .offers-intro { margin-bottom:4px; }
  body:not(.home) #main .trainer-info { padding:16px 10px; }
  body:not(.home) #main .trainer-info .button { min-height:44px; }
  body:not(.home) #main .plan { padding:28px 24px 24px; }
  body:not(.home) #main .plans { row-gap:28px; }
  body:not(.home) #main .location-card .button { padding-inline:12px; }
  body:not(.home) #main .rf-blog-copy { padding:22px; }
  body:not(.home) .site-footer { padding-block:28px; row-gap:24px; }
}

/* Page-specific compositions retain their individual structure. */
body:not(.home) .rf-page-hero{padding-block:var(--rf-section-space);gap:clamp(24px,4vw,56px)}
body:not(.home) .rf-page-hero .rf-lead{margin-bottom:28px}
body:not(.home) .rf-detail{padding-bottom:var(--rf-section-space)}
body:not(.home) .rf-page-heading{padding-top:var(--rf-section-space);margin-bottom:36px}
body:not(.home) .rf-story{padding-block:var(--rf-section-space);gap:clamp(28px,4vw,56px)}
body:not(.home) .rf-prose p+p{margin-top:18px}
body:not(.home) .rf-prose h2{margin-top:36px;margin-bottom:18px;line-height:1.2}
body:not(.home) .rf-prose h3{margin-top:28px;margin-bottom:14px;line-height:1.25}
body:not(.home) .rf-prose ul,body:not(.home) .rf-prose ol{padding-left:24px;margin-block:20px}
body:not(.home) .rf-prose li+li{margin-top:8px}
body:not(.home) .rf-prose>.button{margin-top:24px;min-height:44px}
body:not(.home) .rf-story .rf-prose{padding-bottom:24px}
body:not(.home) #main>.rf-cta{margin-block:24px var(--rf-section-space);padding:clamp(28px,4vw,52px)}
body:not(.home) .rf-cta .hero-actions{margin-top:28px;gap:16px;flex-wrap:wrap}
body:not(.home) .rf-faq details{padding-block:24px}
body:not(.home) .rf-faq h2{margin-bottom:28px}
body:not(.home) .rf-branch-detail{padding:clamp(20px,2.5vw,36px);gap:clamp(24px,3vw,44px);margin-top:32px}
body:not(.home) .rf-branch-detail p{margin-top:8px;line-height:1.5}
body:not(.home) .rf-branch-detail .hero-actions{margin-top:24px;gap:16px}
body:not(.home) .rf-contact-section>.rf-prose{margin-bottom:24px}
body:not(.home) .rf-contact-form{padding:clamp(22px,3vw,40px);gap:12px;margin-top:28px}
body:not(.home) .rf-contact-form label{margin-top:16px;line-height:1.5}
body:not(.home) .rf-contact-form input:not([type=checkbox]),body:not(.home) .rf-contact-form select{min-height:48px}
body:not(.home) .rf-contact-form .button{min-height:48px;margin-top:20px}
body:not(.home) #main .rf-location-social{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
body:not(.home) #main .rf-location-social a{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.875rem;font-weight:600;text-decoration:none}
body:not(.home) #main .rf-location-social a:is(:hover,:focus-visible){border-color:var(--gold);color:var(--gold)}
body:not(.home) #main .rf-location-social svg{width:17px;height:17px;margin:0;color:var(--gold)}
body:not(.home) #main .rf-contact-locations h2{font:600 var(--rf-section-title)/1.2 var(--heading);color:var(--gold);margin:0 0 28px;text-align:center}
body:not(.home) #main .rf-contact-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
body:not(.home) #main .rf-contact-location-grid .location-card{width:100%;min-width:0;justify-self:stretch;padding:clamp(20px,2.5vw,32px);border:1px solid var(--border);border-radius:4px;background:var(--panel)}
body:not(.home) #main .rf-contact-location-grid .location-card h3{font:600 1.25rem/1.35 var(--heading);margin:0 0 20px;text-transform:none;color:var(--gold)}
body:not(.home) #main .rf-contact-location-grid .location-card p,body:not(.home) #main .rf-contact-location-grid .location-card>a{font-size:1rem;line-height:1.5;gap:12px}
body:not(.home) #main .rf-contact-location-grid .location-card svg{width:18px;height:18px;flex:none}
@media(max-width:760px){body:not(.home) #main .rf-contact-location-grid{grid-template-columns:1fr}}
body:not(.home) .rf-filters{margin:0 0 32px;gap:16px}
body:not(.home) .rf-filters select,body:not(.home) .rf-filters .button{min-height:44px}
body:not(.home) .rf-blog-intro{margin-bottom:40px}
body:not(.home) .rf-blog-copy h2{margin:14px 0;line-height:1.2}
body:not(.home) .rf-detail-image{margin-bottom:36px}
body:not(.home) .rf-detail-image>img{width:100%;height:auto}
body:not(.home) .post-navigation{margin-top:40px;line-height:1.5}
body:not(.home) .rf-branch-galleries{padding-block:var(--rf-section-space)}
body:not(.home) .rf-gallery-heading{padding-bottom:32px;margin-bottom:40px}
body:not(.home) .rf-gallery-branches{gap:40px}
body:not(.home) .rf-gallery-branch-copy p{margin:16px 0 24px}
body:not(.home) .rf-branch-photo-grid{gap:16px}
@media(min-width:1101px){body:not(.home) #main .trainer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
 body:not(.home) .rf-page-heading{margin-bottom:28px}
 body:not(.home) .rf-gallery-heading{margin-bottom:28px}
 body:not(.home) .rf-gallery-branches{gap:32px}
 body:not(.home) .rf-branch-photo-grid{gap:12px}
 body:not(.home) .rf-branch-detail{margin-top:24px}
 body:not(.home) .rf-branch-detail .hero-actions{align-items:stretch}
 body:not(.home) .rf-branch-detail .hero-actions .button{flex:1;min-height:44px}
}
body:not(.home) #main>.branches{padding-block:var(--rf-section-space)}
body:not(.home) #main .rf-blog-card{display:flex;flex-direction:column}
body:not(.home) #main .rf-blog-copy{display:flex;flex-direction:column;flex:1;align-items:flex-start}
body:not(.home) #main .rf-blog-copy p{margin-bottom:20px}
body:not(.home) #main .rf-blog-copy .button{margin-top:auto}
