:root{--ink:#261f2b;--ink2:#1c1620;--ivory:#f4f0e8;--ivory2:#ebe5d8;--sage:#a8b894;--sage-d:#5f7050;--mute:#5f5866;--line:rgba(168,184,148,.28);--lineD:rgba(38,31,43,.16);--display:'Fraunces',Georgia,serif;--body:'Manrope',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:var(--body);font-weight:400;font-size:1.02rem;line-height:1.75;color:var(--ink);background:var(--ivory);overflow-x:clip}
h1,h2,h3{font-family:var(--display);font-weight:300;line-height:1.14;letter-spacing:-.005em}
h1{font-size:clamp(2.6rem,5.6vw,4.6rem)}
h2{font-size:clamp(2rem,4vw,3rem)}
h3{font-size:1.45rem}
em{font-style:italic}
a{color:inherit}
.caps{font-family:var(--body);font-size:.68rem;text-transform:uppercase;letter-spacing:.28em;font-weight:600}
.eyebrow{display:block;color:var(--sage-d);margin-bottom:1.1rem}
.dark .eyebrow,.hero .eyebrow{color:var(--sage)}
.sub{font-family:var(--display);font-style:italic;font-weight:300;font-size:1.3rem;opacity:.82;letter-spacing:.01em}
/* nav (c): centered name stacked above links */
.navbar{background:rgba(28,22,32,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:.9rem 0}
.navbar-brand{font-family:var(--display);font-weight:300;text-transform:uppercase;letter-spacing:.3em;font-size:1.05rem;color:var(--ivory);margin:0;white-space:normal;text-align:center}
.navbar-brand small{display:block;font-family:var(--body);font-size:.58rem;letter-spacing:.34em;color:var(--sage);margin-top:.2rem;font-weight:600}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center}
.navbar .nav-link{color:rgba(244,240,232,.8);font-size:.64rem;text-transform:uppercase;letter-spacing:.26em;font-weight:600;padding:.5rem 1rem;transition:color .3s,opacity .3s}
.navbar .nav-link:hover,.navbar .nav-link:focus{color:var(--sage)}
@media(min-width:992px){.navbar .container{flex-direction:column}.navbar-brand{margin-bottom:.55rem}.navbar-toggler{display:none}}
.navbar-toggler{border:1px solid var(--line);padding:.4rem .6rem}
.navbar-toggler-icon{filter:invert(1)}
@media(max-width:991px){.navbar .container{flex-wrap:wrap}.navbar-brand{text-align:left;font-size:.9rem;letter-spacing:.2em;max-width:75%}.navbar-collapse{border-top:1px solid var(--line);margin-top:.7rem}.navbar .nav-link{padding:.8rem 0}}
/* buttons */
.btn-wf,.btn-ghost{display:inline-block;font-size:.68rem;text-transform:uppercase;letter-spacing:.26em;font-weight:700;padding:15px 36px;border-radius:0;text-decoration:none;transition:opacity .3s,background .3s,color .3s,border-color .3s}
.btn-wf{background:var(--sage);color:var(--ink2);border:1px solid var(--sage)}
.btn-wf:hover{opacity:.82;color:var(--ink2)}
.btn-ghost{border:1px solid rgba(244,240,232,.4);color:var(--ivory);background:transparent}
.btn-ghost:hover{border-color:var(--sage);color:var(--sage)}
.btn-ghost.on-light{border-color:var(--lineD);color:var(--ink)}
.btn-ghost.on-light:hover{border-color:var(--sage-d);color:var(--sage-d)}
/* hero */
.hero{overflow-x:clip;background:linear-gradient(180deg,#2a2230 0%,#1c1620 100%);color:var(--ivory);padding:110px 0 100px}
.hero h1{margin-bottom:1.4rem}
.hero h1 em{color:var(--sage)}
.hero .sub{max-width:560px;margin-bottom:2.2rem}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}
.portrait{position:relative;max-width:280px;margin:0 auto}
.portrait img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%;border-radius:150px 150px 0 0;display:block;filter:saturate(.85)}
.portrait:before{content:"";position:absolute;inset:-12px -12px 12px 12px;border:1px solid var(--line);border-radius:162px 162px 0 0;z-index:-1}
.portrait figcaption{margin-top:1.4rem;text-align:center;color:rgba(244,240,232,.75)}
.portrait figcaption b{display:block;font-family:var(--display);font-weight:300;font-size:1.25rem;letter-spacing:.02em;text-transform:none;color:var(--ivory)}
/* signature: owed / settled */
.owed{font-family:var(--display);font-weight:300;font-variant-numeric:lining-nums;white-space:nowrap}
.owed s{text-decoration:none;position:relative;opacity:.55;margin-right:.35em}
.owed s:after{content:"";position:absolute;left:-3%;right:-3%;top:54%;border-top:1px solid var(--sage)}
.owed span{color:var(--sage)}
.results{background:var(--ink2);color:var(--ivory);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0}
.results .col-md-4{padding:1.2rem 2rem;text-align:center}
@media(min-width:768px){.results .col-md-4+.col-md-4{border-left:1px solid var(--line)}}
.results .owed{font-size:clamp(1.7rem,3vw,2.3rem);display:block;margin-bottom:.8rem;line-height:1.3}
.results p{font-size:.92rem;opacity:.78;margin:0;max-width:300px;margin-inline:auto}
.results .caps{display:block;margin-top:.7rem;color:var(--sage);font-size:.6rem}
.results-note{text-align:center;margin-top:2rem;color:rgba(244,240,232,.55)}
/* sections */
section.pad{padding:96px 0}
@media(max-width:767px){section.pad{padding:64px 0}.hero{padding:70px 0 70px}}
.dark{background:var(--ink);color:var(--ivory)}
.alt{background:var(--ivory2)}
.lead-wrap{max-width:820px}
.rule{border:0;border-top:1px solid var(--lineD);margin:2.2rem 0}
.arch{width:100%;height:auto;border-radius:200px 200px 0 0;object-fit:cover;aspect-ratio:4/5;display:block;filter:saturate(.8)}
.frame{position:relative}
.frame:after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--lineD);border-radius:200px 200px 0 0;z-index:-1}
/* problem index */
.index{list-style:none;padding:0;margin:2rem 0 0;columns:2;column-gap:3rem}
.index li{break-inside:avoid;padding:.95rem 0;border-bottom:1px solid var(--line);font-family:var(--display);font-weight:300;font-size:1.3rem;display:flex;justify-content:space-between;gap:1rem}
.index li:after{content:"\2192";color:var(--sage);font-family:var(--body)}
@media(max-width:600px){.index{columns:1}}
/* services */
.svc{padding:2.4rem 0;border-top:1px solid var(--lineD);height:100%}
.svc h3{margin-bottom:1rem}
.svc ul{list-style:none;padding:0;margin:1.2rem 0 0;font-size:.95rem}
.svc li{padding:.45rem 0 .45rem 1.3rem;position:relative;border-bottom:1px solid var(--lineD)}
.svc li:before{content:"";position:absolute;left:0;top:1.15rem;width:.55rem;border-top:1px solid var(--sage-d)}
.svc p{color:var(--mute)}
/* testimonials */
blockquote{margin:0;padding:2rem 0;border-top:1px solid var(--line);font-family:var(--display);font-weight:300;font-style:italic;font-size:1.22rem;line-height:1.6}
blockquote cite{display:block;margin-top:1rem;font-style:normal;font-family:var(--body);color:var(--sage);font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600}
/* guarantee */
.guar{border:1px solid var(--lineD);padding:3rem;max-width:900px;margin:0 auto;text-align:center}
.guar p{max-width:680px;margin:1.2rem auto 2rem}
/* contact */
.contact dl{margin:0}
.contact dt{color:var(--sage);margin-top:1.6rem}
.contact dd{margin:.2rem 0 0;font-size:1.05rem}
.contact a{text-decoration:none;border-bottom:1px solid var(--line);transition:border-color .3s,color .3s}
.contact a:hover{border-color:var(--sage);color:var(--sage)}
.map{width:100%;height:100%;min-height:380px;border:1px solid var(--line);filter:grayscale(.5)}
footer{background:var(--ink2);color:rgba(244,240,232,.7);padding:56px 0 40px;font-size:.88rem;border-top:1px solid var(--line)}
footer .brand{font-family:var(--display);text-transform:uppercase;letter-spacing:.26em;color:var(--ivory);font-size:1rem}
footer a{text-decoration:none}
footer a:hover{color:var(--sage)}
.powered a{color:var(--sage)}
a:focus-visible,.btn-wf:focus-visible,.btn-ghost:focus-visible{outline:2px solid var(--sage);outline-offset:3px}
section,header,footer{overflow-x:clip}
