[hidden]{display:none!important}
.header{position:sticky;top:0;z-index:40;margin:0;padding:0 4.5%;height:82px;background:rgba(243,240,233,.96);backdrop-filter:blur(12px);max-width:none;border-bottom:1px solid var(--rule)}
.header .brand{font-size:20px}.header .brand span{font-size:27px}.mobile-menu{position:fixed;top:82px;left:0;right:0;z-index:39;background:var(--paper);box-shadow:0 15px 25px #1b1c190d}.header.is-scrolled{box-shadow:0 6px 18px #1b1c1908}
.feature-hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:650px;max-width:none;overflow:hidden}.feature-portrait{position:relative;min-width:0;overflow:hidden}.portrait-mask{height:100%;min-height:650px;overflow:hidden;animation:mask-reveal 1.4s cubic-bezier(.2,.7,.2,1) both}.feature-portrait img{position:absolute;inset:-6% 0;width:100%;height:112%;object-position:50% 38%;will-change:transform}.feature-portrait figcaption{position:absolute;left:6%;right:6%;bottom:25px;display:flex;justify-content:space-between;gap:16px;font-size:12px;letter-spacing:.07em;padding:12px 15px;background:rgba(243,240,233,.86)}.feature-copy{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;padding:42px 8% 57px;min-height:650px}.feature-name{font-family:var(--wide);font-size:clamp(30px,3.4vw,53px);letter-spacing:-.07em;font-weight:500;line-height:1.2}.feature-name span{font-family:var(--serif);font-size:1.16em;letter-spacing:-.06em}.feature-identity .eyebrow{font-size:12px;margin-top:10px;letter-spacing:.08em;color:var(--muted);max-width:370px}.feature-copy h1{font-size:clamp(61px,6.2vw,100px);line-height:1.08;margin-top:34px;animation-delay:.1s}.feature-copy h1 em{display:block}.feature-description{font-size:16px;line-height:1.6;color:var(--muted);margin-top:27px;animation-delay:.2s}.feature-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 25px;margin-top:28px;animation-delay:.3s}.feature-actions .text-link{font-size:14px}.feature-edition{position:absolute;bottom:20px;font-size:12px;letter-spacing:.1em;color:var(--muted)}.feature-strip{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:22px 4.5%;border-bottom:1px solid var(--rule);font-size:12px;letter-spacing:.06em}.feature-strip a{font-family:var(--serif);font-style:italic;font-size:18px;letter-spacing:0;border-bottom:1px solid transparent;transition:border-color .25s}.feature-strip a:hover{border-color:var(--ink)}.editorial-note{border-top:0;padding:75px 0 70px}.editorial-note>.eyebrow{color:var(--muted);margin-bottom:28px}.editorial-note-body{display:grid;grid-template-columns:1.05fr 1fr;gap:8%;align-items:center}.editorial-note-body h2{font-size:clamp(38px,4.1vw,60px)}.editorial-note-body p{font-size:17px;line-height:1.75;color:var(--muted);max-width:480px}
.inspirations{padding-bottom:80px}.gallery{grid-template-columns:1.22fr 1fr;grid-template-rows:1fr 1fr;gap:32px;align-items:stretch}.gallery-major{grid-column:1;grid-row:1/span 2;display:flex;flex-direction:column}.gallery-major .gallery-image{flex:1;min-height:570px}.gallery-major .gallery-image img{height:100%;min-height:570px;aspect-ratio:auto;position:absolute;inset:0;object-position:50% 45%}.gallery-landscape{grid-column:2;grid-row:1}.gallery-detail{grid-column:2;grid-row:2}.gallery-card.middle{margin-top:0}.gallery-landscape .gallery-image img,.gallery-detail .gallery-image img{aspect-ratio:1.78;height:auto;object-position:50% 33%}.gallery-caption{margin-top:13px}.gallery-caption strong{font-size:27px}.gallery-caption small{font-size:12px;letter-spacing:.07em;margin-top:4px}.gallery-caption>span:last-child{font-size:12px}.gallery-disclaimer{margin-top:26px}
.signature-dark{background:var(--ink);color:var(--paper);padding:80px 6% 90px;overflow:hidden}.signature-dark .section-label{max-width:1450px;margin:0 auto 50px}.signature-dark .section-label>span:last-child{color:#b5b5ab}.signature-dark-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:11%;align-items:center;max-width:1450px;margin:auto}.signature-dark-copy h2{font-size:clamp(42px,4.7vw,72px)}.signature-dark-copy>p{font-size:17px;line-height:1.8;color:#c4c4ba;max-width:465px;margin-top:28px}.signature-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;border-top:1px solid #52534a;padding-top:23px;margin-top:33px}.signature-steps span{font-size:12px;color:#aaa99f;letter-spacing:.06em}.signature-steps h3{font-family:var(--serif);font-weight:400;font-size:25px;font-style:italic;margin-top:8px}.signature-steps p{font-size:14px;color:#b5b5ab;margin-top:8px;line-height:1.6;max-width:160px}.signature-button{background:var(--paper);color:var(--ink);border-color:var(--paper);margin-top:30px}.signature-button:hover{background:transparent;color:var(--paper)}.signature-dark-image{position:relative;overflow:hidden;min-height:540px;align-self:stretch}.signature-dark-image img{position:absolute;inset:-5% 0;width:100%;height:110%;object-position:50% 40%;will-change:transform}.signature-dark-image figcaption{position:absolute;bottom:23px;left:23px;right:23px;display:flex;justify-content:space-between;align-items:center;gap:15px;color:var(--ink);background:var(--paper);padding:12px 15px;font-size:12px;letter-spacing:.05em}.signature-dark-image figcaption>span:last-child{font-size:12px;letter-spacing:0}
.services{border-top:0}.services-layout{grid-template-columns:1fr 1fr;gap:8%;align-items:start}.services-intro h2{font-size:clamp(39px,4.3vw,63px)}.services-intro>p{max-width:400px}.service-preview{margin-top:34px}.service-preview-frame{position:relative;overflow:hidden;max-width:480px;background:#deddd5}.service-preview img{width:100%;aspect-ratio:1.3;object-position:50% 35%;transition:opacity .22s,transform .7s}.service-preview img.changing{opacity:.28;transform:scale(1.025)}.service-preview figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:15px;max-width:480px;margin-top:12px;font-size:12px;letter-spacing:.04em;color:var(--muted)}.service-preview figcaption>span:last-child{font-size:12px}.service-list{margin-top:8px}summary{font-size:clamp(25px,2.6vw,38px);padding:28px 0;transition:opacity .2s}summary:hover{opacity:.7}.service-content{font-size:16px}.price-row{font-size:14px}.prices-note{font-size:12px;line-height:1.7}.team{padding-top:75px}.team-copy>p{max-width:420px}.closing-word{letter-spacing:-.07em}.parallax-image{transform:translateY(var(--parallax-y,0px))}.feature-portrait .portrait-mask img{animation:none}.feature-portrait .portrait-mask{position:relative}@keyframes mask-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@media(min-width:1600px){.feature-hero{min-height:760px}.feature-copy,.portrait-mask{min-height:760px}.feature-copy{padding-left:10%;padding-right:10%}.feature-copy h1{font-size:100px}.header{margin:0;max-width:none}}
@media(max-width:1100px){.feature-hero{min-height:610px}.feature-copy,.portrait-mask{min-height:610px}.feature-copy{padding:36px 7% 56px}.feature-copy h1{font-size:6.7vw}.feature-name{font-size:3.5vw}.feature-actions{gap:12px 19px;margin-top:24px}.feature-actions .button{font-size:14px;padding:14px 20px}.feature-actions .text-link{font-size:14px}.feature-portrait figcaption{font-size:12px;letter-spacing:.02em;gap:10px;padding:10px 12px}.feature-strip{gap:20px;font-size:12px;letter-spacing:0}.feature-strip a{font-size:16px}.editorial-note{padding:60px 0}.gallery{gap:25px}.gallery-major .gallery-image,.gallery-major .gallery-image img{min-height:500px}.gallery-caption strong{font-size:25px}.signature-dark{padding:70px 5%}.signature-dark-grid{gap:7%}.signature-dark-copy>p{font-size:16px}.signature-dark-image{min-height:490px}.signature-steps{gap:13px}.signature-steps h3{font-size:23px}.signature-steps p{font-size:14px}.signature-dark-image figcaption{flex-direction:column;align-items:flex-start;gap:4px;left:18px;right:18px;bottom:18px}.services-layout{gap:6%}.service-preview figcaption{flex-direction:column;gap:4px}}
@media(max-width:820px){.header{height:76px;padding:0 4.5%;margin:0}.mobile-menu{top:76px}.feature-hero{grid-template-columns:1fr 1fr;min-height:560px}.feature-copy,.portrait-mask{min-height:560px}.feature-copy{padding:30px 7% 53px}.feature-name{font-size:29px}.feature-identity .eyebrow{font-size:12px;line-height:1.6;letter-spacing:.02em;max-width:230px}.feature-copy h1{font-size:7.1vw;margin-top:28px}.feature-description{font-size:16px;margin-top:25px}.feature-actions{flex-direction:column;align-items:flex-start;margin-top:22px}.feature-actions .button{font-size:14px;padding:13px 17px}.feature-actions .text-link{font-size:14px}.feature-portrait figcaption{flex-direction:column;gap:3px;left:18px;right:18px;bottom:20px}.feature-edition{font-size:12px;letter-spacing:.04em}.feature-strip{font-size:12px;padding:20px 4.5%}.feature-strip a{display:none}.editorial-note-body{gap:6%}.editorial-note-body p{font-size:16px}.editorial-note-body h2{font-size:39px}.gallery{gap:24px;grid-template-columns:1.1fr 1fr}.gallery-major .gallery-image,.gallery-major .gallery-image img{min-height:430px}.gallery-landscape .gallery-image img,.gallery-detail .gallery-image img{aspect-ratio:1.35}.gallery-caption strong{font-size:23px}.gallery-caption small{font-size:12px;letter-spacing:.015em;line-height:1.5}.zoom-label{font-size:12px;padding:8px 15px}.signature-dark .section-label{margin-bottom:35px}.signature-dark-grid{gap:7%;grid-template-columns:1.1fr 1fr}.signature-dark-copy h2{font-size:41px}.signature-dark-image{min-height:540px}.signature-steps{grid-template-columns:1fr;gap:15px;margin-top:25px;padding-top:20px}.signature-steps>div{display:grid;grid-template-columns:23px 1fr;gap:4px 12px;align-items:center}.signature-steps h3{font-size:24px;margin:0}.signature-steps p{grid-column:2;margin:0;max-width:none;font-size:14px}.signature-button{font-size:14px;padding:14px 17px}.services-layout{grid-template-columns:1fr 1fr;gap:7%}.services-intro{display:block}.services-intro h2{font-size:41px}.services-intro>p{margin:22px 0}.service-preview{margin-top:28px}.service-preview img{aspect-ratio:.86}.services-intro .button{font-size:14px;padding:14px 18px}.service-list summary{font-size:26px;gap:14px;padding:22px 0}.service-content{padding-left:0}.price-row{font-size:14px;gap:12px}.section-label{font-size:12px;letter-spacing:.06em}.section-label span:last-child{font-size:12px}.gallery-card.middle{margin-top:0}}
@media(max-width:560px){html{scroll-padding-top:90px}.header{height:74px;padding:0 6%;margin:0}.header .brand{font-size:18px}.header .brand span{font-size:24px}.mobile-menu{top:74px}.feature-hero{display:flex;flex-direction:column;min-height:0}.feature-portrait{order:0;height:43svh;min-height:260px;max-height:390px}.portrait-mask{height:100%;min-height:0}.feature-portrait img{object-position:50% 35%;inset:-6% 0;height:112%}.feature-portrait figcaption{left:6%;right:6%;bottom:16px;padding:7px 10px;flex-direction:row;font-size:12px;gap:12px}.feature-portrait figcaption span:last-child{display:none}.feature-copy{order:1;min-height:0;padding:28px 6% 31px}.feature-name{font-size:33px}.feature-identity .eyebrow{font-size:12px;max-width:none;letter-spacing:.025em;margin-top:7px}.feature-copy h1{font-size:clamp(53px,14vw,78px);margin-top:24px;line-height:1.05}.feature-description{font-size:16px;margin-top:22px}.feature-actions{flex-direction:row;flex-wrap:wrap;gap:14px 20px;margin-top:22px;align-items:center}.feature-actions .button{font-size:14px;padding:14px 20px}.feature-actions .text-link{font-size:14px}.feature-edition{display:none}.feature-strip{padding:19px 6%;font-size:12px;line-height:1.6;gap:18px}.feature-strip span:last-child{text-align:right;max-width:140px}.editorial-note{padding:47px 0;border-top:0}.editorial-note>.eyebrow{font-size:12px;letter-spacing:.07em;margin-bottom:24px}.editorial-note-body{grid-template-columns:1fr;gap:23px}.editorial-note-body h2{font-size:42px}.editorial-note-body p{font-size:16px}.inspirations{padding-bottom:52px}.section-label{font-size:12px;letter-spacing:.02em}.section-label span:last-child{font-size:12px;max-width:110px}.gallery{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:26px 16px;overflow:visible;padding-bottom:0;scroll-snap-type:none;align-items:start}.gallery-major{grid-column:1/span 2;grid-row:1}.gallery-major .gallery-image{min-height:0;aspect-ratio:4/4.4}.gallery-major .gallery-image img{min-height:0;height:100%;aspect-ratio:auto;object-position:50% 40%}.gallery-landscape{grid-column:1;grid-row:2}.gallery-detail{grid-column:2;grid-row:2}.gallery-landscape .gallery-image img,.gallery-detail .gallery-image img{aspect-ratio:3/4;object-position:50% 35%}.gallery-card{flex:none}.gallery-caption strong{font-size:22px;line-height:1.25}.gallery-major .gallery-caption strong{font-size:30px}.gallery-caption small{font-size:12px;line-height:1.5;letter-spacing:0}.gallery-caption>span:last-child{display:none}.zoom-label{font-size:12px;opacity:1;transform:translate(-50%,0);padding:7px 12px;bottom:14px}.gallery-disclaimer{font-size:12px;line-height:1.6;margin-top:26px}.signature-dark{padding:53px 6%}.signature-dark .section-label{margin-bottom:30px;align-items:flex-start}.signature-dark .section-label>span:last-child{max-width:110px;line-height:1.5}.signature-dark-grid{grid-template-columns:1fr;gap:36px}.signature-dark-copy h2{font-size:42px}.signature-dark-copy>p{font-size:16px;line-height:1.75;margin-top:25px}.signature-steps{grid-template-columns:1fr;gap:17px}.signature-steps h3{font-size:25px}.signature-steps p{font-size:14px}.signature-button{margin-top:27px;font-size:14px;padding:14px 20px}.signature-dark-image{min-height:0;height:430px;width:100%;max-width:390px;margin:0 auto}.signature-dark-image figcaption{flex-direction:row;align-items:center;left:16px;right:16px;bottom:17px;gap:16px;padding:10px 12px;font-size:12px}.signature-dark-image figcaption>span:last-child{max-width:150px;font-size:12px;line-height:1.4;text-align:right}.services-layout{grid-template-columns:1fr;gap:30px}.services-intro h2{font-size:42px}.services-intro>p{font-size:16px;margin:22px 0}.service-preview{margin-top:28px}.service-preview-frame{max-width:none}.service-preview img{aspect-ratio:1.45;object-position:50% 32%}.service-preview figcaption{max-width:none;font-size:12px;flex-direction:row;gap:15px;line-height:1.5}.service-preview figcaption>span:first-child{max-width:230px}.service-preview figcaption>span:last-child{font-size:12px}.service-list{margin-top:0}.service-list summary{font-size:27px;padding:23px 0}.service-content{font-size:16px;padding-left:0}.price-row{font-size:14px;gap:15px}.prices-note{font-size:12px;line-height:1.65}.team{padding-top:54px}.mobile-book{z-index:45}.closing .eyebrow{font-size:12px}footer{font-size:12px}}
/* Align the accordion with the complete left column, including its photo. */
.service-preview img{height:auto}
@media(min-width:561px){
  .services-layout{align-items:stretch}
  .service-list{display:flex;flex-direction:column;margin-top:0}
  .service-list details{flex:1 0 auto}
  .service-list details[open]{flex-grow:1.25}
  .service-list summary{padding:clamp(28px,3vw,52px) 0}
  .service-list .service-content{padding-bottom:30px}
  .service-list .prices-note{flex-shrink:0;margin-top:16px;padding-top:0}
}
@media(min-width:561px) and (max-width:820px){
  .service-list summary{padding:30px 0}
}
/* Reveal each authored title line once, keeping text and italics accessible. */
.animated-title .title-row{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.animated-title .title-line{display:block;opacity:0;transform:translateY(112%) rotate(1.5deg);transform-origin:left bottom;transition:transform .95s cubic-bezier(.22,1,.36,1),opacity .6s;transition-delay:var(--line-delay,0ms)}
.animated-title.title-visible .title-line{opacity:1;transform:translateY(0) rotate(0)}
.service-list summary>span:nth-child(2){transition:transform .3s}
.service-preview-frame{isolation:isolate}
.service-preview-frame img{transition:none}
.service-preview-frame .service-preview-outgoing{position:absolute;inset:0;z-index:1;width:100%;height:100%;aspect-ratio:auto;pointer-events:none}
.reviews-heading{display:grid;grid-template-columns:1.08fr 1fr;gap:5%;align-items:end;margin-bottom:45px}
.reviews-heading h2{font-size:clamp(38px,4.4vw,66px)}
.reviews-intro{padding-left:10%}.reviews-intro p{color:var(--muted);max-width:390px}.reviews-intro .text-link{margin-top:20px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.review-card{display:flex;flex-direction:column;min-width:0;background:#eae7df;border-top:1px solid var(--ink);padding:26px 28px 28px}
.review-source{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.google-initial{font-family:Arial,sans-serif;font-weight:700;font-size:23px;color:#4285f4}.review-index{margin-left:auto;font-size:12px}
.review-card blockquote{margin:27px 0 32px;font-family:var(--serif);font-size:clamp(23px,2.3vw,34px);line-height:1.35;letter-spacing:-.025em;flex:1}
.review-card figcaption{display:flex;align-items:center;gap:12px}.review-avatar{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border:1px solid #c6c2b7;border-radius:50%;font-family:var(--serif);font-size:20px}.review-card strong{display:block;font-size:14px;font-weight:500}.review-card time{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.reviews-note{margin-top:24px;font-size:12px;color:var(--muted);max-width:none}.reviews-note a{text-decoration:underline;text-underline-offset:3px}
.contact-map{margin-top:45px;border:1px solid #c6c5bd;background:#deddd5}.contact-map iframe{display:block;width:100%;height:360px;border:0}.contact-map figcaption{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 20px;background:var(--paper);font-size:12px;letter-spacing:.04em}.contact-map figcaption a{font-size:14px;letter-spacing:0;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1100px){.reviews-intro{padding-left:0}.reviews-grid{gap:18px}.review-card{padding:22px 20px}.header nav{gap:16px}}
@media(max-width:820px){.reviews-heading{grid-template-columns:1fr;gap:24px;margin-bottom:30px}.reviews-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:25px}.reviews-intro .text-link{margin-top:0;flex-shrink:0}.reviews-grid{gap:14px}.review-card{padding:20px 16px}.review-source{gap:7px}.review-card blockquote{font-size:25px}.contact-map iframe{height:330px}}
@media(max-width:560px){.reviews-heading h2{font-size:41px}.reviews-intro{display:block}.reviews-intro .text-link{margin-top:15px}.reviews-grid{grid-template-columns:1fr;gap:16px}.review-card{padding:22px 24px}.review-card blockquote{font-size:29px;margin:22px 0 25px}.reviews-note{line-height:1.7}.contact-map{margin-top:30px}.contact-map iframe{height:300px}.contact-map figcaption{flex-direction:column;align-items:flex-start;padding:15px;gap:10px;line-height:1.6}}
@media(hover:hover){.service-list summary:hover>span:nth-child(2){transform:translateX(5px)}}
@media(max-width:560px){.animated-title .title-line{transition-duration:.75s,.5s}}
@media(prefers-reduced-motion:reduce){.portrait-mask{clip-path:none;animation:none}.parallax-image{transform:none!important}.service-preview img{transition:none}.service-preview img.changing{opacity:1;transform:none}.animated-title .title-line{opacity:1;transform:none;transition:none}.service-list summary>span:nth-child(2){transform:none!important;transition:none}}

.tg-demo-strip{background:#1b1c19;color:#f3f0e9;padding:11px 24px;display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;font:12px/1.5 Arial,sans-serif}.tg-demo-strip a{text-decoration:underline;text-underline-offset:3px}.demo-location{margin-top:35px;padding:35px;border:1px solid var(--rule);background:#e7e2d8}.demo-location p{font-size:24px;margin:0 0 10px}.demo-location span{font-size:14px}#booking-demo{width:min(560px,calc(100% - 32px));padding:32px;background:#f3f0e9;color:#1b1c19;max-height:85vh;overflow:auto}#booking-demo h2{font-size:32px;line-height:1.2;margin:25px 0}#booking-demo p{font-size:16px;line-height:1.6;margin-bottom:18px}#booking-demo .dialog-close{position:static;float:right}.reviews .review-card h3{font-size:24px;margin:22px 0 14px}.reviews .review-card>p{font-size:16px;line-height:1.6}@media(max-width:650px){.tg-demo-strip{padding:10px 16px;gap:5px;flex-direction:column}.demo-location{padding:24px}}
