@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');

/* A restrained type and color system shared by the light and dark themes. */
:root{--bg:#111418;--panel:#1a1f24;--panel2:#222930;--text:#eef0f2;--muted:#b1b8c0;--line:#434b55;--accent:#a8b8cb;--accent2:#a8b8cb;color-scheme:dark}
body.light{--bg:#f4f5f7;--panel:#fff;--panel2:#e9ecef;--text:#1c232b;--muted:#4c5661;--line:#bcc4cd;--accent:#2f4865;--accent2:#2f4865;color-scheme:light}
body{font-family:'DM Sans',Arial,sans-serif;font-size:15px;line-height:1.6}
.brand,.section h2,.section h3,.about h2,.about h3,.story h1,.story h2,.contact-page h1,.footer-top p,.project-feature h3,.pc-content h3,.review-grid blockquote,.flow-list summary strong,.policy-page h1,.policy-page h2,.article-page h1,.article-page h2,.notfound h1,.faq-list summary,.post h3,.service-card h3,.steps h3{font-family:'DM Sans',Arial,sans-serif!important}
.brand{font-size:32px;font-weight:700;letter-spacing:-.12em}.brand small{font-family:'DM Sans',Arial,sans-serif;font-size:9px;letter-spacing:.12em}
.site-header,body.light .site-header{background:color-mix(in srgb,var(--bg) 94%,transparent);border-color:var(--line);color:var(--text)}
.desktop-nav a{color:var(--muted)}.desktop-nav a:hover,.mobile-nav a:hover{color:var(--accent)}
.header-cta,.button.primary,.float-contact{background:var(--accent);color:var(--bg);border-radius:5px}
body.light .header-cta,body.light .button.primary,body.light .float-contact{color:#fff}
.header-cta:hover,.button.primary:hover,.float-contact:hover,.copy-btn:hover{background:color-mix(in srgb,var(--accent) 82%,white);transform:translateY(-2px)}
.button,.copy-btn{border-radius:5px}.button.secondary:hover{border-color:var(--accent);color:var(--accent)}
.eyebrow,.story-eyebrow,.story-rail,.story-kicker,.project-meta,.project-list-head,.pc-kicker,.form-heading,.contact-direct span{font-family:'DM Sans',Arial,sans-serif!important;font-weight:700;letter-spacing:.09em}
.section,.about{padding-top:100px;padding-bottom:100px}.section-head{margin-bottom:44px}.section h2,.reviews .section-head h2,.about h2{font-size:clamp(34px,3.8vw,56px);line-height:1.12;letter-spacing:-.045em;font-weight:600;margin:16px 0 20px}.section h2 em,.about h2 em{color:var(--accent)}
.section-head>p:last-child,.about-intro p,.contact .contact-intro>p:not(.eyebrow){font-size:16px;line-height:1.7;color:var(--muted)}
.story,body.light .story{background:var(--bg)!important;color:var(--text);height:300vh}
.story:before{background-image:linear-gradient(90deg,color-mix(in srgb,var(--accent) 11%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--accent) 11%,transparent) 1px,transparent 1px);background-size:80px 80px;opacity:.45}
.story-sticky{grid-template-columns:minmax(0,52%) minmax(0,48%);padding:0 5vw}.story-sticky:after{background:none}.story-copy{max-width:680px}
.story h1{font-size:clamp(48px,4.75vw,72px);line-height:1.06;letter-spacing:-.055em;font-weight:600;max-width:680px}
.story h2{font-size:clamp(45px,4.4vw,66px);line-height:1.08;letter-spacing:-.05em;font-weight:600}
.story h1 em,.story h2 em{color:var(--accent)}.story-eyebrow,.story-rail-index{color:var(--accent)}.story-eyebrow:before,.story-rail-track span{background:var(--accent)}
.story-lede{color:var(--muted);font-size:16px;line-height:1.7;max-width:530px}.story-kicker,.story-rail{color:var(--muted)}.story-rail{border-color:var(--line)}.story-skip:hover{color:var(--accent)}
.story-actions .button.primary{background:var(--accent);color:var(--bg)}body.light .story-actions .button.primary{color:#fff}
.story-actions .button.secondary{border-color:var(--line);color:var(--text)}.story-actions .button.secondary:hover{border-color:var(--accent);color:var(--accent)}
.story-visual{height:min(65vh,650px);min-height:440px}.story-visual:before,.hero-object-wrap:before,.story-visual:after,.hero-object-index,.hero-object-coord,.world-caption,.story-background-type{display:none}
.hero-object-wrap{inset:7% -3% 7% 5%;filter:saturate(.67)}.hero-object{width:min(100%,610px);filter:drop-shadow(0 25px 45px #0007)}
body.light .hero-object{filter:drop-shadow(0 22px 36px #414c583b)}
.mobile-step-art{background:var(--panel);border-color:var(--line);box-shadow:none}.mobile-step-top,.mobile-step-foot{color:var(--muted)}.mobile-step-bars i{background:var(--accent)}
.reviews,body.light .reviews{--pr-bg:var(--panel2);--pr-surface:var(--panel);--pr-line:var(--line);--pr-ink:var(--text);--pr-muted:var(--muted);--pr-signal:var(--accent);background:var(--panel2);color:var(--text)}
.reviews .section-head h2,.reviews h3,.project-feature h3,.pc-content h3,body.light .reviews .section-head h2,body.light .reviews h3,body.light .project-feature h3{color:var(--text)}
.reviews .section-head h2 em{color:var(--accent)}.reviews .section-head>p:last-child,.project-feature-copy>p:not(.project-index),.pc-content>p:last-child,body.light .reviews .section-head>p:last-child,body.light .project-feature-copy>p:not(.project-index),body.light .pc-content>p:last-child{color:var(--muted)}
.project-feature,body.light .project-feature,.project-card{background:var(--panel);border-color:var(--line)}.project-feature{min-height:500px}.project-feature-graphic{min-height:500px}
.project-feature h3{font-size:clamp(32px,3vw,45px);line-height:1.13;letter-spacing:-.045em}.project-feature h3 em{color:var(--accent)}.pc-content h3{font-size:clamp(21px,2vw,27px);letter-spacing:-.035em}
.project-feature-graphic .pg-top span:last-child,.project-feature-graphic .pg-center span,.project-feature-graphic .pg-unit span{color:#b8c7d9}
.project-card:hover{border-color:var(--accent);box-shadow:0 10px 30px #0002}.project-link{color:var(--text)}.project-link:hover{color:var(--accent)}
.reviews .review-grid article,body.light .reviews .review-grid article{background:var(--panel);border-color:var(--line)}.reviews .review-grid blockquote,body.light .reviews .review-grid blockquote{font-size:17px;line-height:1.5;font-weight:400;letter-spacing:-.01em;color:var(--text)}
.reviews .review-grid p strong,body.light .reviews .review-grid p strong{color:var(--text)}.reviews .review-grid p span,body.light .reviews .review-grid p span{color:var(--muted)}.reviews .review-grid .stars{color:var(--accent)}
.marquee{height:58px;background:var(--panel2);color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:600 14px 'DM Sans',sans-serif;letter-spacing:.08em}.marquee span{color:var(--accent)}
.services,.insights,.sector-flows,.faq,.newsletter{background:var(--bg);color:var(--text)}.insights{background:var(--panel2)}
.service-card,.post{background:var(--panel);border-color:var(--line)}.service-card{min-height:310px}.service-card:hover{background:var(--panel2);border-color:var(--accent)}.service-card h3,.steps h3{font-size:23px;letter-spacing:-.03em}.service-icon{font-size:36px;color:var(--accent)}.service-card a,.post a{color:var(--accent)}
.about,body.light .about{background:var(--panel);color:var(--text);border-color:var(--line)}.about:before{display:none}.about .eyebrow,.about h2 em,.about-intro a{color:var(--accent)}.about-intro a{border-color:var(--accent)}.about-route{color:var(--muted)}.about-route b{background:var(--line)}.about-route b:after,.about-route span:last-child{color:var(--accent)}
.about-person,body.light .about-person{background:var(--bg);border-color:var(--line);box-shadow:none;min-height:200px}.about-person:hover{border-color:var(--accent);box-shadow:none}.about-person h3{font-size:clamp(21px,2vw,27px);color:var(--text)}.about-person p,.about-person-top{color:var(--muted)}.about-person-mark{color:var(--accent);font-size:27px}
.approach,body.light .approach{background:var(--panel2);color:var(--text)}.approach .eyebrow,.approach .steps span,.approach h2 em{color:var(--accent)}.approach .section-head>p:last-child,.approach .steps p{color:var(--muted)}.approach .steps,.approach .steps article{border-color:var(--line)}
.post h3{font-size:25px;letter-spacing:-.035em}.flow-graphic{background:var(--panel);border-color:var(--line)}.flow-graphic span{background:var(--panel2);border-color:var(--line);color:var(--text);box-shadow:none}.flow-graphic i{color:var(--accent)}.flow-list summary strong{letter-spacing:-.025em}
.contact,body.light .contact{background:var(--panel2)!important;color:var(--text)!important;min-height:0;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:5vw}
.contact h2{font-size:clamp(38px,4vw,59px);line-height:1.1;letter-spacing:-.045em}.contact h2 em,.contact .eyebrow,.contact-direct span{color:var(--accent)}.contact .contact-intro>p:not(.eyebrow){color:var(--muted)}
.contact-direct{margin-top:45px;border-color:var(--line)}.contact-direct a{font-size:16px;color:var(--text)}
.enquiry-form,body.light .enquiry-form{background:var(--panel);color:var(--text);border:1px solid var(--line);box-shadow:none;border-radius:7px;padding:28px;gap:17px}
.form-heading{color:var(--muted);border-color:var(--line)}.enquiry-form label{color:var(--text);font:600 12px 'DM Sans',sans-serif;letter-spacing:0}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea,body.light .enquiry-form input,body.light .enquiry-form select,body.light .enquiry-form textarea{background:var(--bg);color:var(--text);border-color:var(--line);border-radius:4px;font:400 14px 'DM Sans',sans-serif}
.enquiry-form input::placeholder,.enquiry-form textarea::placeholder{color:var(--muted)}.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}
.enquiry-form .button{font-family:'DM Sans',sans-serif;padding:15px 18px}.enquiry-form .enquiry-status{color:var(--accent)!important}.enquiry-form small{color:var(--muted)!important}
.contact-page,body.light .contact-page{background:var(--bg);color:var(--text);min-height:calc(100vh - 82px);padding:90px 5vw}.contact-page-intro h1{font:600 clamp(38px,4.5vw,64px)/1.1 'DM Sans',sans-serif;letter-spacing:-.05em}.contact-page-intro h1 em{color:var(--accent)}.contact-page-intro>p:not(.eyebrow){color:var(--muted)}.contact-page .contact-direct{border-color:var(--line)}.contact-page .contact-direct span{color:var(--accent)}.contact-page .enquiry-form{box-shadow:none}
.newsletter h2{font-size:clamp(32px,3.4vw,48px)}.newsletter input{background:var(--panel);border-color:var(--line);color:var(--text)}
.policy-page h1,.article-page h1{font-size:clamp(36px,4vw,56px);letter-spacing:-.045em;line-height:1.12}.policy-page h2,.article-page h2{font-size:25px;letter-spacing:-.025em}
.policy-page p,.article-page p,.article-page li{color:var(--muted)}.notfound strong{color:var(--accent);font-family:'DM Sans',sans-serif;font-size:clamp(90px,15vw,170px)}
.copy-btn{background:var(--accent);color:var(--bg)}body.light .copy-btn{color:#fff}.search-dialog,.cookie{background:var(--panel);color:var(--text);border-color:var(--line)}
footer{background:var(--panel);color:var(--text)}.footer-top p{font-size:25px;font-weight:600;letter-spacing:-.03em}.footer-top>a:last-child{color:var(--accent)}
@media(max-width:1050px){.story h1{font-size:clamp(43px,5.2vw,60px)}.story h2{font-size:clamp(40px,5vw,56px)}.hero-object-wrap{inset:9% -7% 9% 2%}}
@media(max-width:760px){.story{height:auto}.story-sticky{padding:20px 5vw 65px}.story-visual{height:min(69vw,340px);min-height:0;margin-bottom:15px}.hero-object-wrap{inset:0 5%}.hero-object{max-width:420px}.story h1{font-size:clamp(36px,7vw,52px)}.story h2{font-size:clamp(34px,6vw,47px)}.section,.about{padding-top:75px;padding-bottom:75px}.section h2,.reviews .section-head h2,.about h2{font-size:clamp(32px,6vw,45px)}.contact,.contact-page{grid-template-columns:1fr;gap:32px}.contact{padding:75px 5vw}.contact h2{font-size:clamp(36px,7vw,50px)}.contact-page{padding:75px 5vw}.project-feature{min-height:0}.project-feature-graphic{min-height:390px}}
@media(max-width:520px){.story-visual{height:62vw}.hero-object-wrap{inset:0 4%;transform:none!important}.story h1{font-size:clamp(35px,9vw,43px)}.story h2{font-size:clamp(34px,8vw,42px)}.story-lede{font-size:15px}.contact h2,.contact-page-intro h1{font-size:clamp(35px,9vw,43px)}.enquiry-form{padding:20px}.form-two{grid-template-columns:1fr}.review-grid blockquote{font-size:16px}.project-feature h3{font-size:31px}}
@media print{.story,.reviews,.about,.approach,.contact,.contact-page,.insights,.newsletter{background:#fff!important;color:#000!important}.enquiry-form,.hero-object-wrap{display:none!important}}
