@font-face{font-family:Manrope;src:url('assets/fonts/manrope-cyrillic-400-normal.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--ink:#17191c;--paper:#eeeae3;--ivory:#f1ede6;--gold:#c9a36b;--muted:#bdbbb6;--gutter:clamp(24px,5vw,88px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--ivory);font:400 15px/1.6 Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.skip-link{position:fixed;z-index:20;top:12px;left:12px;padding:12px;background:var(--ivory);color:var(--ink);transform:translateY(-160%)}.skip-link:focus{transform:none}
.hero{position:relative;isolation:isolate;min-height:760px;height:100svh;max-height:1100px;overflow:hidden;background:#101113}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;z-index:-3;animation:image-in 1.4s ease-out both}.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(10,11,12,.6),rgba(10,11,12,.12) 49%,transparent 70%),linear-gradient(0deg,rgba(10,11,12,.48),transparent 23%,transparent 80%,rgba(10,11,12,.32))}.header{display:flex;align-items:center;gap:30px;padding:28px var(--gutter);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:25px;flex:1}.brand-name{font:400 43px/1 Georgia,'Times New Roman',serif;letter-spacing:-2px}.brand-description{font-size:11px;color:#d7d2ca}.desktop-nav{display:flex;gap:36px;margin-right:clamp(24px,6vw,100px)}.desktop-nav a{position:relative;padding-block:8px;font-size:13px}.desktop-nav a:after{content:'';position:absolute;bottom:1px;left:0;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s}.desktop-nav a:hover:after{transform:scaleX(1)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:48px;padding:12px 24px;font-size:13px;transition:background .25s,color .25s,border-color .25s}.button-outline{border:1px solid var(--gold);color:#e1bc87}.button-outline:hover{background:var(--gold);color:var(--ink)}.button-gold{background:var(--gold);color:#17191c;border:1px solid var(--gold)}.button-gold:hover{background:#e3c291;border-color:#e3c291}.hero-copy{padding:clamp(35px,6vh,80px) var(--gutter) 0;max-width:780px;animation:copy-in .85s ease-out both}.hero h1{margin:0;font:400 clamp(60px,6vw,100px)/.99 Georgia,'Times New Roman',serif;letter-spacing:-.05em}.gold-line{width:46px;height:2px;background:var(--gold);margin:30px 0 22px}.hero-copy p{font-size:17px;line-height:1.5;margin:0;color:#dedbd4}.hero-cta{margin-top:27px}.hero-bottom{position:absolute;bottom:30px;left:var(--gutter);right:var(--gutter);display:flex;align-items:end;justify-content:space-between}.hero-bottom p{font-size:12px;line-height:1.65;margin:0;color:#cac7c0}.scroll-link{font-size:12px;display:flex;align-items:center;gap:30px}.scroll-link span{display:grid;place-items:center;width:36px;height:36px;border:1px solid #8b8170;border-radius:50%}.menu-toggle{display:none}.section{padding:76px var(--gutter);scroll-margin-top:24px}.services{background:var(--paper);color:var(--ink)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px}.section h2{margin:0;font:400 clamp(40px,4vw,64px)/1.04 Georgia,'Times New Roman',serif;letter-spacing:-.035em}.section-heading>p{max-width:350px;font-size:14px;margin:0 0 4px;color:#525252}.service-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:48px}.service-tabs button{border:0;border-bottom:1px solid #c9c3b8;text-align:left;background:none;padding:0 0 17px;color:#635c53;font:400 clamp(18px,2vw,29px)/1.25 Georgia,serif;transition:color .2s,border-color .2s}.service-tabs button[aria-selected=true]{border-color:#a1783d;color:#17191c}.service-tabs button:hover{color:#17191c}.service-panel{display:flex;justify-content:space-between;gap:40px;padding-top:36px;min-height:160px}.service-panel h3{font:400 28px/1.3 Georgia,serif;margin:0 0 12px}.service-panel p{max-width:550px;margin:0;color:#59554f}.service-note{font-size:13px;flex-shrink:0}.approach{display:flex;justify-content:space-between;gap:45px}.approach p{max-width:350px;margin:8px 0 0;color:var(--muted)}footer{padding:24px var(--gutter);border-top:1px solid #343434;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#b9b4ab}footer a:hover{color:var(--ivory)}[hidden]{display:none!important}
@keyframes copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes image-in{from{opacity:.35;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@media(min-width:1500px){.hero-copy{max-width:900px}.hero h1{font-size:110px}}
@media(max-width:900px){.brand-description{display:none}.desktop-nav{margin-right:0;gap:20px}.hero h1{font-size:72px}.hero-copy{padding-top:60px}.hero{min-height:730px}.hero-photo{object-position:56% center}.service-tabs{gap:22px}}
@media(max-width:600px){.hero{height:100svh;min-height:780px;max-height:1000px}.header{padding:22px var(--gutter);justify-content:space-between}.brand-name{font-size:36px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;width:44px;height:44px;border:1px solid #857254;background:transparent;padding:12px}.menu-toggle span{width:18px;height:1px;background:var(--ivory);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}#mobile-menu{position:absolute;top:82px;left:var(--gutter);right:var(--gutter);background:#1d1e20;border:1px solid #60523c;padding:16px;box-shadow:0 12px 30px #0005}#mobile-menu a{display:block;padding:14px}.hero-copy{padding-top:29px;max-width:100%}.hero h1{font-size:clamp(47px,12vw,70px);line-height:1.01;letter-spacing:-.045em}.gold-line{margin:24px 0 16px;width:36px}.hero-copy p{font-size:15px}.hero-cta{margin-top:22px;min-height:46px}.hero-photo{inset:auto 0 60px;object-fit:cover;object-position:64% center;height:44%;width:100%}.hero-shade{background:linear-gradient(0deg,#101113,transparent 20%,transparent 42%,#101113 62%)}.hero-bottom{bottom:23px;align-items:center}.hero-bottom p{font-size:10px}.scroll-link{gap:12px;font-size:11px}.scroll-link span{width:30px;height:30px}.section{padding:48px var(--gutter)}.section-heading,.service-panel,.approach{display:block}.section h2{font-size:42px}.section-heading>p{margin-top:22px;font-size:13px}.service-tabs{gap:13px;margin-top:30px}.service-tabs button{font:400 14px/1.35 Manrope,sans-serif;padding-bottom:14px}.service-panel{padding-top:26px;min-height:215px}.service-panel h3{font-size:26px}.service-panel p{font-size:14px}.service-panel .service-note{margin-top:24px;font-size:12px}.approach p{margin-top:26px;font-size:14px}footer{display:block;font-size:10px}footer a{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Full-page composition: services, comparison, process, questions, request. */
.service-panel{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:6vw;align-items:center;padding-top:40px;min-height:420px}.service-copy p{max-width:370px}.service-copy ul{list-style:none;padding:0;margin:24px 0 30px;font-size:13px;color:#605b53}.service-copy li{padding:9px 0;border-bottom:1px solid #d6d0c6}.service-copy .service-note{font-size:11px;margin-top:14px}.service-visual{position:relative;overflow:hidden;background:#282828;aspect-ratio:1.5}.service-visual img{width:100%;height:100%;object-fit:cover;display:block}.service-visual span{position:absolute;right:22px;bottom:20px;font-size:11px;color:#f1ede6;background:#17191cb3;padding:8px 12px}.results{padding-block:90px;background:#111315}.results .section-heading>p{color:#bdbbb6}.comparison{position:relative;margin:44px 0 0;aspect-ratio:1.9;overflow:hidden;background:#232323}.comparison-images,.comparison-images img{position:absolute;inset:0;width:100%;height:100%}.comparison-images img{object-fit:cover;display:block}.comparison-before{clip-path:inset(0 calc(100% - var(--split)) 0 0)}.comparison-handle{position:absolute;inset:0 auto 0 var(--split);width:1px;background:#eee6d6;transform:translateX(-50%);pointer-events:none}.comparison-handle>span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border:1px solid #eee6d6;border-radius:50%;background:#17191ccf;display:grid;place-items:center;font-size:24px;white-space:pre;line-height:1}.comparison input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}.comparison:focus-within{outline:2px solid var(--gold);outline-offset:6px}.comparison-label{position:absolute;bottom:20px;z-index:1;pointer-events:none;font-size:16px;background:#111c;padding:5px 12px;color:#fff}.label-before{left:20px}.label-after{right:20px}.comparison-caption{display:flex;justify-content:space-between;gap:24px;color:#aaa59d;font-size:11px}.comparison-caption p{margin:16px 0 0}.approach{display:block;background:var(--paper);color:var(--ink)}.approach .section-heading>p{color:#55514b}.process{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:50px;padding:0;margin:60px 0 0}.process li{border-top:1px solid #bdb5a8;padding-top:22px}.step-number{font-size:12px;color:#77684f}.process h3{font:400 27px/1.2 Georgia,serif;margin:25px 0 16px}.process p{color:#605b53;font-size:13px;margin:0;max-width:320px}.faq{display:grid;grid-template-columns:1fr 1.25fr;gap:7vw;padding-block:90px}.faq-intro p{color:var(--muted);margin:24px 0 0;font-size:13px}.faq-list details{border-top:1px solid #44413b}.faq-list details:last-child{border-bottom:1px solid #44413b}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0;cursor:pointer;list-style:none;font-size:16px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{position:relative;flex:0 0 20px;width:20px;height:20px}.faq-list summary span:before,.faq-list summary span:after{content:'';position:absolute;top:10px;width:16px;height:1px;background:var(--gold)}.faq-list summary span:after{transform:rotate(90deg);transition:transform .2s}.faq-list details[open] summary span:after{transform:rotate(0)}.faq-list summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.faq-list details p{margin:0 35px 26px 0;font-size:14px;color:#bdbbb6;max-width:570px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:8vw;background:#202226;padding-block:85px}.contact-intro>p{max-width:340px;color:#c5c0b8;margin-top:26px;font-size:14px}.contact-intro .demo-note{font-size:11px;color:#aaa59d;margin-top:40px}.contact form{max-width:560px;width:100%}.contact label{display:block;font-size:12px;color:#d3c8b7;margin-bottom:10px}.contact input,.contact select,.contact textarea{border:1px solid #58534a;background:#181a1d;color:var(--ivory);width:100%;border-radius:0;min-height:52px;padding:14px 16px;font:400 14px/1.5 Manrope,sans-serif;margin:0 0 24px}.contact input::placeholder{color:#aaa69f}.contact input:focus,.contact select:focus,.contact textarea:focus{outline:2px solid var(--gold);outline-offset:3px}.contact select{color-scheme:dark}.request-button{width:100%;margin-top:8px;min-height:54px}.form-status,.copy-status{font-size:12px;color:#e0c498;margin:14px 0;min-height:20px}.contact textarea{resize:vertical;margin-bottom:12px}.contact #request-result{border-top:1px solid #58534a;margin-top:24px;padding-top:24px}.contact #copy-request{min-height:44px}.contact #copy-request:hover{background:var(--gold);color:var(--ink)}footer{align-items:center;padding-block:35px}footer p{margin:10px 0 0;color:#aba69d}.footer-brand{font:32px/1 Georgia,serif;color:var(--ivory)}footer div:nth-child(2){display:flex;flex-direction:column;gap:10px}.back-top{align-self:flex-start}
@media(max-width:900px){.desktop-nav{gap:18px}.header{gap:20px}.header-cta{padding:12px 16px}.service-panel{gap:35px}.process{gap:25px}.process h3{font-size:24px}.contact{gap:40px}.faq{gap:40px}}
@media(max-width:600px){.service-panel{display:flex;flex-direction:column-reverse;gap:28px;padding-top:28px;min-height:0;align-items:stretch}.service-visual{width:100%}.service-visual span{font-size:9px;right:12px;bottom:12px}.service-copy ul{margin:20px 0 24px;font-size:12px}.service-copy .service-note{margin-top:14px}.results,.faq,.contact{padding-block:52px}.comparison{aspect-ratio:1.25;margin-top:30px}.comparison-label{font-size:12px;bottom:14px}.label-before{left:12px}.label-after{right:12px}.comparison-handle>span{width:44px;height:44px;font-size:22px}.comparison-caption{display:block;font-size:10px}.comparison-caption p{margin-top:12px}.process{grid-template-columns:1fr;gap:30px;margin-top:35px}.process li{padding-top:16px}.process h3{font-size:26px;margin:16px 0 12px}.process p{margin-top:0;font-size:13px}.faq,.contact{display:block}.faq-intro p{margin:20px 0 28px}.faq-list summary{font-size:14px;padding:23px 0;gap:18px}.faq-list details p{font-size:13px;margin-right:20px}.contact-intro>p{font-size:13px}.contact-intro .demo-note{margin-top:24px}.contact form{margin-top:32px}.contact input,.contact select,.contact textarea{font-size:16px}footer{padding-block:28px}footer div:nth-child(2){margin-top:23px}footer .back-top{display:inline-block;margin-top:24px}}
/* Stage 4: motion follows the visitor's actions. */
.button{position:relative;isolation:isolate;overflow:hidden;transition:color .22s ease,border-color .22s ease,transform .18s ease;background:transparent}
.button:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--gold);transform:translateY(101%);transition:transform .42s cubic-bezier(.22,1,.36,1)}
.button-gold{background:var(--gold)}
.button-gold:before{background:#e3c291}
.button-gold:hover{background:var(--gold);border-color:var(--gold)}
.button-outline:hover,.contact #copy-request:hover{background:transparent;color:#e1bc87}
.button>span[aria-hidden]{display:inline-block;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.button:focus-visible:before{transform:translateY(0)}
.button-outline:focus-visible{color:var(--ink)}
.button:focus-visible>span[aria-hidden]{transform:translate(3px,-3px)}
.button:active{transform:translateY(1px)}
.desktop-nav a:focus-visible:after{transform:scaleX(1)}
.service-tabs button{position:relative;border-bottom-color:#c9c3b8;min-height:44px}
.service-tabs button:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#a1783d;transform:scaleX(0);transform-origin:left;transition:transform .36s cubic-bezier(.22,1,.36,1)}
.service-tabs button[aria-selected=true]{border-bottom-color:#c9c3b8}
.service-tabs button[aria-selected=true]:after{transform:scaleX(1)}
.service-visual .service-image-outgoing{position:absolute;inset:0;pointer-events:none}
.service-visual span{z-index:1}
.service-image-status{font-size:12px;color:#59554f;margin:0}
.service-image-status:empty{display:none}
.scroll-link span{transition:transform .3s ease,border-color .3s ease,background .3s ease}
.scroll-link:focus-visible span{transform:translateY(3px);border-color:var(--gold);background:#c9a36b18}
.faq-list summary{transition:color .2s ease}
.faq-list details[open] p{animation:answer-in .28s ease-out both}
#mobile-menu:not([hidden]){animation:answer-in .22s ease-out both}
.comparison-handle>span{transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}
.comparison:focus-within .comparison-handle>span{border-color:var(--gold);box-shadow:0 0 0 5px #c9a36b20}
@keyframes answer-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){
  .button:hover:before{transform:translateY(0)}
  .button-outline:hover,.contact #copy-request:hover{color:var(--ink)}
  .button:hover>span[aria-hidden]{transform:translate(3px,-3px)}
  .scroll-link:hover span{transform:translateY(3px);border-color:var(--gold);background:#c9a36b18}
  .faq-list summary:hover{color:#e1bc87}
  .comparison:hover .comparison-handle>span{border-color:var(--gold);background:#17191cef}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:active,.button>span[aria-hidden],.scroll-link span{transform:none!important}}
/* Stage 4.5: help choose care before asking for an enquiry. */
.care-finder{margin-top:36px;padding:24px 0 0;border-top:1px solid #c9c3b8}
.care-finder>p:first-child{font-size:13px;margin:0 0 16px;color:#59554f}
.care-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.care-choices button{border:1px solid #c3baab;background:transparent;text-align:left;padding:18px 20px;color:var(--ink);transition:background .25s,border-color .25s}
.care-choices button span{display:block;font:400 22px/1.2 Georgia,serif}
.care-choices button small{display:block;margin-top:8px;font-size:11px;line-height:1.5;color:#59554f}
.care-choices button[aria-pressed=true]{border-color:#8d672f;background:#ded1bb}
.care-finder .finder-note{font-size:11px;color:#605b53;margin:14px 0 0;max-width:690px}
.service-expectations{margin:0 0 26px;max-width:390px}
.service-expectations dt{font-size:11px;color:#6e5129;margin-top:14px}
.service-expectations dd{font-size:12px;line-height:1.6;color:#59554f;margin:5px 0 0}
.estimate{display:grid;grid-template-columns:1fr 1fr;gap:8vw;background:#232220;border-top:1px solid #3c3933}
.estimate-intro>p{max-width:370px;color:#c5c0b8;font-size:14px;margin:26px 0 30px}
.estimate-details h3{font:400 27px/1.3 Georgia,serif;margin:0 0 28px}
.estimate-details dl{margin:0}
.estimate-details dt{border-top:1px solid #504a40;padding-top:18px;font-size:14px;color:#dfc094}
.estimate-details dd{margin:8px 0 22px;max-width:470px;color:#c5c0b8;font-size:13px}
.estimate-note{font-size:11px;line-height:1.7;color:#bdb7ad;margin:28px 0 0;max-width:480px}
.optional-label{color:#aaa59d}
@media(hover:hover) and (pointer:fine){.care-choices button:hover{border-color:#8d672f;background:#e5dac8}}
@media(max-width:900px){.care-choices button{padding:16px}.care-choices button span{font-size:20px}.estimate{gap:40px}}
@media(max-width:600px){.care-finder{margin-top:26px;padding-top:20px}.care-choices{grid-template-columns:1fr;gap:8px}.care-choices button{padding:14px 16px}.care-choices button span{font-size:21px}.care-choices button small{margin-top:4px}.care-finder .finder-note{font-size:10px}.service-expectations{max-width:none}.estimate{display:block}.estimate-intro>p{font-size:13px}.estimate-details{margin-top:36px}.estimate-details h3{font-size:25px}.estimate-details dd{font-size:12px}.estimate-note{font-size:10px}}
