:root{--color-forest:#072A16;--color-green:#2D6B22;--color-lime:#8AB446;--color-sage:#ACC864;--color-light:#D3E29D;--color-white:#ffffff;--color-bg:#fafafa;--color-text:#1a1a1a;--color-text-light:#555555;--color-border:#e0e0e0;--font-body:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;--font-size-base:1.0625rem;--line-height:1.7;--container-max:1140px;--container-narrow:780px;--section-padding:5rem 0;--section-padding-sm:3.5rem 0;--radius:4px;--shadow-card:0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);--shadow-card-hover:0 4px 12px rgba(0,0,0,0.1);--transition:0.2s ease}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height);color:var(--color-text);background-color:var(--color-white)}img{max-width:100%;height:auto;display:block}a{color:var(--color-green);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-forest)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;color:var(--color-forest)}h1{font-size:2.75rem;margin-bottom:1rem}h2{font-size:2rem;margin-bottom:.75rem}h3{font-size:1.375rem;margin-bottom:.5rem}h4{font-size:1.125rem;margin-bottom:.5rem}p{margin-bottom:1.25rem}p:last-child{margin-bottom:0}.lead{font-size:1.25rem;line-height:1.6;color:var(--color-text-light)}.container{max-width:var(--container-max);margin:0 auto;padding:0 1.5rem}.container--narrow{max-width:var(--container-narrow)}.section{padding:var(--section-padding)}.section--bg{background-color:var(--color-bg)}.section--light{background-color:#f0f4e8}.section__header{text-align:center;margin-bottom:3rem}.section__header p{max-width:640px;margin-left:auto;margin-right:auto;color:var(--color-text-light)}.grid{display:grid;gap:2rem}.grid--2{grid-template-columns:1fr}.grid--3{grid-template-columns:1fr}@media(min-width:768px){.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid--3{grid-template-columns:repeat(3,1fr)}}.nav{position:fixed;top:0;left:0;right:0;z-index:100;background-color:initial;transition:background-color .3s ease,box-shadow .3s ease}.nav--scrolled{background-color:var(--color-white);box-shadow:0 1px 4px rgba(0,0,0,8%)}.nav__inner{max-width:var(--container-max);margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:72px}.nav__logo img{height:68px;width:auto}.nav__links{display:none;list-style:none;gap:2rem}.nav__links a{font-size:.9375rem;font-weight:500;color:var(--color-white);text-decoration:none;transition:color var(--transition);position:relative}.nav--scrolled .nav__links a{color:var(--color-text)}.nav__links a:hover,.nav__links a.active{color:var(--color-lime)}.nav--scrolled .nav__links a:hover,.nav--scrolled .nav__links a.active{color:var(--color-green)}.nav__links a.active::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:2px;background-color:var(--color-lime)}.nav--scrolled .nav__links a.active::after{background-color:var(--color-green)}.nav__toggle{display:flex;flex-direction:column;gap:5px;background:0 0;border:none;cursor:pointer;padding:4px}.nav__toggle span{display:block;width:24px;height:2px;background-color:var(--color-white);transition:background-color var(--transition)}.nav--scrolled .nav__toggle span{background-color:var(--color-forest)}.nav__links--open{display:flex;flex-direction:column;position:absolute;top:72px;left:0;right:0;background-color:var(--color-white);padding:1.5rem;gap:1rem;box-shadow:0 4px 12px rgba(0,0,0,.1)}.nav__links--open a{color:var(--color-text)!important;font-size:1rem}.nav__links--open a:hover,.nav__links--open a.active{color:var(--color-green)!important}@media(min-width:768px){.nav__links{display:flex}.nav__toggle{display:none}}.hero{position:relative;display:flex;align-items:center;min-height:500px;background-size:cover;background-position:50%;background-repeat:no-repeat;color:var(--color-white)}.hero--home{min-height:90vh;max-height:900px}.hero--tall{min-height:600px}.hero__overlay{position:absolute;inset:0;background-color:rgba(7,42,22,.55)}.hero--50 .hero__overlay{background-color:rgba(7,42,22,.5)}.hero--45 .hero__overlay{background-color:rgba(7,42,22,.45)}.hero__content{position:relative;z-index:1;max-width:var(--container-max);margin:0 auto;padding:6rem 1.5rem 4rem;width:100%}.hero__title{font-size:2.5rem;font-weight:700;color:var(--color-white);margin-bottom:1rem;max-width:700px}.hero__subtitle{font-size:1.1875rem;font-weight:400;line-height:1.6;color:rgba(255,255,255,.9);max-width:600px;margin-bottom:2rem}@media(min-width:768px){.hero__title{font-size:3.25rem}.hero__subtitle{font-size:1.3125rem}}.btn{display:inline-block;padding:.75rem 1.75rem;font-size:.9375rem;font-weight:500;font-family:var(--font-body);border-radius:var(--radius);border:2px solid transparent;cursor:pointer;transition:all var(--transition);text-decoration:none}.btn--primary{background-color:var(--color-green);color:var(--color-white);border-color:var(--color-green)}.btn--primary:hover{background-color:var(--color-forest);border-color:var(--color-forest);color:var(--color-white)}.btn--outline{background-color:initial;color:var(--color-white);border-color:var(--color-white)}.btn--outline:hover{background-color:var(--color-white);color:var(--color-forest)}.btn--outline-dark{background-color:initial;color:var(--color-green);border-color:var(--color-green)}.btn--outline-dark:hover{background-color:var(--color-green);color:var(--color-white)}.card{background-color:var(--color-white);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-card);transition:box-shadow var(--transition),transform var(--transition)}.card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card__icon{font-size:1.75rem;margin-bottom:1rem}.card__title{font-size:1.125rem;font-weight:600;color:var(--color-forest);margin-bottom:.5rem}.card__text{font-size:.9375rem;color:var(--color-text-light);line-height:1.6}.card__link{display:inline-block;margin-top:1rem;font-size:.875rem;font-weight:500;color:var(--color-green)}.card__link:hover{color:var(--color-forest)}.project-card{display:block;text-decoration:none;background-color:var(--color-white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);transition:box-shadow var(--transition),transform var(--transition)}.project-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px);color:inherit}.project-card__image{height:200px;background-color:var(--color-forest);background-size:cover;background-position:50%;position:relative}.project-card__image::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,rgba(7,42,22,.4))}.project-card__body{padding:1.5rem}.project-card__client{font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--color-lime);margin-bottom:.375rem}.project-card__title{font-size:1.125rem;font-weight:600;color:var(--color-forest);margin-bottom:.5rem}.project-card__summary{font-size:.9375rem;color:var(--color-text-light);line-height:1.5}.project-card__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tag{display:inline-block;padding:.2rem .6rem;font-size:.75rem;font-weight:500;background-color:#f0f4e8;color:var(--color-green);border-radius:3px}.credibility{padding:3.5rem 0;background-color:var(--color-white);border-bottom:1px solid var(--color-border)}.credibility__grid{display:grid;grid-template-columns:1fr;gap:1.5rem;text-align:center}.credibility__item{padding:1rem}.credibility__number{font-size:1.75rem;font-weight:700;color:var(--color-green);margin-bottom:.25rem}.credibility__label{font-size:.9375rem;color:var(--color-text-light);line-height:1.4}@media(min-width:768px){.credibility__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.credibility__grid{grid-template-columns:repeat(4,1fr)}}.cta{padding:var(--section-padding);background-color:var(--color-forest);color:var(--color-white);text-align:center}.cta h2{color:var(--color-white);margin-bottom:1rem}.cta p{color:rgba(255,255,255,.85);max-width:600px;margin-left:auto;margin-right:auto;margin-bottom:2rem}.project-meta{display:grid;grid-template-columns:1fr;gap:1rem;padding:2rem;background-color:var(--color-bg);border-radius:var(--radius);margin-bottom:2.5rem}.project-meta dt{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-green)}.project-meta dd{font-size:.9375rem;color:var(--color-text);margin-bottom:1rem}.project-meta dd:last-child{margin-bottom:0}@media(min-width:768px){.project-meta{grid-template-columns:repeat(2,1fr)}}.project-content h2{margin-top:2.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-light)}.project-content h3{margin-top:2rem}.project-content ul,.project-content ol{margin-bottom:1.25rem;padding-left:1.5rem}.project-content li{margin-bottom:.375rem}.about-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:start}@media(min-width:768px){.about-grid{grid-template-columns:1fr 300px}}.about-portrait{width:100%;max-width:300px;aspect-ratio:3/4;border-radius:var(--radius);overflow:hidden;background-color:var(--color-forest);display:flex;align-items:center;justify-content:center}.about-portrait img{width:100%;height:100%;object-fit:cover}.about-portrait__placeholder{font-size:4rem;font-weight:700;color:var(--color-sage);letter-spacing:.05em}.contact-grid{display:grid;grid-template-columns:1fr;gap:3rem}@media(min-width:768px){.contact-grid{grid-template-columns:1fr 1fr}}.contact-info h3{margin-bottom:1.5rem}.contact-info__item{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem}.contact-info__icon{flex-shrink:0;width:20px;color:var(--color-green);font-weight:600}.contact-form label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.375rem;color:var(--color-text)}.contact-form input,.contact-form textarea{width:100%;padding:.75rem 1rem;font-family:var(--font-body);font-size:.9375rem;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.25rem;transition:border-color var(--transition);background-color:var(--color-white)}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--color-green)}.contact-form textarea{min-height:150px;resize:vertical}.pub-list{list-style:none}.pub-item{padding:1.5rem 0;border-bottom:1px solid var(--color-border)}.pub-item:first-child{padding-top:0}.pub-item__type{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-lime);margin-bottom:.25rem}.pub-item__title{font-size:1.0625rem;font-weight:600;color:var(--color-forest);margin-bottom:.25rem}.pub-item__title a{color:inherit}.pub-item__title a:hover{color:var(--color-green)}.pub-item__meta{font-size:.875rem;color:var(--color-text-light)}.footer{background-color:var(--color-forest);color:rgba(255,255,255,.7);padding:3rem 0 2rem}.footer__inner{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width:768px){.footer__inner{grid-template-columns:2fr 1fr 1fr}}.footer__brand img{height:32px;width:auto;margin-bottom:1rem}.footer__brand p{font-size:.875rem;line-height:1.6;max-width:320px}.footer h4{color:var(--color-white);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.footer__links{list-style:none}.footer__links li{margin-bottom:.5rem}.footer__links a{color:rgba(255,255,255,.7);font-size:.875rem}.footer__links a:hover{color:var(--color-lime)}.footer__bottom{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);font-size:.8125rem;text-align:center}.expertise-detail{padding:2.5rem 0;border-bottom:1px solid var(--color-border)}.expertise-detail:last-child{border-bottom:none}.expertise-detail__icon{font-size:1.5rem;margin-bottom:.75rem}.expertise-detail h3{color:var(--color-forest);margin-bottom:.75rem}.expertise-detail p{color:var(--color-text-light);max-width:720px}.expertise-detail ul{margin-top:1rem;padding-left:1.25rem;color:var(--color-text-light)}.expertise-detail li{margin-bottom:.375rem}.text-center{text-align:center}.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.mb-3{margin-bottom:3rem}.page-content{padding:var(--section-padding)}.page-content h2{margin-top:2rem}.page-content ul,.page-content ol{margin-bottom:1.25rem;padding-left:1.5rem}.page-content li{margin-bottom:.375rem}