:root { --ink:#1d211b; --cream:#f2eee4; --paper:#fbf8f0; --sage:#77806b; --rust:#b75532; --line:rgba(29,33,27,.18); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color:inherit; }
.site-shell { width:100%; background:var(--paper); overflow:hidden; }
.hero { min-height:760px; background:var(--cream); padding:0 clamp(24px,6vw,88px) 72px; display:flex; flex-direction:column; }
.topbar { height:104px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); gap:28px; }
.wordmark { font-family:Georgia,serif; font-weight:700; letter-spacing:.04em; text-decoration:none; font-size:18px; white-space:nowrap; }
.wordmark span { display:block; font-family:Inter,sans-serif; font-size:9px; letter-spacing:.3em; font-weight:600; margin-top:4px; }
.navlinks { display:flex; gap:34px; font-size:14px; }
.navlinks a, footer>a { text-decoration:none; }
.navlinks a:hover, .text-link:hover, footer>a:hover { color:var(--rust); }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 24px; background:var(--rust); color:white; text-decoration:none; border:1px solid var(--rust); font-size:14px; font-weight:700; letter-spacing:.02em; cursor:pointer; }
.button:hover { background:#924126; border-color:#924126; }
.button-small { min-height:42px; padding:0 18px; }
.hero-grid { flex:1; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,.65fr); gap:8vw; align-items:end; padding-top:100px; }
.eyebrow { color:var(--rust); font-size:11px; font-weight:800; letter-spacing:.22em; margin:0 0 24px; }
.eyebrow.light { color:#d9a188; }
h1,h2,h3,blockquote { font-family:Georgia, "Times New Roman", serif; font-weight:500; }
h1 { font-size:clamp(60px,8.4vw,118px); line-height:.9; letter-spacing:-.055em; max-width:920px; margin:0; }
.lede { font-family:Georgia,serif; font-size:clamp(22px,2vw,30px); line-height:1.35; max-width:680px; margin:40px 0; color:#4d5048; }
.hero-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.text-link { font-size:14px; font-weight:700; text-underline-offset:5px; }
.hero-note { border-top:2px solid var(--ink); padding-top:22px; align-self:end; }
.hero-note .note-kicker { font-size:11px; letter-spacing:.2em; font-weight:800; margin:0 0 20px; }
.hero-note>p:nth-child(2) { font-family:Georgia,serif; font-size:25px; line-height:1.3; margin:0 0 24px; }
.hero-note span { font-size:13px; line-height:1.6; color:#5d6057; }
.section { padding:120px clamp(24px,6vw,88px) 70px; }
.intro { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:end; }
h2 { font-size:clamp(46px,5.5vw,76px); line-height:.98; letter-spacing:-.04em; margin:0; }
.section-intro { font-size:19px; line-height:1.65; max-width:610px; margin:0; color:#55594f; }
.service-list { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:0 clamp(24px,6vw,88px) 120px; }
.service { padding:42px 34px 48px 0; min-height:330px; display:flex; flex-direction:column; }
.service+ .service { border-left:1px solid var(--line); padding-left:34px; }
.service-number { font-size:11px; letter-spacing:.18em; color:var(--rust); font-weight:800; }
.service h3 { font-size:34px; margin:48px 0 18px; }
.service p { line-height:1.65; color:#5b5e55; margin:0 0 28px; }
.service a { margin-top:auto; font-size:13px; font-weight:800; text-underline-offset:4px; }
.dark-section { background:var(--ink); color:var(--paper); padding:120px clamp(24px,6vw,88px); }
.section-heading { max-width:790px; }
.section-heading>p:last-child { font-size:18px; line-height:1.6; color:#c8c8bd; max-width:600px; margin:30px 0 0; }
.menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:70px; }
.menu-card { border:1px solid rgba(255,255,255,.22); padding:28px; min-height:360px; }
.menu-card>span { color:#d9a188; font-size:11px; letter-spacing:.18em; }
.menu-card h3 { font-size:31px; line-height:1.15; margin:52px 0 32px; }
.menu-card ul { list-style:none; padding:0; margin:0; }
.menu-card li { padding:12px 0; border-top:1px solid rgba(255,255,255,.15); font-size:14px; color:#d7d7ce; }
.about-grid { display:grid; grid-template-columns:.8fr 1.2fr; min-height:740px; }
.about-quote { background:var(--sage); color:white; padding:80px clamp(30px,5vw,72px); display:flex; align-items:flex-end; }
blockquote { font-size:clamp(40px,5vw,68px); line-height:1.08; letter-spacing:-.035em; margin:0; }
.about-copy { padding:110px clamp(30px,7vw,110px); align-self:center; }
.about-copy>p:not(.eyebrow) { font-size:17px; line-height:1.72; color:#55594f; max-width:700px; }
.about-copy h2 { margin-bottom:36px; }
.proof-row { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); margin-top:52px; padding-top:26px; gap:22px; }
.proof-row strong,.proof-row span { display:block; }
.proof-row strong { font-family:Georgia,serif; font-size:18px; }
.proof-row span { margin-top:8px; font-size:12px; color:#676a62; line-height:1.4; }
.process-section { padding:120px clamp(24px,6vw,88px); background:#e8e0d2; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:52px; margin-top:64px; }
.steps b { width:44px; height:44px; border:1px solid var(--ink); border-radius:50%; display:grid; place-items:center; font-size:13px; }
.steps h3 { font-size:27px; margin:30px 0 12px; }
.steps p { color:#5b5e55; line-height:1.6; max-width:330px; }
.inquiry { display:grid; grid-template-columns:.78fr 1.22fr; background:var(--ink); color:var(--paper); }
.inquiry-copy { padding:110px clamp(30px,6vw,88px); border-right:1px solid rgba(255,255,255,.16); }
.inquiry-copy>p:not(.eyebrow) { color:#c7c8bd; line-height:1.65; font-size:17px; }
.inquiry-copy .form-note { margin-top:40px; padding-top:22px; border-top:1px solid rgba(255,255,255,.16); font-size:13px !important; }
.inquiry-form { padding:100px clamp(30px,6vw,88px); }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
label { display:block; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin-bottom:25px; color:#d8d8ce; }
input,select,textarea { width:100%; margin-top:10px; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.35); border-radius:0; color:white; padding:12px 0 14px; font:16px Inter,sans-serif; text-transform:none; letter-spacing:normal; }
textarea { border:1px solid rgba(255,255,255,.35); padding:16px; resize:vertical; }
input::placeholder,textarea::placeholder { color:#85877e; }
select option { color:var(--ink); }
input:focus,select:focus,textarea:focus { outline:2px solid #d9a188; outline-offset:4px; }
.button-wide { width:100%; margin-top:8px; }
.direct-email { text-align:center; color:#aeb0a6; font-size:12px; margin:18px 0 0; }
.direct-email a { color:white; }
footer { min-height:170px; display:flex; align-items:center; justify-content:space-between; gap:30px; padding:40px clamp(24px,6vw,88px); background:#121510; color:#e9e6dc; border-top:1px solid rgba(255,255,255,.13); }
footer p { color:#989b91; font-size:13px; }
footer>a:last-child { font-size:13px; font-weight:700; }
@media (max-width: 820px) {
  .hero { min-height:auto; padding-bottom:58px; }
  .topbar { height:84px; }
  .navlinks { display:none; }
  .button-small { padding:0 13px; }
  .hero-grid { grid-template-columns:1fr; padding-top:70px; gap:70px; }
  h1 { font-size:clamp(60px,17vw,88px); }
  .intro,.about-grid,.inquiry { grid-template-columns:1fr; }
  .service-list,.menu-grid,.steps { grid-template-columns:1fr; }
  .service-list { margin-bottom:80px; }
  .service { min-height:auto; padding:36px 0; }
  .service+ .service { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .service h3 { margin-top:28px; }
  .menu-card { min-height:auto; }
  .about-quote { min-height:500px; }
  .inquiry-copy { border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }
  .two-col,.proof-row { grid-template-columns:1fr; }
  footer { flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }

.hero-sub { font-family:Georgia,serif; font-style:italic; font-size:clamp(26px,2.6vw,38px); color:var(--sage); margin:26px 0 0; letter-spacing:-.01em; }
.hero-sub + .lede { margin-top:26px; }
.footer-legal { font-size:12px; color:#7d8076; margin-top:6px; }
