:root {
  --paper: #f7f7f3;
  --white: #fffefa;
  --ink: #18241c;
  --green: #37563e;
  --green-dark: #172c1e;
  --sage: #dde6d9;
  --warm: #e8e9e1;
  --line: #cbd3c9;
  --muted: #617066;
  --faint: #8b998d;
  --sans: 'Helvetica Neue', 'Segoe UI', Arial, sans-serif;
  --serif: 'Iowan Old Style', Georgia, serif;
  --max: 1400px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--sans); background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
::selection { background: #c6ddc5; color: var(--ink); }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
svg, img { display: block; max-width: 100%; }
:focus-visible { outline: 2px solid #417a4e; outline-offset: 4px; }
.frame { width: min(calc(100% - 92px), var(--max)); margin-inline: auto; }
.skip-link { position: absolute; z-index: 300; top: -60px; left: 10px; background: var(--white); padding: 12px 17px; }
.skip-link:focus { top: 10px; }
.kicker { display: inline-flex; align-items: center; gap: 12px; font-size: 10px; font-weight: 700; line-height: 1.5; letter-spacing: .135em; text-transform: uppercase; }
.kicker::before { content: ''; height: 7px; width: 7px; border: 1.5px solid currentColor; border-radius: 50%; }
.kicker--plain::before { display: none; }
.kicker--green { color: var(--green); }
.kicker--light { color: #bcd5bc; }
.section-rule { border: 0; border-top: 1px solid var(--line); margin: 0; }
.arrow { font-size: 18px; line-height: 1; font-family: Arial, sans-serif; font-weight: 400; transition: transform .2s ease; }
.arrow-link { display: inline-flex; align-items: center; gap: 28px; font-size: 12px; font-weight: 700; border-bottom: 1px solid currentColor; padding-bottom: 10px; width: fit-content; }
.arrow-link:hover .arrow { transform: translate(3px, -3px); }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 35px; min-height: 54px; border: 1px solid var(--ink); padding: 0 21px; background: var(--ink); color: white; font-size: 12px; font-weight: 700; transition: color .2s ease, background .2s ease; }
.button:hover { background: var(--green); border-color: var(--green); }
.button--outline { background: transparent; color: var(--ink); border-color: #9eaea0; }
.button--outline:hover { background: #e1e8df; border-color: #7a9a7e; color: var(--ink); }

/* Header — intentionally quiet */
.site-header { position: sticky; top: 0; z-index: 100; background: rgba(247,247,243,.98); border-bottom: 1px solid #dde3da; backdrop-filter: blur(12px); }
.header-inner { min-height: 77px; display: flex; align-items: center; gap: 42px; }
.brand { display: inline-flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; background: var(--green-dark); color: #f3f5ec; font-size: 12px; font-weight: 700; letter-spacing: -.09em; }
.brand-word { font-size: 14px; font-weight: 750; letter-spacing: -.045em; white-space: nowrap; }
.nav-links { display: flex; gap: clamp(20px, 2.8vw, 46px); margin-left: auto; align-items: center; }
.nav-links a { color: #405147; font-size: 12px; font-weight: 600; transition: color .2s ease; }
.nav-links a:hover, .nav-links a[aria-current='page'] { color: #1a4827; }
.header-contact { display: flex; align-items: center; gap: 23px; border-bottom: 1px solid var(--ink); padding-bottom: 8px; font-size: 12px; font-weight: 700; margin-left: 25px; }
.header-contact span { font-size: 17px; font-weight: 400; }
.header-contact:hover { color: var(--green); border-color: var(--green); }
.menu-toggle { display: none; margin-left: auto; border: 1px solid #acb9ad; background: none; width: 42px; height: 42px; padding: 10px; flex-direction: column; justify-content: center; gap: 5px; }
.menu-toggle span { height: 1.5px; background: var(--ink); width: 100%; }

/* Home masthead */
.home-hero { padding-top: 84px; background: var(--paper); }
.hero-top { display: flex; align-items: center; justify-content: space-between; gap: 25px; color: var(--green); }
.hero-top .edition { font-size: 10px; letter-spacing: .12em; font-weight: 700; }
.hero-title { margin: 76px 0 51px; font-weight: 500; font-size: clamp(72px, 9.8vw, 151px); line-height: .99; letter-spacing: -.098em; max-width: 1320px; }
.hero-title span { display: block; }
.hero-title .accent { color: #4a7250; }
.hero-bottom { border-top: 1px solid #aebcaf; display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: end; padding: 33px 0 70px; }
.hero-bottom p { color: #526456; font-size: clamp(16px, 1.55vw, 22px); line-height: 1.54; max-width: 670px; margin: 0; letter-spacing: -.015em; }
.hero-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.hero-last-line { background: #e8eee5; border-top: 1px solid #ced8cb; border-bottom: 1px solid #ced8cb; }
.hero-last-inner { display: grid; grid-template-columns: repeat(3,1fr); }
.hero-last-inner div { padding: 24px 0; display: flex; gap: 17px; align-items: center; color: #3c5c43; font-size: 10px; font-weight: 700; letter-spacing: .115em; text-transform: uppercase; }
.hero-last-inner div + div { border-left: 1px solid #c4d0c3; padding-left: 32px; }
.hero-last-inner b { font-size: 10px; font-weight: 400; color: #829786; }

/* Editorial introduction */
.intro-section { padding: 120px 0 126px; background: var(--white); }
.intro-grid { display: grid; grid-template-columns: 30% 70%; gap: 30px; }
.intro-statement { max-width: 850px; font-size: clamp(34px, 4.3vw, 61px); font-weight: 500; letter-spacing: -.069em; line-height: 1.18; margin: -12px 0 27px; }
.intro-statement em { font-family: var(--serif); font-weight: 400; letter-spacing: -.04em; color: #638268; }
.intro-copy { color: var(--muted); font-size: 14px; line-height: 1.9; max-width: 640px; margin: 0; }

/* Service rows, no feature-card template */
.services-section { padding: 120px 0 131px; background: #ecefe9; }
.section-heading { display: grid; grid-template-columns: 30% 70%; gap: 30px; margin-bottom: 57px; align-items: start; }
.section-heading h2 { font-size: clamp(40px, 4.6vw, 67px); line-height: 1.13; letter-spacing: -.075em; font-weight: 500; margin: -10px 0 0; max-width: 860px; }
.section-heading p { color: var(--muted); font-size: 13px; line-height: 1.8; max-width: 590px; margin: 24px 0 0; }
.service-list { border-top: 1px solid #b3c0b2; }
.service-row { display: grid; grid-template-columns: 8% 39% 1fr 30px; gap: 22px; padding: 34px 0; border-bottom: 1px solid #becbbc; align-items: start; }
.service-num { font-size: 11px; color: #7a957d; font-weight: 700; }
.service-row h3 { font-size: clamp(23px, 2.5vw, 35px); line-height: 1.18; font-weight: 550; margin: -6px 0 0; letter-spacing: -.05em; }
.service-row p { font-size: 13px; line-height: 1.78; color: #617065; margin: 0; max-width: 480px; }
.service-row .service-detail { margin-top: 15px; color: #759079; font-size: 10px; letter-spacing: .075em; font-weight: 700; text-transform: uppercase; }
.service-row .service-symbol { color: #688b70; font-size: 20px; font-weight: 400; }

/* Work: real project imagery, varied rhythm */
.featured-section { padding: 126px 0 137px; background: #fbfcf8; }
.featured-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 46px; }
.featured-heading h2 { margin: 22px 0 0; font-size: clamp(42px, 4.8vw, 70px); line-height: 1.12; letter-spacing: -.077em; font-weight: 500; }
.featured-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 14px; }
.case-large { border: 1px solid #cbd5c9; background: #f2f5ef; min-width: 0; }
.case-shot { overflow: hidden; height: clamp(280px, 33vw, 455px); background: #203743; }
.case-shot img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.case-body { display: grid; grid-template-columns: 1fr auto; align-items: end; padding: 32px 34px 34px; gap: 22px; }
.case-overline { color: #637e68; font-size: 10px; letter-spacing: .11em; font-weight: 750; text-transform: uppercase; }
.case-body h3 { font-size: clamp(30px, 3.6vw, 50px); font-weight: 550; letter-spacing: -.068em; margin: 17px 0 11px; }
.case-body p { font-size: 12px; line-height: 1.8; color: #66776a; max-width: 530px; margin: 0; }
.case-body .arrow-link { white-space: nowrap; }
.case-note { display: block; font-size: 11px; line-height: 1.6; color: #516b56; margin-top: 19px; }
.case-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 14px; }
.case-small { min-height: 310px; display: flex; flex-direction: column; padding: 34px; position: relative; overflow: hidden; }
.case-small--richmont { background: #192d41; color: #f1efe6; }
.case-small--followup { background: #dbe9d7; color: #193722; }
.case-small .case-overline { color: inherit; opacity: .65; }
.case-small .case-wordmark { margin: auto 0; font-size: clamp(27px, 3.5vw, 54px); line-height: 1.15; font-weight: 550; letter-spacing: -.07em; }
.case-small--richmont .case-wordmark { font-family: var(--serif); font-size: clamp(28px,3.1vw,46px); font-weight: 400; letter-spacing: .13em; }
.case-small .case-bottom { display: flex; justify-content: space-between; gap: 20px; align-items: end; border-top: 1px solid currentColor; padding-top: 18px; }
.case-small .case-bottom span { max-width: 225px; font-size: 11px; line-height: 1.5; }
.case-small .case-bottom a { flex-shrink: 0; font-size: 12px; font-weight: 750; border-bottom: 1px solid currentColor; padding-bottom: 6px; }
.case-small .case-bottom a:hover { opacity: .7; }

/* Client work / original ventures */
.practice-section { padding: 121px 0 126px; background: #e9ede6; }
.practice-section .section-heading { margin-bottom: 48px; }
.practice-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #aebdab; }
.practice-col { padding: 36px 55px 0 0; }
.practice-col + .practice-col { border-left: 1px solid #b7c6b5; padding: 36px 0 0 55px; }
.practice-label { color: #6a866f; font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.practice-col h3 { font-size: clamp(27px, 3.3vw, 47px); letter-spacing: -.065em; line-height: 1.16; font-weight: 550; margin: 29px 0 16px; }
.practice-col p { font-size: 13px; line-height: 1.85; color: #637567; max-width: 500px; margin: 0 0 29px; }

/* Government and contact strips */
.government-strip { background: var(--green-dark); padding: 91px 0 99px; color: #eaf1e6; }
.government-grid { display: grid; grid-template-columns: 30% 70%; gap: 30px; }
.government-grid h2 { font-weight: 500; font-size: clamp(36px, 4.3vw, 61px); letter-spacing: -.075em; line-height: 1.17; max-width: 890px; margin: -13px 0 22px; }
.government-grid p { color: #b6cabb; font-size: 13px; line-height: 1.9; max-width: 650px; margin-bottom: 32px; }
.government-grid .arrow-link { color: #e5f1df; }
.contact-section { background: var(--paper); padding: 118px 0 144px; }
.contact-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 90px; align-items: end; }
.contact-grid h2 { font-size: clamp(46px, 5.7vw, 82px); line-height: 1.1; letter-spacing: -.08em; font-weight: 500; margin: 24px 0 0; }
.contact-right p { color: #5f7164; font-size: 14px; line-height: 1.82; max-width: 420px; margin: 0 0 32px; }
.email-link { display: inline-flex; align-items: center; gap: 28px; border-bottom: 1px solid #4e7254; padding-bottom: 10px; font-size: clamp(17px, 1.9vw, 26px); font-weight: 650; letter-spacing: -.05em; }
.email-link:hover { color: var(--green); }
.copy-button { display: block; background: none; border: none; border-bottom: 1px solid #6d8971; color: #58775e; font-size: 11px; font-weight: 650; margin-top: 19px; padding: 5px 0; }

/* Footer */
.site-footer { background: #17291e; color: #c9d7c9; padding: 58px 0 25px; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 55px; padding-bottom: 75px; }
.site-footer .brand-mark { background: #e5eee2; color: #19301e; }
.site-footer .brand-word { color: #f5f7ef; }
.footer-summary { max-width: 310px; margin-top: 20px; color: #9fb5a2; font-size: 12px; line-height: 1.8; }
.footer-links { display: flex; flex-direction: column; align-items: start; gap: 15px; }
.footer-links strong { color: #88a78d; font-size: 10px; letter-spacing: .13em; font-weight: 700; margin-bottom: 10px; }
.footer-links a { font-size: 12px; }
.footer-links a:hover { color: #f7f9ef; }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; border-top: 1px solid #4a604f; padding-top: 21px; color: #95ae9a; font-size: 10px; }

/* Inner pages */
.inner-hero { background: #e9eee6; padding: 96px 0 99px; }
.inner-hero--dark { background: #193022; color: #edf4eb; }
.inner-hero h1 { margin: 30px 0 27px; font-size: clamp(57px, 7.3vw, 108px); font-weight: 500; letter-spacing: -.09em; line-height: 1.02; max-width: 1070px; }
.inner-hero h1 em { color: #5d805e; font-family: var(--serif); font-weight: 400; letter-spacing: -.055em; }
.inner-hero--dark h1 em { color: #c0d8b9; }
.inner-hero p { color: #5e7361; max-width: 780px; font-size: 15px; line-height: 1.82; margin: 0; }
.inner-hero--dark p { color: #bdcebe; }
.inner-hero .hero-actions { justify-content: flex-start; margin-top: 32px; }
.inner-hero--dark .button { background: #e0edda; border-color: #e0edda; color: #19301f; }
.inner-hero--dark .button:hover { background: #fff; }
.inner-hero--dark .button--outline { background: transparent; border-color: #8bab8b; color: #eaf1e7; }
.inner-hero--dark .button--outline:hover { background: #274b30; }

/* Project directory */
.work-showcase { padding: 105px 0 113px; background: #fdfefa; }
.showcase-head { display: grid; grid-template-columns: 30% 70%; gap: 30px; margin-bottom: 38px; }
.showcase-head h2 { font-size: clamp(35px, 4.3vw, 62px); font-weight: 500; line-height: 1.13; letter-spacing: -.07em; margin: -8px 0 0; }
.showcase-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 28px; }
.showcase-image { background: #233944; border: 1px solid #ccd5ca; overflow: hidden; align-self: stretch; }
.showcase-image img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; object-position: left top; }
.showcase-info { display: flex; flex-direction: column; justify-content: center; padding: 15px 0; }
.showcase-info .kicker { color: #698270; }
.showcase-info h3 { font-size: clamp(35px, 4vw, 58px); letter-spacing: -.075em; font-weight: 500; margin: 29px 0 16px; }
.showcase-info p { color: var(--muted); font-size: 13px; line-height: 1.9; max-width: 480px; margin-bottom: 25px; }
.showcase-footnote { font-size: 11px; line-height: 1.65; color: #4d6653; margin-top: 28px; }
.directory-section { background: #edf1ea; padding: 107px 0 128px; }
.directory-heading { display: flex; justify-content: space-between; align-items: end; gap: 25px; margin-bottom: 35px; }
.directory-heading h2 { font-weight: 500; font-size: clamp(39px,4.4vw,63px); letter-spacing: -.074em; margin: 17px 0 0; }
.directory-heading p { color: #687e6b; line-height: 1.75; font-size: 12px; max-width: 365px; margin: 0; }
.filter-bar { display: flex; gap: 21px; flex-wrap: wrap; border-bottom: 1px solid #b0c1b1; padding: 0 0 20px; }
.filter-button { border: 0; background: none; padding: 8px 0; color: #758575; font-size: 12px; font-weight: 600; border-bottom: 1px solid transparent; }
.filter-button:hover, .filter-button[aria-pressed='true'] { color: #1e472b; border-bottom-color: #1e472b; }
.result-count { padding: 17px 0; font-size: 10px; font-weight: 700; letter-spacing: .12em; color: #7f9780; text-transform: uppercase; }
.project-rows { border-top: 1px solid #becbbc; }
.project-row { display: grid; grid-template-columns: 5% minmax(0,1fr) 16% 17%; gap: 22px; align-items: start; border-bottom: 1px solid #c8d5c6; padding: 31px 0 33px; scroll-margin-top: 105px; }
.project-row[hidden] { display: none; }
.project-index { color: #829a84; font-size: 11px; font-weight: 700; margin-top: 8px; }
.project-summary h3 { font-weight: 550; font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -.05em; margin: 0 0 11px; }
.project-summary p { font-size: 12px; color: #637566; line-height: 1.75; margin: 0; max-width: 660px; }
.project-status { color: #536e58; font-size: 11px; font-weight: 700; line-height: 1.85; letter-spacing: .045em; text-transform: uppercase; margin-top: 6px; }
.project-action { justify-self: end; color: #284e31; font-size: 12px; font-weight: 700; border-bottom: 1px solid #5f8065; padding-bottom: 7px; white-space: nowrap; margin-top: 4px; }
.project-action:hover { color: #527e57; }
.project-action--muted { color: #879b8c; border-bottom: none; font-weight: 500; }
.directory-note { color: #5a715f; font-size: 12px; line-height: 1.85; margin-top: 30px; max-width: 800px; }

/* Public-sector capabilities */
.public-lede { padding: 108px 0 112px; background: #fbfcf8; }
.public-lede-grid { display: grid; grid-template-columns: 30% 70%; gap: 30px; }
.public-lede p { font-weight: 500; font-size: clamp(26px, 3vw, 43px); line-height: 1.38; letter-spacing: -.05em; margin: -8px 0 0; max-width: 940px; }
.public-services { padding: 105px 0 116px; background: #edf1ea; }
.public-service-list { border-top: 1px solid #aebfad; }
.public-service-row { display: grid; grid-template-columns: 9% 34% 1fr; gap: 22px; border-bottom: 1px solid #c1cec0; padding: 30px 0; }
.public-service-row .number { color: #759179; font-size: 11px; font-weight: 700; }
.public-service-row h3 { font-weight: 550; font-size: clamp(21px,2.2vw,29px); letter-spacing: -.05em; margin: -5px 0 0; }
.public-service-row p { font-size: 13px; line-height: 1.8; color: #627667; max-width: 640px; margin: 0; }
.public-method { background: #fbfcf8; padding: 105px 0; }
.method-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid #b9c9b7; gap: 25px; }
.method { padding-top: 23px; }
.method span { font-size: 11px; color: #769079; font-weight: 700; }
.method h3 { margin: 42px 0 12px; font-size: 25px; font-weight: 550; letter-spacing: -.05em; }
.method p { color: #67796b; font-size: 12px; line-height: 1.8; max-width: 260px; margin: 0; }
.public-proof { background: #e9eee7; padding: 105px 0 114px; }
.proof-list { border-top: 1px solid #afbdac; }
.proof-row { display: grid; grid-template-columns: 31% 1fr 17%; gap: 25px; border-bottom: 1px solid #bfccbd; padding: 29px 0; }
.proof-row h3 { margin: 0; font-size: 27px; font-weight: 550; letter-spacing: -.05em; }
.proof-row p { margin: 2px 0 0; color: #65776b; font-size: 13px; line-height: 1.7; }
.proof-row span { color: #78907a; font-size: 10px; letter-spacing: .07em; font-weight: 700; text-transform: uppercase; }
.public-info { background: #fcfdf9; padding: 109px 0 119px; }
.public-info-grid { display: grid; grid-template-columns: 42% 1fr; gap: 80px; }
.public-info h2 { margin: 25px 0; font-size: clamp(36px,4vw,57px); line-height: 1.16; font-weight: 500; letter-spacing: -.065em; }
.public-info p { font-size: 13px; color: #637566; line-height: 1.83; max-width: 500px; }
.information-table { margin: 0; border-top: 1px solid #b9c9b7; }
.information-table div { display: grid; grid-template-columns: 30% 1fr; gap: 20px; padding: 20px 0; border-bottom: 1px solid #d0d9ce; }
.information-table dt { color: #7a917c; font-size: 10px; text-transform: uppercase; font-weight: 700; letter-spacing: .08em; }
.information-table dd { color: #2f4334; margin: 0; font-size: 13px; line-height: 1.65; }
.qualification-note { border-left: 2px solid #7e9e80; color: #748776; font-size: 11px; line-height: 1.8; padding-left: 19px; margin-top: 27px; }
.print-cta { background: none; border: none; border-bottom: 1px solid #416b48; padding: 7px 0 9px; color: #31573a; font-size: 12px; font-weight: 700; margin-top: 20px; }

/* Follow-Up product */
.product-overview { padding: 110px 0; background: #fcfdf9; }
.product-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 70px; align-items: start; }
.product-grid h2 { margin: 24px 0 18px; font-size: clamp(35px,4.2vw,61px); line-height: 1.17; font-weight: 500; letter-spacing: -.075em; }
.product-grid p { color: #637667; font-size: 13px; line-height: 1.9; max-width: 690px; }
.product-price { border-top: 2px solid #3b6542; padding-top: 23px; }
.product-price strong { display: block; font-size: clamp(36px,4vw,55px); font-weight: 500; letter-spacing: -.075em; margin: 19px 0 10px; }
.product-price span { font-size: 11px; color: #6e8d73; letter-spacing: .09em; text-transform: uppercase; font-weight: 700; }
.product-price p { font-size: 12px; }
.product-steps { padding: 105px 0; background: #e8eee6; }
.steps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; border-top: 1px solid #bacbbb; }
.step { padding-top: 25px; }
.step span { color: #78977d; font-size: 11px; font-weight: 700; }
.step h3 { font-size: 28px; font-weight: 550; letter-spacing: -.05em; margin: 44px 0 13px; }
.step p { font-size: 13px; line-height: 1.8; color: #647668; }
.product-legal-note { font-size: 11px !important; color: #7f9481 !important; }
.product-legal-note a { border-bottom: 1px solid #78977b; }

/* Legal documents */
.legal-article { max-width: 780px; margin: 0 auto; padding: 94px 0 127px; }
.legal-article h1 { margin: 20px 0 22px; font-size: clamp(41px,5vw,65px); font-weight: 500; line-height: 1.1; letter-spacing: -.075em; }
.legal-article h2 { font-size: 23px; font-weight: 550; letter-spacing: -.035em; margin: 41px 0 10px; }
.legal-article p { color: #647667; font-size: 14px; line-height: 1.9; }
.legal-article a { color: #35643e; border-bottom: 1px solid #829c85; }

/* Responsive */
@media (max-width: 1120px) {
  .frame { width: calc(100% - 60px); }
  .header-inner { gap: 20px; }
  .nav-links { gap: 23px; }
  .header-contact { margin-left: 5px; }
  .hero-title { font-size: clamp(70px, 9.8vw, 120px); }
  .featured-grid { grid-template-columns: 1.05fr .95fr; }
  .case-small { min-height: 290px; }
  .project-row { grid-template-columns: 34px 1fr 145px 150px; gap: 18px; }
  .public-info-grid { gap: 45px; }
}
@media (max-width: 820px) {
  .frame { width: calc(100% - 40px); }
  .header-inner { min-height: 68px; }
  .menu-toggle { display: flex; }
  .header-contact { display: none; }
  .legal-back { display: inline-flex; margin-left: auto !important; gap: 7px; font-size: 11px; }
  .nav-links { display: none; position: absolute; left: 0; right: 0; top: 67px; background: var(--paper); border-top: 1px solid #d0d8cd; padding: 15px 20px 35px; min-height: calc(100vh - 67px); flex-direction: column; align-items: stretch; gap: 0; }
  .nav-links.is-open { display: flex; }
  .nav-links a { font-size: 24px; font-weight: 500; border-bottom: 1px solid #c9d4c8; padding: 19px 0; }
  .home-hero { padding-top: 50px; }
  .hero-title { margin: 70px 0 55px; font-size: clamp(57px, 10vw, 91px); }
  .hero-bottom { grid-template-columns: 1fr; gap: 27px; padding-bottom: 52px; }
  .hero-actions { justify-content: start; }
  .intro-grid, .section-heading, .showcase-head, .public-lede-grid, .government-grid { grid-template-columns: 1fr; gap: 23px; }
  .intro-section, .services-section, .featured-section, .practice-section, .contact-section, .work-showcase, .directory-section, .public-lede, .public-services, .public-method, .public-proof, .public-info, .product-overview, .product-steps { padding: 79px 0; }
  .intro-statement, .section-heading h2, .showcase-head h2, .government-grid h2 { margin-top: 0; }
  .service-row { grid-template-columns: 35px 1fr 25px; gap: 13px; }
  .service-row p { grid-column: 2 / 4; }
  .service-row .service-symbol { grid-column: 3; grid-row: 1; }
  .featured-grid { grid-template-columns: 1fr; }
  .case-stack { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .case-small { min-height: 275px; }
  .practice-col { padding-right: 28px; }
  .practice-col + .practice-col { padding-left: 28px; }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .showcase-grid { grid-template-columns: 1fr; }
  .showcase-image img { max-height: 420px; }
  .showcase-info { padding: 10px 0; }
  .directory-heading { display: block; }
  .directory-heading p { margin-top: 17px; }
  .public-service-row { grid-template-columns: 35px 1fr; }
  .public-service-row p { grid-column: 2; }
  .public-info-grid, .product-grid { grid-template-columns: 1fr; }
  .method-grid { grid-template-columns: repeat(2,1fr); row-gap: 28px; }
}
@media (max-width: 580px) {
  .frame { width: calc(100% - 34px); }
  .hero-top .edition { display: none; }
  .hero-title { font-size: clamp(48px, 11.8vw, 66px); letter-spacing: -.087em; margin: 50px 0 39px; }
  .hero-bottom p { font-size: 16px; }
  .hero-actions { display: grid; width: 100%; }
  .hero-last-inner { grid-template-columns: 1fr; }
  .hero-last-inner div { padding: 12px 0; }
  .hero-last-inner div + div { border-left: none; padding-left: 0; border-top: 1px solid #c4d0c3; }
  .intro-statement { font-size: 36px; }
  .section-heading h2, .featured-heading h2, .directory-heading h2 { font-size: 42px; }
  .featured-heading { display: block; }
  .featured-heading .arrow-link { margin-top: 23px; }
  .case-body { display: block; padding: 25px; }
  .case-body .arrow-link { margin-top: 22px; }
  .case-shot { height: 250px; }
  .case-stack { grid-template-columns: 1fr; }
  .case-small { min-height: 260px; }
  .practice-grid { grid-template-columns: 1fr; }
  .practice-col { padding: 28px 0 30px; }
  .practice-col + .practice-col { border-left: none; border-top: 1px solid #bacaba; padding: 30px 0; }
  .contact-grid h2 { font-size: 48px; }
  .email-link { font-size: 18px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 38px; }
  .footer-grid .footer-brand { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; }
  .inner-hero { padding: 75px 0; }
  .inner-hero h1 { font-size: 53px; }
  .inner-hero p { font-size: 13px; }
  .work-showcase { padding-top: 70px; }
  .filter-bar { gap: 14px 20px; }
  .project-row { grid-template-columns: 25px 1fr; gap: 7px 12px; padding: 27px 0; }
  .project-index { grid-row: 1 / 4; }
  .project-status { grid-column: 2; }
  .project-action { grid-column: 2; justify-self: start; margin-top: 10px; }
  .proof-row { grid-template-columns: 1fr; gap: 9px; }
  .method-grid, .steps-grid { grid-template-columns: 1fr; }
  .information-table div { grid-template-columns: 1fr; gap: 7px; }
  .legal-article { padding: 70px 0 100px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; }
}
@media print {
  .site-header, .site-footer, .button, .print-cta, .filter-bar, .contact-section, .government-strip { display: none !important; }
  .frame { width: 100%; }
  body, .inner-hero, .public-services, .public-method, .public-proof, .public-info { color: black; background: white; }
  .inner-hero { padding: 15px 0; }
  .inner-hero p { color: #333; }
  .public-service-row, .method, .proof-row { break-inside: avoid; }
}

/* Project studies — individual editorial treatments, not repeated cards */
.case-hero { padding-top: 54px; padding-bottom: 93px; }
.case-back { display: block; width: fit-content; margin: 0 0 63px; border-bottom: 1px solid currentColor; padding-bottom: 8px; font-size: 11px; font-weight: 700; color: inherit; opacity: .8; }
.case-back:hover { opacity: 1; }
.case-hero h1 { font-size: clamp(70px, 9vw, 134px); max-width: 1200px; margin: 25px 0 24px; }
.case-hero p { max-width: 760px; }
.case-hero-details { display: flex; flex-wrap: wrap; gap: 14px 41px; border-top: 1px solid currentColor; opacity: .72; padding-top: 21px; margin-top: 55px; font-size: 10px; letter-spacing: .11em; text-transform: uppercase; font-weight: 700; }
.case-hero--sage { background: #dfe8dd; color: #193722; }
.case-hero--navy { background: #1a2f42; color: #f5f1e8; }
.case-hero--navy p { color: #d1d7d3; }
.case-hero--navy h1 { color: #f6f1e4; }
.case-hero--navy .case-hero-details { color: #cedad6; }
.case-hero--sage h1 em { color: #65836b; }
.case-hero .hero-actions { margin-top: 30px; }
.case-image-section { padding: 105px 0 90px; background: #fbfcf8; }
.case-image { margin: 0; border: 1px solid #c9d4c9; background: #e5ece5; }
.case-image img { width: 100%; height: auto; }
.case-image figcaption { padding: 18px 23px; font-size: 12px; color: #47614c; line-height: 1.7; border-top: 1px solid #c7d4c6; }
.case-overview { padding: 119px 0 127px; background: var(--white); }
.case-overview-grid { display: grid; grid-template-columns: 48% 1fr; gap: 90px; align-items: start; }
.case-overview h2, .company-essay h2 { font-size: clamp(42px, 4.7vw, 68px); line-height: 1.17; letter-spacing: -.07em; font-weight: 500; margin: 24px 0 0; }
.case-overview p, .company-essay p { font-size: 15px; line-height: 1.88; color: #5e7061; margin: 0 0 21px; }
.case-systems { padding: 112px 0 124px; background: #edf1ea; }
.case-systems-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #aebfad; gap: 30px; }
.case-system { padding-top: 27px; }
.case-system span { color: #5f7e65; font-weight: 750; font-size: 10px; letter-spacing: .11em; }
.case-system h3 { font-size: clamp(23px, 2.5vw, 33px); letter-spacing: -.055em; font-weight: 550; margin: 48px 0 12px; }
.case-system p { color: #5c7160; font-size: 13px; line-height: 1.83; margin: 0; max-width: 375px; }
.case-status { padding: 119px 0 125px; background: #fbfcf8; }
.case-status-grid { display: grid; grid-template-columns: 47% 1fr; gap: 115px; }
.case-status h2 { font-size: clamp(38px, 4.4vw, 62px); font-weight: 500; letter-spacing: -.07em; line-height: 1.15; margin: 24px 0 19px; }
.case-status p { color: #637566; line-height: 1.85; font-size: 13px; max-width: 590px; margin-bottom: 30px; }
.case-facts { margin: 0; border-top: 1px solid #aebfad; }
.case-facts div { display: grid; grid-template-columns: 37% 1fr; padding: 20px 0; gap: 15px; border-bottom: 1px solid #cfdbce; }
.case-facts dt { color: #66816b; font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.case-facts dd { margin: 0; color: #314835; font-size: 13px; line-height: 1.65; }
.case-next { padding: 98px 0 106px; background: #193022; color: #edf4e8; }
.case-next-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 100px; align-items: end; }
.case-next h2 { font-size: clamp(39px, 4.5vw, 65px); letter-spacing: -.075em; font-weight: 500; line-height: 1.15; margin: 24px 0 14px; }
.case-next p { max-width: 630px; font-size: 13px; line-height: 1.84; color: #b7cbbb; margin: 0; }
.case-next-grid > div:last-child { display: flex; flex-direction: column; gap: 22px; align-items: start; }
.case-next .arrow-link { color: #eaf4e5; }
.button--light { background: #e6f0e0; color: #193021; border-color: #e6f0e0; }
.button--light:hover { background: white; border-color: white; color: #193021; }
.workflow-section { padding: 116px 0 120px; background: #e2ebe0; }
.workflow-rail { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #a5bca8; border-bottom: 1px solid #a5bca8; }
.workflow-stop { padding: 29px 34px 44px 0; }
.workflow-stop + .workflow-stop { border-left: 1px solid #b6c9b6; padding-left: 36px; }
.workflow-stop span { font-size: 10px; color: #56785b; letter-spacing: .11em; font-weight: 700; }
.workflow-stop h3 { font-size: clamp(24px, 2.7vw, 37px); font-weight: 500; letter-spacing: -.055em; margin: 44px 0 13px; }
.workflow-stop p { color: #55705a; font-size: 13px; line-height: 1.8; margin: 0; }
.workflow-footnote { margin: 22px 0 0; color: #5d775f; font-size: 12px; }
.richmont-identity { background: #f6f3eb; padding: 110px 0 95px; }
.richmont-identity-panel { position: relative; min-height: 490px; display: flex; justify-content: center; align-items: center; background: #1a2f42; color: #ece7db; text-align: center; overflow: hidden; }
.richmont-name { font-family: var(--serif); font-size: clamp(48px, 9vw, 126px); letter-spacing: .135em; font-weight: 400; }
.richmont-est { display: block; font-size: 10px; letter-spacing: .34em; margin-top: 22px; color: #d0d4d3; }
.richmont-detail, .richmont-corner { position: absolute; font-size: 10px; letter-spacing: .12em; color: #aab9bf; }
.richmont-detail { left: 33px; top: 32px; }
.richmont-corner { right: 33px; bottom: 32px; text-transform: uppercase; }
.richmont-caption { font-size: 11px; color: #586b5b; line-height: 1.6; margin: 17px 0 0; }

/* Services and company — index-like rows, not card collections */
.service-hero { padding-bottom: 105px; }
.scope-section { padding: 113px 0 127px; background: #eaf0e8; }
.scope-list { border-top: 1px solid #adbfad; }
.scope-row { display: grid; grid-template-columns: 7% 38% 1fr; gap: 21px; border-bottom: 1px solid #c3d0c1; padding: 30px 0 33px; }
.scope-row > span { font-size: 11px; color: #6d8b72; font-weight: 700; }
.scope-row h3 { margin: -5px 0 0; font-size: clamp(22px, 2.5vw, 34px); line-height: 1.2; letter-spacing: -.05em; font-weight: 550; }
.scope-row p { color: #5e7363; font-size: 13px; line-height: 1.8; margin: 0; max-width: 600px; }
.related-section { padding: 106px 0 116px; background: #fbfcf8; }
.related-grid { display: grid; grid-template-columns: 40% 1fr; gap: 60px; align-items: start; }
.related-grid h2 { font-size: clamp(38px, 4.1vw, 58px); letter-spacing: -.07em; font-weight: 500; margin: 23px 0 0; }
.related-links { border-top: 1px solid #b6c8b7; }
.related-links a { display: grid; grid-template-columns: 28% 1fr 25px; align-items: center; gap: 14px; border-bottom: 1px solid #cfdbcd; padding: 29px 0; }
.related-links a:hover strong { color: #4e7754; }
.related-links a > span:first-child { color: #648069; font-size: 10px; letter-spacing: .07em; font-weight: 700; text-transform: uppercase; }
.related-links strong { font-size: 23px; font-weight: 550; letter-spacing: -.04em; }
.related-links a > span:last-child { justify-self: end; font-size: 20px; }
.approach-strip { background: #193022; padding: 101px 0 106px; color: #edf5e9; }
.approach-strip-grid { display: grid; grid-template-columns: 30% 1fr; gap: 35px; }
.approach-strip h2 { font-size: clamp(36px,4.3vw,60px); letter-spacing: -.075em; font-weight: 500; margin: -10px 0 18px; }
.approach-strip p { font-size: 13px; line-height: 1.85; color: #b7cbbb; max-width: 720px; margin: 0 0 30px; }
.approach-strip .arrow-link { color: #edf5e9; }
.company-essay { background: #fcfdf9; padding: 116px 0 125px; }
.company-essay-grid { display: grid; grid-template-columns: 30% 1fr; gap: 35px; }
.company-essay h2 { margin: -9px 0 28px; max-width: 820px; }
.company-essay p { max-width: 690px; }
.company-details { background: #fcfdf9; padding: 114px 0 125px; }
.company-details-grid { display: grid; grid-template-columns: 41% 1fr; gap: 90px; }
.company-details h2 { font-size: clamp(39px,4.5vw,62px); font-weight: 500; letter-spacing: -.07em; margin: 23px 0 18px; }
.company-details p { font-size: 13px; color: #66796a; line-height: 1.85; max-width: 430px; }
.company-details dd a { border-bottom: 1px solid #66846b; }
.approach-detail { background: #fcfdf9; padding: 112px 0; }
.approach-detail-grid { display: grid; grid-template-columns: 48% 1fr; gap: 100px; }
.approach-detail h2 { font-size: clamp(39px,4.4vw,63px); letter-spacing: -.07em; font-weight: 500; line-height: 1.17; margin: 22px 0 0; }
.approach-detail h3 { font-size: 22px; font-weight: 550; letter-spacing: -.045em; margin: 5px 0 10px; }
.approach-detail p { font-size: 13px; line-height: 1.85; color: #647567; margin: 0 0 33px; }

/* Inquiry — clear fields and explicit email handoff */
.inquiry-hero { padding-bottom: 90px; }
.inquiry-section { background: #fcfdf9; padding: 108px 0 140px; }
.inquiry-layout { display: grid; grid-template-columns: 35% 1fr; gap: clamp(55px, 9vw, 130px); align-items: start; }
.inquiry-aside h2 { font-size: clamp(34px, 3.4vw, 49px); letter-spacing: -.065em; font-weight: 500; line-height: 1.16; margin: 26px 0 19px; }
.inquiry-aside p { color: #637667; font-size: 13px; line-height: 1.85; }
.inquiry-aside-rule { padding-top: 27px; margin-top: 34px; border-top: 1px solid #c7d4c6; }
.inquiry-aside-rule strong { font-size: 13px; font-weight: 700; }
.inquiry-aside-rule a { color: #285c35; border-bottom: 1px solid #5b8461; padding-bottom: 4px; }
.inquiry-form-wrap { border-top: 2px solid #355b3e; }
.inquiry-form-heading { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 18px 0 31px; }
.inquiry-form-heading p { margin: 0; color: #738574; font-size: 11px; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.field { margin-bottom: 25px; }
.field label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 11px; color: #344a38; }
.field label span { color: #a64b38; }
.field input, .field select, .field textarea { width: 100%; min-height: 50px; border: 1px solid #b9caba; border-radius: 0; background: #fff; color: #1e3727; padding: 13px 14px; font: 14px/1.5 var(--sans); outline-offset: 3px; transition: border-color .17s ease; }
.field textarea { display: block; min-height: 170px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: #87998a; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #387443; outline: 2px solid #bed6c1; outline-offset: 1px; }
.field [aria-invalid='true'] { border-color: #a34031; outline-color: #a34031; }
.inquiry-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.inquiry-disclosure { border-left: 2px solid #8fab91; padding: 1px 0 1px 18px; color: #566c5b; font-size: 12px; line-height: 1.75; margin: 1px 0 24px; }
.form-actions { display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.copy-message { color: #396744; background: none; border: 0; border-bottom: 1px solid #719676; padding: 8px 0; font-size: 12px; font-weight: 700; }
.copy-message:hover { color: #1e4a2c; border-color: #1e4a2c; }
.form-feedback { min-height: 22px; color: #365d3c; font-size: 13px; line-height: 1.75; margin: 18px 0 0; }
.service-row h3 a:hover, .case-small a.case-wordmark:hover { opacity: .73; }
.service-row .service-detail a { border-bottom: 1px solid #83a188; padding-bottom: 4px; }
.inline-case-link { display: inline-block; margin-top: 14px; border-bottom: 1px solid #76987c; padding-bottom: 5px; font-size: 11px; color: #365c3c; font-weight: 700; }
.inline-case-link:hover { color: #57845e; }
.contact-alternate { display: inline-block; font-size: 12px; color: #57745c; border-bottom: 1px solid #789879; padding-bottom: 7px; margin-top: 26px; }
.contact-alternate:hover { color: #274b32; }

@media (max-width: 900px) {
  .case-overview-grid, .case-status-grid, .company-details-grid, .approach-detail-grid { grid-template-columns: 1fr; gap: 34px; }
  .case-hero h1 { font-size: clamp(62px, 9vw, 100px); }
  .inquiry-layout { grid-template-columns: 1fr; gap: 50px; }
  .inquiry-aside { max-width: 650px; }
  .case-next-grid { gap: 55px; }
  .related-grid { grid-template-columns: 1fr; gap: 35px; }
}
@media (max-width: 820px) {
  .case-hero { padding-top: 42px; padding-bottom: 75px; }
  .case-back { margin-bottom: 47px; }
  .case-image-section, .case-overview, .case-systems, .case-status, .case-next, .workflow-section, .richmont-identity, .scope-section, .related-section, .approach-strip, .company-essay, .company-details, .approach-detail, .inquiry-section { padding: 78px 0; }
  .company-essay-grid, .approach-strip-grid { grid-template-columns: 1fr; gap: 23px; }
  .company-essay h2 { margin-top: 0; }
  .scope-row { grid-template-columns: 28px 1fr; }
  .scope-row p { grid-column: 2; }
  .case-next-grid { grid-template-columns: 1fr; gap: 35px; }
  .case-systems-list { gap: 21px; }
  .case-system h3 { margin-top: 33px; }
  .richmont-identity-panel { min-height: 340px; }
}
@media (max-width: 580px) {
  .case-hero h1 { font-size: 57px; letter-spacing: -.075em; }
  .case-hero-details { display: grid; gap: 11px; margin-top: 35px; }
  .case-image figcaption { padding: 15px; }
  .case-systems-list, .workflow-rail { grid-template-columns: 1fr; }
  .case-system { padding: 24px 0 30px; border-bottom: 1px solid #b8c8b7; }
  .case-system h3 { margin: 23px 0 10px; }
  .workflow-stop, .workflow-stop + .workflow-stop { padding: 27px 0 32px; border-left: none; border-top: 1px solid #b6c9b6; }
  .workflow-stop:first-child { border-top: none; }
  .workflow-stop h3 { margin: 23px 0 9px; }
  .case-facts div { grid-template-columns: 1fr; gap: 5px; }
  .richmont-identity-panel { min-height: 270px; }
  .richmont-name { font-size: clamp(30px,8.4vw,52px); }
  .richmont-detail { left: 17px; top: 17px; }
  .richmont-corner { right: 17px; bottom: 17px; }
  .scope-row { gap: 11px; }
  .related-links a { grid-template-columns: 1fr 23px; gap: 7px; }
  .related-links a > span:first-child { grid-column: 1 / -1; }
  .related-links a > span:last-child { grid-column: 2; grid-row: 2; }
  .form-grid { grid-template-columns: 1fr; gap: 0; }
  .inquiry-form-heading { display: block; }
  .inquiry-form-heading p { margin-top: 8px; }
}
