:root {
  --ink: #17251c;
  --forest: #183f2a;
  --forest-2: #0f3020;
  --leaf: #5f7938;
  --sage: #c8d1b8;
  --cream: #f4eedf;
  --paper: #fffdf8;
  --sand: #ded0af;
  --line: rgba(23, 37, 28, .17);
  --muted: #657069;
  --shadow: 0 22px 70px rgba(19, 42, 27, .14);
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: 100px; }
body { max-width: 100%; margin: 0; overflow-x: clip; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.65; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #c78b2a; outline-offset: 4px; }
.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.narrow { width: min(760px, calc(100% - 40px)); }
.skip-link { position: fixed; z-index: 1000; top: 8px; left: 8px; transform: translateY(-160%); padding: 10px 16px; background: var(--cream); color: var(--forest); font-weight: 800; }
.skip-link:focus { transform: none; }
.kicker { display: inline-flex; align-items: center; gap: 10px; color: var(--leaf); font-size: .75rem; font-weight: 800; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.kicker::before { width: 28px; height: 1px; background: currentColor; content: ''; }
.kicker.light { color: #d9e2c6; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: .99; letter-spacing: -.035em; }
h1 { margin: 24px 0; font-size: clamp(3.3rem, 7vw, 6.8rem); }
h2 { margin: 20px 0; font-size: clamp(2.4rem, 5vw, 4.9rem); }
h3 { font-size: clamp(1.45rem, 2.6vw, 2.2rem); }
p { margin: 0 0 1.3em; }
.section { padding: clamp(80px, 11vw, 150px) 0; }
.section-heading { margin-bottom: clamp(46px, 7vw, 78px); }
.split-heading { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .65fr); gap: 80px; align-items: end; }
.split-heading h2 { max-width: 820px; }
.split-heading > p { color: var(--muted); font-size: 1.05rem; }
.row-heading { display: flex; justify-content: space-between; gap: 40px; align-items: end; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 0 24px; border: 1px solid transparent; border-radius: 999px; font-weight: 800; transition: transform .25s ease, background .25s ease, color .25s ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { background: var(--forest); color: white; }
.button.outline { border-color: var(--forest); color: var(--forest); }
.button.cream { background: var(--cream); color: var(--forest); }
.text-link { display: inline-flex; gap: 10px; align-items: center; border-bottom: 1px solid currentColor; font-weight: 750; }
.text-link.light { color: var(--cream); }

.practical-bar { background: var(--forest-2); color: #e8ebdf; font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.practical-inner { min-height: 34px; display: flex; justify-content: space-between; align-items: center; }
.practical-inner a:hover { color: white; }
.site-header { position: sticky; z-index: 100; top: 0; background: rgba(255, 253, 248, .92); border-bottom: 1px solid transparent; backdrop-filter: blur(14px); transition: box-shadow .2s ease, border-color .2s ease; }
.site-header.scrolled { border-color: var(--line); box-shadow: 0 8px 30px rgba(23,37,28,.06); }
.header-inner { min-height: 90px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: flex; align-items: center; gap: 13px; }
.brand img { width: 68px; height: 68px; padding: 2px; border: 1px solid var(--sand); border-radius: 10px; object-fit: contain; background: #f9e8bd; }
.brand span { display: grid; line-height: 1.05; }
.brand strong { font-family: var(--serif); font-size: 1.42rem; font-weight: 600; }
.brand small { margin-top: 5px; color: var(--leaf); font-size: .66rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: 26px; font-size: .88rem; font-weight: 750; }
.main-nav a { padding: 8px 0; }
.main-nav a[aria-current='page'] { color: var(--leaf); }
.main-nav .nav-cta { padding: 12px 20px; background: var(--forest); color: white; border-radius: 999px; }
.menu-toggle { display: none; border: 0; background: none; color: var(--ink); }

.hero { overflow: hidden; padding: clamp(54px, 8vw, 112px) 0 clamp(80px, 10vw, 130px); background: var(--cream); }
.hero-grid { display: grid; grid-template-columns: minmax(0, .86fr) minmax(420px, 1.14fr); align-items: center; gap: clamp(50px, 7vw, 110px); }
.hero-copy h1 { max-width: 720px; }
.hero-copy > p { max-width: 600px; color: #4d5a51; font-size: clamp(1.05rem, 1.6vw, 1.28rem); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; margin: 36px 0 46px; }
.hero-facts { display: flex; gap: 50px; margin: 0; padding-top: 26px; border-top: 1px solid var(--line); }
.hero-facts div { display: grid; gap: 3px; }
.hero-facts dt { color: var(--leaf); font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hero-facts dd { margin: 0; font-weight: 700; }
.hero-visual { position: relative; align-self: center; }
.hero-arch { overflow: hidden; aspect-ratio: 4 / 3; border-radius: 220px 220px 28px 28px; background: #d6dfcf; box-shadow: var(--shadow); }
.hero-arch img { width: 100%; height: 100%; object-fit: cover; object-position: left center; transform: scale(1.005); }
.hero-seal { position: absolute; bottom: -36px; left: -54px; width: 140px; aspect-ratio: 1; display: grid; place-content: center; text-align: center; background: var(--forest); color: white; border: 8px solid var(--cream); border-radius: 50%; transform: rotate(-7deg); animation: seal-float 5s ease-in-out infinite; }
.hero-seal span { font-family: var(--serif); font-size: 3.2rem; line-height: .8; }
.hero-seal small { margin-top: 10px; font-size: .61rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.proof-strip { background: var(--paper); border-bottom: 1px solid var(--line); }
.proof-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.proof-grid p { display: grid; gap: 3px; margin: 0; padding: 28px 34px; border-left: 1px solid var(--line); }
.proof-grid p:last-child { border-right: 1px solid var(--line); }
.proof-grid strong { font-family: var(--serif); font-size: 1.2rem; }
.proof-grid span { color: var(--muted); font-size: .82rem; }

.services { background: var(--paper); }
.service-list { border-top: 1px solid var(--line); }
.service-card { display: grid; grid-template-columns: 70px minmax(0, 1fr) 240px; gap: 34px; align-items: center; padding: 30px 10px; border-bottom: 1px solid var(--line); transition: background .2s ease, padding .2s ease; }
.service-card:hover { padding-inline: 22px; background: var(--cream); }
.service-number { color: var(--leaf); font-family: var(--serif); font-size: 1.5rem; }
.service-card h3 { margin: 0 0 8px; font-size: clamp(1.5rem, 3vw, 2.45rem); }
.service-card p { max-width: 700px; margin: 0; color: var(--muted); }
.service-card small { justify-self: end; color: var(--leaf); font-weight: 750; text-align: right; }

.tax-credit { padding: 44px 0; background: var(--sand); border-top: 1px solid rgba(23,37,28,.12); border-bottom: 1px solid rgba(23,37,28,.12); }
.tax-credit-grid { display: grid; grid-template-columns: 190px minmax(0,1fr) 220px; gap: clamp(28px,5vw,72px); align-items: center; }
.tax-number { width: 168px; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; background: var(--forest); color: white; border-radius: 50%; box-shadow: 0 15px 38px rgba(24,63,42,.2); }
.tax-number strong { font-family: var(--serif); font-size: 5.1rem; font-weight: 500; letter-spacing: -.08em; line-height: 1; }
.tax-number span { align-self: flex-start; margin: 39px 0 0 7px; font-family: var(--serif); font-size: 1.4rem; }
.tax-copy h2 { max-width: 770px; margin: 10px 0 12px; font-size: clamp(2rem,3.5vw,3.4rem); }
.tax-copy p { max-width: 760px; margin: 0; color: #4c574f; }
.tax-credit .text-link { justify-self: end; }

.signature { background: #e9eddf; overflow: hidden; }
.signature-grid { display: grid; grid-template-columns: .85fr 1fr; align-items: center; gap: clamp(54px, 9vw, 130px); }
.signature-image { position: relative; min-height: 720px; }
.signature-image::before { position: absolute; inset: -34px 52px 34px -34px; border: 1px solid rgba(95,121,56,.4); border-radius: 240px 240px 18px 18px; content: ''; }
.signature-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 240px 240px 18px 18px; box-shadow: var(--shadow); }
.signature-copy h2 { max-width: 700px; font-size: clamp(2.5rem, 4.4vw, 4.4rem); }
.signature-copy > p { color: #536056; font-size: 1.08rem; }
.steps { display: grid; gap: 0; margin: 36px 0 42px; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 52px 1fr; gap: 18px; padding: 20px 0; border-top: 1px solid rgba(23,37,28,.16); }
.steps li > span { color: var(--leaf); font-family: var(--serif); }
.steps strong { font-family: var(--serif); font-size: 1.24rem; }
.steps p { margin: 4px 0 0; color: var(--muted); font-size: .92rem; }

.projects-section { background: var(--forest); color: white; }
.project-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 30px; }
.project-card { grid-column: span 4; }
.project-card:nth-child(2) { margin-top: 90px; }
.project-image { overflow: hidden; aspect-ratio: .78; background: #244f37; }
.project-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.project-card:hover .project-image img { transform: scale(1.035); }
.project-meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; color: #cfd9c2; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.project-card h3 { margin: 12px 0 0; font-size: 2rem; }

.field-section { position: relative; overflow: hidden; background: var(--cream); }
.field-section::before { position: absolute; top: -360px; right: -280px; width: 720px; aspect-ratio: 1; border: 1px solid rgba(95,121,56,.2); border-radius: 50%; content: ''; }
.field-heading { position: relative; display: grid; grid-template-columns: 1fr 320px; gap: 80px; align-items: end; margin-bottom: 62px; }
.field-heading h2 { margin-bottom: 0; font-size: clamp(3rem,6vw,6rem); }
.field-note { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 0 12px; padding: 28px; background: var(--forest); color: white; border-radius: 80px 80px 10px 10px; }
.field-note strong { font-family: var(--serif); font-size: 4rem; font-weight: 500; line-height: .8; }
.field-note > span { color: #dce4d1; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.field-note p { grid-column: 1 / -1; margin: 22px 0 0; color: #d5ded2; font-size: .9rem; }
.field-gallery { position: relative; display: grid; grid-template-columns: repeat(12,1fr); grid-template-rows: 220px 220px 250px; gap: 18px; }
.field-item { position: relative; overflow: hidden; margin: 0; background: var(--sand); }
.field-item-1 { grid-column: 1 / span 6; grid-row: 1 / span 2; }
.field-item-2 { grid-column: 7 / span 3; grid-row: 1; }
.field-item-3 { grid-column: 10 / span 3; grid-row: 1 / span 2; }
.field-item-4 { grid-column: 7 / span 3; grid-row: 2; }
.field-item-5 { grid-column: 1 / span 3; grid-row: 3; }
.field-item-6 { grid-column: 4 / span 3; grid-row: 3; }
.field-item-7 { grid-column: 7 / span 3; grid-row: 3; }
.field-item-8 { grid-column: 10 / span 3; grid-row: 3; }
.field-item button { width: 100%; height: 100%; padding: 0; border: 0; cursor: zoom-in; background: transparent; }
.field-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.22,.61,.36,1), filter .35s ease; }
.field-item:hover img { transform: scale(1.045); filter: saturate(1.08); }
.field-item figcaption { position: absolute; right: 0; bottom: 0; left: 0; display: flex; gap: 12px; align-items: center; padding: 14px 16px; background: linear-gradient(transparent,rgba(11,31,20,.9)); color: white; font-size: .82rem; pointer-events: none; }
.field-item figcaption span { color: #d4dfc9; font-family: var(--serif); font-size: 1.1rem; }
.field-footer { display: flex; justify-content: space-between; gap: 30px; align-items: center; margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--line); }
.field-footer p { margin: 0; color: var(--muted); }
.lightbox { width: min(1100px, calc(100% - 40px)); max-height: calc(100vh - 40px); padding: 0; border: 0; background: #0d1710; box-shadow: 0 30px 100px rgba(0,0,0,.4); }
.lightbox::backdrop { background: rgba(6,16,10,.84); backdrop-filter: blur(8px); }
.lightbox img { width: 100%; max-height: calc(100vh - 40px); object-fit: contain; }
.lightbox button { position: absolute; z-index: 2; top: 12px; right: 12px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--cream); color: var(--forest); font-size: 1.8rem; cursor: pointer; }

.news-section { background: var(--paper); }
.news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; }
.news-card { display: grid; grid-template-columns: 42% 1fr; gap: 28px; align-items: center; }
.news-image { overflow: hidden; aspect-ratio: .9; background: var(--cream); }
.news-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.news-card:hover .news-image img { transform: scale(1.04); }
.news-card time { color: var(--leaf); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.news-card h3, .news-card h2 { margin: 12px 0; font-size: clamp(1.5rem, 2.5vw, 2.15rem); line-height: 1.08; }
.news-card p { color: var(--muted); font-size: .94rem; }
.area-section { position: relative; overflow: hidden; padding: clamp(78px, 9vw, 120px) 0; background: var(--leaf); color: white; }
.area-grid { position: relative; display: grid; grid-template-columns: 1.15fr .75fr; gap: 100px; align-items: end; }
.area-grid h2 { max-width: 690px; margin-bottom: 0; }
.area-grid p { color: #eef1e7; }
.area-mark { position: absolute; z-index: 0; right: -30px; bottom: -135px; color: rgba(255,255,255,.08); font-family: var(--serif); font-size: 22rem; line-height: 1; pointer-events: none; }
.area-grid > *:not(.area-mark) { position: relative; z-index: 1; }
.compact-cta { margin-top: 0; }

.site-footer { padding: 90px 0 24px; background: var(--forest-2); color: white; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 110px; padding-bottom: 70px; }
.footer-intro h2 { max-width: 650px; }
.footer-intro p { max-width: 580px; color: #c6d0c4; }
.footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding-top: 34px; color: #dbe1d6; }
.footer-phone { color: white; font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1; }
.facebook-link { margin-top: 14px; padding-bottom: 5px; border-bottom: 1px solid rgba(255,255,255,.4); font-weight: 750; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px 30px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); color: #acb8ad; font-size: .72rem; }
.footer-bottom nav { display: flex; flex-wrap: wrap; gap: 20px; }
.footer-bottom a:hover { color: white; }
.mobile-call { display: none; }

.page-hero { padding: clamp(80px, 11vw, 140px) 0; background: var(--cream); }
.page-hero-grid { display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: 90px; }
.page-hero h1 { max-width: 800px; margin-bottom: 0; }
.page-hero p { color: var(--muted); font-size: 1.08rem; }
.project-stories { background: var(--paper); }
.project-story { display: grid; grid-template-columns: .42fr 1fr; gap: 80px; align-items: start; padding: 90px 0; border-top: 1px solid var(--line); }
.project-story:first-child { padding-top: 0; border: 0; }
.project-story header { position: sticky; top: 130px; }
.project-story header > span, .project-story header > small { color: var(--leaf); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.project-story h2 { font-size: clamp(2.5rem, 4vw, 4rem); }
.project-story p { color: var(--muted); }
.comparison { position: relative; overflow: hidden; min-height: 650px; background: var(--cream); user-select: none; }
.comparison-image { position: absolute; inset: 0; overflow: hidden; }
.comparison-image img { width: 100%; height: 100%; object-fit: cover; }
.comparison-image span { position: absolute; top: 18px; padding: 8px 12px; background: rgba(15,48,32,.88); color: white; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.comparison-after span { right: 18px; }
.comparison-before { width: 50%; border-right: 2px solid white; }
.comparison-before img { width: calc(100vw - 40px); max-width: 767px; }
.comparison-before span { left: 18px; }
.comparison input { position: absolute; z-index: 4; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.comparison-handle { position: absolute; z-index: 3; top: 50%; left: 50%; width: 52px; height: 52px; display: grid; place-items: center; background: white; color: var(--forest); border-radius: 50%; box-shadow: 0 8px 24px rgba(0,0,0,.22); transform: translate(-50%, -50%); pointer-events: none; }
.all-work { background: var(--cream); }
.all-work-heading { display: grid; grid-template-columns: 1.25fr .55fr; gap: 90px; align-items: end; margin-bottom: 58px; }
.all-work-heading h2 { margin-bottom: 0; }
.all-work-heading > p { color: var(--muted); }
.all-work-heading > p strong { display: block; margin-bottom: 8px; color: var(--forest); font-family: var(--serif); font-size: 2rem; }
.all-photo-grid { columns: 4 240px; column-gap: 16px; }
.all-photo-item { position: relative; break-inside: avoid; overflow: hidden; margin: 0 0 16px; background: var(--sand); }
.all-photo-item button { width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.all-photo-item img { width: 100%; height: auto; transition: transform .45s ease; }
.all-photo-item:hover img { transform: scale(1.025); }
.all-photo-item figcaption { display: flex; gap: 10px; padding: 12px 14px; background: var(--paper); color: var(--muted); font-size: .78rem; }
.all-photo-item figcaption span { color: var(--leaf); font-family: var(--serif); }
.news-archive { display: grid; gap: 70px; }
.news-card.large { grid-template-columns: minmax(280px, .85fr) 1fr; gap: 60px; }
.news-card.large .news-image { aspect-ratio: 1.35; }
.article-page { padding: 100px 0 140px; }
.article-header { text-align: center; }
.article-header .back-link { display: inline-block; margin-bottom: 60px; color: var(--leaf); font-weight: 800; }
.article-header time { display: block; color: var(--leaf); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.article-header h1 { font-size: clamp(3.2rem, 7vw, 6rem); }
.article-header p { color: var(--muted); font-size: 1.15rem; }
.article-image { margin-top: 70px; }
.article-image img { width: 100%; max-height: 720px; object-fit: cover; }
.article-body { padding-top: 70px; font-family: var(--serif); font-size: 1.3rem; line-height: 1.8; }
.article-body aside { margin-top: 60px; padding: 34px; background: var(--cream); font-family: var(--sans); font-size: 1rem; }
.article-body aside strong { font-family: var(--serif); font-size: 1.6rem; }
.legal-page { padding: 110px 0 140px; }
.legal-page h1 { margin-bottom: 80px; }
.legal-page section { padding: 30px 0; border-top: 1px solid var(--line); }
.legal-page section h2 { font-size: 1.7rem; }
.legal-page section p { color: var(--muted); }
.legal-page section a { text-decoration: underline; text-underline-offset: 3px; }
.not-found { min-height: 72vh; display: grid; place-items: center; padding: 100px 0; text-align: center; background: var(--cream); }
.error-number { display: block; color: var(--sand); font-family: var(--serif); font-size: 8rem; line-height: .8; }
.empty-state { padding: 60px; background: var(--cream); text-align: center; }

.reveal-ready .reveal-item { opacity: 0; transform: translateY(30px); transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
.reveal-ready .reveal-item.is-visible { opacity: 1; transform: none; }
.reveal-ready .reveal-item:nth-child(2) { transition-delay: .07s; }
.reveal-ready .reveal-item:nth-child(3) { transition-delay: .14s; }
.reveal-ready .reveal-item:nth-child(4) { transition-delay: .21s; }
@keyframes seal-float { 0%,100% { transform: rotate(-7deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-9px); } }

@media (max-width: 980px) {
  .main-nav { gap: 17px; font-size: .8rem; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { max-width: 760px; }
  .hero-visual { width: min(700px, 92%); margin-left: auto; }
  .split-heading, .page-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .tax-credit-grid { grid-template-columns: 150px 1fr; }
  .tax-number { width: 140px; }
  .tax-number strong { font-size: 4.2rem; }
  .tax-number span { margin-top: 31px; }
  .tax-credit .text-link { grid-column: 2; justify-self: start; }
  .service-card { grid-template-columns: 54px 1fr; }
  .service-card small { grid-column: 2; justify-self: start; text-align: left; }
  .signature-grid { grid-template-columns: 1fr; }
  .signature-image { width: min(650px, 90%); min-height: 700px; }
  .project-grid { gap: 18px; }
  .project-card { grid-column: span 6; }
  .project-card:nth-child(2) { margin-top: 0; }
  .project-card:nth-child(3) { grid-column: 4 / span 6; }
  .field-heading { grid-template-columns: 1fr 260px; gap: 38px; }
  .field-gallery { grid-template-rows: 190px 190px 220px; gap: 12px; }
  .news-grid { grid-template-columns: 1fr; }
  .area-grid, .footer-grid { grid-template-columns: 1fr; gap: 40px; }
  .project-story { grid-template-columns: 1fr; gap: 35px; }
  .project-story header { position: static; }
  .all-work-heading { grid-template-columns: 1fr; gap: 25px; }
  .all-photo-grid { columns: 3 200px; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 78px; }
  body { font-size: 15px; }
  .shell { width: min(100% - 28px, 1180px); }
  .practical-inner { justify-content: center; }
  .practical-inner span { display: none; }
  .header-inner { min-height: 76px; }
  .brand img { width: 52px; height: 52px; }
  .brand strong { font-size: 1.2rem; }
  .menu-toggle { width: 58px; height: 52px; display: grid; grid-template-columns: 1fr; align-content: center; justify-items: end; gap: 5px; padding: 4px; cursor: pointer; }
  .menu-toggle span { width: 28px; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
  .menu-toggle b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .menu-toggle[aria-expanded='true'] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded='true'] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded='true'] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .main-nav { position: absolute; z-index: 99; top: 100%; right: 0; left: 0; width: 100vw; height: calc(100vh - 76px); display: flex; visibility: hidden; flex-direction: column; align-items: stretch; gap: 0; padding: 30px 28px 100px; overflow-y: auto; opacity: 0; background: var(--paper); font-family: var(--serif); font-size: 2rem; pointer-events: none; transition: opacity .22s ease, visibility .22s ease; }
  .main-nav.open { visibility: visible; opacity: 1; pointer-events: auto; }
  .main-nav a { padding: 17px 0; border-bottom: 1px solid var(--line); }
  .main-nav .nav-cta { margin-top: 24px; padding: 14px 20px; border: 0; font-family: var(--sans); font-size: .94rem; text-align: center; }
  .hero { padding-top: 60px; }
  .hero-grid { gap: 60px; }
  h1 { font-size: clamp(3rem, 15vw, 4.8rem); }
  .hero-facts { gap: 26px; }
  .hero-facts div { flex: 1; }
  .hero-visual { width: 100%; }
  .hero-arch { aspect-ratio: 4 / 3; border-radius: 120px 120px 18px 18px; }
  .hero-seal { left: -20px; width: 112px; }
  .proof-grid { grid-template-columns: 1fr; }
  .proof-grid p { padding: 20px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .proof-grid p:last-child { border-right: 0; border-bottom: 0; }
  .split-heading, .row-heading { display: grid; gap: 20px; }
  .service-card { grid-template-columns: 38px 1fr; gap: 14px; padding: 24px 0; }
  .service-card:hover { padding-inline: 8px; }
  .tax-credit { padding: 50px 0; }
  .tax-credit-grid { grid-template-columns: 1fr; gap: 25px; }
  .tax-number { width: 118px; }
  .tax-number strong { font-size: 3.5rem; }
  .tax-number span { margin-top: 27px; font-size: 1.1rem; }
  .tax-copy h2 { font-size: 2.3rem; }
  .tax-credit .text-link { grid-column: auto; }
  .signature-image { width: calc(100% - 20px); min-height: 520px; }
  .signature-image::before { inset: -20px 30px 24px -18px; }
  .project-grid { display: grid; grid-template-columns: 1fr; }
  .project-card, .project-card:nth-child(3) { grid-column: auto; }
  .project-image { aspect-ratio: 1; }
  .field-heading { grid-template-columns: 1fr; gap: 30px; margin-bottom: 38px; }
  .field-note { width: min(280px,100%); padding: 24px; }
  .field-gallery { display: flex; gap: 14px; margin-right: -14px; padding-right: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
  .field-item, .field-item-1, .field-item-2, .field-item-3, .field-item-4, .field-item-5, .field-item-6, .field-item-7, .field-item-8 { flex: 0 0 82vw; grid-column: auto; grid-row: auto; aspect-ratio: 4 / 5; scroll-snap-align: start; }
  .field-footer { align-items: flex-start; flex-direction: column; }
  .news-card, .news-card.large { grid-template-columns: 1fr; gap: 22px; }
  .news-card .news-image { aspect-ratio: 1.3; }
  .area-mark { right: -30px; font-size: 15rem; }
  .footer-bottom { padding-bottom: 78px; }
  .footer-bottom, .footer-bottom nav { flex-direction: column; }
  .mobile-call { position: fixed; z-index: 90; right: 14px; bottom: 14px; left: 14px; min-height: 54px; display: flex; align-items: center; justify-content: center; background: var(--forest); color: white; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; box-shadow: 0 14px 34px rgba(15,48,32,.3); font-weight: 850; }
  .page-hero { padding-top: 70px; }
  .page-hero h1 { font-size: clamp(3.2rem, 15vw, 5.2rem); }
  .project-story { padding: 66px 0; }
  .comparison { min-height: 520px; }
  .comparison-before img { width: calc(100vw - 28px); }
  .all-photo-grid { columns: 2 145px; column-gap: 10px; }
  .all-photo-item { margin-bottom: 10px; }
  .article-page { padding-top: 70px; }
  .article-header .back-link { margin-bottom: 35px; }
  .article-body { font-size: 1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal-ready .reveal-item { opacity: 1; transform: none; }
}
