:root{--paper:#f3f1eb;--ink:#283943;--navy:#364f6b;--copper:#b57e60}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Space Grotesk',Arial,sans-serif;font-weight:400}em{font-family:Georgia,serif;font-weight:normal}a:focus-visible,button:focus-visible{outline:3px solid var(--copper);outline-offset:6px}.skip{position:fixed;top:-80px;background:white;padding:15px;z-index:10}.skip:focus{top:0}header{background:var(--navy);display:flex;align-items:center;justify-content:space-between;padding:6px 5%;gap:30px}.logo img{width:170px;height:110px;object-fit:contain;display:block}header nav{display:flex;gap:40px;color:#f5efea;}header nav a:last-child{border-bottom:1px solid #c39173;padding-bottom:10px}.hero{height:calc(100svh - 122px);min-height:650px;max-height:1000px;position:relative;color:white;padding:35px 5% 25px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.hero>img,.shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.shade{background:linear-gradient(90deg,#10202bbd,transparent),linear-gradient(0deg,#10202b85,transparent 60%)}.hero-top,.hero-copy,.hero-bottom{position:relative;z-index:1}.hero-top,.hero-bottom{display:flex;justify-content:space-between;gap:20px}.hero-top{padding-top:20px;border-top:1px solid #ffffff70}.hero-copy{display:flex;justify-content:space-between;align-items:end;padding:40px 0;gap:30px}h1{}h1 em{}.hero-side{width:245px;margin-right:4%;padding-bottom:8px}.hero-side p{}.hero-side a{display:flex;justify-content:space-between;padding:25px 0 12px;border-bottom:1px solid #ffffff90}.hero-bottom{padding-top:23px;border-top:1px solid #ffffff70}.intro,.leadership{padding:100px 6%;display:grid;grid-template-columns:1fr 2.5fr;gap:6%}.eyebrow{}h2{}.intro h2 em,.leadership h2 em{color:#7d817a}.intro-text{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:35px}p{}.service-heading{padding:25px 6% 60px}.service-heading h2{margin-top:25px}.service-nav{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #c8cdc5;margin-top:40px;padding-top:20px;}.story-image{height:78svh;min-height:500px;max-height:850px;position:relative;overflow:hidden}.story-image>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.story-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#132434c7,transparent 80%),linear-gradient(90deg,#13243455,transparent)}.story-overlay{position:absolute;bottom:100px;left:6%;right:6%;z-index:1;color:white}.story-overlay .eyebrow{display:block;margin-bottom:25px}.story-overlay h2{}.photo-caption{position:absolute;bottom:30px;left:6%;right:6%;z-index:1;color:white;border-top:1px solid #ffffff60;padding-top:18px}.story-text{padding:55px 6% 80px;display:grid;grid-template-columns:1fr 1.2fr;gap:12%}.story-text h3{}.story-text p{max-width:620px}.scope{color:#73796f;margin-top:20px}.story-text a{display:inline-block;border-bottom:1px solid var(--copper);padding-bottom:9px;margin-top:25px}#owners .story-image>img{object-position:75% 40%}#bim .story-image>img{object-position:50% 50%}.statement{background:var(--navy);color:white;padding:85px 8%}.statement>.eyebrow{color:#e3b79c}.statement h2{margin-top:45px;}.statement h2 em{color:#dbb091}.statement p{max-width:480px;margin:35px 0 55px;color:#dde2e6}.lifecycle{display:flex;justify-content:space-between;border-top:1px solid #ffffff50;padding-top:20px}.leadership-text{display:grid;grid-template-columns:1fr 1.6fr;gap:35px;margin-top:40px}.leadership-text h3{margin-bottom:10px}.leadership-text .eyebrow{}.contact{background:#e5ded4;padding:85px 6%;display:grid;grid-template-columns:1.1fr 1fr;gap:14%}.contact h2{margin:30px 0}.contact>div>p{max-width:360px;margin-bottom:30px}.contact>div>a{display:block;margin-top:15px}.contact>div>a+a{}label{display:block;margin-bottom:25px}input,select,textarea{display:block;width:100%;padding:12px 0;border:0;border-bottom:1px solid #96988e;background:transparent;border-radius:0;color:var(--ink);outline-offset:5px}textarea{resize:vertical}button{display:flex;justify-content:space-between;background:var(--navy);color:white;padding:20px;width:100%;border:0;cursor:pointer}button:hover{background:#25384b}.form-note,#status{margin-top:15px}footer{background:var(--navy);color:#f4ede8;display:flex;justify-content:space-between;align-items:center;padding:30px 6%;gap:40px}footer>img{width:200px;height:135px;object-fit:contain}footer>div{max-width:480px}footer p{}footer small{display:block;color:#c6d0d9;margin-top:15px}footer>a{white-space:nowrap}@media(max-width:800px){header{padding:6px 5%}.logo img{width:130px;height:86px}header nav{gap:20px;}header nav a:first-child{display:none}.hero{height:calc(100svh - 98px);min-height:680px;padding:25px 6%}.hero-top{}.hero-top>span:last-child{display:none}.hero-copy{display:block}h1{}h1 em{}.hero-side{width:100%;margin-top:35px;display:flex;justify-content:space-between;align-items:end;gap:30px}.hero-side p{}.hero-side a{min-width:170px;}.hero-bottom{}.hero-bottom>span{max-width:140px}.intro,.leadership{grid-template-columns:1fr;gap:30px;padding:65px 6%}.intro-text{gap:25px}.service-nav{display:grid;grid-template-columns:1fr 1fr}.service-heading{padding-top:0}.story-image{height:65svh;min-height:450px}.story-overlay{bottom:100px}.story-overlay h2{}.story-text{grid-template-columns:1fr;gap:25px;padding:40px 6% 60px}.story-text h3{}.photo-caption{}.statement{padding:60px 6%}.leadership-text{grid-template-columns:1fr;gap:25px}.contact{grid-template-columns:1fr;gap:50px;padding:65px 6%}footer{flex-wrap:wrap;gap:25px}footer>img{width:160px;height:110px}footer>div{max-width:100%}}@media(max-width:450px){header nav{gap:15px;}.hero-side{display:block}.hero-side a{max-width:210px;margin-top:5px}.hero{min-height:760px}.intro-text{grid-template-columns:1fr;gap:20px}.story-overlay h2{}.story-image{min-height:470px}.hero-top{}.service-nav{}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Readable brand labels over the opening photograph. */
.hero-top{border-top:0;padding-top:0;align-items:flex-start;}
.hero-top>span{display:block;background:rgba(54,79,107,.50);color:#fff7ef;padding:15px 21px;border-left:2px solid #ce9b7b;max-width:70%;box-shadow:0 4px 20px rgba(13,25,38,.12)}
@media(max-width:800px){.hero-top{flex-direction:column;gap:10px;}.hero-top>span,.hero-top>span:last-child{display:block;max-width:100%;padding:12px 15px}.hero-top>span:last-child{}.hero-copy{padding-top:25px}.hero{min-height:760px}}
@media(max-width:450px){.hero-top{}.hero-top>span:last-child{}.hero{min-height:820px}}
/* Larger opening invitation with a half-opaque brand background. */
.hero-side{width:355px;padding:25px 28px;background:rgba(54,79,107,.50);border-left:2px solid #ce9b7b}
.hero-side p{}
.hero-side a{padding:24px 0 12px}
@media(max-width:800px){.hero-side{width:100%;display:block;max-width:390px;padding:20px 24px;margin-top:30px}.hero-side p{}.hero-side a{max-width:100%;padding-top:18px}.hero{min-height:860px}}
@media(max-width:450px){.hero-side{padding:18px 20px;margin-top:25px}.hero-side p{}.hero-side a{}.hero{min-height:900px}}
/* Larger opening tagline and discovery link. */
.hero-bottom{align-items:center}
.hero-bottom a{}
@media(max-width:800px){.hero-bottom{gap:22px}.hero-bottom>span{max-width:260px}.hero-bottom a{}}
@media(max-width:450px){.hero-bottom{align-items:flex-start;flex-direction:column;gap:12px;}.hero-bottom>span{max-width:100%}.hero-bottom a{}.hero{min-height:940px}}
/* Match the opening invitation to the owner's representation label. */
.hero-side p,.hero-side a{}
@media(max-width:800px){.hero-side p,.hero-side a{}}
@media(max-width:450px){.hero-side p,.hero-side a{}}
/* Reduce the bottom tagline and discovery link by one quarter. */
.hero-bottom{}
.hero-bottom a{}
@media(max-width:800px){.hero-bottom{}.hero-bottom a{}}
@media(max-width:450px){.hero-bottom{}.hero-bottom a{}}
/* Editorial refinement: light typography, richer tones and quieter spacing. */
:root{--paper:#f5f1e9;--ink:#263845;--copper:#bd8a69}
body{font-weight:400}
h1,h2,h3{font-family:Poppins,Arial,sans-serif;font-weight:300;text-wrap:balance}
em{font-family:inherit;font-weight:300;font-style:normal}
header{padding-top:10px;padding-bottom:10px}
header nav{}
header nav a{transition:color .25s ease}
header nav a:hover{color:#e3b698}
.hero{max-height:1100px}
h1{}
h1 em{}
.hero-side p,.hero-side a{font-family:Poppins,Arial,sans-serif;font-weight:400}
.hero-side{padding:28px 30px}
h2{}
.intro,.leadership{padding-top:125px;padding-bottom:125px}
.intro-text{margin-top:45px;gap:50px}
.intro-text p,.story-text p,.leadership-text p{}
.intro h2 em,.leadership h2 em{color:#8c8175}
.eyebrow{}
.service-heading{padding-bottom:75px}
.service-heading h2{margin-top:32px}
.service-nav{padding-top:25px;margin-top:45px;}
.service-nav a{transition:color .25s ease}
.service-nav a:hover{color:#996b4e}
.story-image{height:82svh;max-height:950px}
.story-image:after{background:linear-gradient(0deg,rgba(16,31,44,.83),rgba(16,31,44,.04) 85%),linear-gradient(90deg,rgba(16,31,44,.20),transparent)}
.story-image>img{transition:transform 1.1s ease}
@media(hover:hover){.story-image:hover>img{transform:scale(1.015)}}
.story-overlay{bottom:110px}
.story-overlay h2{}
.story-overlay .eyebrow{margin-bottom:32px;color:#f0d2bc}
.story-text{padding-top:65px;padding-bottom:95px}
.story-text h3{}
.story-text a,.hero-side a{transition:border-color .25s ease,color .25s ease}
.story-text a:hover{color:#95684d;border-color:#95684d}
.scope{margin-top:25px;}
.statement{background:radial-gradient(ellipse at 95% 0%,#364f6b 0%,transparent 60%),#364f6b;padding-top:110px;padding-bottom:100px}
.statement h2{}
.statement h2 em{color:#dfb697}
.statement p{margin-top:45px;margin-bottom:65px}
.contact{background:#e8e0d5;padding-top:100px;padding-bottom:100px}
.contact h2{}
.contact button{transition:background .25s ease}
@media(min-width:1100px){
 #management,#assets{display:grid;grid-template-columns:58% 42%;background:#364f6b;color:#f5f1e9}
 #management .story-image,#assets .story-image{height:850px;min-height:740px;max-height:none}
 #management .story-overlay,#assets .story-overlay{left:8%;right:8%;bottom:110px}
 #management .story-overlay h2,#assets .story-overlay h2{}
 #management .photo-caption,#assets .photo-caption{left:8%;right:8%}
 #management .story-text,#assets .story-text{display:flex;flex-direction:column;justify-content:center;gap:40px;padding:65px 13%}
 #management .story-text h3,#assets .story-text h3{}
 #management .story-text p,#assets .story-text p{color:#e1e5e7}
 #management .scope,#assets .scope{color:#c3cbd0}
 #management .story-text a,#assets .story-text a{color:#ecc5a8}
 #assets{grid-template-columns:42% 58%}
 #assets .story-image{grid-column:2;grid-row:1}
 #assets .story-text{grid-column:1;grid-row:1}
}
@media(max-width:800px){
 h1{}
 .intro,.leadership{padding-top:75px;padding-bottom:75px}
 .intro-text{gap:25px;margin-top:30px}
 .story-image{height:68svh;min-height:490px}
 .story-overlay h2{}
 .story-text{padding-top:45px;padding-bottom:65px}
 .story-text h3{}
 .statement{padding-top:75px;padding-bottom:65px}
 .contact{padding-top:75px;padding-bottom:75px}
}
@media(max-width:450px){h1{}.story-overlay h2{}.hero-side{padding:18px 20px}.intro-text{gap:20px}.story-image{min-height:480px}.story-overlay{bottom:105px}.contact h2{}}
@media(prefers-reduced-motion:reduce){.story-image>img,header nav a,.service-nav a,.story-text a,.hero-side a,.contact button{transition:none}.story-image:hover>img{transform:none}}
/* Slow photographic movement on alternating architectural scenes. */
.motion-photo{animation:architectural-drift 24s ease-in-out infinite alternate;animation-play-state:paused;transform-origin:center}
.motion-photo.motion-visible{animation-play-state:running}
.motion-paused .motion-photo{animation-play-state:paused}
.story-image:hover>img.motion-photo{transform:none}
@keyframes architectural-drift{from{transform:scale(1.025) translate(-.4%,0)}to{transform:scale(1.085) translate(.4%,-.4%)}}
.motion-toggle{width:auto;display:inline-block;background:rgba(54,79,107,.5);color:white;border:1px solid #ffffff60;padding:8px 11px;white-space:nowrap}
.motion-toggle:hover{background:rgba(54,79,107,.8)}
#owners .story-image>img{object-position:60% 55%}
@media(max-width:800px){.hero-bottom{flex-wrap:wrap;gap:14px}.motion-toggle{}}
@media(prefers-reduced-motion:reduce){.motion-photo,.motion-photo.motion-visible{animation:none;transform:none}.motion-toggle{display:none}}
/* Feather the logo background into the surrounding slate. */
.logo img,footer>img{
 mix-blend-mode:lighten;
 -webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent);
 mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent);
 -webkit-mask-composite:source-in;
 mask-composite:intersect;
}
/* Broader, faster movement with immediate linear progression. */
.motion-photo{animation-name:architectural-drift-visible;animation-duration:14s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:alternate}
@keyframes architectural-drift-visible{from{transform:scale(1.055) translate(-1%,0)}to{transform:scale(1.27) translate(1.6%,-1.2%)}}
#owners .story-image>img{object-position:50% 48%}
@media(prefers-reduced-motion:reduce){.motion-photo,.motion-photo.motion-visible{animation:none;transform:none}}
/* Keep the progress review and schedule in view. */
#owners .story-image>img{object-position:62% 38%}
@media(max-width:800px){#owners .story-image>img{object-position:65% 35%}}
/* Keep faces bright while retaining contrast under the headline. */
#owners .story-image:after{background:linear-gradient(0deg,rgba(16,31,44,.82) 0%,rgba(16,31,44,.38) 24%,transparent 58%)}
#owners .story-image>img{object-position:50% 35%}
@media(max-width:800px){#owners .story-image>img{object-position:58% 30%}}
/* Building-led adaptive reuse composition. */
#owners .story-image{height:auto;aspect-ratio:3/2;min-height:0;max-height:none}
#owners .story-image>img{object-position:50% 50%}
#owners .story-image:after{background:linear-gradient(0deg,rgba(16,31,44,.78),rgba(16,31,44,.2) 27%,transparent 58%)}
@media(max-width:800px){#owners .story-image{aspect-ratio:1/1;min-height:430px}#owners .story-image>img{object-position:65% 50%}}
/* Selected afternoon scene: retain people, section board and review table. */
#owners .story-image>img{object-position:50% 50%}
@media(max-width:800px){#owners .story-image{aspect-ratio:3/2;min-height:0}#owners .story-overlay{bottom:58px}#owners .story-overlay h2{}#owners .story-overlay .eyebrow{margin-bottom:12px;}#owners .photo-caption{bottom:14px;padding-top:10px;}}
.project-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.project-video-toggle{position:absolute;top:20px;right:20px;z-index:3;width:auto;padding:9px 13px;border:1px solid #ffffff80;background:rgba(54,79,107,.7);}
@media(prefers-reduced-motion:reduce){.project-video{display:none}.project-video-toggle{display:none}}
/* Reduce the Owner's Representation image to a balanced section height. */
#owners .story-image{height:58svh;min-height:380px;max-height:620px;aspect-ratio:auto}
#owners .story-image>img{object-position:50% 34%}
#owners .story-overlay{bottom:85px}
#owners .story-overlay h2{}
@media(max-width:800px){#owners .story-image{height:48svh;min-height:320px;max-height:460px;aspect-ratio:auto}#owners .story-overlay{bottom:60px}#owners .story-overlay h2{}}
/* Opposing entrances resolve into the existing photographic composition. */
.hero{background:#364f6b;isolation:isolate}
.hero-media{position:absolute;inset:0;overflow:hidden;z-index:0;animation:hero-photo-arrive 1.65s cubic-bezier(.16,1,.3,1) both}
.hero-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media>.motion-photo{animation-delay:1.65s;animation-fill-mode:both}
.hero-line{display:block;animation:hero-type-arrive 1.35s cubic-bezier(.16,1,.3,1) both}
.hero-line:nth-child(1){animation-delay:.14s}
.hero-line:nth-child(2){animation-delay:.3s}
.hero-line:nth-child(3){animation-delay:.46s}
.hero-side{animation:hero-support-arrive .8s ease-out 1.05s both}
@keyframes hero-photo-arrive{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes hero-type-arrive{from{transform:translateX(-110vw);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes hero-support-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero-media,.hero-line,.hero-side{animation:none;transform:none;opacity:1}.hero-media>.motion-photo{animation:none;transform:none}}
/* A compact editorial overview connects the owner story to the services. */
.overview{padding:70px 6% 65px;background:var(--paper)}
.overview-kicker{display:flex;align-items:center;gap:24px}
.overview-kicker .eyebrow{white-space:nowrap;color:#655849}
.overview-rule{height:1px;flex:1;background:#bb957a}
.overview-main{display:grid;grid-template-columns:1.2fr 1fr;gap:7%;align-items:center;margin-top:25px}
.overview-main h2{}
.overview-main h2 em{display:inline-block;color:#8c7765;margin-top:10px}
.overview-copy{max-width:520px;border-left:1px solid #c7b6a6;padding-left:30px}
.overview-copy p{}
.overview-copy p+p{margin-top:17px;color:#56616a}
.overview-services{margin-top:40px;padding:28px 34px 30px;background:#364f6b;color:#f5f1e9;border-top:2px solid #bd8a69}
.overview-services>.eyebrow{color:#e7c6ac;}
.overview-service-layout{display:grid;grid-template-columns:1fr 1.65fr;gap:5%;align-items:center;margin-top:15px}
.overview-service-layout h3{}
.overview-service-layout h3 em{color:#ddbaa0}
.overview-index{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
.overview-index a{display:flex;align-items:center;gap:13px;min-height:76px;padding:13px 0;border-bottom:1px solid #ffffff30;transition:color .2s ease}
.overview-number{color:#e5b797;align-self:flex-start;padding-top:2px}
.overview-arrow{margin-left:auto;color:#e5b797;transition:transform .2s ease}
.overview-index a:hover{color:#e5b797}
.overview-index a:hover .overview-arrow{transform:translate(3px,-3px)}
.overview-index a:focus-visible{outline:2px solid #efc7a8;outline-offset:5px}
@media(min-width:1500px){.overview{padding-left:10%;padding-right:10%}}
@media(max-width:950px){.overview-main{gap:5%}.overview-copy{padding-left:22px}.overview-service-layout{grid-template-columns:1fr 1.5fr;gap:5%}.overview-services{padding:26px}.overview-index{gap:0 18px}.overview-index a{gap:9px}}
@media(max-width:700px){.overview{padding:44px 6%}.overview-kicker{gap:15px}.overview-kicker .eyebrow{}.overview-main{grid-template-columns:1fr;gap:23px;margin-top:22px}.overview-main h2{}.overview-copy{max-width:100%;padding-left:18px}.overview-copy p{}.overview-services{margin-top:28px;padding:24px 22px}.overview-service-layout{grid-template-columns:1fr;gap:20px}.overview-service-layout h3{}.overview-index{grid-template-columns:1fr}.overview-index a{min-height:62px;gap:18px}.overview-index a br{display:none}.overview-index a br:after{content:' '}.overview-number{align-self:center;padding:0}.overview-services>.eyebrow{}}
@media(prefers-reduced-motion:reduce){.overview-index a,.overview-arrow{transition:none}}
/* Practical reasons to choose the firm, without another generic card grid. */
.why-us{padding:75px 6%;background:#eae5dc;display:grid;grid-template-columns:1fr 1.1fr;gap:40px 9%}
.why-intro>.eyebrow{color:#765e4c}
.why-intro h2{margin:22px 0;}
.why-intro h2 em{color:#8c7765}
.why-intro>p{max-width:455px}
.why-principles article{display:flex;align-items:flex-start;gap:20px;padding:21px 0;border-top:1px solid #bfb3a5}
.why-principles article:last-child{padding-bottom:0}
.principle-number{color:#966e50;padding-top:3px}
.why-principles h3{margin-bottom:9px}
.why-principles p{color:#56616a;max-width:500px}
.mission{grid-column:1/-1;margin:0;padding-top:30px;border-top:1px solid #bfb3a5;display:grid;grid-template-columns:140px 1fr;gap:12px 30px}
.mission .eyebrow{padding-top:9px;color:#765e4c}
.mission blockquote{margin:0;max-width:980px}
.mission figcaption{grid-column:2;color:#7a6553}
.contracting{padding:65px 6%;background:#f5f1e9}
.contracting-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:35px}
.contracting-heading h2{margin-top:20px}
.contracting-heading h2 em{color:#8c7765}
.contracting-link{border-bottom:1px solid #bd8a69;padding-bottom:9px;white-space:nowrap}
.contracting-content{display:grid;grid-template-columns:1.1fr 1fr;gap:7%;border-top:1px solid #c7b6a6;padding-top:25px}
.contracting-content h3{margin-bottom:18px}
.naics-list dl{margin:0}.naics-list dl>div{display:grid;grid-template-columns:130px 1fr;gap:18px;border-top:1px solid #d3c9bc;padding:18px 0}
.naics-list dt{color:#364f6b}
.naics-list dt>span{display:block;margin-bottom:4px;color:#8b6b53}
.naics-list dd{margin:0;align-self:center}
.capability-group{border-top:1px solid #d3c9bc;padding:18px 0}
.capability-group h4{font-weight:500;margin:0 0 10px}
.capability-group p{color:#56616a}
.contract-capabilities>a{display:inline-block;border-bottom:1px solid #bd8a69;padding-bottom:8px;margin-top:8px}
@media(max-width:800px){.why-us{padding:50px 6%;grid-template-columns:1fr;gap:30px}.why-intro>p{max-width:100%}.why-intro h2{}.why-principles h3{}.mission{grid-template-columns:1fr;gap:15px;padding-top:25px}.mission figcaption{grid-column:1}.mission blockquote{}.contracting{padding:50px 6%}.contracting-heading{display:block}.contracting-link{display:inline-block;margin-top:25px}.contracting-content{grid-template-columns:1fr;gap:30px}.contracting-heading h2{}.naics-list dl>div{grid-template-columns:110px 1fr}.why-principles p{max-width:100%}}
/* Full-bleed owner perspective and service band, with readable inner spacing. */
#perspective.overview{padding-left:0;padding-right:0;padding-bottom:0;width:100%;max-width:none}
.overview-kicker{margin-left:3%;margin-right:3%}
.overview-main{padding-left:3%;padding-right:3%;gap:5%;grid-template-columns:1.2fr 1fr}
.overview-copy{max-width:none}
.overview-services{width:100%;margin-left:0;margin-right:0;padding-left:3%;padding-right:3%;border-top:0;border-radius:0}
@media(max-width:700px){.overview-kicker{margin-left:20px;margin-right:20px}.overview-main{grid-template-columns:1fr;padding-left:20px;padding-right:20px}.overview-services{padding-left:20px;padding-right:20px}}
/* Slightly larger lifecycle labels. */
.lifecycle{}
/* Readable service detail for Space & Asset Management. */
#assets .scope{background:rgba(54,79,107,.96);color:#fff8f0;padding:16px 18px;border-left:2px solid #bd8a69}
@media(max-width:800px){#assets .scope{padding:14px 16px}}
/* Selected progress-review composition: drawings and schedule lead. */
#owners .story-image>img{object-position:50% 40%}
@media(max-width:800px){#owners .story-image>img{object-position:65% 42%}}
/* Larger supporting copy and a high-contrast owner-representation label. */
#owners .story-overlay .eyebrow{display:inline-block;width:auto;max-width:100%;padding:12px 16px;background:rgba(54,79,107,.96);color:#fff8f0;border-left:2px solid #bd8a69;}
.story .photo-caption,#owners .photo-caption{white-space:normal}
#owners .story-overlay{bottom:110px}
#owners .scope,#management .scope,#bim .scope{}
.mission .eyebrow,.contracting-heading .eyebrow,.contact>div>.eyebrow{}
.contact .form-note{}
footer>div>p{}
@media(max-width:800px){
 #owners .story-overlay .eyebrow{padding:10px 13px;}
 .story .photo-caption,#owners .photo-caption{}
 #owners .story-overlay{bottom:105px}
 #owners .scope,#management .scope,#bim .scope{}
 .mission .eyebrow,.contracting-heading .eyebrow,.contact>div>.eyebrow{}
 .contact .form-note{}
 footer>div>p{}
}
/* Larger section labels following the established readable caption scale. */
.overview-services>.eyebrow,#management .story-overlay .eyebrow,#bim .story-overlay .eyebrow,.why-intro>.eyebrow,.statement>.eyebrow{}
@media(max-width:800px){.overview-services>.eyebrow,#management .story-overlay .eyebrow,#bim .story-overlay .eyebrow,.why-intro>.eyebrow,.statement>.eyebrow{}}
/* Consistent, prominent service labels anchored to the top left of each image. */
.story>.story-image>.service-label{position:absolute;z-index:3;top:30px;left:clamp(24px,4vw,64px);display:inline-block;max-width:calc(100% - 48px);margin:0;padding:15px 20px;background:rgba(54,79,107,.98);color:#fff;font-family:Manrope,Arial,sans-serif;font-weight:700;border-left:3px solid #bd8a69;box-sizing:border-box;text-align:left}
#owners .story-image>.story-overlay,#management .story-image>.story-overlay,#bim .story-image>.story-overlay,#assets .story-image>.story-overlay{left:clamp(24px,4vw,64px);right:clamp(24px,4vw,64px)}
@media(max-width:800px){.story>.story-image>.service-label{top:22px;left:20px;max-width:calc(100% - 40px);padding:12px 15px;}#owners .story-image>.story-overlay,#management .story-image>.story-overlay,#bim .story-image>.story-overlay,#assets .story-image>.story-overlay{left:20px;right:20px}}
@media(max-width:800px){#management .project-video-toggle{top:94px}}
/* Place the fourth service image and label on the left, matching the other services. */
@media(min-width:1100px){#assets{grid-template-columns:58% 42%}#assets .story-image{grid-column:1;grid-row:1}#assets .story-text{grid-column:2;grid-row:1}}
#assets .story-image>.service-label{text-align:left;right:auto}
/* Service overview links match the service-section labels. */
.overview-index{gap:12px}
.overview-index a{background:rgba(54,79,107,.98);color:#fff;padding:15px 20px;border:0;border-left:3px solid #bd8a69;min-height:86px;font-family:Manrope,Arial,sans-serif;font-weight:700;text-transform:uppercase;text-align:left;gap:10px;align-items:center}
.overview-index .overview-number{font-family:inherit;font-weight:inherit;color:inherit;align-self:center;white-space:nowrap;padding:0}
.overview-index .overview-number:after{content:' /'}
.overview-index a>span:nth-child(2){flex:1;min-width:0}
.overview-index .overview-arrow{flex-shrink:0;}
.overview-index a:hover{background:#364f6b;color:#fff}
.overview-index a:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:800px){.overview-index a{padding:12px 15px;min-height:76px}}
@media(max-width:700px){.overview-index a{min-height:64px}}

/* Company introduction and selected compact editorial sequence. */
.overview-main{align-items:start}
.company-definition{max-width:650px;margin-top:22px}
.overview-copy h3{margin:22px 0 10px;}
.overview-copy h3+p{margin-top:0}
.company-lifecycle{display:flex;gap:30px;margin:25px 3% 0;color:#765e4c}
.overview-services{margin-top:28px}
.why-us.why-editorial{display:block;padding:34px 0 26px;background:#eae5dc}
.why-editorial-heading{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:28px;padding:0 4% 25px}
.why-brand .eyebrow{color:#765e4c}
.why-brand>p{margin-top:12px}
.why-editorial-heading h2{}
.why-editorial-heading h2 em{color:#8c7765}
.why-photo-strip{position:relative;height:min(240px,24.58vw);overflow:hidden;background:#364f6b}
.why-photo-strip img{position:absolute;top:50%;left:0;width:100%;height:auto;display:block;transform:translateY(-50.95643%)}
.why-reasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:23px 4%}
.why-reasons article{padding:0 25px;border-left:1px solid #bd8a69;position:relative;min-width:0}
.why-reasons article:first-child{padding-left:0;border-left:0}
.why-reasons article:last-child{padding-right:0}
.why-reasons .principle-number{display:none}
.why-reasons h3{margin-bottom:8px}
.why-reasons p{color:#46545d;max-width:340px}
.why-editorial .mission{margin:0 4%;padding-top:17px;display:grid;grid-template-columns:130px 1fr;gap:15px;border-color:#bfb3a5;align-items:center}
.why-editorial .mission .eyebrow{padding:0;}
.why-editorial .mission blockquote{max-width:none}
@media(max-width:700px){
 .company-definition{margin-top:18px}.company-lifecycle{margin-left:20px;margin-right:20px}
 .why-us.why-editorial{padding-top:25px;padding-bottom:22px}
 .why-editorial-heading{grid-template-columns:1fr;gap:16px;padding:0 20px 22px}
 .why-brand>p{margin-top:7px}.why-brand .eyebrow{}
 .why-editorial-heading h2{}
 .why-reasons{grid-template-columns:1fr;padding:8px 20px 20px}
 .why-reasons article,.why-reasons article:first-child,.why-reasons article:last-child{padding:14px 0;border-left:0;border-bottom:1px solid #c7b6a6}
 .why-reasons h3{margin-bottom:4px}.why-reasons p{max-width:none}
 .why-editorial .mission{margin:0 20px;grid-template-columns:1fr;gap:8px;border-top:0;padding-top:0}
 .why-editorial .mission blockquote{}
}

/* The company catchphrase retains the compact editorial heading. */
.why-editorial-heading #why-title{}
@media(max-width:700px){.why-editorial-heading #why-title{}}

/* One continuous company story: identity, approach, reasons, then services. */
#perspective.company-about{background:#eae5dc}
.company-about .why-us.why-editorial{margin-top:30px;padding-top:25px;padding-bottom:0;background:transparent;border-top:1px solid #c7b6a6}
.company-about .why-editorial-heading{padding-left:3%;padding-right:3%;grid-template-columns:1fr 1.2fr}
.company-about .company-lifecycle{margin-top:26px;padding-top:18px;border-top:1px solid #c7b6a6}
@media(max-width:700px){.company-about .why-editorial-heading{grid-template-columns:1fr;padding-left:20px;padding-right:20px;gap:12px}.company-about .why-us.why-editorial{margin-top:25px;padding-top:22px}}

/* A prominent company label and a bright pause between services. */
.company-about .overview-kicker>.eyebrow{display:inline-block;background:#364f6b;color:#fff;padding:13px 22px;border-left:4px solid #bd8a69;white-space:normal}
.mission-interlude{background:#fffaf2;color:#263845;padding:48px 6%;display:grid;grid-template-columns:150px minmax(0,1fr);align-items:start;gap:35px;border-top:3px solid #bd8a69}
.mission-interlude>.eyebrow{font-weight:700;color:#80583e;padding-top:8px}
.mission-interlude>blockquote{margin:0;max-width:1050px;text-wrap:balance}
@media(max-width:700px){.company-about .overview-kicker>.eyebrow{padding:12px 18px;}.mission-interlude{padding:34px 20px;grid-template-columns:1fr;gap:16px}.mission-interlude>.eyebrow{padding-top:0;}.mission-interlude>blockquote{}}
/* Compact light service bands, proportioned to the mission interlude. */
#owners .story-text,#bim .story-text{padding:30px 6%;grid-template-columns:.8fr 1.4fr;gap:6%;align-items:center}
#owners .story-text h3,#bim .story-text h3{}
#owners .story-text p,#bim .story-text p{max-width:800px}
#owners .story-text .scope,#bim .story-text .scope{margin-top:10px;}
#owners .story-text a,#bim .story-text a{margin-top:12px;padding-bottom:6px;}
@media(max-width:1099px){
 #management .story-text,#assets .story-text{padding:30px 6%;gap:6%;align-items:center}
 #management .story-text h3,#assets .story-text h3{}
 #management .story-text p,#assets .story-text p{}
 #management .story-text .scope,#assets .story-text .scope{margin-top:10px;}
 #management .story-text a,#assets .story-text a{margin-top:12px;padding-bottom:6px;}
}
@media(max-width:800px){
 #owners .story-text,#bim .story-text,#management .story-text,#assets .story-text{grid-template-columns:1fr;gap:16px;padding:26px 6%}
 #owners .story-text h3,#bim .story-text h3,#management .story-text h3,#assets .story-text h3{}
}

/* Compact contracting information after removing the capabilities column. */
.contracting{padding:30px 6%}
.contracting-heading{margin-bottom:18px;gap:25px}
.contracting-heading h2{margin-top:10px;}
.contracting-content{display:block;padding-top:15px}
.contracting-content h3{margin-bottom:10px}
.naics-list dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.naics-list dl>div{display:block;padding:12px 0 0;border-top:1px solid #d3c9bc}
.naics-list dt{margin-bottom:8px}
.naics-list dt>span{display:inline;margin:0 8px 0 0}
.naics-list dd{max-width:330px}
@media(max-width:700px){.contracting{padding:28px 20px}.contracting-heading h2{}.contracting-link{margin-top:15px}.naics-list dl{grid-template-columns:1fr;gap:14px}.naics-list dl>div{display:grid;grid-template-columns:110px 1fr;gap:14px;padding-top:12px}.naics-list dt{margin:0}.naics-list dt>span{display:block;margin:0 0 4px}.naics-list dd{max-width:none}}

/* Neutral architectural title panel while a real photograph is selected. */
#owners .story-image{background:#364f6b}

/* Selected real photograph and removal of the About Us label. */
#owners .story-image>img{object-position:50% 25%}
.company-about .why-editorial-heading{display:block}
.company-about .why-editorial-heading>h2{max-width:900px}
@media(max-width:800px){#owners .story-image>img{object-position:50% 25%}}

/* Selected Plan Build Operate logo, with a transparent background. */
.logo img,footer>img{mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none}
.logo img{width:240px;height:auto;max-width:40vw;display:block;object-fit:contain}
footer>img{width:280px;height:auto;max-width:100%;object-fit:contain}
@media(max-width:800px){.logo img{width:180px;max-width:42vw}footer>img{width:220px;height:auto}}

/* Preserve the selected navy presentation while blending with the slate header. */
.logo img,footer>img{mix-blend-mode:lighten}
/* Keep the specified logo colors intact; feather only empty outer margins. */
.logo img,footer>img{mix-blend-mode:normal;-webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 9%,#000 91%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}

/* Authoritative company blue supplied by the owner. */
:root{--brand-blue:#364f6b;--navy:var(--brand-blue)}
header,footer,.overview-services{background:var(--brand-blue)}
.logo img,footer>img{background:var(--brand-blue)}

/* Keep the owner title and service label together on one top-left alignment. */
#owners .owner-heading{position:absolute;z-index:3;top:30px;left:clamp(24px,4vw,64px);right:clamp(24px,4vw,64px);text-align:left;color:#fff}
#owners .owner-heading>.service-label{position:static;display:inline-block;max-width:100%;margin:0;padding:15px 20px;background:rgba(54,79,107,.98);color:#fff;border-left:3px solid #bd8a69;font-family:Manrope,Arial,sans-serif;font-size:var(--type-body);font-weight:600;line-height:1.6;letter-spacing:.07em}
#owners .owner-heading>.story-overlay{position:static;inset:auto;margin-top:18px;text-align:left}
#owners .story-image:after{background:linear-gradient(135deg,rgba(16,31,44,.65),transparent 65%),linear-gradient(0deg,rgba(16,31,44,.78),transparent 35%)}
@media(max-width:800px){#owners .owner-heading{top:22px;left:20px;right:20px}#owners .owner-heading>.service-label{padding:12px 15px}#owners .owner-heading>.story-overlay{margin-top:14px}}
/* Lighter blue separates the service links from the company-blue band. */
:root{--service-link-blue:#4a6785;--service-link-hover:#557493}
#services .overview-index a{background:var(--service-link-blue);color:#fff}
#services .overview-index a:hover,#services .overview-index a:focus-visible{background:var(--service-link-hover);color:#fff}
/* Service label left; owner headline at the top right. */
#owners .owner-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}
#owners .owner-heading>.service-label{flex:0 1 auto;max-width:45%}
#owners .owner-heading>.story-overlay{position:static;inset:auto;margin:0 0 0 auto;max-width:55%;text-align:right}
#owners .owner-heading h2{text-align:right}
#owners .story-image:after{background:linear-gradient(225deg,rgba(16,31,44,.65),transparent 65%),linear-gradient(0deg,rgba(16,31,44,.78),transparent 35%)}
@media(max-width:800px){#owners .owner-heading{flex-wrap:wrap;gap:14px}#owners .owner-heading>.service-label{max-width:100%}#owners .owner-heading>.story-overlay{width:100%;max-width:100%;margin:0 0 0 auto}}

/* Project Management: label and relocated subheading share the same edge inset. */
#management .management-heading{position:absolute;z-index:3;top:30px;left:clamp(24px,4vw,64px);right:clamp(24px,4vw,64px);display:flex;justify-content:space-between;align-items:flex-start;gap:28px;color:#fff}
#management .management-heading>.service-label{position:static;display:inline-block;max-width:48%;padding:15px 20px;background:rgba(54,79,107,.98);color:#fff;border-left:3px solid #bd8a69;font-family:Manrope,Arial,sans-serif;font-size:var(--type-body);font-weight:600;line-height:1.6;letter-spacing:.07em}
#management .service-top-copy{max-width:48%;text-align:right}
#management .project-video-toggle{top:115px;left:clamp(24px,4vw,64px);right:auto}
/* Captions and calls to action share one bottom baseline and matching edge inset. */
.story .service-caption-row{position:absolute;z-index:3;left:clamp(24px,4vw,64px);right:clamp(24px,4vw,64px);bottom:30px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-top:1px solid #ffffff60;padding-top:18px;color:#fff}
.story .service-caption-row>.photo-caption{position:static;inset:auto;max-width:none;flex:1;min-width:0;border:0;margin:0;padding:0;color:#fff}
.story .service-caption-row>.caption-link{display:block;max-width:46%;flex:0 1 auto;text-align:right;border-bottom:1px solid #C99383;padding:0 0 5px;margin:0;color:#fff}
.story .caption-link:hover{color:#C99383}
@media(max-width:800px){
 #management .management-heading{top:22px;left:20px;right:20px;flex-wrap:wrap;gap:14px}
 #management .management-heading>.service-label{max-width:100%;padding:12px 15px}
 #management .service-top-copy{width:100%;max-width:100%;text-align:right}
 #management .project-video-toggle{top:210px;left:20px}
 .story .service-caption-row{left:20px;right:20px;bottom:24px;flex-wrap:wrap;gap:12px;padding-top:14px}
 .story .service-caption-row>.photo-caption{flex:1 1 100%}
 .story .service-caption-row>.caption-link{max-width:100%;margin-left:auto}
 #management .story-image>.story-overlay{bottom:170px}
}
/* Service overview backgrounds fit their labels instead of filling large tiles. */
#services .overview-index{align-items:start}
#services .overview-index a{width:fit-content;max-width:100%;justify-self:start;align-self:start;min-height:0;padding:15px 20px;gap:10px}
#services .overview-index a>span:nth-child(2){flex:0 1 auto}
#services .overview-index .overview-arrow{margin-left:0}
@media(max-width:800px){#services .overview-index a{min-height:0;padding:12px 15px}}

/* Project Management copy forms one top-right group. */
#management .service-top-copy{display:flex;flex-direction:column;align-items:flex-end;gap:18px;text-align:right}
#management .service-top-copy>.story-overlay{position:static;inset:auto;margin:0;text-align:right}
#management .service-top-copy>.service-caption-row{position:static;inset:auto;display:flex;flex-direction:column;align-items:flex-end;gap:12px;width:100%;margin:0;padding-top:16px;text-align:right}
#management .service-top-copy .photo-caption{flex:0 1 auto;text-align:right}
#management .service-top-copy .caption-link{max-width:100%;width:fit-content;margin:0;text-align:right}
#management .project-video-toggle{top:auto;bottom:24px;left:clamp(24px,4vw,64px);right:auto}
#management .story-image:after{background:linear-gradient(225deg,rgba(16,31,44,.7),transparent 70%)}
@media(max-width:800px){#management .management-heading{display:block}#management .service-top-copy{margin:16px 0 0 auto;max-width:100%;width:100%;gap:12px}#management .project-video-toggle{top:auto;bottom:18px;left:20px}}

/* Align the management heading with the full section's outer edges. */
#management{position:relative}
#management>.management-heading .service-top-copy{max-width:40%}
#management .story-text{padding-top:190px}
@media(max-width:800px){#management>.management-heading .service-top-copy{max-width:100%}#management .story-text{padding-top:40px}#assets .story-overlay{bottom:175px}}
#management>.service-caption-row{justify-content:flex-end;border-top:0;padding-top:0;pointer-events:none}
#management>.service-caption-row>.caption-link{pointer-events:auto}
#management .story-text{padding-bottom:110px}
/* Asset service contact link aligns to the full section's bottom-right edge. */
#assets{position:relative}
#assets>.service-caption-row{justify-content:flex-end;border-top:0;padding-top:0;pointer-events:none}
#assets>.service-caption-row>.caption-link{pointer-events:auto}
#assets .story-text{padding-bottom:110px}
/* All service links keep one consistent blue, including the selected link. */
#services .overview-index a,
#services .overview-index a:visited,
#services .overview-index a:hover,
#services .overview-index a:focus,
#services .overview-index a:active{background:var(--service-link-blue)}
#assets>.asset-heading{position:absolute;z-index:3;top:30px;right:clamp(24px,4vw,64px);max-width:36%;text-align:right;color:#fff}
#assets .story-text{padding-top:190px}
@media(max-width:800px){#assets>.asset-heading{top:100px;right:20px;left:20px;max-width:none}#assets .story-text{padding-top:40px}}
/* Keep the contact form comfortable while shortening the section. */
#contact{padding-top:60px;padding-bottom:60px}
#contact label{margin-bottom:20px}
@media(max-width:800px){#contact{padding-top:50px;padding-bottom:50px;row-gap:35px}}
/* Fit service backgrounds to their labels without narrow grid cells stacking words. */
#services .overview-index{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}
#services .overview-index a{flex:0 1 auto;width:max-content;max-width:100%;height:auto;min-height:0;padding:12px 15px;gap:8px}
#services .overview-index a>span:nth-child(2){flex:0 1 auto;white-space:nowrap}
@media(max-width:450px){#services .overview-index a>span:nth-child(2){white-space:normal}#services .overview-index a{padding:10px 12px}}
#assets .story-text>div{width:100%;margin-left:auto;text-align:right}
#assets .story-text p,#assets .story-text .scope{text-align:right;margin-left:auto}
/* Owner decision support aligns with the section's right-hand edge. */
#owners .story-text{padding-right:clamp(24px,4vw,64px)}
#owners .story-text>div{justify-self:end;width:100%;text-align:right}
#owners .story-text p,#owners .story-text .scope{margin-left:auto;text-align:right}
#owners .story-text a{text-align:right}
@media(max-width:800px){#owners .story-text{padding-right:20px}}
/* Give the mission sentence the full band width. */
.mission-interlude{grid-template-columns:minmax(0,1fr);gap:12px;padding-top:32px;padding-bottom:32px}
.mission-interlude>.eyebrow{padding-top:0}
.mission-interlude>blockquote{max-width:none;text-wrap:wrap}
/* Match the asset copy's outer right edge to the management heading. */
#assets .story-text{padding-right:clamp(24px,4vw,64px);align-items:flex-end}
#assets .story-text>div{justify-self:end}
@media(max-width:800px){#assets .story-text{padding-right:20px}}
/* Hero invitation and company label share the same right edge. */
.hero-side{margin-right:0;margin-left:auto;padding-right:21px;text-align:right}
.hero-side a{justify-content:flex-end;gap:12px;margin-left:auto}
@media(max-width:800px){.hero-top>span:last-child{align-self:flex-end;text-align:right}.hero-side{padding-right:15px;margin-right:0;margin-left:auto}}

/* Company introduction label with a half-opaque brand-blue background. */
.company-about .overview-kicker>.eyebrow{background:rgba(54,79,107,.5)}
/* Half-opaque background for the Owner’s Representation service label. */
#owners .owner-heading>.service-label{background:rgba(54,79,107,.5)}
/* Opening labels share the same 50% background opacity. */
.hero-top>span:first-child{background:rgba(54,79,107,.5)}
/* Space and asset management follows the supplied editorial reference. */
#assets .story-text{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:40px;padding:55px 6%;text-align:left}
#assets .story-text>h3{width:100%;text-align:left}
#assets .story-text>div{width:100%;margin:0;text-align:left}
#assets .story-text p,#assets .story-text .scope{margin-left:0;text-align:left}
#assets .story-text .scope{margin-top:28px}
#assets .story-text a{margin-top:25px;text-align:left}
@media(min-width:1100px){#assets .story-text{padding:65px 13%}}
@media(max-width:800px){#assets .story-text{padding:35px 20px;gap:25px}}
/* Match the bronze rule used beside the asset service list. */
#management .story-text>div>p{border-left:2px solid #bd8a69;padding:16px 18px}
@media(max-width:800px){#management .story-text>div>p{padding:14px 16px}}
/* Bronze contact section using the approved brand gradient. */
#contact{background:linear-gradient(135deg,#C99383 0%,#B17A50 100%);color:#101820}
#contact h2,#contact h2 em,#contact .eyebrow,#contact p,#contact label,#contact>div>a{color:#101820}
#contact>div>a{width:fit-content;border-bottom:1px solid #101820;padding-bottom:3px}
#contact input,#contact select,#contact textarea{color:#101820;background:rgba(255,250,242,.45);border-bottom:1px solid #364f6b;padding-left:12px;padding-right:12px}
#contact input::placeholder,#contact textarea::placeholder{color:#263845;opacity:1}
#contact select option{background:#fffaf2;color:#101820}
#contact button{background:#364f6b;color:#fff}
#contact button:hover{background:#263845}
#contact :is(a,button,input,select,textarea):focus-visible{outline:3px solid #101820;outline-offset:4px}
/* Bronze introduction label, with 35% background opacity and solid readable text. */
.company-about .overview-kicker>.eyebrow{background:linear-gradient(135deg,rgba(201,147,131,.35),rgba(177,122,80,.35));color:#101820;border-left-color:#B17A50}

#contact .inquiry-honeypot{display:none}
#contact button:disabled{opacity:.7;cursor:wait}
#contact #status{font-weight:600}
#contact #status[data-state="error"]{border-left:3px solid #101820;padding-left:12px}

/* Panoramic service sections: approved bronze titles and warm white copy. */
#management.service-panorama,#assets.service-panorama{display:block;position:relative;background:#364f6b;color:#fffaf4}
#management.service-panorama .story-image,#assets.service-panorama .story-image{height:auto;min-height:800px;max-height:none;display:flex;flex-direction:column;padding:30px clamp(24px,4vw,64px);isolation:isolate}
.service-panorama .story-image:after{z-index:0;background:linear-gradient(0deg,rgba(15,30,44,.72),rgba(15,30,44,.12) 65%)}
.service-panorama .story-image>img,.service-panorama .project-video{z-index:-1}
#management.service-panorama .story-image>.service-label,#assets.service-panorama .story-image>.service-label{position:relative;inset:auto;z-index:2;align-self:flex-start;margin:0;background:rgba(54,79,107,.95);color:#fffaf4;max-width:calc(100% - 150px)}
.service-panorama .panorama-content{position:relative;z-index:2;display:flex;flex-direction:column;flex:1;gap:28px;padding-top:42px}
.service-panorama .panorama-lead{max-width:540px;padding:25px 28px;background:rgba(30,49,68,.94);border-left:2px solid #f2c6b8}
.service-panorama .panorama-kicker{display:block;color:#f2c6b8;font-family:Manrope,Arial,sans-serif;font-size:var(--type-detail);font-weight:600;letter-spacing:.12em;line-height:1.6;text-transform:uppercase;margin-bottom:12px}
.service-panorama .panorama-lead h2{font-family:Poppins,Arial,sans-serif;font-size:var(--type-subheading);font-weight:300;line-height:1.3;letter-spacing:-.035em;margin:0 0 16px;color:#fffaf4;-webkit-text-fill-color:#fffaf4}
.service-panorama .panorama-lead p,.service-panorama .panorama-tile p{color:#fffaf4;-webkit-text-fill-color:#fffaf4;font-size:var(--type-body);line-height:1.65;margin:0}
.service-panorama .panorama-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:auto}
.service-panorama .panorama-tile{min-width:0;padding:24px;background:rgba(54,79,107,.97);border-top:2px solid #f2c6b8}
.service-panorama .panorama-tile h3{font-family:Poppins,Arial,sans-serif;font-size:20px;font-weight:500;line-height:1.4;letter-spacing:-.02em;color:#f2c6b8;-webkit-text-fill-color:#f2c6b8;margin:0 0 10px}
.service-panorama .panorama-icon{display:block;margin-bottom:15px;color:#f2c6b8}
.service-panorama .panorama-icon svg{display:block;width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.service-panorama .panorama-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:28px}
.service-panorama .panorama-scope{font-size:var(--type-detail);line-height:1.6;max-width:65%;color:#fffaf4;margin:0;text-shadow:0 1px 6px #142737}
.service-panorama .panorama-footer a{display:block;flex:0 0 auto;max-width:35%;text-align:right;font-size:var(--type-body);line-height:1.6;color:#f2c6b8;background:rgba(30,49,68,.94);border-bottom:1px solid #f2c6b8;padding:10px 14px}
.service-panorama .panorama-footer a:hover{color:#fffaf4}
#management.service-panorama .project-video-toggle{position:absolute;z-index:4;top:34px;bottom:auto;right:clamp(24px,4vw,64px);left:auto;width:auto;padding:10px 14px;background:rgba(30,49,68,.94);color:#fffaf4}
@media(max-width:900px){.service-panorama .panorama-tile{padding:20px}.service-panorama .panorama-tile h3{font-size:18px}.service-panorama .panorama-footer{flex-wrap:wrap;gap:16px}.service-panorama .panorama-scope{max-width:100%}.service-panorama .panorama-footer a{max-width:100%;margin-left:auto}}
@media(max-width:700px){#management.service-panorama .story-image,#assets.service-panorama .story-image{min-height:0;padding:24px 20px}.service-panorama .panorama-content{padding-top:180px;gap:22px}.service-panorama .panorama-lead{max-width:none;padding:22px}.service-panorama .panorama-tiles{grid-template-columns:1fr;gap:12px}.service-panorama .panorama-tile{display:grid;grid-template-columns:25px minmax(0,1fr);gap:16px}.service-panorama .panorama-icon{margin:2px 0 0}#management.service-panorama .story-image>.service-label,#assets.service-panorama .story-image>.service-label{max-width:100%}#management.service-panorama .project-video-toggle{top:100px;right:20px}.service-panorama .panorama-footer{align-items:flex-start}}
#management.service-panorama .panorama-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){#management.service-panorama .panorama-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){#management.service-panorama .panorama-tiles{grid-template-columns:1fr}}
/* Construction Management keeps its details on a solid blue side panel. */
@media(min-width:901px){
 #management.service-panorama .story-image{display:grid;grid-template-columns:58% 42%;padding:0;min-height:800px;background:#364f6b}
 #management.service-panorama .story-image>img,#management.service-panorama .project-video{width:58%;height:100%;left:0;right:auto;object-fit:cover}
 #management.service-panorama .story-image:after{right:auto;width:58%;background:linear-gradient(180deg,rgba(15,30,44,.28),rgba(15,30,44,.08))}
 #management.service-panorama .story-image>.service-label{position:absolute;top:30px;left:clamp(24px,4vw,64px);max-width:calc(58% - 80px)}
 #management.service-panorama .panorama-content{grid-column:2;grid-row:1;min-width:0;background:#364f6b;padding:40px 30px;gap:25px}
 #management.service-panorama .panorama-lead{background:transparent;padding:0 0 0 18px;max-width:none}
 #management.service-panorama .panorama-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:0}
 #management.service-panorama .panorama-tile{padding:18px 16px;background:#3c5876}
 #management.service-panorama .panorama-tile h3{font-size:18px}
 #management.service-panorama .panorama-tile p{font-size:14px;line-height:1.65}
 #management.service-panorama .panorama-scope{display:none}
 #management.service-panorama .panorama-footer{margin-top:auto;justify-content:flex-end}
 #management.service-panorama .panorama-footer a{max-width:100%}
 #management.service-panorama .project-video-toggle{top:112px;left:clamp(24px,4vw,64px);right:auto;bottom:auto}
}
@media(max-width:900px){
 #management.service-panorama .story-image{display:block;padding:0;background:#364f6b;min-height:0}
 #management.service-panorama .story-image>img,#management.service-panorama .project-video{height:420px;inset:0 0 auto;width:100%;object-fit:cover}
 #management.service-panorama .story-image:after{bottom:auto;height:420px}
 #management.service-panorama .story-image>.service-label{position:absolute;top:24px;left:20px;max-width:calc(100% - 40px)}
 #management.service-panorama .panorama-content{margin-top:420px;background:#364f6b;padding:32px 24px;gap:24px}
 #management.service-panorama .panorama-lead{padding:0 0 0 18px;background:transparent;max-width:none}
 #management.service-panorama .panorama-tile{background:#3c5876}
 #management.service-panorama .project-video-toggle{top:105px;left:20px;right:auto;bottom:auto}
 #management.service-panorama .panorama-footer{justify-content:flex-end}
 #management.service-panorama .panorama-scope{display:none}
}

/* Owner services sit beneath the right-hand headline, leaving the photograph open. */
#owners .story-image{height:auto;min-height:700px;max-height:none;padding-bottom:100px;background:#364f6b}
#owners .story-image>img{width:50%;height:100%;object-fit:cover;object-position:50% 40%}
#owners .story-image:after{width:50%;right:auto;background:linear-gradient(0deg,rgba(16,31,44,.7),transparent 40%)}
#owners .owner-heading{position:relative;inset:auto;top:auto;left:auto;right:auto;padding:30px clamp(24px,4vw,64px);gap:40px}
#owners .owner-heading>.service-label{max-width:43%;flex:0 1 43%;background:rgba(54,79,107,.5)}
#owners .owner-detail-panel{width:48%;margin-left:auto;min-width:0;color:#fff}
#owners .owner-detail-panel>.story-overlay{position:static;inset:auto;margin:0 0 26px;text-align:right}
#owners .owner-service-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 22px;text-align:left}
#owners .owner-service-details article{border-top:2px solid #C99383;padding-top:14px}
#owners .owner-service-details h3{font:500 18px/1.4 Poppins,Arial,sans-serif;letter-spacing:-.02em;color:#f2c6b8;margin:0 0 10px}
#owners .owner-service-details p{font:400 14px/1.65 Manrope,Arial,sans-serif;letter-spacing:normal;color:#fffaf4;margin:0}
@media(max-width:900px){
 #owners .story-image{padding-bottom:120px;min-height:0}
 #owners .story-image>img{width:100%;height:360px;inset:0 0 auto}
 #owners .story-image:after{width:100%;height:360px;bottom:auto}
 #owners .owner-heading{display:block;padding:24px 20px}
 #owners .owner-heading>.service-label{max-width:100%}
 #owners .owner-detail-panel{width:100%;margin:300px 0 0}
 #owners .owner-detail-panel>.story-overlay{text-align:left}
 #owners .owner-detail-panel h2{text-align:left}
}
@media(max-width:550px){#owners .owner-service-details{grid-template-columns:1fr;gap:20px}}

/* Integrated company introduction and service navigation. */
#perspective.company-about{padding-bottom:0;border-bottom:5px solid #B17A50}
#perspective #services{background:transparent;color:#283943;margin:24px 0 0;padding:0 3% 30px;border:0}
#perspective .overview-service-layout{display:block}
#perspective .overview-service-layout h3{margin:0 0 20px}
#perspective .overview-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid #c8b5a5;padding-top:20px}
#perspective #services .overview-index a{position:relative;display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;width:100%;height:100%;padding:0 22px;background:transparent;color:#283943;border:0;line-height:1.5;letter-spacing:normal;min-width:0}
#perspective #services .overview-index a:first-child{padding-left:0}
#perspective #services .overview-index a:last-child{padding-right:0}
#perspective #services .overview-index a+a:before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:30px;background:#B17A50}
#perspective .overview-number{color:#8b6043}
#perspective #services .overview-index a:hover,#perspective #services .overview-index a:focus-visible{color:#825335;text-decoration:underline;text-underline-offset:5px}
#perspective .overview-index .overview-arrow{margin-left:auto}
/* Photo framing preserves both professionals, with details in a separate right panel. */
#owners .story-image{display:grid;grid-template-columns:58% 42%;padding:0;min-height:560px;max-height:none;height:auto}
#owners .story-image>img{position:absolute;left:0;top:0;width:58%;height:100%;object-fit:cover;object-position:25% center}
#owners .story-image:after{width:58%;height:100%;inset:0 auto 0 0;background:linear-gradient(0deg,rgba(16,31,44,.65),transparent 25%)}
#owners .owner-heading{position:static;display:contents;padding:0}
#owners .owner-heading>.service-label{position:absolute;top:26px;left:clamp(24px,4vw,64px);max-width:calc(58% - 80px);z-index:3;background:rgba(54,79,107,.5)}
#owners .owner-detail-panel{grid-column:2;grid-row:1;width:auto;margin:0;padding:32px 30px 100px;background:#364f6b;z-index:2}
#owners .owner-detail-panel>.story-overlay{margin:0 0 24px;text-align:left}
#owners .owner-detail-panel h2{text-align:left}
#owners .owner-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:25px}
#owners .owner-tabs button{display:block;justify-content:initial;width:auto;background:transparent;border:1px solid #9aaebb;color:#fffaf4;padding:10px 12px;font-size:14px;line-height:1.4}
#owners .owner-tabs button[aria-selected=true]{background:#f2c6b8;border-color:#f2c6b8;color:#24394e;font-weight:600;box-shadow:inset 0 -3px #B17A50}
#owners .owner-tabs button:hover{border-color:#f2c6b8}
#owners .owner-service-details{display:block}
#owners .owner-service-details article{border:0;padding:0;min-height:215px}
#owners .owner-service-details article[hidden]{display:none}
#owners .owner-service-details h3{font-size:21px;line-height:1.4;margin-bottom:16px}
#owners .owner-service-details p{font-size:16px;line-height:1.7}
#owners .service-caption-row{z-index:4}
@media(max-width:1000px){#perspective #services .overview-index a{padding:0 12px;font-size:14px}#owners .owner-detail-panel{padding-left:24px;padding-right:24px}}
@media(max-width:800px){
 #perspective #services{padding:0 20px 28px}
 #perspective .overview-index{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0}
 #perspective #services .overview-index a{padding:0 16px;font-size:16px}
 #perspective #services .overview-index a:nth-child(3){padding-left:0}
 #perspective #services .overview-index a:nth-child(3):before{display:none}
 #owners .story-image{display:block;padding-top:0;min-height:0}
 #owners .story-image>img{position:relative;display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:25% center}
 #owners .story-image:after{display:none}
 #owners .owner-heading>.service-label{top:20px;left:20px;max-width:calc(100% - 40px)}
 #owners .owner-detail-panel{margin:0;width:100%;padding:28px 20px}
 #owners .owner-service-details article{min-height:190px}
 #owners .service-caption-row{position:relative;inset:auto;left:auto;right:auto;bottom:auto;margin:0 20px;padding:20px 0 24px}
}
@media(max-width:450px){#perspective .overview-index{grid-template-columns:1fr;gap:0}#perspective #services .overview-index a{padding:14px 0;border-top:1px solid #c8b5a5}#perspective #services .overview-index a:before{display:none}#owners .owner-service-details article{min-height:245px}}
/* Clear contrast and balanced wrapping in the integrated service ribbon. */
#perspective .overview-service-layout h3 em{color:#8b6043;background:none;-webkit-text-fill-color:#8b6043}
#perspective #services .overview-index a{text-transform:none;font-weight:500}
#perspective #services .overview-index a>span:nth-child(2){white-space:normal;min-width:0;flex:1}
#perspective #services .overview-arrow{color:#8b6043;flex:0 0 auto}

/* Slimmer asset-service tiles reveal more of the photograph between them. */
#assets.service-panorama .panorama-tiles{grid-template-columns:repeat(3,minmax(0,285px));justify-content:space-between;gap:clamp(32px,5vw,80px)}
#assets.service-panorama .panorama-tile{padding:22px 20px}
#assets.service-panorama .panorama-tile p{max-width:245px}
@media(min-width:701px) and (max-width:1000px){#assets.service-panorama .panorama-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}}
@media(max-width:700px){#assets.service-panorama .panorama-tiles{grid-template-columns:minmax(0,340px);justify-content:center;gap:28px}#assets.service-panorama .panorama-tile{width:100%}}
/* Construction cards use the same narrower proportions and more generous gaps. */
#management.service-panorama .panorama-tiles{grid-template-columns:repeat(2,minmax(0,210px));justify-content:space-between;gap:32px}
#management.service-panorama .panorama-tile{padding:18px 14px}
@media(min-width:701px) and (max-width:900px){#management.service-panorama .panorama-tiles{grid-template-columns:repeat(2,minmax(0,285px));gap:32px 40px}}
@media(max-width:700px){#management.service-panorama .panorama-tiles{grid-template-columns:minmax(0,340px);justify-content:center;gap:28px}}
/* A subtle warmer shade keeps service navigation within the company introduction. */
#perspective .overview-index{background:#ded7cc;padding:18px 0;border-top:0}
#perspective #services .overview-index a:first-child{padding-left:20px}
#perspective #services .overview-index a:last-child{padding-right:20px}
@media(max-width:800px){#perspective .overview-index{padding:18px 0}#perspective #services .overview-index a,#perspective #services .overview-index a:nth-child(3){padding-left:20px;padding-right:20px}}
@media(max-width:450px){#perspective .overview-index{padding:0}#perspective #services .overview-index a{padding:16px 20px}}

/* Bronze service titles unfold their white descriptions and selected examples. */
.service-panorama .panorama-tiles{align-items:start}
.service-panorama .panorama-tile h3{margin:0}
#management.service-panorama .service-disclosure,#assets.service-panorama .service-disclosure{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;width:100%;padding:0;border:0;background:transparent;color:#f2c6b8;-webkit-text-fill-color:#f2c6b8;font:inherit;text-align:left;cursor:pointer}
.service-disclosure:hover>span:first-child{text-decoration:underline;text-underline-offset:4px}
.service-disclosure:focus-visible{outline:2px solid #fffaf4;outline-offset:7px}
.service-disclosure .disclosure-mark{flex:0 0 auto;line-height:1.4}
.service-reveal{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .4s ease,visibility 0s .4s}
.service-reveal[aria-hidden=false]{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .4s ease,visibility 0s}
.service-reveal-inner{overflow:hidden;min-height:0}
.service-reveal-inner>p{padding-top:18px}
.service-example{margin:20px 0 0}
.service-example>a{display:block}
.service-example img{display:block;width:100%;height:auto;position:static;object-fit:contain;background:#f3f1eb}
.service-example figcaption{font:400 12px/1.6 Manrope,Arial,sans-serif;color:#fffaf4;margin-top:10px}
.service-example figcaption a{display:inline-block;color:#f2c6b8;text-decoration:underline;text-underline-offset:3px;margin-top:6px}
/* One compact column gives construction headings room without reducing their type. */
#management.service-panorama .panorama-tiles{grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:24px}
#management.service-panorama .panorama-tile{padding:18px 20px}
#management.service-panorama .panorama-icon{display:none}
#management.service-panorama .panorama-tile h3{font-size:18px}
#management.service-panorama .service-disclosure>span:first-child{white-space:nowrap}
@media(max-width:900px){#management.service-panorama .panorama-tiles{grid-template-columns:minmax(0,1fr);max-width:640px;width:100%;margin-left:auto;margin-right:auto}}
@media(max-width:700px){#management.service-panorama .panorama-tile,#assets.service-panorama .panorama-tile{display:block}.service-panorama .panorama-icon{margin-bottom:14px}#management.service-panorama .service-disclosure>span:first-child{white-space:normal}}
@media(prefers-reduced-motion:reduce){.service-reveal,.service-reveal[aria-hidden=false]{transition:none}}
