:root{--red:#e3231b;--ink:#0b1525;--muted:#667080;--line:#dde1e5;--paper:#faf9f7;--sans:"Manrope",Arial,sans-serif;--display:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.65 var(--sans)}a{color:inherit;text-decoration:none}.container{width:min(1240px,calc(100% - 80px));margin:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header{height:84px;background:#fff;display:flex;align-items:center;position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(11,21,37,.06)}.navigation{display:flex;align-items:center;justify-content:space-between}.brand img{width:175px;height:auto;display:block}.site-menu{display:flex;gap:30px;align-items:center;font-size:12px;font-weight:700}.site-menu>a:not(.button){transition:color .2s}.site-menu>a:not(.button):hover,.text-link:hover{color:var(--red)}.site-menu>a.active{color:var(--red)}.button{background:var(--red);color:#fff;display:inline-flex;gap:16px;align-items:center;justify-content:center;padding:15px 22px;border-radius:3px;font-size:12px;font-weight:800;transition:transform .2s,background .2s}.button:hover{background:#bd1d17;transform:translateY(-2px)}.button-small{padding:12px 17px;font-size:11px}.menu-toggle{display:none;border:0;background:none}.hero{min-height:585px;position:relative;display:flex;align-items:center;overflow:hidden}.hero-art{position:absolute;inset:0;background:linear-gradient(90deg,rgba(250,249,247,.98) 0%,rgba(250,249,247,.9) 33%,rgba(250,249,247,.22) 64%,rgba(250,249,247,.02) 100%),url("photos/cape-town-seapoint-aerial.jpg") 70% center/cover}.hero-content{position:relative;padding:78px 0;max-width:min(1240px,calc(100% - 80px))}.eyebrow{margin:0 0 18px;color:var(--red);font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:800}.hero h1,.section h2,.statement-band h2,.projects h2,.contact-band h2{font-family:var(--display);font-weight:500;letter-spacing:-.06em;line-height:.98;margin:0}.hero h1{max-width:650px;font-size:clamp(50px,6vw,86px)}.hero h1 span{color:var(--red)}.hero-copy{max-width:470px;margin:28px 0;color:#2d3541;font-size:15px}.hero-actions{display:flex;align-items:center;gap:30px}.text-link{display:inline-flex;align-items:center;gap:14px;font-size:12px;font-weight:800}.trust-strip{background:#fff;border-bottom:1px solid var(--line);padding:22px 0}.trust-items{display:flex;align-items:center;gap:30px;flex-wrap:wrap;color:#56606f;font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.trust-items p{margin:0;color:#8b919b}.trust-items span{border-left:1px solid var(--line);padding-left:30px}.section{padding:110px 0}.section-heading h2{font-size:clamp(38px,4vw,59px)}.section-heading>p,.split-heading>p{max-width:410px;color:#414b59;margin:8px 0 0}.split-heading{display:flex;justify-content:space-between;gap:60px;align-items:end}.services-layout{display:grid;grid-template-columns:220px 1fr 220px;gap:34px;margin-top:66px;align-items:stretch}.service-image{margin:0;min-height:550px;overflow:hidden}.service-image img,.projects figure img{width:100%;height:100%;object-fit:cover;display:block}.service-image-right{padding-top:95px}.service-image-right img{height:390px}.service-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.service-card{padding:28px 24px 24px;border-bottom:1px solid var(--line)}.service-card:nth-child(odd){border-right:1px solid var(--line)}.service-card span,.sectors-grid span,.process-list span,.why-grid span,.feature-number,.sector-detail-list .feature-number{color:var(--red);font-size:19px;font-weight:500}.service-card h3{font-size:15px;line-height:1.25;margin:6px 0 10px}.service-card p{font-size:12px;line-height:1.55;color:#4f5966;margin:0 0 13px}.service-card a{color:var(--red);font-size:21px}.statement-band{background:linear-gradient(100deg,#071324,#0e243e);padding:75px 0;color:#fff}.statement-content{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.statement-band h2{font-size:42px}.statement-content p{margin:0;padding-left:34px;border-left:1px solid rgba(255,255,255,.55);font-size:14px}.sector-section{background:#fff}.sectors-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:54px;border-top:1px solid var(--line)}.sectors-grid article{padding:26px 22px 20px;border-right:1px solid var(--line)}.sectors-grid article:last-child{border-right:0}.sectors-grid h3{font-size:15px;margin:7px 0}.sectors-grid p{color:var(--muted);font-size:12px;margin:0}.approach-section{padding-bottom:70px}.process-list{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin:72px 0 0;padding:0;counter-reset:process}.process-list li{padding:0 25px;border-left:1px solid var(--red)}.process-list li:first-child{padding-left:0;border-left:0}.process-list h3{font-size:14px;line-height:1.3;margin:9px 0}.process-list p{margin:0;color:var(--muted);font-size:12px}.projects{background:#fff;padding:0}.projects-layout{display:grid;grid-template-columns:1.08fr .92fr;align-items:stretch}.projects figure{height:590px;margin:0}.project-copy{padding:90px 10%;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.projects h2{font-size:50px}.project-copy>p:not(.eyebrow){color:#45505f}.project-list{border-top:1px solid var(--line);margin:18px 0 29px;width:100%}.project-list span{font-size:12px;font-weight:700;display:block;padding:11px 0;border-bottom:1px solid var(--line)}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:130px}.about-layout h2{font-size:50px}.about-layout>div:last-child p{margin-top:0;color:#44505e}.contact-band{background:var(--red);color:#fff;padding:43px 0}.contact-band .eyebrow{color:#fff}.contact-layout{display:grid;grid-template-columns:1.2fr .85fr auto;gap:38px;align-items:center}.contact-band h2{font-size:44px}.contact-options{display:grid;gap:14px}.contact-options a{font-weight:700;font-size:13px}.contact-options span{display:block;opacity:.7;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.button-light{background:#fff;color:var(--red);white-space:nowrap}.button-light:hover{background:#fff;color:#a9130e}.site-footer{background:#071324;color:#d8dee7;padding:58px 0 20px}.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:55px}.footer-brand img{width:180px;filter:brightness(0) invert(1);margin-bottom:12px}.footer-brand p,.footer-grid p{font-size:12px;color:#aeb9c7;margin:0;max-width:250px}.footer-grid h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#fff;margin:0 0 14px}.footer-grid a{display:block;font-size:12px;color:#c1cbd7;margin:7px 0}.footer-grid a:hover{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:45px;padding-top:18px;display:flex;justify-content:space-between;color:#95a3b4;font-size:11px}.footer-bottom a{color:#fff}@media(max-width:900px){.container{width:min(100% - 42px,1240px)}.site-menu{display:none;position:absolute;top:83px;left:0;right:0;background:#fff;padding:24px 21px;box-shadow:0 12px 25px rgba(0,0,0,.1);align-items:stretch;flex-direction:column;gap:20px}.site-menu.open{display:flex}.menu-toggle{display:grid;gap:4px;padding:8px}.menu-toggle span:not(.sr-only){display:block;width:24px;height:2px;background:var(--ink)}.hero-content{max-width:min(100% - 42px,1240px)}.hero-art{background:linear-gradient(90deg,rgba(250,249,247,.98),rgba(250,249,247,.77),rgba(250,249,247,.25)),url("photos/cape-town-seapoint-aerial.jpg") 72% center/cover}.services-layout{grid-template-columns:1fr}.service-image{display:none}.service-grid{max-width:700px}.statement-content,.about-layout{gap:45px}.sectors-grid{grid-template-columns:1fr 1fr}.sectors-grid article:nth-child(2){border-right:0}.sectors-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}.process-list{grid-template-columns:1fr 1fr;gap:32px}.process-list li:nth-child(odd){padding-left:0;border-left:0}.projects-layout{grid-template-columns:1fr}.projects figure{height:420px}.project-copy{padding:65px 0}.contact-layout{grid-template-columns:1fr 1fr}.contact-layout>.button{grid-column:1/-1}.footer-grid{grid-template-columns:1fr 1fr;gap:38px}}@media(max-width:560px){.site-header{height:71px}.brand img{width:145px}.site-menu{top:70px}.hero{min-height:600px;align-items:end}.hero-content{padding:80px 0 55px}.hero h1{font-size:51px}.hero-copy{font-size:13px}.hero-actions{align-items:flex-start;flex-direction:column;gap:19px}.trust-strip{padding:18px 0}.trust-items{gap:12px}.trust-items span{padding-left:12px}.section{padding:73px 0}.split-heading,.statement-content,.about-layout{grid-template-columns:1fr;display:grid;gap:24px}.services-layout{margin-top:40px}.service-grid{grid-template-columns:1fr}.service-card:nth-child(odd){border-right:0}.statement-band{padding:58px 0}.statement-band h2,.about-layout h2,.projects h2{font-size:39px}.statement-content p{padding:0;border:0}.sectors-grid{grid-template-columns:1fr}.sectors-grid article,.sectors-grid article:nth-child(2){border-right:0;border-bottom:1px solid var(--line);padding-left:0}.process-list{grid-template-columns:1fr;margin-top:45px;gap:25px}.process-list li{padding-left:0;border-left:0;border-bottom:1px solid var(--line);padding-bottom:20px}.projects figure{height:300px}.project-copy{padding:55px 0}.contact-layout{grid-template-columns:1fr;gap:24px}.contact-layout>.button{grid-column:auto}.contact-band h2{font-size:40px}.footer-grid{grid-template-columns:1fr;gap:32px}.footer-bottom{flex-direction:column;gap:8px}.section-heading h2{font-size:40px}}

/* Internal page components */

.page-hero{background:#0b1525;color:#fff;padding:158px 0 68px}
.page-hero .eyebrow{color:#ff8a76}
.page-hero h1{font-family:var(--display);font-weight:500;letter-spacing:-.04em;line-height:1.04;font-size:clamp(38px,4.6vw,60px);margin:0;max-width:760px}
.page-hero p{color:#c3cbd8;max-width:600px;margin:22px 0 0;font-size:15px}
.breadcrumb{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#8b95a5;margin:0 0 22px}
.breadcrumb a{color:#8b95a5;transition:color .2s}
.breadcrumb a:hover{color:#fff}
.teaser-link{display:inline-flex;margin-top:44px}

/* Why / values grid, reused across home, approach, about */
.why-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);margin-top:54px}
.why-grid article{padding:28px 22px 22px;border-right:1px solid var(--line)}
.why-grid article:last-child{border-right:0}
.why-grid h3{font-size:14px;line-height:1.3;margin:8px 0 9px}
.why-grid p{color:var(--muted);font-size:12px;margin:0}
.why-grid.num-grid-3{grid-template-columns:repeat(3,1fr)}

/* Compact sectors preview on the home page */
.sectors-grid-compact{grid-template-columns:repeat(5,1fr)}
.sectors-grid-compact article:last-child{border-right:0}

/* Stacked detail rows for sectors.php and approach.php */
.sector-detail-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.sector-detail-list li{display:grid;grid-template-columns:80px 1fr;gap:34px;padding:46px 0;border-bottom:1px solid var(--line)}
.sector-detail-list h2{font-family:var(--display);font-weight:500;letter-spacing:-.03em;font-size:clamp(26px,2.6vw,34px);margin:0 0 16px}
.sector-detail-list p{max-width:680px;color:#414b59;font-size:14px;margin:0 0 14px}
.sector-detail-list p:last-child{margin-bottom:0}

/* Alternating feature rows for services.php */
.feature-section-alt{background:#fff}
.feature-row{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
.feature-row.reverse{grid-template-columns:1.1fr .9fr}
.feature-row.reverse .feature-media{order:2}
.feature-media{margin:0;height:460px;overflow:hidden;border-radius:2px}
.feature-media img{width:100%;height:100%;object-fit:cover;display:block}
.feature-copy h2{font-family:var(--display);font-weight:500;letter-spacing:-.03em;font-size:clamp(28px,3vw,38px);margin:10px 0 20px}
.feature-copy>p{color:#414b59;font-size:14px;margin:0 0 16px;max-width:520px}
.outcomes-list{list-style:none;margin:8px 0 30px;padding:20px 0 0;border-top:1px solid var(--line);max-width:560px}
.outcomes-list li{position:relative;padding:9px 0 9px 22px;font-size:13px;color:#2d3541}
.outcomes-list li::before{content:"";position:absolute;left:0;top:16px;width:9px;height:1px;background:var(--red)}

/* Project cards on projects.php */
.project-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.project-card{border:1px solid var(--line);background:#fff}
.project-card figure{margin:0;height:220px;overflow:hidden}
.project-card figure img{width:100%;height:100%;object-fit:cover;display:block}
.project-card-body{padding:26px 24px 30px}
.project-card-tag{margin:0 0 10px;color:var(--red);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.project-card-body h2{font-family:var(--display);font-weight:500;letter-spacing:-.02em;font-size:20px;margin:0 0 6px}
.project-card-location{color:var(--muted);font-size:12px;margin:0 0 14px}
.project-card-body>p:not(.project-card-tag):not(.project-card-location){color:#414b59;font-size:13px;margin:0 0 16px}
.scope-list{list-style:none;margin:0;padding:14px 0 0;border-top:1px solid var(--line)}
.scope-list li{font-size:12px;color:#4f5966;padding:6px 0}

/* About page story and values */
.about-story-section{padding-top:70px}
.about-story{max-width:820px}
.about-story p{font-size:16px;line-height:1.7;color:#2d3541;margin:0 0 22px}
.about-story p:last-child{margin-bottom:0}

/* Client confidence section */
.confidence-section{background:#fff}
.confidence-section .section-heading>p{max-width:560px}
.logo-placeholder-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:50px}
.logo-placeholder{border:1px dashed var(--line);color:#9aa2ad;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;justify-content:center;height:90px}
.testimonial-placeholder{margin-top:30px;padding:34px 36px;border:1px dashed var(--line);max-width:640px}
.testimonial-placeholder p{margin:0 0 12px;color:#414b59;font-size:15px;font-style:italic}
.testimonial-placeholder span{font-size:12px;color:var(--muted);font-weight:700}

/* Contact page layout */
.contact-page-layout{display:grid;grid-template-columns:1.4fr .9fr;gap:70px;align-items:start}
.contact-form{display:grid;gap:22px}
.form-row{display:grid;gap:8px}
.form-row-split{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.contact-form label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#56606f}
.contact-form input,.contact-form select,.contact-form textarea{font:14px/1.5 var(--sans);padding:13px 15px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red)}
.contact-form button{justify-self:start}
.form-note{font-size:11px;color:var(--muted);margin:0}
.contact-details{display:grid;gap:24px}
.contact-details-card{background:#fff;border:1px solid var(--line);padding:32px}
.contact-details-card h2{font-family:var(--display);font-weight:500;letter-spacing:-.02em;font-size:20px;margin:0 0 20px}
.contact-details-card dl{margin:0;display:grid;gap:16px}
.contact-details-card dl>div{border-top:1px solid var(--line);padding-top:14px}
.contact-details-card dl>div:first-child{border-top:0;padding-top:0}
.contact-details-card dt{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 5px;font-weight:800}
.contact-details-card dd{margin:0;font-size:14px;font-weight:700}
.map-placeholder{height:180px;border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;color:#9aa2ad;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}

/* Focus states for accessibility across internal components */
a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:2px}

@media(max-width:900px){
  .page-hero{padding:130px 0 56px}
  .why-grid{grid-template-columns:1fr 1fr}
  .why-grid article:nth-child(2n){border-right:0}
  .why-grid.num-grid-3{grid-template-columns:1fr 1fr}
  .sectors-grid-compact{grid-template-columns:1fr 1fr}
  .sectors-grid-compact article:nth-child(2n){border-right:0}
  .sector-detail-list li{grid-template-columns:1fr;gap:12px}
  .feature-row,.feature-row.reverse{grid-template-columns:1fr;gap:32px}
  .feature-row.reverse .feature-media{order:0}
  .feature-media{height:340px}
  .project-cards-grid{grid-template-columns:1fr 1fr}
  .logo-placeholder-grid{grid-template-columns:1fr 1fr}
  .contact-page-layout{grid-template-columns:1fr;gap:50px}
}

@media(max-width:560px){
  .page-hero{padding:118px 0 46px}
  .why-grid,.why-grid.num-grid-3{grid-template-columns:1fr}
  .why-grid article{border-right:0;border-bottom:1px solid var(--line)}
  .why-grid article:last-child{border-bottom:0}
  .sectors-grid-compact{grid-template-columns:1fr}
  .sectors-grid-compact article{border-right:0;border-bottom:1px solid var(--line)}
  .project-cards-grid{grid-template-columns:1fr}
  .form-row-split{grid-template-columns:1fr}
  .logo-placeholder-grid{grid-template-columns:1fr 1fr}
}

