:root{--yellow:#f1dc35;--bg:#111110;--ink:#f8f7f2;--muted:#c6c6bd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}header{max-width:1360px;margin:auto;padding:30px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{text-decoration:none;font-weight:900;letter-spacing:.02em;font-size:25px;line-height:1.1}.brand span{display:block;font-size:11px;letter-spacing:.16em;margin-top:9px;font-weight:500}.small-button{font-size:14px;text-decoration:none;border:1px solid #555;padding:10px 18px;border-radius:30px}.hero{max-width:1360px;margin:auto;padding:30px 5% 70px;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}.eyebrow{color:var(--yellow);font-size:13px;letter-spacing:.14em;font-weight:700}h1{font-size:clamp(46px,5.3vw,78px);line-height:1.02;letter-spacing:-.05em;margin:24px 0}em{color:var(--yellow);font-style:normal}.intro{max-width:480px;color:var(--muted);font-size:18px}.button{display:inline-block;text-decoration:none;background:var(--yellow);color:#131310;font-weight:700;border-radius:5px;padding:17px 25px;margin-top:18px;font-size:16px}.button:hover{background:#fff06b}.quiet{font-size:14px;color:var(--muted);margin-top:17px}.hero-photo{position:relative;height:570px}.hero-photo img{width:100%;height:100%;object-fit:cover;border-radius:160px 160px 8px 8px}.photo-label{position:absolute;bottom:24px;left:22px;background:#171711dd;border:1px solid #666;padding:10px 16px;border-radius:30px;font-size:14px}.strip{display:flex;justify-content:center;gap:7%;padding:20px;background:var(--yellow);color:#141412;font-size:13px;font-weight:800;letter-spacing:.06em}.offer,.faq{max-width:1240px;margin:auto;padding:90px 5%}.section-head{max-width:650px}h2{font-size:clamp(34px,4vw,54px);line-height:1.08;letter-spacing:-.035em;margin:18px 0 24px}h3{font-size:24px;line-height:1.2;margin:16px 0}.section-head>p:last-child{color:var(--muted);font-size:18px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:45px}.card{background:#20201d;border-radius:8px;overflow:hidden}.card img{width:100%;height:310px;object-fit:cover}.card>div{padding:25px}.card p{color:var(--muted)}.number{font-size:12px;letter-spacing:.1em;color:var(--yellow)}.tags{font-size:13px;border-top:1px solid #45453d;padding-top:18px}.studio{max-width:1240px;padding:25px 5% 85px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.studio img{width:100%;height:460px;object-fit:cover;border-radius:6px}.studio p{color:var(--muted)}.studio .eyebrow{color:var(--yellow)}.trial{background:#24251f;padding:80px max(5%,calc((100% - 1116px)/2));display:grid;grid-template-columns:1fr 1fr;gap:80px}.trial>div>p:not(.eyebrow){color:var(--muted);max-width:480px}.trial ol{list-style:none;padding:0;margin:10px 0}.trial li{display:flex;gap:24px;padding:20px 0;border-bottom:1px solid #535447}.trial li>span{color:var(--yellow);font-size:25px;font-weight:bold}.trial h3{margin:0;font-size:20px}.trial li p{margin:8px 0;color:var(--muted)}details{border-bottom:1px solid #45453d;padding:22px 0}summary{font-size:18px;cursor:pointer}details p{color:var(--muted);max-width:750px}.reservation{text-align:center;padding:65px 5% 90px;border-top:1px solid #36362f}.booking-note{color:var(--muted)}.secondary{background:none;border:1px solid var(--yellow);color:var(--yellow)}.secondary:hover{background:#29291e}footer{border-top:1px solid #36362f;max-width:1360px;margin:auto;padding:40px 5%;display:flex;justify-content:space-between;align-items:center;gap:30px}footer p,footer a{font-size:14px;color:var(--muted)}.mobile-cta{display:none}a:focus-visible,summary:focus-visible{outline:3px solid white;outline-offset:6px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media(max-width:800px){header{padding:24px 6%}.small-button{font-size:12px;padding:8px 12px}.brand{font-size:21px}.hero{padding:20px 6% 45px;gap:30px;grid-template-columns:1fr}.hero-photo{height:420px;max-width:480px;width:100%;margin:auto}.hero h1{font-size:clamp(42px,10vw,65px)}.strip{gap:12px;flex-wrap:wrap;font-size:11px}.offer,.faq{padding:55px 6%}.cards{grid-template-columns:1fr;margin-top:30px}.card img{height:330px}.studio{grid-template-columns:1fr;gap:25px;padding:0 6% 55px}.studio img{height:400px}.trial{grid-template-columns:1fr;padding:50px 6%;gap:25px}footer{flex-direction:column;align-items:flex-start;padding:35px 6% 100px;gap:10px}.mobile-cta{display:block;position:fixed;bottom:0;left:0;right:0;text-align:center;background:var(--yellow);color:#141412;padding:15px;font-weight:bold;text-decoration:none;box-shadow:0 -3px 20px #0005}.reservation{padding:50px 6%}.photo-label{font-size:13px}.intro{font-size:17px}}@media(min-width:801px) and (max-width:1000px){.hero{gap:30px}.hero-photo{height:490px}.cards{gap:15px}.card>div{padding:19px}.card img{height:250px}.trial{gap:35px}}
/* Campaign */
.campaign-hero{position:relative;min-height:740px;height:calc(100svh - 110px);max-height:1000px;overflow:hidden;background:#d940a2}.campaign-image{position:absolute;right:0;top:0;width:62%;height:100%;object-fit:cover;object-position:50% 28%}.campaign-shade{position:absolute;inset:0;background:linear-gradient(90deg,#da39a1 0%,#da39a1 28%,#da39a100 75%),linear-gradient(0deg,#1116,transparent 50%)}.campaign-copy{position:relative;z-index:1;padding:220px 6% 55px;max-width:1400px;margin:auto}.campaign-copy h1{font-size:clamp(48px,6.8vw,100px);letter-spacing:-.045em;line-height:.98;color:white;max-width:800px}.campaign-copy .eyebrow{color:white;letter-spacing:.14em}.campaign-copy>p:not(.eyebrow){font-size:22px;color:white;line-height:1.4}.campaign-copy .button{background:white;color:#15151b;min-width:300px;text-align:center;border-radius:0}.discount-badge{position:absolute;z-index:2;right:8%;top:40px;width:270px;height:270px;background:var(--yellow);color:#111;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;transform:rotate(7deg);box-shadow:0 10px 40px #0002}.discount-badge strong{font-size:74px;line-height:1.1;letter-spacing:-.07em}.discount-badge span{font-size:16px;font-weight:900;margin-top:12px}.deal{background:#f8f8f5;color:#1b1c21;text-align:center;padding:65px 6%;max-width:none}.deal .eyebrow{color:#a11271}.deal h2{font-size:clamp(36px,4vw,58px)}.deal-value{font-size:clamp(76px,10vw,130px);line-height:1;font-weight:900;margin:30px 0 10px;letter-spacing:-.065em}.deal-value span{display:block;font-size:22px;letter-spacing:.08em;margin-top:14px}.deal-description{font-size:20px}.friend-deal{max-width:740px;margin:35px auto 0;background:#f1dc35;padding:28px 40px;text-align:left;border-radius:0}.friend-label{font-size:13px;letter-spacing:.1em;font-weight:bold}.friend-deal h3{font-size:30px}.friend-deal p{font-size:18px;margin-bottom:0}.deal-details{max-width:740px;margin:0 auto;text-align:left;border-color:#ccc;padding:23px 0}.deal>.button{min-width:300px;border-radius:0;background:#191a20;color:white}.film-section{max-width:1240px;margin:auto;padding:75px 5% 0}.film-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:35px}.film-grid figure{margin:0}.film-grid video{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:6px;background:#222;display:block}.film-grid figcaption{font-size:17px;font-weight:700;padding:16px 0}.film-section .section-head p:last-child{color:var(--muted)}@media(max-width:800px){.campaign-hero{min-height:690px;height:calc(100svh - 94px);max-height:900px}.campaign-image{width:100%;object-position:50% 20%}.campaign-shade{background:linear-gradient(0deg,#ad1d78f5 0%,#a11a70cc 25%,#ca319080 45%,transparent 75%)}.campaign-copy{position:absolute;left:0;right:0;bottom:0;padding:20px 6% 32px}.campaign-copy h1{font-size:clamp(38px,10vw,66px);line-height:1;margin:16px 0}.campaign-copy .eyebrow{font-size:12px}.campaign-copy>p:not(.eyebrow){font-size:18px}.campaign-copy .button{width:100%;min-width:0;margin-top:8px}.discount-badge{width:180px;height:180px;right:5%;top:25px}.discount-badge strong{font-size:55px}.discount-badge span{font-size:12px}.deal{padding:45px 6%}.deal>.button{width:100%;min-width:0}.friend-deal{padding:24px}.film-section{padding:50px 6% 0}.film-grid{grid-template-columns:1fr;gap:30px;max-width:440px;margin-left:auto;margin-right:auto}.film-grid video{max-height:620px}.mobile-cta{font-size:16px}.brand span{font-size:12px;letter-spacing:.08em}}

.booking-widget{max-width:1100px;margin:32px auto;text-align:left;background:#fff;color:#171717;border-radius:6px;padding:20px;min-width:0}.booking-widget vg-guest-booking{display:block;width:100%}@media(max-width:800px){.booking-widget{padding:8px;margin:24px auto}}



/* Bring a Bestie */
.brand-with-logo{display:flex;align-items:center;gap:14px}.brand-logo{width:76px;height:76px;object-fit:contain;flex-shrink:0}.bestie-tag{display:inline-block;margin:0;background:#171717;color:var(--yellow)!important;padding:8px 18px;font-size:18px!important;font-weight:900;letter-spacing:.12em;border-radius:4px}.campaign-copy{padding-top:185px}.discount-badge{width:310px;height:310px;right:6%;top:38px;border:7px solid #fff;box-shadow:0 0 0 6px #161616,0 18px 45px #0004;transform:rotate(5deg)}.discount-badge strong{display:flex;align-items:baseline;font-size:106px;line-height:1;letter-spacing:-.075em}.discount-badge .percent-sign{font-size:61px;margin:0 0 0 4px;letter-spacing:-.04em}.discount-badge .badge-top{font-size:14px;margin:0 0 16px;letter-spacing:.08em}.discount-badge .badge-bottom{font-size:16px;margin-top:18px;letter-spacing:.03em}.deal-value{display:inline-block;background:var(--yellow);color:#111;padding:24px 36px 20px;transform:rotate(-2deg);box-shadow:7px 7px 0 #171717;margin-bottom:28px}.deal-value span{font-size:16px;line-height:1.4;letter-spacing:.055em}.member-bestie{max-width:1240px;margin:0 auto 70px;padding:44px 5%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:40px;background:#24251f;border-top:3px solid var(--yellow)}.member-bestie-copy{max-width:760px}.member-bestie h2{font-size:clamp(30px,3.5vw,46px)}.member-bestie-copy>p:not(.eyebrow){color:var(--muted);font-size:18px}.member-bestie-copy strong{color:#fff}.free-month{background:var(--yellow);color:#111;padding:28px 24px;text-align:center;transform:rotate(3deg)}.free-month strong{display:block;font-size:36px;line-height:1.2}.free-month span{font-size:14px;font-weight:800}.social-links{display:flex;gap:12px;flex-wrap:wrap}.social-links a{color:var(--ink);font-size:16px;font-weight:700;text-decoration:none;border:1px solid #666;padding:9px 15px;border-radius:5px}.social-links a:hover{border-color:var(--yellow);color:var(--yellow)}
@media(max-width:800px){.brand-logo{width:58px;height:58px}.brand-with-logo{gap:9px}header .brand{font-size:18px}header .brand span{font-size:10px;letter-spacing:.045em}header{gap:10px;padding:18px 6%}.campaign-hero{min-height:750px}.campaign-copy{padding:20px 6% 32px}.bestie-tag{font-size:15px!important}.discount-badge{width:206px;height:206px;top:28px;right:7%;border-width:5px;box-shadow:0 0 0 4px #161616,0 12px 30px #0004}.discount-badge strong{font-size:76px}.discount-badge .percent-sign{font-size:42px}.discount-badge .badge-top{font-size:10px;margin-bottom:11px}.discount-badge .badge-bottom{font-size:12px;margin-top:12px}.deal-value{padding:22px 20px 18px;max-width:100%}.deal-value span{font-size:14px;letter-spacing:.02em}.member-bestie{grid-template-columns:1fr;margin:0 6% 45px;padding:30px 24px;gap:22px}.free-month{justify-self:start}footer .brand span{font-size:10px;letter-spacing:.04em}.social-links{margin:14px 0}}
@media(max-width:380px){header .small-button{max-width:105px;text-align:center;font-size:12px}header .brand{font-size:16px}.brand-logo{width:48px;height:48px}.campaign-copy h1{font-size:36px}.discount-badge{width:190px;height:190px}}

/* Memberships */
.film-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px;margin-left:auto;margin-right:auto}.campaign-image{object-position:60% 44%}.memberships{max-width:1116px;margin:64px auto 0;padding:40px;background:#24251f;border-top:3px solid var(--yellow)}.membership-copy{max-width:860px}.membership-copy>p{font-size:18px;color:var(--muted)}.membership-copy>.eyebrow{color:var(--yellow);font-size:14px}.membership-copy strong{color:var(--ink)}.membership-benefits{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:28px 0}.membership-benefits li{padding:14px 0 14px 18px;border-left:3px solid var(--yellow);font-size:17px} .membership-contracts{margin-top:34px;padding-top:28px;border-top:1px solid #55564a}.membership-contracts h3{font-size:25px;margin:0 0 10px;line-height:1.3}.contract-intro{color:var(--muted);font-size:17px;margin:0 0 20px}.membership-terms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:0}.membership-terms li{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 10px;background:#303127;border:1px solid #65664e;border-top:3px solid var(--yellow);border-radius:6px;text-align:center}.membership-terms strong{font-size:42px;line-height:1.1;color:var(--yellow)}.membership-terms span{font-size:17px;margin-top:7px}.contract-renewal{margin-top:20px;padding:20px 22px;background:#1b1c17;border-radius:6px}.contract-renewal h4{font-size:18px;line-height:1.4;margin:0 0 8px}.contract-renewal p{font-size:16px;line-height:1.65;color:var(--muted);margin:0}.contract-renewal strong{color:var(--ink)}@media(max-width:480px){.membership-contracts h3{font-size:22px}.membership-terms{gap:8px}.membership-terms li{padding:18px 6px}.membership-terms strong{font-size:36px}.membership-terms span{font-size:16px}.contract-renewal{padding:18px 16px}}.membership-promo{background:#111110;padding:20px;margin:24px 0 0}.membership-copy .button{white-space:normal}.campaign-copy>p:not(.eyebrow){max-width:570px}
@media(max-width:800px){.film-grid{grid-template-columns:1fr;max-width:440px}.campaign-image{object-position:55% 38%}.memberships{margin:44px 6% 0;padding:28px 22px}.membership-benefits{grid-template-columns:1fr;gap:8px}.membership-copy .button{width:100%;text-align:center;font-size:15px}.membership-copy>p{font-size:17px}}

/* High-five campaign hero */
.bestie-hero{display:grid;grid-template-columns:1fr 1fr;min-height:0;height:auto;max-height:none;background:#c51b87;overflow:hidden}.bestie-hero .campaign-photo{grid-column:2;grid-row:1;position:relative;min-width:0;min-height:780px}.bestie-hero .campaign-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}.bestie-hero .campaign-copy{grid-column:1;grid-row:1;position:relative;inset:auto;padding:64px clamp(28px,4.5vw,76px);margin:0;align-self:center;min-width:0}.bestie-hero .campaign-copy h1{font-size:clamp(56px,6.8vw,104px);line-height:.96;letter-spacing:-.04em;margin:28px 0}.bestie-hero h1 span{color:var(--yellow)}.bestie-hero .campaign-copy .eyebrow{font-size:14px;line-height:1.5}.bestie-hero .campaign-copy .bestie-intro{font-size:22px;line-height:1.4}.bestie-hero .discount-badge{position:static;display:flex;flex-direction:row;justify-content:flex-start;gap:20px;width:auto;height:auto;border:0;border-radius:5px;transform:rotate(-2deg);padding:20px 22px;margin:30px 0 24px;box-shadow:6px 6px 0 #181818}.bestie-hero .discount-badge strong{font-size:clamp(62px,6vw,90px);flex-shrink:0}.bestie-hero .discount-badge .percent-sign{font-size:.6em}.bestie-hero .discount-badge>div{display:flex;flex-direction:column;gap:7px}.bestie-hero .discount-badge .badge-bottom{font-size:16px;line-height:1.2;margin:0;letter-spacing:0}.bestie-hero .discount-badge .badge-terms{font-size:14px;font-weight:500;line-height:1.35;margin:0}.bestie-hero .campaign-copy .bestie-gift{font-size:17px;line-height:1.5}.bestie-hero .campaign-copy .button{min-width:0;width:100%;max-width:400px;border-radius:5px;font-size:16px}.bestie-hero .campaign-copy .button:hover{background:var(--yellow)}
@media(max-width:800px){.bestie-hero{grid-template-columns:1fr}.bestie-hero .campaign-photo{grid-column:1;grid-row:1;min-height:0;aspect-ratio:707/1257;max-height:640px}.bestie-hero .campaign-copy{grid-column:1;grid-row:2;position:relative;padding:36px 6% 40px}.bestie-hero .campaign-copy h1{font-size:clamp(60px,15vw,88px);margin:20px 0}.bestie-hero .campaign-copy .eyebrow{font-size:12px}.bestie-hero .campaign-copy .bestie-intro{font-size:20px}.bestie-hero .discount-badge{gap:16px;padding:18px;margin:26px 0 22px}.bestie-hero .discount-badge strong{font-size:74px}.bestie-hero .discount-badge .badge-bottom{font-size:14px}.bestie-hero .discount-badge .badge-terms{font-size:13px}.bestie-hero .campaign-copy .button{max-width:none}}
@media(min-width:801px) and (max-width:1100px){.bestie-hero .campaign-copy{padding:44px 28px}.bestie-hero .discount-badge{gap:12px;padding:18px 14px}.bestie-hero .discount-badge .badge-bottom{font-size:14px}}

@media(max-width:380px){.bestie-hero .discount-badge{gap:12px;padding:14px}.bestie-hero .discount-badge strong{font-size:58px}.bestie-hero .discount-badge .badge-bottom{font-size:12px}.bestie-hero .discount-badge .badge-terms{font-size:12px}}

/* Studio location */
.studio-address{font-style:normal;font-size:16px;line-height:1.6}.studio-address strong,.studio-address span{display:block}.studio-address span{color:var(--muted)}.booking-address{margin:22px auto 0}.footer-address{min-width:190px}footer{flex-wrap:wrap}@media(max-width:800px){.footer-address{margin:12px 0}}

/* Google review excerpts */
.reviews{max-width:1240px;margin:auto;padding:0 5% 72px}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}.review-card{margin:0;display:flex;flex-direction:column;padding:28px;background:#24251f;border:1px solid #444537;border-radius:8px}.review-stars{color:var(--yellow);font-size:23px;letter-spacing:3px;line-height:1.2}.review-card blockquote{margin:20px 0 24px;font-size:17px;line-height:1.65}.review-card blockquote p{margin:0}.review-card figcaption{margin-top:auto;padding-top:18px;border-top:1px solid #45463b}.review-card figcaption strong,.review-card figcaption span{display:block}.review-card figcaption strong{font-size:16px}.review-card figcaption span{font-size:14px;color:var(--muted);margin-top:3px}.reviews-link{display:inline-block;margin-top:24px;font-size:16px;color:var(--yellow);text-underline-offset:5px}@media(max-width:800px){.reviews{padding:0 6% 50px}.review-grid{grid-template-columns:1fr;gap:16px;margin-top:26px}.review-card{padding:24px}.review-card blockquote{margin:18px 0 22px}}
