/* Installation follows the real member journey, with connection details alongside. */
.gym-install-heading { max-width: 800px; }
.gym-install-layout { display: grid; grid-template-columns: 1.15fr 1fr; gap: 80px; margin-top: 44px; align-items: start; }
.gym-install-steps { list-style: none; padding: 0; margin: 0; }
.gym-install-steps li { display: grid; grid-template-columns: 40px 1fr; gap: 20px; padding: 28px 0; border-top: 1px solid #dfe3e7; }
.gym-step-number { font: 12px 'Source Code Pro', monospace; color: #987344; padding-top: 5px; }
.gym-install-steps h3 { font-size: 23px; line-height: 1.3; font-weight: 450; letter-spacing: -.025em; }
.gym-install-steps p { margin-top: 12px; font-size: 15px; line-height: 1.8; color: #697483; }
.gym-install-steps strong { font-weight: 500; color: #404853; }
.gym-install-connection { background: #f5f3ef; border: 1px solid #e4dfd5; border-radius: 18px; padding: 30px; }
.gym-install-address { display: flex; align-items: center; gap: 10px; font: 13px 'Source Code Pro', monospace; color: #78613e; border-bottom: 1px solid #dfdad1; padding-bottom: 22px; }
.gym-address-dot { width: 7px; height: 7px; background: #b99860; border-radius: 50%; box-shadow: 0 0 0 4px #b9986017; flex-shrink: 0; }
.gym-install-connection h3 { font-size: 25px; font-weight: 450; letter-spacing: -.03em; line-height: 1.25; margin-top: 25px; }
.gym-install-connection dl { margin-top: 25px; }
.gym-install-connection dl > div + div { margin-top: 22px; }
.gym-install-connection dt { font-size: 13px; font-weight: 500; margin-bottom: 7px; }
.gym-install-connection dd { margin: 0; font-size: 13px; line-height: 1.8; color: #69717c; }
.gym-install-connection dd strong { font-weight: 500; color: #5e4e35; }
.gym-install-connection > p { margin-top: 25px; padding-top: 20px; border-top: 1px solid #dfdad1; font-size: 11px; line-height: 1.8; color: #7a7e84; }
/* Small physical objects: rubber rims, metal hubs and quiet floor shadows. */
.gym-sport-tile { background: #eeece7; border: 1px solid #dedbd4; box-shadow: inset 0 1px 0 #fff9; }
.gym-sport-tile:nth-child(2) { background: #f0eee8; border-color: #dedbd4; }
.gym-module-object { position: relative; height: 146px; width: 160px; max-width: 100%; margin: 0 auto 18px; }
.gym-mini-track { position: absolute; inset: 28px 4px 23px; border-radius: 60px; border: 8px solid #494d51; background: #303438; box-shadow: inset 0 0 0 2px #ffffff12, 0 6px 0 #222629, 0 12px 12px #24292f1c; transform: rotate(-13deg); }
.gym-track-lane { position: absolute; inset: 6px; border: 1px solid #c8b18a; border-radius: inherit; }
.gym-track-lane::after { content: ''; position: absolute; inset: 7px; border: 1px solid #c8b18a55; border-radius: inherit; }
.gym-track-station { position: absolute; width: 19px; height: 19px; background: #dfbd70; border: 3px solid #b39146; border-radius: 50%; box-shadow: inset 0 0 0 1px #f8dda4, 0 3px 0 #80672f; }
.gym-track-station--one { top: -11px; left: 30px; }
.gym-track-station--two { bottom: -9px; right: 24px; }
.gym-track-station--three { top: 25px; right: -10px; }
.gym-mini-sled { position: absolute; left: 48px; top: 29px; width: 40px; height: 24px; background: linear-gradient(#9a8b70,#72654f); border: 2px solid #b9a787; border-radius: 3px; box-shadow: 0 4px 0 #4c4335, 0 6px 4px #0004; }
.gym-mini-sled::before,.gym-mini-sled::after { content: ''; position: absolute; left: -7px; right: -7px; height: 3px; background: #c6c7c8; border-radius: 3px; }
.gym-mini-sled::before { top: 2px; }.gym-mini-sled::after { bottom: 2px; }
.gym-mini-sled i,.gym-mini-sled b { position: absolute; bottom: 14px; width: 4px; height: 22px; background: linear-gradient(90deg,#a9afb5,#e4e6e9,#7e858e); border-radius: 3px; }
.gym-mini-sled i { left: 6px; }.gym-mini-sled b { right: 6px; }
.gym-mini-dumbbell { transform: rotate(-20deg); }
.gym-dumbbell-shaft { position: absolute; top: 68px; left: 12px; right: 12px; height: 12px; border-radius: 3px; background: linear-gradient(#969ea7,#e5e7e9 35%,#747d87); box-shadow: 0 5px 6px #27303a24; }
.gym-dumbbell-weight { position: absolute; top: 30px; width: 52px; height: 86px; border-radius: 50%; background: #cba54c; border: 5px solid #aa8737; box-shadow: inset 0 0 0 2px #eacb7d, inset 0 0 0 6px #cba54c, inset 0 0 0 7px #f5d98788, 5px 0 0 #85672b, 0 8px 9px #222a341c; }
.gym-dumbbell-weight--left { left: 10px; }.gym-dumbbell-weight--right { right: 10px; }
.gym-dumbbell-weight > span { position: absolute; top: 13px; left: 0; right: 0; text-align: center; font: 6px 'Elms Sans',sans-serif; letter-spacing: .04em; color: white; }
.gym-dumbbell-weight > i { position: absolute; left: 50%; top: 50%; width: 14px; height: 19px; border-radius: 50%; transform: translate(-50%,-50%); border: 3px solid #d2d6da; background: #6c747e; box-shadow: 0 0 0 1px #9ba3ac; }
.gym-dumbbell-weight > small { position: absolute; bottom: 9px; left: 0; right: 0; text-align: center; color: #fff; font: 10px 'Elms Sans',sans-serif; }
@media(max-width:1000px) { .gym-install-layout { gap: 35px; } .gym-install-connection { padding: 24px; } .gym-module-object { width: 145px; } }
@media(max-width:650px) { .gym-install-layout { grid-template-columns: 1fr; gap: 24px; margin-top: 30px; } .gym-install-steps li { gap: 12px; grid-template-columns: 28px 1fr; padding: 23px 0; } .gym-install-steps h3 { font-size: 21px; } .gym-install-steps p { font-size: 14px; } .gym-install-connection h3 { font-size: 24px; } .gym-module-object { width: 145px; height: 140px; } }
@media(max-width:355px) { .gym-sport-art { gap: 10px; } .gym-sport-tile { padding-inline: 7px; } .gym-module-object { width: 125px; } .gym-mini-sled { left: 35px; } .gym-dumbbell-weight { width: 45px; } .gym-dumbbell-weight--left { left: 2px; } .gym-dumbbell-weight--right { right: 2px; } }

/* An unadorned athletics track, with concentric lanes and a grass infield. */
.gym-mini-track { inset: 26px 0 20px; border: 5px solid #945443; background: #b96e57; box-shadow: inset 0 0 0 1px #d8947b, 0 4px 0 #784638, 0 9px 10px #24292f16; transform: rotate(-12deg); }
.gym-track-lane { inset: 4px; border-color: #f5e3cfb3; }
.gym-track-lane::after { inset: 5px; border-color: #f5e3cfb3; }
.gym-track-lane::before { content: ''; position: absolute; inset: 11px; border: 1px solid #f5e3cfb3; border-radius: inherit; }
.gym-stadium-infield { position: absolute; inset: 23px; border-radius: 50px; border: 1px solid #f5e3cfb3; background: #75866b; box-shadow: inset 0 1px 3px #334d3026; }
/* A classic grey hex dumbbell, redrawn independently of the branded plates. */
.gym-classic-dumbbell { transform: rotate(-22deg); filter: drop-shadow(0 7px 4px #30384220); }
.gym-classic-grip { position: absolute; top: 65px; left: 21px; right: 21px; height: 14px; border-radius: 4px; background: linear-gradient(#8b949e, #d5d9de 32%, #a4acb5 53%, #707984); }
.gym-classic-grip::after { content: ''; position: absolute; inset: 2px 33px; background: repeating-linear-gradient(55deg, #4d586126 0 1px, transparent 1px 3px); border-inline: 2px solid #c4c9cf; }
.gym-classic-head { position: absolute; top: 34px; width: 52px; height: 76px; clip-path: polygon(21% 0,71% 0,100% 20%,100% 80%,79% 100%,29% 100%,0 80%,0 20%); background: linear-gradient(105deg, #a0a7af 0 14%, #68717c 16% 70%, #414952 73% 100%); }
.gym-classic-head--left { left: 5px; }.gym-classic-head--right { right: 5px; }
.gym-classic-head::before { content: ''; position: absolute; inset: 2px 12px 2px 2px; clip-path: polygon(24% 0,76% 0,100% 20%,100% 80%,76% 100%,24% 100%,0 80%,0 20%); background: linear-gradient(130deg,#76808b,#505963); }
.gym-classic-head i { position: absolute; inset: 10px 11px 13px 7px; clip-path: inherit; background: #5c6570; box-shadow: inset 0 1px 1px #ffffff1a; }
.gym-mini-sled { display: none; }
.gym-classic-grip { top: 67px; height: 10px; z-index: 1; }
.gym-classic-head { z-index: 2; }
.gym-classic-head i { inset: 0; clip-path: none; background: transparent; box-shadow: none; }
.gym-classic-head i::after { content: ''; position: absolute; left: calc(50% - 5px); top: 50%; width: 12px; height: 16px; box-sizing: border-box; transform: translate(-50%,-50%); border-radius: 50%; background: #303740; border: 2px solid #8d969f; }
.gym-classic-head--right::after { content: ''; position: absolute; left: 0; top: 32px; width: calc(50% - 1px); height: 12px; border-radius: 0 5px 5px 0; background: linear-gradient(#8b949e,#d5d9de 32%,#a4acb5 53%,#707984); }
.gym-classic-grip { top: 66px; height: 12px; }
@media(max-width:355px) { .gym-classic-head { width: 46px; } .gym-classic-head--left { left: 1px; } .gym-classic-head--right { right: 1px; } .gym-classic-grip { left: 15px; right: 15px; } }
.gym-classic-head { clip-path: none; background: transparent; }
.gym-classic-head::before { display: none; }
.gym-classic-wheel { position: absolute; inset: 0; transform-origin: calc(50% - 5px) 50%; clip-path: polygon(21% 0,71% 0,100% 20%,100% 80%,79% 100%,29% 100%,0 80%,0 20%); background: linear-gradient(105deg,#a0a7af 0 14%,#68717c 16% 70%,#414952 73% 100%); }
.gym-classic-wheel::before { content: ''; position: absolute; inset: 2px 12px 2px 2px; clip-path: polygon(24% 0,76% 0,100% 20%,100% 80%,76% 100%,24% 100%,0 80%,0 20%); background: linear-gradient(130deg,#76808b,#505963); }
