:root{color-scheme:light;--shadow-menu:0 18px 45px rgba(15,23,42,0.65);--scroll-offset:5rem;--brand-charcoal:#404040;--brand-green:#007A00;--brand-green-dark:#006d00;--brand-logo-green:#00E000;--brand-grey:#4b5563;--text-on-dark:#ffffff;--text-on-dark-muted:#d9d9d9;--text-on-dark-subdued:#cbd5e1;--color-text-main:var(--brand-charcoal);--color-text-muted:var(--brand-grey);--color-text-dark:#111827;--color-surface:#ffffff;--color-surface-soft:#f9fafb;--color-surface-hover:#e5e7eb;--color-surface-dark:#0b0b0b;--color-border-subtle:#d1d5db;--color-border-dark:#1f2937;--color-border-input:#959595;--color-accent:var(--brand-green);--color-accent-soft:#e6ffe6;--color-error:#b91c1c;--color-text-placeholder:#595959}.btn,.card,.project-card,.service-card-link,.site-nav,.nav-list,input,textarea{transition-property:background-color,border-color,color,box-shadow,opacity,transform;transition-duration:0.15s;transition-timing-function:ease}*,*::before,*::after{box-sizing:border-box}html{font-family:Arial,"Helvetica Neue",Helvetica,system-ui,-apple-system,sans-serif;line-height:1.5;scroll-behavior:smooth;overflow-anchor:none;text-decoration-skip-ink:auto}body{margin:0;color:var(--color-text-main);background-color:var(--color-surface)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);border:0}.section{padding:3rem 1.25rem}.section-light{background-color:var(--color-surface-soft)}.section-inner{max-width:1120px;margin:0 auto}.page-intro{padding:4rem 1.25rem 2.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border-subtle)}.split-layout{display:grid;gap:2rem}.split-layout>div{display:flex;flex-direction:column}@media (min-width:768px){.section{padding:4rem 1.5rem}.page-intro{padding:5rem 1.5rem 3rem}.split-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.project-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}h1,h2,h3{margin:0 0 0.75rem;font-weight:600;letter-spacing:-0.02em;color:var(--color-text-main)}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}a[target="_blank"]:not(.btn):not(.social-link)::after{content:" \2197";font-size:0.75em}p{margin:0 0 1rem}main a{color:var(--brand-green);text-decoration:none;text-underline-offset:2px}main a:visited{color:var(--brand-green)}main a:hover,main a:focus-visible{color:var(--brand-green-dark);text-decoration:underline}.eyebrow{font-size:0.9rem;text-transform:uppercase;letter-spacing:0.16em;color:var(--color-text-muted);margin-bottom:0.5rem}.bullet-list{padding-left:1.25rem;margin:0}.bullet-list li{margin-bottom:0.5rem}.faq-accordion{margin:0;padding:0}.faq-item{border-bottom:1px solid var(--color-border-subtle);list-style:none}.faq-item:first-child{border-top:1px solid var(--color-border-subtle)}.faq-question{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0;font-weight:600;font-size:1rem;color:var(--color-text-dark);line-height:1.4;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.faq-question::-webkit-details-marker{display:none}.faq-question::after{content:"";flex-shrink:0;width:1rem;height:1rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23404040' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;transition:transform 0.2s ease}details[open]>.faq-question::after{transform:rotate(180deg)}.faq-answer{padding:0 0 1.25rem;color:var(--color-text-main);line-height:1.7}.breadcrumb{margin:0 0 1rem}.breadcrumb ol{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0;font-size:0.85rem;color:var(--color-text-muted)}.breadcrumb li + li::before{content:"›";padding:0 0.35rem;color:var(--color-text-muted)}.breadcrumb a{color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px}.breadcrumb a:visited{color:var(--color-text-muted)}.breadcrumb a:hover,.breadcrumb a:focus-visible{color:var(--color-text-main)}.breadcrumb-light ol{color:var(--text-on-dark-muted)}.breadcrumb-light li + li::before{color:var(--text-on-dark-muted)}.breadcrumb-light a{color:var(--text-on-dark-muted)}.breadcrumb-light a:visited{color:var(--text-on-dark-muted)}.breadcrumb-light a:hover,.breadcrumb-light a:focus-visible{color:var(--text-on-dark)}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:0.7rem 1.5rem;font-family:inherit;font-size:0.95rem;font-weight:500;line-height:1;text-decoration:none;border:1px solid transparent;box-sizing:border-box;cursor:pointer}.btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.btn-primary{background-color:var(--color-accent);color:var(--text-on-dark);border-color:var(--color-accent)}.btn-primary:visited{color:var(--text-on-dark)}.btn-primary:hover,.btn-primary:focus-visible{background-color:var(--brand-green-dark);border-color:var(--brand-green-dark);box-shadow:0 0 0 3px var(--color-accent-soft)}.btn-outline{background-color:transparent;color:var(--color-accent);border-color:var(--color-accent)}.btn-outline:visited{color:var(--color-accent)}.btn-outline:hover,.btn-outline:focus-visible{background-color:var(--color-accent-soft)}.btn:disabled,.btn[disabled]{opacity:0.5;cursor:not-allowed;pointer-events:none}.btn[aria-busy="true"]{opacity:0.7;cursor:wait;pointer-events:none;position:relative}.btn[aria-busy="true"]::after{content:"";width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;margin-left:0.5em;animation:btn-spin 0.6s linear infinite;will-change:transform}@keyframes btn-spin{to{transform:rotate(360deg)}}.site-header{position:sticky;top:0;z-index:50;background-color:var(--brand-charcoal);color:var(--text-on-dark);min-height:64px;box-shadow:0 2px 8px rgba(0,0,0,0.08)}.header-inner{max-width:1120px;margin:0 auto;padding:0.6rem 1.25rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row}.brand{display:inline-flex;align-items:center;gap:0.6rem;color:inherit;text-decoration:none}.brand-logo{width:48px;height:48px;object-fit:contain}.brand-text{font-weight:700;font-size:1.25rem;letter-spacing:0.02em}.brand-accent{color:var(--brand-logo-green)}.nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0;gap:0.25rem;width:2.75rem;height:2.75rem;background:none;border-radius:999px;border:1px solid rgba(148,163,184,0.7);cursor:pointer;padding:0}.nav-toggle-bar{height:2px;width:1.4rem;background-color:var(--color-surface-hover);border-radius:999px}.nav-toggle:focus-visible{outline:3px solid var(--text-on-dark);outline-offset:2px}.site-nav{display:none}.nav-list{list-style:none;margin:0;padding:0}.nav-list>li{position:relative}.nav-link{display:inline-flex;align-items:center;gap:0.25rem;padding:0.6rem 0;color:var(--color-surface-hover);text-decoration:none;font-size:0.95rem;border:none;background:none;cursor:pointer}.nav-link:hover{color:var(--brand-logo-green)}.nav-caret{font-size:0.7rem}.nav-dropdown-toggle{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:0.4rem;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:0.3rem}.nav-dropdown-toggle:focus-visible{outline:2px solid var(--text-on-dark);outline-offset:2px}.site-nav.is-open{display:block}@media (max-width:767px){.nav-dropdown-toggle[aria-expanded="true"] + .nav-mega{display:grid;grid-template-columns:1fr}.site-nav{position:absolute;top:100%;left:0;right:0;background-color:var(--brand-charcoal);border-bottom:1px solid var(--color-border-dark)}.nav-list{display:flex;flex-direction:column;padding:0.5rem 1.25rem 1rem;gap:0.25rem}.nav-item-has-children .nav-mega{position:static;box-shadow:none;border-radius:0;border:none;margin-top:0.25rem}.nav-mega-column{padding:0.5rem 0}}@media (min-width:768px){.header-inner{padding:0.75rem 1.5rem}.nav-toggle{display:none}.site-nav{display:block}.nav-list{display:flex;flex-direction:row;align-items:center;gap:2rem}.nav-dropdown-toggle{min-width:auto;min-height:auto;padding:0 0.1rem}}.nav-item-has-children{position:relative}.nav-parent-row{display:flex;align-items:center}.nav-mega{position:absolute;top:105%;left:0;min-width:260px;background-color:var(--brand-charcoal);border-radius:0.75rem;box-shadow:var(--shadow-menu);padding:1rem 1.25rem;display:none;gap:1.5rem}.nav-mega-column{min-width:0}.nav-mega-heading{display:block;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.14em;color:var(--text-on-dark-subdued);margin-bottom:0.4rem}.nav-sublink{display:block;padding:0.6rem 0;font-size:0.9rem;color:var(--text-on-dark);text-decoration:none}.nav-sublink:hover{color:var(--brand-logo-green)}@media (min-width:768px){.nav-item-has-children:hover .nav-mega,.nav-item-has-children:focus-within .nav-mega{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.nav-item-has-children:hover .nav-mega--single,.nav-item-has-children:focus-within .nav-mega--single{grid-template-columns:1fr}}.nav-item-has-children.is-open>.nav-mega{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.nav-item-has-children.is-open>.nav-mega--single{grid-template-columns:1fr}.nav-link-active{position:relative;color:var(--brand-logo-green)}.nav-link-active::after{content:"";position:absolute;left:0;right:0;bottom:-0.2rem;height:2px;border-radius:999px;background:var(--brand-logo-green)}.banner-dark{color:var(--color-surface)}.banner-dark h1,.banner-dark h2,.banner-dark h3,.banner-dark h4,.banner-dark p,.banner-dark ul,.banner-dark li,.banner-dark .eyebrow{color:var(--color-surface)}.banner-dark a{color:var(--color-surface);text-decoration:underline}.banner-dark a:hover,.banner-dark a:focus-visible{color:var(--color-surface);text-decoration:none}.banner-dark a:not(.btn):hover,.banner-dark a:not(.btn):focus-visible{opacity:0.8}.banner-dark .btn{color:var(--color-surface);border-color:var(--color-surface)}.banner-dark .btn-primary{background-color:var(--color-surface-dark);border-color:var(--brand-green);color:var(--color-surface)}.banner-dark .btn-primary:hover,.banner-dark .btn-primary:focus-visible{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface)}.banner-dark .btn-outline{background-color:transparent;border-color:var(--color-surface);color:var(--color-surface)}.banner-dark .btn-outline:hover,.banner-dark .btn-outline:focus-visible{background-color:var(--color-surface);border-color:var(--color-surface);color:var(--brand-charcoal)}.hero{background:radial-gradient(circle at top left,var(--brand-green) 0,var(--brand-charcoal) 45%,var(--color-surface-dark) 100%);color:var(--text-on-dark);padding:4.5rem 1.25rem 3.5rem}.hero-inner{max-width:1120px;margin:0 auto;display:grid;gap:2.5rem}.hero-copy h1{font-size:2.1rem;margin-bottom:0.9rem}.hero-text{font-size:1rem;color:var(--text-on-dark)}.hero-actions{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1.25rem}.hero-panel{display:flex;align-items:stretch;min-width:0}.hero-card{background:rgba(15,23,42,0.85);border-radius:1rem;padding:1.5rem;border:1px solid rgba(148,163,184,0.5);width:100%}.checklist{padding-left:1.25rem;margin:0.75rem 0 0}.checklist li{margin-bottom:0.4rem}@media (min-width:768px){.hero{padding:5rem 1.5rem 4rem}.hero-inner{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center}.hero-copy h1{font-size:2.4rem}}.hero--page .hero-inner{grid-template-columns:1fr;max-width:1120px}.card-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}.card{background-color:var(--color-surface);border-radius:0.9rem;overflow:hidden;padding:1.5rem;border:1px solid var(--color-border-subtle);box-shadow:0 6px 14px rgba(15,23,42,0.04)}.card h3{font-size:1.05rem}.project-card>picture{display:block;margin:-1.5rem -1.5rem 1rem -1.5rem;border-bottom:2px solid rgba(15,23,42,0.25)}.project-card-image{width:100%;aspect-ratio:4 / 3;object-fit:cover;object-position:center;border-radius:0.6rem 0.6rem 0 0;display:block}.service-overview-grid .card{display:flex;flex-direction:column;text-align:center;align-items:center}.service-card-link{display:inline-flex;align-items:center;margin-top:auto;padding:0.45rem 0.85rem;border:1px solid var(--color-border-input);border-radius:999px;font-size:0.9rem;font-weight:500;color:var(--color-text-main);text-decoration:none}.service-card-link:visited{color:var(--color-text-main)}.service-card-link:hover,.service-card-link:focus-visible{border-color:var(--brand-green-dark);color:var(--brand-green-dark)}@media (max-width:767px){.values-grid,.delivers-grid,.strengths-grid,.service-overview-grid{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;padding-bottom:0.5rem;scrollbar-width:thin;scrollbar-color:var(--color-border-subtle) transparent}.values-grid>.card,.delivers-grid>.card,.strengths-grid>.card,.service-overview-grid>.card{flex:0 0 78vw;max-width:300px;scroll-snap-align:start}}.project-meta{font-size:0.85rem;color:var(--color-text-muted)}.project-card-toggle{margin-top:0.75rem;transition:opacity 0.15s ease}.project-card-toggle[aria-expanded="true"]{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--text-on-dark)}.project-card-details{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-surface-hover)}.project-card-details[hidden]{display:block !important;height:0;overflow:hidden;padding:0;margin:0;border:0;opacity:0;visibility:hidden}.project-card-details:not([hidden]){animation:card-expand 0.25s ease forwards}@keyframes card-expand{from{opacity:0;transform:translateY(-0.5rem)}to{opacity:1;transform:translateY(0)}}@media (min-width:640px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:960px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:767px){.project-grid{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;padding-bottom:0.5rem;scrollbar-width:thin;scrollbar-color:var(--color-border-subtle) transparent}.project-grid>.project-card{flex:0 0 82vw;max-width:320px;scroll-snap-align:start}}.pill-row{display:flex;flex-wrap:wrap;gap:0.5rem}.pill{padding:0.35rem 0.8rem;border-radius:999px;background-color:var(--color-surface-hover);font-size:0.85rem;color:var(--color-text-dark)}.customer-logo-band{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2rem;padding:2rem 0}.customer-logo{height:3rem;width:auto;max-width:8rem;object-fit:contain;opacity:1}@media (hover:hover){.customer-logo{opacity:0.7;transition:opacity 0.2s ease}.customer-logo:hover{opacity:1}}@media (max-width:767px){.customer-logo-band{gap:1.5rem;padding:1.5rem 0}.customer-logo{height:2.5rem;max-width:6rem}}.trademark-notice{text-align:center;font-size:0.75rem;color:var(--color-text-muted);margin:0.25rem 0 0}.project-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin-top:2rem;margin-bottom:2rem}.project-gallery picture{display:block;position:relative;overflow:hidden;border-radius:0.5rem;border:1px solid rgba(0,80,0,0.88)}.project-gallery picture::after{content:attr(data-title);position:absolute;bottom:0;left:0;right:0;padding:0.5rem 0.75rem;background:rgba(0,80,0,0.88);color:var(--text-on-dark);font-size:0.85rem;font-weight:500;line-height:1.3;transform:translateY(100%);transition:transform 0.22s ease;pointer-events:none}@media (hover:hover){.project-gallery picture:hover::after{transform:translateY(0)}}.project-gallery img{display:block;width:100%;height:200px;object-fit:cover;border-radius:0;border:none;cursor:pointer;transition:transform 0.2s ease,opacity 0.2s ease;will-change:transform}@media (hover:hover){.project-gallery img:hover{transform:scale(1.05)}}.project-gallery img:focus{transform:none}.project-gallery img:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.lightbox{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:1000;cursor:pointer}.lightbox-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:800px;max-height:90vh;overflow-y:auto;cursor:default}.lightbox-close{position:absolute;top:1rem;right:1rem;background:white;border:none;border-radius:50%;width:2.75rem;height:2.75rem;cursor:pointer;font-size:1.5rem;display:flex;align-items:center;justify-content:center}.lightbox-close:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.9);border:none;border-radius:50%;width:2.75rem;height:2.75rem;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;z-index:1001}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-prev:focus-visible,.lightbox-next:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.lightbox-prev:hover,.lightbox-next:hover{background:var(--color-surface)}.lightbox img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:0.25rem}.lightbox-caption{margin-top:0.75rem;color:var(--text-on-dark);text-align:left;cursor:default}.lightbox-title{margin:0;font-size:1.25rem;line-height:1.3;color:var(--text-on-dark)}.lightbox-description{margin:0.35rem 0 0;line-height:1.55;color:rgba(255,255,255,0.85)}@media (max-width:767px){.project-gallery{display:flex;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;gap:0.75rem;padding-bottom:0.5rem;scrollbar-width:thin;scrollbar-color:var(--color-border-subtle) transparent}.project-gallery picture{flex:0 0 72vw;max-width:260px;scroll-snap-align:start}.project-gallery img{height:180px}}@media (max-width:767px){.lightbox-content{width:95%;max-height:85vh}}.tool-logos{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:1rem;margin-bottom:1.5rem}.tool-logo{height:2rem;width:auto;object-fit:contain}.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:1.25rem}.tool-tile{display:grid;gap:0.75rem;align-items:center;justify-items:center;padding:1rem;border-radius:1rem;background:var(--color-surface-soft);border:1px solid var(--color-border-subtle);text-align:center}.tool-tile span{font-size:0.95rem;font-weight:600;color:var(--color-text-main)}@media (max-width:767px){.tool-logos{gap:0.75rem;margin-top:0.75rem;margin-bottom:1rem}.tool-logo{height:1.5rem}}.cta-band{background:linear-gradient(135deg,var(--brand-charcoal),var(--color-accent));color:var(--text-on-dark)}.cta-band-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2rem}.cta-band-actions{display:flex;flex-direction:column;align-items:center;gap:0.75rem;width:100%}.contact-list{margin:0 0 1.5rem}.contact-list dt{font-weight:600;margin-top:0.75rem}.contact-list dd{margin:0.1rem 0 0.25rem}.opening-hours{margin-bottom:1rem}.opening-hours h3{font-size:0.875rem;font-weight:600;margin-bottom:0.35rem}.hours-table{border-collapse:collapse;width:100%;font-size:0.875rem}.hours-table th,.hours-table td{text-align:left;padding:0.2rem 0;border-bottom:1px solid var(--color-border-subtle)}.hours-table tr:last-child th,.hours-table tr:last-child td{border-bottom:none}.hours-table th{font-weight:500;width:10rem}.hours-table td.closed{color:var(--color-text-muted)}.contact-widgets-section{padding-bottom:0}.contact-widgets{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.contact-widget{display:flex;flex-direction:row;align-items:center;text-align:left;gap:0.75rem;padding:1rem 1.25rem;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:0.75rem;box-shadow:0 2px 8px rgba(15,23,42,0.04);text-decoration:none;color:var(--color-text-main);transition:border-color 0.2s ease,box-shadow 0.2s ease;min-width:0}a.contact-widget:visited{color:var(--color-text-main)}a.contact-widget:hover,a.contact-widget:focus-visible{border-color:var(--brand-green);box-shadow:0 4px 14px rgba(0,122,0,0.1);color:var(--brand-green-dark)}.contact-widget-icon{width:1.75rem;height:1.75rem;flex-shrink:0;color:var(--color-text-main)}.contact-widget-copy{display:flex;flex-direction:column}.contact-widget-label{font-weight:600;font-size:0.95rem;line-height:1.3}.contact-widget-detail{font-size:0.8rem;color:var(--color-text-muted);margin-top:0.15rem;line-height:1.3;overflow-wrap:anywhere;word-break:break-word}@media (min-width:640px){.contact-widgets{grid-template-columns:repeat(4,1fr)}.contact-widget{flex-direction:column;text-align:center;padding:1.75rem 1rem 1.5rem;gap:0}.contact-widget-icon{width:2rem;height:2rem;margin-bottom:0.75rem}}.contact-form{flex:1;display:flex;flex-direction:column;background-color:var(--color-surface);border-radius:0.9rem;padding:1.5rem;border:1px solid var(--color-border-subtle);box-shadow:0 6px 14px rgba(15,23,42,0.04)}.form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:0.25rem;font-weight:500}.form-field input,.form-field textarea{width:100%;padding:0.55rem 0.75rem;border-radius:0.5rem;border:1px solid var(--color-border-input);font:inherit}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--color-text-placeholder);opacity:1}.form-field:has([id="contact-message"]){display:flex;flex-direction:column;flex:1}[id="contact-message"]{flex:1;min-height:8rem;resize:vertical}.form-field input:focus-visible,.form-field textarea:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-color:var(--color-accent)}.form-note{font-size:0.85rem;color:var(--color-text-muted);margin-bottom:0.75rem}.contact-status{margin-top:0.75rem;font-size:0.95rem}.contact-status.is-success{color:var(--color-accent)}.contact-status.is-error{color:var(--color-error)}.field-error{margin:0.25rem 0 0;font-size:0.85rem;color:var(--color-error)}.field-error[hidden]{display:none}.field-hint{font-size:0.8rem;color:var(--color-text-muted);margin:0.15rem 0 0}.count-warning{color:var(--color-error);font-weight:500}.required-marker{color:var(--color-error);font-weight:700;margin-left:0.15em}.noscript-form-fallback{margin-top:1rem;padding:1rem 1.25rem;background:var(--color-surface-soft);border:1px solid var(--color-border-subtle);border-radius:0.5rem}.noscript-form-fallback p{margin-bottom:0.5rem}code{font-family:ui-monospace,'Cascadia Code',Consolas,monospace;font-size:0.9em;background:var(--color-surface-soft);padding:0.1em 0.35em;border-radius:0.25rem}.two-column-list{columns:2;column-gap:2rem}.form-hp{position:absolute !important;left:-10000px !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important}.small-text{font-size:0.85rem;color:var(--color-text-muted)}.linkedin-layout{display:flex;justify-content:center;align-items:flex-start}@media (min-width:768px){.linkedin-layout{max-width:40rem;margin:0 auto}}.section-linkedin .section-header{text-align:center}.linkedin-panel{padding:0;text-align:center;width:100%}.linkedin-links{text-align:center}.filter-controls{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:1.5rem}.filter-btn{border-radius:999px;border:1px solid var(--color-border-input);background-color:var(--color-surface);color:var(--color-text-main);padding:0.5rem 1rem;min-height:44px;font-family:inherit;font-size:0.9rem;cursor:pointer}.filter-btn:hover{border-color:var(--brand-green-dark);color:var(--brand-green-dark)}.filter-btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.filter-btn.is-active{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--text-on-dark)}.filter-btn.is-active:focus-visible{outline-color:var(--brand-charcoal)}.site-footer{background-color:var(--brand-charcoal);color:var(--text-on-dark-muted);padding-top:2.5rem}.site-footer a{color:var(--text-on-dark);text-decoration:underline;text-decoration-color:rgba(255,255,255,0.65);text-underline-offset:2px}.site-footer a:hover{color:var(--brand-logo-green);text-decoration-color:var(--brand-logo-green)}.site-footer a:visited{color:var(--text-on-dark)}.footer-inner{max-width:1120px;margin:0 auto;padding:0 1.25rem 1.75rem;display:grid;gap:2rem}.footer-heading{color:var(--text-on-dark);font-size:1.1rem}.footer-subheading{color:var(--text-on-dark);font-size:0.95rem}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{margin-bottom:0.2rem}.footer-links a{color:var(--text-on-dark);text-decoration:none;font-size:0.9rem;display:inline-block;padding:0.35rem 0}.footer-links a:hover{color:var(--brand-logo-green)}.cookie-settings-wrap{margin-top:1rem;display:flex;justify-content:center}.cookie-settings-btn{background:none;border:none;cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;gap:0.2rem;color:var(--text-on-dark);font-size:0.85rem;font-family:inherit;padding:0.35rem 0.75rem;min-height:44px;opacity:0.7;transition:opacity 0.15s ease,color 0.15s ease}.cookie-settings-btn:hover{opacity:1;color:var(--brand-logo-green)}.cookie-settings-icon{font-size:1.4rem;line-height:1}.footer-links a[aria-current="page"]{color:var(--brand-logo-green);font-weight:600;text-decoration:underline;text-decoration-color:var(--brand-logo-green);text-underline-offset:2px}.footer-links a.nav-link-active::after{display:none}.social-links{margin-top:0.75rem}.social-link{display:inline-flex;align-items:center;gap:0.4rem;min-height:44px;padding:0.35rem 0;color:var(--text-on-dark);text-decoration:none;font-size:0.9rem}.social-link:hover{color:var(--brand-logo-green);text-decoration:underline;text-decoration-color:var(--brand-logo-green);text-underline-offset:2px}.social-icon{width:26px;height:26px;border-radius:0.4rem;background-color:var(--color-accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:0.9rem;color:var(--text-on-dark)}.footer-bottom{border-top:1px solid var(--color-border-dark);padding:0.9rem 1.25rem 1.4rem;text-align:center;font-size:0.82rem;color:var(--text-on-dark)}@media (min-width:768px){.footer-inner{padding:0 1.5rem 2rem;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}.footer-bottom{padding:0.9rem 1.5rem 1.6rem}}a:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.banner-dark a:focus-visible,.banner-dark .btn:focus-visible,.site-header a:focus-visible,.site-footer a:focus-visible{outline-color:var(--text-on-dark)}.anchor-section{scroll-margin-top:var(--scroll-offset)}img{max-width:100%;height:auto}.cookie-banner{position:fixed;left:0;right:0;inset-inline:0;bottom:0;z-index:60;background-color:var(--brand-charcoal);color:var(--text-on-dark);box-shadow:0 -6px 16px rgba(15,23,42,0.45);animation:banner-slide-up 0.3s ease;will-change:transform,opacity}@keyframes banner-slide-up{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}body:has(.cookie-banner:not([hidden])){padding-bottom:max(5rem,20vh)}body.has-cookie-banner{padding-bottom:max(5rem,20vh)}.cookie-banner-inner{max-width:1120px;margin:0 auto;padding:0.9rem 1.25rem;display:flex;flex-direction:column;gap:0.75rem}.cookie-banner-text{margin:0;font-size:0.85rem}.cookie-banner-text a{color:var(--text-on-dark);text-decoration:underline;text-underline-offset:2px}.cookie-banner-text a:focus-visible{outline:2px solid var(--text-on-dark);outline-offset:2px;border-radius:2px}.cookie-banner-actions{display:flex;flex-wrap:wrap;gap:0.5rem}.cookie-btn-accept{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--text-on-dark)}.cookie-btn-accept:hover,.cookie-btn-accept:focus-visible{background-color:var(--brand-green-dark);border-color:var(--brand-green-dark);box-shadow:0 0 0 3px var(--color-accent-soft)}.cookie-btn-reject{background-color:var(--color-surface);border-color:var(--color-surface);color:var(--brand-charcoal)}.cookie-btn-reject:hover,.cookie-btn-reject:focus-visible{background-color:var(--color-surface-hover);border-color:var(--color-surface-hover);box-shadow:0 0 0 3px rgba(255,255,255,0.25)}@media (min-width:768px){.cookie-banner-inner{padding:0.9rem 1.5rem;flex-direction:row;align-items:center;justify-content:space-between}}.nav-mega ul{list-style:none;margin:0;padding:0}.nav-mega li{margin:0}.subnav-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0.65rem}.subnav-links a{display:inline-flex;padding:0.45rem 0.75rem;border:1px solid var(--color-border-input);border-radius:999px;text-decoration:none;color:var(--color-text-main);font-size:0.95rem}.subnav-links a:hover{border-color:var(--brand-green-dark);color:var(--brand-green-dark)}.section:has(.subnav){padding-top:1.25rem;padding-bottom:1.25rem}.anchor-section{padding-top:1.5rem}.link-list{list-style:none;margin:0.5rem 0 0;padding:0;display:grid;gap:0.35rem}.link-list a{color:var(--brand-green-dark);text-decoration:none}.link-list a:hover{text-decoration:underline}.map-card{flex:1;display:flex;flex-direction:column;margin-top:1.25rem;padding:1rem;border-radius:0.9rem;background:var(--color-surface);border:1px solid var(--color-border-subtle);box-shadow:0 6px 14px rgba(15,23,42,0.04)}.map-heading{margin:0 0 0.5rem}.map-embed{width:100%;aspect-ratio:16 / 9;border-radius:0.9rem;overflow:hidden;border:1px solid var(--color-border-subtle);background:var(--color-surface);display:grid;place-items:center}.map-embed::before{content:"";display:block;padding-top:56.25%;grid-area:1 / 1}@supports (aspect-ratio:16 / 9){.map-embed::before{display:none}}.map-embed>*{grid-area:1 / 1}.map-frame{width:100%;height:100%;border:0}.map-placeholder{padding:1rem;text-align:center}.map-actions{display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:center;margin-top:auto;padding-top:0.75rem}.form-footer{padding-top:0.75rem}.contact-form [type="submit"]{width:100%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1;-webkit-appearance:none;appearance:none}.map-actions .btn,.linkedin-panel .btn{display:flex;width:100%;justify-content:center}abbr[title]{text-decoration:underline dotted currentColor;text-underline-offset:3px;cursor:help}.skip-link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:0.75rem;left:0.75rem;width:auto;height:auto;padding:0.65rem 1.25rem;margin:0;overflow:visible;clip:auto;clip-path:none;white-space:normal;z-index:10000;background:var(--brand-green);color:var(--text-on-dark);font-weight:600;font-size:0.9rem;text-decoration:none;border-radius:0.5rem;box-shadow:0 4px 14px rgba(0,0,0,0.35)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}@media (forced-colors:active){.btn{border:1px solid ButtonText}.nav-toggle-bar{background-color:ButtonText}.social-icon{forced-color-adjust:none}.skip-link:focus{background:Highlight;color:HighlightText}.filter-btn.is-active{border:2px solid Highlight}.field-error{color:LinkText}}@media print{.site-header,.site-nav,.cookie-banner,.cta-band,.skip-link,.nav-toggle,.filter-controls,.project-card-toggle,.social-links,.cookie-settings-wrap,.map-card,.lightbox,.btn,.linkedin-layout,.subnav{display:none !important}.banner-dark,.hero{background:none !important;color:#000 !important}.banner-dark h1,.banner-dark h2,.banner-dark h3,.banner-dark p,.banner-dark ul,.banner-dark li,.banner-dark .eyebrow{color:#000 !important}body{font-size:11pt;color:#000;background:#fff;padding-bottom:0 !important}a{text-decoration:underline;color:#000}a[href^="http"]::after{content:" (" attr(href) ")";font-size:0.75em;color:#555;word-break:break-all}.nav-link::after,.btn::after,.social-link::after{content:none !important}h2,h3{page-break-after:avoid;break-after:avoid}.card,.service-card-link,article{page-break-inside:avoid;break-inside:avoid}.section-inner{max-width:100% !important}.site-footer{background:none !important;color:#000 !important;border-top:2px solid #000}.site-footer a{color:#000 !important}.footer-bottom{border-top-color:#ccc}}