:root { --ink:#17201d; --paper:#f6f2ea; --moss:#30483d; --sage:#a9b6a4; --clay:#ca7655; --line:#d9d2c7; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans", sans-serif; font-size:16px; line-height:1.55; }
.site-header { width:min(1240px, calc(100% - 48px)); margin:auto; padding:26px 0; display:flex; justify-content:space-between; align-items:center; }
.brand { color:var(--ink); text-decoration:none; font-weight:700; letter-spacing:.04em; font-size:1.05rem; }.brand span { font-weight:500; letter-spacing:0; }
.header-phone { color:var(--ink); font-weight:700; text-decoration:none; }
.hero { display:grid; grid-template-columns:1.02fr .98fr; max-width:1240px; margin:22px auto 0; min-height:625px; background:#e8e2d7; overflow:hidden; }
.hero-copy { padding:clamp(48px, 7vw, 100px) clamp(32px, 6vw, 88px); display:flex; flex-direction:column; justify-content:center; }.eyebrow { margin:0 0 15px; color:var(--moss); text-transform:uppercase; letter-spacing:.15em; font-size:.73rem; font-weight:700; }.hero h1,.services h2,.proof h2,.cta h2 { font-family:Fraunces, Georgia, serif; line-height:1.04; letter-spacing:-.035em; }.hero h1 { font-size:clamp(2.75rem,5vw,4.85rem); margin:0; max-width:650px; }.lead { max-width:590px; font-size:1.1rem; margin:25px 0 30px; }.actions { display:flex; flex-wrap:wrap; gap:12px; }.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 19px; border-radius:2px; font-weight:700; text-decoration:none; }.primary { background:var(--moss); color:white; }.secondary { border:1px solid var(--moss); color:var(--moss); }.service-note { color:#59645d; font-size:.85rem; margin:22px 0 0; max-width:520px; }.hero-image { margin:0; position:relative; min-height:410px; }.hero-image img,.proof img { width:100%; height:100%; display:block; object-fit:cover; }.hero-image img { filter:saturate(.84) contrast(.98); }.hero-image figcaption { position:absolute; bottom:16px; right:16px; background:rgba(255,255,255,.88); padding:6px 9px; font-size:.75rem; }
.services { width:min(1110px, calc(100% - 48px)); margin:120px auto; display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; }.services h2,.proof h2,.cta h2 { font-size:clamp(2.25rem,4vw,3.55rem); margin:0; }.service-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }.service-list li { display:grid; grid-template-columns:190px 1fr; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }.service-list strong { font-size:1.1rem; }.service-list span { color:#59645d; }
.proof { display:grid; grid-template-columns:1fr 1fr; background:#dfe5dc; min-height:560px; }.proof figure { margin:0; min-height:380px; }.proof-copy { padding:clamp(45px,7vw,105px); display:flex; flex-direction:column; justify-content:center; }.proof-copy p:not(.eyebrow) { max-width:480px; font-size:1.07rem; }.text-link { color:var(--ink); text-decoration:none; border-bottom:1px solid var(--ink); width:max-content; margin-top:12px; font-weight:700; }
.cta { background:var(--moss); color:white; text-align:center; padding:105px 24px; }.cta .eyebrow { color:#d5e0d3; }.cta h2 { max-width:760px; margin:0 auto; }.cta p:not(.eyebrow) { max-width:580px; margin:20px auto 30px; color:#e8eee7; }.light { background:#f3eee5; color:var(--ink); }
.cta-actions { justify-content:center; }.cta .secondary { border-color:#d5e0d3; color:white; }
footer { width:min(1240px, calc(100% - 48px)); margin:auto; padding:25px 0 34px; display:flex; justify-content:space-between; gap:18px; color:#57615b; font-size:.86rem; }footer a { color:inherit; }
@media (max-width:760px) { .site-header { width:calc(100% - 34px); padding:19px 0; }.header-phone { font-size:.9rem; }.hero { margin:0; grid-template-columns:1fr; }.hero-copy { padding:58px 24px 48px; }.hero-image { min-height:330px; }.services { margin:76px auto; grid-template-columns:1fr; gap:30px; }.service-list li { grid-template-columns:1fr; gap:4px; }.proof { grid-template-columns:1fr; }.proof-copy { padding:56px 24px 65px; }footer { display:block; width:calc(100% - 48px); }footer span, footer a { display:block; margin:5px 0; } }
