:root{--ink:#16302e;--ink2:#1e3d3a;--oat:#f3eee3;--oat2:#e9e2d2;--sage:#a9bf9f;--sage-d:#5d7a59;--hair:rgba(169,191,159,.28);--haird:rgba(22,48,46,.16);--display:'Cormorant Garamond',Georgia,serif;--sans:'Jost',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:var(--sans);background:var(--oat);color:var(--ink);font-size:1.02rem;line-height:1.75;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.12}
h2{font-size:clamp(2.2rem,4.6vw,3.6rem)}
a{color:inherit}
.caps,.eyebrow,.btn,.navbar .nav-link,dt{font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase}
.eyebrow{color:var(--sage-d);display:block;margin-bottom:1rem}
.on-dark .eyebrow,.hero .eyebrow{color:var(--sage)}
.lede{font-family:var(--display);font-style:italic;font-size:1.4rem;opacity:.85;max-width:720px}
section{padding:96px 0;position:relative}
@media(max-width:767px){section{padding:64px 0}}
.on-dark{background:var(--ink);color:var(--oat)}
.btn{border-radius:0;padding:15px 36px;transition:.3s;border:1px solid transparent}
.btn-sage{background:var(--sage);color:var(--ink)}.btn-sage:hover{background:var(--oat);color:var(--ink)}
.btn-ghost{border-color:rgba(243,238,227,.35);color:var(--oat)}.btn-ghost:hover{border-color:var(--sage);color:var(--sage)}
.btn-ghost-d{border-color:var(--haird);color:var(--ink)}.btn-ghost-d:hover{border-color:var(--ink)}
/* nav (c): centered name stacked above link row */
.navbar{background:rgba(22,48,46,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:14px 0;border-bottom:1px solid var(--hair)}
.navbar-brand{display:flex;align-items:center;gap:.8rem;font-family:var(--display);font-size:1.35rem;letter-spacing:.16em;text-transform:uppercase;color:var(--oat);white-space:normal;line-height:1.1;margin:0}
.navbar-brand img{width:38px;height:38px;border-radius:50%}
.navbar-brand small{display:block;font-family:var(--sans);font-size:.56rem;letter-spacing:.3em;color:var(--sage);margin-top:.25rem}
.navbar-toggler{border:1px solid var(--hair);border-radius:0}
.navbar-toggler-icon{filter:invert(1)}
.navbar .nav-link{color:rgba(243,238,227,.8);padding:.5rem 1.15rem!important;transition:.3s}
.navbar .nav-link:hover{color:var(--sage)}
@media(min-width:992px){
 .navbar .container{flex-direction:column;align-items:center}
 .navbar.navbar-expand-lg .navbar-collapse{justify-content:center;flex-grow:0;width:100%;margin-top:.5rem;border-top:1px solid var(--hair);padding-top:.35rem}
 .navbar-brand{justify-content:center;text-align:center}
}
@media(max-width:991px){.navbar .container{flex-wrap:wrap}.navbar-brand{font-size:1.05rem}.navbar-collapse{padding:.5rem 0}}
/* hero: typographic-forward + arch portrait */
.hero{position:relative;background:var(--ink);color:var(--oat);padding:80px 0 96px;overflow:hidden}
.hero h1{font-size:clamp(2.8rem,6.4vw,5.4rem);margin-bottom:1.4rem}
.hero h1 em{color:var(--sage)}
.hero .lede{margin-bottom:2.2rem}
.arch{border-radius:999px 999px 0 0;border:1px solid var(--hair);padding:14px;max-width:380px;margin-inline:auto}
.arch img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 20%;border-radius:999px 999px 0 0;display:block}
.arch-cap{text-align:center;margin-top:1rem;font-family:var(--display);font-size:1.2rem;letter-spacing:.04em}
.arch-cap small{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sage)}
.spine-bg{position:absolute;right:-30px;top:0;height:100%;opacity:.09;pointer-events:none}
/* signature: vertebra column divider */
.spine{display:flex;justify-content:center;align-items:center;gap:10px;padding:0;height:34px;background:var(--oat)}
.spine svg{height:22px;width:120px;flex:none;display:block}
.spine i{display:block;height:1px;flex:1;max-width:240px;background:var(--haird)}
.spine.d{background:var(--ink)}.spine.d i{background:var(--hair)}
.spine.d svg{stroke:var(--sage)}.spine svg{stroke:var(--sage-d)}
/* about */
.about p{max-width:820px}
.hours-note{font-size:.95rem;opacity:.75}
.quote-band{background:var(--oat2);text-align:center;padding:84px 0}
.quote-band blockquote{font-family:var(--display);font-style:italic;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.4;max-width:900px;margin:0 auto 1.2rem;font-weight:400}
.quote-band cite{font-style:normal}
/* services index */
.index{list-style:none;padding:0;margin:0}
.index li{border-top:1px solid var(--haird);padding:1.4rem 0;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1rem 3rem;align-items:baseline}
.index li:last-child{border-bottom:1px solid var(--haird)}
.index h3{font-size:clamp(1.7rem,3vw,2.3rem);margin:0}
.index p{margin:0;opacity:.85}
@media(max-width:767px){.index li{grid-template-columns:1fr}}
.on-dark .index li{border-color:var(--hair)}
.frame{border:1px solid var(--hair);padding:12px}
.frame img{width:100%;height:auto;display:block}
.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem .6rem}
.chips li{border:1px solid var(--hair);padding:.45rem 1.1rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
/* team */
.team .frame img{height:auto}
.person{display:flex;gap:1.6rem;align-items:center}
.person img{width:130px;height:162px;object-fit:cover;object-position:50% 20%;border-radius:999px 999px 0 0;flex:none}
.person h3{font-size:1.7rem;margin:0}
@media(max-width:575px){.person{flex-direction:column;text-align:center}}
/* contact */
dl{margin:0}dt{color:var(--sage);margin-top:1.4rem}dd{margin:.2rem 0 0;font-family:var(--display);font-size:1.35rem}
dd a{text-decoration:none}
table.hrs{width:100%;max-width:520px;border-collapse:collapse;margin-top:.4rem}
table.hrs td{padding:.55rem 0;border-bottom:1px solid var(--hair);font-size:.98rem}
table.hrs td:first-child{font-family:var(--display);font-size:1.25rem;width:34%}
.map iframe{width:100%;height:100%;min-height:420px;border:1px solid var(--hair);filter:saturate(.7)}
footer{background:#0f2220;color:rgba(243,238,227,.75);padding:48px 0 36px;font-size:.9rem;text-align:center}
footer a{color:var(--sage);text-decoration:none}
footer .brand{font-family:var(--display);letter-spacing:.16em;text-transform:uppercase;font-size:1.2rem;color:var(--oat);margin-bottom:.8rem}
footer img{width:44px;border-radius:50%;margin-bottom:.8rem}
.powered{margin-top:1.2rem;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
