@font-face{font-family:Erode;src:url('assets/erode-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Erode;src:url('assets/erode-medium.woff2') format('woff2');font-style:normal;font-weight:500 700;font-display:swap}
:root{--bg:#dedad3;--surface:#d3cec6;--ink:#0a0a0a;--muted:#5c5852;--accent:#256f82;--accent-strong:#1b5666;--accent-ink:#fff;--paper:#f4f2ee;--scrim:rgba(0,0,0,.28);--gutter:clamp(20px,3.4vw,56px);--body:clamp(18px,1.4vw,20px);--small:16px;--lead:clamp(24px,2.3vw,32px);--head:clamp(40px,4.8vw,70px);--display:clamp(54px,9.6vw,154px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Erode,Georgia,serif;font-size:var(--body);line-height:1.5;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;border:0;color:inherit}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p,figure,blockquote{margin:0}h1,h2,h3{font-weight:500;letter-spacing:-.035em;line-height:1.03;text-wrap:balance}h2{font-size:var(--head)}h3{font-size:var(--lead);line-height:1.1}p{max-width:56ch;text-wrap:pretty}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--accent-ink)}[hidden]{display:none!important}.page-pad{padding-inline:var(--gutter)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:12px;left:20px;background:var(--paper);padding:12px 20px;z-index:20;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}
.site-header{position:relative;z-index:5;min-height:116px;display:flex;align-items:center;justify-content:space-between;padding:20px var(--gutter);gap:24px;background:var(--bg)}.wordmark{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05;white-space:nowrap}.wordmark>span:first-child{font-size:30px;letter-spacing:-.04em}.wordmark>span:last-child{font-size:var(--small);margin-top:5px}.desktop-nav{display:flex;gap:30px;margin-left:auto;margin-right:34px;font-size:19px}.desktop-nav a,.footer nav a{transition:transform 200ms var(--ease)}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;padding:17px 25px;min-height:58px;font-size:19px;line-height:1;background:var(--accent);color:var(--accent-ink);transition:transform 180ms var(--ease),background-color 180ms ease;white-space:nowrap}.button span{font-family:Arial,sans-serif;font-size:24px;font-weight:400}.button:active{transform:scale(.97)}.menu-toggle{display:none}.mobile-nav{position:absolute;left:0;right:0;top:100%;background:var(--bg);padding:15px var(--gutter) 28px;}
.hero{position:relative;height:calc(100svh - 116px);min-height:600px;max-height:1000px;color:var(--accent-ink);overflow:hidden}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-photo{object-position:center 53%}.hero-shade{background:var(--scrim)}.hero-content{position:absolute;left:var(--gutter);right:var(--gutter);bottom:44px}.hero h1{font-size:var(--display);letter-spacing:-.04em;line-height:1.08}.line{display:block;overflow:hidden;padding-bottom:.13em;margin-bottom:-.13em}.hero-line{display:block}.hero-bottom{margin-top:28px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.hero-bottom p{font-size:clamp(20px,1.9vw,27px);line-height:1.32}.hero-link{display:flex;align-items:center;gap:54px;font-size:19px;padding-block:12px;flex-shrink:0}.hero-link span{font-family:Arial,sans-serif;font-size:28px;transition:transform 200ms var(--ease)}
.intro{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10%;padding-block:120px 110px}.intro p{font-size:var(--lead);line-height:1.35;max-width:29ch}.section-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:42px}.room-controls{display:flex;flex-wrap:wrap;gap:6px;background:var(--surface);padding:6px}.room-button{min-height:48px;min-width:110px;background:transparent;padding:8px 20px;transition:background-color 180ms ease,transform 180ms var(--ease)}.room-button.is-active{background:var(--ink);color:var(--paper)}.room-button:active{transform:scale(.96)}.room-image{overflow:hidden;height:clamp(400px,44vw,680px)}.room-image img{width:100%;height:100%}.room-panel figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-top:22px}.room-panel figcaption>span{font-size:var(--lead);line-height:1.2}.room-panel figcaption p{font-size:var(--small);max-width:35ch}.room-panel+.room-panel{margin-top:50px}.enhanced-gallery .room-panel+.room-panel{margin:0}
.about{padding-block:150px;display:grid;grid-template-columns:5fr 6fr;gap:9%}.portrait{align-self:start;overflow:hidden}.portrait img{width:100%;aspect-ratio:4/5;object-position:center 40%}.about-copy{padding-top:65px}.about-copy>.lead{font-size:var(--lead);line-height:1.3;margin-top:32px;max-width:28ch}.about-copy>p:not(.lead){margin-top:20px;max-width:43ch}.approach{margin-top:36px}.approach p{margin-top:12px;max-width:43ch}.text-link{display:inline-block;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;line-height:1.5;transition:transform 180ms var(--ease)}.about-copy>.text-link{margin-top:36px}
.services{background:var(--surface);padding-block:110px}.services-head{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:end;margin-bottom:75px}.services-head p{max-width:34ch;font-size:var(--lead);line-height:1.3}.service-list{margin-left:25%}.service-row{display:grid;grid-template-columns:1.3fr 1fr;gap:9%;margin-top:64px;align-items:start}.service-row:first-child{margin-top:0}.service-row p{margin-top:16px;max-width:36ch}.service-row>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center}.service-row .text-link{margin-top:24px}.service-row.text-only{grid-template-columns:1fr}.service-row.text-only p{max-width:47ch}
.reviews{padding-block:120px}.reviews-heading{display:flex;align-items:center;justify-content:space-between;gap:32px}.reviews-heading p{font-size:var(--body)}.review-main{display:grid;grid-template-columns:1fr 3fr;gap:24px;margin-top:64px}.quote-mark{font-size:180px;line-height:.6;justify-self:center}.review-main blockquote{font-size:clamp(24px,2.5vw,36px);line-height:1.3;max-width:45ch;letter-spacing:-.015em}.reviews figcaption{font-size:var(--small);margin-top:26px}.more-reviews{display:grid;grid-template-columns:1fr 1fr;gap:9%;margin-top:75px;margin-left:25%}.more-reviews blockquote{font-size:var(--body);max-width:34ch}.review-invitation{margin-top:75px;margin-left:25%;padding:32px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:30px}.review-invitation p{max-width:31ch}.review-invitation a{max-width:23ch}
.faq{padding-block:105px;background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:start}.faq h2{font-size:clamp(38px,3.7vw,56px)}.faq-list{margin-top:38px}.faq details{margin-top:16px}.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;cursor:pointer;font-size:22px;min-height:54px;line-height:1.25}.faq summary::-webkit-details-marker{display:none}.faq summary span{font-family:Arial,sans-serif;font-size:24px;transition:transform 220ms var(--ease);flex-shrink:0}.faq details[open] summary span{transform:rotate(45deg)}.faq details p{padding:12px 28px 16px 0;font-size:var(--body);max-width:43ch}.faq details p a{text-decoration:underline;text-underline-offset:4px}.faq-copy>.text-link{margin-top:30px}.faq-image{height:730px;overflow:hidden}.faq-image img{width:100%;height:100%;object-position:52% center}
.contact{height:790px;position:relative;overflow:hidden}.contact-photo{width:100%;height:100%;object-position:26% center}.contact-card{position:absolute;right:var(--gutter);top:60px;background:var(--bg);width:430px;padding:38px}.contact-card h2{font-size:56px}.contact-card>p{margin-top:25px}.contact-number{display:inline-block;font-size:var(--lead);margin-top:30px;white-space:nowrap;letter-spacing:-.015em}.contact-card address{font-style:normal;margin-top:24px}.contact-card>.text-link{font-size:var(--small);margin-top:16px}.contact-card>.button{display:flex;margin-top:30px;width:100%}.footer{display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}.footer-image{height:620px;overflow:hidden}.footer-image img{width:100%;height:100%;object-position:50% 37%}.footer-content{padding:52px var(--gutter) 32px 12%}.footer nav{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;font-size:32px;line-height:1.2}.footer-bottom{display:flex;justify-content:space-between;gap:24px;margin-top:60px;font-size:var(--small)}
@media(hover:hover) and (pointer:fine){.button:hover{background:var(--accent-strong)}.desktop-nav a:hover,.footer nav a:hover,.text-link:hover{transform:translateX(4px)}.hero-link:hover span{transform:translateY(5px)}.room-button:not(.is-active):hover{background:var(--bg)}.faq summary:hover{text-decoration:underline;text-underline-offset:5px}}
@media(min-width:1600px){.about,.intro,.services,.reviews,.faq,.interiors{max-width:1920px;margin-inline:auto}}
@media(max-width:1000px){.site-header{min-height:100px;gap:20px}.desktop-nav{gap:18px;margin-right:0;font-size:18px}.wordmark>span:first-child{font-size:26px}.header-call{padding:16px;gap:15px;font-size:18px}.hero{height:calc(100svh - 100px);min-height:590px}.hero-content{bottom:35px}.intro{gap:7%;padding-block:90px}.about{gap:7%;padding-block:100px}.about-copy{padding-top:20px}.service-list{margin-left:15%}.services{padding-block:90px}.services-head{gap:6%}.reviews{padding-block:90px}.review-main{grid-template-columns:1fr 5fr}.more-reviews,.review-invitation{margin-left:15%}.review-invitation{display:block}.review-invitation p{max-width:45ch}.review-invitation a{margin-top:16px;max-width:none}.faq{gap:6%;padding-block:80px}.faq-image{height:700px}.contact-card{width:390px;padding:30px}.footer-content{padding-left:9%}.footer-bottom{display:block;margin-top:40px}.footer-bottom p+p{margin-top:20px}}
@media(max-width:700px){:root{--head:44px;--lead:26px;--display:clamp(45px,11.9vw,83px);--body:18px;--gutter:20px}.site-header{min-height:96px;gap:12px;padding-block:17px;flex-wrap:wrap}.wordmark>span:first-child{font-size:27px}.wordmark>span:last-child{font-size:16px}.desktop-nav,.header-call{display:none}.menu-toggle{display:flex;align-items:center;gap:12px;background:transparent;padding:12px 0 12px 12px;font-size:18px;min-height:48px}.menu-toggle span{font-family:Arial,sans-serif;font-size:25px;transition:transform 200ms var(--ease)}.menu-toggle[aria-expanded=true] span{transform:rotate(45deg)}.mobile-nav{display:flex;flex-direction:column;gap:4px}.mobile-nav>a{font-size:28px;padding:8px 0;min-height:48px}.mobile-nav>.mobile-phone{font-size:23px;margin-top:12px}.hero{height:calc(100svh - 96px);min-height:580px;max-height:900px}.hero-photo{object-position:40% center}.hero-content{bottom:32px}.hero-bottom{margin-top:25px;display:block}.hero-bottom p{font-size:21px;max-width:29ch}.hero-link{font-size:18px;gap:24px;margin-top:24px;max-width:max-content}.intro{grid-template-columns:1fr;gap:30px;padding-block:74px 65px}.intro p{font-size:24px;max-width:30ch}.section-top{display:block;margin-bottom:26px}.interiors h2{font-size:40px}.room-controls{margin-top:26px;width:100%;display:grid;grid-template-columns:1fr 1fr}.room-button{min-width:115px}.room-image{height:460px}.room-image img{object-position:40% center}.room-panel figcaption{display:block;margin-top:22px}.room-panel figcaption>span{font-size:24px}.room-panel figcaption p{font-size:18px;margin-top:12px}.about{grid-template-columns:1fr;padding-block:85px;gap:38px}.portrait{width:90%}.portrait img{aspect-ratio:4/5}.about-copy{padding-top:0}.about-copy>.lead{margin-top:25px}.approach{margin-top:30px}.approach h3{font-size:26px}.services{padding-block:75px}.services-head{grid-template-columns:1fr;gap:28px;margin-bottom:50px}.services-head p{font-size:24px;max-width:28ch}.service-list{margin-left:0}.service-row{grid-template-columns:1fr;gap:26px;margin-top:45px}.service-row>img{width:100%;height:auto;aspect-ratio:3/2;justify-self:stretch}.service-row h3{font-size:30px}.service-row p{max-width:37ch}.reviews{padding-block:75px}.reviews-heading{display:block}.reviews-heading p{margin-top:20px;font-size:18px}.reviews-heading br{display:none}.review-main{grid-template-columns:1fr;gap:18px;margin-top:38px}.quote-mark{justify-self:start;font-size:100px;height:45px}.review-main blockquote{font-size:24px;line-height:1.35}.more-reviews{grid-template-columns:1fr;gap:36px;margin-top:42px;margin-left:0}.reviews figcaption{margin-top:20px}.more-reviews blockquote{max-width:40ch}.review-invitation{margin-top:42px;margin-left:0;padding:26px}.faq{display:flex;flex-direction:column-reverse;gap:42px;padding-block:65px}.faq h2{font-size:38px}.faq-image{height:380px;width:100%}.faq-image img{object-position:52% center}.faq-copy{width:100%}.faq-list{margin-top:30px}.faq summary{font-size:22px}.faq details{margin-top:13px}.faq details p{padding-right:10px}.contact{height:auto;overflow:visible;padding-bottom:55px;background:var(--bg)}.contact-photo{height:420px;object-position:30% center}.contact-card{position:relative;right:auto;top:auto;width:auto;margin:-75px var(--gutter) 0;padding:28px;background:var(--paper)}.contact-card h2{font-size:46px}.contact-card>p{margin-top:22px}.contact-number{font-size:27px}.contact-card>.button{min-height:58px}.footer{grid-template-columns:1fr}.footer-image{height:360px}.footer-image img{object-position:50% 45%}.footer-content{padding:38px var(--gutter) 32px}.footer nav{font-size:30px;margin-top:32px;gap:18px}.footer-bottom{display:flex;gap:20px;font-size:16px}.footer-bottom p+p{margin-top:0}}
@media(max-width:360px){.wordmark>span:first-child{font-size:24px}.hero h1{font-size:43px}.contact-card{padding:23px}.footer-bottom{display:block}.footer-bottom p+p{margin-top:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Five roles keep the hierarchy consistent across the entire page. */
:root{--paper:#eeefed;--lead:clamp(24px,2.1vw,30px)}
.wordmark>span:first-child,.footer nav,.service-row h3,.approach h3,.contact-number{font-size:var(--lead)}
.wordmark>span:last-child,.room-panel figcaption p,.reviews figcaption,.contact-card>.text-link,.footer-bottom{font-size:var(--small)}
.desktop-nav,.header-call,.button,.hero-link,.menu-toggle,.mobile-nav>a,.mobile-nav>.mobile-phone,.faq summary,.faq details p,.reviews-heading p,.more-reviews blockquote{font-size:var(--body)}
.hero-bottom p,.intro p,.room-panel figcaption>span,.services-head p,.review-main blockquote{font-size:var(--lead)}
.contact-card h2,.faq h2,.interiors h2{font-size:var(--head)}
.button span,.hero-link span,.menu-toggle span,.faq summary span{font-family:inherit;font-size:inherit}
.quote-mark{font-size:var(--head);height:auto;line-height:1}
.mobile-nav{background:var(--surface)}
.intro p{max-width:34ch}.review-main blockquote{max-width:50ch}
.portrait{position:relative;min-height:550px;align-self:stretch}.portrait img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}
.hero-call{display:none}
@media(max-width:700px){.hero-call{display:inline-flex;margin-top:25px}.hero-link{display:none}.hero-bottom p{font-size:var(--body)}.portrait{position:static;min-height:0}.portrait img{position:static;aspect-ratio:4/5;height:auto}.intro p,.services-head p,.review-main blockquote,.room-panel figcaption>span{font-size:var(--lead)}.room-panel figcaption p{font-size:var(--body)}.faq h2{font-size:var(--head)}.contact-card h2{font-size:var(--head)}.contact-number{font-size:var(--lead)}.hero h1{font-size:var(--display)}}
@media(prefers-reduced-motion:no-preference){
  .hero-line{animation:line-up 1100ms var(--ease) both}
  .hero-photo{animation:photo-settle 1800ms var(--ease) both}
  .hero-bottom p,.hero-link,.hero-call{animation:rise-in 900ms var(--ease) 180ms both}
  @keyframes line-up{from{transform:translateY(110%)}to{transform:translateY(0)}}
  @keyframes rise-in{from{opacity:.1;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
  @keyframes photo-settle{from{transform:scale(1.045)}to{transform:scale(1)}}
  .room-panel:not([hidden]) .room-image img{animation:room-change 650ms var(--ease) both}
  @keyframes room-change{from{opacity:.4;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
}
