@font-face{font-family:Inter;src:url('../fonts/inter-latin.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--C1:#A6084A;--C2:#3A3A3A;--C3:#6B6B6B;--C4:#FFFFFF;--C5:#D8D8D8;--C6:#E2E2E2;--C7:#4A4A4A;--C8:#555555;--C9:#7A0637;--C10:#E6BDCB;--H1-hero:52px;--H1-2:28px;--H1-title:34px;--H2:28px;--H3:20px;--P1:18px;--P2:17px;--P3:14px;--LBL:13px;--NAV:15px;--BTN:16px;--S1:56px;--S2:32px;--S3:12px;--S4:16px;--S5:24px;--S6:24px;--S7:32px;--S8-y:14px;--S8-x:28px;--header-height:88px;--tabs-height:48px}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--tabs-height) + var(--S3))}body{margin:0;color:var(--C2);background:var(--C4);font-family:Inter,Arial,sans-serif;font-size:var(--P2);line-height:1.5}h1,h2,h3,h4,p,ul,ol{margin:0}h1,h2,h3,h4{line-height:1.2}h2{font-size:var(--H2);font-weight:700}h3{font-size:var(--H3);font-weight:600}p{max-width:720px}p+p{margin-top:var(--S4)}.P1{font-size:var(--P1)}.P2{font-size:var(--P2)}.P3{font-size:var(--P3)}.muted{color:var(--C3)}.site-container{width:calc(100% - 2 * var(--S7));max-width:1440px;margin-inline:auto}.section{padding-block:var(--S1)}.section h2+.card-grid,.section h2+.clients-grid,.section h2+.tile-grid,.section h2+.work-grid,.section h2+.timeline,.section h2+.profile{margin-top:var(--S2)}.border-section{border-top:1px solid var(--C6)}a{color:var(--C1);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s,border-color .2s,background-color .2s}a:visited{color:var(--C1)}a:hover,a:active{color:var(--C9);text-decoration-thickness:2px}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--C1);outline-offset:2px;scroll-margin-top:calc(var(--header-height) + var(--tabs-height) + var(--S3))}.button,.button:visited{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:var(--S8-y) var(--S8-x);background:var(--C1);color:var(--C4);font-size:var(--BTN);font-weight:600;line-height:1.5;border:0;border-radius:0;text-decoration:none;cursor:pointer}.button:hover,.button:active,.button.is-current{background:var(--C9);color:var(--C4);text-decoration:none}.button.secondary{background:transparent;border:1.5px solid var(--C4);color:var(--C4)}.button.secondary:hover{background:var(--C4);color:var(--C2)}button,input,textarea,select{font:inherit;border-radius:0}button{cursor:pointer}img{display:block;max-width:100%;height:auto}svg{flex-shrink:0}.outline-icon{width:32px;height:32px;color:var(--C1)}[hidden]{display:none!important}section[id],article[id],div[id]{scroll-margin-top:calc(var(--header-height) + var(--tabs-height) + var(--S3))}.skip-link{position:fixed;left:var(--S7);top:-100%;background:var(--C4);padding:var(--S3);z-index:1200}.skip-link:focus{top:var(--S3)}
.site-header{position:sticky;top:0;background:var(--C4);border-bottom:1px solid var(--C6);z-index:1000}.header-inner{display:flex;align-items:center;gap:var(--S6);min-height:88px}.brand{margin-right:auto;flex-shrink:0}.brand img{width:200px;height:auto}.desktop-nav{display:flex;align-items:center;gap:var(--S6)}.nav-link,.nav-link:visited{font-size:var(--NAV);font-weight:500;color:var(--C2);padding:var(--S3) 0;border-bottom:2px solid transparent;text-decoration:none}.nav-link.active,.nav-link:hover{color:var(--C1);border-bottom-color:var(--C1)}.service-dropdown{position:relative;display:flex;align-items:center}.dropdown-toggle-control{border:0;background:transparent;min-width:24px;min-height:44px;color:var(--C2)}.service-menu{position:absolute;top:100%;left:0;background:var(--C4);border:1px solid var(--C6);padding:var(--S3);width:max-content;max-width:calc(100vw - var(--S7)*2)}.service-menu a{display:block;font-size:var(--NAV);font-weight:500;padding:var(--S3);text-decoration:none;color:var(--C2);min-height:44px}.service-menu a:hover{color:var(--C1);text-decoration:underline}.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;padding:var(--S3)}.menu-toggle span{display:block;height:2px;background:var(--C2);margin-block:4px}.mobile-menu{padding-block:var(--S5);max-height:calc(100dvh - 88px);overflow:auto}.mobile-menu a{display:block;padding-block:var(--S3);color:var(--C2);font-size:var(--NAV);text-decoration:none;min-height:44px;border-bottom:1px solid var(--C6)}.mobile-service-links{padding-left:var(--S5)}
.home-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:520px;height:calc(100svh - var(--header-height) - 148px);max-height:700px}.hero-photo{position:absolute;inset:0;z-index:-2}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center}.home-hero:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(255,255,255,.58),rgba(255,255,255,.50) 38%,rgba(255,255,255,0) 65%)}.hero-copy{max-width:720px;padding-block:var(--S1)}.hero-copy h1{font-size:var(--H1-hero);font-weight:700;line-height:1.2;max-width:720px}.hero-line2{font-size:var(--H1-2);font-weight:500;line-height:1.2;margin-top:var(--S4);white-space:nowrap}.hero-copy .P1{margin-top:var(--S3)}.hero-copy .button{margin-top:var(--S2)}.credibility{border-top:1px solid var(--C6);padding-block:var(--S1);background:var(--C4)}.credibility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.credibility-grid>a,.credibility-grid>div{padding-inline:var(--S5);border-right:1px solid var(--C6);color:var(--C2);font-weight:400;text-decoration:none}.credibility-grid>:first-child{padding-left:0}.credibility-grid>:last-child{padding-right:0;border-right:0}.credibility h3{font-size:var(--H3);margin-bottom:var(--S3)}.credibility p{font-size:var(--P3);color:var(--C3)}.credibility a:hover h3{color:var(--C1);text-decoration:underline}.home-credibility{padding-block:var(--S2);background:var(--C2);border-color:var(--C8)}.home-credibility .credibility-grid>*{text-align:center;border-color:var(--C8);color:var(--C4)}.home-credibility h3,.home-credibility p{color:var(--C4)}.home-credibility a:hover h3{color:var(--C4)}.surface-band{background:var(--C5)}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--S6)}.service-card{display:block;background:var(--C4);padding:var(--S5);border:0;text-decoration:none;color:var(--C2);font-weight:400}.service-card:visited{color:var(--C2)}.service-card h3{margin-top:var(--S3);margin-bottom:var(--S3)}.service-card:hover h3{color:var(--C1)}.service-card p{font-size:var(--P2);color:var(--C2)}.tile-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--S6)}.sector-tile{padding:var(--S5);border:1px solid var(--C6);text-decoration:none;color:var(--C2);text-align:center;display:flex;align-items:center;flex-direction:column;gap:var(--S3);font-size:var(--P2);font-weight:600}.sector-tile:visited{color:var(--C2)}.sector-tile:hover,.sector-tile:focus-visible{color:var(--C1);border-color:var(--C1)}.section-heading{display:flex;justify-content:space-between;gap:var(--S6);align-items:center;margin-bottom:var(--S2)}.section-heading a{font-size:var(--P2)}.project-card{border:1px solid var(--C6);background:var(--C4);display:flex;flex-direction:column;min-width:0}.project-card img{width:100%;aspect-ratio:3/2;object-fit:cover}.card-body{padding:var(--S5)}.project-card h3{font-size:var(--H3);margin-bottom:var(--S3)}.project-card h3 a{color:var(--C2);text-decoration:none;font-weight:600}.project-card:has(a):hover{border-color:var(--C1)}.project-card:has(a):hover h3 a{color:var(--C1)}.project-card .P3+.P3{margin-top:0}.project-image-link{display:block}.clients-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--S6)}.client-tile{display:flex;align-items:center;justify-content:center;border:1px solid var(--C6);padding:var(--S3);font-size:var(--P3);font-weight:600;color:var(--C2);text-align:center;overflow-wrap:anywhere}.title-band{background:var(--C7);padding-block:var(--S1);color:var(--C4)}.title-band h1{font-size:var(--H1-title);font-weight:700;max-width:none}.page-label,.page-label:visited{font-size:var(--LBL);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--C10);display:block;text-decoration:none;margin-bottom:var(--S3)}a.page-label:hover{color:var(--C10);text-decoration:underline}a.page-label:focus-visible{outline-color:var(--C4)}.title-band .P1{margin-top:var(--S3)}.title-band .button,.title-actions{margin-top:var(--S2)}.title-actions{display:flex;gap:var(--S6)}.title-actions .button{margin-top:0}.title-band a:focus-visible,.cta-band a:focus-visible,.site-footer a:focus-visible,.site-footer button:focus-visible{outline-color:var(--C4)}
.cta-band{background:var(--C7);color:var(--C4);padding-block:var(--S1);border-bottom:1px solid var(--C8)}.cta-inner{display:flex;align-items:center;gap:var(--S6)}.cta-inner>div{flex:1}.cta-inner h2{font-size:var(--H2);font-weight:700;margin-bottom:var(--S3)}.cta-inner p{font-size:var(--P2)}.cta-email,.cta-email:visited{display:flex;align-items:center;gap:var(--S3);color:var(--C4);font-size:var(--P2);font-weight:400;text-decoration:none;border-left:1px solid var(--C8);padding-left:var(--S5);overflow-wrap:anywhere}.cta-email svg{width:24px;height:24px;color:var(--C4)}.cta-email:hover{color:var(--C4);text-decoration:underline}.site-footer{background:var(--C2);color:var(--C4);padding-top:var(--S1)}.footer-grid{display:flex;justify-content:space-between;gap:var(--S6);padding-bottom:var(--S1)}.footer-grid nav{min-width:max-content}.footer-grid h3{font-size:var(--H3);margin-bottom:var(--S3)}.footer-grid nav a{display:block;color:var(--C4);font-size:var(--P3);font-weight:400;text-decoration:none;line-height:1.5;padding-block:4px;white-space:nowrap}.footer-grid nav a:hover{color:var(--C4);text-decoration:underline}.footer-brand{min-width:150px}.brand-text,.brand-text:visited{font-size:var(--H2);font-weight:700;line-height:1.2;color:#F2B8CC;text-decoration:none;white-space:nowrap}.brand-text span{color:var(--C4)}.accreditation-logos{display:flex;gap:var(--S3);margin-top:var(--S3)}.accreditation-logos:empty{display:none}.accreditation-logos img{height:32px;width:auto}.linkedin,.linkedin:visited{display:flex;align-items:center;gap:var(--S3);font-size:var(--P3);font-weight:400;color:var(--C4);margin-top:var(--S3);text-decoration:none}.linkedin svg{width:24px;height:24px;color:var(--C4)}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:var(--S3);padding-block:var(--S5);border-top:1px solid var(--C8);font-size:var(--P3)}.footer-bottom a,.footer-bottom button{font-size:var(--P3);color:var(--C4);font-weight:400;background:none;border:0;border-left:1px solid var(--C8);padding-left:var(--S3);text-decoration:none}.footer-bottom a:hover,.footer-bottom button:hover{color:var(--C4);text-decoration:underline}
.profile{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--S2)}.profile+.profile{margin-top:var(--S6);padding-top:var(--S6);border-top:1px solid var(--C6)}.profile img{width:240px;aspect-ratio:1;object-fit:cover}.profile h3{margin-top:4px;margin-bottom:0}.profile .role{color:var(--C3);font-size:var(--P3)}.credentials{font-size:var(--P3);font-weight:600;margin-top:var(--S3)}.profile .biography{margin-top:var(--S4);max-width:none}.profile.no-photo{grid-template-columns:minmax(0,1fr)}.profile.no-photo>div{grid-column:1}p.justified{max-width:none}.timeline{--year-width:100px;--timeline-gap:16px;list-style:none;padding:0}.timeline li{display:grid;grid-template-columns:var(--year-width) 20px minmax(0,1fr);column-gap:var(--timeline-gap);position:relative;padding-bottom:var(--S6)}.timeline li:last-child{padding-bottom:0}.timeline strong{grid-column:1;color:var(--C1);font-size:var(--H2);font-weight:700;font-variant-numeric:tabular-nums;text-align:right;line-height:1.2}.timeline li>span{grid-column:3}.timeline li:before{content:"";position:absolute;left:calc(var(--year-width) + var(--timeline-gap) + 8.5px);top:calc(var(--H2) * .6);bottom:calc(var(--H2) * -.6);width:3px;background:var(--C1)}.timeline li:last-child:before{display:none}.timeline li:after{content:"";position:absolute;top:calc(var(--H2) * .6 - 10px);left:calc(var(--year-width) + var(--timeline-gap));width:20px;height:20px;border:2px solid var(--C1);border-radius:50%;background:var(--C5)}.timeline li:last-child:after{background:var(--C1)}
.jump-bar{position:sticky;top:var(--header-height);z-index:900;background:var(--C4);border-block:1px solid var(--C6)}.jump-tabs{display:flex;align-items:stretch;justify-content:space-between;gap:var(--S6)}.jump-tabs a{flex-shrink:0;min-height:48px;display:flex;align-items:center;white-space:nowrap;font-size:var(--NAV);font-weight:500;color:var(--C2);text-decoration:none;border-bottom:2px solid transparent}.jump-tabs a.active{color:var(--C1);border-bottom-color:var(--C1)}.jump-select{position:relative}.jump-select summary{font-size:var(--NAV);font-weight:500;min-height:48px;padding-block:var(--S3);cursor:pointer}.jump-select nav{position:absolute;top:100%;left:0;right:0;background:var(--C4);border:1px solid var(--C6);padding:var(--S3);max-height:50vh;overflow:auto}.jump-select nav a{display:block;min-height:44px;padding:var(--S3);font-size:var(--NAV)}.jump-select{display:none}.jump-bar.collapsed .jump-tabs{display:none}.jump-bar.collapsed .jump-select{display:block}.media-row{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:var(--S2)}.media-row img{width:100%;aspect-ratio:3/2;object-fit:cover}.media-row.reverse .row-media{order:2}.media-row.no-image{grid-template-columns:1fr}.media-row h2{display:flex;align-items:center;gap:var(--S3);margin-bottom:var(--S3)}.media-row h2 a{font-weight:700;color:var(--C2);text-decoration:none}.media-row h2 a:hover{color:var(--C1)}.media-row p+.row-links{margin-top:var(--S4)}.row-links{display:flex;flex-wrap:wrap;gap:var(--S6);margin-top:var(--S4)}.row-links a{display:inline-flex;align-items:center;min-height:44px}.typical-label{font-size:var(--P3);font-weight:600;color:var(--C3);margin-top:var(--S4);margin-bottom:var(--S3)}.work-list{padding-left:var(--S5)}.featured-project{border-left:2px solid var(--C1);padding-left:var(--S5);margin-top:var(--S4)}.featured-project .project-name{font-weight:700;font-size:var(--P2)}.featured-project p+p{margin-top:0}.featured-project a{display:inline-flex;min-height:44px;align-items:center}.review-links{display:flex;flex-wrap:wrap;gap:var(--S3) var(--S6);margin-top:var(--S4)}.review-links p{flex-basis:100%}.review-links a{font-size:var(--P3);min-height:44px;display:inline-flex;align-items:center}.service-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--S2);align-items:start}.service-sidebar{position:sticky;top:calc(var(--header-height) + var(--S5));border-top:3px solid var(--C1)}.service-sidebar a{display:block;font-size:var(--NAV);font-weight:500;color:var(--C2);text-decoration:none;padding:var(--S3);border-bottom:1px solid var(--C6)}.service-sidebar a.active{border-left:3px solid var(--C1);color:var(--C1)}.service-sidebar details{display:none}.service-intro{font-size:var(--P1);font-weight:500}.service-content h2{margin-top:var(--S2);margin-bottom:var(--S2)}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--S6)}.work-group h3{margin-bottom:var(--S3)}.work-group ul{padding:0;list-style:none}.work-group li{padding-block:var(--S3);border-bottom:1px solid var(--C6)}.project-subgroup+.project-subgroup{margin-top:var(--S2)}.project-subgroup>h3{margin-bottom:var(--S2)}.founder-intro{margin-bottom:var(--S2)}
.form-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:var(--S2);align-items:start}.form-layout h2{margin-bottom:var(--S3)}.form-side{position:sticky;top:calc(var(--header-height) + var(--S5))}.side-panel{border:1px solid var(--C6);border-top:3px solid var(--C1);padding:var(--S5)}.side-panel h3{margin-bottom:var(--S3)}.side-panel a{overflow-wrap:anywhere}.next-step{margin-top:var(--S2)}.next-step h3{margin-bottom:var(--S3)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--S6);margin-top:var(--S2)}.form-field{min-width:0}.form-field.wide{grid-column:1/-1}.form-field label{display:block;font-size:var(--P2);font-weight:600;margin-bottom:var(--S3)}.form-field input,.form-field select,.form-field textarea{display:block;width:100%;min-height:44px;padding:var(--S3);border:1px solid var(--C3);background:var(--C4);color:var(--C2);font-size:max(16px,var(--P2))}.form-field textarea{min-height:160px;resize:vertical}.form-note{font-size:var(--P3);color:var(--C3);margin-top:var(--S3)}.form-submit{display:flex;align-items:center;gap:var(--S6);margin-top:var(--S6)}.form-submit p{font-size:var(--P3);color:var(--C3)}.spam-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.message{border:2px solid var(--C1);padding:var(--S5);margin-bottom:var(--S2)}.message ul{padding-left:var(--S5)}.office-box{border:1px solid var(--C6);padding:var(--S5);margin-top:var(--S2)}.office-main{display:grid;grid-template-columns:3fr 7fr;gap:var(--S6)}.office-map{background:var(--C6);padding:var(--S5)}.office-map svg{display:block;width:100%;height:auto}.office-map .P3{text-align:center;margin-bottom:var(--S3)}.office-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--S6)}.office-card{border:1px solid var(--C6);padding:var(--S5);display:flex;flex-direction:column;min-width:0;scroll-margin-top:calc(var(--header-height) + var(--S5))}.office-card:target{border-color:var(--C1)}.office-card h3{display:flex;gap:var(--S3);align-items:center;margin-bottom:var(--S3)}.office-number{display:inline-flex;align-items:center;justify-content:center;background:var(--C1);color:var(--C4);font-size:var(--P3);border-radius:50%;width:24px;height:24px;flex-shrink:0}.office-card address{font-size:var(--P3);margin:0 0 var(--S3)}.office-card address a{font-weight:400;color:var(--C2);text-decoration:none}.office-card address a:hover{text-decoration:underline}.office-card .phone{margin-top:auto;font-size:var(--P2);min-height:44px;display:flex;align-items:center}.office-group-label{font-size:var(--P3);font-weight:600;color:var(--C3);text-transform:uppercase;margin-block:var(--S6) var(--S3)}.office-box>.office-group-label{margin-top:0}.head-office{border-left:3px solid var(--C1)}.legal-copy h2{margin-top:var(--S2);margin-bottom:var(--S3)}.legal-copy p{max-width:none}.legal-copy ul{padding-left:var(--S5);margin-block:var(--S4)}dialog{border:1px solid var(--C6);padding:var(--S5);max-width:calc(100vw - var(--S7)*2);color:var(--C2);background:var(--C4)}dialog p{margin-top:var(--S3);margin-bottom:var(--S2)}dialog::backdrop{background:rgb(58 58 58 / .58)}.swatch-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--S6)}.swatch{border:1px solid var(--C6);padding:var(--S5);color:var(--C2);font-size:var(--P3)}.swatch-color{height:56px;margin-bottom:var(--S3)}.guide-type>*+*{margin-top:var(--S4)}.spacer-demo{background:var(--C5);border-left:3px solid var(--C1);margin-bottom:var(--S4)}
@media(min-width:1024px){.justified{text-align:justify;text-align-last:left;hyphens:auto}.service-sidebar>nav{display:block}.service-row{grid-template-columns:2fr 3fr}.service-row.reverse{grid-template-columns:3fr 2fr}}
@media(max-width:1279px){.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.footer-grid nav{min-width:0}.footer-grid nav a{white-space:normal}.cta-inner{flex-wrap:wrap}.cta-inner>div{flex-basis:100%}}
@media(max-width:1023px){:root{--H1-hero:44px;--H1-2:24px;--H1-title:34px;--H2:26px;--P1:17px;--P2:16px;--S1:48px;--S2:24px;--S6:20px;--S7:24px;--header-height:88px}.desktop-nav{display:none}.menu-toggle{display:block}.header-inner{gap:var(--S3)}.hero-line2{white-space:normal}.home-hero{height:520px;min-height:520px}.hero-copy{max-width:65%}.hero-copy h1{font-size:var(--H1-hero)}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.clients-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.media-row{grid-template-columns:1fr 1fr}.media-row h2{align-items:flex-start}.service-layout{display:block}.service-sidebar{position:static;margin-bottom:var(--S2)}.service-sidebar>nav{display:none}.service-sidebar details{display:block}.service-sidebar summary{padding:var(--S3);font-size:var(--NAV);min-height:48px}.profile{grid-template-columns:180px minmax(0,1fr)}.profile img{width:180px}.office-main{grid-template-columns:1fr 2fr}.office-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.header-contact{padding-inline:var(--S5)}.form-submit{align-items:flex-start;flex-direction:column}.cta-email{border-left:0;padding-left:0}}
@media(max-width:599px){:root{--H1-hero:34px;--H1-2:20px;--H1-title:28px;--H2:22px;--H3:18px;--P1:16px;--P2:16px;--S1:40px;--S5:20px;--S6:16px;--S7:16px}.brand img{width:132px}.header-contact{padding:var(--S3);font-size:var(--BTN)}.header-inner{gap:var(--S3)}.home-hero{height:auto;min-height:0;max-height:none;align-items:flex-start}.hero-copy{max-width:100%;padding-block:var(--S1)}.home-hero:before{background:linear-gradient(90deg,rgba(255,255,255,.94),rgba(255,255,255,.88) 65%,rgba(255,255,255,.6))}.hero-photo img{object-position:65% center}.hero-copy .button{width:100%}.credibility-grid{grid-template-columns:1fr;gap:var(--S6)}.credibility-grid>*{border:0!important;padding:0!important}.card-grid{grid-template-columns:1fr}.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.clients-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.client-tile{padding:var(--S3)}.section-heading{align-items:flex-start;flex-wrap:wrap}.footer-grid{grid-template-columns:1fr}.footer-grid nav a{white-space:normal;min-height:44px;display:flex;align-items:center}.footer-bottom{align-items:flex-start;flex-direction:column}.footer-bottom a,.footer-bottom button{border:0;padding:0;min-height:44px;display:flex;align-items:center}.cta-inner{align-items:flex-start;flex-direction:column}.cta-inner>div{flex-basis:auto}.cta-email{font-size:var(--P2);flex-wrap:wrap}.media-row{grid-template-columns:1fr}.media-row.reverse .row-media{order:0}.profile{grid-template-columns:1fr}.profile img{width:100%;max-width:240px}.profile.no-photo>div{grid-column:1}.work-grid{grid-template-columns:1fr}.form-layout{display:flex;flex-direction:column}.form-side{position:static;width:100%}.contact-form-layout .form-side{order:-1}.form-main{width:100%}.form-grid{grid-template-columns:1fr}.form-field.wide{grid-column:1}.office-main{grid-template-columns:1fr}.office-map{display:none}.office-grid{grid-template-columns:1fr}.title-actions,.row-links{flex-direction:column;align-items:flex-start}.title-actions .button{width:100%}.swatch-grid{grid-template-columns:repeat(2,1fr)}.timeline{--year-width:60px;--timeline-gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
.defence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.central-phone{font-weight:700}.no-image{grid-template-columns:1fr!important}@media(max-width:599px){.defence-grid{grid-template-columns:1fr}}

.section-text,.project-subgroup{margin-top:var(--S2)}.international-scope{margin-top:var(--S3);margin-bottom:var(--S2)}
.C1{background:var(--C1)}.C2{background:var(--C2)}.C3{background:var(--C3)}.C4{background:var(--C4)}.C5{background:var(--C5)}.C6{background:var(--C6)}.C7{background:var(--C7)}.C8{background:var(--C8)}.C9{background:var(--C9)}.C10{background:var(--C10)}.type-hero{font-size:var(--H1-hero);font-weight:700;line-height:1.2}.type-title{font-size:var(--H1-title);font-weight:700;line-height:1.2}.type-nav{font-size:var(--NAV);font-weight:500}.type-btn{font-size:var(--BTN);font-weight:600}.spacing-S1{height:var(--S1)}.spacing-S2{height:var(--S2)}.spacing-S3{height:var(--S3)}.spacing-S4{height:var(--S4)}.spacing-S5{height:var(--S5)}.spacing-S6{height:var(--S6)}.spacing-S7{height:var(--S7)}.spacing-S8{padding:var(--S8-y) var(--S8-x)}

.brand-text,.brand-text:visited{color:var(--C4)}
html{scroll-padding-top:0}.mobile-menu a.active,.service-menu a.active{color:var(--C1);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}

/* v0.3 — restrained demo motion. Content remains visible without JavaScript. */
:root{--motion-enter:560ms;--motion-menu:180ms;--motion-ease:cubic-bezier(.22,.61,.36,1)}
.service-card,.sector-tile,.project-card,.office-card,.client-tile{transition:border-color .2s ease,color .2s ease}
.service-card h3,.project-card h3 a,.service-card .outline-icon{transition:color .2s ease}
.service-card:hover .outline-icon{color:var(--C9)}
.service-card:focus-visible h3,.sector-tile:focus-visible,.project-card:focus-within h3 a{color:var(--C1)}
.project-card:focus-within{border-color:var(--C1)}
.button{transition:background-color .2s ease,color .2s ease,outline-color .2s ease}
.form-field input,.form-field textarea,.form-field select{transition:border-color .2s ease,outline-color .2s ease}
.form-field input:hover,.form-field textarea:hover,.form-field select:hover{border-color:var(--C1)}
.outline-icon{transition:color .2s ease}

.service-menu.show{animation:bootstrapMenuFade var(--motion-menu) var(--motion-ease) both;transform-origin:top}
.mobile-menu:not([hidden]){animation:menuEnter var(--motion-menu) var(--motion-ease) both}
.mobile-menu .mobile-service-links{border-left:1px solid var(--C6);margin-left:var(--S3)}
.jump-select[open]>nav{animation:menuEnter var(--motion-menu) var(--motion-ease) both}
.jump-tabs a{transition:border-color .2s ease,color .2s ease}
.jump-tabs a:hover{color:var(--C1);border-bottom-color:var(--C1)}
.hero-copy>h1,.title-band h1{animation:headingEnter var(--motion-enter) var(--motion-ease) both}
.hero-copy>.hero-line2{animation:headingEnter var(--motion-enter) var(--motion-ease) 80ms both}
.hero-copy>.P1{animation:headingEnter var(--motion-enter) var(--motion-ease) 140ms both}
.hero-copy>.button{animation:headingEnter var(--motion-enter) var(--motion-ease) 200ms both}
.scroll-reveal{opacity:1;transition:opacity var(--motion-enter) var(--motion-ease) var(--reveal-delay,0ms),border-color .2s ease,color .2s ease}
.scroll-reveal.scroll-pending{opacity:0}
.scroll-reveal:focus-within,.scroll-reveal:target{opacity:1;transition-delay:0ms}
.office-card:target{animation:targetEmphasis 1.2s ease both}
.message{animation:headingEnter 360ms var(--motion-ease) both}
@keyframes headingEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes menuEnter{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes targetEmphasis{0%,100%{border-color:var(--C1)}50%{border-color:var(--C9)}}
@media(prefers-reduced-motion:reduce){
 .scroll-reveal,.scroll-reveal.scroll-pending{opacity:1!important;transition:none!important}
 .hero-copy>*,.title-band h1,.service-menu,.mobile-menu,.jump-select nav,.office-card:target,.message{animation:none!important;transform:none!important}
}

/* v0.4 — Bootstrap dropdown component, with the client colour tokens. */
.service-dropdown{position:relative;display:block}
.service-dropdown>.dropdown-toggle{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0}
.service-dropdown>.dropdown-toggle.active,.service-dropdown>.dropdown-toggle:hover,.service-dropdown>.dropdown-toggle.show{color:var(--C1);border-bottom-color:var(--C1)}
.service-menu{--bs-dropdown-color:var(--C2);--bs-dropdown-bg:var(--C4);--bs-dropdown-border-color:var(--C6);--bs-dropdown-border-radius:0;--bs-dropdown-link-color:var(--C2);--bs-dropdown-link-hover-color:var(--C1);--bs-dropdown-link-hover-bg:var(--C4);--bs-dropdown-link-active-color:var(--C1);--bs-dropdown-link-active-bg:var(--C4);box-shadow:none;z-index:1001;max-height:calc(100dvh - var(--header-height) - var(--S5));overflow-y:auto}
.service-menu .dropdown-item:focus-visible{color:var(--C1);text-decoration:underline}
.service-menu .dropdown-item.active,.service-menu .dropdown-item.active:visited{background:var(--C4);color:var(--C1);text-decoration:underline;text-underline-offset:3px}
.service-menu .dropdown-item.active:hover,.service-menu .dropdown-item.active:focus,.service-menu .dropdown-item:active{background:var(--C4);color:var(--C1)}

@keyframes bootstrapMenuFade{from{opacity:0}to{opacity:1}}

/* v0.5 — proposed wider desktop layout for client demo. */
@media(min-width:1024px){.site-container{width:90%}}

/* v0.6 — right-side mobile navigation drawer. */
.menu-toggle{border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;position:relative;align-items:center;justify-content:center;flex-direction:column;gap:6px;flex-shrink:0;padding:10px}
.menu-toggle span{display:block;width:24px;height:2px;margin:0;background:var(--C2);transition:background-color .2s ease}
.menu-toggle span:last-child{width:18px;align-self:flex-end}
.menu-toggle:hover span{background:var(--C1)}
.mobile-drawer{--bs-offcanvas-width:min(88vw,420px);--bs-offcanvas-bg:var(--C4);--bs-offcanvas-color:var(--C2);--bs-offcanvas-border-width:0;border:0!important;box-shadow:none;transition:transform 320ms var(--motion-ease)}
.offcanvas-backdrop{background:var(--C2)}
.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:var(--S3);padding:var(--S5)}
.drawer-brand img{width:170px;height:auto;max-width:100%}
.drawer-close{width:44px;height:44px;flex-shrink:0;border:0;background:transparent;box-shadow:none;position:relative}
.drawer-close span{position:absolute;left:11px;top:21px;width:22px;height:2px;background:var(--C2);transform:rotate(45deg)}
.drawer-close span:last-child{transform:rotate(-45deg)}
.drawer-close:hover span{background:var(--C1)}
.mobile-drawer-body{display:flex;flex-direction:column;padding:var(--S5);padding-top:var(--S3);overscroll-behavior:contain}
.mobile-drawer-label{font-size:var(--P3);color:var(--C3);margin-bottom:var(--S4)}
.mobile-drawer-nav>a,.mobile-services-toggle{display:flex;align-items:center;justify-content:space-between;min-height:52px;width:100%;padding:var(--S3) 0;border:0;background:transparent;color:var(--C2);font-size:var(--H3);font-weight:600;line-height:1.5;text-align:left;text-decoration:none;transition:color .2s ease}
.mobile-drawer-nav>a:visited{color:var(--C2)}
.mobile-drawer-nav>a:hover,.mobile-drawer-nav>a.active,.mobile-services-toggle:hover,.mobile-services-toggle.active{color:var(--C1)}
.mobile-drawer-nav>a.active{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.drawer-caret{display:block;border-top:6px solid currentColor;border-left:5px solid transparent;border-right:5px solid transparent;margin-left:var(--S3);transition:transform .2s ease}
.mobile-services-toggle[aria-expanded="true"] .drawer-caret{transform:rotate(180deg)}
.mobile-drawer-services{display:grid;gap:0;border-left:2px solid var(--C6);padding-left:var(--S5);margin-block:var(--S3)}
.mobile-drawer-services a,.mobile-drawer-services a:visited{display:flex;align-items:center;min-height:44px;padding-block:var(--S3);font-size:var(--NAV);font-weight:500;line-height:1.5;color:var(--C2);text-decoration:none;white-space:normal}
.mobile-drawer-services a:hover,.mobile-drawer-services a.active{color:var(--C1)}
.mobile-drawer-services a.active{text-decoration:underline}
.mobile-drawer-bottom{margin-top:auto;padding-top:var(--S2);padding-bottom:env(safe-area-inset-bottom)}
.mobile-drawer-bottom .button{width:100%}
@media(max-width:1023px){.menu-toggle{display:flex}}
@media(min-width:1024px){.mobile-drawer{display:none!important}}
@media(max-width:359px){.brand img{width:112px}.header-inner{gap:8px}.drawer-brand img{width:145px}}
@media(prefers-reduced-motion:reduce){.mobile-drawer,.mobile-drawer .collapsing{transition:none!important}}

/* v0.8 — supplied homepage client marks, in balanced equal-size tiles. */
.home-selected-clients .client-tile{min-height:112px}
.selected-client-logo,.selected-client-logo:visited{color:var(--C2);background:var(--C4);text-decoration:none;overflow:hidden}
.selected-client-logo img{display:block;width:auto;height:auto;max-width:100%;max-height:72px;object-fit:contain;filter:grayscale(1)}
.selected-client-logo:hover,.selected-client-logo:focus-visible{border-color:var(--C1)}
@media(max-width:599px){.home-selected-clients .client-tile{min-height:96px}.selected-client-logo img{max-height:56px}}
.selected-client-logo img[src$=".svg"]{width:100%}

/* v0.9 — compact Services caret and drawer LinkedIn link. */
.mobile-services-toggle{justify-content:flex-start;gap:var(--S3)}
.mobile-services-toggle .drawer-caret{margin-left:0;flex-shrink:0}
.drawer-linkedin,.drawer-linkedin:visited{display:flex;align-items:center;justify-content:center;gap:var(--S3);min-height:44px;margin-bottom:var(--S4);color:var(--C2);font-size:var(--NAV);font-weight:500;text-decoration:none}
.drawer-linkedin .outline-icon{width:24px;height:24px;color:currentColor}
.drawer-linkedin:hover,.drawer-linkedin:focus-visible{color:var(--C1);text-decoration:underline}

/* v0.11 — supplied institutional marks and LinkedIn brand icon. */
.footer-brand .accreditation-logos{display:grid;grid-template-columns:76px 132px;gap:var(--S3);width:max-content;margin-top:var(--S4)}
.accreditation-item{display:flex;align-items:center;justify-content:center;min-width:0;height:52px;padding:8px;background:var(--C4);text-decoration:none}
.footer-brand .accreditation-logos img{display:block;width:100%;height:auto;max-height:32px;object-fit:contain;filter:none}
.site-footer .linkedin,.site-footer .linkedin:visited,.site-footer .linkedin:hover{color:var(--C4)}
.site-footer .linkedin:hover{text-decoration:underline}
.site-footer .linkedin .linkedin-brand-icon{display:block;width:20px;height:20px;flex-shrink:0}

/* Default page.php: preserve readable rich-text spacing without affecting custom templates. */
.dce-default-page-content p{max-width:none;margin:0 0 1.25em}
.dce-default-page-content :is(h1,h2,h3,h4,h5,h6){margin:1.6em 0 .65em;text-align:left;line-height:1.3}
.dce-default-page-content :is(ul,ol){margin:0 0 1.25em;padding-left:1.5em}
.dce-default-page-content li+li{margin-top:.4em}
.dce-default-page-content blockquote{margin:1.5em 0;padding-left:1.25em;border-left:3px solid var(--C1)}
.dce-default-page-content>:first-child{margin-top:0}
.dce-default-page-content>:last-child{margin-bottom:0}

/* Standalone Discuss Your Project form, preserving the existing two-column design. */
.dce-discuss-page{padding-block:28px 54px}.dce-discuss-page h1{font-size:36px}.dce-discuss-form{max-width:1112px;margin:48px auto 0}.dce-discuss-form label{display:block;font-size:14px;margin-bottom:6px}.dce-discuss-form :is(input:not([type=checkbox]),select,textarea){width:100%;padding:10px;border:1px solid #d5d5d2;background:#fff;color:var(--C2);font:inherit}.dce-discuss-form input[type=file]{font-size:14px}.dce-discuss-form small{display:block;font-size:11px;color:#6b6b6b;margin-top:4px}.dce-discuss-form .dce-word-count{text-align:right}.dce-discuss-form .dce-discuss-consent{display:flex;align-items:flex-start;gap:8px;font-size:12px}.dce-discuss-consent input{margin-top:3px;flex-shrink:0}.dce-discuss-submit{display:flex;align-items:center;gap:16px}.dce-discuss-submit .button{min-height:54px;padding-inline:20px}.dce-discuss-submit small{margin:0}.dce-discuss-form .is-over{color:#a6084a}@media(max-width:767px){.dce-discuss-page h1{font-size:28px}.dce-discuss-form{margin-top:28px}.dce-discuss-submit{align-items:flex-start;flex-direction:column}}

/* Shared cookie preferences dialog. */
#cookie-dialog{border:1px solid var(--C6);padding:0;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);color:var(--C2);background:var(--C4);box-shadow:0 24px 80px #0004}
#cookie-dialog::backdrop{background:rgba(0,0,0,.48)}
.cookie-panel{position:relative;padding:clamp(24px,5vw,40px)}
#cookie-dialog h2{padding-right:28px;margin:0 0 20px}
.cookie-dismiss{position:absolute;right:16px;top:12px;border:0;background:transparent;color:inherit;font-size:28px;cursor:pointer;width:44px;height:44px}
.cookie-description p{margin:0 0 16px}
.cookie-essential{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:18px 0;border-block:1px solid var(--C6);margin:24px 0 16px}
.cookie-essential span{color:var(--C1);font-size:14px}
.cookie-status:empty{display:none}
.cookie-status{font-size:14px;margin-bottom:16px}
.cookie-settings:focus-visible,.cookie-dismiss:focus-visible{outline:2px solid var(--C1);outline-offset:3px}
