:root{--pine:#1d3a33;--pine2:#142a25;--cream:#f7f2e9;--brick:#a9503a;--brick-d:#8c3f2c;--line:rgba(29,58,51,.18)}
img{max-width:100%;height:auto}
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:84px}
body{font-family:'DM Sans',sans-serif;font-size:1.04rem;line-height:1.7;color:#25312d;background:var(--cream)}
h1,h2,h3,h4{font-family:'Newsreader',serif;font-weight:500;line-height:1.12;color:var(--pine)}
h1{font-size:clamp(2.5rem,5vw,4rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.8rem);margin-bottom:1rem}
h3{font-size:1.4rem}
a{color:var(--brick-d)}
.eyebrow{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--brick);display:block;margin-bottom:.9rem}
.sec{padding:88px 0}
.sec-pine{background:var(--pine);color:#e9efe9}
.sec-pine h2,.sec-pine h3{color:var(--cream)}
.sec-pine .eyebrow{color:#e0a08c}
.sec-pine a{color:#f0c4b4}
.sec-alt{background:#efe8da}
.navbar{background:rgba(247,242,233,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:10px 0}
.navbar-brand{font-family:'Newsreader',serif;font-size:1.4rem;font-weight:600;color:var(--pine)!important;line-height:1.1}
.navbar-brand small{display:block;font-family:'DM Sans',sans-serif;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brick);font-weight:600}
.navbar .nav-link{color:var(--pine)!important;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding:.6rem .9rem!important}
.navbar .nav-link:hover{color:var(--brick)!important}
.btn-cvw{background:var(--brick);color:#fff;border:1px solid var(--brick);border-radius:2px;padding:.8rem 1.6rem;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.btn-cvw:hover{background:var(--brick-d);color:#fff}
.btn-line{background:transparent;color:var(--pine);border:1px solid var(--pine);border-radius:2px;padding:.8rem 1.6rem;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.btn-line:hover{background:var(--pine);color:var(--cream)}
.sec-pine .btn-line{color:var(--cream);border-color:var(--cream)}
.sec-pine .btn-line:hover{background:var(--cream);color:var(--pine)}
/* hero */
.hero{padding:56px 0 64px;border-bottom:1px solid var(--line)}
.hero .tag{font-family:'Newsreader',serif;font-style:italic;font-size:1.35rem;color:var(--brick-d);margin:1rem 0 1.2rem}
.hero p.lede{max-width:540px}
.hero-photo{width:100%;max-height:min(66vh,480px);object-fit:cover;object-position:50% 22%;border-radius:4px;display:block;margin-left:auto}
.cred{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.6rem;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--pine);font-weight:600}
.cred span+span::before{content:"";display:inline-block;width:5px;height:5px;background:var(--brick);margin-right:1.4rem;vertical-align:middle;transform:rotate(45deg)}
/* services as interlocking pieces */
.pieces{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.piece{padding:2rem 1.7rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;background:var(--cream)}
.piece .n{font-family:'Newsreader',serif;font-size:2.2rem;color:var(--brick);line-height:1;display:block;margin-bottom:.7rem}
.piece h3{font-size:1.2rem;margin:0}
.piece::after{content:"";position:absolute;right:-1px;bottom:-1px;width:18px;height:18px;background:var(--brick);clip-path:polygon(100% 0,100% 100%,0 100%)}
/* fees ledger */
.ledger{border-top:2px solid var(--pine)}
.ledger-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.3rem 0;border-bottom:1px solid var(--line)}
.ledger-row .k{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.ledger-row .v{font-family:'Newsreader',serif;font-size:2.6rem;color:var(--pine);line-height:1}
.ledger-row .v small{font-family:'DM Sans',sans-serif;font-size:.85rem;color:#4b5a55;margin-left:.4rem}
.sec-pine .ledger{border-color:#e0a08c}
.sec-pine .ledger-row{border-color:rgba(255,255,255,.18)}
.sec-pine .ledger-row .v{color:var(--cream)}
.sec-pine .ledger-row .v small{color:#c9d6cf}
/* steps */
.steps{list-style:none;padding:0;margin:0;counter-reset:s;border-left:2px solid var(--brick)}
.steps li{counter-increment:s;padding:0 0 2rem 2rem;position:relative}
.steps li::before{content:counter(s);position:absolute;left:-15px;top:0;width:28px;height:28px;border-radius:50%;background:var(--brick);color:#fff;font-weight:600;font-size:.85rem;display:flex;align-items:center;justify-content:center}
.steps h3{font-size:1.3rem;margin-bottom:.3rem}
.steps p{margin-bottom:.5rem}
.steps ul{margin:.3rem 0 0;padding-left:1.1rem}
/* about */
.about-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.award{width:120px;border-radius:2px}
.quote{font-family:'Newsreader',serif;font-style:italic;font-size:1.3rem;color:var(--pine);border-left:3px solid var(--brick);padding-left:1.2rem;margin:1.5rem 0}
/* faq */
.accordion{--bs-accordion-bg:transparent;--bs-accordion-border-color:var(--line);--bs-accordion-btn-focus-box-shadow:none;--bs-accordion-active-bg:transparent;--bs-accordion-active-color:var(--pine)}
.accordion-button{font-family:'Newsreader',serif;font-size:1.25rem;color:var(--pine);background:transparent;padding:1.2rem 0}
.accordion-button:not(.collapsed){box-shadow:none}
.accordion-body{padding:0 0 1.3rem}
.accordion-item{background:transparent;border-left:0;border-right:0;border-radius:0!important}
.contact-big{font-family:'Newsreader',serif;font-size:clamp(2rem,4vw,3rem);color:var(--cream);text-decoration:none}
.map{width:100%;height:320px;border:0;border-radius:4px}
.list-plain{list-style:none;padding:0}
.list-plain li{padding:.45rem 0;border-bottom:1px solid var(--line)}
footer{background:var(--pine2);color:#b9c8c0;padding:36px 0;font-size:.9rem}
footer a{color:#e8efe9}
@media(max-width:991px){.pieces{grid-template-columns:repeat(2,1fr)}.hero-photo{margin:2rem auto 0;max-height:420px;object-position:50% 20%}}
@media(max-width:575px){.sec{padding:60px 0}.pieces{grid-template-columns:1fr}.ledger-row .v{font-size:2.1rem}.hero{padding-top:32px}.hero-photo{max-height:320px}}
