/* JG Fitness inner pages: shared energetic layer (loaded after jg-base.css) */
/* heroes: big type, red disc behind the sign-up card, parallax */
.hero,.programme-hero{position:relative;overflow:clip}
.hero:before,.programme-hero:before{content:"";position:absolute;right:-6%;top:6%;width:min(520px,42vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 25%,var(--red-hot),var(--red) 55%,var(--red-deep));z-index:0;translate:0 var(--py,0);animation:jgpulse2 8s ease-in-out infinite;opacity:.95}
@keyframes jgpulse2{50%{scale:1.08}}
.hero>*,.programme-hero>*{position:relative;z-index:1}
.hero h1,.programme-hero h1,.hero .hero-slogan,.programme-hero .hero-slogan{font-size:clamp(54px,7.2vw,108px);letter-spacing:-.06em;line-height:.92}
.hero .eyebrow:first-child,.programme-hero .eyebrow:first-child{display:inline-block;background:var(--ink);color:#fff;padding:9px 16px;border-radius:999px;letter-spacing:.14em}
.hero .formbox,.hero aside,.programme-hero .formbox,.programme-hero aside{box-shadow:0 34px 70px rgba(0,0,0,.22)}
.hero .btn:not(.secondary){animation:jgglow2 2.6s ease-in-out infinite}
@keyframes jgglow2{0%,100%{box-shadow:0 12px 26px rgba(200,16,46,.32)}50%{box-shadow:0 12px 26px rgba(200,16,46,.32),0 0 0 14px rgba(200,16,46,.14)}}
/* headings */
.programme-title,.section h2,.intro h2,main h2{font-size:clamp(40px,4.8vw,72px);letter-spacing:-.05em;line-height:1}
.section{padding-top:90px}
/* facts bar under heroes */
.strip{background:var(--ink);color:#fff;border:0;border-radius:18px;padding:24px 30px;font-size:13px;letter-spacing:.16em;margin:10px 0}
.strip span:nth-child(odd){color:#ff8a9c}
/* programme items + bands */
.programme-item{transition:translate .25s,box-shadow .25s}
.programme-item:hover{translate:0 -8px}
.programme-band{background:linear-gradient(135deg,var(--red-hot),var(--red) 50%,var(--red-deep));background-size:200% 200%;animation:jgshift2 12s ease-in-out infinite;color:#fff;border:0;border-radius:34px;position:relative;overflow:hidden}
@keyframes jgshift2{50%{background-position:100% 100%}}
.programme-band:after{content:"";position:absolute;right:-90px;top:-90px;width:300px;aspect-ratio:1;border-radius:50%;border:34px dashed rgba(255,255,255,.14);animation:jgspin2 50s linear infinite;pointer-events:none}
@keyframes jgspin2{to{rotate:360deg}}
.programme-band *{position:relative}
.programme-band .eyebrow,.programme-band h2,.programme-band .programme-title,.programme-band p,.programme-band .programme-small{color:#fff}
.programme-band .programme-title span,.programme-band h2 span{color:#ffd0d8}
/* kit + blog cards */
.product-card,.post-card{border-radius:24px;transition:translate .25s,box-shadow .25s}
.product-card:hover,.post-card:hover{translate:0 -10px;box-shadow:0 30px 50px rgba(0,0,0,.2)}
.product-media{overflow:hidden;border-radius:20px}
.product-media img{transition:scale .5s}
.product-card:hover .product-media img{scale:1.08}
.product-grid .btn,.buy .btn,.buy a{border-radius:999px}
/* resource pages */
.preview-day,.intro{transition:translate .25s}
.preview-day:hover{translate:6px 0}
/* local service pages */
.hero + section,main > section{position:relative}
@media(max-width:700px){.hero:before,.programme-hero:before{width:90vw;right:-35%;top:auto;bottom:0}.strip{padding:18px}}
@media(prefers-reduced-motion:reduce){.hero:before,.programme-hero:before,.programme-band,.programme-band:after,.hero .btn{animation:none!important}}
.product-card,.post-card{border-radius:0}.product-card:hover,.post-card:hover{box-shadow:0 24px 44px rgba(0,0,0,.18)}
