@font-face{font-family:Cormorant;src:url('assets/fonts/CormorantGaramond.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/fonts/CormorantGaramond-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/Manrope.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/Manrope-Semibold.woff2') format('woff2');font-weight:600 800;font-display:swap}
@font-face{font-family:Allura;src:url('assets/fonts/Allura.woff2') format('woff2');font-display:swap}
:root{--ivory:#f7f2eb;--cream:#e8d9c9;--taupe:#b49a82;--gold:#95724d;--ink:#35261f;--muted:#6b584b;--line:#d8c8b7;--white:#fff;--serif:Cormorant,Georgia,serif;--sans:Manrope,Arial,sans-serif;--script:Allura,cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--ivory);color:var(--ink);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}img{max-width:100%;display:block}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{text-underline-offset:5px}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.05}h1{font-size:clamp(4.4rem,7.5vw,7.6rem);letter-spacing:-.045em}h2{font-size:clamp(3.3rem,4.8vw,5rem);letter-spacing:-.03em}h3{font-size:2rem}h4{font-size:1.8rem}em{font-weight:400}p+p{margin-top:1.2rem}p{max-width:65ch}::selection{background:var(--cream)}:focus-visible{outline:3px solid var(--ink);outline-offset:5px}input:focus-visible,select:focus-visible{outline-offset:2px}[hidden]{display:none!important}.wrap{max-width:1320px;width:calc(100% - 112px);margin:auto}.eyebrow{font-size:.75rem;letter-spacing:.17em;font-weight:600;line-height:1.7}.small{font-size:.875rem;line-height:1.7;color:var(--muted)}.script{font-family:var(--script);font-size:2.5rem;line-height:1.2}.skip-link{position:fixed;top:-100px;left:20px;z-index:20;background:var(--ink);color:white;padding:10px 20px}.skip-link:focus{top:10px}.topline{background:var(--ink);color:var(--ivory);text-align:center;font-size:.75rem;letter-spacing:.14em;padding:10px 15px}.topline span{padding:0 12px}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 0}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;flex-shrink:0}.brand-mark{font:4rem/.8 var(--serif);letter-spacing:-.12em;padding-right:6px}.brand-name{font-size:.7rem;line-height:1.7;letter-spacing:.19em;border-left:1px solid var(--gold);padding-left:16px}.header nav{display:flex;gap:32px;align-items:center}.header nav>a{font-size:.875rem;text-decoration:none}.header nav>a:not(.button):hover{text-decoration:underline}.button{border:1px solid var(--ink);background:var(--ink);color:var(--ivory);display:inline-flex;justify-content:center;align-items:center;gap:24px;padding:16px 24px;font-size:.875rem;font-weight:600;text-decoration:none;min-height:52px;transition:background .2s,color .2s}.button:hover{background:var(--muted);border-color:var(--muted)}.button-small{padding:12px 18px;min-height:46px}.button-light{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}.button-light:hover{background:var(--cream);color:var(--ink)}.text-link{display:inline-flex;gap:20px;align-items:center;text-decoration:none;border-bottom:1px solid var(--gold);padding:8px 0;font-size:.875rem;font-weight:600}.text-link:hover{color:var(--gold)}.menu-button{background:transparent;color:var(--ink);-webkit-appearance:none;appearance:none;border:1px solid var(--line);border-radius:0;padding:8px 14px;min-height:44px}.hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:680px;padding-top:25px;padding-bottom:54px;gap:32px;align-items:center}.hero-copy{padding:35px 0;position:relative;z-index:2}.hero h1{margin:24px 0 26px}.hero-description{max-width:410px;color:var(--muted)}.button-row{display:flex;align-items:center;gap:24px;margin-top:34px;flex-wrap:wrap}.hero-signature{display:flex;align-items:center;gap:14px;margin-top:37px}.hero-art{height:600px;position:relative}.hero-marble{position:absolute;inset:0 0 0 20px;background:url('assets/satin-marble.webp') center/cover;border-radius:220px 220px 0 0}.hero-photo{position:absolute;top:44px;left:0;right:46px;bottom:56px;overflow:hidden;border-radius:220px 220px 0 0;border:9px solid var(--ivory)}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 39%}.photo-caption{position:absolute;bottom:9px;left:35px;right:18px;background:var(--ivory);padding:15px 22px;border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.photo-caption>span:first-child{font-size:.65rem;letter-spacing:.14em}.photo-caption .script{font-size:2rem}.promise-bar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}.promise-inner{display:flex;justify-content:center;gap:20px 70px}.promise-inner>span{font-size:.875rem}.promise-inner i{font-size:1.5rem;color:var(--gold);font-style:normal;margin-right:12px}.section{padding-top:100px;padding-bottom:100px}.section-heading{display:flex;justify-content:space-between;gap:70px;align-items:flex-end;margin-bottom:38px}.section-heading h2{margin-top:14px}.section-heading>p{max-width:345px;color:var(--muted)}.category-nav{display:flex;gap:42px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:40px}.category-nav a{font-size:.875rem;display:flex;gap:20px;align-items:center;text-decoration:none}.category-nav a:hover{text-decoration:underline}.category-nav span{font-size:.75rem;color:var(--muted)}.combination{background:var(--ink);color:var(--ivory);display:flex;gap:24px;justify-content:space-between;align-items:center;padding:33px 38px;margin-bottom:52px}.combination .eyebrow{color:var(--cream)}.combination h3{font-size:2.3rem;margin:10px 0}.combination p:last-child{font-size:.875rem}.group-heading{display:flex;gap:18px;align-items:center;margin-bottom:22px}.group-heading .eyebrow{color:var(--gold)}.treatment-group+.treatment-group{margin-top:48px}.treatment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.treatment-card{padding:26px;background:#fbf8f4;border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}.treatment-card p{font-size:.875rem;color:var(--muted);margin:16px 0 20px}.costs{margin-top:auto;border-top:1px solid var(--line);padding:14px 0 7px}.costs>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:5px}.costs span{font-size:.875rem}.costs strong{font:1.9rem var(--serif)}.treatment-card .text-link{font-size:.8rem;justify-content:space-between;margin-top:13px;align-self:stretch}.section-note{margin-top:18px}.consultation-note{border-top:1px solid var(--line);padding-top:30px;margin-top:36px;display:grid;grid-template-columns:1fr 1.5fr;gap:8px 40px}.consultation-note p{color:var(--muted);font-size:.875rem}.consultation-note .text-link{grid-column:1;width:max-content}.about-section{background:var(--cream);padding:90px 0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:center}.portrait-frame{position:relative;aspect-ratio:4/5;overflow:hidden;max-width:480px;box-shadow:18px 18px 0 #c8af96}.portrait-frame img{position:absolute;top:-31.6%;left:0;height:163.3%;width:100%;max-width:none;object-fit:cover}.portrait-label{position:absolute;bottom:0;left:0;right:0;padding:16px;background:var(--ink);color:var(--ivory);text-align:center;font-size:.7rem;letter-spacing:.19em}.about-copy h2{margin:16px 0 24px}.about-copy .intro{font:1.8rem/1.15 var(--serif);margin-bottom:24px}.about-copy>p:not(.eyebrow):not(.intro){color:#4e3c2e;font-size:.95rem}.signature{display:block;font-size:3.7rem;margin-top:27px;margin-bottom:12px}.room-grid{display:grid;grid-template-columns:1fr 1.05fr 1fr;gap:30px;align-items:center}.room-grid figure img{height:350px;width:100%;object-fit:cover;object-position:50% 34%}.room-grid figure img{border-radius:150px 150px 0 0}.room-grid figcaption{font-size:.75rem;color:var(--muted);margin-top:12px}.room-quote{text-align:center;padding:20px 0}.room-quote>.script{color:var(--muted)}.room-quote h3{font-size:2.7rem;line-height:1.15;margin:20px 0}.room-quote .text-link{font-size:.8rem}.visit-section{background:var(--ink);color:var(--ivory);padding:85px 0}.visit-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:95px}.visit-grid .eyebrow{color:var(--cream)}.visit-grid h2{margin:16px 0 30px}.visit-place{font:1.7rem var(--serif);margin-bottom:10px}.visit-grid address{font-style:normal;font-size:.95rem;color:var(--cream);margin-bottom:22px}.visit-grid .small{color:var(--cream)}.visit-grid .text-link{border-color:var(--taupe)}.opening h3{font-size:2.3rem}.opening dl{margin:20px 0}.opening dl div{display:flex;justify-content:space-between;border-bottom:1px solid #6b584b;padding:10px 0}.opening dd{margin:0}.visit-policy{border-top:1px solid #6b584b;padding-top:28px;margin-top:30px}.visit-policy p{font-size:.875rem;color:var(--cream);margin-top:10px}.booking-section{display:grid;grid-template-columns:1fr 1.2fr;gap:90px;align-items:start}.booking-intro h2{margin:16px 0 26px}.booking-intro>p:not(.eyebrow){color:var(--muted)}.contact-links{display:flex;flex-direction:column;margin-top:35px;gap:6px;align-items:flex-start}.contact-links a{font-size:.875rem;text-decoration:none;padding:8px 0;border-bottom:1px solid var(--line)}.contact-links span{margin-left:22px}.booking-panel{border:1px solid var(--line);background:#fffaf4;padding:34px}.form-step{font-size:.75rem;letter-spacing:.13em;margin-bottom:25px;color:var(--muted)}.field{margin-bottom:22px;min-width:0}.field label{display:block;font-size:.875rem;font-weight:600;margin-bottom:7px}.field input,.field select{display:block;min-width:0;width:100%;border:1px solid #a68d77;border-radius:0;background:#fffdf9;color:var(--ink);padding:12px;min-height:50px;font-size:1rem}.field input[aria-invalid=true],.field select[aria-invalid=true]{border:2px solid #9b2d25}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field-help{margin-top:-10px;margin-bottom:25px;font-size:.8rem}.check{display:flex;align-items:flex-start;gap:12px;font-size:.875rem;line-height:1.6;cursor:pointer}.check input{width:20px;height:20px;min-width:20px;margin:4px 0;accent-color:var(--ink)}.privacy-hint{font-size:.75rem;color:var(--muted);margin:20px 0}.full-width{width:100%;text-align:center}.form-error{color:#8b211a;background:#fff1ee;border-left:3px solid #8b211a;padding:12px;font-size:.875rem;margin-bottom:16px}.booking-panel h3{font-size:2.4rem;margin-bottom:16px}.booking-panel #request-review>p{font-size:.875rem}.booking-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--ivory);padding:18px;border:1px solid var(--line);font: .875rem/1.7 var(--sans);margin:25px 0}.review-actions{display:flex;justify-content:space-between;gap:20px;margin:12px 0}.text-button{border:0;border-bottom:1px solid var(--gold);padding:10px 0;background:none;color:var(--ink);font-size:.875rem;min-height:44px}.faq-section{padding-bottom:90px}.faq-section h2{margin:14px 0 32px;font-size:3.4rem}.faq-list{max-width:900px}.faq-list details{border-top:1px solid var(--line);padding:0}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font-size:1rem;font-weight:600;padding:22px 2px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';font-size:1.5rem;font-weight:400;line-height:1}.faq-list details[open] summary:after{content:'−'}.faq-list details p{color:var(--muted);font-size:.95rem;padding:0 0 24px 2px;max-width:760px}.footer{display:flex;justify-content:space-between;align-items:center;gap:32px;border-top:1px solid var(--line);padding-top:40px;padding-bottom:40px}.footer>div>p{font:1.8rem var(--script);margin-top:20px}.footer>div:nth-child(2){display:flex;gap:25px}.footer a:not(.brand){font-size:.875rem}.footer>.small{text-align:right;font-size:.75rem}.mobile-book{display:none}.legal{padding-top:70px;padding-bottom:90px;max-width:820px}.legal h1{margin:14px 0 30px;font-size:5rem}.legal h2{font-size:2.3rem;margin:35px 0 16px}.legal p{margin-bottom:20px}.legal .button{margin-top:18px}
.menu-button{display:none}
.header .menu-button,
.header .menu-button:hover,
.header .menu-button:focus,
.header .menu-button:active,
.header .menu-button[aria-expanded="true"],
.header #main-nav>a:not(.button),
.header #main-nav>a:not(.button):link,
.header #main-nav>a:not(.button):visited,
.header #main-nav>a:not(.button):hover,
.header #main-nav>a:not(.button):focus,
.header #main-nav>a:not(.button):active{color:#35261f;-webkit-text-fill-color:#35261f}
.header #main-nav>a.button,
.header #main-nav>a.button:link,
.header #main-nav>a.button:visited,
.header #main-nav>a.button:hover,
.header #main-nav>a.button:focus,
.header #main-nav>a.button:active{color:#f7f2eb;-webkit-text-fill-color:#f7f2eb}
.header .menu-button>span,.header #main-nav>a>span{-webkit-text-fill-color:inherit}
@media(min-width:1500px){.hero{min-height:735px}.hero-art{height:650px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.header nav{gap:18px}.header nav>a{font-size:.8rem}.hero{gap:15px;min-height:610px}.hero-art{height:530px}.hero h1{font-size:5.7rem}.photo-caption .script{font-size:1.7rem}.photo-caption>span:first-child{font-size:.6rem}.button-row{gap:15px}.about-grid,.visit-grid,.booking-section{gap:45px}.treatment-card{padding:22px}.treatment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{gap:30px}.room-quote h3{font-size:2.2rem}.room-grid{gap:22px}.footer>div:nth-child(2){gap:16px}}
@media(max-width:800px){.header{flex-wrap:wrap;padding:22px 0}.menu-button:not([hidden]){display:inline-flex;gap:16px}.header nav{width:100%;display:flex;flex-wrap:wrap;padding:20px 0 0;gap:20px}.header.menu-ready nav{display:none}.header.menu-ready nav.is-open{display:flex}.hero{grid-template-columns:1fr 1fr;gap:15px}.hero h1{font-size:4.6rem}.hero-art{height:485px}.hero-photo{right:20px;top:30px;bottom:70px}.hero-description{font-size:.95rem}.hero-signature{margin-top:20px}.photo-caption{left:12px;right:0;bottom:15px;padding:12px;display:block}.photo-caption>span{display:block}.photo-caption .script{font-size:1.8rem}.hero .button{font-size:.8rem;padding:14px 16px}.promise-inner{flex-wrap:wrap;justify-content:center;gap:10px 25px}.promise-inner>span{font-size:.8rem}.section-heading{display:block}.section-heading>p{margin-top:22px;max-width:550px}.combination{padding:27px;align-items:flex-start;flex-direction:column}.about-grid{gap:35px}.about-copy h2{font-size:3rem}.about-copy .intro{font-size:1.6rem}.about-copy>p:not(.eyebrow):not(.intro){font-size:.875rem}.room-grid{grid-template-columns:1fr 1fr}.room-quote{grid-column:1/-1;grid-row:2;padding-top:15px}.room-quote h3 br{display:none}.room-quote h3{font-size:2.5rem}.visit-grid{gap:35px}.booking-section{grid-template-columns:1fr;gap:38px}.booking-intro>p{max-width:580px}.contact-links{flex-direction:row;flex-wrap:wrap;gap:18px;margin-top:20px}.footer{flex-wrap:wrap}.footer>.small{text-align:left}.section{padding:75px 0}.about-section{padding:65px 0}.category-nav{gap:25px}.category-nav a{gap:12px}.portrait-frame{aspect-ratio:3/5}.portrait-frame img{height:163%;object-fit:cover}.consultation-note{grid-template-columns:1fr}.consultation-note p{margin-top:10px}}
@media(max-width:600px){.wrap{width:calc(100% - 40px)}.topline{font-size:.6rem;letter-spacing:.11em;padding:9px}.topline span{padding:0 5px}.brand-mark{font-size:3.6rem}.brand-name{font-size:.6rem}.header{gap:15px}.header nav>a{font-size:.875rem}.header nav .button{width:100%}.hero{display:flex;flex-direction:column;gap:10px;padding-top:0;padding-bottom:38px}.hero-copy{padding:22px 0 0;width:100%}.hero .eyebrow{font-size:.68rem}.hero h1{font-size:clamp(3.8rem,14.3vw,5.4rem);margin-top:18px}.hero-description{max-width:460px;font-size:1rem}.hero .button{font-size:.875rem;padding:16px 20px}.button-row{margin-top:24px;gap:18px}.hero-signature{margin:22px 0 12px}.hero-art{height:425px;width:100%;max-width:420px;align-self:center}.hero-marble{inset:0 0 0 25px}.hero-photo{top:24px;bottom:49px;right:28px;border-width:7px}.hero-photo img{object-position:50% 38%}.photo-caption{display:flex;left:20px;right:10px;bottom:0;padding:13px 15px}.photo-caption>span:first-child{font-size:.58rem;max-width:105px}.photo-caption .script{font-size:1.8rem}.promise-bar{padding:18px 0}.promise-inner{align-items:flex-start;justify-content:flex-start;gap:8px}.promise-inner>span{font-size:.8rem;width:100%}.promise-inner i{font-size:1.2rem}.section{padding:60px 0}h2{font-size:3.15rem}.section-heading{margin-bottom:28px}.section-heading>p{font-size:.95rem}.category-nav{gap:18px;overflow-x:auto;white-space:nowrap;margin-bottom:28px;padding:18px 0}.category-nav a{font-size:.8rem;gap:10px}.combination{padding:25px;margin-bottom:36px}.combination h3{font-size:2rem;line-height:1.1}.treatment-grid{grid-template-columns:1fr;gap:15px}.treatment-card{padding:25px}.treatment-card h4{font-size:1.9rem}.treatment-card p{font-size:.95rem}.treatment-card .text-link{font-size:.875rem}.group-heading h3{font-size:2rem}.costs span{font-size:.95rem}.treatment-group+.treatment-group{margin-top:35px}.about-grid{grid-template-columns:1fr;gap:48px}.portrait-frame{aspect-ratio:4/5;width:calc(100% - 18px);max-width:380px}.about-copy h2{font-size:3.3rem}.about-copy>p:not(.eyebrow):not(.intro){font-size:1rem}.about-copy .intro{font-size:1.9rem}.room-grid{gap:16px}.room-grid figure img{height:245px}.room-grid figcaption{font-size:.7rem}.room-quote h3{font-size:2.2rem}.room-quote h3 br{display:block}.visit-section{padding:55px 0}.visit-grid{grid-template-columns:1fr;gap:40px}.visit-policy h3{font-size:1.8rem}.booking-panel{padding:23px}.booking-section{gap:30px}.booking-intro h2 br{display:none}.field-row{grid-template-columns:1fr;gap:0}.field input,.field select{font-size:1rem}.field-help{margin-top:-10px}.contact-links{flex-direction:column;gap:5px}.faq-section{padding-bottom:55px}.faq-section h2{font-size:2.9rem}.faq-list summary{font-size:.95rem;line-height:1.5}.footer{align-items:flex-start;padding-bottom:100px;gap:26px}.footer>div:nth-child(2){flex-wrap:wrap}.footer>.small{width:100%}.mobile-book{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:30px;padding:16px 20px;padding-bottom:calc(16px + env(safe-area-inset-bottom));background:var(--ink);color:var(--ivory);z-index:10;border-top:1px solid var(--taupe);text-decoration:none;font-size:.875rem}.legal{padding-top:35px}.legal h1{font-size:4.2rem}.legal h2{font-size:2.1rem}.booking-section{scroll-margin-top:12px}.booking-panel .button{font-size:.8rem;padding:16px 12px}}
.portrait-frame{aspect-ratio:4/5}.portrait-frame img{height:auto;top:-33.6%;width:100%}
.group-heading .eyebrow{color:var(--muted)}.text-link:hover{color:var(--ink);border-bottom-width:2px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
@media print{.topline,.header nav,.hero,.promise-bar,.about-section,.room-section,.visit-section,.booking-section,.faq-section,.mobile-book,.footer,.category-nav,.combination .button,.treatment-card .text-link,.consultation-note .text-link{display:none!important}.wrap{width:100%}.section{padding:20px 0}.treatment-grid{grid-template-columns:repeat(2,1fr)}.treatment-card{break-inside:avoid}.section-heading h2{font-size:36px}.section-heading>p{font-size:12px}body{background:white;color:black}.combination{background:white;color:black;border:1px solid #999}.group-heading{break-after:avoid}.treatment-card p{font-size:12px}}

/* Opening portrait supplied by the owner; frame retains its original image. */
.hero-photo img{object-position:50% 40%}

/* Owner-supplied room photographs, alongside the visit information. */
.studio-preview{padding-bottom:65px;margin-bottom:65px;border-bottom:1px solid #6b584b}
.studio-preview .eyebrow,.studio-preview .section-heading>p{color:var(--cream)}
.studio-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.studio-gallery figure{min-width:0}
.studio-gallery img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:180px 180px 0 0;background:var(--cream)}
.studio-gallery figcaption{display:flex;align-items:baseline;gap:12px;color:var(--cream);font-size:.8rem;line-height:1.5;margin-top:16px}
.studio-gallery figcaption span{font-size:.65rem;letter-spacing:.12em;color:var(--taupe)}
@media(max-width:600px){
  .studio-preview{padding-bottom:40px;margin-bottom:40px}
  .studio-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}
  .studio-gallery figure:first-child{grid-column:1/-1}
  .studio-gallery figure:first-child img{aspect-ratio:4/5;object-position:center 55%}
  .studio-gallery figcaption{font-size:.75rem;gap:8px;margin-top:12px}
}
