@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_98ad3912-module__9GIQTa__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_98ad3912-module__9GIQTa__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--colour-bg:#fff;--colour-surface:#f9f9f9;--colour-surface-hover:#f5f5f5;--colour-border:#e0e0e0;--colour-border-light:#ccc;--colour-text:#000;--colour-text-muted:#555;--colour-text-inverse:#fff;--colour-accent:#000;--colour-accent-hover:#333;--colour-banner-bg:#f5f5f5;--colour-banner-text:#000;--colour-nav-bg:#fff;--colour-nav-text:#000;--colour-nav-text-active:#000;--colour-nav-border:#e0e0e0;--colour-footer-bg:#fff;--colour-footer-text:#555;--colour-footer-border:#e0e0e0;--colour-input-bg:#f5f5f5;--colour-input-border:#ccc;--colour-input-focus:#000;--colour-error:#d4351c;--colour-tag-bg:#ebebeb;--colour-tag-text:#555;--font-family-body:var(--font-inter), system-ui, -apple-system, sans-serif;--font-family-heading:var(--font-inter), system-ui, -apple-system, sans-serif;--font-family-mono:"JetBrains Mono", "Courier New", monospace;--text-xs:.8rem;--text-sm:.9rem;--text-base:.95rem;--text-md:1.1rem;--text-lg:1.25rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:2.5rem;--text-5xl:3.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.1;--line-height-snug:1.3;--line-height-normal:1.6;--line-height-relaxed:1.75;--letter-spacing-tight:-.03em;--letter-spacing-normal:0;--letter-spacing-wide:.08em;--letter-spacing-wider:.12em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--max-width:1200px;--max-width-prose:680px;--gutter:1.5rem;--gutter-lg:3rem;--nav-height:56px;--banner-height:44px;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-full:9999px;--border-width:1px;--shadow-sm:0 1px 3px #00000080;--shadow-md:0 4px 16px #0009;--shadow-lg:0 8px 32px #000000b3;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--section-padding-y:var(--space-20);--section-gap:var(--space-16);--hero-title-size:clamp(2rem, 5vw, var(--text-5xl));--card-gap:var(--space-4);--card-aspect-ratio:16 / 10;--card-radius:var(--radius-sm);--carousel-gap:var(--space-4);--carousel-btn-size:2.5rem;--input-padding-x:var(--space-4);--input-padding-y:var(--space-3);--input-radius:var(--radius-md);--input-min-height:3rem;--testimonial-border-color:#e0e0e0;--testimonial-gap:var(--space-8);--tag-padding:var(--space-1) var(--space-3);--tag-radius:var(--radius-full);--tag-font-size:var(--text-xs)}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}img,svg,video{max-width:100%;display:block}input,button,textarea,select{font:inherit}a{color:inherit}body{background-color:var(--colour-bg);color:var(--colour-text);font-family:var(--font-family-body);font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;overflow-x:hidden}.skip-link{top:-100%;left:var(--space-4);background:var(--colour-accent);color:var(--colour-text-inverse);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);z-index:9999;transition:top var(--transition-fast);text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-4)}.container{width:100%;max-width:var(--max-width);padding-inline:var(--gutter);margin-inline:auto}@media (min-width:768px){.container{padding-inline:var(--gutter-lg)}}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--hero-title-size);margin-bottom:var(--space-6)}h2{font-size:var(--text-3xl);margin-bottom:var(--space-5)}h3{font-size:var(--text-xl);margin-bottom:var(--space-4)}p{max-width:var(--max-width-prose)}p+p{margin-top:var(--space-4)}a{text-underline-offset:3px;transition:opacity var(--transition-fast);text-decoration-line:underline;text-decoration-thickness:1px}a:hover{opacity:.75}a:focus-visible{outline:2px solid var(--colour-accent);outline-offset:3px;border-radius:var(--radius-sm)}.btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;border:var(--border-width) solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), opacity var(--transition-fast);white-space:nowrap;background:0 0;text-decoration:none;display:inline-flex}.btn:hover{opacity:1}.btn:focus-visible{outline:2px solid var(--colour-accent);outline-offset:3px}.btn-primary{background:var(--colour-accent);color:var(--colour-text-inverse);border-color:var(--colour-accent)}.btn-primary:hover{background:var(--colour-accent-hover);border-color:var(--colour-accent-hover)}.btn-outline{color:var(--colour-text);border-color:var(--colour-text);background:0 0}.btn-outline:hover{background:var(--colour-text);color:var(--colour-text-inverse);border-color:var(--colour-text)}.btn-ghost{color:var(--colour-text-muted);background:0 0;border-color:#0000;padding-inline:0}.btn-ghost:hover{color:var(--colour-text)}.tag{padding:var(--tag-padding);border:var(--border-width) solid var(--colour-border-light);color:var(--colour-tag-text);font-size:var(--tag-font-size);font-weight:var(--font-weight-medium);border-radius:var(--tag-radius);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;white-space:nowrap;background:0 0;text-decoration:none;display:inline-block}.section{padding-block:var(--section-padding-y)}.section-header{margin-bottom:var(--section-gap)}.section-intro{font-size:var(--text-lg);color:var(--colour-text-muted);max-width:var(--max-width-prose);line-height:var(--line-height-relaxed)}hr{border:none;border-top:var(--border-width) solid var(--colour-border)}.page-header{padding-block:var(--space-20) var(--space-12);border-bottom:var(--border-width) solid var(--colour-border);margin-bottom:var(--space-16)}.page-header h1{margin-bottom:var(--space-4)}.page-header p{font-size:var(--text-lg);color:var(--colour-text-muted);max-width:var(--max-width-prose);line-height:var(--line-height-relaxed)}.banner{background:var(--colour-banner-bg);border-bottom:var(--border-width) solid var(--colour-border);height:var(--banner-height);z-index:200;align-items:center;display:flex;position:relative}.bannerInner{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;max-width:var(--max-width);padding-inline:var(--gutter);margin-inline:auto;display:flex}@media (min-width:768px){.bannerInner{padding-inline:var(--gutter-lg)}}.bannerLink{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--colour-banner-text);text-decoration:none}.bannerLink:after{content:" →"}.bannerClose{color:var(--colour-text-muted);font-size:var(--text-lg);cursor:pointer;padding:var(--space-1);transition:color var(--transition-fast);background:0 0;border:none;line-height:1}.bannerClose:hover{color:var(--colour-text)}.nav{background:var(--colour-nav-bg);border-bottom:var(--border-width) solid var(--colour-nav-border);z-index:100;height:var(--nav-height);position:sticky;top:0}.navInner{height:100%;max-width:var(--max-width);padding-inline:var(--gutter);justify-content:space-between;align-items:center;margin-inline:auto;display:flex}@media (min-width:768px){.navInner{padding-inline:var(--gutter-lg)}}.navLogo{font-size:var(--text-md);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);color:var(--colour-nav-text);flex-shrink:0;text-decoration:none}.navLogo:hover{opacity:1}.navLinks{gap:var(--space-8);align-items:center;list-style:none;display:none}@media (min-width:768px){.navLinks{display:flex}}.navLinks a{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--colour-text-muted);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;transition:color var(--transition-fast);padding-block:var(--space-2);text-decoration:none}.navLinks a:hover,.navLinks a.active{color:var(--colour-nav-text-active);opacity:1}.navToggle{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:28px;height:28px;padding:0;display:flex}@media (min-width:768px){.navToggle{display:none}}.navToggle span{background:var(--colour-text);border-radius:1px;height:1.5px;display:block}.mobileMenu{background:var(--colour-bg);z-index:99;padding:var(--space-20) var(--gutter) var(--space-12);gap:var(--space-4);flex-direction:column;display:none;position:fixed;inset:0}.mobileMenu.open{display:flex}.mobileMenu a{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);color:var(--colour-text);line-height:1.2;text-decoration:none}.mobileMenu a:hover{color:var(--colour-text-muted)}.mobileMenuClose{top:var(--space-4);right:var(--space-6);color:var(--colour-text);font-size:var(--text-2xl);cursor:pointer;background:0 0;border:none;line-height:1;position:absolute}.hero{padding-block:var(--space-24) var(--space-20);border-bottom:var(--border-width) solid var(--colour-border)}.heroEyebrow{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--colour-text-muted);margin-bottom:var(--space-6)}.heroTitle{font-size:var(--hero-title-size);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight);max-width:18ch;margin-bottom:var(--space-8)}.heroBody{font-size:var(--text-lg);color:var(--colour-text-muted);max-width:var(--max-width-prose);line-height:var(--line-height-relaxed);margin-bottom:var(--space-10)}.heroActions{gap:var(--space-4);flex-wrap:wrap;display:flex}.carouselSection{padding-block:var(--section-padding-y);border-bottom:var(--border-width) solid var(--colour-border);overflow:hidden}.carouselHeader{margin-bottom:var(--space-8);justify-content:space-between;align-items:flex-end;display:flex}.carouselSectionTitle{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--colour-text-muted);margin-bottom:0}.carouselTrackWrap{overflow:hidden}.carouselTrack{gap:var(--carousel-gap);transition:transform var(--transition-slow);display:flex}.carouselSlide{flex:0 0 calc(100% - var(--space-8));max-width:480px;color:var(--colour-text);text-decoration:none;display:block}@media (min-width:640px){.carouselSlide{flex:0 0 calc(50% - var(--space-4))}}@media (min-width:1024px){.carouselSlide{flex:0 0 calc(33.333% - var(--space-4))}}.carouselSlide:hover{opacity:1}.carouselImage{aspect-ratio:var(--card-aspect-ratio);background:var(--colour-surface);border-radius:var(--card-radius);margin-bottom:var(--space-4);border:var(--border-width) solid var(--colour-border);position:relative;overflow:hidden}.carouselImage img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-slow)}.carouselSlide:hover .carouselImage img{transform:scale(1.03)}.carouselImagePlaceholder{width:100%;height:100%;font-size:var(--text-xs);color:var(--colour-text-muted);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;justify-content:center;align-items:center;display:flex}.carouselTitle{font-size:var(--text-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1);letter-spacing:var(--letter-spacing-tight)}.carouselSubtitle{font-size:var(--text-sm);color:var(--colour-text-muted);margin-bottom:var(--space-3)}.carouselTags{gap:var(--space-1);flex-wrap:wrap;display:flex}.carouselControls{gap:var(--space-2);margin-top:var(--space-8);display:flex}.carouselBtn{width:var(--carousel-btn-size);height:var(--carousel-btn-size);background:var(--colour-surface);border:var(--border-width) solid var(--colour-border-light);border-radius:var(--radius-full);cursor:pointer;color:var(--colour-text);font-size:var(--text-md);transition:background var(--transition-fast);justify-content:center;align-items:center;line-height:1;display:flex}.carouselBtn:hover{background:var(--colour-surface-hover)}.carouselBtn:disabled{opacity:.3;cursor:not-allowed}.clientsSection{padding-block:var(--section-padding-y);border-bottom:var(--border-width) solid var(--colour-border)}.clientsTitle{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--colour-text-muted);margin-bottom:var(--space-8)}.clientsLogoGrid{gap:var(--space-4);grid-template-columns:repeat(5,1fr);list-style:none;display:grid}@media (max-width:640px){.clientsLogoGrid{grid-template-columns:repeat(2,1fr)}}.clientsLogoBox{background:var(--colour-surface);border-radius:var(--radius-sm);aspect-ratio:3/2;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.clientsLogo{object-fit:contain;width:77%;max-height:66px}.servicesSection{padding-block:var(--section-padding-y);border-bottom:var(--border-width) solid var(--colour-border)}.servicesTabs{gap:var(--space-2);margin-bottom:var(--space-10);flex-wrap:wrap;list-style:none;display:flex}.servicesTab{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--colour-text-muted);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;padding:var(--space-2) var(--space-4);border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-full);transition:color var(--transition-fast), border-color var(--transition-fast);text-decoration:none}.servicesTab:hover{color:var(--colour-text);border-color:var(--colour-border-light);opacity:1}.servicesGrid{gap:var(--space-6);grid-template-columns:1fr;display:grid}@media (min-width:640px){.servicesGrid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.servicesGrid{grid-template-columns:repeat(4,1fr)}}.serviceCard{padding:var(--space-8) var(--space-6);background:var(--colour-surface);border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.serviceCardNumber{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);color:var(--colour-text-muted);margin-bottom:var(--space-4);font-family:var(--font-family-mono)}.serviceCardTitle{font-size:var(--text-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-3);letter-spacing:var(--letter-spacing-tight)}.serviceCardBody{font-size:var(--text-sm);color:var(--colour-text-muted);line-height:var(--line-height-relaxed);max-width:none}.ctaStrip{padding-block:var(--section-padding-y);border-top:var(--border-width) solid var(--colour-border);border-bottom:var(--border-width) solid var(--colour-border)}.ctaStripInner{justify-content:space-between;align-items:flex-start;gap:var(--space-12);flex-wrap:wrap;display:flex}.ctaHeading{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);margin-bottom:var(--space-6)}.ctaContacts{gap:var(--space-3);flex-direction:column;display:flex}.ctaContactItem{font-size:var(--text-base);color:var(--colour-text-muted)}.ctaContactItem a{color:var(--colour-text)}.ctaSocials{gap:var(--space-2);flex-direction:column;display:flex}.ctaSocialLabel{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);text-transform:uppercase;color:var(--colour-text-muted);margin-bottom:var(--space-3)}.ctaSocialLink{font-size:var(--text-sm);color:var(--colour-text-muted);transition:color var(--transition-fast);text-decoration:none}.ctaSocialLink:hover{color:var(--colour-text)}.footer{background:var(--colour-footer-bg);border-top:var(--border-width) solid var(--colour-footer-border);padding-block:var(--space-8)}.footerInner{justify-content:space-between;align-items:center;gap:var(--space-4);max-width:var(--max-width);padding-inline:var(--gutter);flex-wrap:wrap;margin-inline:auto;display:flex}@media (min-width:768px){.footerInner{padding-inline:var(--gutter-lg)}}.footerCopy{font-size:var(--text-sm);color:var(--colour-footer-text)}.footerLinks{gap:var(--space-6);flex-wrap:wrap;list-style:none;display:flex}.footerLinks a{font-size:var(--text-sm);color:var(--colour-footer-text);transition:color var(--transition-fast);text-decoration:none}.footerLinks a:hover{color:var(--colour-text)}.aboutLayout{gap:var(--space-16);grid-template-columns:1fr;display:grid}@media (min-width:768px){.aboutLayout{grid-template-columns:280px 1fr}}.profilePhoto{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--colour-border);width:120px;height:120px;margin-bottom:var(--space-6)}.profileName{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);margin-bottom:var(--space-2)}.profileRole{font-size:var(--text-sm);color:var(--colour-text-muted);margin-bottom:var(--space-6)}.profileContacts{gap:var(--space-2);flex-direction:column;display:flex}.profileContacts a{font-size:var(--text-sm);color:var(--colour-text-muted)}.aboutContent h2{font-size:var(--text-2xl);margin-bottom:var(--space-4);padding-top:var(--space-8);border-top:var(--border-width) solid var(--colour-border);margin-top:var(--space-8)}.aboutContent h2:first-child{border-top:none;margin-top:0;padding-top:0}.aboutContent p{font-size:var(--text-base);color:var(--colour-text-muted);line-height:var(--line-height-relaxed)}.certification{margin-top:var(--space-8);padding:var(--space-6);background:var(--colour-surface);border:var(--border-width) solid var(--colour-border);border-radius:var(--radius-md);align-items:center;gap:var(--space-6);display:flex}.certBadge{background:var(--colour-surface-hover);border-radius:var(--radius-md);width:80px;height:80px;font-size:var(--text-xs);color:var(--colour-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.certText{font-size:var(--text-sm);color:var(--colour-text-muted);line-height:var(--line-height-relaxed)}.certTitle{font-weight:var(--font-weight-semibold);color:var(--colour-text);margin-bottom:var(--space-1);display:block}.servicesList{flex-direction:column;display:flex}.serviceBlock{padding-block:var(--space-16);border-bottom:var(--border-width) solid var(--colour-border);gap:var(--space-8);grid-template-columns:1fr;display:grid}@media (min-width:768px){.serviceBlock{gap:var(--space-16);grid-template-columns:1fr 1fr;align-items:start}}.serviceBlock:first-child{padding-top:0}.serviceBlockNumber{font-family:var(--font-family-mono);font-size:var(--text-xs);color:var(--colour-text-muted);letter-spacing:var(--letter-spacing-wider);margin-bottom:var(--space-4)}.serviceBlockTitle{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);margin-bottom:0}.serviceBlockBody{font-size:var(--text-md);color:var(--colour-text-muted);line-height:var(--line-height-relaxed);margin-bottom:var(--space-6);max-width:none}.serviceBlockLink{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--colour-text-muted);transition:color var(--transition-fast);text-decoration:none;display:inline-flex}.serviceBlockLink:hover{color:var(--colour-text);opacity:1}.serviceBlockLink:after{content:" →"}.workGrid{grid-template-columns:1fr;gap:30px;display:grid}@media (min-width:640px){.workGrid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.workGrid{grid-template-columns:repeat(3,1fr)}}.workCard{color:var(--colour-text);flex-direction:column;padding:0;text-decoration:none;display:flex}.workCard:hover{opacity:1}.workCardImage{aspect-ratio:var(--card-aspect-ratio);background:var(--colour-surface);border-radius:var(--card-radius);margin-bottom:var(--space-4);overflow:hidden}.workCardImage img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-slow)}.workCard:hover .workCardImage img{transform:scale(1.03)}.workCardImagePlaceholder{width:100%;height:100%;font-size:var(--text-xs);color:var(--colour-text-muted);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;justify-content:center;align-items:center;display:flex}.workCardTitle{font-size:var(--text-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1);letter-spacing:var(--letter-spacing-tight);transition:opacity var(--transition-fast)}.workCard:hover .workCardTitle{opacity:.7}.workCardSubtitle{font-size:var(--text-sm);color:var(--colour-text-muted);margin-bottom:var(--space-3)}.workCardTags{gap:var(--space-1);flex-wrap:wrap;display:flex}.testimonialsList{flex-direction:column;display:flex}.testimonial{padding-block:var(--space-12);border-bottom:var(--border-width) solid var(--testimonial-border-color)}.testimonial:first-child{padding-top:0}.testimonialQuote{font-size:var(--text-md);color:var(--colour-text-muted);line-height:var(--line-height-relaxed);max-width:var(--max-width-prose);margin-bottom:var(--space-6);font-style:normal}.testimonialAttribution{gap:var(--space-1);flex-direction:column;display:flex}.testimonialName{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--colour-text)}.testimonialRole{font-size:var(--text-sm);color:var(--colour-text-muted)}.contactLayout{gap:var(--space-16);grid-template-columns:1fr;display:grid}@media (min-width:768px){.contactLayout{grid-template-columns:1fr 1fr}}.contactIntroTitle{font-size:var(--text-3xl);margin-bottom:var(--space-4)}.contactIntroBody{font-size:var(--text-md);color:var(--colour-text-muted);line-height:var(--line-height-relaxed)}.form{gap:var(--space-5);flex-direction:column;display:flex}.formGroup{gap:var(--space-2);flex-direction:column;display:flex}.formLabel{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--colour-text);letter-spacing:var(--letter-spacing-wide)}.formLabelOptional:after{content:" (optional)";font-weight:var(--font-weight-normal);color:var(--colour-text-muted)}.formInput,.formTextarea{background:var(--colour-input-bg);border:var(--border-width) solid var(--colour-input-border);border-radius:var(--input-radius);color:var(--colour-text);padding:var(--input-padding-y) var(--input-padding-x);font-size:var(--text-base);min-height:var(--input-min-height);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);-webkit-appearance:none}.formInput:focus,.formTextarea:focus{border-color:var(--colour-input-focus);outline:none;box-shadow:0 0 0 2px #ffffff1a}.formInput::placeholder,.formTextarea::placeholder{color:var(--colour-text-muted)}.formTextarea{resize:vertical;min-height:160px;line-height:var(--line-height-relaxed)}.formError{font-size:var(--text-sm);color:var(--colour-error);display:none}.formError.visible{display:block}.formGroupError .formInput,.formGroupError .formTextarea{border-color:var(--colour-error)}.formHoneypot{display:none}.formSuccess{font-size:var(--text-lg);color:var(--colour-text)}.projectBack{font-size:var(--text-sm);color:var(--colour-text-muted);margin-bottom:var(--space-6);letter-spacing:var(--letter-spacing-wide);text-decoration:none;display:inline-block}.projectBack:hover{color:var(--colour-text);opacity:1}.projectIndex{font-size:var(--text-sm);color:var(--colour-text-muted);letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--space-3)}.projectSubtitle{font-size:var(--text-lg);color:var(--colour-text-muted);margin-top:var(--space-3);max-width:var(--max-width-prose)}.projectServices{gap:var(--space-2);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.projectServiceChip{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;padding:var(--space-1) var(--space-3);border:var(--border-width) solid var(--colour-border);color:var(--colour-text-muted);border-radius:9999px}.projectHero{padding-block:var(--space-8)}.projectHeroImage{border-radius:var(--card-radius);width:100%;height:auto;display:block}.projectBody{max-width:var(--max-width-prose);gap:var(--space-4);flex-direction:column;display:flex}.projectBody p{font-size:var(--text-md);color:var(--colour-text-muted);line-height:var(--line-height-relaxed)}.projectSection{padding-block:var(--space-12);border-top:var(--border-width) solid var(--colour-border);gap:var(--space-8);grid-template-columns:1fr;display:grid}@media (min-width:768px){.projectSection{gap:var(--space-16);grid-template-columns:1fr 2fr}}.projectSection:first-child{border-top:none}.projectSectionTitle{font-size:var(--text-xl);font-weight:var(--font-weight-semibold)}.projectSectionBody{flex-direction:column;gap:30px;display:flex}.projectSectionBody p{font-size:var(--text-base);color:var(--colour-text-muted);line-height:var(--line-height-relaxed)}.projectSectionImage{border-radius:var(--card-radius);width:100%;height:auto;display:block}.projectNav{padding:var(--space-12) var(--space-8);border-top:var(--border-width) solid var(--colour-border);justify-content:space-between;gap:var(--space-4);display:flex}.projectNavBtn{gap:var(--space-1);color:var(--colour-text);flex-direction:column;max-width:40%;text-decoration:none;display:flex}.projectNavBtnNext{text-align:right;align-items:flex-end}.projectNavDir{font-size:var(--text-xs);color:var(--colour-text-muted);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.projectNavName{font-size:var(--text-sm);font-weight:var(--font-weight-semibold)}.projectNavBtn:hover .projectNavName{opacity:.7}.srOnly{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
