–galaxy-blue: #2b9bff;
–dark: #03050F;
–text: #0a0f18;
–muted: #4a5568;
–white: #FFFFFF;
–light-bg:#f0f4fb;
–border: #d9e1ec;
–radius: 16px;
–shadow: 0 6px 20px rgba(43,155,255,.10), 0 2px 10px rgba(0,179,173,.12);
–shadow-sm: 0 2px 14px rgba(43,155,255,.08);
–grad-accent: linear-gradient(90deg, var(–galaxy-teal), var(–galaxy-purple), var(–galaxy-pink));
–grad-cta: linear-gradient(90deg, var(–galaxy-blue), var(–galaxy-teal));
–grad-top-1: linear-gradient(135deg, rgba(108,75,255,.25), rgba(255,77,166,.25));
–grad-top-2: linear-gradient(135deg, rgba(43,155,255,.25), rgba(0,179,173,.25));
–grad-top-3: linear-gradient(135deg, rgba(0,179,173,.25), rgba(108,75,255,.25));
–glow-teal: rgba(0,179,173,0.28);
–glow-purple: rgba(108,75,255,0.32);
–glow-pink: rgba(255,77,166,0.26);
–glow-blue: rgba(43,155,255,0.18);
}
.gg-pricing,
.gg-pricing *{
box-sizing: border-box;
}
/* —- Top text block —- */
.gg-pricing .page-header{
background: transparent;
padding: 16px 24px 10px;
text-align: center;
max-width: 1100px;
margin: 0 auto;
}
.gg-pricing .page-header h2{
font-family: ‘Outfit’, sans-serif;
font-size: clamp(2rem, 4vw, 3rem);
font-weight: 800;
color: var(–text);
letter-spacing: -0.02em;
margin: 0;
}
.gg-pricing .page-header h2 span{
background: var(–grad-accent);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.gg-pricing .page-header p{
margin: 12px auto 0;
color: var(–muted);
font-size: 1.31rem; /* was 1.05rem × 1.25 */
font-weight: 400;
max-width: 620px;
}
/* —- Section Divider —- */
.gg-pricing .section-divider{
height: 3px;
background: var(–grad-accent);
margin: 10px auto 0;
border-radius: 2px;
opacity: 0.35;
max-width: 1100px;
}
/* —- Shared Section Wrapper —- */
.gg-pricing .content-section{
max-width: 1100px;
margin: 0 auto;
padding: 40px 24px 48px;
}
.gg-pricing .section-label{
font-family: ‘Outfit’, sans-serif;
font-size: 1.03rem; /* was 0.82rem × 1.25 */
font-weight: 700;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(–muted);
text-align: center;
margin-bottom: 12px;
}
.gg-pricing .section-subtext{
text-align: center;
color: var(–muted);
font-size: 1.25rem; /* was 1rem × 1.25 */
max-width: 580px;
margin: 0 auto 40px;
}
/* —- Pricing Cards —- */
.gg-pricing .pricing-grid{
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
margin-bottom: 20px;
}
@media (max-width:700px){
.gg-pricing .pricing-grid{ grid-template-columns: 1fr; }
}
.gg-pricing .pricing-card-link{
display: block;
text-decoration: none;
color: inherit;
border-radius: var(–radius);
}
.gg-pricing .pricing-card-link:focus-visible{
outline: 3px solid var(–galaxy-teal);
outline-offset: 3px;
}
.gg-pricing .pricing-card{
border-radius: var(–radius);
overflow: hidden;
box-shadow: var(–shadow);
display: flex;
flex-direction: column;
position: relative;
transition: transform 0.25s ease, box-shadow 0.25s ease;
cursor: pointer;
border: 1px solid var(–border);
background: var(–white);
}
.gg-pricing .pricing-card-link:hover .pricing-card{
transform: translateY(-5px);
box-shadow: 0 12px 36px rgba(43,155,255,.20), 0 8px 26px rgba(255,77,166,.15);
}
.gg-pricing .pricing-card .card-top{
padding: 28px 28px 24px;
position: relative;
}
.gg-pricing .pricing-card.one .card-top{ background: var(–grad-top-1); border-bottom: 1px solid rgba(108,75,255,.18); }
.gg-pricing .pricing-card.two .card-top{ background: var(–grad-top-2); border-bottom: 1px solid rgba(43,155,255,.18); }
.gg-pricing .pricing-card.three .card-top{ background: var(–grad-top-3); border-bottom: 1px solid rgba(0,179,173,.18); }
/* Dark text on light pastel headers */
.gg-pricing .plan-label{
font-family:’Outfit’, sans-serif;
font-size: 0.98rem; /* was 0.78rem × 1.25 */
font-weight:700;
letter-spacing:0.14em;
text-transform:uppercase;
color: var(–muted);
margin-bottom:6px;
}
.gg-pricing .pricing-card .card-top h3{
font-family:’Outfit’, sans-serif;
font-size:1.4rem;
font-weight:800;
color: var(–text);
margin-bottom:16px;
line-height:1.1;
}
.gg-pricing .price-block{
display:flex;
align-items:flex-end;
gap:4px;
}
.gg-pricing .price-dollar{
font-family:’Outfit’, sans-serif;
font-size:1.1rem;
font-weight:700;
color: var(–muted);
margin-bottom:8px;
}
.gg-pricing .price-amount{
font-family:’Outfit’, sans-serif;
font-size:3.2rem;
font-weight:800;
color: var(–text);
line-height:1;
}
.gg-pricing .price-period{
font-size: 1.13rem; /* was 0.9rem × 1.25 */
color: var(–muted);
margin-bottom:6px;
font-weight:300;
}
.gg-pricing .card-bottom{
padding:22px 28px 28px;
background:var(–white);
flex:1;
display:flex;
flex-direction:column;
gap:10px;
}
.gg-pricing .detail-row{
display:flex;
align-items:flex-start;
gap:10px;
font-size: 1.19rem; /* was 0.95rem × 1.25 */
color:var(–muted);
line-height:1.5;
}
.gg-pricing .dot{
width:7px;
height:7px;
border-radius:50%;
flex-shrink:0;
margin-top:6px;
}
.gg-pricing .pricing-card.one .dot{ background: var(–galaxy-pink); }
.gg-pricing .pricing-card.two .dot{ background: var(–galaxy-teal); }
.gg-pricing .pricing-card.three .dot{ background: var(–galaxy-purple); }
.gg-pricing .card-cta{
margin-top:auto;
padding-top:14px;
border-top:1px solid var(–border);
font-family:’Outfit’, sans-serif;
font-size: 1.10rem; /* was 0.88rem × 1.25 */
font-weight:700;
display:flex;
align-items:center;
gap:6px;
}
.gg-pricing .pricing-card.one .card-cta{ color: var(–galaxy-pink); }
.gg-pricing .pricing-card.two .card-cta{ color: var(–galaxy-teal); }
.gg-pricing .pricing-card.three .card-cta{ color: var(–galaxy-purple); }
.gg-pricing .best-value-badge{
position:absolute;
top:16px;
right:16px;
font-family:’Outfit’, sans-serif;
font-size: 0.85rem; /* was 0.68rem × 1.25 */
font-weight:700;
letter-spacing:0.08em;
text-transform:uppercase;
padding:4px 10px;
border-radius:999px;
}
.gg-pricing .pricing-card.one .best-value-badge{ background: rgba(108,75,255,.15); color: var(–galaxy-purple); border: 1px solid rgba(108,75,255,.25); }
.gg-pricing .pricing-card.two .best-value-badge{ background: rgba(43,155,255,.15); color: var(–galaxy-blue); border: 1px solid rgba(43,155,255,.25); }
.gg-pricing .pricing-card.three .best-value-badge{ background: rgba(0,179,173,.15); color: var(–galaxy-teal); border: 1px solid rgba(0,179,173,.25); }
/* —- Pricing Footnote —- */
.gg-pricing .pricing-note{
background: var(–light-bg);
border-radius: var(–radius);
padding:18px 24px;
font-size: 1.19rem; /* was 0.95rem × 1.25 */
color: var(–muted);
display:flex;
align-items:flex-start;
gap:10px;
border:1px solid var(–border);
}
.gg-pricing .pricing-note .note-icon{
font-size:1rem;
flex-shrink:0;
margin-top:2px;
}
.gg-pricing .pricing-note a{
color: var(–galaxy-purple);
font-weight:700;
text-decoration:none;
}
.gg-pricing .pricing-note a:hover{ text-decoration:underline; }
/* —- Info Grid —- */
.gg-pricing .info-section{
background: var(–light-bg);
padding:56px 24px 48px;
}
.gg-pricing .info-grid{
max-width:1100px;
margin:0 auto;
display:grid;
grid-template-columns:repeat(2, 1fr);
gap:20px;
}
@media (max-width:700px){
.gg-pricing .info-grid{ grid-template-columns:1fr; }
}
.gg-pricing .info-card{
background: var(–white);
border-radius: var(–radius);
padding:28px;
box-shadow: var(–shadow-sm);
border:1px solid var(–border);
}
.gg-pricing .info-header{
display:flex;
align-items:center;
gap:12px;
margin-bottom:16px;
}
.gg-pricing .info-icon{
width:40px;
height:40px;
border-radius:10px;
display:flex;
align-items:center;
justify-content:center;
font-size:1.1rem;
flex-shrink:0;
color: var(–white);
}
.gg-pricing .info-card.billing .info-icon{ background: linear-gradient(135deg, var(–galaxy-blue), var(–galaxy-teal)); }
.gg-pricing .info-card.discounts .info-icon{ background: linear-gradient(135deg, var(–galaxy-purple), var(–galaxy-pink)); }
.gg-pricing .info-card.payment .info-icon{ background: linear-gradient(135deg, var(–galaxy-teal), var(–galaxy-blue)); }
.gg-pricing .info-card.cancel .info-icon{ background: linear-gradient(135deg, var(–galaxy-pink), var(–galaxy-purple)); }
.gg-pricing .info-card h3{
font-family:’Outfit’, sans-serif;
font-size:1.1rem;
font-weight:800;
letter-spacing:-0.01em;
margin: 0;
}
.gg-pricing .info-card p{
font-size: 1.21rem; /* was 0.97rem × 1.25 */
color: var(–muted);
line-height:1.7;
}
.gg-pricing .info-card p + p{ margin-top:10px; }
/* —- Bottom CTA —- */
.gg-pricing .cta-wrap{
max-width:1100px;
margin:0 auto;
padding:0 24px;
}
.gg-pricing .enroll-cta{
background:
radial-gradient(ellipse at 15% 50%, var(–glow-teal) 0%, transparent 52%),
radial-gradient(ellipse at 85% 50%, var(–glow-purple) 0%, transparent 52%),
radial-gradient(ellipse at 50% 100%, var(–glow-blue) 0%, transparent 55%),
radial-gradient(ellipse at 65% 10%, var(–glow-pink) 0%, transparent 48%),
var(–dark);
margin:48px auto;
border-radius:18px;
padding:48px 32px;
text-align:center;
max-width:1052px;
position:relative;
overflow:hidden;
border:1px solid rgba(255,255,255,0.06);
}
.gg-pricing .enroll-cta h3{
font-family:’Outfit’, sans-serif;
font-size:1.8rem;
font-weight:800;
color: var(–white);
margin-bottom:10px;
letter-spacing:-0.02em;
}
.gg-pricing .enroll-cta p{
color: rgba(255,255,255,0.72);
margin-bottom:24px;
font-size:1rem;
}
.gg-pricing .enroll-btn{
display:inline-block;
padding:14px 36px;
background: var(–grad-cta);
color: var(–white);
font-family:’Outfit’, sans-serif;
font-weight:800;
font-size:1rem;
border-radius:999px;
text-decoration:none;
box-shadow: 0 10px 30px rgba(43,155,255,0.25);
transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.gg-pricing .enroll-btn:hover{
transform: translateY(-2px);
box-shadow: 0 14px 38px rgba(43,155,255,0.30);
filter: brightness(1.03);
}
.gg-pricing .spacer{ height:40px; }
.gg-pricing .page-header p,
.gg-pricing .section-subtext{
text-align: center !important;
margin-left: auto !important;
margin-right: auto !important;
}
Monthly Tuition
All recreational classes are 1 hour, once per week. Pricing is based on how many classes your child is enrolled in each week.
🏆
Competitive Team pricing is different. Pre-Team and Competitive Team programs train multiple times per week and are priced based on team level and hours. Team placement is by coach invitation only. Contact us for details on competitive program tuition.
Good to Know
How it all works
Tuition is billed monthly on the 25th of each month, and charged automatically to your payment method on file. Once you enroll, your spot is reserved indefinitely — there’s no need to re-enroll each month.
Your first payment is processed at the time of enrollment, and you can jump into class right away.
The more classes your child takes each week, the lower the per-class rate. Enrolling in two classes saves $22/month over two separate single-class enrollments, and three classes saves $44/month.
Discounts apply automatically — no coupon codes needed. Mix and match any combination of Gymnastics, Tumbling, and Ninja classes.
We accept Visa, Mastercard, and Discover. Payment information is stored securely and processed automatically each month.
You can update your payment method at any time through the Parent Portal.
We don’t require long-term contracts. To avoid being charged for the upcoming month, cancellation requests must be submitted by the 20th of the current month. Monthly tuition is processed on the 25th, so requests received after the 20th will take effect the following month.
Full details are outlined in our enrollment policies.
Ready to Find the Right Class?
Browse our full class schedule and enroll online in just a few minutes.
Open Class Finder