@charset "UTF-8";
:root{--paper:#f4f1eb;--ink:#302e2c;--muted:#6c6962;--accent:#70555c;--line:#d4cfc6;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2{font-weight:400;letter-spacing:-.055em;line-height:1.04}h2{font-size:clamp(36px,4.4vw,70px)}h2 em,h1 em{font-family:var(--serif);font-weight:400;color:var(--accent);letter-spacing:-.06em}h3{font-weight:400}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:#d9c7cd}.header{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 4.1%;border-bottom:1px solid var(--line);gap:30px;background:var(--paper);position:relative;z-index:20}.logo{font-size:37px;line-height:1;letter-spacing:-3px}.logo span,.footer-logo span{color:var(--accent)}nav{display:flex;gap:26px;font-size:13px}nav a{position:relative}nav a:after,.text-link:after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a:hover:after,.text-link:hover:after{transform:scaleX(1)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--accent);color:#fff;padding:17px 24px;min-height:54px;font-size:13px;border:1px solid var(--accent);transition:background .25s,transform .25s}.button:hover{background:#513d43;transform:translateY(-2px)}.button span{font-size:21px;line-height:1}.button.small{padding:12px 19px;min-height:44px}.menu{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:710px;height:calc(100svh - 96px);max-height:940px}.hero-copy{padding:64px 8.2% 28px;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase}.dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--accent);margin-right:8px;vertical-align:middle}.hero h1{font-size:clamp(55px,6.9vw,106px);margin:51px 0 29px;letter-spacing:-.065em}.hero h1 em{font-size:1.15em}.intro{font-size:16px;line-height:1.7;color:var(--muted);margin-bottom:32px}.hero-bottom{margin-top:auto;padding-top:42px;display:flex;justify-content:space-between;width:100%;font-size:10px;letter-spacing:.04em}.hero-photo{position:relative;overflow:hidden}.hero-photo img{object-position:50% 55%;animation:hero-in 1.4s ease-out both}.photo-note{position:absolute;left:27px;bottom:24px;font-size:11px;color:#fff;letter-spacing:.12em}.photo-seal{position:absolute;right:24px;bottom:25px;width:128px;height:128px;border-radius:50%;background:var(--paper);color:var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:11px;line-height:1.5;transform:rotate(9deg);transition:transform .5s}.photo-seal:hover{transform:rotate(0)}.photo-seal span{font-size:26px}.section{padding:90px 5.5%}.section-label{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;margin-bottom:58px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.space-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;margin-bottom:60px}.space-text{max-width:470px;padding-top:6px}.space-text p+p{margin-top:20px}.text-link{display:inline-block;position:relative;font-size:13px;padding-bottom:3px;border-bottom:1px solid currentColor;line-height:1.6}.space-text .text-link{margin-top:28px}.wide-photo{height:520px;position:relative}.wide-photo img{object-position:center 38%}.wide-photo figcaption{position:absolute;bottom:22px;left:24px;color:#fff;background:#302e2c99;padding:8px 14px;font-size:11px}.amenities{display:flex;justify-content:space-between;gap:20px;padding:25px 0;border-bottom:1px solid var(--line);font-size:11px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:48px}.section-heading>p{font-size:13px;color:var(--muted);padding-bottom:7px}.practice{padding-top:15px}.practice-layout{display:grid;grid-template-columns:.92fr 1fr;gap:8%}.practice-image{height:685px;position:relative}.practice-image img{object-position:50% 45%}.practice-image>span{position:absolute;bottom:22px;left:25px;color:#fff;letter-spacing:.09em;font-size:11px}.practice-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;gap:20px;cursor:pointer;padding:25px 0}summary::-webkit-details-marker{display:none}summary h3{font-size:25px;line-height:1.2;letter-spacing:-.035em}.number{font-size:10px;color:var(--muted);width:20px}.plus{margin-left:auto;font-size:23px;font-weight:300;transition:transform .3s}details[open] .plus{transform:rotate(45deg)}.detail-body{padding:0 25px 28px 40px;color:var(--muted);font-size:14px}.detail-body p{margin:8px 0 15px}.tag{display:inline-block;border:1px solid var(--line);border-radius:30px;font-size:10px;padding:3px 10px;margin-bottom:6px;color:var(--accent)}.detail-meta{font-size:11px;margin:20px 0;color:var(--ink);line-height:1.9}.detail-body .text-link{color:var(--accent);font-size:12px}.first{background:var(--accent);color:var(--paper);display:grid;grid-template-columns:1.2fr 1fr;gap:9%;padding-top:85px;padding-bottom:85px}.first .eyebrow{margin-bottom:32px}.first h2 em{color:#e0d1d2}.first-info>p{max-width:460px;color:#f0e8e7}.first-price{display:flex;gap:30px;align-items:center;margin:25px 0}.first-price strong{font-size:42px;font-weight:400;letter-spacing:-.05em}.first-price small{font-size:17px}.first-price>span{font-size:11px;line-height:1.7;color:#e0d1d2}.button.light{background:var(--paper);color:var(--accent);border-color:var(--paper)}.button.light:hover{background:#fff}.day-filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:25px}.day-filters button{border:1px solid var(--line);background:transparent;padding:10px 20px;border-radius:24px;font-size:12px;color:var(--ink);transition:background .2s}.day-filters button.active,.day-filters button:hover{background:var(--accent);border-color:var(--accent);color:#fff}.schedule-row{display:grid;grid-template-columns:.6fr .75fr 1.7fr 1fr .7fr;align-items:center;gap:20px;border-top:1px solid var(--line);padding:23px 0}.schedule-row:last-child{border-bottom:1px solid var(--line)}.schedule-day{font-size:12px;color:var(--muted)}.schedule-time{font-size:25px;letter-spacing:-.05em}.schedule-name{font-size:17px}.schedule-name small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.schedule-teacher{font-size:12px}.schedule-row>a{text-align:right;font-size:12px;color:var(--accent)}.schedule-row>a:hover{text-decoration:underline}.footnote{font-size:11px;color:var(--muted);max-width:780px;margin-top:20px}.footnote a{text-decoration:underline}.prices{background:#eae6df}.price-grid{display:grid;grid-template-columns:repeat(5,1fr);border-left:1px solid #c9c2b8}.price-card{padding:25px 20px 21px;border:1px solid #c9c2b8;border-left:0;transition:background .25s;display:flex;flex-direction:column}.price-card:hover{background:#f7f4ee}.price-card .eyebrow{font-size:9px;color:var(--muted)}.price-card h3{font-size:47px;letter-spacing:-.05em;margin-top:24px}.price-card h3 span{font-size:15px;letter-spacing:-.01em}.price-card strong{font-size:28px;font-weight:400;margin:22px 0 6px;letter-spacing:-.04em}.price-card small{font-size:13px}.price-card p{font-size:10px;color:var(--muted);min-height:34px}.card-link{display:block;border-top:1px solid #c9c2b8;padding-top:15px;margin-top:30px;font-size:10px}.price-card.featured{background:var(--accent);color:var(--paper);border-color:var(--accent)}.price-card.featured .eyebrow,.price-card.featured p{color:#e0d1d2}.price-card.featured:hover{background:#60464e}.personal{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:40px 0;border-bottom:1px solid #c9c2b8;margin-top:25px}.personal h3{font-size:23px;max-width:200px;line-height:1.2;letter-spacing:-.03em}.personal p{font-size:12px;color:var(--muted)}.personal strong{font-weight:400;color:var(--ink)}.benefits{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-top:27px;font-size:11px;color:var(--muted)}.benefits strong{font-size:13px;font-weight:400;color:var(--ink);display:inline-block;margin-bottom:6px}.together{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding-top:110px;padding-bottom:110px}.together-photo{height:680px}.together-copy .eyebrow{margin-bottom:30px}.together-copy h2{font-size:clamp(35px,3.7vw,58px)}.extra{border-top:1px solid var(--line);padding-top:23px;margin-top:35px}.extra h3{font-size:21px;letter-spacing:-.03em}.extra p{font-size:13px;color:var(--muted);margin:13px 0 16px;max-width:410px}.faq{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding-top:20px}.faq .eyebrow{margin-bottom:28px}.faq h2{font-size:clamp(35px,3.7vw,58px)}.faq summary h3,.route summary h3{font-size:16px;letter-spacing:-.015em;line-height:1.4}.faq .detail-body,.route .detail-body{padding-left:0;font-size:13px}.faq details:first-child{border-top:1px solid var(--line)}.visit{background:#eae6df}.visit-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:9%;align-items:center}.visit-photo{height:620px}.visit h2{font-size:clamp(40px,4.6vw,70px)}.address{margin:30px 0;font-size:17px}.route{margin-top:35px;max-width:480px;border-top:1px solid var(--line)}.route ol{padding-left:18px}.route li+li{margin-top:10px}footer{padding:50px 5.5% 25px}.footer-top{display:flex;align-items:center;gap:45px;justify-content:space-between;font-size:14px}.footer-logo{font-size:clamp(90px,23vw,350px);line-height:1.35;letter-spacing:-.085em;display:block;text-align:center;margin:20px 0 15px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}.skip{position:fixed;top:-100px;left:10px;background:white;padding:15px;z-index:99}.skip:focus{top:10px}.reveal{transition:opacity .8s ease,transform .8s ease}.js .reveal.pending{opacity:0;transform:translateY(20px)}@keyframes hero-in{from{transform:scale(1.035);opacity:.7}to{transform:scale(1);opacity:1}}
@media(min-width:1600px){body{max-width:1920px;margin:auto}}@media(max-width:1050px){nav{gap:15px}.header{gap:20px}.hero{min-height:650px}.hero-copy{padding-top:45px}.hero h1{margin-top:45px}.hero-bottom{flex-direction:column;gap:10px}.section{padding:65px 5%}.practice{padding-top:10px}.space-grid{gap:35px}.practice-layout{gap:5%}.practice-image{height:650px}.price-card{padding:20px 12px}.price-card strong{font-size:25px}.price-card h3{font-size:40px}.personal{flex-wrap:wrap}.wide-photo{height:430px}.together-photo{height:600px}.visit-photo{height:560px}.first{gap:5%}}
@media(max-width:700px){html{scroll-padding-top:20px}.header{height:77px;padding:0 5%;gap:17px}.logo{font-size:32px;margin-right:auto}.header .button{font-size:11px;padding:10px 13px;gap:15px;min-height:40px}.menu{display:flex;flex-direction:column;gap:6px;justify-content:center;padding:8px 0 8px 6px;border:0;background:transparent;width:29px;height:40px}.menu span{display:block;width:23px;height:1px;background:var(--ink)}nav{display:none;position:absolute;top:77px;left:0;right:0;background:var(--paper);padding:22px 6%;border-bottom:1px solid var(--line);font-size:17px;box-shadow:0 20px 30px #302e2c0c}nav.open{display:flex;flex-direction:column;gap:17px}.hero{height:auto;max-height:none;min-height:0;display:flex;flex-direction:column}.hero-copy{padding:34px 6% 29px}.hero h1{font-size:clamp(55px,13vw,84px);margin:28px 0 20px}.intro{font-size:14px;margin-bottom:25px}.hero-copy .button{font-size:12px;padding:15px 19px}.hero-bottom{margin-top:30px;padding-top:0;flex-direction:row;font-size:9px}.hero-photo{height:530px}.hero-photo img{object-position:50% 53%}.photo-seal{width:110px;height:110px;right:19px;bottom:23px;font-size:10px}.photo-note{left:20px;font-size:9px;max-width:150px}.section{padding:53px 6%}.section-label{font-size:9px;margin-bottom:35px;gap:25px}.section-label span:last-child{text-align:right;max-width:160px}.space-grid,.practice-layout,.first,.together,.faq,.visit-grid{grid-template-columns:1fr;gap:32px}.space-grid{margin-bottom:35px}.space-text{font-size:14px}.wide-photo{height:290px}.wide-photo figcaption{left:12px;bottom:12px;font-size:9px}.amenities{display:grid;grid-template-columns:1fr 1fr;font-size:10px;gap:18px;padding:22px 0}.section-heading{align-items:flex-start;flex-direction:column;gap:22px;margin-bottom:33px}.section-heading>p{font-size:12px}.practice{padding-top:5px}.practice-image{height:480px}.practice-list summary{padding:22px 0}.practice-list summary h3{font-size:24px}.detail-body{font-size:13px;padding-right:5px}.first{padding-top:52px;padding-bottom:52px;gap:25px}.first .eyebrow{margin-bottom:23px}.first-info>p{font-size:14px}.first h2{font-size:39px}.first-price{margin:20px 0}.schedule-row{grid-template-columns:38px 65px 1fr;gap:12px;position:relative;padding:20px 0 42px}.schedule-day{font-size:11px}.schedule-time{font-size:23px}.schedule-name{font-size:15px}.schedule-teacher{position:absolute;bottom:15px;left:127px;font-size:10px}.schedule-row>a{position:absolute;bottom:15px;right:0;font-size:10px}.day-filters{gap:7px}.day-filters button{padding:9px 14px;font-size:11px}.day-filters button:first-child{flex-basis:100%;max-width:130px}.price-grid{grid-template-columns:repeat(2,1fr);border-left:1px solid #c9c2b8;border-top:1px solid #c9c2b8}.price-card{border-top:0;padding:22px 17px}.price-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.price-card:first-child h3{grid-column:1;grid-row:2;margin-top:5px}.price-card:first-child>strong{grid-column:2;grid-row:2;text-align:right;align-self:center;margin:0}.price-card:first-child>p{grid-column:1;grid-row:3;min-height:0}.price-card:first-child .card-link{grid-column:2;grid-row:3;border:0;margin:0;padding:0;text-align:right}.price-card h3{margin-top:16px}.price-card strong{margin-top:12px}.card-link{margin-top:20px}.personal{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:30px 0;margin-top:0}.personal h3{font-size:22px}.personal p{font-size:11px}.personal .text-link{font-size:11px;justify-self:start}.benefits{grid-template-columns:1fr;gap:20px}.together-photo{height:460px}.together-copy h2,.faq h2{font-size:39px}.together-copy .eyebrow{margin-bottom:22px}.faq{padding-top:0}.faq summary h3{font-size:15px}.visit-grid{gap:35px}.visit h2{font-size:43px}.visit-photo{height:440px}.address{font-size:15px;margin:25px 0}.route{margin-top:28px}.footer-top{flex-wrap:wrap;gap:20px;font-size:13px}.footer-top>p{flex-basis:100%}.footer-top .text-link{font-size:12px}.footer-logo{font-size:23vw;margin:30px 0}.footer-bottom{font-size:9px;flex-wrap:wrap;gap:12px}.footer-bottom span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal.pending{opacity:1;transform:none}}

/* Vector icons render consistently without emoji-font substitution. */
.icon{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.16em;flex-shrink:0;overflow:visible}.button .icon{width:21px;height:21px;vertical-align:middle}.photo-seal .icon{width:26px;height:26px}.amenities>span{display:flex;align-items:center;gap:10px}.amenities .amenity-icon{width:15px;height:15px;color:var(--accent);stroke-width:1.4}@media(max-width:700px){.amenities>span{gap:7px}.amenities .amenity-icon{width:13px;height:13px}}
