/* Shared Total Fitness page language, scoped to these three destinations. */
body:has(.tf-brand-page) { --accent-gold:#ffd700; --bright-gold:#ffd700; --gold-hover:#ffd700; --announcement-height:32px; --announcement-height-mobile:32px; background:#000000!important; color:#f4f4f5; font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','SF Pro Text','DM Sans',system-ui,sans-serif; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.tf-brand-page { --yellow:#ffd700; --ink:#171b12; --muted:#a1a1aa; --line:rgba(255,255,255,0.08); background:#000000!important; color:#f4f4f5; padding-bottom:64px; }
.tf-brand-page * { box-sizing:border-box; }
.tf-brand-page :is(button,input,select,textarea) { font-family:inherit; }
.tf-brand-page [id] { scroll-margin-top:112px; }
.tf-brand-page h1,.tf-brand-page h2,.tf-brand-page h3,.tf-brand-page p { margin:0; }
.tf-brand-page h1 { font-size:clamp(38px,5.5vw,72px); line-height:1.08; letter-spacing:-.035em; font-weight:350; color:#ffffff; overflow-wrap:break-word; }
.tf-brand-page h2 { font-size:clamp(28px,3.2vw,44px); line-height:1.14; letter-spacing:-.025em; font-weight:350; color:#ffffff; }
.tf-brand-page h3 { font-size:clamp(20px,2.2vw,28px); line-height:1.2; letter-spacing:-.015em; font-weight:400; color:#ffffff; }
.tf-brand-page p { font-size:15px; line-height:1.68; color:#ffffff; font-weight:400; }
.tf-brand-page a { text-decoration:none; }
.tf-brand-page .tf-accent { color:var(--yellow); }
.tf-page-wrap { width:min(1280px,calc(100% - 96px)); margin:auto; }
.tf-page-hero { padding:64px 0 48px; display:grid; grid-template-columns:1.15fr 1fr; gap:64px; align-items:center; }
.tf-page-kicker { display:block; font-size:11px; line-height:1.5; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--yellow); margin-bottom:20px; }
.tf-page-hero p { max-width:440px; margin-top:20px; font-size:16px; }
.tf-page-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.tf-page-button { display:inline-flex; justify-content:center; align-items:center; gap:16px; padding:13px 26px; min-height:46px; max-width:100%; background:#ffd700; color:#000000; border:none; border-radius:99px; font-size:14px; line-height:1.4; font-weight:700; cursor:pointer; transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease; box-shadow:0 4px 18px rgba(255,215,0,0.25); text-decoration:none; }
.tf-page-button:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(255,215,0,0.4); color:#000000; background:#ffe234; }
.tf-page-button.secondary:hover { border-color:var(--yellow); color:var(--yellow); background:rgba(255,215,0,0.08); }
.tf-page-button.secondary { background:rgba(255,255,255,0.06); color:#ffffff; border:1px solid rgba(255,255,255,0.12); box-shadow:none; border-radius:99px; }
.tf-page-button.secondary[aria-pressed="true"] { border-color:var(--yellow); color:var(--yellow); }
.tf-brand-page a:focus-visible,.tf-brand-page button:focus-visible,.tf-brand-page summary:focus-visible { outline:2px solid var(--yellow); outline-offset:5px; }
.tf-page-art { background:#000000; border-radius:20px; overflow:hidden; position:relative; border:1px solid var(--line); }
.tf-page-art img { width:100%; display:block; aspect-ratio:4/3; object-fit:cover; }
.tf-page-art-caption { position:absolute; bottom:16px; left:24px; font-size:10px; letter-spacing:.12em; color:var(--yellow); text-transform:uppercase; font-weight:600; text-shadow:0 1px 4px rgba(0,0,0,0.8); }
.tf-page-section { padding:48px 0; }
.tf-page-section-head { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:32px; }
.tf-page-section-head p { max-width:360px; }
.tf-branch-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.tf-branch-card { background:#ffd700; color:#000000; border-radius:20px; overflow:hidden; border:none; display:flex; flex-direction:column; box-shadow:0 10px 30px rgba(0,0,0,0.25); transition:transform .3s ease, box-shadow .3s ease; }
.tf-branch-card:hover { transform:translateY(-4px); box-shadow:0 18px 44px rgba(255,215,0,0.32); }
.tf-branch-card .gym-gallery { background:#000000; }
.tf-branch-card .gym-gallery__slide { background:#000000; }
.tf-branch-card .gym-gallery__slide img { aspect-ratio:16/10; object-fit:cover; }
.tf-branch-copy { padding:32px; display:flex; flex-direction:column; flex:1; color:#000000; }
.tf-branch-copy h3 { color:#000000 !important; font-size:clamp(22px,2.4vw,28px); font-weight:400; letter-spacing:-0.03em; margin:0 0 10px; }
.tf-branch-meta { display:flex; justify-content:space-between; gap:16px; color:#000000 !important; font-size:11px; letter-spacing:.12em; margin-bottom:16px; font-weight:700; opacity:0.85; }
.tf-branch-copy p { margin:0; color:#000000 !important; font-size:14px; line-height:1.6; font-weight:400; }
.tf-branch-features { display:flex; flex-wrap:wrap; gap:8px 20px; margin:20px 0; padding:0; list-style:none; color:#000000 !important; font-size:13px; font-weight:500; }
.tf-branch-features li:before { content:'✓'; margin-right:8px; color:#000000 !important; font-weight:800; }
.tf-branch-copy .tf-page-button { width:100%; margin-top:auto; justify-content:center; }
.tf-branch-copy .tf-branch-actions { padding-top:20px; margin-top:auto; display:flex; gap:12px; flex-wrap:wrap; border-top:1px solid rgba(0,0,0,0.18); }
.tf-branch-actions .tf-page-button { background:#000000; color:#ffd700; font-weight:700; box-shadow:0 4px 14px rgba(0,0,0,0.25); border-radius:99px; }
.tf-branch-actions .tf-page-button:hover { background:#1a1a1a; color:#ffd700; transform:translateY(-2px); }
.tf-branch-actions .tf-page-button.secondary { background:rgba(0,0,0,0.08); color:#000000; border:1.5px solid rgba(0,0,0,0.25); box-shadow:none; }
.tf-branch-actions .tf-page-button.secondary:hover { background:#000000; color:#ffd700; border-color:#000000; }
.tf-branch-card .gym-gallery--fallback .gym-gallery__slide:not(:first-child),.tf-branch-card .gym-gallery--fallback :is(.gym-gallery__dots,.gym-gallery__nav) { display:none; }
.tf-branch-card .gym-gallery--fallback img { object-fit:cover; }
.tf-branch-card .gym-gallery--fallback .gym-gallery__caption { background:rgba(0,0,0,0.7); color:#ffffff; padding:12px 20px; font-size:11px; }
.tf-page-band { background:#ffd700; color:#000000; padding:40px; border-radius:20px; border:none; display:flex; justify-content:space-between; align-items:center; gap:32px; box-shadow:0 10px 30px rgba(0,0,0,0.25); }
.tf-page-band h2 { color:#000000 !important; font-weight:400; letter-spacing:-0.03em; }
.tf-page-band p { color:#000000 !important; margin-top:10px; font-size:15px; font-weight:400; }
.tf-page-band .tf-page-kicker { color:#000000 !important; font-weight:700; opacity:0.85; }
.tf-page-band .tf-page-button { background:#000000; color:#ffd700; font-weight:700; }
.tf-page-band .tf-page-button:hover { background:#1a1a1a; color:#ffd700; }
.tf-location-layout { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:start; }
.tf-location-card { padding:32px; border:none; background:#ffd700; color:#000000; border-radius:20px; margin-bottom:16px; box-shadow:0 8px 25px rgba(0,0,0,0.25); }
.tf-location-card .tf-page-kicker { color:#000000 !important; font-weight:700; opacity:0.85; }
.tf-location-card h2, .tf-location-card h3 { color:#000000 !important; font-weight:400; letter-spacing:-0.03em; }
.tf-location-card address { font-style:normal; line-height:1.7; color:#000000 !important; font-size:15px; margin:20px 0; font-weight:400; }
.tf-location-contact { display:flex; flex-wrap:wrap; gap:20px; font-size:14px; color:#000000 !important; font-weight:700; }
.tf-location-contact a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.tf-location-card .tf-page-actions { margin-top:24px; }
.tf-location-card .tf-page-actions .tf-page-button { background:#000000; color:#ffd700; font-weight:700; box-shadow:0 4px 14px rgba(0,0,0,0.25); }
.tf-location-card .tf-page-actions .tf-page-button:hover { background:#1a1a1a; color:#ffd700; }
.tf-location-card .tf-page-actions .tf-page-button.secondary { background:rgba(0,0,0,0.08); color:#000000; border:1.5px solid rgba(0,0,0,0.25); }
.tf-location-card .tf-page-actions .tf-page-button.secondary:hover { background:#000000; color:#ffd700; border-color:#000000; }
.tf-location-card details { margin-top:24px; border-top:1px solid rgba(0,0,0,0.18); padding-top:20px; font-size:14px; }
.tf-location-card summary { cursor:pointer; color:#000000 !important; font-weight:700; }
.tf-location-card dl { margin:20px 0 0; }
.tf-hours-row { display:flex; justify-content:space-between; gap:20px; padding:8px 0; color:#000000 !important; font-weight:500; }
.tf-hours-row dd { margin:0; }
.tf-location-map { height:580px; background:#000000; border-radius:20px; z-index:0; border:1px solid var(--line); }
.tf-location-map-note { margin-top:16px!important; font-size:12px!important; color:#ffd700!important; }
.tf-point-card { background:var(--yellow); color:#000000; border-radius:16px; padding:40px; min-height:340px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.tf-point-card .tf-page-kicker { color:#000000 !important; }
.tf-point-symbol { font-size:clamp(64px,8vw,112px); font-weight:400; letter-spacing:-.06em; line-height:1.1; overflow-wrap:anywhere; color:#000000 !important; }
.tf-point-card p { color:#000000 !important; font-weight:400; }
.tf-point-card .tf-point-label { font-size:12px; letter-spacing:.12em; margin-top:16px; text-transform:uppercase; color:#000000 !important; }
.tf-point-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:24px 0; }
.tf-point-stats strong { display:block; font-size:28px; font-weight:400; }
.tf-point-stats span { color:#ffd700; font-size:12px; }
.tf-point-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.tf-point-step {
  background: #ffd700;
  color: #000000;
  border: none;
  border-radius: 20px;
  padding: 30px 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
  transition: transform .25s ease, box-shadow .25s ease;
}
.tf-point-step:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(255,215,0,0.35);
}
.tf-point-step .tf-page-kicker {
  color: #000000 !important;
  font-weight: 700;
  opacity: 0.85;
  margin-bottom: 16px;
}
.tf-point-step h3 {
  color: #000000 !important;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: -0.03em;
  margin: 0 0 12px;
}
.tf-point-step p {
  color: #000000 !important;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 400;
  margin: 0;
}
.tf-point-activity {
  background: #ffd700;
  border: none;
  color: #000000;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}
.tf-point-row {
  padding: 20px 0;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid rgba(0,0,0,0.18);
  color: #000000 !important;
}
.tf-point-row:last-child { border-bottom:0; }
.tf-point-row small {
  color: #000000 !important;
  display: block;
  margin-top: 4px;
  font-weight: 500;
}
.tf-point-row strong {
  font-weight: 600;
  color: #000000 !important;
}
.tf-point-warning { padding:20px; border:1px solid #ffd70060; border-radius:8px; margin-bottom:24px; color:var(--yellow); }
.tf-brand-page details.tf-point-faq { padding:24px 0; border-bottom:1px solid var(--line); }
.tf-point-faq summary { cursor:pointer; font-size:18px; }
.tf-point-faq p { margin-top:16px; max-width:720px; }
.tf-page-reveal { animation:tf-page-entry .8s cubic-bezier(.22,1,.36,1) both; }
.tf-reveal-target { opacity:0; transform:translateY(16px); transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1); }
.tf-reveal-target.tf-reveal-visible { opacity:1; transform:none; }
@keyframes tf-page-entry { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
body:has(.tf-brand-page) .announcement-bar { background:#000000; border:0; box-shadow:none; }
body:has(.tf-brand-page) .announcement-bar__text { font-weight:400; letter-spacing:0; text-transform:none; color:#ffffff; }
body:has(.tf-brand-page) .announcement-bar__item:before,body:has(.tf-brand-page) .announcement-bar__item:after { display:none; }
body:has(.tf-brand-page) .footer.apple-footer { background:#000000!important; box-shadow:none; }
body:has(.tf-brand-page) .footer-bg-watermark { display:none; }
body:has(.tf-brand-page) .footer-dispatch-pill { background:none; border:0; box-shadow:none; font-weight:400; border-radius:9999px!important; }
body:has(.tf-brand-page) .footer-col-title { color:#ffffff !important; font-size:13px !important; font-weight:500 !important; letter-spacing:0 !important; text-transform:none !important; }
body:has(.tf-brand-page) .footer.apple-footer { padding:56px 48px 24px; border-top:0; }
body:has(.tf-brand-page) .footer-top-strip { padding-bottom:24px; margin-bottom:28px; border-color:#ffffff12; }
body:has(.tf-brand-page) .footer-brand-symbol { background:#ffd700; color:#171b12; box-shadow:none; width:32px; height:32px; font-size:12px; border-radius:9999px!important; }
body:has(.tf-brand-page) .footer-brand-name { font-size:14px; font-weight:500; letter-spacing:0; color:#ffffff; }
body:has(.tf-brand-page) .footer-brand-strap { font-size:12px; letter-spacing:0; color:#ffd700; }
body:has(.tf-brand-page) .pulse-indicator { display:none; }
body:has(.tf-brand-page) .footer-link { font-size:13px !important; font-weight:400 !important; color:#ffffff !important; padding:4px 0 !important; }
body:has(.tf-brand-page) .footer-link:hover { color:#ffd700 !important; transform:none !important; }
body:has(.tf-brand-page) .footer-bottom-bar { color:#ffffff; font-size:11px; border-color:#ffffff12; }
body:has(.tf-brand-page) .apple-nav-action-btn { color:#ffd700; border-radius:9999px!important; }
body:has(.tf-brand-page) .apple-logo-icon { filter:none; }
body:has(.tf-brand-page) .animated-bg { display:none; }
@media(max-width:1024px) { body:has(.tf-brand-page) .footer-directory-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:800px) {
 .tf-page-wrap { width:calc(100% - 40px); }
 .tf-page-hero { padding:48px 0 32px; grid-template-columns:1fr; gap:32px; }
 .tf-branch-grid,.tf-location-layout { grid-template-columns:1fr; }
 .tf-page-section { padding:32px 0; }
 .tf-page-section-head,.tf-page-band { flex-direction:column; align-items:start; }
 .tf-page-band,.tf-branch-copy,.tf-location-card,.tf-point-card,.tf-point-activity { padding:24px; }
 .tf-point-steps { grid-template-columns:1fr; gap:12px; }
 .tf-page-hero .tf-page-actions,.tf-location-card .tf-page-actions,.tf-location-layout .tf-page-actions { flex-direction:column; align-items:stretch; }
 .tf-location-map { height:380px; }
 .tf-point-stats { gap:12px; }
 .tf-point-stats strong { font-size:24px; }
 body:has(.tf-brand-page) .footer.apple-footer { padding:40px 20px 24px; }
 body:has(.tf-brand-page) .footer-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
 body:has(.tf-brand-page) .footer-top-strip { flex-direction:column; align-items:start; gap:16px; }
}
@media(prefers-reduced-motion:reduce) { .tf-page-reveal { animation:none; } .tf-page-button { transition:none; } .tf-reveal-target { opacity:1; transform:none; transition:none; } }

/* Keep the account activity and referral destinations in the same language. */
.tf-member-page { padding:56px 0 64px; }
.tf-member-page > div { width:min(1280px,calc(100% - 96px)); max-width:1280px; padding-inline:0; }
.tf-member-page h1 { font-size:clamp(36px,5vw,64px); }
.tf-member-page h2 { font-size:28px; }
.tf-member-page h3 { font-size:24px; }
.tf-member-page h4,.tf-member-page .font-bold { font-weight:500; }
.tf-member-page :is(.text-primary,.text-secondary) { color:#f3f2ed; }
.tf-member-page .bg-secondary { background:#000000!important; border-color:#ffffff20; box-shadow:none; }
.tf-member-page .stats-card { background:#ffd700!important; color:#000000!important; border:none!important; }
.tf-member-page :is(.text-accent,.text-accent-gold,.text-bright-gold) { color:#ffd700; }
.tf-member-page :is(.btn-shimmer,.copy-btn) { display:inline-flex; align-items:center; justify-content:center; padding:14px 24px; min-height:48px; border-radius:9999px; background:#ffd700; color:#171b12; box-shadow:none; text-transform:none; letter-spacing:0; font-weight:500; }
.tf-member-page .btn-shimmer:before,.tf-member-page .btn-shimmer:after { display:none; }
.tf-member-page .referral-code { font-family:inherit; font-weight:400; border:1px solid #ffffff30; background:#000000; overflow-wrap:anywhere; border-radius:9999px; }
.tf-member-page th { font-weight:500; font-size:13px; white-space:nowrap; }
.tf-member-page td { font-size:14px; }
.tf-member-page table { min-width:640px; }
.tf-member-page .tf-page-button.secondary { background:transparent; color:#f3f2ed; border-radius:9999px; }
.tf-pagination-label { align-self:center; font-size:13px; color:#ffffff; }
@media(max-width:800px) { .tf-member-page { padding-top:40px; } .tf-member-page > div { width:calc(100% - 40px); } .tf-member-page .text-center { text-align:left; } }

/* Quiet editorial motion across all three pages. Flat colour throughout. */
.tf-brand-page .tf-page-reveal { animation:none; }
.tf-motion-ready .tf-motion-item { opacity:0; translate:0 16px; transition:opacity .75s ease var(--tf-motion-delay,0ms),translate .85s cubic-bezier(.22,1,.36,1) var(--tf-motion-delay,0ms); }
.tf-motion-ready .tf-motion-item[data-motion="heading"] { translate:0 24px; }
.tf-motion-ready .tf-motion-item[data-motion="card"] { translate:0 28px; }
.tf-motion-ready .tf-motion-item.tf-motion-shown { opacity:1; translate:0 0; }
.tf-brand-page :is(.tf-branch-card,.tf-location-card,.tf-point-card,.tf-page-art) { transition:opacity .75s ease var(--tf-motion-delay,0ms),translate .85s cubic-bezier(.22,1,.36,1) var(--tf-motion-delay,0ms),transform .55s cubic-bezier(.22,1,.36,1),border-color .35s ease; }
.tf-brand-page .tf-page-art img,.tf-brand-page .gym-gallery__slide img { transition:transform .9s cubic-bezier(.22,1,.36,1); }
.tf-brand-page .tf-page-button { transition:transform .3s cubic-bezier(.22,1,.36,1),border-color .3s ease,background-color .3s ease; }
.tf-brand-page .tf-page-button span { display:inline-block; transition:transform .3s ease; }
.tf-brand-page .tf-page-button:active { transform:translateY(0) scale(.98); }
.tf-brand-page .tf-point-faq summary { display:flex; justify-content:space-between; gap:20px; list-style:none; }
.tf-brand-page .tf-point-faq summary::-webkit-details-marker { display:none; }
.tf-brand-page .tf-point-faq summary::after { content:'+'; font-size:22px; font-weight:400; color:#ffd700; transition:rotate .3s ease; }
.tf-brand-page .tf-point-faq[open] summary::after { rotate:45deg; }
@media(hover:hover) and (pointer:fine) {
 .tf-brand-page :is(.tf-branch-card,.tf-location-card):hover { transform:translateY(-4px); border-color:#ffd70070; }
 .tf-brand-page :is(.tf-page-art,.tf-point-card):hover { transform:translateY(-3px); }
 .tf-brand-page :is(.tf-page-art,.tf-branch-card):hover img { transform:scale(1.025); }
 .tf-brand-page .tf-page-button:hover span { transform:translate(2px,-2px); }
}
@media(prefers-reduced-motion:reduce) {
 .tf-brand-page .tf-motion-item { opacity:1; translate:none; transition:none; }
 .tf-brand-page :is(.tf-branch-card,.tf-location-card,.tf-point-card,.tf-page-art,.tf-page-button,.tf-page-button span,.tf-point-faq summary::after) { transition:none; transform:none; }
 .tf-brand-page :is(.tf-page-art,.tf-branch-card):hover img { transform:none; }
 .tf-brand-page .tf-page-art img,.tf-brand-page .gym-gallery__slide img { transition:none; }
}

/* Real photography with flat yellow accents; every editorial image is distinct. */
.tf-brand-page figure { margin:0; }
.tf-brand-page .tf-photo-art { overflow:hidden; border-radius:16px; background:#000000; }
.tf-brand-page .tf-photo-art img { width:100%; display:block; object-fit:cover; }
.tf-brand-page .tf-page-art.tf-photo-art img { object-fit:cover; aspect-ratio:4/3; }
.tf-brand-page .tf-photo-art figcaption { background:#000000; color:#ffd700; padding:16px 20px; font-size:11px; letter-spacing:.06em; }
@media(max-width:800px) { .tf-brand-page .tf-photo-art { border-radius:0; overflow:visible; } .tf-brand-page .tf-photo-art img { border-radius:16px; } .tf-brand-page .tf-photo-art figcaption { padding:14px 0 0; } }
.tf-brand-page .tf-photo-art .tf-page-art-caption { position:static; }
.tf-location-photo { margin-top:32px!important; }
.tf-location-photo img { aspect-ratio:2/1; }
.tf-rewards-visual { display:grid; gap:16px; }
.tf-rewards-photo img { aspect-ratio:2/1; object-position:center 40%; }
.tf-rewards-visual .tf-point-card { min-height:240px; padding:28px 32px; }
.tf-rewards-visual .tf-point-symbol { font-size:clamp(56px,6vw,88px); }
.tf-branch-card .gym-gallery--stock :is(.gym-gallery__dots,.gym-gallery__nav) { display:none; }
.tf-branch-card .gym-gallery--stock .gym-gallery__caption { position:static; background:#000000; color:#ffd700; padding:12px 20px; font-size:11px; }
.tf-branch-card .gym-gallery--stock img { object-fit:cover; }
@media(max-width:800px) { .tf-rewards-visual .tf-point-card { padding:24px; } }
