:root{--ink:#1b2a24;--ink2:#243630;--cream:#f4efe3;--cream2:#ebe4d3;--clay:#c28b62;--clay-d:#9a6338;--text:#2a332e;--display:'Cormorant Garamond',Georgia,serif;--sans:'Jost',system-ui,sans-serif}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--sans);background:var(--cream);color:var(--text);font-size:1.02rem;line-height:1.75;font-weight:400;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.12}
a{color:var(--clay-d);transition:opacity .3s,color .3s,border-color .3s}
.caps,.eyebrow,.btn,.navbar .nav-link,.dl dt{font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase}
.eyebrow{display:block;color:var(--clay-d);margin-bottom:1.1rem}
.dark .eyebrow,.hero .eyebrow{color:var(--clay)}
.sec{padding:96px 0}
.sec h2{font-size:clamp(2.2rem,4.6vw,3.5rem);margin-bottom:1.2rem}
.lede{font-family:var(--display);font-style:italic;font-size:1.35rem;opacity:.85;max-width:720px}
.dark{background:var(--ink);color:var(--cream)}
.dark h2,.dark h3{color:var(--cream)}
.alt{background:var(--cream2)}
.measure{max-width:820px}
/* nav */
.navbar.navbar-expand-lg{background:rgba(27,42,36,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.9rem 0;border-bottom:1px solid rgba(194,139,98,.2)}
.navbar-brand{font-family:var(--display);font-size:1.35rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream);font-weight:400;line-height:1.1}
.navbar-brand:hover{color:var(--cream)}
.navbar-brand small{display:block;font-family:var(--sans);font-size:.56rem;letter-spacing:.3em;color:var(--clay);margin-top:.25rem}
.navbar .nav-link{color:rgba(244,239,227,.8);padding:.5rem .85rem}
.navbar .nav-link:hover{color:var(--clay)}
.navbar-toggler{border:1px solid rgba(244,239,227,.35);padding:.4rem .6rem}
.navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23f4efe3' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}
.navbar-toggler:focus{box-shadow:0 0 0 2px var(--clay)}
/* buttons */
.btn{border-radius:0;padding:15px 38px;transition:opacity .3s,background .3s,color .3s,border-color .3s}
.btn-clay{background:var(--clay);color:var(--ink);border:1px solid var(--clay)}
.btn-clay:hover{background:var(--clay);color:var(--ink);opacity:.82}
.btn-ghost{background:transparent;color:var(--cream);border:1px solid rgba(244,239,227,.4)}
.btn-ghost:hover{color:var(--cream);border-color:var(--clay);background:rgba(194,139,98,.12)}
.btn-ghost-ink{color:var(--ink);border:1px solid rgba(27,42,36,.35)}
.btn-ghost-ink:hover{color:var(--ink);border-color:var(--clay-d)}
.nav-cta{padding:10px 22px;margin-left:.6rem}
/* hero */
.hero{background:radial-gradient(ellipse 70% 80% at 75% 45%,#26392f 0%,var(--ink) 75%);color:var(--cream);padding:150px 0 90px;position:relative;overflow:hidden}
.hero h1{font-size:clamp(2.6rem,5.5vw,4.6rem);color:var(--cream);margin-bottom:1.3rem}
.hero .sub{font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,2vw,1.45rem);opacity:.82;letter-spacing:.01em;max-width:520px}
.hero .btn{margin:.4rem .6rem .4rem 0}
.arch{position:relative;max-width:360px;margin:0 auto}
.arch img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 18%;border-radius:999px 999px 0 0;position:relative;z-index:1}
.arch::before{content:"";position:absolute;inset:-14px -14px 14px 14px;border:1px solid rgba(194,139,98,.5);border-radius:999px 999px 0 0;z-index:0}
.arch figcaption{margin-top:2.4rem;text-align:center;color:rgba(244,239,227,.75)}
.spine{display:block;width:34px;height:auto;color:var(--clay)}
.spine-bg{position:absolute;left:auto;right:1.5%;top:130px;opacity:.14;pointer-events:none}
.spine-bg svg{width:52px;height:auto}
/* hairline cards */
.line{border:1px solid rgba(27,42,36,.16);padding:34px 30px;height:100%;background:transparent}
.dark .line{border-color:rgba(194,139,98,.25)}
.person img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 20%;display:block}
.person.sm img{aspect-ratio:3/4;object-position:50% 25%}
.person h3{margin:1.2rem 0 .2rem;font-size:1.7rem}
.person .role{color:var(--clay-d);display:block;margin-bottom:.8rem}
.fine{font-size:.82rem;opacity:.7}
/* service index */
.svc{list-style:none;padding:0;margin:0;border-top:1px solid rgba(194,139,98,.28)}
.svc li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) 110px;gap:1.5rem;align-items:center;padding:26px 0;border-bottom:1px solid rgba(194,139,98,.28)}
.svc h3{font-size:1.9rem;margin:0}
.svc p{margin:0;opacity:.85}
.svc img{width:110px;aspect-ratio:1/1;object-fit:cover;display:block;filter:saturate(.8)}
.svc .noimg{width:110px}
/* accordion */
.accordion{--bs-accordion-bg:transparent;--bs-accordion-border-color:rgba(27,42,36,.18);--bs-accordion-btn-focus-box-shadow:0 0 0 2px var(--clay);--bs-accordion-active-bg:transparent;--bs-accordion-active-color:var(--ink);--bs-accordion-btn-color:var(--ink)}
.accordion-item{background:transparent;border-left:0;border-right:0;border-radius:0!important}
.accordion-button{font-family:var(--display);font-size:1.45rem;padding:1.3rem 0;background:transparent;box-shadow:none}
.accordion-button:not(.collapsed){box-shadow:none;color:var(--ink)}
.accordion-body{padding:0 0 1.5rem;max-width:820px}
.accordion-body p{margin-bottom:.8rem}
/* hours */
.dl{display:grid;grid-template-columns:auto 1fr;gap:.55rem 2rem;margin:0}
.dl dt{padding-top:.35rem;color:var(--clay)}
.dl dd{margin:0}
.dl .closed{opacity:.6}
.contact-line{font-family:var(--display);font-size:1.8rem}
.contact-line a{color:var(--cream);text-decoration:none}
.map{border:1px solid rgba(194,139,98,.3);width:100%;height:340px;display:block}
.logo-chip{display:inline-block;background:var(--cream);padding:10px 14px}
.logo-chip img{height:58px;width:auto;display:block}
footer{background:#121d18;color:rgba(244,239,227,.75);padding:56px 0 40px;font-size:.9rem}
footer a{color:var(--cream)}
footer .wf a{color:var(--clay)}
.divider{display:flex;justify-content:center;padding:0;margin:0}
@media(max-width:991px){
.sec{padding:64px 0}
.hero{padding:120px 0 64px}
.spine-bg{display:none}
.navbar-collapse{padding:1rem 0}
.nav-cta{margin:.6rem 0 0 .85rem;display:inline-block}
.svc li{grid-template-columns:1fr 90px;gap:.5rem 1rem}
.svc p{grid-column:1/2}
.svc img,.svc .noimg{grid-column:2;grid-row:1/3;width:90px}
.svc .noimg{display:none}
}
@media(max-width:575px){
.navbar-brand{font-size:1rem;letter-spacing:.08em}
.navbar-brand small{font-size:.5rem;letter-spacing:.2em}
.dl{grid-template-columns:1fr;gap:0}
.dl dt{padding-top:.9rem}
.btn{padding:14px 28px}
}
