
:root{--ink:#13476B;--ink-deep:#0B2A40;--ink-mid:#0E3452;--char:#1E3448;--bronze:#B4500D;--bronze2:#EE7119;--orange:#EE7119;--paper:#f7f5f1;--mute:#6b7280}
*{box-sizing:border-box;margin:0}body{font-family:Inter,sans-serif;color:var(--char);background:#fff;font-weight:300}
.serif{font-family:"Cormorant Garamond",serif;font-weight:500}
.eyebrow{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--bronze);font-weight:500}
.ph{position:relative;overflow:hidden}.ph::after{content:attr(data-label);position:absolute;right:14px;bottom:12px;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.4);padding:5px 9px}
header{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:30px 6vw}
.logo{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}.mark{width:44px;height:44px;border:1px dashed var(--bronze2);display:grid;place-items:center;font-size:.55rem;letter-spacing:.1em;color:var(--bronze2)}
.logo b{font-family:"Cormorant Garamond";font-size:1.5rem;font-weight:600;letter-spacing:.18em}.logo small{display:block;font-size:.58rem;letter-spacing:.42em;color:var(--bronze2)}
nav{display:flex;gap:34px}nav a{color:#fff;text-decoration:none;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;opacity:.9}
.burger{display:none;width:26px;height:12px;border-top:1px solid #fff;border-bottom:1px solid #fff}
.hero{height:100vh;min-height:640px;background:linear-gradient(180deg,rgba(11,42,64,.55),rgba(11,42,64,.25) 40%,rgba(11,42,64,.85)),linear-gradient(120deg,#0B2A40,#13476B 50%,#2A5F86 80%,#4F7FA3);display:flex;align-items:flex-end;padding:0 6vw 11vh;color:#fff}
.hero h1{font-family:"Cormorant Garamond";font-weight:400;font-size:clamp(2.6rem,6.2vw,5.6rem);line-height:1.02;max-width:900px;margin:18px 0 26px;animation:up 1.4s ease both}
.hero p{max-width:520px;font-size:1.02rem;line-height:1.7;opacity:.85}.btn{display:inline-block;margin-top:34px;padding:16px 34px;border:1px solid var(--bronze2);color:#fff;text-decoration:none;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase}.btn.fill{background:var(--bronze);border-color:var(--bronze)}.btn{transition:background .25s,border-color .25s}.btn:hover{border-color:var(--orange)}.btn.fill:hover{background:#9A440B;border-color:#9A440B}
@keyframes up{from{opacity:0;transform:translateY(30px)}}
section{padding:130px 6vw}
.intro{display:grid;grid-template-columns:1fr 1.3fr;gap:8vw;align-items:start}.intro h2{font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.12;color:var(--ink);margin-top:18px}.intro p{font-size:1.08rem;line-height:1.9;color:#4b5563}.rule{width:60px;height:1px;background:var(--bronze);margin:28px 0}
.proj{background:var(--paper)}.head{display:flex;justify-content:space-between;align-items:end;margin-bottom:56px;flex-wrap:wrap;gap:20px}.head h2{font-size:clamp(2rem,3.4vw,3rem);color:var(--ink);margin-top:14px}.head a{color:var(--ink);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--bronze);padding-bottom:6px}
.cards{display:grid;grid-template-columns:1.25fr 1fr;gap:34px}.card .img{height:560px;transition:transform 1.2s}.card:hover .img{transform:scale(1.03)}.card:nth-child(2) .img{height:560px}
.g1{background:linear-gradient(150deg,#0B2A40,#13476B 55%,#3D6C91)}.g2{background:linear-gradient(160deg,#0E3452,#2A5F86 55%,#6A92B3)}.g3{background:linear-gradient(135deg,#10324D,#3D6C91)}.g4{background:linear-gradient(135deg,#13476B,#5C86A8)}.g5{background:linear-gradient(135deg,#0B2A40,#13476B)}
.card h3{font-size:2rem;color:var(--ink);margin:26px 0 8px}.card .meta{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.exp{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #e5e1d8}.exp div{padding:44px 30px 10px 0;border-right:1px solid #e5e1d8;margin-right:30px}.exp div:last-child{border:0}.exp span{font-family:"Cormorant Garamond";color:var(--bronze);font-size:1.1rem}.exp h4{font-family:"Cormorant Garamond";font-weight:500;font-size:1.55rem;color:var(--ink);margin:14px 0 12px}.exp p{font-size:.92rem;line-height:1.75;color:var(--mute)}
.stats{background:var(--ink);color:#fff;display:grid;grid-template-columns:repeat(4,1fr);text-align:center;padding:90px 6vw}.stats b{font-family:"Cormorant Garamond";font-weight:400;font-size:3.6rem;color:var(--bronze2);display:block}.stats small{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;opacity:.7}.note{grid-column:1/-1;margin-top:34px;font-size:.66rem;letter-spacing:.2em;opacity:.5;text-transform:uppercase}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:260px 260px;gap:14px}.gal .ph:first-child{grid-row:span 2}
.partners{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;padding:70px 6vw;border-top:1px solid #eee;border-bottom:1px solid #eee}.partners div{width:150px;height:46px;border:1px dashed #cfc8bb;display:grid;place-items:center;font-size:.6rem;letter-spacing:.2em;color:#a39a8a;text-transform:uppercase}
.cta{background:linear-gradient(rgba(11,42,64,.82),rgba(11,42,64,.9)),linear-gradient(120deg,#13476B,#2A5F86);color:#fff;text-align:center;padding:150px 6vw}.cta h2{font-size:clamp(2.2rem,4.4vw,3.8rem);font-weight:400;margin:20px auto 10px;max-width:800px}
footer{background:var(--ink-deep);color:#A9BCCC;padding:60px 6vw;display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;font-size:.82rem}footer b{color:#fff;font-family:"Cormorant Garamond";letter-spacing:.2em;font-size:1.2rem}
@media(max-width:800px){nav{display:none}.burger{display:block}header{padding:22px 6vw}section{padding:80px 6vw}.intro,.cards{grid-template-columns:1fr;gap:30px}.card .img,.card:nth-child(2) .img{height:340px}.exp{grid-template-columns:1fr}.exp div{border-right:0;border-bottom:1px solid #e5e1d8;margin:0}.stats{grid-template-columns:1fr 1fr;row-gap:40px}.gal{grid-template-columns:1fr 1fr;grid-template-rows:200px 140px 140px}.gal .ph:first-child{grid-column:span 2;grid-row:auto}.partners div{width:44%}}

header.solid{position:sticky;background:var(--ink)}nav a.on{color:var(--bronze2);border-bottom:1px solid var(--bronze2);padding-bottom:4px}
.burger{background:none;border:0;border-top:1px solid #fff;border-bottom:1px solid #fff;cursor:pointer;padding:0}
.mnav{display:none;position:fixed;inset:0;background:var(--ink);z-index:20;flex-direction:column;justify-content:center;padding:0 10vw;gap:22px}.mnav.open{display:flex}.mnav a{color:#fff;font-family:"Cormorant Garamond";font-size:2.2rem;text-decoration:none}.mnav a.on{color:var(--bronze2)}.mnav .x{position:absolute;top:24px;right:6vw;color:#fff;background:none;border:0;font-size:2rem;cursor:pointer}
.phero{height:72vh;min-height:520px}.phero h1{font-size:clamp(2.4rem,5vw,4.6rem)}
.crumb{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;opacity:.8}.crumb a{color:var(--bronze2);text-decoration:none}
.prose{max-width:760px}.prose p{font-size:1.08rem;line-height:1.9;color:#4b5563;margin-bottom:22px}.prose h2{font-size:2.4rem;color:var(--ink);margin:14px 0 24px}
.ptag{color:var(--bronze);font-weight:500}
table.dt{width:100%;border-collapse:collapse;margin-top:10px}.dt th,.dt td{text-align:left;padding:18px 0;border-bottom:1px solid #e5e1d8;font-size:.95rem}.dt th{font-weight:500;color:var(--ink);width:40%;letter-spacing:.06em}.dt td{color:var(--mute)}
.two{display:grid;grid-template-columns:1.2fr 1fr;gap:7vw}
.masonry{columns:3 320px;column-gap:14px}.masonry figure{break-inside:avoid;margin:0 0 14px;cursor:zoom-in}.masonry .ph{width:100%}.masonry figure.hide{display:none}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}.filters button{background:none;border:1px solid #d9d2c5;padding:11px 22px;font:inherit;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;color:var(--char)}.filters button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.lb{display:none;position:fixed;inset:0;background:rgba(8,30,46,.95);z-index:30;align-items:center;justify-content:center;flex-direction:column}.lb.open{display:flex}.lb .ph{width:min(90vw,1100px);height:min(75vh,700px)}.lb button{position:absolute;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer;padding:10px}.lb .c{top:16px;right:24px}.lb .p{left:2vw}.lb .n{right:2vw}.lb .cap{color:#cbd5e1;margin-top:16px;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase}
.cgrid{display:grid;grid-template-columns:1fr 1.3fr;gap:7vw}.info p{line-height:2;color:#4b5563}.info a{color:var(--ink)}
form.cf{display:grid;gap:18px}.cf label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}.cf input,.cf textarea{width:100%;margin-top:8px;padding:15px;border:1px solid #d9d2c5;font:inherit;background:#fff}.cf .err{color:#b42318;font-size:.78rem;min-height:1em}.cf button{justify-self:start;cursor:pointer}.ok{color:#166534}
.fnav{display:flex;flex-wrap:wrap;gap:22px}.fnav a{color:#A9BCCC;text-decoration:none}
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:34px}.pcards a{text-decoration:none}
@media(max-width:800px){.phero{height:62vh;min-height:440px}.two,.cgrid,.pcards{grid-template-columns:1fr}.masonry{columns:2 150px;column-gap:8px}.masonry figure{margin-bottom:8px}.hero{min-height:600px}}
section.hero{padding:0 6vw 11vh}
.stats b.tbp{font-size:1.5rem;font-style:italic;opacity:.75;margin-bottom:10px}
a.card{display:block;color:inherit;text-decoration:none}a.card .ph{transition:transform 1.2s ease,filter .6s}a.card{overflow:hidden}a.card:hover .ph{transform:scale(1.03);filter:brightness(1.08)}a.card h2,a.card h3{transition:color .4s}a.card:hover h2,a.card:hover h3{color:var(--bronze)}a.card:focus-visible{outline:1px solid var(--bronze);outline-offset:6px}
.hero[data-label]{background-size:cover;background-position:center}
.cards a.card>.ph:not([style]){height:560px}@media(max-width:800px){.cards a.card>.ph:not([style]){height:380px}.cards .ph[style]{height:300px!important}}
.ptag,.preview-only{display:none}body.preview .ptag{display:block;color:var(--bronze)}
.ph::after{display:none}body.preview .ph::after{display:block}
.am{columns:2 200px;padding-left:18px;line-height:2;color:#4b5563}.masonry img,.cards img{width:100%;display:block;height:auto}
.mapwrap iframe{width:100%;height:460px;border:0}
.lb .stage .ph{width:min(90vw,1100px);height:min(75vh,700px)}
[hidden]{display:none!important}
body.preview section[hidden],body.preview .partners[hidden]{display:block!important}

.reviews{background:var(--paper);text-align:center}.reviews h2{font-size:clamp(2rem,3.4vw,3rem);color:var(--ink);margin-top:14px;font-weight:500}.reviews .rule{margin:28px auto 56px}
.rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:1100px;margin:0 auto;text-align:left;border-top:1px solid #e5e1d8}
.rv{margin:0;padding:44px 40px;border-bottom:1px solid #e5e1d8}.rv:not(:last-child){border-right:1px solid #e5e1d8}
.rv blockquote{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-size:1.45rem;line-height:1.5;color:var(--ink)}
.rv figcaption{margin-top:22px;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--bronze);font-weight:500}
@media(max-width:760px){.rv-grid{grid-template-columns:1fr}.rv{padding:34px 4px}.rv:not(:last-child){border-right:0}.rv blockquote{font-size:1.25rem}}

.rv-link{display:inline-block;margin-top:48px;font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--bronze);text-decoration:none;border-bottom:1px solid rgba(180,80,13,.45);padding-bottom:6px;transition:border-color .3s,color .3s}.rv-link:hover{border-color:var(--bronze)}.rv-link span{margin-left:6px}
/* Leadership & Team */
.team{background:var(--paper);padding:110px 6vw;text-align:center}
.team h2{font-size:2.6rem;color:var(--ink);margin:14px 0 56px;font-weight:500}
.tm-label{font-family:Inter,sans-serif;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--bronze);margin:0 auto 26px;display:flex;align-items:center;gap:18px;max-width:1100px}
.tm-label::before,.tm-label::after{content:"";flex:1;height:1px;background:rgba(238,113,25,.35)}
.tm-row{display:grid;grid-template-columns:repeat(3,1fr);max-width:1100px;margin:0 auto 64px}
.tm-row:last-child{margin-bottom:0}
.tm-card{padding:34px 24px;border-left:1px solid rgba(11,42,64,.12)}
.tm-card:first-child{border-left:0}
.tm-card h3{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:1.75rem;color:var(--ink);margin:0 0 12px}
.tm-card p{font-family:Inter,sans-serif;font-variant:small-caps;font-size:.95rem;letter-spacing:.12em;text-transform:lowercase;color:var(--char);margin:0}
.tm-card h3::after{content:"";display:block;width:28px;height:1px;background:var(--bronze);margin:14px auto 0}
@media(max-width:760px){.team{padding:80px 7vw}.team h2{font-size:2rem;margin-bottom:40px}.tm-row{grid-template-columns:1fr;margin-bottom:44px}.tm-card{border-left:0;border-top:1px solid rgba(11,42,64,.12);padding:26px 10px}.tm-card:first-child{border-top:0}}
.social{display:flex;gap:14px;align-items:center;margin-top:18px}
.social a{color:var(--orange);opacity:.8;transition:opacity .2s,color .2s;display:inline-flex}
.social a:hover,.social a:focus-visible{opacity:1;color:#F58A3A}
.social-contact{margin:22px 0 4px}.social-contact .eyebrow{margin-right:4px}

/* subcontractors form */
.sf .sf2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.cf select{width:100%;margin-top:8px;padding:15px;border:1px solid #d9d2c5;font:inherit;background:#fff;color:var(--char);appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--bronze) 50%),linear-gradient(135deg,var(--bronze) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.sfr{border:0;padding:0;margin:0;display:flex;gap:28px;align-items:center;flex-wrap:wrap}.sfr legend{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);margin-bottom:10px;float:left;width:100%}.sfr label{text-transform:none;letter-spacing:0;font-size:.95rem;color:var(--char);display:flex;gap:8px;align-items:center}.sfr input{accent-color:var(--bronze)}
.sf input[type=file]{padding:12px;background:var(--paper,#faf8f4)}.sfh{display:block;margin-top:8px;font-size:.78rem;color:var(--mute)}.sub-link a{color:var(--bronze)}
@media(max-width:800px){.sf .sf2{grid-template-columns:1fr}}

/* brand logo */
.logo img{display:block;height:58px;width:auto}footer .flogo{display:block;height:72px;width:auto;margin-bottom:18px}@media(max-width:800px){.logo img{height:46px}}
/* hero photo */
.hero.has-img{position:relative;overflow:hidden;background:#0B2A40}
.hero-media,.hero-slide,.hero-img,.hero-video{position:absolute;inset:0;width:100%;height:100%}
.hero-slide{opacity:0;transition:opacity 1.8s ease}.hero-slide.is-active{opacity:1}
.hero-video{object-fit:cover;z-index:1}
.hero-img{object-fit:cover;object-position:center 55%;filter:blur(.4px) saturate(1.05);transform:scale(1.03);}
.hero-slide.is-active .hero-img{animation:kb 14s ease-out forwards}
.hero-media:only-child .hero-img,.hero-media[data-single] .hero-img{animation:kb 32s ease-in-out infinite alternate}
.hero-ov{position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,42,64,.94) 0%,rgba(11,42,64,.7) 40%,rgba(11,42,64,.3) 72%,rgba(11,42,64,.35) 100%),linear-gradient(90deg,rgba(11,42,64,.55),rgba(11,42,64,0) 65%)}
.hero.has-img>div:not(.hero-ov):not(.hero-media){position:relative;z-index:1}
@keyframes kb{from{transform:scale(1.03)}to{transform:scale(1.12) translate(-1%,-1%)}}
@media (prefers-reduced-motion:reduce){.hero-img,.hero-slide .hero-img{animation:none!important}.hero-slide{transition:none}.hero-video{display:none}}
.ph.has-img::after{display:none}
.card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero.has-img .eyebrow{color:#F6B57A;text-shadow:0 1px 10px rgba(11,42,64,.9)}
.hero.has-img h1,.hero.has-img p{text-shadow:0 2px 18px rgba(11,42,64,.55)}
/* polish: larger logo, scrolled state, text-only cards, solo layout */
.logo img{height:76px;transition:height .3s}header{transition:padding .3s,background .3s}
header.scrolled{padding-top:12px;padding-bottom:12px}header.scrolled .logo img{height:60px}
@media(max-width:800px){.logo img{height:60px}header.scrolled .logo img{height:50px}header{padding:16px 6vw}.burger{width:32px;height:16px;border-top-width:2px;border-bottom-width:2px}}
header:not(.solid).scrolled{position:fixed;background:var(--ink)}
a.card.text-card{border-top:2px solid var(--bronze);padding:34px 0 10px;align-self:start}
.cards a.text-card .meta:first-child{margin-top:0!important}
section.two.solo{grid-template-columns:1fr}section.two.solo .prose{max-width:820px}
.hero.imgbg{background-size:cover;background-position:center 55%}
.masonry img{width:100%;display:block}
.exp .ph.has-img,.two .ph.has-img{position:relative}
.cards>a.card:not(.text-card):first-child{grid-row:span 2}.cards>a.text-card{grid-column:2}
@media(max-width:800px){.cards>a.text-card{grid-column:auto}.cards>a.card:first-child{grid-row:auto}.logo img{height:68px}header.scrolled .logo img{height:54px}}
.pcards>a.card:not(.text-card):first-child{grid-row:span 2}.pcards>a.text-card{grid-column:2}
@media(max-width:800px){.pcards>a.text-card{grid-column:auto}.pcards>a.card:first-child{grid-row:auto}}
