/* JG Fitness: shared energetic red/white layer + motion. Loaded on every page after the page's own styles. */
:root{--red:#c8102e;--red-hot:#e4163a;--red-deep:#8f0a20;--ink:#171717}
body{overflow-x:clip}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* scroll progress bar */
#jg-progress{position:fixed;left:0;top:0;height:5px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--red-deep),var(--red-hot));z-index:9999;pointer-events:none}
/* header */
.announcement{background:var(--ink);color:#fff}
.announcement:before{content:"\25CF  ";color:var(--red-hot);animation:jgblink 1.6s ease-in-out infinite}
@keyframes jgblink{50%{opacity:.25}}
.nav{border-bottom:0}
.nav-links a:not(.btn){font-weight:700;position:relative}
.nav-links a:not(.btn):after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;background:var(--red);transform:scaleX(0);transform-origin:0 50%;transition:transform .25s}
.nav-links a:not(.btn):hover:after{transform:scaleX(1)}
.btn{border-radius:999px;padding:17px 28px;font-weight:800;box-shadow:0 12px 26px rgba(200,16,46,.32);transition:transform .2s,box-shadow .2s,background .2s;position:relative;overflow:hidden}
.btn:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(200,16,46,.42)}
.btn:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .5s}
.btn:hover:after{left:130%}
.btn.secondary{background:#fff;color:var(--ink);border:2px solid var(--ink);box-shadow:none}
.btn.secondary:hover{background:var(--ink);color:#fff}
.eyebrow{color:var(--red)}
/* headings */
h2{letter-spacing:-.05em;line-height:1}
/* faq / details */
details{border-bottom:2px solid #e3e3e3;transition:padding .2s}
details[open]{border-left:6px solid var(--red);padding-left:20px}
summary{font-weight:800;transition:transform .2s,color .2s}
summary:hover{transform:translateX(6px);color:var(--red)}
summary::marker{color:var(--red)}
/* forms */
.formbox{border-top:10px solid var(--red);border-radius:26px;box-shadow:0 34px 70px rgba(200,16,46,.2)}
/* footer */
.footer-invitation .footer-title{font-size:clamp(44px,5.6vw,84px);letter-spacing:-.05em;line-height:.98}
.footer-invitation .btn{background:var(--red-hot);padding:20px 32px;font-size:16px}
.site-footer .footer-link{transition:padding .2s,border-color .2s}
.site-footer .footer-link:hover{padding-left:10px}
.site-footer .social-icon{transition:transform .25s,background .2s}
.site-footer .social-icon:hover{transform:translateY(-5px) rotate(-8deg)}
/* hero words fly in (set by jg-motion.js) */
.w{display:inline-block;animation:jgword .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0)*90ms + 150ms)}
@keyframes jgword{from{opacity:0;translate:0 .5em;filter:blur(8px)}to{opacity:1;translate:0 0;filter:blur(0)}}
/* reveal on scroll */
.js-rv [data-rv]{opacity:0;transform:translateY(40px);transition:opacity .75s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .75s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.js-rv [data-rv=left]{transform:translateX(-70px)}
.js-rv [data-rv=right]{transform:translateX(70px)}
.js-rv [data-rv=zoom]{transform:scale(.82)}
.js-rv [data-rv].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.w{animation:none}.announcement:before{animation:none}#jg-progress{display:none}}
