:root{--plum:#2b2036;--plum2:#3a2c49;--linen:#f4efe6;--paper:#fbf9f4;--brass:#a8902a;--brass-lt:#d4b957;--ink:#241c2c;--mute:#5f5568}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:'Figtree',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:1.1rem;line-height:1.65}
h1,h2,h3,.serif{font-family:'Young Serif',Georgia,serif;font-weight:400;line-height:1.1;letter-spacing:-.005em}
a{color:var(--plum2)}
.sec{padding:5.5rem 0}
.lead-in{font-size:1.2rem;color:var(--mute);max-width:36rem}

/* nav: centered logo stacked over links */
.topnav{background:var(--linen);border-bottom:3px solid var(--brass);position:sticky;top:0;z-index:1030}
.topnav .navbar{padding:.6rem 0 .3rem;flex-direction:column}
.topnav .navbar-brand{margin:0;padding:0;display:block}
.topnav .navbar-brand img{height:76px;width:auto;display:block}
.navbar.navbar-expand-lg .navbar-collapse{justify-content:center;flex-grow:0}
.topnav .nav-link{color:var(--plum);font-weight:600;padding:.5rem 1.1rem}
.topnav .nav-link:hover{color:var(--brass)}
.topnav .nav-call{text-decoration:none;font-weight:700;color:#fff;background:var(--plum);border-radius:2px;padding:.5rem 1.1rem;margin-left:.6rem}
.topnav .nav-call:hover{background:var(--brass)}
.topnav .navbar-toggler{position:absolute;right:12px;top:14px;border:2px solid var(--plum)}
@media(max-width:991px){
 .topnav .navbar-brand img{height:50px;margin-right:48px}
 .topnav .navbar-collapse{width:100%;text-align:center;padding-bottom:.6rem}
 .topnav .nav-call{display:inline-block;margin:.4rem 0 0}
}

/* hero */
.hero{background:var(--plum);color:#fff;position:relative;overflow:hidden;padding:6rem 0 5.5rem}
.hero h1{font-size:clamp(2.5rem,6.2vw,5rem);max-width:15ch}
.hero .sub{font-size:1.35rem;max-width:34rem;margin:1.6rem 0 2.2rem;color:#e8e1ee}
.jargon{position:relative;display:inline-block;color:#cfc3d9;white-space:nowrap}
.jargon::after{content:"";position:absolute;left:-2%;right:-2%;top:52%;height:.14em;background:var(--brass-lt);transform:rotate(-2deg);border-radius:2px}
.btn-brass{background:var(--brass-lt);color:var(--plum);font-weight:700;border:2px solid var(--brass-lt);border-radius:2px;padding:.85rem 1.7rem}
.btn-brass:hover{background:#fff;border-color:#fff;color:var(--plum)}
.btn-line{border:2px solid #fff;color:#fff;border-radius:2px;padding:.85rem 1.7rem;font-weight:600;text-decoration:none;display:inline-block}
.btn-line:hover{background:#fff;color:var(--plum)}
.btn-plum{background:var(--plum);color:#fff;border:2px solid var(--plum);border-radius:2px;padding:.85rem 1.7rem;font-weight:700}
.btn-plum:hover{background:var(--brass);border-color:var(--brass);color:#fff}

/* approach */
.approach h2{font-size:clamp(2rem,4vw,3rem)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:3rem;border-top:1px solid #d9d0c2}
.pillar{padding:2rem 2rem 0 0}
.pillar+.pillar{padding-left:2rem;border-left:1px solid #d9d0c2}
.pillar h3{font-size:1.6rem;color:var(--plum);margin-bottom:.8rem}
.pillar p{color:var(--mute);font-size:1.03rem}
@media(max-width:991px){.pillars{grid-template-columns:1fr}.pillar,.pillar+.pillar{padding:1.6rem 0;border-left:0;border-bottom:1px solid #d9d0c2}}

/* quote band */
.quote{background:var(--brass);color:var(--plum);padding:4.5rem 0}
.quote p{font-family:'Young Serif',serif;font-size:clamp(1.5rem,3.2vw,2.4rem);line-height:1.25;max-width:26em;margin:0}

/* practice index */
.practice{background:var(--linen)}
.practice h2{font-size:clamp(2rem,4vw,3rem)}
.index{list-style:none;padding:1.4rem 0 0;margin:0;border-top:2px solid var(--plum);display:grid;grid-template-columns:1fr 1fr;gap:.2rem 2rem}
.index li{font-family:'Young Serif',serif;font-size:1.25rem;line-height:1.3;padding:.7rem 0 .7rem 1.5rem;position:relative;color:var(--plum)}
.index li::before{content:"";position:absolute;left:0;top:1.15rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--brass)}
.index li:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:575px){.index{grid-template-columns:1fr}}

/* portrait (hero) */
.portrait{position:relative;max-width:420px}
.portrait::before{content:"";position:absolute;inset:18px -18px -18px 18px;background:var(--brass);border-radius:210px 210px 6px 6px}
.portrait img{position:relative;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:47% 25%;border-radius:210px 210px 6px 6px;display:block}
/* about */
.about h2{font-size:clamp(2rem,4vw,3rem)}
.facts{display:flex;flex-wrap:wrap;gap:1.2rem 2.5rem;margin:2rem 0 0;padding:1.4rem 0 0;border-top:1px solid #d9d0c2;list-style:none}
.facts b{display:block;font-family:'Young Serif',serif;font-weight:400;font-size:1.7rem;color:var(--plum);line-height:1.1}
.facts span{font-size:.95rem;color:var(--mute)}

/* contact */
.contact{background:var(--plum);color:#e8e1ee}
.contact h2{color:#fff;font-size:clamp(2rem,4vw,3rem)}
.contact a{color:var(--brass-lt)}
.contact .big{font-family:'Young Serif',serif;font-size:clamp(2rem,5vw,3.2rem);color:#fff;text-decoration:none;display:block;line-height:1.1}
.contact .big:hover{color:var(--brass-lt)}
.contact dt{font-weight:700;color:#fff;margin-top:1.4rem}
.contact dd{margin:0}
.map{border:0;width:100%;height:100%;min-height:340px;border-radius:4px}

footer{background:#1c1426;color:#b9aec4;padding:2.6rem 0;font-size:.98rem}
footer a{color:var(--brass-lt)}
footer .chip img{height:46px;width:auto;display:block}
.powered a{color:var(--brass-lt);font-weight:600;text-decoration:none}
.powered a:hover{text-decoration:underline}
:focus-visible{outline:3px solid var(--brass-lt);outline-offset:2px}
@media(max-width:991px){.hero{padding:4rem 0}.hero .portrait{margin:0 auto;max-width:300px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.index li{transition:none}}
