:root{--ink:#0a0a0a;--paper:#fff;--surface:#f6f6f4;--line:#d8d8d4;--dim:#6a6a66}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{max-width:100%;overflow-x:hidden}
body{background:var(--paper);color:var(--ink);font-family:'Inter',sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;padding-top:58px}
a{color:inherit}
.wrap{max-width:700px;margin:0 auto;padding:0 24px}
hr.rule{border:none;border-top:1px solid var(--line)}

/* header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-header .wrap{max-width:760px;display:flex;align-items:center;justify-content:space-between;padding:14px 24px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand img{width:26px;height:26px;object-fit:contain;display:block}
.brand span{font-family:'Source Serif 4',serif;font-weight:500;font-size:1.02rem}
.site-header nav{display:flex;align-items:center;gap:26px}
.site-header nav a{font-size:.84rem;text-decoration:none;color:var(--dim);transition:color .15s}
.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--ink)}
@media(max-width:480px){.brand span{display:none}.site-header nav{gap:16px}.site-header nav a{font-size:.78rem}}

/* hero */
.hero{padding:0 0 64px;text-align:center}
.hero-photo{position:relative;width:100%;height:clamp(240px,34vw,440px);background:var(--surface);overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.hero-caption{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border:1px solid var(--line);padding:22px 30px;max-width:88%}
.mark{font-family:'Source Serif 4',serif;font-size:2.6rem;font-weight:500}
.strapline{margin:14px auto 0;font-size:.95rem;color:var(--dim);max-width:34ch}
.estd{margin-top:22px;font-family:'Source Serif 4',serif;font-style:italic;font-size:1.2rem;color:var(--dim)}
@media(max-width:480px){.mark{font-size:1.9rem}.hero-caption{padding:16px 20px}}

/* about */
.about{padding:56px 0 64px;scroll-margin-top:72px}
.about p{font-family:'Source Serif 4',serif;font-size:1.12rem;line-height:1.7;max-width:56ch;margin:0 auto;text-align:justify;text-align-last:center;color:#262624}
.about p+p{margin-top:20px}

/* shared buttons */
.cta,.cta-buy{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:500;font-size:.86rem;padding:11px 22px;border:1px solid var(--ink);transition:opacity .15s,background .15s,color .15s}
.cta{background:var(--ink);color:#fff}
.cta:hover{opacity:.8}
.cta-buy{background:transparent;color:var(--ink)}
.cta-buy:hover{background:var(--ink);color:#fff}
.cta:focus-visible,.cta-buy:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* listings teaser (home) */
.teaser{padding:64px 0;text-align:center;scroll-margin-top:72px}
.teaser h2,.services h2{font-family:'Source Serif 4',serif;font-weight:500;font-size:1.3rem}
.teaser p{margin:12px auto 24px;color:var(--dim);font-size:.95rem;max-width:44ch}

/* services */
.services{padding:56px 0 72px;scroll-margin-top:72px}
.services h2{padding-bottom:28px}
.services ul{list-style:none;border-top:1px solid var(--line)}
.services li{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}
.services li strong{font-family:'Source Serif 4',serif;font-weight:500;font-size:1rem}
.services li p{font-size:.9rem;color:var(--dim);max-width:46ch}
@media(max-width:620px){.services li{grid-template-columns:1fr;gap:6px}}

/* contact */
.contact{padding:64px 0;text-align:center;scroll-margin-top:72px}
.contact h2{font-family:'Source Serif 4',serif;font-weight:500;font-size:1.5rem}
.contact p{margin:12px auto 0;color:var(--dim);font-size:.95rem;max-width:40ch}
.contact .email{display:inline-block;margin-top:24px;font-family:'Source Serif 4',serif;font-size:1.15rem;border-bottom:1px solid var(--ink);padding-bottom:2px}
.mailing-list{margin-top:40px;padding-top:40px;border-top:1px solid var(--line)}
.ml-embed{display:flex;justify-content:center}
.ml-embed iframe{width:100%;max-width:640px;height:419px;border:1px solid var(--line)}
@media(max-width:480px){.ml-embed iframe{height:520px}}
.sign-off{width:30px;height:30px;object-fit:contain;display:block;margin:28px auto 0;opacity:.85}

/* footer */
footer{border-top:1px solid var(--line);padding:22px 0 40px}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.76rem;color:var(--dim)}
footer a{text-decoration:underline}
@media(prefers-reduced-motion:reduce){.cta,.cta-buy{transition:none}html{scroll-behavior:auto}}
