:root{--blue:#073ECF;--orange:#FF5C1A;--ink:#0A0A0A;--paper:#F2F0EC;--soft:rgba(10,10,10,.62);--line:rgba(10,10,10,.14);
--font:"Barlow",Arial,Helvetica,sans-serif;--cond:"Barlow Condensed","Arial Narrow",Arial,sans-serif;--gap:clamp(96px,15vw,200px);
color-scheme:light;box-sizing:border-box;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--paper)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;text-align:center}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
h1,h2,h3{margin:0;font-family:var(--cond);font-weight:700;text-transform:uppercase}
h1{font-size:clamp(40px,10vw,160px);overflow-wrap:anywhere;line-height:.92;letter-spacing:.01em}
h2{font-size:clamp(42px,7vw,86px);line-height:.98;letter-spacing:.02em}
h3{font-size:clamp(24px,3vw,32px);line-height:1.15;letter-spacing:.08em}
p{margin:0}

/* header */
.top{position:fixed;left:0;right:0;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(20px + env(safe-area-inset-top,0px)) clamp(22px,5vw,64px) 20px;transition:background .3s}
.mark{font-family:var(--cond);font-weight:700;font-size:21px;letter-spacing:.14em;text-decoration:none;color:var(--paper)}
.menu-btn{font:700 16px var(--cond);letter-spacing:.14em;text-transform:uppercase;background:none;border:0;padding:10px 0 10px 16px;cursor:pointer;color:var(--paper);display:flex;align-items:center;gap:12px}
.menu-btn span{display:block;width:26px;height:2px;background:currentColor;position:relative}
.menu-btn span::after{content:"";position:absolute;left:0;top:7px;width:26px;height:2px;background:currentColor}
.navdesk{display:none;gap:30px;align-items:center}
.navdesk a{text-decoration:none;font-family:var(--cond);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:16px;color:var(--paper)}
.navdesk a[aria-current]{color:var(--orange)}
@media (min-width:1080px){.navdesk{display:flex}.menu-btn{display:none}}
.top.solid,.plain .top{background:rgba(242,240,236,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.top.solid .mark,.plain .top .mark{color:var(--blue)}
.top.solid .menu-btn,.plain .top .menu-btn,.top.solid .navdesk a:not(.btn),.plain .top .navdesk a:not(.btn){color:var(--ink)}
.top .navdesk a[aria-current]{color:var(--orange)}

/* menu */
.overlay{position:fixed;inset:0;z-index:40;background:var(--blue);color:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(80px + env(safe-area-inset-top,0px)) 24px calc(40px + env(safe-area-inset-bottom,0px));opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.overlay.open{opacity:1;visibility:visible}
.overlay a{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(30px,8.5vw,46px);line-height:1.45;text-decoration:none}
.overlay a[aria-current]{color:var(--orange)}
.overlay .small{font-size:18px;letter-spacing:.14em;margin-top:28px;opacity:.75}
.close{position:absolute;top:calc(20px + env(safe-area-inset-top,0px));right:clamp(22px,5vw,64px);font:700 16px var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:none;border:0;padding:10px 0;cursor:pointer}

/* buttons */
.btns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:230px;padding:19px 34px;border-radius:999px;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:17px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn-orange{background:var(--orange);color:var(--ink)}
.btn-orange:hover{background:var(--ink);color:var(--paper)}
.btn-line{border-color:currentColor;background:transparent}
.btn-line:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.bg .btn-line:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.btn-paper{background:var(--paper);color:var(--blue)}
.btn-paper:hover{background:var(--orange);color:var(--ink)}
.navdesk .btn{min-width:0;padding:12px 24px;font-size:15px}

/* photo backgrounds */
.bg{position:relative;background-size:cover;background-position:center;color:var(--paper)}
.bg::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(10,10,10,.55),rgba(10,10,10,.35) 45%,rgba(10,10,10,.62))}
.bg>*{position:relative}
.img-evening{background-image:url("images/reformer-room-evening.jpg");background-position:50% 60%}
.img-day{background-image:url("images/reformer-room-day.jpg");background-position:50% 55%}
.img-mat{background-image:url("images/mat-room.jpg");background-position:40% 60%}
.img-lockers{background-image:url("images/lockers.jpg");background-position:50% 60%}
.img-mattrainer{background-image:url("images/mat-trainer.jpg");background-position:40% 45%}
.img-matmirror{background-image:url("images/mat-mirror.jpg");background-position:50% 45%}
.img-refmirror{background-image:url("images/reformer-mirror.jpg");background-position:60% 55%}
.img-matsession{background-image:url("images/mat-session.jpg");background-position:50% 55%}
.img-refweights{background-image:url("images/reformer-weights.jpg");background-position:45% 50%}
.img-refclose{background-image:url("images/reformer-closeup.jpg");background-position:45% 45%}
.img-handson{background-image:url("images/hands-on.jpg");background-position:55% 60%}
.img-family{background-image:url("images/family-day.jpg");background-position:50% 50%}
.img-people{background-image:url("images/friends-and-family.jpg");background-position:60% 50%}

/* heroes */
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:150px 24px 120px}
.hero h1 .line{display:block}
.sub{margin:40px auto 0;max-width:26ch;font-size:clamp(19px,2.2vw,24px);line-height:1.45;font-weight:500}
.where{margin:16px 0 0;font-size:16px;opacity:.75}
.hero .btns{margin-top:48px}
.phero{min-height:82svh}
.ptitle{padding:calc(170px + env(safe-area-inset-top,0px)) 24px clamp(70px,10vw,120px)}
.ptitle h1{color:var(--blue)}
.ptitle .sub{color:var(--ink)}
@media (prefers-reduced-motion:no-preference){
 .rise{opacity:0;transform:translateY(18px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
 .d1{animation-delay:.3s}.d2{animation-delay:.7s}.d3{animation-delay:.85s}
}
@keyframes rise{to{opacity:1;transform:none}}

/* blocks */
.block{padding:var(--gap) 24px}
.block.tight{padding-top:0}
.intro{margin:28px auto 0;max-width:34ch;color:var(--soft);font-size:clamp(18px,1.8vw,21px)}
.points{list-style:none;margin:clamp(80px,11vw,140px) auto 0;padding:0;max-width:640px;display:grid;gap:clamp(72px,9vw,120px)}
.block>.points:first-child{margin-top:0}
.points h3{margin:0 0 14px;color:var(--blue)}
.points p{margin:0 auto;max-width:34ch;color:var(--soft)}
.band{min-height:88svh;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:var(--gap) 24px clamp(80px,10vw,130px)}
.band::before{background:linear-gradient(180deg,rgba(10,10,10,0) 25%,rgba(10,10,10,.66))}
.band h2{font-size:clamp(52px,9.5vw,124px);letter-spacing:.03em}
.band p{margin:22px auto 0;max-width:32ch;font-size:clamp(18px,1.9vw,22px);opacity:.92}
.band .btns{margin-top:40px}
.offer{padding:var(--gap) 24px;background-color:var(--blue)}
.offer::before{background:rgba(7,62,207,.84)}
.terms{margin:36px 0 48px;font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:clamp(20px,2.4vw,26px)}
.note{margin:30px auto 0;max-width:32ch;font-size:16px;opacity:.72}
.fine{margin:40px auto 0;max-width:40ch;font-size:15px;color:var(--soft)}
.fine a{color:var(--blue)}

/* prices */
.prices{display:grid;gap:clamp(70px,9vw,110px);max-width:900px;margin:0 auto}
@media (min-width:760px){.prices{grid-template-columns:1fr 1fr;gap:0}.prices>div+div{border-left:1px solid var(--line)}}
.prices h3{color:var(--blue)}
.price{font-family:var(--cond);font-weight:700;font-size:clamp(84px,12vw,128px);line-height:1;margin:22px 0 4px;letter-spacing:.01em}
.per{color:var(--soft);margin-bottom:34px}
.founding{margin:0 auto clamp(70px,9vw,110px);max-width:36ch;color:var(--soft)}
.founding strong{display:block;font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;color:var(--orange);font-size:17px;margin-bottom:10px}

/* schedule */
.facts{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;margin:34px auto 0;max-width:720px;font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:17px;color:var(--ink)}
.plug{max-width:980px;margin:0 auto;text-align:left;min-height:200px}
.plug-hold{border:1px dashed var(--line);padding:70px 24px;text-align:center;color:var(--soft)}

/* form */
.form{max-width:560px;margin:56px auto 0;display:grid;gap:22px;text-align:left}
.form label{display:block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:15px;margin-bottom:8px}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:17px;padding:16px 18px;border:1px solid rgba(242,240,236,.4);background:rgba(242,240,236,.08);color:var(--paper);border-radius:12px}
.form select option{color:var(--ink)}
.form textarea{min-height:120px;resize:vertical}
.form .btns{justify-content:center;margin-top:10px}
.sent{display:none;margin-top:40px;font-size:20px}

/* faqs */
.faqs{max-width:720px;margin:0 auto;text-align:left;border-top:1px solid var(--line)}
.faqs details{border-bottom:1px solid var(--line)}
.faqs summary{list-style:none;cursor:pointer;padding:30px 44px 30px 0;position:relative;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(21px,2.6vw,26px);line-height:1.2}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:32px;color:var(--blue);transition:transform .2s}
.faqs details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faqs details p{padding:0 0 32px;color:var(--soft);max-width:56ch}
.faqs details p a{color:var(--blue)}

/* footer */
footer{padding:clamp(90px,12vw,140px) 24px calc(56px + env(safe-area-inset-bottom,0px))}
.flogo{width:min(130px,32vw);height:auto;margin:0 auto 10px}
footer .mark{color:var(--blue);font-size:24px}
footer address{font-style:normal;margin:22px 0 6px}
footer .hours{color:var(--soft)}
.flinks{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 28px;margin:44px auto 0;max-width:680px;font-size:16px}
.flinks a{text-decoration:none;color:var(--soft)}
.flinks a:hover{color:var(--blue)}
.legal{margin:44px 0 0;font-size:14px;color:rgba(10,10,10,.45)}

/* session styles */
.points .tag,.tag{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:16px;color:var(--orange)!important;margin:-4px auto 14px!important}
.style>p:not(.tag){color:var(--ink)!important}
.more{margin-top:22px}
.more summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:16px;color:var(--blue);padding:10px 4px;border-bottom:2px solid var(--blue)}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:"+";font-size:22px;line-height:1}
.more[open] summary::after{content:"\2212"}
.more .c,.more[open] .o{display:none}.more[open] .c{display:inline}
.more-body{text-align:left;margin:30px auto 0;max-width:520px;padding:30px 0 0;border-top:1px solid var(--line)}
.more-body h4{margin:0 0 12px;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:16px;color:var(--ink)}
.more-body ul{margin:0 0 30px;padding-left:20px;color:var(--soft)}
.more-body li{margin-bottom:10px}
.more-body p{color:var(--soft);max-width:none!important;margin:0!important}

/* optical centring: balance the trailing letter spacing on tracked capitals */
.tag{padding-left:.14em}
h1{padding-left:.01em}h2{padding-left:.02em}h3{padding-left:.08em}
.terms,.founding strong{padding-left:.12em}
.btn{padding-left:calc(34px + .14em)}
