@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { --ink:#0a0a0b; --black:#000; --gold:#f2b62b; --gold-light:#ffc73d; --blue:#a56c00; --grey:#89898d; --paper:#f1f1f2; --muted:#69696d; --line:#cacacd; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Manrope,Arial,sans-serif; font-size:16px; line-height:1.55; }
.site-header { min-height:380px; padding:10px clamp(24px,5vw,80px); display:flex; justify-content:space-between; align-items:center; background:var(--black); border-bottom:1px solid #282829; }
.brand { display:flex; align-items:center; gap:14px; height:360px; flex:0 0 auto; color:#f5f5f6; text-decoration:none; }.brand img { display:block; width:360px; height:360px; object-fit:contain; }.brand-descriptor { max-width:170px; color:#b8b8b8; font-size:.9rem; font-weight:800; line-height:1.25; letter-spacing:.05em; text-transform:uppercase; }
nav { display:flex; gap:clamp(18px,3vw,40px); } nav a { color:#c2c2c4; text-decoration:none; font-size:.86rem; font-weight:700; } nav a:hover { color:var(--gold); }
.hero { min-height:610px; padding:clamp(64px,10vw,150px) clamp(24px,8vw,128px) 72px; display:grid; grid-template-columns:1fr; align-items:center; background:var(--black); color:#f5f5f6; position:relative; overflow:hidden; }
.hero-copy { position:relative; z-index:1; max-width:980px; }.eyebrow { margin:0 0 16px; color:var(--blue); font:500 .72rem/1.3 'DM Mono',monospace; letter-spacing:.14em; text-transform:uppercase; }
.hero .eyebrow { color:var(--gold); }.hero h1 { max-width:760px; margin:0; font-size:clamp(3.25rem,7vw,6.8rem); letter-spacing:-.075em; line-height:.94; }.intro { max-width:650px; margin:30px 0 34px; color:#c2c2c5; font-size:clamp(1.05rem,1.5vw,1.25rem); }
.button { display:inline-flex; align-items:center; gap:22px; padding:15px 19px; color:var(--black); background:var(--gold); text-decoration:none; font-size:.87rem; font-weight:800; }.button span { font-size:1.35rem; line-height:.8; }.button:hover { background:var(--gold-light); }
.section { padding:clamp(70px,9vw,130px) clamp(24px,8vw,128px); }.section-head { max-width:700px; }.section h2,.experience h2,.contact h2 { margin:0; font-size:clamp(2rem,4vw,3.8rem); letter-spacing:-.06em; line-height:1.05; }.service-grid { margin-top:62px; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(4,1fr); }.service-grid article { min-height:255px; padding:24px 26px 20px 0; border-right:1px solid var(--line); margin-right:24px; }.service-grid article:last-child { border:none; }.service-grid span { color:#bf8611; font:500 .72rem 'DM Mono',monospace; }.service-grid h3 { margin:52px 0 12px; font-size:1.13rem; letter-spacing:-.035em; line-height:1.25; }.service-grid p { margin:0; color:var(--muted); font-size:.92rem; }
.sector-grid { margin-top:62px; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }.sector-grid article { min-height:205px; padding:24px 30px 20px 0; border-right:1px solid var(--line); margin-right:30px; }.sector-grid article:last-child { border:0; margin-right:0; }.sector-grid span { color:#bf8611; font:500 .72rem 'DM Mono',monospace; }.sector-grid h3 { margin:42px 0 12px; font-size:1.13rem; letter-spacing:-.035em; line-height:1.25; }.sector-grid p { margin:0; color:var(--muted); font-size:.92rem; }
.projects { background:#e7e7e8; }.projects-intro { max-width:590px; margin:22px 0 0; color:var(--muted); font-size:1.02rem; }.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:48px; }.project-card { background:#f8f8f8; border:1px solid #d3d3d4; }.project-art { height:205px; position:relative; overflow:hidden; display:flex; align-items:center; background:#101011; }.project-art svg { width:100%; height:100%; }.project-art .art-rail,.project-art .art-frame,.project-art .art-line,.project-art .art-node,.project-art .art-teeth { fill:none; stroke:rgba(242,182,43,.62); stroke-width:2; vector-effect:non-scaling-stroke; }.project-art .art-frame { stroke:rgba(235,235,235,.72); stroke-width:3; }.project-art .art-line { stroke:#f2b62b; stroke-width:4; }.project-art .art-node { stroke:#f2b62b; stroke-width:3; }.project-art .art-bottle path,.project-art .art-product rect { fill:rgba(242,182,43,.22); stroke:#f2b62b; stroke-width:2; }.project-art .art-wheel { fill:#101011; stroke:rgba(235,235,235,.8); stroke-width:3; }.project-art--bakery { background:#191918; }.project-art--recycling { background:#171918; }.art-label { position:absolute; left:18px; bottom:15px; padding:5px 8px; color:#f2b62b; background:rgba(0,0,0,.76); font:500 .62rem 'DM Mono',monospace; letter-spacing:.12em; }.project-copy { padding:22px 22px 25px; }.project-type { margin:0 0 9px; color:#9a6b0b; font:500 .67rem 'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; }.project-copy h3 { margin:0 0 12px; font-size:1.14rem; letter-spacing:-.03em; line-height:1.25; }.project-copy > p:last-child { margin:0; color:var(--muted); font-size:.9rem; }.projects-note { margin:22px 0 0; color:#69696d; font-size:.75rem; }
.approach { padding:clamp(70px,9vw,130px) clamp(24px,8vw,128px); display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(48px,10vw,140px); align-items:start; background:var(--black); color:#f5f5f6; }.approach-intro .eyebrow { color:var(--gold); }.approach-intro h2 { max-width:560px; margin:0; font-size:clamp(2rem,4vw,3.8rem); letter-spacing:-.06em; line-height:1.05; }.approach-intro > p:last-child { max-width:470px; margin:24px 0 0; color:#b9b9bc; }.approach-steps { margin:0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:28px; }.approach-steps li { min-height:154px; padding:20px 0; display:flex; gap:18px; border-top:1px solid #454548; }.approach-steps li > span { flex:0 0 auto; color:var(--gold); font:500 .72rem 'DM Mono',monospace; }.approach-steps h3 { margin:0 0 9px; font-size:1.02rem; }.approach-steps p { margin:0; color:#b9b9bc; font-size:.88rem; }
.experience { padding:clamp(70px,9vw,130px) clamp(24px,8vw,128px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,12vw,160px); background:#d8d8da; }.experience-copy { max-width:520px; font-size:1.08rem; }.experience-copy p:first-child { margin-top:0; }.experience-copy p:last-child { color:var(--muted); }
.contact { padding:clamp(74px,10vw,140px) clamp(24px,8vw,128px); background:var(--gold); color:var(--black); }.contact .eyebrow { color:#5a3c00; }.contact h2 { max-width:900px; }.contact p:not(.eyebrow) { max-width:620px; color:#282828; margin:24px 0 32px; font-size:1.05rem; }.contact .contact-email { margin:16px 0 0; font-size:.88rem; }.contact .contact-phone { margin:5px 0 0; font-size:.88rem; }.contact-email a,.contact-phone a { color:var(--black); font-weight:700; }.button-light { color:#f5f5f5; background:var(--black); }.button-light:hover { background:#363638; }
.testimonial-page .hero { min-height:440px; }.testimonial-note { max-width:900px; margin-top:52px; padding:26px 30px; border-top:1px solid var(--line); color:var(--muted); font-size:1.05rem; }.testimonial-note p { margin:0; }
.client-feedback { padding:clamp(60px,8vw,104px) clamp(24px,8vw,128px); display:flex; justify-content:space-between; align-items:center; gap:36px; background:#111112; color:#f5f5f6; }.client-feedback > div { max-width:720px; }.client-feedback .eyebrow { color:var(--gold); }.client-feedback h2 { margin:0; font-size:clamp(2rem,4vw,3.3rem); letter-spacing:-.06em; line-height:1.05; }.client-feedback p:not(.eyebrow) { margin:18px 0 0; color:#c2c2c5; }.client-feedback .button { flex:0 0 auto; }
.testimonial-note { display:flex; align-items:flex-start; gap:24px; margin-top:52px; padding:32px; border:1px solid #d2d2d4; background:#e7e7e8; color:var(--muted); }.testimonial-note .quote-mark { color:var(--gold); font-family:Georgia,serif; font-size:5rem; line-height:.8; }.testimonial-note h3 { margin:0 0 12px; color:var(--ink); font-size:1.35rem; }.testimonial-note .eyebrow { margin:0 0 12px; color:#8a5c00; }.testimonial-note p:not(.eyebrow) { margin:0 0 18px; }.testimonial-note a { color:var(--ink); font-weight:800; text-decoration:none; }.testimonial-note a:hover { color:#8a5c00; }
@media (max-width:760px) { .client-feedback { flex-direction:column; align-items:flex-start; } }
footer { padding:24px clamp(24px,5vw,80px); display:flex; justify-content:space-between; gap:20px; background:var(--black); color:#9b9b9e; font:500 .69rem/1.4 'DM Mono',monospace; letter-spacing:.05em; }
@media (max-width:900px) { .project-grid { grid-template-columns:1fr 1fr; }.project-card:last-child { grid-column:1 / -1; }.project-card:last-child .project-art { height:240px; } }
@media (max-width:760px) { .site-header { min-height:266px; }.brand { height:250px; gap:10px; }.brand img { width:250px; height:250px; }.brand-descriptor { max-width:150px; font-size:.76rem; }.site-header nav { gap:12px; flex-wrap:wrap; justify-content:flex-end; max-width:340px; } nav a { font-size:.75rem; }.hero { min-height:0; }.service-grid { grid-template-columns:1fr 1fr; }.service-grid article:nth-child(2) { border-right:none; }.service-grid article { min-height:220px; }.sector-grid { grid-template-columns:1fr 1fr; }.sector-grid article:nth-child(2) { border-right:none; }.approach { grid-template-columns:1fr; gap:38px; }.experience { grid-template-columns:1fr; gap:34px; } footer { flex-direction:column; } }
@media (max-width:430px) { .site-header { gap:8px; flex-wrap:wrap; }.brand { height:160px; }.brand img { width:160px; height:160px; }.brand-descriptor { max-width:140px; font-size:.68rem; }.site-header nav { width:100%; max-width:100%; gap:7px 18px; }.site-header nav a { font-size:.7rem; }.service-grid,.sector-grid,.project-grid { grid-template-columns:1fr; }.service-grid article,.sector-grid article { min-height:auto; margin-right:0; padding:22px 0; border-right:0; border-bottom:1px solid var(--line); }.service-grid h3 { margin:24px 0 9px; }.sector-grid h3 { margin:24px 0 9px; }.sector-grid article:nth-child(2),.sector-grid article:last-child { border-right:0; border-bottom:1px solid var(--line); border-top:0; grid-column:auto; padding:22px 0; }.sector-grid article:last-child { border-bottom:0; }.project-card:last-child { grid-column:auto; }.project-card:last-child .project-art,.project-art { height:190px; }.project-copy { padding:20px; }.approach-steps { grid-template-columns:1fr; }.approach-steps li { min-height:auto; } }

/* Client testimonials */
.testimonial { max-width:900px; margin-top:52px; padding:clamp(24px,4vw,48px); border:1px solid #d2d2d4; border-top:4px solid var(--gold); background:#e7e7e8; }
.testimonial blockquote { margin:0; max-width:72ch; color:#343438; font-size:clamp(1rem,1.5vw,1.15rem); line-height:1.8; }
.testimonial blockquote p { margin:0 0 1.2em; }
.testimonial blockquote p:last-child { margin-bottom:0; }
.testimonial-attribution { margin:28px 0 0; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font-size:.95rem; }
.testimonial-attribution cite { color:var(--ink); font-style:normal; font-weight:800; }

.testimonial-summary-card { max-width:900px; margin-top:52px; padding:clamp(24px,4vw,48px); display:flex; gap:26px; align-items:flex-start; border:1px solid #d2d2d4; border-top:4px solid var(--gold); background:#e7e7e8; color:inherit; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease; }
.testimonial-summary-card:hover,.testimonial-summary-card:focus-visible { transform:translateY(-3px); box-shadow:0 16px 40px rgba(0,0,0,.1); outline:2px solid var(--gold); outline-offset:3px; }
.testimonial-summary-quote { color:var(--gold); font:700 5rem/.75 Georgia,serif; }
.testimonial-summary-copy { flex:1; }.testimonial-summary-copy .eyebrow { margin:0 0 10px; color:#8a5c00; }.testimonial-summary-copy h3 { margin:0 0 14px; color:var(--ink); font-size:1.35rem; }.testimonial-summary-copy h3 span { display:block; margin-top:3px; color:var(--muted); font-size:.9rem; font-weight:500; }.testimonial-summary-copy > p:not(.eyebrow) { max-width:72ch; margin:0 0 20px; color:#343438; line-height:1.75; }.testimonial-read-more { color:var(--ink); font-weight:800; }.testimonial-summary-card:hover .testimonial-read-more { color:#8a5c00; }.testimonial-back { margin:0 0 -28px; }.testimonial-back a { color:var(--ink); font-weight:800; text-decoration:none; }.testimonial-back a:hover { color:#8a5c00; }
@media (max-width:520px) { .testimonial-summary-card { gap:14px; padding:24px 20px; }.testimonial-summary-quote { font-size:3.5rem; } }

.project-copy a { display:inline-flex; gap:8px; margin-top:18px; color:var(--ink); font-size:.86rem; font-weight:800; text-decoration:none; }.project-copy a:hover,.project-copy a:focus-visible { color:#8a5c00; text-decoration:underline; text-underline-offset:4px; }.case-study-section { padding-top:45px; }.case-study-detail { max-width:980px; margin:56px auto 0; display:grid; grid-template-columns:1fr; }.case-study-detail section { padding:30px 0; border-top:1px solid var(--line); }.case-study-detail h2 { margin:0 0 16px; font-size:clamp(1.5rem,3vw,2.2rem); letter-spacing:-.04em; }.case-study-detail section > p:last-child { max-width:76ch; margin:0; color:var(--muted); font-size:1.02rem; line-height:1.8; }.case-study-detail .eyebrow { margin-bottom:12px; color:#8a5c00; }.case-study-detail section:first-child { border-top:4px solid var(--gold); }
.project-art { background:#111; }
.project-photo { display:block; width:100%; height:100%; object-fit:cover; }

/* Refreshed call-to-action buttons, shared across the existing site. */
:is(.home-page, .shared-buttons) .button{ min-height:56px; justify-content:center; padding:17px 26px; gap:24px; border:1px solid transparent; border-radius:8px; font-size:.95rem; line-height:1.35; box-shadow:0 5px 0 #9d7018,0 10px 24px #0002; transition:background .18s,transform .18s,box-shadow .18s; }
:is(.home-page, .shared-buttons) .button:hover{ transform:translateY(-2px); box-shadow:0 7px 0 #9d7018,0 14px 28px #0003; }
:is(.home-page, .shared-buttons) .button:active{ transform:translateY(2px); box-shadow:0 2px 0 #9d7018; }
:is(.home-page, .shared-buttons) .button:focus-visible{ outline:3px solid #fff; outline-offset:4px; box-shadow:0 0 0 7px #815900; }
:is(.home-page, .shared-buttons) .button-light{ background:#222326; border-color:#505054; box-shadow:0 5px 0 #09090a,0 10px 24px #0002; }
:is(.home-page, .shared-buttons) .button-light:hover{ background:#333438; box-shadow:0 7px 0 #09090a,0 14px 28px #0003; }
:is(.home-page, .shared-buttons) .button-light span{ color:var(--gold); }
/* Homepage layout is deliberately scoped to preserve other page layouts. */
.home-page .hero{ min-height:680px; padding:90px clamp(24px,8vw,128px); background:#151719; isolation:isolate; }
.home-page .hero::before{ content:""; position:absolute; inset:0; z-index:-2; background:url('complete-line-installation.webp') center right/cover no-repeat; }
.home-page .hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(15,17,19,.98) 0%,rgba(15,17,19,.91) 43%,rgba(15,17,19,.4) 100%); }
.home-page .hero-copy{ max-width:900px; }
.home-page .hero h1{ max-width:900px; font-size:clamp(2.8rem,5.3vw,5.4rem); line-height:1.06; letter-spacing:-.055em; }
.home-page .hero h1 span{ color:var(--gold); }
.home-page .hero-specialisms{ font-size:clamp(1.05rem,1.6vw,1.35rem); font-weight:700; color:#eee; margin:25px 0 0; }
.home-page .intro{ max-width:680px; font-size:1rem; line-height:1.8; margin:18px 0 30px; color:#d2d3d5; }
.home-page .hero-actions{ display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
:is(.home-page, .shared-buttons) .button-outline, :is(.home-page, .shared-buttons) .button-projects{ background:#26282b; color:#fff; border-color:#77797d; box-shadow:0 5px 0 #101113,0 10px 24px #0003; }
:is(.home-page, .shared-buttons) .button-outline svg, :is(.home-page, .shared-buttons) .button-projects span{ color:var(--gold); }
:is(.home-page, .shared-buttons) .button-outline:hover, :is(.home-page, .shared-buttons) .button-projects:hover{ background:#373a3e; box-shadow:0 7px 0 #101113,0 14px 28px #0003; }
:is(.home-page, .shared-buttons) .button-projects{ margin-top:22px; min-height:48px; font-size:.86rem; padding:13px 22px; }
.home-page .services{ background:#f7f7f7; }
.home-page .service-grid{ border:0; gap:18px; margin-top:42px; }
.home-page .service-grid article{ background:#fff; border:1px solid #dedee0; border-top:3px solid var(--gold); padding:26px; margin:0; border-radius:8px; box-shadow:0 8px 24px #00000006; }
.home-page .service-grid h3{ margin-top:32px; }
.home-page .sectors{ background:#e9e9eb; }
.home-page .approach{ background:#17191c; }
.home-page .experience{ background:#f7f7f7; }
.home-page .client-feedback{ border-top:1px solid #38393c; background:#1c1e21; }@media(max-width:900px){
.home-page .service-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }@media(max-width:600px){
.home-page .hero{ padding:56px 24px 64px; min-height:0; }
.home-page .hero::after{ background:rgba(15,17,19,.87); }
.home-page .hero h1{ font-size:clamp(2.5rem,9vw,3.6rem); }
.home-page .hero-actions{ align-items:stretch; }
.home-page .hero-actions .button{ width:100%; }
.home-page .service-grid{ grid-template-columns:1fr; }
.home-page .service-grid article{ min-height:0; }
.home-page .button{ max-width:100%; } }@media(prefers-reduced-motion:reduce){
.home-page html{ scroll-behavior:auto; }
.home-page .button{ transition:none; }
.home-page .button:hover, .home-page .button:active{ transform:none; } }

/* Approved homepage navigation: outlined buttons and a gold contact action. */
:is(.home-page, .shared-buttons) .site-header{ min-height:200px; padding:10px clamp(20px,4vw,64px); gap:32px; background:#0c0d0f; }
:is(.home-page, .shared-buttons) .brand, :is(.home-page, .shared-buttons) .brand img{ width:200px; height:200px; }
:is(.home-page, .shared-buttons) .site-header nav{ flex:1; display:flex; gap:12px; justify-content:flex-end; max-width:none; }
:is(.home-page, .shared-buttons) .site-header nav a{ display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:54px; padding:14px 20px; color:#f8f8f8; background:#1c1e21; border:1px solid var(--gold); border-radius:8px; font-size:.88rem; font-weight:800; line-height:1.3; text-decoration:none; white-space:nowrap; box-shadow:0 4px 12px #0003; transition:background .18s,color .18s,transform .18s; }
:is(.home-page, .shared-buttons) .site-header nav a:hover, :is(.home-page, .shared-buttons) .site-header nav a:focus-visible{ color:#101113; background:var(--gold); transform:translateY(-2px); }
:is(.home-page, .shared-buttons) .site-header nav a:focus-visible{ outline:2px solid #fff; outline-offset:4px; }
:is(.home-page, .shared-buttons) .site-header nav a.nav-contact{ color:#101113; background:var(--gold); }
:is(.home-page, .shared-buttons) .site-header nav a.nav-contact:hover{ background:var(--gold-light); }
:is(.home-page, .shared-buttons) .nav-contact span{ font-size:1.3rem; }@media(max-width:1150px){
.home-page .site-header{ gap:20px; }
.home-page .site-header nav{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:640px; }
.home-page .site-header nav a{ padding:12px 16px; } }@media(max-width:600px){
.home-page .site-header{ flex-direction:column; gap:0; padding:0 20px 24px; }
.home-page .brand, .home-page .brand img{ width:180px; height:180px; }
.home-page .site-header nav{ width:100%; max-width:none; gap:10px; }
.home-page .site-header nav a{ padding:12px 8px; min-height:48px; font-size:.76rem; gap:8px; }
.home-page .nav-contact span{ font-size:1rem; } }@media(max-width:350px){
.home-page .site-header nav{ grid-template-columns:repeat(2,minmax(0,1fr)); } }@media(prefers-reduced-motion:reduce){
.home-page .site-header nav a{ transition:none; }
.home-page .site-header nav a:hover, .home-page .site-header nav a:focus-visible{ transform:none; } }
