
:root{--navy:#111C26;--night:#0A151E;--charcoal:#202A33;--orange:#E38219;--orange-light:#ECA34F;--cream:#F6F3EC;--bone:#E9E6DF;--stone:#D7D4CC;--white:#FFFFFF;--muted:#A8B3BB;--ink:#17242E;--body:'Manrope',Arial,sans-serif;--display:'Manrope',Arial,sans-serif;--max:1400px;--gutter:clamp(24px,5.5vw,98px)}
    *,*::before,*::after{box-sizing:border-box}
    html{scroll-behavior:smooth;scroll-padding-top:95px}
    body{margin:0;background:var(--cream);font-family:var(--body);color:var(--ink);-webkit-font-smoothing:antialiased}
    body.menu-open{overflow:hidden}
    a{color:inherit;text-decoration:none}
    img{display:block;max-width:100%}
    button{font:inherit}
    .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
    :focus-visible{outline:3px solid var(--orange-light);outline-offset:4px}
    .wrap{max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}
    .overline{display:flex;align-items:center;gap:13px;font-family:var(--display);font-size:11px;line-height:1.5;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
    .overline::before{content:"";width:31px;height:2px;background:var(--orange);flex:none}
    .eyebrow{font-family:var(--display);font-size:11px;line-height:1.5;font-weight:800;letter-spacing:.19em;text-transform:uppercase}
    .section-number{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.13em;opacity:.66}
    .header{position:absolute;z-index:50;top:0;left:0;right:0;color:var(--white);border-bottom:1px solid rgba(255,255,255,.19)}
    .header::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,17,26,.76),rgba(7,17,26,0));pointer-events:none}
    .header-inner{height:114px;position:relative;display:flex;align-items:center;justify-content:space-between;gap:40px}
    .logo-link{display:flex;align-items:center;flex:none}
    .logo-link img{width:265px;height:auto;max-height:77px;object-fit:contain;object-position:left}
    .navigation{display:flex;align-items:center;gap:clamp(27px,3.1vw,55px)}
    .navigation a{font-family:var(--display);font-size:12px;line-height:1.4;font-weight:700;letter-spacing:.075em;position:relative;transition:color .2s}
    .navigation a::after{content:"";position:absolute;bottom:-12px;left:0;width:100%;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .2s}
    .navigation a:hover,.navigation a:focus-visible{color:var(--orange-light)}
    .navigation a:hover::after,.navigation a[aria-current="page"]::after{transform:scaleX(1)}
    .navigation a[aria-current="page"]{color:#fff}
    .header-right{display:flex;align-items:center;gap:21px}
    .nav-cta{display:inline-flex;justify-content:center;align-items:center;min-height:45px;padding:0 22px;border:1px solid rgba(255,255,255,.5);color:#fff;font-family:var(--display);font-size:10px;letter-spacing:.09em;text-transform:uppercase;font-weight:800;transition:background .2s,border .2s}
    .nav-cta:hover{background:var(--orange);border-color:var(--orange);color:var(--navy)}
    .mobile-toggle{display:none;width:47px;height:47px;align-items:center;justify-content:center;gap:5px;flex-direction:column;color:#fff;background:none;border:1px solid rgba(255,255,255,.35);cursor:pointer}
    .mobile-toggle span{width:19px;height:1px;background:currentColor;transition:transform .2s}
    .mobile-toggle[aria-expanded="true"] span:first-child{transform:translateY(3px) rotate(45deg)}
    .mobile-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3px) rotate(-45deg)}
    .hero{min-height:790px;height:min(920px,100svh);max-height:1020px;display:flex;align-items:center;position:relative;isolation:isolate;overflow:hidden;background:var(--night);color:#fff}
    .hero-photo{position:absolute;z-index:-3;inset:0;background:url('media/cb-photo-725e24256e6b.webp') center 48% / cover no-repeat;transform:scale(1.025)}
    .hero-shade{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(6,17,26,.97) 0%,rgba(9,20,30,.91) 24%,rgba(11,22,31,.69) 45%,rgba(7,18,27,.19) 78%),linear-gradient(180deg,rgba(5,15,23,.12) 40%,rgba(6,18,26,.68) 100%)}
    .hero-content{width:100%;position:relative;padding-top:115px;padding-bottom:130px}
    .hero-copy{max-width:800px}
    .hero .overline{color:#DDE6EA;margin-bottom:29px}
    .hero h1{font-family:var(--display);font-size:clamp(64px,7.05vw,110px);font-weight:800;letter-spacing:-.072em;line-height:1.055;max-width:850px;margin:0 0 27px}
    .hero h1 span{color:var(--orange)}
    .hero-lead{font-size:clamp(17px,1.55vw,20px);font-weight:400;line-height:1.8;color:#E3E8E9;max-width:475px;margin:0}
    .hero-actions{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin-top:37px}
    .btn{min-height:56px;display:inline-flex;align-items:center;justify-content:space-between;gap:36px;padding:0 28px;font-family:var(--display);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;transition:background .2s,color .2s,transform .2s,border-color .2s}
    .btn:hover{transform:translateY(-2px)}
    .btn-primary{background:var(--orange);color:#101B23;border:1px solid var(--orange)}
    .btn-primary:hover{background:#F2A044;border-color:#F2A044}
    .btn-outline{border:1px solid rgba(255,255,255,.55);color:#fff;background:rgba(255,255,255,.025)}
    .btn-outline:hover{background:#fff;color:var(--navy);border-color:#fff}
    .btn svg,.text-link svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}
    .hero-bottom{position:absolute;bottom:0;left:0;right:0;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:92px;border-top:1px solid rgba(255,255,255,.18);font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
    .hero-bottom span{opacity:.83}
    .hero-bottom .concept-tag{font-size:10px;color:#fff;background:rgba(14,28,39,.83);padding:11px 13px;border:1px solid rgba(255,255,255,.14);letter-spacing:.13em}
    .side-indicator{position:absolute;right:var(--gutter);top:45%;font-family:var(--display);font-size:10px;letter-spacing:.19em;writing-mode:vertical-rl;opacity:.7}
    .section{position:relative;overflow:hidden}
    .about{background:var(--cream);padding:145px 0 150px}
    .about-grid{display:grid;grid-template-columns: minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(70px,8vw,150px);align-items:center}
    .about .overline{color:#5A6269}
    .about h2,.value h2,.expertise h2,.projects h2,.contact h2{font-family:var(--display);font-size:clamp(43px,4.4vw,67px);line-height:1.15;letter-spacing:-.058em;font-weight:700;margin:24px 0 33px}
    .about h2{max-width:710px}
    .about-copy{max-width:575px;font-size:16px;line-height:1.94;color:#46545D}
    .about-copy p{margin:0 0 20px}
    .about-copy strong{color:var(--navy);font-weight:700}
    .about-aside{position:relative;padding:0 0 45px 46px}
    .about-aside::before{content:"";position:absolute;left:0;top:8%;height:80%;width:1px;background:#D0C9C1}
    .about-aside img{aspect-ratio:4 / 5;object-fit:cover;object-position:54% center;width:100%;filter:saturate(.88)}
    .aside-caption{position:absolute;left:0;bottom:0;min-width:250px;padding:20px 24px;background:var(--navy);color:#fff;box-shadow:20px -18px 0 rgba(246,243,236,.14)}
    .aside-caption span{display:block;color:var(--orange-light);font-size:10px;font-weight:800;letter-spacing:.16em;margin-bottom:7px}
    .aside-caption strong{font:700 14px/1.5 var(--display)}
    .thin-rule{border:0;border-top:1px solid currentColor;opacity:.2}
    .value{background:var(--navy);color:#fff;padding:140px 0 155px}
    .value::after{content:"";position:absolute;right:0;bottom:0;width:54%;height:100%;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:72px 72px;opacity:.34;pointer-events:none}
    .value::before{content:"";position:absolute;right:5%;bottom:12%;width:260px;height:260px;border-left:1px solid rgba(227,130,25,.10);border-bottom:1px solid rgba(227,130,25,.10);pointer-events:none}
    .value-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(70px,8vw,155px)}
    .value .overline{color:var(--orange-light)}
    .value h2{max-width:600px;margin-bottom:24px}
    .value-intro{max-width:425px;font-size:17px;line-height:1.85;color:#BFCAD0;margin:0}
    .value-list{padding-top:23px}
    .value-item{border-top:1px solid rgba(255,255,255,.19);padding:29px 0 32px;display:grid;grid-template-columns:57px 1fr;column-gap:20px}
    .value-item:last-child{border-bottom:1px solid rgba(255,255,255,.19)}
    .value-index{font:800 13px var(--display);color:var(--orange);letter-spacing:.08em;padding-top:7px}
    .value-item h3{font:700 clamp(20px,2vw,26px)/1.3 var(--display);letter-spacing:-.035em;margin:0 0 13px}
    .value-item p{color:#B9C3CA;margin:0;font-size:15px;line-height:1.8;max-width:420px}
    .expertise{padding:137px 0 145px;background:#fff}
    .section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:58px}
    .section-head h2{margin-bottom:0;max-width:680px}
    .section-head .head-note{max-width:300px;color:#64717B;font-size:15px;line-height:1.8;padding-bottom:10px}
    .service-grid{border-top:1px solid #D6DBDD;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
    .service{min-height:228px;border-bottom:1px solid #D6DBDD;padding:38px 60px 36px 0;display:flex;align-items:flex-start;gap:28px;position:relative;transition:background .2s}
    .service:nth-child(even){padding-left:52px;padding-right:8px;border-left:1px solid #D6DBDD}
    .service-number{font:800 12px var(--display);color:var(--orange);letter-spacing:.08em;padding-top:7px}
    .service h3{font:700 clamp(21px,2.15vw,28px)/1.32 var(--display);letter-spacing:-.04em;margin:0 0 13px}
    .service p{margin:0;max-width:350px;color:#5E6B74;font-size:15px;line-height:1.8}
    .expertise-bottom{display:flex;justify-content:flex-end;margin-top:34px}
    .text-link{display:inline-flex;gap:16px;align-items:center;font:800 11px/1.4 var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--navy);padding-bottom:8px;border-bottom:1px solid var(--orange)}
    .text-link:hover{color:#B66710}
    .projects{padding:133px 0 149px;background:var(--bone)}
    .projects .section-head{margin-bottom:58px}
    .projects h2{max-width:700px}
    .portfolio{display:grid;grid-template-columns:1.17fr .83fr;grid-template-rows:repeat(2,minmax(250px,1fr));gap:20px;min-height:710px}
    .project{position:relative;overflow:hidden;background:var(--navy);color:#fff;isolation:isolate;display:flex;align-items:flex-end;min-height:250px}
    .project-feature{grid-row:span 2}
    .project img{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;filter:saturate(.85)}
    .project:hover img{transform:scale(1.035)}
    .project-feature img{object-position:51% 45%}
    .project:nth-child(2) img{object-position:55% 30%}
    .project:nth-child(3) img{object-position:55% 40%}
    .project::after{content:"";z-index:-1;position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,30,.02) 27%,rgba(5,14,21,.82) 100%)}
    .project-content{width:100%;padding:31px 33px 31px}
    .project-feature .project-content{padding:41px 41px 42px}
    .project-label{display:inline-block;margin-bottom:13px;font:800 10px/1.5 var(--display);letter-spacing:.16em;color:#F6C18B;text-transform:uppercase}
    .project h3{font:700 clamp(23px,2.3vw,32px)/1.3 var(--display);letter-spacing:-.045em;margin:0}
    .project-feature h3{font-size:clamp(27px,2.8vw,39px)}
    .project-sub{font-size:13px;color:#D8E1E5;margin-top:9px}
    .projects .project-notice{font-size:13px;line-height:1.7;color:#69737A;max-width:680px;margin:24px 0 0}
    .projects-bottom{margin-top:33px;display:flex;align-items:center;justify-content:space-between;gap:20px}
    .projects-bottom .small-note{font:700 10px/1.6 var(--display);letter-spacing:.14em;color:#7E868B;text-transform:uppercase}
    .contact{background:var(--night);color:#fff;min-height:540px;display:flex;align-items:center;padding:106px 0 121px}
    .contact::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,19,29,.97),rgba(8,19,29,.88)),url('media/cb-photo-2e4a8393c4bb.webp') 50% 45% / cover;z-index:0}
    .contact::after{content:"";position:absolute;top:0;left:var(--gutter);right:var(--gutter);height:1px;background:rgba(255,255,255,.2)}
    .contact-grid{position:relative;width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:65px}
    .contact .overline{color:var(--orange-light)}
    .contact h2{max-width:760px;font-size:clamp(44px,5.6vw,79px);margin:22px 0 24px}
    .contact p{max-width:560px;color:#CED8DD;font-size:16px;line-height:1.9;margin:0}
    .contact-cta{display:flex;flex-direction:column;align-items:flex-end;gap:14px;padding-bottom:7px}
    .contact-cta small{color:#899AA6;font-size:12px;max-width:300px;text-align:right;line-height:1.6}
    .footer{background:#0A151E;color:#D9E2E7;border-top:1px solid rgba(255,255,255,.13)}
    .footer-main{padding-top:58px;padding-bottom:57px;display:grid;grid-template-columns:1.25fr 1fr;gap:60px}
    .footer-logo{width:250px;height:auto}
    .footer-slogan{margin-top:18px;font:600 14px var(--display);color:#fff}
    .footer-main-right{justify-self:end;text-align:right}
    .footer-location{font:800 10px/1.9 var(--display);letter-spacing:.2em;text-transform:uppercase;color:#D7E1E7}
    .footer-web{display:block;margin-top:10px;font-size:14px;color:#AAB8C0}
    .footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;padding-bottom:26px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#8D9EA8;font-size:11px;letter-spacing:.05em}
    .page-only-note{font-size:12px;line-height:1.65;color:#94A4AD}
    .modal-backdrop{position:fixed;z-index:99;inset:0;background:rgba(6,15,23,.8);display:none;align-items:center;justify-content:center;padding:24px}
    .modal-backdrop[data-open="true"]{display:flex}
    .modal-card{width:min(100%,540px);background:var(--cream);color:var(--ink);padding:42px 42px 36px;position:relative;box-shadow:0 35px 100px rgba(0,0,0,.5)}
    .modal-card h2{font:800 28px/1.2 var(--display);letter-spacing:-.04em;margin:20px 0 15px}
    .modal-card p{line-height:1.8;color:#47545E;margin:0 0 24px}
    .modal-card .eyebrow{color:#B26D18}
    .modal-close{position:absolute;right:17px;top:17px;width:37px;height:37px;border:1px solid #B8BEC1;background:transparent;cursor:pointer}
    .modal-contact{font:700 12px var(--display);padding-top:14px;border-top:1px solid #D2D5D6;color:#59666C}
    @media(max-width:1200px){.navigation{gap:24px}.nav-cta{display:none}.logo-link img{width:220px}.hero h1{font-size:clamp(62px,7.4vw,95px)}.about-grid{gap:65px}.value-grid{gap:80px}}
    @media(max-width:900px){.header-inner{height:95px}.logo-link img{width:224px}.mobile-toggle{display:flex}.navigation{position:absolute;z-index:3;top:95px;left:0;right:0;display:none;flex-direction:column;gap:0;align-items:stretch;background:#111C26;padding:14px var(--gutter) 25px;box-shadow:0 24px 40px rgba(0,0,0,.24)}.navigation[data-open="true"]{display:flex}.navigation a{padding:17px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:14px}.navigation a::after{display:none}.hero{min-height:720px;height:min(860px,100svh)}.hero-content{padding-top:100px;padding-bottom:110px}.hero h1{font-size:clamp(56px,10vw,82px)}.hero-bottom{min-height:80px}.side-indicator{display:none}.about,.value,.expertise,.projects{padding:90px 0}.about-grid,.value-grid{grid-template-columns:1fr;gap:50px}.about-aside{max-width:620px;margin:auto;width:100%}.value-list{padding-top:0}.section-head{align-items:flex-start;flex-direction:column;gap:9px}.section-head .head-note{max-width:600px}.contact-grid{align-items:flex-start;flex-direction:column;gap:35px}.contact-cta{align-items:flex-start}.contact-cta small{text-align:left}.contact{min-height:480px}.portfolio{min-height:600px}}
    @media(max-width:650px){:root{--gutter:24px}.header-inner{height:86px}.navigation{top:86px}.logo-link img{width:205px;max-height:60px}.hero{height:790px;min-height:710px;max-height:none;align-items:center}.hero-photo{background-position:65% center}.hero-shade{background:linear-gradient(90deg,rgba(6,17,26,.96),rgba(6,17,26,.77) 47%,rgba(6,17,26,.38)),linear-gradient(0deg,rgba(5,14,23,.8),rgba(5,14,23,0) 65%)}.hero-content{padding-top:92px;padding-bottom:95px}.hero .overline{font-size:10px;max-width:330px;margin-bottom:25px}.hero h1{font-size:clamp(49px,10.4vw,71px);letter-spacing:-.065em}.hero-lead{font-size:16px;line-height:1.75;max-width:365px}.hero-actions{gap:13px;margin-top:31px}.btn{min-height:52px;padding:0 19px;font-size:10px;gap:20px}.hero-bottom{min-height:72px;justify-content:space-between;font-size:9px;gap:7px}.hero-bottom .concept-tag{padding:8px 9px;font-size:8px;max-width:45%;text-align:center}.hero-bottom .built{display:none}.about,.value,.expertise,.projects{padding:75px 0 82px}.about h2,.value h2,.expertise h2,.projects h2{font-size:clamp(39px,8.6vw,53px);margin:17px 0 27px}.about-copy{font-size:15px;line-height:1.88}.about-aside{padding-left:18px;padding-bottom:34px}.aside-caption{min-width:220px;padding:15px 17px}.value-intro{font-size:15px}.value-list{margin-top:0}.value-item{grid-template-columns:36px 1fr;gap:8px;padding:24px 0}.value-item h3{font-size:22px}.value-item p{font-size:14px}.section-head{margin-bottom:35px}.service-grid{grid-template-columns:1fr}.service{min-height:unset;padding:28px 5px 32px 0;gap:18px}.service:nth-child(even){padding-left:0;padding-right:5px;border-left:none}.service h3{font-size:23px}.service p{font-size:14px}.expertise-bottom{justify-content:flex-start}.portfolio{grid-template-columns:1fr;grid-template-rows:370px 250px 250px;gap:12px;min-height:unset}.project-feature{grid-row:span 1}.project-content,.project-feature .project-content{padding:22px 22px 24px}.project h3,.project-feature h3{font-size:24px}.projects-bottom{align-items:flex-start;flex-direction:column}.contact{min-height:460px;padding:85px 0 90px}.contact h2{font-size:clamp(42px,9.1vw,59px)}.contact p{font-size:15px}.footer-main{grid-template-columns:1fr;gap:30px;padding-top:46px;padding-bottom:38px}.footer-main-right{text-align:left;justify-self:start}.footer-logo{width:225px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:11px}.modal-card{padding:36px 25px 28px}}
    @media(max-width:365px){.logo-link img{width:185px}.hero{height:775px}.hero h1{font-size:47px}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .btn{justify-content:space-between;max-width:290px}.hero-bottom .concept-tag{font-size:8px}.service{gap:15px}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* PROJECTS — Edition 04 corporate design system / R00 */
.cbp-hero{position:relative;isolation:isolate;min-height:675px;height:min(810px,93svh);display:flex;align-items:center;overflow:hidden;color:#fff;background:var(--night)}
.cbp-hero-photo{position:absolute;z-index:-3;inset:0;background:url('media/cb-photo-573be902d897.webp') center 49%/cover no-repeat;filter:saturate(.89)}
.cbp-hero-shade{position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,rgba(6,17,26,.97) 0%,rgba(7,19,28,.89) 30%,rgba(8,19,28,.59) 57%,rgba(7,18,27,.17) 100%),linear-gradient(0deg,rgba(7,18,27,.73),transparent 49%)}
.cbp-hero-inner{position:relative;width:100%;padding-top:130px;padding-bottom:125px}
.cbp-hero .overline{color:#E4E9EB;margin-bottom:26px}
.cbp-hero h1{font:800 clamp(70px,8vw,122px)/1.05 var(--display);letter-spacing:-.077em;margin:0 0 25px}
.cbp-hero h1 em{font-style:normal;color:var(--orange)}
.cbp-hero-intro{font-size:clamp(17px,1.55vw,21px);line-height:1.75;color:#E5E9EB;max-width:405px;margin:0 0 35px}
.cbp-hero-bottom{position:absolute;bottom:0;left:0;right:0;min-height:77px;border-top:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:space-between;gap:14px;font:800 10px var(--display);text-transform:uppercase;letter-spacing:.16em;color:#D9E2E6}
.cbp-hero-bottom strong{color:#ECA34F}
.cbp-collection{background:var(--cream);padding:132px 0 144px}
.cbp-heading-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(45px,7vw,130px);align-items:end;margin-bottom:58px}
.cbp-collection .overline{color:#57616A}
.cbp-collection h2{font:700 clamp(45px,5vw,79px)/1.12 var(--display);letter-spacing:-.062em;margin:23px 0 0;max-width:800px}
.cbp-collection-desc{color:#52616B;font:400 16px/1.85 var(--body);max-width:410px;margin:0 0 5px}
.cbp-series-meta{display:flex;flex-wrap:wrap;gap:16px 42px;align-items:center;border-top:1px solid #D4D0C8;border-bottom:1px solid #D4D0C8;padding:22px 0;margin-bottom:26px}
.cbp-series-meta div{display:flex;align-items:baseline;gap:12px}
.cbp-series-meta span{font:800 10px var(--display);letter-spacing:.15em;color:#8D6A42;text-transform:uppercase}
.cbp-series-meta strong{font:700 12px var(--display);letter-spacing:.04em;color:var(--ink)}
.cbp-view{display:block;position:relative;width:100%;height:100%;border:0;padding:0;margin:0;background:#253038;overflow:hidden;color:#fff;cursor:zoom-in;text-align:left}
.cbp-view img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform .55s ease,filter .55s ease}
.cbp-view:hover img,.cbp-view:focus-visible img{transform:scale(1.045);filter:saturate(1)}
.cbp-view:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(7,18,27,.62));pointer-events:none}
.cbp-view .cbp-view-label{position:absolute;bottom:20px;left:22px;z-index:2;font:800 10px var(--display);letter-spacing:.16em;text-transform:uppercase}
.cbp-view .cbp-expand{position:absolute;bottom:19px;right:22px;z-index:2;font:700 12px var(--display);display:flex;align-items:center;gap:9px}
.cbp-view .cbp-expand svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}
.cbp-gallery-primary{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:15px;align-items:stretch;height:clamp(430px,49vw,725px)}
.cbp-gallery-primary .cbp-view:last-child img{object-position:center 50%}
.cbp-gallery-secondary{display:grid;grid-template-columns:1.05fr .9fr 1.05fr;gap:15px;margin-top:15px;height:clamp(240px,27vw,385px)}
.cbp-gallery-secondary .cbp-view:first-child img{object-position:55% center}
.cbp-gallery-secondary .cbp-view:nth-child(2) img{object-position:58% center}
.cbp-gallery-secondary .cbp-view:last-child img{object-position:56% center}
.cbp-gallery-note{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #D4D0C8;margin-top:36px;padding-top:22px;color:#5F6A72;font-size:12px;line-height:1.75}
.cbp-gallery-note strong{font:800 10px var(--display);letter-spacing:.14em;color:#A66B29;text-transform:uppercase}
.cbp-close{background:var(--navy);color:#fff;padding:112px 0 120px}
.cbp-close-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:60px;align-items:end}
.cbp-close h2{font:700 clamp(50px,5.7vw,82px)/1.14 var(--display);letter-spacing:-.065em;margin:22px 0 22px}
.cbp-close h2 em{font-style:normal;color:var(--orange)}
.cbp-close p{color:#C6D1D7;font-size:17px;line-height:1.78;max-width:550px;margin:0}
.cbp-close-action{justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:13px}
.cbp-close-action small{font:400 12px/1.7 var(--body);color:#91A1AC;text-align:right}
.cbp-lightbox{position:fixed;inset:0;z-index:100;background:rgba(6,14,21,.97);color:#fff;display:none;align-items:center;justify-content:center;padding:68px clamp(16px,5vw,90px)}
.cbp-lightbox[data-open="true"]{display:flex}
.cbp-lightbox-inner{width:min(100%,1200px);height:min(100%,860px);display:flex;flex-direction:column;align-items:center;gap:17px;outline:0}
.cbp-lightbox-image{max-width:100%;min-height:0;flex:1;object-fit:contain}
.cbp-lightbox-meta{display:flex;align-items:center;justify-content:space-between;width:100%;font:700 10px var(--display);letter-spacing:.15em;text-transform:uppercase;color:#CED8DD;gap:20px}
.cbp-lightbox-close{position:absolute;right:clamp(16px,3vw,55px);top:17px;display:flex;align-items:center;gap:9px;background:transparent;border:1px solid rgba(255,255,255,.42);color:#fff;padding:10px 15px;font:700 11px var(--display);letter-spacing:.05em;cursor:pointer}
.cbp-lightbox-close:hover{background:#E38219;color:#111C26;border-color:#E38219}
@media(max-width:1000px){.cbp-collection{padding:105px 0}.cbp-heading-row{gap:50px}.cbp-hero{height:730px}.cbp-gallery-primary{height:570px}.cbp-gallery-secondary{height:300px}}
@media(max-width:900px){.cbp-heading-row,.cbp-close-grid{grid-template-columns:1fr;gap:30px}.cbp-close-action{justify-self:start;align-items:flex-start}.cbp-close-action small{text-align:left}.cbp-hero h1{font-size:clamp(64px,9.8vw,90px)}}
@media(max-width:650px){.cbp-hero{height:720px;min-height:650px}.cbp-hero-photo{background-position:59% center}.cbp-hero-shade{background:linear-gradient(90deg,rgba(7,17,25,.96),rgba(7,17,25,.71) 62%,rgba(7,17,25,.42)),linear-gradient(0deg,rgba(7,17,25,.78),transparent 54%)}.cbp-hero-inner{padding-top:99px;padding-bottom:97px}.cbp-hero h1{font-size:clamp(54px,13.1vw,76px);letter-spacing:-.07em}.cbp-hero-intro{font-size:16px;max-width:315px}.cbp-hero-bottom{min-height:69px;font-size:9px;letter-spacing:.12em}.cbp-hero-bottom span:nth-child(2){display:none}.cbp-collection{padding:73px 0 83px}.cbp-heading-row{margin-bottom:34px;gap:23px}.cbp-collection h2{font-size:clamp(42px,9.5vw,61px);margin-top:18px}.cbp-collection-desc{font-size:15px}.cbp-series-meta{padding:17px 0;gap:10px 22px;margin-bottom:13px}.cbp-series-meta div{gap:8px}.cbp-series-meta span{font-size:9px}.cbp-series-meta strong{font-size:10px}.cbp-gallery-primary{grid-template-columns:1fr;height:auto;gap:12px}.cbp-gallery-primary .cbp-view:first-child{height:360px}.cbp-gallery-primary .cbp-view:last-child{height:460px}.cbp-gallery-secondary{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;height:auto}.cbp-gallery-secondary .cbp-view{height:245px}.cbp-gallery-secondary .cbp-view:last-child{grid-column:1/-1;height:270px}.cbp-view .cbp-view-label{bottom:15px;left:15px;font-size:9px}.cbp-view .cbp-expand{bottom:15px;right:15px;font-size:10px}.cbp-gallery-note{flex-direction:column;gap:7px;margin-top:25px;padding-top:19px;font-size:11px}.cbp-close{padding:77px 0 88px}.cbp-close h2{font-size:clamp(44px,9vw,65px)}.cbp-close p{font-size:15px}.cbp-lightbox{padding:76px 12px 44px}.cbp-lightbox-meta{font-size:9px}}
@media(max-width:355px){.cbp-hero h1{font-size:53px}.cbp-gallery-secondary .cbp-view{height:190px}.cbp-gallery-secondary .cbp-view:last-child{height:250px}}
@media(prefers-reduced-motion:reduce){.cbp-view img{transition:none}}


/* R01: Five balanced portfolio studies */
.cbp-heading-row{align-items:end;margin-bottom:57px}
.cbp-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:54px 25px}
.cbp-item{grid-column:span 2;min-width:0}
.cbp-item:nth-child(4){grid-column:2 / span 2}
.cbp-item:nth-child(5){grid-column:4 / span 2}
.cbp-item .cbp-view{height:auto;aspect-ratio:1 / 1.03;background:#172630;cursor:zoom-in}
.cbp-item .cbp-view img{object-fit:cover;filter:saturate(.91)}
.cbp-item-info{padding-top:18px}
.cbp-item-type{color:#9A682C;text-transform:uppercase;letter-spacing:.14em;font:800 10px var(--display);margin-bottom:10px}
.cbp-item h3{font:700 clamp(21px,2.1vw,29px)/1.28 var(--display);letter-spacing:-.035em;margin:0 0 11px}
.cbp-item p{font-size:14px;line-height:1.75;color:#56636b;margin:0;max-width:380px}
.cbp-view .cbp-expand{background:rgba(9,23,33,.80);border:1px solid rgba(255,255,255,.35);padding:9px 11px;bottom:15px;right:14px;font-size:9px;letter-spacing:.07em}
.cbp-view .cbp-view-label{left:16px;bottom:24px;font-size:9px;max-width:67%}
.cbp-lightbox-image{max-height:calc(100% - 54px)}
@media(max-width:1050px){.cbp-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 22px}.cbp-item{grid-column:span 2!important}.cbp-item:last-child{grid-column:2 / span 2!important}}
@media(max-width:650px){.cbp-tiles{grid-template-columns:1fr;gap:42px}.cbp-item,.cbp-item:nth-child(4),.cbp-item:nth-child(5),.cbp-item:last-child{grid-column:1 / -1!important}.cbp-item .cbp-view{aspect-ratio:1.11}.cbp-item-info{padding-top:16px}.cbp-item h3{font-size:23px}.cbp-item p{font-size:13px}.cbp-collection{padding-top:72px;padding-bottom:80px}.cbp-heading-row{margin-bottom:35px}}

/* R02: Projects editorial showcase — Services R01 inspired, Projects-specific */
.cbp-portfolio-intro{background:var(--cream);padding:115px 0 86px}
.cbp-portfolio-heading{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);align-items:end;gap:clamp(55px,7vw,120px)}
.cbp-portfolio-heading .overline{color:#6B7378}
.cbp-portfolio-heading h2{font:750 clamp(46px,4.8vw,76px)/1.16 var(--display);letter-spacing:-.065em;margin:24px 0 0;max-width:790px}
.cbp-portfolio-heading h2 em{font-style:normal;color:#B46D1D}
.cbp-portfolio-heading p{font:400 17px/1.85 var(--body);color:#5E6870;max-width:420px;margin:0 0 5px}
.cbp-feature{padding:106px 0 118px;position:relative;overflow:hidden}
.cbp-feature.light{background:var(--cream);color:var(--ink)}
.cbp-feature.dark{background:var(--navy);color:white}
.cbp-feature-grid{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);gap:clamp(60px,7.3vw,126px);align-items:center}
.cbp-feature.reverse .cbp-feature-media{order:2}
.cbp-feature.reverse .cbp-feature-copy{order:1}
.cbp-feature-media{height:590px;min-height:590px;align-self:stretch;box-shadow:0 30px 55px rgba(15,29,39,.09)}
.cbp-feature-media img{object-fit:cover;width:100%;height:100%;filter:saturate(.91)}
.cbp-feature-media .cbp-view-label{bottom:20px;left:20px;max-width:70%;background:rgba(9,24,34,.86);border:1px solid rgba(255,255,255,.28);padding:10px 12px;line-height:1.35}
.cbp-feature-media .cbp-expand{bottom:20px;right:19px;z-index:3;padding:10px 12px;background:rgba(9,24,34,.86);border:1px solid rgba(255,255,255,.28);font:750 10px var(--display);letter-spacing:.035em}
.cbp-feature-media::before{content:"";position:absolute;z-index:2;top:26px;left:26px;right:-18px;bottom:-18px;border:1px solid rgba(227,130,25,.33);pointer-events:none}
.cbp-feature.dark .cbp-feature-media::before{border-color:rgba(227,130,25,.58)}
.cbp-feature-copy{position:relative;min-width:0}
.cbp-feature-copy .overline{color:#9B6124;font-size:10px}
.cbp-feature.dark .cbp-feature-copy .overline{color:#ECA34F}
.cbp-feature-type{display:block;margin:27px 0 10px;font:800 10px/1.7 var(--display);letter-spacing:.18em;text-transform:uppercase;color:#A56A2C}
.cbp-feature.dark .cbp-feature-type{color:#ECA34F}
.cbp-feature-copy h2{margin:0 0 26px;max-width:610px;font:750 clamp(42px,4.2vw,64px)/1.13 var(--display);letter-spacing:-.058em;overflow-wrap:break-word}
.cbp-title-period{color:var(--orange)}
.cbp-feature-description{font-size:17px;line-height:1.86;color:#4E5B64;max-width:560px;margin:0 0 32px}
.cbp-feature.dark .cbp-feature-description{color:#CBD6DD}
.cbp-feature-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid #CCD0CF;border-bottom:1px solid #CCD0CF;padding:23px 0}
.cbp-feature.dark .cbp-feature-bottom{border-color:rgba(255,255,255,.24)}
.cbp-feature-bottom span{font:800 10px/1.5 var(--display);letter-spacing:.15em;text-transform:uppercase;color:#9B6124}
.cbp-feature.dark .cbp-feature-bottom span{color:#ECA34F}
.cbp-feature-bottom strong{font:650 13px/1.5 var(--display);color:#27333D;text-align:right}
.cbp-feature.dark .cbp-feature-bottom strong{color:#fff}
.cbp-feature-action{appearance:none;background:transparent;color:inherit;border:0;border-bottom:1px solid #AC6A24;padding:0 0 12px;margin-top:33px;cursor:pointer;font:800 11px/1.5 var(--display);letter-spacing:.1em;text-transform:uppercase;display:inline-flex;align-items:center;gap:24px;transition:gap .24s,color .24s}
.cbp-feature-action:hover{gap:33px;color:#D08730}
.cbp-feature-action span{font-size:17px;font-weight:400}
.cbp-note{background:#E9E6DF;padding:30px 0}
.cbp-note-inner{display:flex;align-items:flex-start;gap:48px}
.cbp-note span{font:800 10px/1.75 var(--display);letter-spacing:.16em;text-transform:uppercase;color:#956126;min-width:135px}
.cbp-note p{font:400 13px/1.75 var(--body);color:#5A666D;max-width:835px;margin:0}
.cbp-lightbox{padding:70px clamp(18px,5vw,90px) 45px}
.cbp-lightbox-inner{max-height:95%;height:100%;justify-content:center}
.cbp-lightbox-image{flex:1;object-fit:contain;min-height:0;max-height:calc(100% - 145px)}
.cbp-lightbox-meta{max-width:1150px;align-items:start}
.cbp-dialog-description{font:400 13px/1.65 var(--body);color:#BFCAD1;max-width:680px;text-transform:none;letter-spacing:normal;margin:0}
.cbp-dialog-nav{width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:0}
.cbp-dialog-nav button{border:1px solid rgba(255,255,255,.32);padding:11px 18px;background:transparent;color:#fff;cursor:pointer;font:700 11px var(--display)}
.cbp-dialog-nav button:hover,.cbp-dialog-nav button:focus-visible{background:#E38219;color:#111C26;border-color:#E38219}
.cbp-lightbox-meta strong{font:750 12px/1.5 var(--display);letter-spacing:.08em;text-transform:uppercase;color:#fff}
@media(max-width:1050px){.cbp-feature{padding:85px 0 95px}.cbp-feature-grid{gap:45px}.cbp-feature-media{height:510px;min-height:510px}}
@media(max-width:900px){.cbp-portfolio-heading,.cbp-feature-grid{grid-template-columns:1fr;gap:35px}.cbp-portfolio-intro{padding:85px 0 64px}.cbp-feature{padding:75px 0 83px}.cbp-feature-media{max-width:810px;height:560px;min-height:0;aspect-ratio:1.18}.cbp-feature.reverse .cbp-feature-media,.cbp-feature.reverse .cbp-feature-copy{order:initial}.cbp-feature-copy{max-width:770px}.cbp-feature-copy h2{font-size:clamp(44px,6.4vw,65px)}.cbp-feature-media::before{right:-13px;bottom:-13px}}
@media(max-width:650px){.cbp-portfolio-intro{padding:70px 0 51px}.cbp-portfolio-heading{gap:18px}.cbp-portfolio-heading h2{font-size:clamp(39px,10vw,52px);margin-top:17px}.cbp-portfolio-heading p{font-size:15px}.cbp-feature{padding:58px 0 66px}.cbp-feature-grid{gap:30px}.cbp-feature-media{height:auto;min-height:unset;aspect-ratio:1.03}.cbp-feature-media .cbp-view-label{font-size:8px;left:12px;bottom:12px;max-width:58%;padding:8px 9px}.cbp-feature-media .cbp-expand{font-size:9px;right:12px;bottom:12px;padding:8px 9px}.cbp-feature-media::before{left:12px;top:12px;right:-9px;bottom:-9px}.cbp-feature-type{margin:22px 0 9px}.cbp-feature-copy h2{font-size:clamp(39px,10vw,51px);margin-bottom:18px}.cbp-feature-description{font-size:15px;line-height:1.75;margin-bottom:23px}.cbp-feature-bottom{gap:8px;padding:17px 0}.cbp-feature-bottom strong{font-size:12px}.cbp-feature-action{margin-top:25px}.cbp-note-inner{display:block}.cbp-note{padding:25px 0}.cbp-note p{margin-top:10px;font-size:12px}.cbp-lightbox{padding:82px 12px 22px}.cbp-lightbox-image{max-height:calc(100% - 165px)}.cbp-dialog-description{font-size:11px}.cbp-lightbox-meta strong{font-size:10px}.cbp-lightbox-close{top:17px}.cbp-dialog-nav button{padding:9px 15px}.cbp-dialog-nav{margin-top:7px}}
@media(prefers-reduced-motion:reduce){.cbp-feature-action,.cbp-feature-media img{transition:none}}


/* Projects R03: photography-led portfolio, distinct from Services R15 */
.cbp-feature-media{overflow:hidden;background:#E8E5DE}
.cbp-feature-media img{width:100%;height:100%;object-fit:cover;object-position:center center}
.cbp-feature:nth-of-type(5) .cbp-feature-media img{object-position:center center}
#engineering .cbp-feature-media img,#planning .cbp-feature-media img{object-fit:contain;background:#F6F3EC}
#commercial .cbp-feature-media img{object-position:center 42%}
#mixed-use .cbp-feature-media img{object-position:61% center}
#residential .cbp-feature-media img{object-position:54% 50%}
.cbp-feature-media img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.cbp-feature-media:hover img{transform:scale(1.035)}
@media(max-width:650px){.cbp-feature-media{aspect-ratio:1.02!important}#engineering .cbp-feature-media,#planning .cbp-feature-media{aspect-ratio:1.0!important}}


/* CIVIL BUILDERS | Projects R04 | curated portfolio-gallery presentation.
   Distinct from the locked Services R15 alternating service narratives. */
.cbp-portfolio-intro{padding:94px 0 55px;background:var(--cream)}
.cbp-portfolio-heading h2{font-size:clamp(43px,4.8vw,70px)}
.cbp-gallery-shell{background:var(--cream);padding-bottom:126px}
.cbp-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 34px;align-items:stretch}
.cbp-gallery-grid .cbp-feature{padding:0!important;margin:0!important;background:transparent!important;color:var(--navy)!important;overflow:visible;min-width:0}
.cbp-gallery-grid .cbp-feature-grid{display:flex!important;flex-direction:column;gap:0!important;align-items:stretch;width:100%;padding:0!important;max-width:none!important;background:#FFFFFF;box-shadow:0 14px 40px rgba(17,28,38,.045);height:100%}
.cbp-gallery-grid .cbp-feature-media,
.cbp-gallery-grid .cbp-feature.reverse .cbp-feature-media{display:block!important;order:0!important;position:relative;min-height:0!important;height:auto!important;aspect-ratio: 1.38!important;width:100%;max-width:none!important;align-self:stretch;margin:0!important;box-shadow:none;background:#E9E6DF;border:0!important;padding:0;overflow:hidden;cursor:zoom-in}
.cbp-gallery-grid .cbp-feature-media::before{display:none!important}
.cbp-gallery-grid .cbp-feature-media::after{content:"";position:absolute;inset:0;border:1px solid rgba(17,28,38,.09);pointer-events:none}
.cbp-gallery-grid .cbp-feature-media img{height:100%!important;width:100%!important;object-fit:cover;object-position:center;filter:saturate(.94)}
.cbp-gallery-grid .cbp-expand{position:absolute;bottom:17px;right:17px;left:auto;z-index:4;font:800 10px/1.45 var(--display);letter-spacing:.09em;text-transform:uppercase;background:rgba(17,28,38,.88);color:white;border:1px solid rgba(255,255,255,.3);padding:11px 15px;white-space:nowrap}
.cbp-gallery-grid .cbp-feature-copy,
.cbp-gallery-grid .cbp-feature.reverse .cbp-feature-copy{order:1!important;flex:1;max-width:none!important;min-width:0;padding:37px 38px 38px!important;background:#fff}
.cbp-gallery-grid .cbp-feature-copy .overline{font-size:10px!important;color:#9B6124!important}
.cbp-gallery-grid .cbp-feature-type{font-size:10px;margin:20px 0 9px;color:#9B6124!important}
.cbp-gallery-grid .cbp-feature-copy h2{font-size:clamp(30px,3.1vw,44px);line-height:1.16;letter-spacing:-.052em;color:var(--navy)!important;margin:0 0 16px;max-width:none}
.cbp-gallery-grid .cbp-feature-description{font-size:14px;line-height:1.82;color:#58656D!important;margin-bottom:22px;max-width:620px}
.cbp-gallery-grid .cbp-feature-bottom{border-top:1px solid #DDE0DD!important;border-bottom:0!important;padding:17px 0 0;gap:10px}
.cbp-gallery-grid .cbp-feature-bottom span{color:#956126!important}
.cbp-gallery-grid .cbp-feature-bottom strong{color:#34434B!important;text-align:right}
/* One wide cinematic district showcase anchors the centre of the page. */
.cbp-gallery-grid #mixed-use{grid-column:1/-1}
.cbp-gallery-grid #mixed-use .cbp-feature-grid{display:grid!important;grid-template-columns: minmax(0,1.45fr) minmax(0,.9fr);align-items:center;min-height:415px;background:var(--navy)}
.cbp-gallery-grid #mixed-use .cbp-feature-media{aspect-ratio:auto!important;height:100%!important;min-height:415px!important}
.cbp-gallery-grid #mixed-use .cbp-feature-copy{display:flex;flex-direction:column;justify-content:center;background:var(--navy);color:#fff;padding:50px clamp(32px,4.5vw,75px)!important}
.cbp-gallery-grid #mixed-use .cbp-feature-copy h2{color:#fff!important;font-size:clamp(34px,3.1vw,51px)}
.cbp-gallery-grid #mixed-use .cbp-feature-description{color:#D2DEE2!important}
.cbp-gallery-grid #mixed-use .cbp-feature-bottom{border-color:rgba(255,255,255,.24)!important}
.cbp-gallery-grid #mixed-use .cbp-feature-bottom strong{color:#fff!important}
.cbp-gallery-grid #mixed-use .cbp-feature-bottom span{color:#ECA34F!important}
.cbp-gallery-grid #mixed-use .cbp-feature-type,.cbp-gallery-grid #mixed-use .cbp-feature-copy .overline{color:#ECA34F!important}
/* Technical cases are purposefully not another building-photo showcase. */
.cbp-gallery-grid #engineering .cbp-feature-media,
.cbp-gallery-grid #planning .cbp-feature-media{background:#F2F0EA}
.cbp-gallery-grid #engineering .cbp-feature-media img,
.cbp-gallery-grid #planning .cbp-feature-media img{object-fit:contain!important;object-position:center!important;padding:7px;filter:none}
.cbp-gallery-grid #engineering .cbp-feature-copy,
.cbp-gallery-grid #planning .cbp-feature-copy{background:#FAF8F4}
/* The R02 Projects lightbox remains interactive and keyboard navigable. */
@media(max-width:980px){
 .cbp-gallery-grid{gap:24px}
 .cbp-gallery-grid .cbp-feature-copy{padding:30px 25px 31px!important}
 .cbp-gallery-grid #mixed-use .cbp-feature-grid{grid-template-columns:1.1fr 1fr}
 .cbp-gallery-grid #mixed-use .cbp-feature-media{min-height:390px!important}
 .cbp-gallery-grid #mixed-use .cbp-feature-copy{padding:30px!important}
}
@media(max-width:690px){
 .cbp-portfolio-intro{padding:74px 0 43px}
 .cbp-gallery-grid{grid-template-columns:1fr;gap:25px}
 .cbp-gallery-shell{padding-bottom:86px}
 .cbp-gallery-grid .cbp-feature{grid-column:1/-1!important}
 .cbp-gallery-grid .cbp-feature-media{aspect-ratio:1.20!important;min-height:0!important}
 .cbp-gallery-grid .cbp-feature-copy{padding:26px 24px 29px!important}
 .cbp-gallery-grid .cbp-feature-copy h2{font-size:clamp(30px,8vw,39px)}
 .cbp-gallery-grid #mixed-use .cbp-feature-grid{display:flex!important;flex-direction:column}
 .cbp-gallery-grid #mixed-use .cbp-feature-media{height:auto!important;min-height:0!important;aspect-ratio:1.24!important}
 .cbp-gallery-grid #mixed-use .cbp-feature-copy{padding:30px 24px 35px!important;width:100%}
 .cbp-gallery-grid #engineering .cbp-feature-media,
 .cbp-gallery-grid #planning .cbp-feature-media{aspect-ratio:1.12!important}
}


/* PROJECTS R05 | development portfolio refinement, standalone */
.cbp-hero-photo{background-image:url("media/cb-photo-1a12e0e32eeb.webp")!important;background-position:56% 47%!important;transform:scale(1.01)}
.cbp-hero-shade{background:linear-gradient(90deg,rgba(5,17,26,.96) 0%,rgba(6,18,27,.90) 30%,rgba(8,20,28,.62) 61%,rgba(8,20,28,.30) 100%),linear-gradient(0deg,rgba(6,17,24,.63),transparent 57%)!important}
.cbp-gallery-shell{padding-bottom:104px}
.cbp-gallery-grid{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);gap:26px;align-items:stretch}
.cbp-gallery-grid .cbp-feature-grid{border:1px solid #e1e0db;box-shadow:0 22px 65px rgba(17,28,38,.075)}
.cbp-gallery-grid #residential .cbp-feature-media{aspect-ratio:1.26!important}
.cbp-gallery-grid #commercial .cbp-feature-media{aspect-ratio:1.26!important}
.cbp-gallery-grid .cbp-feature-media img{filter:saturate(.96);transition:transform .65s ease}
.cbp-gallery-grid .cbp-feature-media:hover img{transform:scale(1.035)}
.cbp-gallery-grid #residential .cbp-feature-media img{object-position:50% 50%}
.cbp-gallery-grid #commercial .cbp-feature-media img{object-position:50% 45%}
.cbp-gallery-grid .cbp-feature-copy,.cbp-gallery-grid .cbp-feature.reverse .cbp-feature-copy{padding:37px 38px 40px!important}
.cbp-gallery-grid .cbp-feature-copy h2{font-size:clamp(30px,3vw,43px)}
.cbp-gallery-grid .cbp-feature-copy h2 em{color:#b96d1f}
.cbp-portfolio-intro{padding:100px 0 58px}
.cbp-portfolio-heading h2{max-width:750px}
.cbp-gallery-grid .cbp-feature-copy .overline{letter-spacing:.18em}
.cbp-gallery-grid .cbp-feature-bottom{margin-top:26px}
.cbp-visual-note{font:500 12px/1.8 var(--body);color:#68747a;margin:24px 0 0;max-width:970px}
.cbp-jump{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:34px}
.cbp-jump a{font:800 11px/1.5 var(--display);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #d18a38;padding-bottom:8px;transition:color .2s}
.cbp-jump a:hover{color:#B66710}
.cbp-jump i{font-style:normal;color:#a6afb4}
@media(max-width:900px){.cbp-gallery-grid{grid-template-columns:1fr 1fr;gap:18px}.cbp-gallery-grid .cbp-feature-copy,.cbp-gallery-grid .cbp-feature.reverse .cbp-feature-copy{padding:28px 25px!important}}
@media(max-width:690px){.cbp-gallery-grid{grid-template-columns:1fr}.cbp-gallery-grid #residential .cbp-feature-media,.cbp-gallery-grid #commercial .cbp-feature-media{aspect-ratio:1.23!important}.cbp-hero-photo{background-position:64% center!important}.cbp-gallery-shell{padding-bottom:76px}.cbp-portfolio-intro{padding:72px 0 44px}}


/* Civil Builders Projects R06 | four editorial portfolio studies */
.cbp-gallery-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px!important;align-items:stretch}
.cbp-gallery-grid>.cbp-feature{min-width:0;display:block;margin:0!important;padding:0!important;background:transparent!important}
.cbp-gallery-grid .cbp-feature-grid{height:100%;display:flex!important;flex-direction:column;overflow:hidden;background:#fff;box-shadow:0 16px 52px rgba(17,28,38,.065)}
.cbp-gallery-grid .cbp-feature-media{width:100%!important;aspect-ratio:1.6!important;min-height:0!important}
.cbp-gallery-grid .cbp-feature-media img{width:100%;height:100%;object-fit:cover}
.cbp-gallery-grid #engineering .cbp-feature-media img{object-position:52% center}
.cbp-gallery-grid #planning .cbp-feature-media img{object-position:center center}
.cbp-gallery-grid .cbp-feature-copy{min-width:0;flex:1;width:100%!important;display:flex;flex-direction:column;justify-content:flex-start;padding:35px 37px 38px!important}
.cbp-gallery-grid .cbp-feature-copy h2{font-size:clamp(27px,2.8vw,41px)!important;line-height:1.17}
.cbp-gallery-grid .cbp-feature-description{font-size:15px;line-height:1.78}
.cbp-gallery-grid .cbp-feature-bottom{margin-top:auto;padding-top:25px}
.cbp-gallery-grid #engineering .cbp-feature-grid{background:#111C26;color:#fff;border-color:#1f3544}
.cbp-gallery-grid #engineering .cbp-feature-description{color:#c6d0d6}
.cbp-gallery-grid #engineering .cbp-feature-bottom{border-color:rgba(255,255,255,.2)}
.cbp-gallery-grid #engineering .cbp-feature-copy h2 em{color:#E38219}
.cbp-gallery-grid #planning .cbp-feature-grid{background:#f5f1e9}
.cbp-gallery-grid #engineering .cbp-feature-type{color:#ECA34F}
.cbp-gallery-grid #planning .cbp-feature-type{color:#AE6D22}
.cbp-jump{row-gap:12px}
@media(max-width:850px){.cbp-gallery-grid{grid-template-columns:1fr!important}.cbp-gallery-grid .cbp-feature-media{aspect-ratio:1.6!important}.cbp-gallery-grid .cbp-feature-copy{padding:29px!important}}
@media(max-width:600px){.cbp-gallery-grid .cbp-feature-media{aspect-ratio:1.32!important}.cbp-gallery-grid .cbp-feature-copy{padding:25px!important}}


/* R07: consistent, premium 2 x 2 portfolio grid; visual variety without repeating studies labels. */
.cbp-gallery-grid .cbp-feature-type,.cbp-gallery-grid .cbp-feature-bottom{display:none!important}
.cbp-gallery-grid .cbp-feature-copy{justify-content:center!important}
.cbp-gallery-grid .cbp-feature-description{margin-bottom:0!important}
.cbp-gallery-grid #commercial .cbp-feature-grid,
.cbp-gallery-grid #engineering .cbp-feature-grid{background:#111C26!important;border-color:#23394A!important;color:#fff!important}
.cbp-gallery-grid #commercial .cbp-feature-copy h2,
.cbp-gallery-grid #engineering .cbp-feature-copy h2{color:#fff!important}
.cbp-gallery-grid #commercial .cbp-feature-description,
.cbp-gallery-grid #engineering .cbp-feature-description{color:#C7D1D7!important}
.cbp-gallery-grid #commercial .overline,
.cbp-gallery-grid #engineering .overline{color:#ECA34F!important}
.cbp-gallery-grid #residential .cbp-feature-grid,
.cbp-gallery-grid #planning .cbp-feature-grid{background:#F6F3EC!important;color:#17242E!important}
.cbp-gallery-grid #residential .cbp-feature-copy h2,
.cbp-gallery-grid #planning .cbp-feature-copy h2{color:#111C26!important}
.cbp-gallery-grid #residential .cbp-feature-description,
.cbp-gallery-grid #planning .cbp-feature-description{color:#46545D!important}
.cbp-gallery-grid .cbp-feature-copy h2{margin-bottom:20px!important}
.cbp-gallery-grid .cbp-feature-media{border-radius:0!important}


/* R08: targeted contrast correction — retain all R07 imagery, copy and layout. */
.cbp-gallery-grid #commercial .cbp-feature-grid,
.cbp-gallery-grid #engineering .cbp-feature-grid {
  background:#F6F3EC!important;
  color:#111C26!important;
  border-color:#E2DDD4!important;
}
.cbp-gallery-grid #commercial .cbp-feature-copy,
.cbp-gallery-grid #engineering .cbp-feature-copy {
  background:#F6F3EC!important;
  color:#111C26!important;
}
.cbp-gallery-grid #commercial .cbp-feature-copy h2,
.cbp-gallery-grid #engineering .cbp-feature-copy h2 {
  color:#111C26!important;
}
.cbp-gallery-grid #commercial .cbp-feature-description,
.cbp-gallery-grid #engineering .cbp-feature-description {
  color:#46545D!important;
}
.cbp-gallery-grid #commercial .cbp-feature-copy .overline,
.cbp-gallery-grid #engineering .cbp-feature-copy .overline {
  color:#9B6124!important;
}


/* Civil Builders | approved final visual system: scoped, minimal adjustments */
html{scroll-behavior:smooth;scroll-padding-top:100px}
body,button,input,select,textarea{font-family:'Manrope',Arial,sans-serif}
:focus-visible{outline:2px solid #E38219;outline-offset:4px}
/* End sections remain individual by page; shared tone and typography */
.section.contact,.services-close,.cbp-close,.plain-bottom{
  background:#fff!important;color:#111C26!important;min-height:unset!important;
  border-top:1px solid #e9e9e6!important;isolation:isolate;
}
.services-close::before,.services-close::after,.cbp-close::before,.cbp-close::after{content:none!important;display:none!important;background:none!important}
.section.contact h2,.services-close h2,.cbp-close h2,.plain-bottom h2{color:#111C26!important}
.section.contact h2 em,.services-close h2 em,.cbp-close h2 em,.plain-bottom h2 em{color:#C46B10!important;font-style:italic!important}
.section.contact p,.services-close p,.cbp-close p,.plain-bottom p{color:#53616C!important}
.section.contact .overline,.services-close .overline,.cbp-close .overline{color:#B55E09!important}
.section.contact,.services-close,.cbp-close{padding-top:clamp(75px,9vw,130px)!important;padding-bottom:clamp(80px,9vw,130px)!important}
.plain-bottom{padding-top:clamp(70px,8vw,110px)!important;padding-bottom:clamp(75px,8vw,115px)!important}
/* The end CTA reads as editorial light, without shifting the page content */
.section.contact .btn,.services-close .btn,.cbp-close .btn{background:#E38219!important;color:#0A151E!important;border-color:#E38219!important}
.section.contact .btn:hover,.services-close .btn:hover,.cbp-close .btn:hover{background:#f19a34!important;border-color:#f19a34!important}
/* Approved unified footer */
.cb-final-footer{background:#0A151E;color:#fff;padding:65px 0 25px;border-top:0;font-family:'Manrope',Arial,sans-serif}
.cb-final-footer *{box-sizing:border-box}
.cb-final-footer .cbf-wrap{width:min(1440px,calc(100% - 9vw));margin:0 auto}
.cb-final-footer .cbf-footer-top{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:35px}
.cb-final-footer .cbf-footer-logo{width:clamp(220px,23vw,315px);height:auto;display:block;max-width:100%}
.cb-final-footer .cbf-location{text-align:right;text-transform:uppercase;letter-spacing:.2em;line-height:1.8;font-size:12px;font-weight:750}
.cb-final-footer .cbf-location a{display:block;margin-top:12px;font-size:13px;letter-spacing:0;text-transform:none;color:#b9c7d1;text-decoration:none;font-weight:450}
.cb-final-footer .cbf-location a:hover{color:#E38219}
.cb-final-footer .cbf-rule{height:1px;background:#2d3a44;margin:42px 0 30px}
.cb-final-footer .cbf-footer-middle{display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap}
.cb-final-footer .cbf-connect-label{text-transform:uppercase;letter-spacing:.19em;font-size:11px;font-weight:700;color:#b5c2cb}
.cb-final-footer .cbf-socials{display:flex;gap:12px;flex-wrap:wrap}
.cb-final-footer .cbf-social-link{height:48px;width:48px;display:flex;align-items:center;justify-content:center;border:1px solid #354550;background:#13242f;color:#f4f7f9;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .2s}
.cb-final-footer .cbf-social-link:hover,.cb-final-footer .cbf-social-link:focus-visible{color:#E38219;border-color:#E38219;background:#1a2d39;transform:translateY(-2px)}
.cb-final-footer .cbf-social-link svg{width:20px;height:20px}
.cb-final-footer .cbf-footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;gap:14px;color:#98a9b4;font-size:12px;line-height:1.5}
.cb-final-footer .cbf-footer-bottom a{color:inherit;text-decoration:none}
.cb-final-footer .cbf-footer-bottom a:hover{color:#E38219}
@media(max-width:750px){.cb-final-footer .cbf-wrap{width:calc(100% - 42px)}.cb-final-footer .cbf-footer-top{grid-template-columns:1fr}.cb-final-footer{padding-top:50px}.cb-final-footer .cbf-location{text-align:left}.cb-final-footer .cbf-footer-middle{align-items:flex-start;flex-direction:column}.cb-final-footer .cbf-rule{margin:29px 0}.cb-final-footer .cbf-footer-logo{width:min(280px,85%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cb-final-footer *{transition:none!important}}
/* Fallback for photographic/illustrative project studies: keep transparent portfolio positioning */
.cbf-concept-note{font-size:13px;line-height:1.6;color:#52616B;margin:15px 0 0;max-width:700px}
/* Form state */
#form-status[data-show="true"]{display:block;opacity:1}
.cb-honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;height:1px!important;overflow:hidden!important}

/* Civil Builders R02 | Publication refinements: shared typography, responsive hero/header, layout safety */
:root{--cb-navy:#111C26;--cb-orange:#E38219;--cb-paper:#F6F3EC;}
html{scroll-padding-top:96px;scroll-behavior:smooth}
body,button,input,select,textarea{font-family:'Manrope',Arial,sans-serif}
img{max-width:100%}
*,*::before,*::after{box-sizing:border-box}
:focus-visible{outline:3px solid #E38219;outline-offset:3px}
/* Every page uses one header/header typography system */
.header-inner{height:114px!important}
.header .navigation a{font-family:'Manrope',Arial,sans-serif;font-size:14px;letter-spacing:.035em;font-weight:700}
.header .nav-cta{font-size:13px;letter-spacing:.045em;font-weight:800;min-height:45px}
.header .logo-link img{width:265px;max-width:100%;height:auto}
/* Consistent first-fold dimensions, title size and content alignment on desktop */
main>section.hero:first-child,main>section.services-hero:first-child,main>section.cbp-hero:first-child{
  display:flex!important;align-items:center!important;box-sizing:border-box!important;
  min-height:760px!important;height:clamp(760px,83svh,920px)!important;max-height:none!important;
  padding-block:0!important;
}
main>section.hero:first-child .hero-content,
main>section.services-hero:first-child .services-hero-copy,
main>section.cbp-hero:first-child .cbp-hero-inner{padding-block:135px 105px;position:relative;z-index:1;width:100%}
main>section.hero:first-child h1,
main>section.services-hero:first-child h1,
main>section.cbp-hero:first-child h1{
  font-family:'Manrope',Arial,sans-serif!important;font-size:clamp(64px,7vw,104px)!important;
  line-height:1.055!important;letter-spacing:-.07em!important;font-weight:800!important;max-width:920px;
}
/* Footer remains a unified approved dark component; white CTA remains visually distinct */
.cb-final-footer{border-top:0!important}
.cb-final-footer .cbf-footer-logo{height:auto}
.cb-privacy-note{width:min(1100px,calc(100% - 48px));margin:38px auto 0;padding:22px 25px;border-top:1px solid #dfe4e6;color:#46545F;font-size:13px;line-height:1.85}
.cb-privacy-note strong{display:block;color:#111C26;font-weight:800;margin-bottom:6px}
.cb-privacy-note p{margin:0;max-width:850px}
.cb-privacy-note a{color:#A9560A;text-decoration:underline;text-underline-offset:3px}
#privacy-note{scroll-margin-top:115px}
#enquiry{scroll-margin-top:95px}
#project-form button:disabled{opacity:.7;cursor:progress}
/* Prevent mobile 100vw overflow from any scenic layers */
body{min-width:320px;overflow-x:clip}
@media (min-width:901px) and (max-width:1150px){
 .header .navigation{gap:20px!important}
 .header .navigation a{font-size:12px!important}
 .header .logo-link img{width:225px}
}
@media(max-width:900px){
 .header-inner{height:95px!important}
 .header .logo-link img{width:clamp(195px,32vw,240px)}
 main>section.hero:first-child,main>section.services-hero:first-child,main>section.cbp-hero:first-child{
  height:clamp(660px,84svh,810px)!important;min-height:660px!important;
 }
 main>section.hero:first-child .hero-content,
 main>section.services-hero:first-child .services-hero-copy,
 main>section.cbp-hero:first-child .cbp-hero-inner{padding-block:130px 85px}
 main>section.hero:first-child h1,
 main>section.services-hero:first-child h1,
 main>section.cbp-hero:first-child h1{font-size:clamp(51px,8.7vw,78px)!important}
 .header .navigation a{font-size:15px}
}
@media(max-width:600px){
 .header-inner{height:86px!important}
 .header .logo-link img{width:200px}
 main>section.hero:first-child,main>section.services-hero:first-child,main>section.cbp-hero:first-child{
  height:700px!important;min-height:700px!important;max-height:none!important;
 }
 main>section.hero:first-child .hero-content,
 main>section.services-hero:first-child .services-hero-copy,
 main>section.cbp-hero:first-child .cbp-hero-inner{padding-block:112px 86px}
 main>section.hero:first-child h1,
 main>section.services-hero:first-child h1,
 main>section.cbp-hero:first-child h1{
   font-size:clamp(42px,10.7vw,60px)!important;line-height:1.08!important;letter-spacing:-.063em!important;
 }
 main>section.hero:first-child p,
 main>section.services-hero:first-child p,
 main>section.cbp-hero:first-child p{max-width:36ch}
 .cb-privacy-note{width:calc(100% - 38px);padding:18px 0 0}
 .cb-final-footer .cbf-social-link{width:46px;height:46px}
}
@media(max-width:370px){
 .header .logo-link img{width:176px}
 main>section.hero:first-child h1,
 main>section.services-hero:first-child h1,
 main>section.cbp-hero:first-child h1{font-size:41px!important}
 .cb-final-footer .cbf-socials{gap:8px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Civil Builders R03: consistency fixes, intentionally applied LAST on every page */
:root{--cb-navy:#111C26;--cb-orange:#E38219;--cb-deep:#0A151E;--cb-cream:#F6F3EC}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{overflow-x:clip}
.header{z-index:50}
.header .wrap.header-inner{height:114px!important;min-height:114px!important;display:flex;align-items:center!important;box-sizing:border-box!important}
.header .logo-link{display:flex!important;flex:0 0 auto;align-items:center!important;justify-content:flex-start!important;max-width:265px}
.header .logo-link img{display:block!important;width:265px!important;height:auto!important;max-height:84px!important;object-fit:contain!important}
.header nav.navigation{align-items:center!important;justify-content:center!important;gap:clamp(20px,2.4vw,38px)!important}
.header nav.navigation>a{font-family:'Manrope',Arial,sans-serif!important;font-size:14px!important;font-weight:700!important;letter-spacing:.035em!important;line-height:1.35!important;white-space:nowrap}
.header .header-right .nav-cta{font-family:'Manrope',Arial,sans-serif!important;font-size:13px!important;font-weight:800!important;letter-spacing:.05em!important;line-height:1.25!important}
.header nav.navigation>a[aria-current='page']::after{background:#E38219!important;height:3px!important}
.cb-privacy-note{width:min(1100px,calc(100% - 48px));margin:30px auto 0;padding:18px 0 0;border-top:1px solid #dfe4e6;color:#485660;font-size:13px;line-height:1.7}
.cb-privacy-note strong{font-size:13px;font-weight:800;color:#111C26;margin:0 0 3px}
.cb-privacy-note p{margin:0}
#enquiry,#privacy-note{scroll-margin-top:112px}
@media(min-width:901px) and (max-width:1180px){
 .header .logo-link img{width:225px!important}
 .header .logo-link{max-width:225px}
 .header nav.navigation{gap:clamp(12px,1.8vw,22px)!important}
 .header nav.navigation>a{font-size:12px!important}
}
@media(max-width:900px){
 .header .wrap.header-inner{height:95px!important;min-height:95px!important}
 .header .logo-link img{width:clamp(190px,29vw,235px)!important}
 .header .logo-link{max-width:235px}
 .header nav.navigation>a{font-size:15px!important}
}
@media(max-width:600px){
 .header .wrap.header-inner{height:86px!important;min-height:86px!important}
 .header .logo-link img{width:200px!important}
 .header .logo-link{max-width:200px}
 .cb-privacy-note{width:calc(100% - 38px);padding-top:14px}
}
@media(max-width:370px){.header .logo-link img{width:176px!important}.header .logo-link{max-width:176px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(max-width:720px){.cbp-hero-photo{background-image:url('media/cb-photo-1a12e0e32eeb-mobile.webp')!important;}}
