@font-face{font-family:LocalSerif;src:local('Georgia');font-display:swap}
:root{--ink:#143c4b;--muted:#536a74;--paper:#f8fafb;--blue:#e5eef1;--line:#c5d4da;--white:#fff;--serif:LocalSerif,Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #af692f;outline-offset:6px}::selection{color:var(--white);background:var(--ink)}.wrap{width:min(1280px,calc(100% - 104px));margin-inline:auto}.skip-link{position:absolute;left:20px;top:-80px;padding:12px;background:white;z-index:5}.skip-link:focus{top:12px}.header{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:120px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-family:var(--serif);font-size:28px;line-height:1.15}.brand small{display:block;margin-top:8px;font:10px/1.4 var(--sans);letter-spacing:1.45px}.brand-mark{display:grid;place-items:center;width:49px;height:49px;border:1px solid var(--ink);border-radius:50%;font-size:32px;font-style:italic}.header nav{display:flex;gap:28px;font-size:14px}.header nav a:hover,.text-link:hover,.footer>a:hover{text-decoration:underline;text-underline-offset:6px}.header-book{font-size:14px;border-bottom:1px solid var(--ink);padding:10px 0}.header-book span{margin-left:20px}.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;padding-block:75px 82px;align-items:center}.eyebrow{font-size:12px;font-weight:500;letter-spacing:2px;line-height:1.6;margin:0 0 32px}.hero h1{font-family:var(--serif);font-size:clamp(46px,4.6vw,68px);font-weight:400;line-height:1.12;letter-spacing:-2.1px;margin:0 0 27px}em{font-weight:400;color:#517d90}.hero-description{font-size:18px;line-height:1.7;color:var(--muted);margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;padding:17px 25px;min-height:59px;font-size:15px;line-height:1.5;border-radius:3px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:#245567}.button-light{background:var(--paper);color:var(--ink)}.button-light:hover{background:#dce8ed}.button span{font-size:20px}.hero-secondary{display:block;width:max-content;margin-top:21px;font-size:14px}.hero-secondary span{margin-left:12px}.hero-panel{align-self:stretch;display:flex;align-items:center;justify-content:center;flex-direction:column;background:var(--blue);border-radius:160px 160px 3px 3px;text-align:center;min-height:510px;padding:47px 24px 30px}.panel-caption{font-size:10px;letter-spacing:2px;margin-bottom:30px}.channel-symbol{width:210px;height:210px;border-radius:50%;overflow:hidden;background:white}.channel-symbol img{width:100%;height:100%;object-fit:contain}.panel-name{font:54px/1.2 var(--serif);margin:24px 0 11px}.hero-panel>a{font-size:14px;color:var(--muted)}.hero-panel>a span{margin-left:12px}.intro-strip{border-block:1px solid var(--line)}.intro-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:23px;font-size:14px;color:var(--muted)}.intro-strip span+span{border-left:1px solid var(--line);padding-left:60px}.section{padding-block:100px}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-bottom:60px}.section-heading .eyebrow{padding-top:14px}h2{font:400 clamp(38px,4vw,56px)/1.12 var(--serif);letter-spacing:-1.4px;margin:0 0 24px}.section-heading p:not(.eyebrow){color:var(--muted);margin:0;line-height:1.8}.service{display:grid;grid-template-columns:60px 1.25fr 1fr 48px;align-items:center;gap:25px;padding:29px 0;border-top:1px solid var(--line)}.service:last-child{border-bottom:1px solid var(--line)}.service-number{font-size:12px;letter-spacing:1px;color:var(--muted)}.service h3{font:400 26px/1.35 var(--serif);margin:0}.service p{font-size:15px;color:var(--muted);margin:0}.service>a{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:23px;transition:color .2s,background .2s}.service>a:hover{color:white;background:var(--ink)}.service-note{font-size:14px;color:var(--muted);margin:24px 0 0}.energy{background:var(--ink);color:var(--white)}.energy-inner{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding-block:86px}.energy .eyebrow{color:#b8d0d9;padding-top:11px}.energy h2{font-size:clamp(40px,4.5vw,62px)}.energy em{color:#afd0dc}.energy p:not(.eyebrow){max-width:510px;color:#c9dbe2;margin:25px 0 32px;font-size:17px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact .eyebrow{margin-bottom:35px}.contact h2{font-size:clamp(46px,5.3vw,72px)}.contact-intro{margin:0 0 29px;color:var(--muted);max-width:470px}.contact dl{margin:40px 0 0}.contact dl>div{display:grid;grid-template-columns:95px 1fr;gap:20px;border-top:1px solid var(--line);padding-block:17px;font-size:14px}.contact dt{color:var(--muted)}.contact dd{margin:0}.contact dd a:hover{text-decoration:underline;text-underline-offset:5px}.footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:30px;border-top:1px solid var(--line)}.footer-name{font:28px var(--serif)}.footer p,.footer>a:last-child{font-size:12px;color:var(--muted)}
@media(min-width:1500px){.hero{padding-block:90px 100px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.header nav{gap:18px}.header-book{display:none}.hero{gap:32px}.hero h1{font-size:49px}.hero-panel{min-height:490px}.intro-strip span+span{padding-left:25px}.service{grid-template-columns:35px 1.2fr 1fr 44px;gap:18px}.service h3{font-size:24px}.contact{gap:50px}}
@media(max-width:720px){html{scroll-padding-top:20px}.wrap{width:calc(100% - 40px)}.header{min-height:98px;flex-wrap:wrap;padding-block:21px 16px;gap:20px}.brand{font-size:25px}.brand-mark{width:41px;height:41px;font-size:27px}.brand small{font-size:9px;letter-spacing:1.05px}.header nav{width:100%;justify-content:space-between;gap:10px;font-size:13px}.hero{grid-template-columns:1fr;padding-block:40px 40px;gap:37px}.eyebrow{font-size:11px;margin-bottom:25px}.hero h1{font-size:clamp(35px,8.7vw,57px);letter-spacing:-1.3px;line-height:1.16}.hero-description{font-size:16px;line-height:1.8}.hero-panel{min-height:345px;border-radius:140px 140px 3px 3px;padding:33px 20px 28px;max-width:420px;width:100%;margin-inline:auto}.panel-caption{margin-bottom:18px;font-size:9px}.channel-symbol{width:150px;height:150px}.panel-name{font-size:42px;margin:14px 0 5px}.hero-panel>a{font-size:13px}.button{font-size:14px;padding:16px 21px;gap:27px}.hero-secondary{font-size:14px}.intro-strip .wrap{display:grid;gap:7px;padding-block:20px;font-size:13px}.intro-strip span+span{border:0;padding:0}.section{padding-block:61px}.section-heading{display:block;margin-bottom:36px}.section-heading .eyebrow{padding:0;margin-bottom:22px}h2{font-size:40px;letter-spacing:-.8px}.section-heading p:not(.eyebrow){font-size:15px}.service{grid-template-columns:25px 1fr 44px;gap:8px 12px;padding-block:23px}.service-number{font-size:11px}.service h3{font-size:23px}.service p{grid-column:2;grid-row:2;font-size:14px;max-width:290px}.service>a{grid-column:3;grid-row:1 / 3}.service-note{font-size:13px;line-height:1.7}.energy-inner{display:block;padding-block:58px}.energy .eyebrow{padding:0}.energy h2{font-size:40px}.energy p:not(.eyebrow){font-size:16px}.contact{display:block}.contact h2{font-size:52px}.contact-details{margin-top:35px}.contact-intro{font-size:16px}.contact dl>div{grid-template-columns:65px 1fr;font-size:14px}.footer{display:grid;grid-template-columns:1fr auto;gap:8px;padding-block:24px}.footer p{grid-row:2;grid-column:1 / 3;margin:0;font-size:12px}.footer>a:last-child{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.service>a{transition:none}.button:hover{transform:none}}
/* Updated from the channel price cards. */
.brand small{font-size:12px;letter-spacing:.75px}.panel-caption{font-size:12px;letter-spacing:1.2px}.service{grid-template-columns:60px 1fr 135px 48px}.service-info p{margin-top:9px;max-width:560px;font-size:16px}.service-price{text-align:right}.service-price strong{display:block;font:400 30px/1.3 var(--serif)}.service-price span{font-size:14px;color:var(--muted)}.price-source{margin-top:8px;color:var(--muted);font-size:12px}.energy-options{margin:0 0 35px;display:grid;grid-template-columns:1fr 1fr;gap:25px}.energy-options>div{padding-top:22px;border-top:1px solid #496670}.energy-options h3{font:400 24px/1.3 var(--serif);margin:0 0 10px}.energy-options span{display:block;color:#c9dbe2;font-size:14px;min-height:48px}.energy-options strong{display:block;margin-top:18px;font-size:17px;font-weight:500}.energy p.energy-source{font-size:12px;margin:22px 0 0;color:#c9dbe2}.gift{display:grid;grid-template-columns:1fr 1.6fr auto;gap:40px;padding-block:62px;border-bottom:1px solid var(--line);align-items:center}.gift .eyebrow{margin:0;font-size:12px;letter-spacing:1.4px}.gift h2{font-size:33px;letter-spacing:-.6px;margin-bottom:15px}.gift p{font-size:16px;color:var(--muted);margin:0}.gift>a{font-size:14px;border-bottom:1px solid var(--ink);white-space:nowrap;padding:8px 0}
@media(max-width:1050px){.service{grid-template-columns:35px 1fr 115px 44px;gap:18px}.gift{grid-template-columns:1fr 2fr}.gift>a{grid-column:2;justify-self:start}}
@media(max-width:720px){.brand small{font-size:12px;letter-spacing:0}.panel-caption{font-size:12px;letter-spacing:.5px}.eyebrow{font-size:12px;letter-spacing:1.5px}.header nav{font-size:14px}.service{grid-template-columns:1fr 76px;gap:12px;padding-block:24px}.service-number{display:none}.service h3{font-size:24px}.service-info p{font-size:16px;line-height:1.6}.service-price{align-self:start}.service-price strong{font-size:28px}.service-price span{font-size:14px}.service>a{grid-column:2;grid-row:auto;margin-left:auto;width:44px;height:44px}.service-info{grid-row:1 / 3}.energy-options{grid-template-columns:1fr;gap:25px}.energy-options span{min-height:0;font-size:16px}.energy-options strong{margin-top:12px}.energy .button{gap:14px}.gift{display:block;padding-block:45px}.gift .eyebrow{margin-bottom:23px;display:block}.gift h2{font-size:34px}.gift>a{display:inline-block;margin-top:20px}.contact .eyebrow{margin-bottom:25px}.service-note{font-size:14px}.intro-strip .wrap{font-size:14px}}

/* Slightly larger type, with a modest weight increase for reading text. */
body{font-size:17px;font-weight:450;-webkit-font-smoothing:auto}
.header nav,.header-book,.hero-secondary{font-size:15px;font-weight:500}
.hero h1{font-size:clamp(48px,4.8vw,72px)}
h2{font-size:clamp(40px,4.2vw,60px)}
.hero-description{font-size:19px}
.button{font-size:16px;font-weight:500}
.service h3{font-size:28px}
.service-info p,.gift p{font-size:17px}
.service-price strong{font-size:32px}
.energy-options h3{font-size:26px}
.energy p:not(.eyebrow):not(.energy-source){font-size:18px}
.contact dl>div{font-size:15px}
.hero-panel.hero-portrait{position:relative;padding:0;overflow:hidden;min-height:550px;background:var(--blue);border-radius:160px 160px 3px 3px}
.hero-portrait>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.portrait-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:end;gap:20px;padding:75px 28px 26px;text-align:left;color:white;background:linear-gradient(transparent,rgba(12,30,38,.77))}
.portrait-caption .panel-name{font-size:40px;margin:0}
.portrait-caption a{font-size:14px;font-weight:500;white-space:nowrap}
.massage-photos{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;margin:0 0 48px}
.massage-photos figure{margin:0;min-width:0}
.massage-photos img{display:block;width:100%;height:390px;object-fit:cover;border-radius:3px}
.massage-photos figure:first-child img{object-position:50% 38%}
.massage-photos figcaption{font-size:14px;color:var(--muted);padding-top:12px}
@media(max-width:1050px){.hero h1{font-size:52px}.hero-panel.hero-portrait{min-height:510px}.service h3{font-size:26px}.portrait-caption{padding-inline:22px;display:block}.portrait-caption .panel-name{margin-bottom:9px}.massage-photos img{height:330px}}
@media(max-width:720px){
 .header nav{font-size:15px}.hero h1{font-size:clamp(37px,9vw,60px);letter-spacing:-1.3px}
 .hero-description,.section-heading p:not(.eyebrow),.service-info p,.contact-intro{font-size:17px}
 .button{font-size:15px}.hero-panel.hero-portrait{height:auto;aspect-ratio:4/5;min-height:0;border-radius:130px 130px 3px 3px;max-width:420px}
 .portrait-caption{display:flex;padding:70px 24px 23px}.portrait-caption .panel-name{font-size:34px;margin:0}
 h2,.energy h2{font-size:43px}.service h3{font-size:26px}.service-price strong{font-size:30px}
 .energy p:not(.eyebrow):not(.energy-source){font-size:17px}.contact h2{font-size:55px}
 .massage-photos{grid-template-columns:1fr;gap:25px;margin-bottom:35px}.massage-photos img{height:auto;aspect-ratio:4/3}.massage-photos figure:first-child img{object-position:50% 32%}
}
/* Keep the complete working scenes visible instead of cutting off faces or hands. */
.massage-photos{grid-template-columns:1fr 1fr;max-width:970px;margin:48px auto 0}
.massage-photos img,.massage-photos figure:first-child img{height:auto;aspect-ratio:4/5;object-position:50% 35%}
@media(max-width:720px){.massage-photos{gap:14px;margin-top:32px}.massage-photos figcaption{font-size:13px}.portrait-caption a{font-size:14px}}
/* Both booking destinations stay visible, including on narrow screens. */
.booking-buttons{display:flex;flex-wrap:wrap;gap:12px}
.booking-buttons .button{gap:20px;padding-inline:20px;font-size:15px}
.button-outline{background:transparent;border:1px solid var(--ink);color:var(--ink)}
.button-outline:hover{background:var(--blue)}
.contact dl>div{grid-template-columns:95px 1fr}
@media(max-width:720px){.booking-buttons{display:grid;grid-template-columns:1fr;max-width:355px}.booking-buttons .button{width:100%;font-size:15px}.contact dl>div{grid-template-columns:80px 1fr;gap:14px}}
.hero-no-photo{grid-template-columns:1fr}.hero-no-photo .hero-copy{max-width:800px}.service-price strong{overflow-wrap:anywhere}.massage-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.massage-photos:has(figure:only-child){max-width:500px;grid-template-columns:1fr}.hero-copy,.service-info,.contact-details{min-width:0}h1,h2,h3,p,dd{overflow-wrap:anywhere}
/* Additional editable practice sections. */
.extra-tinted{background:var(--blue)}.extra-section .section-heading{margin-bottom:30px}.extra-book{margin-top:28px}.header nav{flex-wrap:wrap;gap:12px 20px;justify-content:center}.header{gap:22px}.brand{flex-shrink:0}.header-book{white-space:nowrap}
@media(max-width:1180px){.header-book{display:none}.header nav{justify-content:flex-end}}
@media(max-width:720px){.header nav{justify-content:flex-start;gap:12px 19px}.header nav a{font-size:14px}.extra-section .section-heading{margin-bottom:24px}}
/* Optional pairs of photos: no wrapper or spacing when a section has no photos. */
.section-photos{width:100%}.energy-inner>.section-photos{grid-column:1/-1;margin-top:8px}.energy .section-photos figcaption{color:#c9dbe2}

/* Warm cloud and coffee palette. The background stays replaceable from the editor. */
:root{--ink:#493b32;--muted:#6e5d50;--paper:#faf4eb;--blue:#eee1d2;--line:#d7c7b5}
body{isolation:isolate;background:var(--paper)}
.site-background{position:fixed;inset:0;z-index:-1;pointer-events:none;background:#f9f2e8;overflow:hidden}
.site-background img{display:block;width:100%;height:100%;object-fit:cover;opacity:.56}
.site-background[data-strength=soft] img{opacity:.3}
.site-background[data-strength=clear] img{opacity:.82}
em{color:#8b6d53}
.header{padding-block:24px;flex-wrap:wrap;column-gap:36px;row-gap:22px}
.brand{flex:1 1 320px;max-width:450px;font-size:clamp(25px,2.3vw,30px)}
.brand>span{min-width:0;overflow-wrap:anywhere}
.brand-mark{display:block;flex:none;width:52px;height:64px;border:0;border-radius:0;object-fit:contain}
.header nav{flex:1 1 560px;gap:10px 22px;justify-content:flex-end}
.header-book{display:none}
.hero-panel.hero-portrait{background:#e5d6c4}
.hero-portrait{max-height:850px;align-self:start}
.portrait-caption{background:linear-gradient(transparent,rgba(52,38,29,.82));flex-wrap:wrap;gap:12px}
.portrait-caption a{white-space:normal}
.button-dark:hover{background:#674d3b}
.button-light:hover,.button-outline:hover{background:#e5d3bf}
.energy{background:rgba(193,162,135,.46);color:var(--ink);border-block:1px solid var(--line)}
.energy .eyebrow,.energy em{color:#73543d}
.energy p:not(.eyebrow),.energy-options span,.energy p.energy-source,.energy .section-photos figcaption{color:#5f4939}
.energy-options>div{border-color:#bfa68e}
.energy p:not(.eyebrow){max-width:none}
.energy-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.energy-options h3{overflow-wrap:anywhere}
.energy-options span{font-size:16px;line-height:1.75}
.extra-tinted{background:rgba(235,219,200,.48);border-block:1px solid var(--line)}
.intro-strip{background:rgba(255,250,243,.42)}
.intro-strip .direction-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;padding-block:18px}
.direction-links a{display:flex;align-items:baseline;gap:12px;min-width:0;padding:12px 0;font-size:15px;line-height:1.5}
.direction-links a:hover .direction-name{text-decoration:underline;text-underline-offset:5px}
.intro-strip .direction-links span+span{padding:0;border:0}
.direction-number{flex:none;color:#92785e;font-size:11px;letter-spacing:1px;width:20px}
.direction-name{min-width:0;overflow-wrap:anywhere}
@media(max-width:720px){.intro-strip .direction-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding-block:14px}.direction-links a{font-size:14px;gap:8px;padding-block:10px}}
.eyebrow{text-transform:uppercase}
.service-price strong{white-space:nowrap;font-size:clamp(25px,2.5vw,32px)}
.extra-book{gap:24px;max-width:100%}
.contact dd{overflow-wrap:anywhere}
@media(max-width:1050px){.brand{max-width:none}.header nav{justify-content:flex-start}}
@media(max-width:720px){
 .brand{flex-basis:100%;font-size:25px;gap:12px}.brand-mark{width:44px;height:54px}
 .header{padding-block:21px 18px;gap:20px}.header nav{flex-basis:100%;gap:12px 19px;justify-content:flex-start}
 .hero-portrait{max-height:none}.energy-options{grid-template-columns:1fr}
 .service{grid-template-columns:minmax(0,1fr) 98px}.service-price strong{font-size:25px}
 .extra-book{font-size:14px;padding-inline:18px;gap:16px}
 .portrait-caption{display:block}.portrait-caption .panel-name{margin-bottom:10px}
 .footer-name{font-size:24px}
}
