:root{--cream:#f9f7f1;--olive:#585c3a;--olive-dark:#3e4229;--ink:#303328;--muted:#65675b;--line:#d9d9cd;--paper:#efefe5;--rose:#ae283d;--serif:Georgia,'Times New Roman',serif;--sans:'Helvetica Neue',Helvetica,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--cream);color:var(--ink);font:1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--olive);color:var(--cream)}a{color:inherit;text-underline-offset:.3em}a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid var(--rose);outline-offset:6px}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.045em}em{color:var(--olive);font-weight:400}.wrap{width:min(100% - 7rem,1280px);margin-inline:auto}.eyebrow{font:500 .875rem/1.5 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--olive)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100px;left:1rem;background:var(--olive);color:white;padding:.75rem 1rem;z-index:10}.skip-link:focus{top:1rem}
.header{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:128px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:1.6rem;text-decoration:none}.brand img{display:block;width:88px;height:88px;object-fit:contain}.brand-parent{font-size:.875rem;color:var(--olive)}.header nav{display:flex;align-items:center;gap:2.5rem}.header nav a{display:inline-flex;gap:.7rem;min-height:48px;align-items:center;font-size:.9375rem;text-decoration:none}.header nav a:hover{text-decoration:underline}
.hero{padding-top:clamp(3.5rem,6vw,6rem);display:grid;grid-template-columns:1.55fr 1fr;column-gap:5%;align-items:center}.hero-copy .eyebrow{display:flex;align-items:center;gap:.875rem}.fine-line{display:inline-block;width:2rem;height:1px;background:var(--rose)}h1{font-size:clamp(4rem,7.4vw,6.875rem);line-height:1.02;margin:1.7rem 0 1.8rem}h1 em{letter-spacing:-.06em}.hero-description{font-size:1.0625rem;line-height:1.8;color:var(--muted)}.actions{display:flex;align-items:center;gap:1.8rem;flex-wrap:wrap;margin-top:2rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;min-height:56px;padding:.95rem 1.4rem;font-size:.9375rem;line-height:1.5;background:var(--olive);color:white;text-decoration:none;border:1px solid var(--olive);transition:background-color .18s ease,border-color .18s ease}.button:hover{background:var(--olive-dark);border-color:var(--olive-dark)}.button>span[aria-hidden]{font-size:1.25rem;line-height:1}.text-link{display:inline-flex;align-items:center;gap:1rem;min-height:48px;font-size:.9375rem;text-decoration-thickness:1px}.text-link:hover{color:var(--olive)}.availability{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:2rem 0;margin-left:1.75rem;color:var(--olive);align-self:center}.availability-time{font-family:var(--serif);font-size:clamp(7rem,12vw,11.5rem);line-height:1;letter-spacing:-.08em;margin:1rem 0 0 -.04em;white-space:nowrap}.availability-time span{font-size:.24em;letter-spacing:-.025em;margin-left:.12em}.availability-days{font-family:var(--serif);font-style:italic;font-size:2rem}.availability-services{font-size:.9375rem;margin:1.75rem 0;color:var(--muted)}.location-mini{display:inline-block;padding-block:.25rem;font-size:.875rem;line-height:1.7;text-decoration:none}.location-mini:hover{text-decoration:underline}.location-mini span{margin-left:.4rem}.hero-foot{grid-column:1/-1;display:flex;justify-content:space-between;gap:1rem;padding:1.4rem 0;margin-top:4.5rem;border-bottom:1px solid var(--line);color:var(--muted);font-size:.875rem}
.section{padding-block:6.5rem}.section-intro{margin-bottom:3rem}h2{font-size:clamp(2.6rem,4.2vw,4.25rem);line-height:1.1;margin-top:1.1rem}.services{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.service{padding:2.7rem;background:var(--paper)}.service-order{background:transparent;border:1px solid var(--line)}.service-type{color:var(--olive);font-size:.875rem}h3{font-size:clamp(2.35rem,3.25vw,3.2rem);line-height:1.12;margin-block:1.2rem}.service-description{color:var(--muted);max-width:28rem;min-height:5rem}.steps{padding:0;margin:2rem 0;list-style:none}.steps li{display:grid;grid-template-columns:1.8rem 1fr;gap:1rem;margin-block:1.4rem}.step-number{font:italic 1.6rem/1.25 var(--serif);color:var(--olive)}h4{font:500 1rem/1.55 var(--sans)}.steps p{color:var(--muted);font-size:1rem;margin-top:.3rem}.service-note{font-size:.875rem;padding-top:1.1rem;border-top:1px solid #d0d1c3;color:var(--olive)}.practical-note{color:var(--muted);font-size:.9375rem;margin-top:1.5rem}
.universe{background:var(--olive);color:var(--cream)}.universe-inner{padding-block:4.8rem 3.2rem}.universe .eyebrow{color:var(--cream)}.universe h2{font-size:clamp(3.1rem,6.2vw,6.3rem);max-width:58rem;line-height:1.07;margin-block:2rem 3rem}.universe em{color:#ece9d9}.universe-bottom{padding-top:1.8rem;border-top:1px solid #8b8e71;display:flex;justify-content:space-between;gap:3rem;align-items:end}.universe-bottom p{font-size:1rem;max-width:32rem;color:#f0efe7}.universe a{flex-shrink:0;color:var(--cream)}.universe a:hover{color:white}.universe a:focus-visible{outline-color:white}
.find-us{display:grid;grid-template-columns:1fr 1fr;gap:4rem;border-bottom:1px solid var(--line)}.address-block{border-left:1px solid var(--line);padding-left:3rem}address{font:400 clamp(1.5rem,2.2vw,2rem)/1.45 var(--serif);letter-spacing:-.02em;margin-top:1.2rem}address span{color:var(--olive)}.access-hours{font-size:.9375rem;color:var(--olive);margin-block:1.3rem 1.8rem}.map-caption{font-size:.875rem;color:var(--muted);margin-top:.8rem}.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:5rem}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:flex;justify-content:space-between;gap:1.25rem;align-items:center;cursor:pointer;padding:1.5rem 0;font-size:1rem;font-weight:500;line-height:1.6}summary::-webkit-details-marker{display:none}summary:hover{color:var(--olive)}.toggle{display:inline-block;position:relative;width:16px;height:16px;flex:0 0 16px}.toggle::before,.toggle::after{content:'';position:absolute;background:var(--olive);top:7px;left:1px;width:14px;height:1px}.toggle::after{transform:rotate(90deg);transition:transform .18s ease}details[open] .toggle::after{transform:rotate(0)}details>p{color:var(--muted);font-size:1rem;padding:0 2rem 1.5rem 0}details p a{color:var(--olive-dark)}
.footer{background:var(--paper);padding-block:2.8rem 1.5rem}.footer-main{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;padding-bottom:2rem}.footer-main>p{font:400 1.8rem/1.4 var(--serif);letter-spacing:-.025em}.footer-main>p span{color:var(--olive)}.footer-legal{border-top:1px solid var(--line);padding-top:1.4rem;display:flex;gap:1rem;justify-content:space-between;font-size:.875rem;color:var(--muted)}.footer-legal>div{display:flex;gap:1.6rem;flex-wrap:wrap}
/* Flexible tracks prevent long labels from widening narrow screens. */
html{-webkit-text-size-adjust:100%}
img{max-width:100%}
.header,.brand,.header nav,.hero-copy,.availability,.service,.steps li>div,.address-block,.faq-list,.universe-bottom>*{min-width:0}
.hero{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.services,.find-us{grid-template-columns:repeat(2,minmax(0,1fr))}
.faq{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
h1,h2,h3{overflow-wrap:normal;text-wrap:balance}
p,address,summary,a{overflow-wrap:break-word}
.button,.text-link{max-width:100%}
.button>span[aria-hidden],.text-link>span[aria-hidden]{flex-shrink:0}
.header nav{flex-wrap:wrap}
@media(max-width:1000px){
 .wrap{width:calc(100% - 4rem)}
 .brand-parent{display:none}
 .hero{column-gap:2rem}
 .availability{margin-left:0}
 .wide-break{display:none}
 .actions{gap:1rem}
 .service{padding:2rem}
 .section{padding-block:4.5rem}
 .find-us{gap:2rem}
 .address-block{padding-left:2rem}
 .faq{gap:2.5rem}
 .universe-bottom{flex-wrap:wrap;gap:1rem;align-items:start}
 .universe a{flex-shrink:1}
 .footer-main{flex-wrap:wrap}
 .footer-legal{flex-direction:column}
}
@media(max-width:900px){
 .hero{display:block;padding-top:3rem}
 h1{font-size:clamp(3rem,8.5vw,5.5rem);line-height:1.08}
 .desktop-break{display:none}
 .availability{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.25rem 1.5rem;margin-top:2.5rem;padding-block:1.5rem;border-bottom:0;align-items:center}
 .availability>.eyebrow,.availability-time,.availability-days{grid-column:1}
 .availability-time{font-size:clamp(4rem,12vw,6rem);margin:.2rem 0;letter-spacing:-.06em}
 .availability-days{font-size:1.5rem}
 .availability-services{grid-column:2;grid-row:1/3;font-size:.9375rem;margin:0;border-left:1px solid var(--line);padding-left:1rem}
 .location-mini{grid-column:2;grid-row:3;font-size:.875rem;line-height:1.6;border-left:1px solid var(--line);padding-left:1rem}
 .hero-foot{margin-top:0}
 .services{grid-template-columns:1fr;gap:1.25rem}
 .service-description{min-height:0;max-width:38rem}
 .find-us,.faq{display:block}
 .address-block{margin-top:2rem;padding:1.8rem 0 0;border-left:0;border-top:1px solid var(--line)}
 .faq-intro{margin-bottom:2rem}
 .faq-intro h2 br{display:none}
 .faq-intro h2 em::before{content:' '}
}
@media(max-width:600px){
 .wrap{width:calc(100% - 2.5rem)}
 .header{min-height:104px;gap:.75rem;padding-block:.5rem;flex-wrap:wrap}
 .brand{flex:0 0 auto}
 .brand img{width:80px;height:80px}
 .header nav{gap:.5rem 1rem;justify-content:flex-end}
 .header nav a{font-size:.875rem;min-height:48px;gap:.35rem}
 .header nav a span{display:none}
 .hero{padding-top:2.25rem}
 .hero-copy .eyebrow{font-size:.875rem;letter-spacing:.06em}
 .fine-line{width:1.25rem;flex-shrink:0}
 h1{font-size:clamp(2.75rem,11.5vw,4.3rem);margin-block:1.25rem;letter-spacing:-.04em}
 h1 em{letter-spacing:-.045em}
 .hero-description{font-size:1rem;line-height:1.7}
 .actions{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;margin-top:1.5rem}
 .button{min-height:54px;gap:1rem;padding:.95rem 1.15rem;font-size:1rem}
 .actions .text-link{justify-content:center;min-height:48px}
 .availability{gap:.25rem 1rem;margin-top:2rem}
 .availability>.eyebrow{font-size:.875rem;letter-spacing:.04em}
 .availability-services{font-size:.875rem;padding-left:.75rem}
 .location-mini{padding-left:.75rem}
 .hero-foot{padding-bottom:1.4rem}
 .hero-foot>span:last-child{display:none}
 .section{padding-block:3.25rem}
 h2{font-size:clamp(2rem,8vw,2.8rem);line-height:1.15}
 .section-intro{margin-bottom:1.75rem}
 .service{padding:1.75rem 1.25rem}
 h3{font-size:clamp(2rem,8.5vw,2.65rem);line-height:1.15}
 .steps{margin-block:1.5rem}
 .steps li{grid-template-columns:1.5rem minmax(0,1fr);gap:.65rem}
 .practical-note{margin-top:1.25rem}
 .universe-inner{padding-block:3rem 2.25rem}
 .universe h2{font-size:clamp(2.2rem,8.5vw,3.2rem);line-height:1.15;margin-block:1.5rem 2rem}
 .universe-bottom{display:block}
 .universe-bottom .text-link{margin-top:1rem}
 address{font-size:1.5rem}
 .address-block .button{display:flex;width:100%}
 summary{gap:1rem;padding-block:1.25rem}
 details>p{padding-right:0}
 .footer{padding-top:2rem}
 .footer-main{display:block;padding-bottom:1.4rem}
 .footer-main>p{font-size:1.5rem}
 .footer-main .text-link{margin-top:.75rem}
 .footer-legal>div{flex-direction:column;gap:.6rem}
}
@media(max-width:380px){
 .wrap{width:calc(100% - 2rem)}
 .header{justify-content:center;gap:0;padding-bottom:.5rem}
 .brand img{width:88px;height:88px}
 .header nav{width:100%;justify-content:space-between;gap:.5rem}
 .header nav a{font-size:.9375rem}
 .hero{padding-top:1.75rem}
 .availability{column-gap:.65rem}
 .availability-time{font-size:4rem}
 .availability-days{font-size:1.3rem}
}
/* Quiet editorial finish and an intentionally small, real-media gallery. */
:root{--cream:#faf8f3;--ink:#292e26;--paper:#f0efe8;--line:#dcdcd1}
.header{min-height:132px}
.header nav a{letter-spacing:.025em}
.hero{padding-bottom:.25rem}
.hero-foot{font-size:.875rem;letter-spacing:.015em}
.availability{padding-block:2.5rem}
.service{background:transparent;border:1px solid var(--line);padding:2.75rem}
.service-order{background:var(--paper)}
.service-type{letter-spacing:.055em}
.button{transition:background-color .2s ease,border-color .2s ease}
.universe{background:#343c2f}
.universe-inner{padding-top:5rem}
.universe h2{font-size:clamp(2.4rem,5.5vw,5.3rem)}
.universe-bottom{align-items:center}
.gallery-intro{display:flex;justify-content:space-between;gap:2rem;align-items:baseline;margin-top:4rem}
.gallery-intro>p:first-child{font:1.75rem/1.3 var(--serif);letter-spacing:-.02em}
.gallery-intro>p:last-child{max-width:25rem;color:#e3e4da;font-size:.9375rem}
.gallery-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:3rem;margin-top:2rem;align-items:start}
.gallery-grid figure{min-width:0;margin:0}
.gallery-photo>a{display:block;position:relative;overflow:hidden}
.gallery-photo img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.gallery-enlarge{position:absolute;right:1rem;bottom:1rem;background:#faf8f3;color:#303328;padding:.5rem .8rem;font: .875rem/1.4 var(--sans)}
.gallery-video{padding-top:4rem}
.gallery-video video{display:block;width:100%;height:auto;aspect-ratio:464/832;max-height:660px;background:#242a20;object-fit:contain}
.gallery-grid figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;padding-top:1rem;font-size:.875rem;color:#ecece3}
.gallery-grid figcaption span:first-child{font-size:.8125rem;letter-spacing:.055em;text-transform:uppercase}
.gallery-disclaimer{padding-top:1.5rem;margin-top:2rem;border-top:1px solid #78806f;font-size:.9375rem;color:#e3e4da}
@media(max-width:900px){
 .header{min-height:112px}
 .header nav{gap:1.25rem}
 .gallery-grid{gap:1.5rem}
 .gallery-intro{flex-direction:column;gap:.75rem;margin-top:3rem}
 .gallery-intro>p:last-child{max-width:36rem}
 .gallery-video{padding-top:2rem}
}
@media(max-width:600px){
 .header{justify-content:center;gap:0;padding-top:.25rem}
 .brand img{width:94px;height:94px}
 .header nav{width:100%;justify-content:space-between;gap:.5rem;padding-bottom:.25rem}
 .header nav a{font-size:.875rem;letter-spacing:0}
 .availability{padding-block:1.5rem}
 .service{padding:1.75rem 1.25rem}
 .universe-inner{padding-top:3rem}
 .universe h2{font-size:clamp(2.2rem,8.5vw,3.2rem)}
 .gallery-grid{grid-template-columns:minmax(0,1fr);gap:2.5rem;margin-top:1.5rem}
 .gallery-video{padding-top:0}
 .gallery-video video{max-height:540px}
 .gallery-intro{margin-top:2.5rem}
 .gallery-intro>p:first-child{font-size:1.6rem}
 .gallery-grid figcaption{gap:.5rem;font-size:.875rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
@media print{body{background:white;color:black}.wrap{width:100%}.section{padding-block:2rem}.hero{padding-top:2rem}.universe{color:black;background:white}.universe .eyebrow,.universe em,.universe-bottom p,.universe a{color:black}.universe-inner{padding-block:2rem}.header nav,.skip-link{display:none}.service,details{break-inside:avoid}details::details-content{content-visibility:visible}}
