:root {
  --cream: #f6f1e7; --paper: #ede6d8; --ink: #17271e; --forest: #123827; --moss: #526744; --olive: #8b904f; --bronze: #9b6a38; --mist: #dce1d3; --line: rgba(23, 39, 30, .19); --light-line: rgba(246, 241, 231, .31); --serif: Georgia, 'Times New Roman', serif; --sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.55; }
body::before { background-image: radial-gradient(rgba(23, 39, 30, .16) .45px, transparent .7px); background-size: 5px 5px; content: ''; inset: 0; mix-blend-mode: multiply; opacity: .23; pointer-events: none; position: fixed; z-index: 20; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover { color: var(--bronze); }
:focus-visible { outline: 3px solid var(--bronze); outline-offset: 4px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; letter-spacing: -.045em; line-height: 1.02; }
h1 { font-size: clamp(3.45rem, 7vw, 6.7rem); max-width: 10ch; }
h2 { font-size: clamp(2.35rem, 4.2vw, 4.4rem); max-width: 13ch; }
h3 { font-size: clamp(1.65rem, 2.4vw, 2.3rem); }
.shell { margin: 0 auto; width: min(1180px, calc(100% - 3rem)); }
.skip-link { background: var(--cream); color: var(--ink); left: 1rem; padding: .7rem 1rem; position: absolute; top: -5rem; z-index: 50; }
.skip-link:focus { top: 1rem; }
.site-header { background: rgba(246, 241, 231, .94); border-bottom: 1px solid var(--line); position: relative; z-index: 5; }
.nav { align-items: center; display: flex; gap: 1rem; justify-content: space-between; min-height: 5.3rem; }
.brand { align-items: center; display: inline-flex; font-family: var(--serif); font-size: 1.6rem; font-weight: 700; gap: .6rem; letter-spacing: -.07em; text-decoration: none; }
.brand-mark { color: var(--forest); height: 2rem; width: 2rem; }
.nav-toggle { background: transparent; border: 1px solid var(--ink); color: var(--ink); display: none; font: inherit; padding: .4rem .7rem; }
.nav-links { align-items: center; display: flex; font-size: .8rem; gap: 1.4rem; letter-spacing: .03em; }
.nav-links a { text-decoration: none; }
.nav-links a[aria-current='page'] { color: var(--forest); font-weight: 700; text-decoration: underline; text-decoration-color: var(--bronze); text-decoration-thickness: 2px; text-underline-offset: .5rem; }
.nav-links .button[aria-current='page'] { color: var(--cream); text-decoration: none; }
.button { align-items: center; background: var(--forest); border: 1px solid var(--forest); border-radius: 0; color: var(--cream); display: inline-flex; font-size: .8rem; font-weight: 700; justify-content: center; letter-spacing: .03em; min-height: 2.8rem; padding: .68rem 1.15rem; text-decoration: none; transition: background .2s ease, color .2s ease, transform .2s ease; }
.button:hover { background: var(--bronze); border-color: var(--bronze); color: var(--cream); transform: translateY(-2px); }
.button--light { background: transparent; border-color: rgba(246, 241, 231, .75); color: var(--cream); }
.button--light:hover { background: var(--cream); border-color: var(--cream); color: var(--forest); }
.eyebrow { color: var(--bronze); font-size: .68rem; font-weight: 800; letter-spacing: .17em; margin-bottom: 1rem; text-transform: uppercase; }
.lede { font-size: clamp(1.08rem, 1.55vw, 1.36rem); max-width: 38rem; }
.hero { min-height: min(800px, calc(100vh - 5.3rem)); overflow: hidden; position: relative; }
.hero-media { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.hero::after { background: linear-gradient(90deg, rgba(10, 28, 18, .92) 0%, rgba(12, 35, 23, .77) 42%, rgba(12, 34, 22, .16) 74%, rgba(12, 34, 22, .14) 100%); content: ''; inset: 0; position: absolute; }
.hero-content { color: var(--cream); padding: clamp(5rem, 12vw, 9.5rem) 0 clamp(5rem, 10vw, 7.5rem); position: relative; z-index: 1; }
.hero .eyebrow { color: #d7bc87; }
.hero h1 { margin-bottom: 1.4rem; }
.hero .lede { margin-bottom: 2rem; }
.hero-meta { border-left: 1px solid rgba(246, 241, 231, .55); display: flex; flex-wrap: wrap; gap: .55rem 1.1rem; margin-top: clamp(4rem, 10vw, 7.5rem); max-width: 29rem; padding-left: 1rem; }
.hero-meta span { font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.promise { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); padding: 1.2rem 0; }
.promise p { font-family: var(--serif); font-size: clamp(1.45rem, 2.7vw, 2.45rem); margin: 0; }
.section { padding: clamp(4.8rem, 9vw, 8.5rem) 0; }
.section--paper { background: var(--paper); }
.section--forest { background: var(--forest); color: var(--cream); }
.section--forest .eyebrow { color: #d7bc87; }
.split { align-items: start; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.section-intro { max-width: 39rem; }
.section-intro .lede { margin-bottom: .75rem; }
.service-overview { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 3.5rem; }
.service-summary { border-right: 1px solid var(--line); min-height: 16rem; padding: 1.55rem 1.5rem 1.35rem 0; }
.service-summary + .service-summary { padding-left: 1.5rem; }
.service-summary:last-child { border-right: 0; }
.service-number { color: var(--bronze); display: block; font-family: var(--serif); font-size: 1.25rem; margin-bottom: 3.6rem; }
.service-summary h3 { margin-bottom: .7rem; }
.service-summary p { margin-bottom: 0; max-width: 22rem; }
.feature-grid { display: grid; gap: clamp(2rem, 6vw, 6rem); grid-template-columns: minmax(0, 1fr) minmax(280px, .78fr); }
.feature-image { min-height: 26rem; overflow: hidden; position: relative; }
.feature-image img { height: 100%; object-fit: cover; position: absolute; width: 100%; }
.feature-copy { align-self: center; }
.feature-copy h2 { margin-bottom: 1.4rem; }
.text-link { font-size: .85rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; }
.work-list { border-top: 1px solid var(--light-line); list-style: none; margin: 3rem 0 0; padding: 0; }
.work-list li { align-items: baseline; border-bottom: 1px solid var(--light-line); display: grid; gap: 1rem; grid-template-columns: 3.5rem 1fr auto; padding: 1.15rem 0; }
.work-list .index { color: #d7bc87; font-family: var(--serif); }
.work-list .type { color: #d7e0d4; font-size: .82rem; }
.quote { font-family: var(--serif); font-size: clamp(2.2rem, 4.2vw, 4.3rem); line-height: 1.08; max-width: 21ch; }
.quote + p { max-width: 33rem; }
.cta-band { background: var(--bronze); color: #fffaf1; padding: 3.5rem 0; }
.cta-band .eyebrow { color: #f1d7a7; }
.cta-band h2 { margin-bottom: 0; }
.cta-inner { align-items: end; display: flex; gap: 2rem; justify-content: space-between; }
.site-footer { border-top: 1px solid var(--line); padding: 2rem 0 3rem; }
.footer-inner { align-items: center; display: flex; font-size: .88rem; gap: 1rem; justify-content: space-between; }
.footer-brand { align-items: center; display: inline-flex; font-family: var(--serif); font-size: 1.15rem; gap: .5rem; }
.footer-brand img { color: var(--forest); width: 1.55rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.footer-links a, .footer-contact a { text-decoration: none; }
.footer-contact a { font-weight: 700; }
.page-hero { border-bottom: 1px solid var(--line); padding: clamp(4rem, 8vw, 7rem) 0 clamp(3rem, 6vw, 5rem); }
.page-hero h1 { margin-bottom: 1.3rem; }
.services-grid { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, 1fr); }
.service-card { border-bottom: 1px solid var(--line); min-height: 23rem; padding: clamp(1.5rem, 4vw, 2.8rem); position: relative; }
.service-card:nth-child(odd) { border-right: 1px solid var(--line); }
.service-card .eyebrow { margin: 2.8rem 0 1.2rem; }
.service-card h2 { font-size: clamp(2rem, 3.3vw, 3.35rem); margin-bottom: 1.2rem; }
.service-card p:not(.eyebrow) { margin-bottom: 0; max-width: 31rem; }
.service-icon { align-items: center; border: 1px solid var(--moss); border-radius: 50%; color: var(--forest); display: inline-flex; height: 3.35rem; justify-content: center; position: absolute; top: 1.6rem; width: 3.35rem; }
.service-icon svg { fill: none; height: 1.7rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; width: 1.7rem; }
.steps { counter-reset: steps; display: grid; gap: 1.5rem; grid-template-columns: repeat(3, 1fr); }
.steps article { border-top: 1px solid rgba(246, 241, 231, .65); padding-top: 1.2rem; }
.steps h3::before { color: #d7bc87; content: '0' counter(steps) ' / '; counter-increment: steps; font-family: var(--sans); font-size: .72rem; font-weight: 700; letter-spacing: .1em; vertical-align: middle; }
.contact-layout { align-items: stretch; display: grid; gap: 0; grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); }
.contact-aside { background: var(--forest); color: var(--cream); min-height: 36rem; overflow: hidden; padding: 2rem; position: relative; }
.contact-aside::after { background: linear-gradient(0deg, rgba(9, 28, 18, .94), rgba(9, 28, 18, .16)); content: ''; inset: 0; position: absolute; }
.contact-aside > *:not(.aside-image) { position: relative; z-index: 1; }
.aside-image { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.contact-aside .brand-mark { filter: invert(82%) sepia(25%) saturate(641%) hue-rotate(356deg) brightness(90%) contrast(88%); height: 3.3rem; width: 3.3rem; }
.contact-aside h2 { margin-top: 8rem; }
.contact-aside p:not(.eyebrow) { color: #e8eadf; max-width: 22rem; }
.contact-aside .eyebrow { color: #ebc98a; margin-top: 1rem; }
.form-card { background: #fffdf8; border: 1px solid var(--line); box-shadow: 12px 12px 0 rgba(155, 106, 56, .12); padding: clamp(1.5rem, 4vw, 3.2rem); }
form { margin-top: 2rem; }
.field-row { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.field { display: grid; gap: .4rem; margin-bottom: 1.15rem; }
label { font-size: .9rem; font-weight: 700; }
input, textarea, select { background: var(--cream); border: 1px solid rgba(23, 39, 30, .47); border-radius: 0; color: var(--ink); font: inherit; padding: .78rem; }
textarea { min-height: 9rem; resize: vertical; }
.form-note { color: #5a6057; font-size: .88rem; margin-top: 1rem; }
.form-success { background: var(--mist); border-left: 3px solid var(--forest); margin-top: 1.4rem; padding: 1rem 1.2rem; }
.form-error { background: #f3e1d0; border-left: 3px solid var(--bronze); margin-top: 1.4rem; padding: 1rem 1.2rem; }
.optional { color: #5a6057; font-weight: 400; }
.field-trap { height: 1px; left: -10000px; overflow: hidden; position: absolute; width: 1px; }
.button:disabled { cursor: progress; opacity: .7; transform: none; }
.aside-email { margin-top: 1.5rem; }
.aside-email a { color: #ebc98a; font-weight: 700; }
.hidden { display: none; }
.section-more { margin: 2.2rem 0 0; }
.section--flush { padding-top: 0; }
.feature-shot { align-self: center; margin: 0; }
.feature-shot img, .case-shot img { border: 1px solid var(--line); box-shadow: 12px 12px 0 rgba(155, 106, 56, .12); height: auto; width: 100%; }
.feature-shot figcaption { color: #5a6057; font-size: .82rem; margin-top: 1rem; }
.work-list a { text-decoration: none; }
.work-list a:hover { color: #d7bc87; }
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); padding: 1.1rem 0; }
.faq summary { cursor: pointer; font-family: var(--serif); font-size: clamp(1.2rem, 1.8vw, 1.5rem); letter-spacing: -.02em; list-style: none; padding-right: 2rem; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { color: var(--bronze); content: '+'; font-family: var(--sans); position: absolute; right: 0; top: 0; }
.faq details[open] summary::after { content: '−'; }
.faq details p { margin: .8rem 0 0; max-width: 38rem; }
.service-card .scope { margin: 1.2rem 0 0; padding-left: 1.1rem; }
.service-card .scope li { margin-bottom: .35rem; }
.service-card .example { color: #5a6057; font-size: .88rem; margin-top: 1.1rem; }
.steps--four { grid-template-columns: repeat(4, 1fr); }
.case-index { display: flex; flex-wrap: wrap; gap: .6rem 1.6rem; list-style: none; margin: 2rem 0 0; padding: 0; }
.case-index a { font-size: .85rem; font-weight: 800; letter-spacing: .04em; }
.case { border-bottom: 1px solid var(--line); display: grid; gap: 2rem clamp(2rem, 5vw, 4.5rem); grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); padding: clamp(3.5rem, 7vw, 6rem) 0; scroll-margin-top: 1rem; }
.case-head { grid-column: 1 / -1; }
.case-head h2 { margin-bottom: .6rem; max-width: none; }
.case-link { font-size: .9rem; margin: 0; }
.case-shot { margin: 0; }
.case-facts { margin: 0; }
.case-facts > div { border-top: 1px solid var(--line); padding: 1rem 0; }
.case-facts dt { color: var(--bronze); font-size: .68rem; font-weight: 800; letter-spacing: .17em; margin-bottom: .4rem; text-transform: uppercase; }
.case-facts dd { margin: 0; }
.case-facts ul { margin: 0; padding-left: 1.1rem; }
.case-facts li { margin-bottom: .3rem; }
.fact-strip { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); margin: 3.5rem 0 0; }
.fact-strip > div { border-right: 1px solid var(--line); padding: 1.4rem 1.4rem 0 0; }
.fact-strip > div + div { padding-left: 1.4rem; }
.fact-strip > div:last-child { border-right: 0; }
.fact-strip dt { color: var(--bronze); font-size: .68rem; font-weight: 800; letter-spacing: .17em; margin-bottom: .5rem; text-transform: uppercase; }
.fact-strip dd { font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.6rem); margin: 0; }
@media (max-width: 760px) {
  .shell { width: min(100% - 2rem, 1180px); }
  .nav { min-height: 4.5rem; }
  .nav-toggle { display: block; }
  .nav-links { align-items: flex-start; background: var(--cream); border-bottom: 1px solid var(--line); display: none; flex-direction: column; left: 0; padding: 1.25rem 1rem 1.5rem; position: absolute; right: 0; top: 4.5rem; }
  .nav-links.is-open { display: flex; }
  .nav-links a[aria-current='page'] { text-underline-offset: .25rem; }
  .hero { min-height: 42rem; }
  .hero::after { background: linear-gradient(90deg, rgba(10, 28, 18, .93), rgba(10, 28, 18, .56)); }
  .hero-content { padding: 5rem 0 3.2rem; }
  .hero-meta { margin-top: 4rem; }
  .split, .feature-grid, .contact-layout { grid-template-columns: 1fr; }
  .service-overview, .steps, .steps--four, .case { grid-template-columns: 1fr; }
  .fact-strip { grid-template-columns: 1fr 1fr; }
  .fact-strip > div, .fact-strip > div + div { border-right: 0; padding: 1.2rem 1rem 0 0; }
  .service-overview { margin-top: 2.5rem; }
  .service-summary, .service-summary + .service-summary { border-bottom: 1px solid var(--line); border-right: 0; min-height: auto; padding: 1.4rem 0; }
  .service-summary:last-child { border-bottom: 0; }
  .service-number { margin-bottom: 1rem; }
  .feature-image { min-height: 20rem; }
  .work-list li { grid-template-columns: 2.5rem 1fr; }
  .work-list .type { grid-column: 2; }
  .cta-inner, .footer-inner { align-items: flex-start; flex-direction: column; }
  .services-grid { grid-template-columns: 1fr; }
  .service-card, .service-card:nth-child(odd) { border-right: 0; min-height: auto; }
  .field-row { grid-template-columns: 1fr; }
  .contact-aside { min-height: 28rem; }
  .contact-aside h2 { margin-top: 4.5rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; } }
