:root{--forest:#172b21;--forest-deep:#102218;--orange:#ff984f;--ink:#172b21;--muted:#566159;--paper:#fff;--soft:#f1f4f1;--line:#d9e0d9;--max:1240px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:24px}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #2673e6;outline-offset:6px}::selection{background:var(--orange);color:var(--forest)}.wrap{max-width:var(--max);margin-inline:auto;width:calc(100% - 112px)}.skip-link{position:absolute;z-index:20;top:-70px;left:20px;padding:14px;background:white}.skip-link:focus{top:10px}.site-header{display:flex;justify-content:space-between;align-items:center;gap:30px;min-height:106px;max-width:1440px;margin:auto;padding:24px 56px}.brand{display:flex;flex-direction:column;flex-shrink:0;font-weight:900;line-height:.97;letter-spacing:-.045em}.brand-top{font-size:1.65rem}.brand-bottom{font-size:1.06rem;letter-spacing:.006em;margin-top:5px}.brand-period{color:#a64e13}.site-header nav{display:flex;gap:38px;align-items:center;font-size:.94rem;font-weight:700}.site-header nav>a:not(.button){padding-block:12px}.site-header nav>a:not(.button):hover{text-decoration:underline;text-underline-offset:6px}.button{display:inline-flex;align-items:center;justify-content:center;gap:32px;min-height:56px;padding:17px 23px;background:var(--orange);color:var(--forest-deep);font-size:1rem;font-weight:700;line-height:1.25;transition:background .18s,transform .18s}.button:hover{background:#ffb079;transform:translateY(-2px)}.button>span{font-size:1.5rem;line-height:1}.button-small{min-height:48px;padding:12px 20px;gap:22px;font-size:.94rem}.hero{position:relative;background:var(--forest);color:white;isolation:isolate;min-height:690px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.hero-media,.hero-shade{position:absolute;inset:0;z-index:-1}.hero-media{background-position:center;background-size:cover}.hero-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%}.hero-shade{background:linear-gradient(90deg,rgba(5,23,13,.88) 0%,rgba(5,23,13,.77) 38%,rgba(5,23,13,.24) 100%)}.hero-content{padding-top:65px;padding-bottom:95px}.eyebrow{font-size:.875rem;letter-spacing:.12em;font-weight:700;line-height:1.5;margin:0 0 23px}.hero .eyebrow{display:flex;align-items:center;gap:12px}.small-rule{width:28px;height:2px;background:var(--orange)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(3.9rem,6.6vw,6.05rem);font-weight:800;letter-spacing:-.065em;line-height:1.01;margin-bottom:28px}h1 em{font-style:normal;color:var(--orange)}.hero-description{font-size:1.15rem;line-height:1.7;color:#f0f3ef;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:1rem;line-height:1.6;font-weight:700;padding-block:6px;border-bottom:1px solid currentColor}.text-link:hover{color:#a54b0c}.text-link.light:hover{color:var(--orange)}.hero-footer{position:absolute;bottom:27px;left:0;right:0;display:flex;justify-content:space-between;gap:20px;font-size:.75rem;font-weight:700;letter-spacing:.12em;color:#eef1ed}.service-strip{background:var(--forest);color:#e2eae3}.service-strip>.wrap{display:flex;justify-content:space-between;gap:25px;padding-block:24px;font-size:.83rem;letter-spacing:.055em;font-weight:700}.service-strip span{display:flex;align-items:center;gap:25px}.service-strip span:before{content:'+';font-size:1.3rem;font-weight:400;color:var(--orange)}.section-space{padding-block:96px}.section-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;align-items:end;margin-bottom:57px}h2{font-size:clamp(2.5rem,4.2vw,3.75rem);line-height:1.05;letter-spacing:-.05em;margin-bottom:0}.section-heading>p{max-width:450px;font-size:1.07rem;color:var(--muted);line-height:1.7;margin-bottom:4px}.services .eyebrow,.about .eyebrow{color:#667265}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}.service{padding-top:23px;border-top:1px solid #acb9ad;display:flex;flex-direction:column;align-items:flex-start}.service-number{font-size:.875rem;font-weight:700;color:#65735f;margin-bottom:31px}.service h3{font-size:1.4rem;letter-spacing:-.035em;line-height:1.2;min-height:2.4em;margin-bottom:15px}.service p{font-size:1rem;line-height:1.65;color:var(--muted);margin-bottom:28px}.service-tags{font-size:.75rem;font-weight:700;line-height:1.7;letter-spacing:.02em;margin-top:auto;color:#41503e}.about{background:var(--soft)}.about-grid{display:grid;grid-template-columns:1.07fr 1fr;gap:88px;align-items:center}.about-image-block{position:relative;min-width:0}.about-photo{display:block;width:100%;object-fit:cover;object-position:center 42%;height:auto;background:var(--forest);background-size:cover;background-position:center}.image-label{display:block;background:var(--forest);color:#f4f6f3;padding:17px 21px;font-size:.75rem;line-height:1.5;letter-spacing:.075em;font-weight:700}.about-copy h2{margin-bottom:28px}.about-copy>p:not(.eyebrow){color:var(--muted);font-size:1.0625rem;line-height:1.75;margin-bottom:19px}.location-note{display:flex;align-items:flex-start;gap:15px;padding-top:22px;margin-top:24px;border-top:1px solid #cfd9cf;line-height:1.7;font-size:.94rem;color:var(--muted)}.location-note strong{color:var(--ink);font-size:1rem}.location-icon{color:#9c4610;font-size:2rem;line-height:1}.about-copy>.text-link{margin-top:25px}.contact{background:var(--forest);color:white}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:110px;align-items:center}.contact .eyebrow{color:var(--orange)}.contact h2{font-size:clamp(3rem,5.2vw,4.6rem);margin-bottom:25px}.contact p:not(.eyebrow){font-size:1.0625rem;line-height:1.7;color:#d2dcd3;max-width:430px;margin-bottom:28px}.contact-details{min-width:0}.contact-item{padding-block:25px;border-bottom:1px solid #4c5c4e}.contact-label{display:block;font-size:.8125rem;letter-spacing:.1em;color:#c0cdc0;margin-bottom:12px;font-weight:700}.contact-email,.contact-phone,.contact-location{font-size:clamp(1.15rem,2.1vw,1.6rem);font-weight:500;line-height:1.4;letter-spacing:-.025em}.contact-email{display:flex;justify-content:space-between;gap:12px;overflow-wrap:anywhere}.contact-item a:hover,.facebook-link:hover{color:var(--orange)}.facebook-link{display:flex;justify-content:space-between;gap:16px;font-size:1rem;padding-block:26px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:26px;padding-block:36px}.site-footer .brand-top{font-size:1.3rem}.site-footer .brand-bottom{font-size:.84rem}.site-footer p,.site-footer>a:last-child{font-size:.875rem;color:var(--muted);margin:0}.site-footer>a:last-child:hover{text-decoration:underline}
@media(min-width:1600px){.hero-media{background-position:center 58%}.hero{min-height:740px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.site-header{padding-inline:32px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 36px}.service h3{min-height:0}.section-heading{gap:50px}.about-grid{gap:40px}.contact-grid{gap:50px}.service-strip>.wrap{gap:14px;font-size:.75rem}.service-strip span{gap:12px}}
@media(max-width:720px){.wrap{width:calc(100% - 40px)}.site-header{padding:19px 20px;min-height:88px;gap:15px}.brand-top{font-size:1.32rem}.brand-bottom{font-size:.85rem}.site-header nav{gap:0}.site-header nav>a:not(.button){display:none}.button-small{padding:12px 14px;gap:12px;font-size:.875rem;min-height:44px}.hero{min-height:640px}.hero-content{padding-top:58px;padding-bottom:96px}.hero-media{background-position:60% center}.hero-media img{object-position:58% center}.hero-shade{background:linear-gradient(90deg,rgba(5,23,13,.89),rgba(5,23,13,.4)),linear-gradient(0deg,rgba(5,23,13,.45),transparent 40%)}h1{font-size:clamp(3.05rem,10.5vw,4.65rem);line-height:1.06;letter-spacing:-.055em;margin-bottom:25px}.eyebrow{font-size:.8125rem;letter-spacing:.09em;margin-bottom:22px}.hero-description{font-size:1.0625rem;line-height:1.7;max-width:340px}.hero-description br{display:none}.hero-actions{gap:18px;align-items:flex-start;flex-direction:column}.hero-actions .text-link{font-size:.94rem}.hero-footer{bottom:25px;font-size:.75rem}.hero-footer span:last-child{display:none}.service-strip>.wrap{display:grid;grid-template-columns:1fr;gap:9px;padding-block:22px;font-size:.8125rem}.service-strip span{gap:14px}.service-strip span:before{line-height:1}.section-space{padding-block:64px}.section-heading{grid-template-columns:1fr;gap:26px;margin-bottom:36px}h2{font-size:2.8rem}.section-heading>p{font-size:1rem}.service-grid{gap:35px 25px}.service-number{margin-bottom:23px}.service h3{font-size:1.25rem}.service p{font-size:1rem;line-height:1.6}.service-tags{font-size:.75rem}.about-grid{grid-template-columns:1fr;gap:37px}.image-label{padding:15px 17px;letter-spacing:.035em}.about-copy>p:not(.eyebrow){font-size:1rem}.contact-grid{grid-template-columns:1fr;gap:26px}.contact h2{font-size:3.5rem}.contact p:not(.eyebrow){font-size:1rem}.contact-email,.contact-phone,.contact-location{font-size:1.4rem}.site-footer{flex-wrap:wrap;gap:25px 20px;padding-block:30px}.site-footer p{order:3;flex-basis:100%;font-size:.8125rem}.site-footer>a:last-child{font-size:.875rem}.contact-label{font-size:.8125rem}}
@media(max-width:380px){.site-header{padding-inline:16px}.wrap{width:calc(100% - 32px)}.brand-top{font-size:1.15rem}.brand-bottom{font-size:.74rem}.button-small{gap:8px;font-size:.8125rem}.service-grid{grid-template-columns:1fr}.hero .eyebrow{font-size:.75rem;gap:8px}.hero-description{font-size:1rem}.small-rule{width:18px}.contact-email{font-size:1.15rem}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}

/* Owner-supplied project gallery. Black screenshot borders are hidden by layout only. */
.work .eyebrow{color:#667265}
.work-gallery{columns:3;column-gap:28px}
.work-card{margin:0 0 30px;break-inside:avoid;page-break-inside:avoid;display:inline-block;width:100%;vertical-align:top}
.work-photo{display:block;outline-offset:5px}
.work-frame{display:block;position:relative;aspect-ratio:var(--photo-ratio);overflow:hidden;background:var(--soft)}
.work-frame img{position:absolute;display:block;top:0;left:0;width:100%;height:auto;transform:translateY(var(--photo-offset));transition:filter .18s}
.work-photo:hover img{filter:brightness(1.06)}
.work-card figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:15px;font-size:1rem;font-weight:700;line-height:1.5;padding:16px 0 8px;border-bottom:1px solid var(--line)}
.work-card figcaption>span{font-size:1.25rem;font-weight:400;color:var(--muted)}
@media(max-width:1050px){.work-gallery{columns:2;column-gap:24px}.site-header nav{gap:24px}}
@media(max-width:720px){.work-gallery{columns:1}.work-card{margin-bottom:28px}.work-card figcaption{padding-top:13px}.site-header nav{gap:0}}
@media(prefers-reduced-motion:reduce){.work-frame img{transition:none}}

.project-readiness{margin-top:60px;border-top:1px solid #c8d3c8;padding-top:36px;display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:start}
.readiness-heading .eyebrow{margin-bottom:15px}
.readiness-heading h3{font-size:clamp(1.65rem,2.5vw,2.2rem);line-height:1.15;letter-spacing:-.04em;margin:0;max-width:370px}
.readiness-list{display:grid;grid-template-columns:1fr 1.3fr;gap:20px 24px;list-style:none;padding:0;margin:0}
.readiness-list li{display:flex;align-items:baseline;gap:12px;font-size:1rem;font-weight:700;line-height:1.6}
.readiness-list li:before{content:'✓';color:#476245;flex-shrink:0}
@media(max-width:1050px){.project-readiness{grid-template-columns:1fr;gap:28px}.readiness-heading h3{max-width:none}}
@media(max-width:720px){.project-readiness{margin-top:38px;padding-top:28px}.readiness-list{grid-template-columns:1fr;gap:14px}}

/* All photography is in the bottom gallery. */
.hero{min-height:570px;background:var(--forest-deep)}
.hero-description{max-width:730px}
.hero-actions{gap:18px 24px}
.hero-contact{flex-basis:100%;width:100%;max-width:650px;margin:0;font-size:1rem;line-height:1.7;color:inherit}
.hero-contact a{font-weight:700;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.hero-contact a:hover{text-decoration-thickness:2px}
.hero-contact a[href^="tel:"]{display:inline-block;white-space:nowrap;overflow-wrap:normal}
.hero .hero-brand{justify-content:center;text-align:center}
.hero-brand>span:not(.small-rule){min-width:0}
.button-outline{background:transparent;color:white;border:1px solid #90a18f}
.button-outline:hover{background:#263e2e;color:white}
.about-grid{grid-template-columns:1fr 1.2fr;gap:60px;align-items:start}
.about-heading h2{margin:0}
.about-copy>p:first-child{margin-top:0}
.desktop-quote{max-width:var(--max);width:calc(100% - 112px);margin:56px auto 0;padding-top:36px;border-top:1px solid #4c5c4e;scroll-margin-top:28px}
.desktop-quote h3{font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.15;letter-spacing:-.035em;margin-bottom:18px}
.contact .desktop-quote p{max-width:720px;margin-bottom:18px}
.contact .desktop-quote .quote-hint{font-size:.875rem;color:#c0cdc0;margin:15px 0 0}
.contact .contact-intro .quote-hint{font-size:.875rem;color:#c0cdc0;margin:15px 0 0}
.contact-intro>.button{max-width:100%;text-align:left}
.desktop-quote .button{white-space:normal;text-align:left}
@media(max-width:1050px){.desktop-quote{width:calc(100% - 64px)}.about-grid{gap:40px}}
@media(max-width:720px){.hero{min-height:600px}.about-grid{grid-template-columns:1fr;gap:28px}.desktop-quote{width:calc(100% - 40px);margin-top:38px;padding-top:28px}.desktop-quote .button{max-width:100%;gap:18px}}
@media(max-width:380px){.desktop-quote{width:calc(100% - 32px)}}

.brand-logo{letter-spacing:normal;line-height:1}.brand-logo img{display:block;width:clamp(190px,25vw,320px);height:auto;max-width:100%}.site-header{padding-block:16px}.site-footer .brand-logo img{width:240px}.site-footer{flex-wrap:wrap}@media(max-width:720px){.site-header{gap:12px}.brand-logo img{width:195px}.site-header .button-small{padding-inline:12px}.site-footer .brand-logo img{width:220px}}@media(max-width:380px){.brand-logo img{width:170px}}

/* The selected original layout keeps all three section links visible on phones. */
html:not([data-design]) .site-header nav{gap:8px}
html:not([data-design]) .site-header nav>a:not(.button){display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border:1px solid var(--line);font-size:.875rem;line-height:1.4;text-align:center}
html:not([data-design]) .site-header nav>a:not(.button):hover{background:var(--soft);border-color:var(--forest);text-decoration:none}
html:not([data-design]) .home-header .brand-logo img{width:clamp(320px,36vw,460px)}
html:not([data-design]) .about>.project-readiness{margin-top:0;border-top:0;padding-top:0}
html:not([data-design]) .about>.project-readiness+.about-grid{margin-top:60px;border-top:1px solid #c8d3c8;padding-top:36px}
.small-rule{flex:none}
@media(max-width:900px){
 html:not([data-design]) .site-header{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px 8px;padding:16px 20px}
 html:not([data-design]) .site-header .brand-logo{grid-column:1/4;grid-row:1;min-width:0}
 html:not([data-design]) .site-header .brand-logo img{width:195px;max-width:100%}
 html:not([data-design]) .site-header nav{display:contents}
 html:not([data-design]) .site-header nav>a:not(.button){grid-column:span 2;grid-row:2;padding:10px 4px}
 html:not([data-design]) .site-header nav>.button{grid-column:4/7;grid-row:1;justify-self:end;padding-inline:12px;gap:10px;font-size:.875rem;max-width:100%;flex-wrap:wrap;text-align:center}
 html:not([data-design]) .home-header .brand-logo{grid-column:1/-1;justify-self:center;align-items:center;width:100%;max-width:420px}
 html:not([data-design]) .home-header .brand-logo img{width:420px;max-width:100%}
}
@media(max-width:720px){html:not([data-design]) .about>.project-readiness+.about-grid{margin-top:38px;padding-top:28px}}

/* Six specialties stay readable across screen sizes. */
.service-strip>.wrap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 25px}
.service-strip span{min-width:0;line-height:1.5}
.service-strip span:before{flex-shrink:0}
@media(max-width:1050px){.service-strip>.wrap{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
 .service-strip>.wrap{grid-template-columns:1fr;gap:9px}
 html:not([data-design]) .hero-footer{display:none}
 html:not([data-design]) .hero-content{padding-bottom:58px}
}

/* Approved full-width logo: preserve its proportions and put navigation below. */
html:not([data-design]) .site-header.brand-banner{display:flex;flex-direction:column;gap:0;width:100%;max-width:none;padding:0}
html:not([data-design]) .site-header.brand-banner .brand-logo{width:100%;max-width:none;min-width:0;align-items:stretch}
html:not([data-design]) .site-header.brand-banner .brand-logo img{width:100%;max-width:100%;height:auto}
html:not([data-design]) .site-header.brand-banner nav{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;width:calc(100% - 40px);max-width:1240px;margin:0 auto;padding:0 0 20px}
html:not([data-design]) .site-header.brand-banner nav>a:not(.button){flex:1;min-width:0;padding:12px 8px}
html:not([data-design]) .site-header.brand-banner nav>.button{flex:none;min-width:144px}
@media(max-width:720px){
 html:not([data-design]) .site-header.brand-banner nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:16px}
 html:not([data-design]) .site-header.brand-banner nav>a:not(.button){grid-column:auto;grid-row:auto}
 html:not([data-design]) .site-header.brand-banner nav>.button{grid-column:1/-1;grid-row:auto;justify-self:stretch}
}
