/* Section and component styles. Measured against the live site at 1440, 768 and 375. */

.band,.wrap{container-type:inline-size}
/* padding classes: percent of the row width, like the original grid */
.pad1>.inner{padding:1.02cqw}
.pad2>.inner{padding:2.04cqw}
.pad3>.inner{padding:3.06cqw}
.pad8>.inner{padding:8.16cqw}
.band.fwc .pad10>.inner{padding:10cqw}
.band.fwc .pad8>.inner{padding:8cqw}
.band.fwc .pad3>.inner{padding:3cqw}
@media (max-width:999px){
  .pad2>.inner{padding:3.57cqw}
  .pad1>.inner{padding:1.02cqw}
}

/* ---------- hero (home) ---------- */
.hero{padding:3vw 0;min-height:calc(100vh - var(--hdr) + 1px);display:flex;flex-direction:column;justify-content:center;color:#fff;overflow:hidden}
.hero>.bg{background:#000}
.hero .bgvid{position:absolute;left:0;top:-20px;width:100%;height:calc(100% + 40px);object-fit:cover;opacity:0;transition:opacity .25s ease}
.hero .bgvid.on{opacity:1}
/* The hero still is a real image on every screen (second pass T1). The video fades in over it. It sits in the same box as the video so the two line up with no jump. */
.hero .bgimg{position:absolute;left:0;top:-20px;width:100%;height:calc(100% + 40px);display:block}.hero .bgimg img{width:100%;height:100%;object-fit:cover;display:block}
.hero>.wrap{width:100%}
.hero .cols>.col{width:100%}
.hero .stroke{display:block;margin:0 auto;width:864px;max-width:100%;height:auto;aspect-ratio:864/575}
.hero .tbox>.inner{background:rgba(0,0,0,.4);border-radius:15px}
.hero h1,.hero .hl{color:#fff}
.hero h1{margin:0}
.hero h1 .hl1{display:block;font:italic 700 60px/70px var(--rc);margin:0 0 7px;color:#fff}
.hero h1 .hl2{display:block;font:italic 400 40px/50px var(--rc);margin:0;color:#fff}
.hero .cols{margin-bottom:0}
@media (max-width:999px){
  .hero .cols>.col{margin-bottom:25px}
  .hero .cols>.col:last-child{margin-bottom:0}
  .hero h1 .hl1{font-size:39px;line-height:45.5px}
  .hero h1 .hl2{font-size:30px;line-height:37.5px}
  .hero{padding:3vw 0}
}

/* ---------- sticky green sub menu bar ---------- */
.pbar-ph{position:relative;z-index:9998;margin-bottom:21px}
.pbar{background:var(--green);color:#fff;text-align:center;width:100%;z-index:9998}
.pbar.stuck{position:fixed;top:var(--hdr);left:0}
.pbar ul{list-style:none;display:block;background:var(--green)}
.pbar li{display:inline-block;margin:0 25px 0 0}
.pbar li:last-child{margin-right:0}
.pbar li a{display:block;padding:20px 0;color:#fff;font:400 14px/26px var(--os);opacity:.7;transition:.1s}
.pbar li a:hover{opacity:1}
@media (max-width:999px){
  .pbar{position:relative}
}

/* ---------- testimonial slider ---------- */
.tband{background:#f2f2f2;padding:7vw 0}
.tband.dark{background:#f2f2f2}
.tband>.bg .ov{background:#000;opacity:.8}
.tband>.bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tslider{position:relative;width:100%;padding:0 0 20px;z-index:100}
.tslides{position:relative;overflow:hidden;width:100%}
.tcell{position:absolute;top:0;left:0;width:41%;margin:0 0 30px;padding:.7vw;font-size:22px;line-height:40px;font-weight:300;letter-spacing:.5px;text-align:center;transition:transform .55s cubic-bezier(.25,1,.33,1)}
.tcell.nt{transition:none}
.tcell .card{height:100%;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:50px;text-align:left;color:var(--text)}
.tcell .nm{display:block;font-size:16px;line-height:22px}
.tcell .yr{display:block;font-size:14px;line-height:22px;opacity:.6}
.tcell p{position:relative;margin:30px 0 0;padding:0;font-size:22px;line-height:40px}
.tcell .oq,.tcell .cq{font-size:16px;line-height:22px;vertical-align:baseline}
.tcell .stars{display:inline-block;position:relative;font-size:16px;line-height:22px;vertical-align:top;margin:20px 0 0;width:110.8px;height:22px;overflow:hidden}
.tcell .stars:before{content:"\f005\f005\f005\f005\f005";font:16px/22px FontAwesome;letter-spacing:7.3px;background:linear-gradient(90deg,#00b34f,#009148);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
.tdots{position:absolute;left:0;width:100%;text-align:center;line-height:14px;height:32px}
.tdots button{display:inline-block;position:relative;width:30px;height:30px;padding:0;border:0;background:none;cursor:pointer;opacity:.35;vertical-align:top}
.tdots button:before{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#000}
.tdots button.on{opacity:1}
.tdots button.on:before{width:12px;height:12px;margin:-6px 0 0 -6px;background:transparent;border:2px solid #000}
.tband.dark .tdots button:before{background:#fff}
.tband.dark .tdots button.on:before{background:transparent;border-color:#fff}
@media (max-width:690px){.tcell{width:85.44%;padding:.7vw}.tcell .card{padding:50px}}
@media (max-width:999px) and (min-width:691px){.tcell{width:85%}}

/* ---------- picture strip (parallax-hover boxes) ---------- */
.strip{display:flex;flex-wrap:wrap}
.strip .tile{position:relative;width:25%;height:600px;overflow:hidden;background:#272727}
.strip .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.strip .tile:after{content:"";position:absolute;inset:0;background:rgba(39,39,39,.6)}
@media (max-width:999px){.strip .tile{width:100%}}

/* ---------- intro row ---------- */
.intro{padding:8vw 0;background:#fff}
.intro .logo{width:100%;height:auto;display:block}
.intro .t{margin:52px 0 21px}
.intro .t p{padding:0}
.intro .padr>.inner{padding:0 6.38% 0 0}
.nbtn{position:relative;display:inline-block;font:600 12px/20px var(--ms);text-transform:uppercase;color:#fff;background:var(--green);border-radius:200px;padding:12px 18px;margin:0 0 10px;transition:opacity .45s cubic-bezier(.25,1,.33,1),transform .45s cubic-bezier(.25,1,.33,1),background .3s}
.nbtn:hover{color:#fff;opacity:.9}
.nbtn.lg{font-size:14px;padding:15px 44px 15px 46px;margin:15px 0 10px;background:var(--navy)}
.nbtn.lg span{display:inline-block;transform:translateX(-18px);transition:transform .45s cubic-bezier(.25,1,.33,1)}
.nbtn.lg i{position:absolute;top:9px;left:auto;right:14px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.22);text-align:center;font-size:14px;line-height:32px;transform:translate(4px,0);transition:.45s cubic-bezier(.25,1,.33,1)}
.nbtn.lg:hover span{transform:translateX(-18px)}
.hbox{position:relative;display:block;margin:0;padding:10% 15%}
.hbox .bgc{position:absolute;inset:0;opacity:0;background:linear-gradient(135deg,#1a1d6d 0%,#4a50d3 100%);box-shadow:0 20px 80px rgba(74,80,211,.28);transition:opacity .45s cubic-bezier(.25,1,.2,1);z-index:1}
.hbox:hover .bgc{opacity:1}
.hbox .in2{position:relative;z-index:10;display:flex;justify-content:center;align-items:center;min-height:200px;padding:0;text-align:left;color:#444}
.hbox .in2 .iw{width:100%}
.hbox .ico{display:block;font-size:50px;line-height:50px;margin:0 0 25px;background:linear-gradient(135deg,#4a50d3,#151654);-webkit-background-clip:text;background-clip:text;color:transparent;width:max-content;max-width:100%}
.hbox:hover .ico{background:none;color:#fff;-webkit-text-fill-color:#fff}
.hbox h3{color:#444;margin-bottom:8px}
.hbox p{padding:0;opacity:.75;color:#444;font-size:14px;line-height:26px}
.hbox:hover h3,.hbox:hover p{color:#fff}
.hbox a.bl{position:absolute;inset:0;z-index:20}
.fbrow>.col{padding:.75% 1.76%}
.fbrow{margin-bottom:16px}

/* ---------- location row ---------- */
.loc{display:flex;height:900px;background:var(--blue2);color:#fff;container-type:inline-size}
.loc>.half{position:relative;width:50%;height:900px;overflow:hidden}
.loc .map{width:100%;height:100%;background:#ddd}
.loc .map img{width:100%;height:100%;object-fit:cover;display:block}
.loc .txt{position:relative;background:var(--blue2)}
.loc .txt>.cbg{position:absolute;inset:0}
.loc .txt>.cbg img{width:100%;height:100%;object-fit:cover}
.loc .txt>.cov{position:absolute;inset:0;background:var(--blue2);opacity:.88}
.loc .txt .in{position:relative;z-index:2;padding:8cqw;color:#fff}
.loc h1,.loc h2{color:#fff}
.loc h1{margin:0 0 21px}
.loc h2{margin:0 0 21px}
.loc .band>.wrap{display:none}
.locwrap{position:relative;color:#fff}
@media (max-width:999px){
  .loc{flex-direction:column;height:auto}
  .loc>.half{width:100%}
  .loc>.half.mapc{height:900px}
  .loc>.half.txt{height:auto}
}

/* ---------- 3D transparent button ---------- */
.b3d{position:relative;display:inline-block;margin:0;font:600 12px/20px var(--ms);text-transform:uppercase;text-align:center}
.b3d a{display:block;position:relative}
.b3d .iw{perspective:2000px;position:absolute;inset:0;display:block;width:100%;height:100%}
.b3d .sz{display:block;visibility:hidden;font-weight:600;white-space:nowrap}
.b3d .front,.b3d .back{position:absolute;inset:0;width:100%;height:100%;display:block;backface-visibility:hidden;transform-origin:50% 50% -2.3em;transition:transform .25s cubic-bezier(.2,.65,.4,1)}
.b3d .front{transform:rotateX(-90deg)}
.b3d:hover .front{transform:rotateX(0)}
.b3d:hover .back{transform:rotateX(90deg)}
.b3d .back{position:relative}
.b3d svg{display:block;width:100%;height:100%;overflow:hidden}
.b3d text{font-family:var(--ms);font-weight:600;text-transform:uppercase;text-anchor:middle}
.b3d.xl{--fs:64px;--w:994px;--h:196px}
.b3d.md{--fs:24px;--w:267px;--h:90px}
.b3d.sm{--fs:16px;--w:122px;--h:70px}
.b3d{width:var(--w);height:var(--h);max-width:100%}
.band.green{background:var(--green);color:#fff}
.btnband{padding:10vw 0;background:var(--green)}
.btnband h1,.btnband h2{color:#fff}

/* ---------- footer ---------- */
#footer{margin-top:auto;background:#fff;flex:none}
#footer .row{padding:20px 0;color:#595959;position:relative}
#footer .row .wrap{display:flex;align-items:flex-start;justify-content:space-between;height:25px}
#footer .soc{display:flex;list-style:none;margin:0 35.5px 0 0;padding:0}
#footer .soc a{display:block;position:relative;color:var(--green);height:24px;line-height:22px;transition:.2s linear}
#footer .soc li+li{margin-left:20px}
#footer .soc .fa{display:inline-block;color:#595959;font-size:20px;line-height:20px;transition:.2s linear;vertical-align:middle;margin-top:2px}
#footer .soc a:hover .fa{color:#000}
@media (max-width:999px){
  #footer .row .wrap{height:auto;display:block;padding:0}
  #footer .soc{margin-top:25px;height:24px}
}

/* ---------- inner page header band ---------- */
.phead{position:relative;height:350px;overflow:hidden;background:#fff}
.phead .pbg{position:absolute;left:0;right:0;top:-40px;height:390px;z-index:9;background:center/cover no-repeat}
.phead .pov{position:absolute;inset:0;z-index:10;opacity:.65}
.phead .ptxt{position:relative;z-index:101;height:100%}
.phead .ptxt .wrap{height:100%;display:flex;align-items:center}
.phead h1{color:#fff;margin:0 0 8px}
.phead .sub-h{display:inline;margin:0 0 15px;color:#fff;font:300 28px/36.4px var(--os)}
@media (max-width:999px){.phead{height:250px}}

/* ---------- FAQ ---------- */
.faqband{padding:7vw 0;background:#fff}
.toggles{width:100%}
.toggle{position:relative;transition:border-color .15s}
.toggle>h3{position:relative;margin:0;z-index:10}
.toggle>h3 a{display:block;padding:30px 70px 30px 0;font:400 20px/30px var(--ms);letter-spacing:1px;text-transform:uppercase;color:rgba(0,0,0,.65);transition:color .15s}
.toggle>h3 a i{position:absolute;top:45px;right:0;width:30px;height:30px;margin-top:-15px;border:2px solid #888;border-radius:30px;color:#888;font-size:15px;line-height:26px;text-align:center;font-style:normal;transition:background-color .2s,border-color .2s,color .2s,transform .2s}
.toggle>h3 a i:before{content:"\f067"}
.toggle.open>h3 a{color:var(--green)}
.toggle.open>h3 a i{border-color:var(--green);background:var(--green);color:#fff}
.toggle.open>h3 a i:before{content:"\f068"}
.toggle>h3 a:hover{color:var(--green)}
.toggle>.tb{display:none;overflow:hidden}
.toggle.open>.tb{display:block}
.toggle .inner-t{padding:0 0 30px}
.toggle .inner-t p{padding-bottom:21px}
.toggle .inner-t .fa{margin:0 5px 0 0;font-size:13px;line-height:15px;color:var(--green);width:15px;text-align:center;position:relative;top:-2px}
.toggle+.toggle{border-top:1px solid #ddd}
.toggle{border-bottom:0}

/* ---------- pricing ---------- */
.pband{position:relative;padding:4vw 0 7vw;color:#fff}
.pband.w{padding:6vw 0}
.pband .ov{position:absolute;inset:0;z-index:2;background:#000;opacity:.8}
.pband>.bg img{position:absolute;left:0;top:-40px;width:100%;height:calc(100% + 40px);object-fit:cover}
.ptable{position:relative;margin:60px 0 24px;padding:0 0 24px}
.ptable:after{content:"";display:table;clear:both}
.pcol{position:relative;float:left;background:#fff;padding:50px;overflow:hidden;color:#444;text-align:left;border-top:0}
.pcol:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--green)}
.pcol h3{margin:0;padding:18px 0;font:400 36px/30px var(--ms);color:var(--navy);letter-spacing:1px;text-transform:uppercase;background:#fff}
.pcol h4{display:inline-block;padding:0 0 13px;font:600 30px/42px var(--os);color:var(--navy);margin:0}
.pcol h4 .d{display:inline}
.pcol .int{display:inline-block;min-height:38px;padding:0 0 17px;color:var(--navy);font-size:14px}
.pcol .int:before{content:"/ ";margin-left:4px}
.pband h1,.pband h2,.pband h3.x{color:#fff}
.pband .pcol h3{color:var(--navy)}
.pcol ul{list-style:none;margin:0 0 38px;padding:20px 0;color:#444}
.ptable.one .pcol ul{margin-top:21px}
.pcol li{padding:8px 0;line-height:18px;color:#444}
.pcol li .fa{position:relative;top:-2px;display:inline-block;width:15px;margin:0 10px 0 0;font-size:13px;line-height:15px;text-align:center;color:var(--green)}
.pcol li.nolead{padding:8px 0}
.ptable.one .pcol{width:79%;float:left}
.ptable.three .pcol{width:31%;margin-right:3.5%}
.ptable.three .pcol:nth-child(3n){margin-right:0}
.pc-hd{text-align:center;color:#fff}
.pc-hd h3{color:#fff;margin:0 0 8px}
.dv{height:var(--dv,40px)}
.dvb{height:2px;background:#888;margin:25px 0}
.tp{position:relative;padding:6vw 0;background:#fff;overflow:hidden}
.tp .tpbg{position:absolute;inset:0;background:linear-gradient(90deg,#69af36 0%,#fff 100%);opacity:.3}
.tp .bx{position:relative;margin:0 auto}
.tp h1{color:#1a7a00;font-size:115px;line-height:124.2px;text-align:center;margin:0 0 24px}
.tp h6{color:#81d742;font-weight:600;text-align:center;text-transform:uppercase;padding:0}
.tpcar{position:relative;margin:0 0 24px;overflow:hidden;color:#81d742}
.tpcar .track{display:flex;transition:transform .5s cubic-bezier(.25,1,.33,1)}
.tpcar .cell{flex:none;width:387.42px;margin:0 20px 0 0}
.tpcar .fb2{position:relative;height:379.47px;border:1px solid rgba(0,0,0,.08);color:#444;border-radius:0}
.tpcar .fb2 .inn{display:flex;justify-content:center;align-items:center;min-height:300px;padding:40px 59px;text-align:left}
.tpcar .fb2 .inn>div{width:100%}
.tpcar svg{display:block;width:50px;height:50px;margin:0 0 20px}
.tpcar h3{color:#444;margin:0 0 8px}
.tpcar p{padding:0 0 21px;opacity:.75;color:#444;line-height:23.8px}
.tpcar p:last-child{padding:0}
.tpcar .nx{position:absolute;top:50%;right:50px;margin-top:-20px;width:40px;height:40px;border:0;border-radius:200px;background:none;color:#000;font:25px/1 Arial;cursor:pointer;padding:1px 6px}
.tpcar .nx.pv{right:auto;left:50px}
.tpcar .nx[disabled]{opacity:.3;cursor:default}

/* ---------- programs ---------- */
.prow{display:flex;align-items:center;background:#fff;position:relative}
.prow>.half{position:relative;width:50%;align-self:stretch}
.prow .ptext{background:#f4f4f4}
.prow .ptext.w{background:#fff}
.prow .ptext>.pin{padding:10cqw}
.prow .pimg{overflow:hidden}
.prow .pimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.prow .pimg .sp{display:block;height:var(--ph,500px)}
.prow h1,.prow h2{color:var(--head);margin:0 0 24px;font:700 60px/70px var(--rc)}
.prow .lead{padding:0;margin:0 0 24px}
.prow h4{margin:0}
.prow .dvb{margin:20px 0}
.prow .balls{display:flex;margin:0 -1%;margin-top:0}
.prow .balls span{display:block;width:25%;padding:0 1%}
.prow .balls img{display:block;width:78px;height:auto}
.prow .vid{position:relative;width:100%;padding-top:56.25%;margin-top:30px}
.prow .vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.hd-p{margin:0}
.hd-p .hl{overflow:hidden;position:relative}
@media (max-width:999px){
  .prow{display:block}
  .prow>.half{width:100%}
  .prow .ptext>.pin{padding:10cqw}
  .prow h1,.prow h2{font-size:42px;line-height:49px}
  .prow.rev .pimg{order:0}
}
@media (max-width:690px){.prow h1,.prow h2{font-size:39px;line-height:45.5px}}

/* ---------- coaches ---------- */
.coach{display:flex;min-height:calc(100vh - var(--hdr) + 1px);background:#232323}
.coach>.half{position:relative;width:50%}
.coach .ctext{background:#fff;display:flex;align-items:center}
.coach .ctext>.pin{padding:10cqw;width:100%}
.coach .cimg{overflow:hidden}
.coach .cimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.coach h5{color:#bfbfbf;text-align:left;margin:0 0 10px}
.coach h1{margin:0 0 24px}
.pbarx{position:relative;margin:0}
.pbarx p{padding:0 0 2px;line-height:26px}
.pbarx .bw{position:relative;height:14px;margin:0 0 13px;background:rgba(0,0,0,.043)}
.pbarx .bw span{display:block;position:relative;width:100%;height:14px;background:linear-gradient(90deg,#009148,#00b34f)}
.pbarx .bw strong{position:absolute;top:-23px;right:0;display:block;width:43px;height:20px;padding:4px 0;font:600 11px/12px var(--os);text-align:right;color:#444}
.cinfo{display:flex;align-items:center;margin:0 -1%}
.cinfo .a{width:50%;padding:0 1%;text-align:right}
.cinfo .a img{display:inline-block;width:186px;height:auto}
.cinfo .b{width:50%;padding:0 1%}
.ful{list-style:none;margin:0 0 30px}
.ful li{position:relative;left:-20px;margin:0 0 5px;padding:0 0 0 38px}
.ful li:before{content:"\f054";position:absolute;left:0;top:-2px;font:700 12px/26px FontAwesome;color:var(--green);width:20px;text-align:center;padding-left:6px}
@media (max-width:999px){
  .coach{display:block;min-height:0}
  .coach>.half{width:100%}
  .coach .cimg{height:auto}
  .coach .cimg img{position:static;height:auto;aspect-ratio:1/1;width:100%}
}

/* ---------- thank you ---------- */
.ty{position:relative;min-height:calc(100vh - var(--hdr) + 1px);display:flex;align-items:center;color:#fff}
.ty>.bg{background:linear-gradient(135deg,#007a3d 0%,var(--navy) 100%)}
.ty h1,.ty h2{color:#fff;text-align:center}
.ty h3{color:#fff;text-align:center}

/* ---------- forms ---------- */
.formwrap{padding:0;background:#fff}
.formmain{max-width:1425px;margin:0 auto;padding:0 90px}
.gf{padding:0 0 24px;margin:0 auto}
.gsec{padding:0 16px 8px 0;display:block}
.gsec h3{margin:0 0 8px;border-bottom:1px solid #ddd;padding:0 0 8px}
.gfield{margin:0;padding:0}
.glabel{display:block;margin:20px 0 6px;font:600 20px/28px var(--ms);text-transform:uppercase;color:#444}
.glabel .req{font-size:13px;font-weight:600;color:#c02b0a;padding-left:1.6px;text-transform:uppercase;font-style:italic}
/* the word comes from CSS so Netlify, which names entry fields after the label text, does not add "(Required)" to every field */
.glabel .req::after{content:"(Required)"}
.gin{display:block;width:100%;height:44px;padding:8px;border:2px solid transparent;border-radius:4px;background:rgba(0,0,0,.04);color:#555;font:400 15px/24px var(--os);max-width:100%}
.gin:focus,.gdate .gin:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy);background:#fff}
.gcomplex{display:flex;gap:0;margin:0}
.gcomplex>span{display:block;flex:1}
.gcomplex>span+span{margin-left:24px}
.gsub{display:block;padding:5px 0 0;font:400 15px/21px var(--os);color:#595959;margin:0 0 15px}
.gdate{display:flex}
.gdate>span{display:block}
.gdate>span+span{margin-left:25px}
.gdate .gin{width:84px}
.gdate .gsub{display:none}
.gch{display:flex;align-items:center;margin:0 0 3px}
.gch input{margin:0 3px 3px 4px}
.gch label{font:400 15px/26px var(--os);color:#595959;margin-left:4px}
.ghtml h2{margin:0 0 7px}
.ghtml p{padding:0 0 21px}
.gdesc{font:400 15px/24px var(--os);padding:13px 0 16px;color:#595959;margin:0}
.gdesc.consent{margin:12.8px 0 0;padding:6.4px 8px;border:1px solid #ddd;font-size:13px;line-height:20px;max-height:119px;overflow:auto}
.gsig{position:relative;width:300px;height:180px;max-width:100%}
.gsig canvas{display:block;width:300px;height:180px;max-width:100%;border:2px dashed #ddd;background:#fff;touch-action:none;cursor:crosshair}
.gsig .clr{position:absolute;right:-27px;bottom:-26px;width:22px;height:22px;color:#999;font-size:16px;cursor:pointer;background:none;border:0;padding:0}
.gfoot{display:flex;margin:6px 0 0;padding:16px 0}
.gsubmit{display:block;margin:0 0 8px;padding:15px 22px;border:0;border-radius:200px;color:#fff;background:var(--green);font:600 20px/24px var(--ms);text-transform:uppercase;text-align:center}
.gsubmit[disabled]{opacity:.55;cursor:not-allowed}
.gnote{margin:0 0 8px 20px;padding:15px 0;font:600 14px/24px var(--os);color:#c02b0a}
.gmissing{margin:0;padding:0}
@media (max-width:999px){.formmain{max-width:600px;padding:0}}
@media (max-width:690px){.formmain{max-width:420px}}
@media (max-width:479px){.formmain{max-width:320px;width:calc(100% - 20px)}.glabel{font-size:16px}.gcomplex{flex-direction:column}.gcomplex>span+span{margin-left:0}}

/* ---------- scroll animations ---------- */
.js .an{opacity:0;position:relative}
.js .an.grow{transform:scale(.75);transition:opacity .6s cubic-bezier(.15,.84,.35,1.25),transform .6s cubic-bezier(.15,.84,.35,1.25)}
.js .an.fade{transition:opacity .65s cubic-bezier(.25,1,.33,1)}
.js .an.fl{transform:translateX(-75px);transition:opacity .65s cubic-bezier(.25,1,.33,1),transform .65s cubic-bezier(.25,1,.33,1)}
.js .an.fb{transform:translateY(50px);transition:opacity .65s cubic-bezier(.25,1,.33,1),transform .65s cubic-bezier(.25,1,.33,1)}
.js .an.in{opacity:1;transform:none}
.js .an.rot{opacity:0;transform-origin:left bottom;transform:rotate(45deg)}
.js .an.rot.in{animation:rotIn 1s both}
.js .an.zil{opacity:0}
.js .an.zil.in{animation:zoomInLeft 1s both}
@keyframes rotIn{from{transform-origin:left bottom;transform:rotate(45deg);opacity:0}to{transform-origin:left bottom;transform:none;opacity:1}}
@keyframes zoomInLeft{0%{opacity:0;transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;transform:scale3d(.475,.475,.475) translate3d(10px,0,0);animation-timing-function:cubic-bezier(.175,.885,.32,1)}100%{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .js .an,.js .an.in{opacity:1;transform:none;animation:none;transition:none}
  html{scroll-behavior:auto}
}

/* 3D button sizing overrides (set per instance by class) */
.b3d{height:var(--h)}
.b3d a{height:var(--h)}
.b3d .sz{display:block;height:var(--h);line-height:var(--h);padding:0 var(--px);font-size:var(--fs);font-weight:600}
.b3d svg text{font-size:var(--fs)}
.b3d.rxl{--fs:64px;--h:196px;--px:78.5px}
.b3d.md{--fs:24px;--h:90px;--px:32px}
.b3d.sm{--fs:16px;--h:70px;--px:34.5px}
@media (max-width:999px){.b3d.rxl{--fs:34px;--h:115px;--px:48px}}
@media (max-width:690px){.b3d.rxl{--fs:16px;--h:70px;--px:34.5px}}

/* Team Passion block on the pricing page */
.tp .bx{padding:25.4px 1.23% 0}
.tp .tphead{width:50%;margin:0 0 70px}
.tp .tph1{font:700 115px/124.2px var(--rc);color:#1a7a00;text-align:center;margin:0 0 24px}
.tp .tphead h6{text-align:center;text-transform:none}
.tpcar .fb2 .inn>div{width:max-content;max-width:100%}
.tp .tpt .pcol ul{display:table;text-align:center}
/* His desktop offset pushes this heading off narrow screens. Chase ruled 2026-11-02 to fix it instead of copying it. */
@media (max-width:999px){.tp .tph1{font-size:60px;line-height:70px}.tp .tphead{width:100%;transform:none!important}}
.tpcar .nx{background:#fff;box-shadow:0 0 8px rgba(0,0,0,.08);color:#000;line-height:38px;padding:0;font-size:22px}
.tpcar .nx.pv[disabled]{visibility:hidden}
.tpcar .nx[disabled]{opacity:.3}
.prog-top{padding-top:40px}
.prow h1,.prow h2{margin:0}
.prow .hd-p{margin:0 0 24px}
.prow .balls{margin-top:21px}
.toggle.open>h3 a i{background:transparent;color:var(--green);border-color:var(--green)}
.toggle .inner-t>:last-child{padding-bottom:0}
.callband{background:var(--green);color:#fff}
.callband .callin{padding:3cqw}
.callband h2{color:#fff;margin:0 0 24px}
.loc .map{position:relative}
.loc .map .attr{position:absolute;right:0;bottom:0;padding:0 5px;background:rgba(255,255,255,.7);color:#333;font:12px/18px "Helvetica Neue",Arial,Helvetica,sans-serif}
.loc .map .attr a{color:#005a80}
.loc.mid .txt{display:flex;align-items:center}
.loc.mid .txt .in{width:100%}
/* form rhythm (measured) */
.formmain{padding-top:84px}
.gfields{display:grid;gap:16px 0}
.gsec{padding:0 16px 8px 0;border-bottom:1px solid #ddd}
.gsec h3{border:0;padding:0;margin:0 0 8px}
.glabel{margin:0 0 6px}
.gsub{font-size:15px;line-height:26px;margin:0}
.ghtml h2{margin:0 0 7px}
.gdesc{margin:0}
.gdesc.consent{margin:12.8px 0 0}
.gf{padding:0 1% 24px}
.gsig{margin-bottom:40px}
.gsig .clr{right:2px;top:calc(100% + 6px);bottom:auto;width:20px;height:20px;font-size:17px;color:#888}
/* hero min-height excludes padding (measured: 765 + 2 x 11.25 at 375 wide) */
.hero{box-sizing:content-box}
.tdots{height:auto;min-height:32px;padding:0 8px}
@media (max-width:999px){
  .pbar{height:49px}
}
@media (max-width:999px){.intro .padr>.inner{padding:0}}

.hd60{text-align:center}
@media (max-width:999px){
  .hd60{text-align:left}
  .ptable .pcol,.ptable.three .pcol,.ptable.one .pcol{width:100%;float:none;margin:0 0 24px}
  .ptable{margin-top:60px}
}
/* Inspection 2026-11-02: his price-card titles drop to 20px between 691 and 999 (measured 20px/24px at 768) */
@media (min-width:691px) and (max-width:999px){.pcol h3{font-size:20px;line-height:24px}}
/* Inspection 2026-11-02: his 404 page (white, 250px "404", "Page Not Found", green Back Home pill) */
.nf{position:relative;display:block;padding:58px 0 283px;background:#fff;text-align:center}
.nf h1{font:700 250px/250px var(--rc);color:#444;margin:0 0 7px}
.nf h2{font:400 54px/50px var(--rc);color:#444;margin:0 0 50px}
.nf .nbtn.lg{background:var(--green);margin:0}
@media (max-width:999px){.nf h1{font-size:150px;line-height:150px}.nf h2{font-size:40px;line-height:44px}}

@media (max-width:999px){
  .cinfo{display:block;margin:0}
  .cinfo .a,.cinfo .b{width:100%;padding:0}
  .cinfo .a{text-align:left}
  .cinfo .a img{width:267px;max-width:100%}
  .coach .cimg{height:500px}
  .coach .cimg img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
}
@media (min-width:691px) and (max-width:999px){.tcell{width:60%}.strip .tile{width:50%}}
@media (min-width:691px) and (max-width:999px){.intro .padr>.inner{padding:0 16% 0 0}}
.pbar ul{width:100%}

/* =====================================================================================
   Polish 2026-11-02. Values from 11 - Audits & SEO/polish-audit-2026-11-02.md (the audit's
   values win where they differ from its test file) plus Chase's rulings C1 to C4, C6, C7.
   Appended so it wins the cascade. Same logo, green, navy, fonts, photos and words.
   ===================================================================================== */

/* D3 text size */
body{font-size:16px}
@media (max-width:999px){body{font-size:16px}}
.hbox p,.pcol .int{font-size:inherit}
.pcol li{line-height:22px}
.pbarx .bw strong{font-size:13px}

/* D1 hero fits the first screen (svh lines are for phone address bars) */
.hero{box-sizing:border-box;min-height:calc(100vh - var(--hdr) - 66px);min-height:calc(100svh - var(--hdr) - 66px);padding:24px 0}
.hero .stroke{width:auto;height:auto;max-height:max(220px,calc(100vh - var(--hdr) - 356px))}
@media (max-width:999px){
  .hero{min-height:calc(100vh - var(--hdr) - 49px);min-height:calc(100svh - var(--hdr) - 49px)}
  .hero .stroke{width:864px;max-height:none}
}
/* hero video: the video file is only requested by site.js where it shows. The still is always there. */
/* D25 reduced motion: no video, the still instead. Headline box a little darker. */
.hero .tbox>.inner{background:rgba(0,0,0,.45)}
@media (prefers-reduced-motion:reduce){.hero .bgvid{display:none}}

/* D9 green text on white now passes; C1 page bar */
.nav>ul>li>a{color:#007a3d;font-size:19px}
.nav>ul>li.social>a,.nav>ul>li.social:hover>a{color:#007a3d}
.nav>ul>li.cur>a,.nav>ul>li:hover>a,.nav>ul>li:focus-within>a,.nav>ul>li.social>a:hover{color:#27286b}
.nav>ul>li.btn>a,.nav>ul>li.btn:hover>a{color:#fff}
.sub a{color:#27286b}
.sub a:hover{color:#007a3d}
.sub a[aria-current]{color:#007a3d;text-decoration:underline;text-underline-offset:4px}
.inner-t a:not(.nbtn){color:var(--navy)}
.toggle.open>h3 a,.toggle>h3 a:hover{color:var(--navy)}
.toggle.open>h3 a i{color:var(--navy);border-color:var(--navy)}
#footer .row{color:#595959}
.pbar li a{opacity:1;font-weight:600;color:var(--navy)}
.pbar li a:hover{text-decoration:underline;text-underline-offset:4px}

/* D10 white-on-green bands and buttons */
.callband,.btnband{background:#007a3d}
.nbtn{background:var(--navy);font-size:14px}
.gsubmit{background:var(--navy)}
.nf .nbtn.lg{background:var(--navy)}
@media (max-width:690px){.b3d.rxl{--fs:19px;--h:70px;--px:16px}.b3d .sz,.b3d text{font-weight:700}}

/* C4 phone glyph in the header (phones only) and D15 bigger header on phones */
.hphone{display:none}
@media (max-width:999px){
  :root{--hdr:60px}
  #header{padding:8px 0}
  #header .in{height:44px}
  #logo,#logo img{height:44px}
  .burger:after{content:"";position:absolute;inset:-12px}
  .hphone{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0 14px 0 auto;color:#007a3d}
  .hphone .fa{font-size:22px;line-height:22px}
}

/* D17 anchors land below the header and the bar */
html{scroll-padding-top:var(--hdr)}
html:has(.pbar){scroll-padding-top:calc(var(--hdr) + 66px)}
@media (max-width:999px){html:has(.pbar){scroll-padding-top:calc(var(--hdr) + 49px)}}

/* D4 phone page bar is a swipeable row; D22 desktop bar */
.pbar-ph{margin-bottom:0}
.prog-top{padding-top:0}
.prog-top .wrap{max-width:none;width:100%}
.pbar a[aria-current]{text-decoration:underline;text-underline-offset:4px}
@media (max-width:999px){
  .pbar ul{display:flex;position:static;overflow-x:auto;scrollbar-width:none}
  .pbar ul::-webkit-scrollbar{display:none}
  .pbar li{flex:none;margin:0}
  .pbar li:first-child{margin-left:auto}
  .pbar li:last-child{margin-right:auto}
  .pbar li a{padding:11px 14px;border-top:0;white-space:nowrap}
}
@media (min-width:1000px){
  .pbar li{margin-right:22px}
  .prow .ptext{display:flex;flex-direction:column;justify-content:center}
}
@media (min-width:1000px) and (max-width:1500px){
  .pbar ul{display:flex;overflow-x:auto;scrollbar-width:none}
  .pbar ul::-webkit-scrollbar{display:none}
  .pbar li{flex:none}
  .pbar li:first-child{margin-left:auto}
  .pbar li:last-child{margin-right:auto}
}
.prow .ptext.ctr{text-align:left}

/* D5 phone menu: scrolls, readable, shows which groups expand */
#sidewidgetarea{align-items:flex-start;overflow-y:auto;padding:84px 24px 40px 50px}
#sidewidgetbg{background:#007a3d}
#sidewidgetarea .menu>li.cur>a{color:#fff}
#sidewidgetarea .menu>li.cur>a:after{background:#fff}
#sidewidgetarea .sub-m a{font-size:19px}
#sidewidgetarea .sub-m a[aria-current]{text-decoration:underline}
#sidewidgetarea .osoc a{padding:10px 14px;height:44px}
#sidewidgetarea .menu>li.has>a:before{content:"\f107";position:absolute;left:100%;top:0;margin-left:8px;font:18px/30px FontAwesome;transition:transform .2s}
#sidewidgetarea .menu>li.open>a:before{transform:rotate(180deg)}

/* D12 photo strip */
.strip .tile:after{background:rgba(39,39,39,.2)}
@media (max-width:690px){.strip .tile{width:50%;height:280px}}

/* D20 intro and program boxes */
.intro .t{margin-top:20px}
.hbox p{opacity:.85}
@media (max-width:999px){
  .hbox{padding:22px 0}
  .hbox .in2{min-height:0}
  .fbrow>.col{padding:0;margin:0}
  .fbrow{margin:0}
}

/* D8 testimonials */
.tcell{font-weight:400}
.tcell .yr{opacity:1}
.tcell .oq,.tcell .cq{font-size:inherit}
.tdots{padding:0}
.tdots button{opacity:.55}
@media (max-width:690px){
  .tdots button{width:24px}
  .tcell .card{padding:28px 24px}
  .tcell p{margin-top:16px;font-size:18px;line-height:29px}
  .tcell .stars{margin-top:14px}
}

/* D19 map and credit */
@media (max-width:999px){.loc>.half.mapc{height:360px}}
.loc .map .attr{background:rgba(255,255,255,.9)}

/* D6 programs on phones: heading, text, balls, then the photo */
@media (max-width:999px){.prow{display:flex;flex-direction:column}.prow>.ptext{order:-1}}
@media (max-width:690px){
  .prow .balls{display:flex;margin:21px -1% 0}
  .prow .balls span{width:25%;padding:0 1%}
  .prow .balls img{width:78px;max-width:100%}
  .prow .pimg .sp{height:min(var(--ph,500px),112vw)}
}

/* D7 pricing cards */
.pcol h3{line-height:42px}
.pcol ul{margin-bottom:0}
.pcol li{position:relative;padding-left:25px}
.pcol li .fa{position:absolute;left:0;top:10px;margin:0}
@media (max-width:999px){.hd60{text-align:center}.ptable{margin-top:24px;padding:0}}
@media (max-width:690px){
  .pcol{padding:28px 24px}
  .pcol h3{font-size:24px;line-height:29px;padding:0 0 10px}
  .pcol ul{padding:10px 0 0}
}
/* C7 the two form buttons under the "How to get started" card (his own pill, same words) */
.pstart{margin-top:24px}
.pstart .nbtn{margin:0 6px 10px}

/* D13 Team Passion heading and line */
.tp .tphead{position:relative;z-index:1}
.tp h6{color:var(--navy)}
@media (max-width:999px){.tp .bx{padding:24px 12px 12px}}

/* D14 carousel: arrows below the cards, never over words */
.tpcar{padding-bottom:56px}
.tpcar .nx{top:auto;bottom:0;margin:0;right:calc(50% - 48px);width:44px;height:44px}
.tpcar .nx.pv{right:auto;left:calc(50% - 48px)}
.tpcar p{opacity:1}
.tpcar .fb2{height:300px}
.tpcar .fb2 .inn{align-items:flex-start;min-height:0}
@media (max-width:999px){
  .tpcar .cell{width:100%}
  .tpcar .fb2{height:auto;min-height:240px}
  .tpcar .fb2 .inn{padding:32px 24px}
}

/* D21 pricing cards line up under their headings on wide screens */
.tp .tpt .pcol ul{display:block;text-align:left}
.ptable.three+.ptable.three{margin-top:24px}
@media (min-width:1000px){
  .ptable.one .pcol{float:none;margin:0 auto}
  .pband .ptable:not(.one):not(.three) .pcol,.tp .tpt .pcol{float:none;width:fit-content;min-width:31%;margin:0 auto}
  .ptable.three{display:flex;justify-content:space-between}
  .ptable.three::after{display:none}
  .ptable.three .pcol{width:31%;margin:0;float:none}
}

/* D16 forms (the release form and the sponsor form share these parts) */
.gin,.gdate .gin{font-size:16px;border:1px solid #8c8c8c}
.gin::placeholder{color:#595959}
textarea.gin{height:auto;min-height:140px;resize:vertical}
.gcomplex>span,.gfield [role=group]>div:not(.gcomplex):not(.gch){display:flex;flex-direction:column-reverse}
.gsub{padding:0 0 4px}
.gch input{width:20px;height:20px;flex:none}
.gsig canvas{border-color:#8c8c8c}
.gsig .clr{width:44px;height:44px;right:0}
.ghtml{margin-top:24px}
.ghtml p,.gdesc{max-width:780px}
.gdesc.consent{max-height:none;overflow:visible;font-size:14px;line-height:22px}
.gfoot{align-items:flex-start;flex-wrap:wrap}
@media (max-width:690px){.gfoot{display:block}.gnote{margin:8px 0 0}}

/* D18 coaches */
.coach h5{color:#595959}
@media (max-width:999px){
  .cinfo .a img{width:140px}
  .ful li{left:0;padding-left:26px}
  .ful li:before{padding-left:0;text-align:left}
}

/* D24 footer touch targets. The footer credit is gone (Chase, 2026-11-02), so the icons sit alone. */
#footer .soc li+li{margin-left:0}
#footer .soc a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
@media (min-width:1000px){#footer .soc{margin-left:auto}}
@media (max-width:999px){#footer .soc{height:44px;margin-left:-14px}}
.inner-t a:not(.nbtn){display:inline-block;padding:13px 0}

/* D26 tablet */
@media (min-width:691px) and (max-width:999px){
  .prow .pimg .sp{height:min(var(--ph,500px),75vw)}
  #participation .pimg img{object-position:50% 12%}
  .pcol{padding:32px}
  .pcol h3{line-height:28px;padding:0 0 10px}
  .pcol ul{padding:10px 0 0}
  .coach .cimg img{object-position:50% 12%}
}

/* Overflow fixes found while measuring (both were 3 to 4 px of sideways scroll before this polish):
   the big Home button scaled down between 1000 and 1254 wide, and the thank-you and 404 rows at 320. */
@media (min-width:1000px) and (max-width:1254px){.b3d.rxl{--fs:5.1vw;--h:15.7vw;--px:6.2vw}}
.ty .cols,.nf .cols{margin:0}
/* The close X stays on screen while the phone menu list scrolls under it. */
#sidewidgetarea .swclose{position:fixed}
/* =====================================================================================
   Second pass 2026-11-03. Items V1 to V15 (review-visual-2026-11-03.md), T7, T10, T15
   (review-technical-2026-11-03.md) and P6, P7, P9 (review-conversion-2026-11-03.md),
   appended so they win the cascade. Same logo, green, navy, fonts, photos and words.
   ===================================================================================== */

/* V1 phone hero: the ball plays in open court. The still takes the same crop as the video so the two line up. */
@media (max-width:690px) and (orientation:portrait){
  .hero{padding:6px 0 16px}
  .hero>.wrap,.hero .cols{flex:1;display:flex;flex-direction:column}
  .hero .cols{justify-content:space-between}
  .hero .cols::before,.hero .cols::after{display:none}
  .hero .cols>.col{margin-bottom:0}
  .hero .bgvid,.hero .bgimg img{object-position:50% 100%}
}
/* V2 laptop logo */
@media (min-width:1000px){
  .hero{padding:12px 0}
  .hero .pad2:first-child>.inner{padding-top:4px;padding-bottom:16px}
  .hero .tbox>.inner{padding-top:16px;padding-bottom:16px}
  .hero .stroke{max-height:max(220px,min(calc(100vh - var(--hdr) - 269px),calc(82vh - 243px)))}
}
/* V3 focus ring on the dark pricing band (the field focus ring is with .gin above, T8) */
.pband .nbtn:focus-visible{outline-color:#fff}
/* V5 pricing heading gap */
.pstart{margin-bottom:54px}
/* V6 price rows line up */
@media (min-width:1000px){.ptable.three .pcol h3{font-size:28px;line-height:36px;min-height:72px;padding:0 0 10px;box-sizing:content-box}}
@media (min-width:1000px) and (max-width:1365px){.ptable.three .pcol{padding:40px 32px}.ptable.three .pcol h3{font-size:24px;line-height:32px;min-height:64px}}
@media (min-width:691px) and (max-width:999px){.pcol h3{font-size:24px}}
/* V7 programs bar on small laptops. The review's break points assumed 10 items; Pricing (P2) is the 11th, so the
   ranges are moved up to the measured widths: 11 items need 1370 px at the full gap, 1250 at 10 px and 1128 at 6 px with 13 px text. */
@media (min-width:1000px) and (max-width:1399px){.pbar li{margin-right:10px}}
@media (min-width:1000px) and (max-width:1259px){.pbar li{margin-right:6px}.pbar li a{font-size:13px}}
/* V8 programs rhythm on phones: each photo closer to its own text */
@media (max-width:999px){.prow .ptext>.pin{padding-top:14cqw;padding-bottom:6cqw}}
/* V9 sponsor form in two columns on wide screens */
@media (min-width:1000px){.gfields:has(#sp-msg){grid-template-columns:1fr 1fr;gap:16px 24px;align-items:end}.gfields:has(#sp-msg)>.gfield:last-child{grid-column:1/-1}}
/* V10 and P6 footer: next-step row centered above the social row */
#footer .row{padding:10px 0}
#footer .row .wrap{display:block;height:auto}
.ftnext{display:flex;flex-wrap:wrap;justify-content:center;gap:0 20px;margin:0}
.ftnext a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--navy)}
#footer .soc{margin:0;height:44px;justify-content:center}
/* V11 intro logo on phones */
@media (max-width:690px){.intro .logo{width:220px}}
/* V12 form edge lines up with the heading */
.gf{padding-left:0;padding-right:0}
/* V13 carousel back arrow shows from the start */
.tpcar .nx.pv[disabled]{visibility:visible}
/* V14 landscape phones */
@media (max-width:999px) and (orientation:landscape){.hero .stroke{width:auto;max-height:max(150px,calc(100vh - var(--hdr) - 49px - 170px))}}
/* V15 phone menu first icon */
#sidewidgetarea .osoc li:first-child a{padding-left:14px;margin-left:-14px}

/* T7 no-JavaScript view: testimonials and FAQ answers readable, menu opens from the burger link */
html:not(.js) .toggle>.tb{display:block}
html:not(.js) #sidewidgetarea:target{visibility:visible;opacity:1;transform:none;z-index:10001;background:#007a3d}
/* T10 Escape closes a desktop dropdown */
.nav li.has.shut>.sub{opacity:0;visibility:hidden}
/* T15 short screens: the page bar scrolls away instead of covering the view */
@media (max-height:480px){.pbar.stuck{position:relative;top:auto}html:has(.pbar){scroll-padding-top:var(--hdr)}}

/* P4 the "level assessment" link in the FAQ stays in the line of text */
.toggle .inner-t a.inl{display:inline;padding:0;text-decoration:underline}
/* P7 phone number in the Home location block */
.hometel a{color:#fff;text-decoration:underline;text-underline-offset:4px;display:inline-block;padding:6px 0}
/* P9 phone menu number is a 44 px target */
#sidewidgetarea .menu>li>a[href^="tel:"]{display:inline-block;padding:7px 0}

/* Readability pass 2026-11-03: every small label and helper line up to a comfortable size. Colors are changed where they are set, above. */
.phead .sub-h{font-weight:400}
.gin,.gdate .gin{font-size:16px;color:#333}
.gsub,.gch label,.gdesc,.gdesc.consent,#gnote{font-size:16px;line-height:24px}
.gch label{line-height:26px}
.glabel .req{font-size:14px}
.tcell .yr{font-size:16px}
.pbarx .bw strong{font-size:14px}
.nbtn,.nbtn.lg{font-size:15px}
.tp .tphead h6{font-size:16px;line-height:24px}
.loc .map .attr{font-size:13px}
@media (max-width:999px){.pbar li a{font-size:15px}}

/* Third pass 2026-11-03: first-step line and text links (P3, P5). These wait on Matt confirming the number takes texts. */
.tlink{color:inherit;text-decoration:underline;text-underline-offset:.12em}
.intro .t .fstep{margin-top:14px}
@media (hover:hover) and (pointer:fine){.smsrow{display:none}.tlink[href^="sms:"]{pointer-events:none;text-decoration:none}}

/* =====================================================================================
   Pin fixes 2026-11-03 (Chase's review pins A to H). Appended so it wins the cascade.
   ===================================================================================== */

/* A Home testimonial slider: sideways drag, swipe and trackpad scroll. pan-y keeps vertical scrolling with the browser
   and hands sideways moves to site.js (without it a phone swipe was taken by the browser and cancelled). */

/* B Testimonials page: every testimonial at once, 3 columns from 1280, 2 from 768, 1 on phones */
.tgband{padding:max(48px,5vw) 0}
.tgwrap{position:relative;z-index:100;max-width:1425px;margin:0 auto;padding:0 90px}
@media (max-width:999px){.tgwrap{padding:0 40px}}
@media (max-width:690px){.tgwrap{padding:0 20px}}
.tfilter{margin:0 0 28px;text-align:center}
.tbtns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.tbtns button{min-width:44px;min-height:44px;padding:0 24px;border:2px solid #fff;border-radius:200px;background:transparent;color:#fff;font:600 15px/20px var(--ms);text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s}
.tbtns button:hover{background:rgba(255,255,255,.2)}
.tbtns button[aria-pressed=true]{background:#fff;color:var(--navy)}
.tbtns button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.tcount{margin:14px 0 0;padding:0;color:#fff;font-size:16px;line-height:24px}
.tgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
@media (min-width:768px){.tgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.tgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tgrid>li[hidden]{display:none}
.tg{display:flex;min-width:0}
.tg .card{display:flex;flex-direction:column;width:100%;margin:0;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:32px;text-align:left;color:var(--text);font-size:16px;line-height:26px;font-weight:400}
.tg .nm{display:block;font-size:16px;line-height:22px}
.tg .yr{display:block;font-size:16px;line-height:22px}
.tg p{flex:1;margin:20px 0 18px;padding:0;font-size:17px;line-height:29px}
.tg .oq,.tg .cq{font-size:inherit}
.tg .stars{display:block;position:relative;width:110.8px;height:22px;overflow:hidden;font-size:16px;line-height:22px}
.tg .stars:before{content:"\f005\f005\f005\f005\f005";font:16px/22px FontAwesome;letter-spacing:7.3px;background:linear-gradient(90deg,#00b34f,#009148);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
@media (max-width:690px){.tg .card{padding:24px 22px}}

/* C Contact page */
.cband{padding:max(40px,5vw) 0;background:#fff}
.cband .h2-look{margin:0 0 21px}
.cbtns{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0}
.cbtns .nbtn{margin:0}
.cmail{margin:0;padding:0}
.cmail a{display:inline-block;padding:10px 0;font:600 20px/28px var(--os);color:var(--navy);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}

/* D map links in the location block (outline pills read on the dark overlay) */
.maplinks{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 21px;padding:0}
.nbtn.ol{margin:0;background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #fff;min-height:44px}
.nbtn.ol:hover{background:#fff;color:var(--navy);opacity:1}
.nbtn.ol:focus-visible{outline:3px solid #fff;outline-offset:3px}

/* E FAQ answer pills: the "last child has no bottom padding" rule above was also stripping the pill's own padding */
.toggle .inner-t>.nbtn:last-child{padding-bottom:12px}

/* G Release form: print button (needs JavaScript, so it is hidden without it) */
.printrow{margin:0 0 20px;padding:0}
.printbtn{display:none;border:0;cursor:pointer}
.js .printbtn{display:inline-block}
html:not(.js) .printrow{display:none}
@media print{
  @page{size:letter;margin:.5in}
  html,body{background:#fff!important;color:#000!important}
  body{display:block;min-height:0;overflow:visible;font-size:11pt;line-height:1.35}
  #wrap{display:block;position:static;min-height:0;transform:none!important;background:#fff}
  #header,#header-space,.pbar-ph,#footer,#sidewidgetarea,#sidewidgetbg,.skip,.phead .pbg,.phead .pov,.printrow,.gfoot,.gsig .clr{display:none!important}
  .phead{height:auto;overflow:visible;background:#fff}
  .phead .ptxt{height:auto}
  .phead .ptxt .wrap{display:block;height:auto;max-width:none;width:auto;padding:0}
  .phead h1{color:#000;font-size:24pt;line-height:1.2;margin:0 0 4pt}
  .phead .sub-h{color:#000;font-size:12pt;line-height:1.3}
  .formmain{max-width:none;width:auto;padding:14pt 0 0}
  .gf{padding:0}
  .gfields{gap:10pt 0}
  .gfield{break-inside:avoid}
  .gsec{break-after:avoid;padding:0;border-bottom:1px solid #000}
  .gsec h3{color:#000;font-size:12pt;line-height:1.3;letter-spacing:.5pt;margin:0 0 4pt}
  .glabel{margin:0 0 3pt;color:#000;font:600 10pt/1.3 Arial,sans-serif}
  .glabel .req{color:#000;font-size:8pt}
  .gin,.gdate .gin{height:26pt;padding:4pt 6pt;border:1px solid #000;border-radius:0;background:#fff;color:#000;font-size:11pt;-webkit-appearance:none;appearance:none}
  .gin::placeholder{color:#666}
  .gdate .gin{width:60pt}
  .gcomplex>span+span{margin-left:14pt}
  .gsub{color:#000;font-size:9pt;line-height:1.3;padding:2pt 0 0}
  .gch label{color:#000;font-size:10.5pt;line-height:1.3}
  .gch input{width:13pt;height:13pt}
  .ghtml{margin-top:8pt}
  .ghtml h2{color:#000;font-size:15pt;line-height:1.2;margin:0 0 4pt}
  .ghtml p{padding-bottom:6pt;max-width:none;font-size:9.5pt;line-height:1.35;color:#000}
  .gdesc,.gdesc.consent{max-width:none;color:#000;font-size:9pt;line-height:1.3}
  .gdesc.consent{border:1px solid #000;padding:5pt 6pt}
  .gsig{width:2.5in;height:1.5in;margin-bottom:10pt;break-inside:avoid}
  .gsig canvas{width:2.5in;height:1.5in;border:1px solid #000;background:#fff}
}

/* F Programs rows (wide screens only; phone spacing from V8 is untouched): the last text block carried a 24 px bottom margin
   inside the padded text box, so rows that end in text sat 12 px above centre. Rows that end in a video or the ball pictures had no such margin. */
@media (min-width:1000px){
  .prow .pin>.hd-p:last-child{margin-bottom:0}
  .prow .pin>.hd-p:last-child .lead{margin-bottom:0}
}

/* Contact page: its buttons are most of the page's text, so they are 16 px */
body.contact .nbtn{font-size:16px}

/* Home testimonials: a native scroller. --tw is one card's width, --tp centers the cards. */
.tslider{--tw:41%;--tn:2}
.tslides{display:flex;height:auto;overflow-x:auto;overflow-y:hidden;padding:0 calc((100% - var(--tw)*var(--tn))/2);scroll-padding:0 calc((100% - var(--tw)*var(--tn))/2);scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:auto;cursor:grab}
.tslides::-webkit-scrollbar{display:none}
.tslides .tcell{position:static;flex:0 0 var(--tw);width:auto;height:auto;scroll-snap-align:start;transform:none;transition:none}
.tslider.dragging .tslides{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none}
.tslider .tdots{position:static;height:auto;margin:20px 0 0}
@media (min-width:691px) and (max-width:999px){.tslider{--tw:60%;--tn:1}}
@media (max-width:690px){.tslider{--tw:85.44%;--tn:1}}
/* snapping fights a trackpad: a slow sideways scroll would spring back, so only touch screens snap */
@media (hover:hover) and (pointer:fine){.tslides{scroll-snap-type:none}}
/* Passion Fitness: a link to the video instead of an embedded box */
.prow .vidlink{margin:0;padding:0}
.prow .vidlink .nbtn{margin:0}

/* Forms wired 2026-11-04: validation errors, send state, no-JavaScript note. All hidden in print. */
.gerr{margin:6px 0 0;padding:0;font:600 16px/24px var(--os);color:#c02b0a}
.gf [aria-invalid=true]{border-color:#c02b0a;outline:2px solid #c02b0a;outline-offset:1px;scroll-margin-top:150px}
.gf canvas[aria-invalid=true]{border-style:solid}
.gsenderr[hidden]{display:none}
.gnojs{display:none;margin:0 0 8px;padding:15px 0;font:600 16px/24px var(--os);color:#c02b0a}
html:not(.js) .gnojs{display:block}
@media print{.gerr,.gsenderr,.gnojs,.hp{display:none!important}}

/* 2026-11-06: phone print fallback, registration form page */
.printhint{display:block;margin:10px 0 0;font:400 15px/22px var(--os);color:#333}
.printhint[hidden]{display:none}
.regpaper{margin:0 0 24px;font:400 16px/26px var(--os)}
.regpaper a{color:var(--navy);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.regnote{margin:0 0 12px}
.regday .gch{margin-top:6px}
.regpolicy p{margin:0 0 12px;font:400 15px/24px var(--os)}
@media print{.printhint,.regpaper{display:none!important}}
