/* Elemntal: warm ivory, considered type, and a photographic editorial rhythm. */
:root{--paper:#F8F6F0;--refine-ink:#304542;--refine-muted:#52635D;--refine-line:#D8DED4;--refine-sage:#EDF1E9;--refine-teal:#328DA7}
html{scroll-padding-top:110px}
html body{background:var(--paper);font-size:16px;color:var(--refine-ink)}
html body #main p{font-size:16px;line-height:1.85}
html body #main :is(p.eyebrow,p.kicker,p.lara-kicker,p.olive-kicker,p.beauty-kicker){font-size:10px;line-height:1.6;letter-spacing:.16em;font-weight:600}
html body #main :is(p.meta,p.olive-exclusions,p.olive-commitment,p.olive-fineprint,p.olive-address,p.finish-note){font-size:12px;line-height:1.75}
html body #main :is(.finish-hero-lead,.beauty-hero-lead,.massage-hero-lead,.sauna-hero-lead,.lara-hero-lead){font-family:Italiana,Georgia,serif;font-size:clamp(27px,2.6vw,37px);line-height:1.3}
html body #main :is(.finish-section,.lara-section,.massage-detail-section,.beauty-detail-section,.sauna-detail-section)>p:not(.eyebrow):not(.kicker):not(.lara-kicker){max-width:70ch}
html body #main :is(.finish-section,.lara-section,.massage-detail-section,.beauty-detail-section,.sauna-detail-section) h2{max-width:23ch;text-wrap:balance}
html body #main :is(.hero,.finish-hero,.beauty-hero,.massage-hero,.sauna-hero,.about-hero,.services-hero){background:var(--paper)}
html body #main :is(.hero-image,.beauty-hero-photo,.massage-hero-photo,.sauna-hero-photo,.about-hero-photo,.services-hero-photo) img{filter:brightness(1.02) saturate(.93)}
html body header{padding:10px 3.2vw;min-height:92px;background:rgba(248,246,240,.98);border-bottom:1px solid var(--refine-line)}
html body header .logo-brand{width:150px;flex:0 0 150px}
html body header .header-logo{width:150px;height:70px;object-fit:contain}
html body header>nav{gap:clamp(10px,1.3vw,22px);font-size:clamp(10px,1vw,14px)}
html body header .header-login{font-size:12px;white-space:nowrap}
html body header a.button.header-book{font-size:12px;min-height:46px;padding:12px 19px}
html body :is(a.button.button,a.btn.btn),html body #main :is(a.button.button,a.btn.btn){min-height:49px;padding:14px 24px;background:#fff;color:#000;border:1px solid #000;font-size:12px;line-height:1.5;font-weight:500;letter-spacing:.025em;gap:18px;transition:background .2s ease,transform .2s ease}
html body :is(a.button.button,a.btn.btn):hover,html body #main :is(a.button.button,a.btn.btn):hover{background:#F0F2EC;color:#000;border-color:#000;transform:translateY(-1px)}
html body :is(a,button,summary):focus-visible{outline:2px solid #328DA7;outline-offset:5px}
html body #main :is(.line-link,.text-link,.massage-text-link,.beauty-text-link,.sauna-text-link,.finish-text-link){font-size:13px;line-height:1.6;padding-bottom:7px}
html body .footer-standard{background:var(--paper);border-top:1px solid var(--refine-line);padding-top:52px;padding-bottom:25px}
html body .footer-standard :is(p,address,a){font-size:12px;line-height:1.9}
html body .footer-standard .footer-main-grid{gap:40px}
html body .footer-standard .footer-bottom{margin-top:35px;padding-top:20px;font-size:11px}
/* Homepage: less repetition, larger images, a calm sequence of distinct sections. */
html body.homepage #main .hero{grid-template-columns:1fr 1fr;min-height:660px;background:var(--paper)}
html body.homepage #main .hero-copy{padding:62px 5vw 58px;justify-content:center}
html body.homepage #main .hero-copy h1{font-size:clamp(46px,4.7vw,74px);line-height:1.04;letter-spacing:-.035em;margin:0 0 28px}
html body.homepage #main .hero-copy .eyebrow{font-size:9px;line-height:1.8;letter-spacing:.13em;margin-bottom:27px}
html body.homepage #main .hero-copy .intro{font-size:16px;line-height:1.85;max-width:440px;margin-bottom:24px;color:var(--refine-muted)}
html body.homepage #main .hero-ctas{margin:6px 0 25px;gap:24px}
html body.homepage #main .hero-image{min-height:660px}
html body.homepage #main .rating-line{font-size:11px;line-height:1.8;margin-bottom:20px}
html body.homepage #main .chips{gap:10px 16px;margin:0;max-width:450px}
html body.homepage #main .chips li{font-size:10px;border:0;border-left:1px solid #9EAEA2;padding:0 0 0 10px;line-height:1.8}
html body.homepage #main .hero-image .image-caption{bottom:48px;left:36px}
html body.homepage #main .hero-image .image-caption span:last-child{font-size:38px}
html body.homepage #main .muse-content>section{padding:96px max(24px,5vw);background:var(--paper)}
html body.homepage #main .muse-content .wrap{max-width:1240px}
html body.homepage #main .muse-content h2{font-size:clamp(39px,4.15vw,64px);line-height:1.08;letter-spacing:-.025em;max-width:950px;text-wrap:balance}
html body.homepage #main .muse-content h3{font-size:34px;line-height:1.15;letter-spacing:-.02em}
html body.homepage #main .muse-content p{font-size:16px;line-height:1.85;color:var(--refine-muted)}
html body.homepage #main .muse-content .kicker{font-size:10px;line-height:1.6;color:var(--refine-ink);margin-bottom:22px}
html body.homepage #main .muse-content .intro{max-width:650px;font-size:16px;margin-bottom:36px}
html body.homepage #main .muse-content>.aeo-at-a-glance{padding:38px 5vw 43px;background:var(--paper);border-bottom:1px solid var(--refine-line)}
.studio-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.studio-facts>div+div{border-left:1px solid var(--refine-line);padding-left:40px}
.studio-fact-index{font-size:9px;font-weight:500;letter-spacing:.14em;color:#64796C;display:block;margin-bottom:13px}
html body.homepage #main .studio-facts h2{font-size:29px;margin:0 0 10px}
html body.homepage #main .studio-facts p{font-size:13px;line-height:1.8;margin:0;max-width:34ch}
html body.homepage #main #saunas{padding-top:85px;padding-bottom:65px}
html body.homepage #main .tabbar{margin-top:40px;margin-bottom:0;border-color:var(--refine-line);gap:1px}
html body.homepage #main .tabbar .tabbtn{font-size:29px;padding:22px 30px;border-bottom-width:1px;box-shadow:none}
html body.homepage #main .tabbar .tabbtn small{font-size:9px;letter-spacing:.12em;margin-top:10px}
html body.homepage #main .tabbar .tabbtn[aria-selected=true]{background:var(--refine-sage);border-color:#6F8F7B;box-shadow:none}
html body.homepage #main .tabpanel{grid-template-columns:1.12fr 1fr;background:var(--refine-sage)}
html body.homepage #main .tabpanel[hidden]{display:none}
html body.homepage #main .tabpanel figure{min-height:400px;height:400px}
html body.homepage #main .tabpanel figure img{filter:saturate(.93) brightness(1.03)}
html body.homepage #main .tabtxt{padding:48px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
html body.homepage #main .tabtxt h3{font-size:46px}
html body.homepage #main .tabtxt p{margin-bottom:28px}
.home-sauna-more{display:flex;justify-content:space-between;gap:24px;padding-top:24px}
html body.homepage #main .home-sauna-more a{font-size:13px;min-height:44px}
html body.homepage #main #services{background:var(--refine-sage);padding-top:85px;padding-bottom:80px}
.studio-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:40px}
html body.homepage #main .studio-section-heading h2{margin-bottom:0}
html body.homepage #main .studio-section-heading>p{max-width:360px;margin-bottom:4px;font-size:15px}
html body.homepage #main #services .studio-featured-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
html body.homepage #main #services .card{background:transparent;border:0;box-shadow:none;overflow:visible}
html body.homepage #main #services .card .service-image-link{overflow:hidden}
html body.homepage #main #services .card .service-image-link img{width:100%;height:290px;object-fit:cover;filter:brightness(1.04) saturate(.9);transition:transform .55s ease}
html body.homepage #main #services .card .pad{padding:26px 0 0}
html body.homepage #main #services .card h3{font-size:32px;margin-bottom:12px}
html body.homepage #main #services .card .meta{font-size:9px;line-height:1.7;letter-spacing:.09em;border:0;padding-bottom:0;margin-bottom:14px;color:#49645A}
html body.homepage #main #services .card .pad>p:not(.meta){font-size:14px;line-height:1.85;margin-bottom:18px}
html body.homepage #main #services .service-details-link{font-size:12px;padding:8px 0;border-bottom:1px solid #9CAFA1;align-self:flex-start;margin-top:auto}
.studio-service-directory{display:grid;grid-template-columns:.7fr 2fr;gap:60px;border-top:1px solid #C9D3C5;margin-top:50px;padding-top:35px}
.studio-service-directory>div{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.studio-service-directory>div>a{display:flex;align-items:center;gap:15px;padding:16px 0;border-bottom:1px solid #C9D3C5;font-size:15px;min-height:58px}
.studio-service-directory a span{font-size:9px;color:#6B7D70;letter-spacing:.08em}
.studio-service-directory a b{margin-left:auto;font-weight:400}
html body.homepage #main .studio-story>.wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:7vw;align-items:center}
.studio-story figure{margin:0;position:relative}
.studio-story figure>img{width:100%;height:560px;object-fit:cover;filter:brightness(1.03) saturate(.92)}
.studio-story figcaption{font-size:9px;letter-spacing:.14em;padding-top:16px;color:#5C7167}
html body.homepage #main .studio-story h2{font-size:clamp(39px,3.7vw,58px)}
html body.homepage #main .studio-story-copy>p:not(.kicker){font-size:15px;max-width:44ch}
.studio-story-copy>.button{margin-top:12px}.studio-story-copy>.line-link{display:flex;max-width:max-content;margin-top:18px}
html body.homepage #main #how{background:var(--refine-sage);padding-top:80px;padding-bottom:80px}
html body.homepage #main #how .intro{max-width:720px}
html body.homepage #main .steps{gap:50px;margin-top:40px}
html body.homepage #main .step{border-top:1px solid #ADBDB0;padding-top:22px}
html body.homepage #main .num{font-size:54px;line-height:1;color:#6F8F7B;margin-bottom:22px}
html body.homepage #main .step p{font-size:14px;line-height:1.9}
html body.homepage #main #testimonials{background:var(--paper);padding-top:75px;padding-bottom:80px}
html body.homepage #main #testimonials h2{font-size:clamp(26px,2.7vw,39px);max-width:800px}
html body.homepage #main #testimonials h2 a{text-decoration:none}
html body.homepage #main .testimonials-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
html body.homepage #main .testimonial-slot,html body.homepage #main .testimonial-slot.verified-review{background:transparent;border:0;border-top:1px solid #CCD5CA;border-left:0;padding:30px 20px 15px 0;min-height:0;grid-column:auto}
html body.homepage #main .testimonials-grid blockquote{font-size:29px;line-height:1.4}
html body.homepage #main .testimonials-grid figcaption{font-size:11px;line-height:1.8;margin-top:20px}
html body.homepage #main #memberships{background:#E7F5F3;padding-top:80px;padding-bottom:85px}
html body.homepage #main #memberships>.wrap>h2{color:var(--refine-ink)}
html body.homepage #main #memberships>.wrap>.intro{color:var(--refine-muted)}
html body.homepage #main #memberships .compare{gap:30px;margin-top:35px}
html body.homepage #main #memberships .vs{background:var(--paper);border:0;padding:36px;display:flex;flex-direction:column;align-items:flex-start}
html body.homepage #main #memberships .vs p{font-size:15px;margin-bottom:26px}
html body.homepage #main #memberships .vs .btn{margin-top:auto}
html body.homepage #main .studio-events{display:grid;grid-template-columns:1fr 1.1fr;gap:6vw;align-items:center;background:var(--paper)}
.studio-event-photo{margin:0;align-self:stretch}
.studio-event-photo img{width:100%;height:100%;min-height:650px;object-fit:cover;filter:saturate(.85)}
html body.homepage #main .studio-events .compare{grid-template-columns:1fr;gap:25px;margin-top:26px}
html body.homepage #main .studio-events .vs{padding:0 0 24px;border:0;border-bottom:1px solid var(--refine-line);background:transparent}
html body.homepage #main .studio-events .vs h3{font-size:29px;margin-bottom:12px}
html body.homepage #main .studio-events .vs p{font-size:14px;margin-bottom:18px}
html body.homepage #main .studio-events .intro{font-size:15px;margin-bottom:0}
html body.homepage #main #faq{background:var(--paper);border-top:1px solid var(--refine-line);padding-top:80px;padding-bottom:70px}
html body.homepage #main #faq .wrap{max-width:1000px}
html body.homepage #main #faq summary{font-size:15px;padding:23px 38px 23px 0;line-height:1.7}
html body.homepage #main #faq details p{font-size:15px;max-width:65ch}
html body.homepage #main #faq .subline{font-size:23px}
html body.homepage #main #visit{background:#EDF1E9;padding-top:75px;padding-bottom:75px}
html body.homepage #main .visit-card{padding:32px;background:var(--paper)}
html body.homepage #main .visit-card h3{font-size:30px}
html body.homepage #main .visit-card :is(address,p,td){font-size:13px;line-height:1.8}
html body.homepage #main .visit-card td{padding:6px 0}
@media(min-width:901px) and (max-width:1120px){html body header .logo-brand{width:115px;flex-basis:115px}html body header .header-logo{width:115px}html body header{gap:12px}html body header .header-login,html body header a.button.header-book{font-size:11px}html body header a.button.header-book{padding:12px 14px}}
@media(max-width:1000px){html body.homepage #main .hero-copy{padding:48px 30px}html body.homepage #main .hero-copy h1{font-size:49px}.studio-facts{gap:25px}.studio-facts>div+div{padding-left:25px}html body.homepage #main #services .card .service-image-link img{height:240px}.studio-service-directory{grid-template-columns:1fr;gap:5px}.studio-story figure>img{height:500px}html body.homepage #main .tabtxt{padding:30px}}
@media(max-width:800px){
 html body header{min-height:80px;padding:8px 20px;gap:14px}html body header .logo-brand{width:115px;flex-basis:115px}html body header .header-logo{width:115px;height:60px}html body header .header-login{font-size:11px}
 html body.homepage #main .muse-content>section{padding:64px 24px}
 html body.homepage #main .studio-facts{gap:25px}.studio-facts>div+div{padding-left:22px}
 html body.homepage #main .studio-facts h2{font-size:25px}.studio-section-heading{display:block}.studio-section-heading>p{margin-top:25px;max-width:500px!important}
 html body.homepage #main .tabpanel{grid-template-columns:1fr 1fr}html body.homepage #main .tabpanel figure{height:370px;min-height:370px}html body.homepage #main .tabtxt h3{font-size:36px}html body.homepage #main .tabtxt p{font-size:14px}
 html body.homepage #main .studio-story>.wrap{grid-template-columns:1fr;gap:36px}.studio-story figure>img{height:420px}
 html body.homepage #main .studio-story-copy>p:not(.kicker){max-width:65ch}
 html body.homepage #main .studio-events{grid-template-columns:1fr;gap:40px}.studio-event-photo img{height:300px;min-height:0;object-position:center 40%}
 html body.homepage #main .steps{gap:25px}html body.homepage #main .step p{font-size:13px}
}
@media(max-width:700px){
 html{scroll-padding-top:95px}html body header{padding:8px 16px;gap:10px}html body header .logo-brand{width:95px;flex-basis:95px}html body header .header-logo{width:95px;height:55px}html body header a.button.header-book{min-height:44px;padding:11px 13px;font-size:11px}html body header .header-login,html body header .menu-toggle{font-size:11px}
 html body #main p{font-size:15px;line-height:1.85}
 html body.homepage #main .hero{grid-template-columns:1fr;min-height:0}html body.homepage #main .hero-copy{padding:42px 24px 38px}html body.homepage #main .hero-copy h1{font-size:clamp(43px,9vw,60px);line-height:1.06;margin-bottom:25px}html body.homepage #main .hero-copy .eyebrow{font-size:8px;max-width:300px;margin-bottom:24px}html body.homepage #main .hero-copy .intro{font-size:15px;max-width:40ch}html body.homepage #main .hero-image{height:390px;min-height:0}html body.homepage #main .hero-image .image-caption{left:24px;bottom:30px}html body.homepage #main .hero-image .image-caption span:last-child{font-size:32px}
 html body.homepage #main .muse-content>.aeo-at-a-glance{padding:30px 24px}html body.homepage #main .studio-facts{grid-template-columns:1fr;gap:22px}.studio-facts>div+div{border-left:0;border-top:1px solid var(--refine-line);padding:22px 0 0}.studio-fact-index{margin-bottom:8px}html body.homepage #main .studio-facts h2{font-size:27px}html body.homepage #main .studio-facts p{font-size:13px;max-width:42ch}
 html body.homepage #main .muse-content h2{font-size:40px;line-height:1.1}html body.homepage #main .muse-content p{font-size:15px}
 html body.homepage #main .tabbar .tabbtn{padding:18px 12px;font-size:25px}html body.homepage #main .tabbar .tabbtn small{font-size:8px;letter-spacing:.06em}html body.homepage #main .tabpanel{grid-template-columns:1fr}html body.homepage #main .tabpanel figure{height:300px;min-height:0}html body.homepage #main .tabtxt{padding:28px}html body.homepage #main .tabtxt h3{font-size:37px}html body.homepage #main .tabtxt p{font-size:15px}.home-sauna-more{display:block}.home-sauna-more a{display:flex;justify-content:space-between;max-width:max-content;margin-bottom:8px}
 html body.homepage #main #services .studio-featured-services{grid-template-columns:1fr;gap:40px}html body.homepage #main #services .card .service-image-link img{height:300px}html body.homepage #main #services .card h3{font-size:32px}.studio-service-directory{margin-top:38px;padding-top:28px}.studio-service-directory>div{grid-template-columns:1fr}.studio-service-directory>div>a{font-size:15px}
 .studio-story figure>img{height:360px}html body.homepage #main .studio-story h2{font-size:40px}html body.homepage #main .steps{grid-template-columns:1fr;gap:30px}.studio-story-copy>.line-link{font-size:13px}
 html body.homepage #main .step{display:grid;grid-template-columns:44px 1fr;gap:8px 18px;padding-top:20px}html body.homepage #main .step .num{grid-row:1/3;font-size:38px;margin:0}html body.homepage #main .step h3{font-size:30px;margin:0}html body.homepage #main .step p{font-size:14px;margin-bottom:0}
 html body.homepage #main .testimonials-grid{grid-template-columns:1fr}html body.homepage #main .testimonials-grid blockquote{font-size:28px}html body.homepage #main #testimonials h2{font-size:30px}
 html body.homepage #main #memberships .compare{grid-template-columns:1fr;gap:20px}html body.homepage #main #memberships .vs{padding:28px}
 html body.homepage #main .visit-grid{grid-template-columns:1fr;gap:20px}.studio-event-photo img{height:280px}html body.homepage #main #faq summary{font-size:14px}
 html body .footer-standard .footer-main-grid{gap:25px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}html body :is(a.button.button,a.btn.btn),html body #main #services img{transition:none!important;transform:none!important}}
