/* sfs-foundation */
*, *::before, *::after{margin: 0;padding: 0;box-sizing: border-box}:where( main ) :where( ul, ol ):not( [class] ){padding-left: 1.5rem;margin-bottom: 1rem}:where( main ) :where( ul, ol ):not( [class] ) li{margin-bottom: 0.35rem}:root{--heritage-green: #0a4b2c;--heritage-green-deep: #083d24;--urban-grey: #6f6e63;--cleaning: #5eb130;--survey: #e97b32;--restoration: #584998;--decorating: #50b3d8;--additional: #ba2574;--chartreuse: #dec829;--colour-cream: #faf8f5;--colour-white: #ffffff;--colour-border: #e5e0d8;--colour-text: #444444;--colour-text-light: #999999;--font-body: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;--font-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;--font-quote: 'Source Sans 3', sans-serif;--container: 1100px;--container-padding: 2rem;--font-size-large: 1.35rem;--line-height-large: 1.65}html{font-size: 16px;scroll-behavior: smooth}body{font-family: var(--font-body);color: var(--colour-text);background: var(--colour-cream);line-height: 1.7;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale}h1, h2, h3, h4, h5, h6{font-family: var(--font-heading);color: var(--heritage-green);letter-spacing: -0.025em;text-transform: uppercase;line-height: 1.3;font-weight: 600}h1{font-size: clamp(1.85rem, 3.6vw, 2.85rem);line-height: 1.12}h2{font-size: 2rem}h3{font-size: 1.5rem}h4{font-size: 1.2rem}h5{font-size: 1rem}h6{font-size: 0.9rem}p{margin: 0 0 1rem}p:last-child{margin-bottom: 0}.p-large{font-size: var(--font-size-large);line-height: var(--line-height-large)}a{color: inherit;text-decoration: none;transition: color 0.3s ease}img{max-width: 100%;height: auto;display: block}.container{width: 100%;max-width: var(--container);margin-left: auto;margin-right: auto;padding-left: var(--container-padding);padding-right: var(--container-padding)}.btn{display: inline-block;padding: 0.9rem 2.2rem;font-family: var(--font-body);font-size: 0.8rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.12em;border: none;cursor: pointer;border-radius: 4px;text-align: center;transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease}.btn:hover{transform: translateY(-1px);box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12)}.btn-primary{background: var(--heritage-green);color: var(--colour-white)}.btn-primary:hover{background: var(--heritage-green-deep);color: var(--colour-white)}.btn-secondary{background: transparent;color: var(--heritage-green);border: 2px solid var(--heritage-green)}.btn-secondary + .btn, .btn + .btn-secondary{margin-left: 1rem}.btn-secondary:hover{background: var(--heritage-green);color: var(--colour-white)}.section-heading{text-align: center;margin-bottom: 3rem}.section-heading h2{font-size: 2rem;color: var(--heritage-green);margin-bottom: 0.5rem}.section-heading p{color: var(--colour-text-light);max-width: 500px;margin: 0 auto}.fade-in{opacity: 0;transform: translateY(30px);transition: opacity 0.7s ease-out, transform 0.7s ease-out}.fade-in.is-visible{opacity: 1;transform: translateY(0)}.fade-in-child{opacity: 0;transform: translateY(20px);transition: opacity 0.5s ease-out, transform 0.5s ease-out}.fade-in-child.is-visible{opacity: 1;transform: translateY(0)}.service-tag{display: inline-block;padding: 0.35rem 0.75rem;font-family: var(--font-heading);font-size: 0.7rem;font-weight: 600;letter-spacing: 0.12em;text-transform: uppercase;color: var(--colour-white);background: var(--urban-grey);border-radius: 999px;margin-right: 0.4rem;margin-bottom: 0.4rem}.service-tag--cleaning{background: var(--cleaning)}.service-tag--survey{background: var(--survey)}.service-tag--restoration{background: var(--restoration)}.service-tag--decorating{background: var(--decorating)}.service-tag--additional{background: var(--additional)}.breadcrumb{font-family: var(--font-heading);font-size: 0.75rem;font-weight: 500;letter-spacing: 0.1em;text-transform: uppercase;color: var(--urban-grey);margin-bottom: 1.5rem}.breadcrumb a{color: var(--urban-grey)}.breadcrumb a:hover{color: var(--heritage-green)}.breadcrumb > span[aria-hidden]{margin: 0 0.5rem;opacity: 0.5}.breadcrumb [aria-current="page"]{color: var(--heritage-green)}.screen-reader-text{border: 0;clip: rect(1px, 1px, 1px, 1px);clip-path: inset(50%);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;word-wrap: normal !important}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto}.fade-in, .fade-in-child{opacity: 1 !important;transform: none !important;transition: none !important}}
/* sfs-layout */
.site-header{background: var(--colour-white);border-bottom: 1px solid var(--colour-border);padding: 0.875rem 0}.site-header .container{display: flex;justify-content: space-between;align-items: center;max-width: none;padding-left: clamp(1.5rem, 4vw, 3.5rem);padding-right: clamp(1.5rem, 4vw, 3.5rem)}.custom-logo-link{display: inline-flex;align-items: center;line-height: 0;text-decoration: none}.custom-logo{width: 350px;height: auto;transition: opacity 0.3s}.logo--header img{width: 350px;height: auto;transition: opacity 0.3s}.custom-logo-link:hover .custom-logo, .logo--header:hover img{opacity: 0.8}.site-header nav ul{list-style: none;display: flex;gap: 2.5rem}.site-header nav a{font-size: 0.85rem;font-weight: 500;color: var(--urban-grey);text-transform: uppercase;letter-spacing: 0.12em;transition: color 0.3s ease, opacity 0.3s ease}.site-header nav a:hover{color: var(--heritage-green)}.site-footer{padding: 3.5rem 0 0;background: #061f14;border-top: none}.footer-row-1{display: flex;justify-content: space-between;align-items: flex-start;gap: 3rem;padding-bottom: 2.25rem;border-bottom: 1px solid rgba(255, 255, 255, 0.08);margin-bottom: 2.25rem}.footer-brand-block{max-width: 340px;min-width: 0;flex-shrink: 0}.footer-logo{display: inline-block;line-height: 0}.footer-logo img{display: block;margin-bottom: 0.85rem}.footer-logo__img{height: auto;max-height: 56px;width: auto;max-width: min(300px, 70vw);margin-bottom: 0.85rem;opacity: 0.98;display: block}.footer-tagline{font-size: 0.8rem;color: rgba(255, 255, 255, 0.38);line-height: 1.65}.footer-contact-block{text-align: left;display: flex;flex-direction: column;gap: 0.3rem}.footer-contact-block address{font-style: normal;font-size: 0.78rem;color: rgba(255, 255, 255, 0.38);line-height: 1.55}.footer-contact-block a{font-size: 0.78rem;color: rgba(255, 255, 255, 0.52);transition: color 0.25s}.footer-contact-block a:hover{color: var(--colour-white)}.footer-row-2{display: grid;grid-template-columns: repeat(4, 1fr);gap: 2.25rem;padding-bottom: 2.25rem;border-bottom: 1px solid rgba(255, 255, 255, 0.08)}.footer-col h4{font-size: 0.62rem;font-weight: 600;color: rgba(255, 255, 255, 0.32);margin-bottom: 0.9rem}.footer-col--wide{grid-column: span 2}.footer-col--wide ul{column-count: 2;column-gap: 2.25rem}.footer-col--wide li{break-inside: avoid}.footer-col ul{list-style: none;padding: 0;margin: 0}.footer-col li{margin-bottom: 0.28rem}.footer-col li a{font-size: 0.78rem;color: rgba(255, 255, 255, 0.48);transition: color 0.25s;line-height: 1.35}.footer-col li a:hover{color: var(--colour-white)}.footer-social{display: flex;flex-wrap: wrap;gap: 0.75rem 1.25rem;margin-top: 1.15rem}.footer-social__link{font-family: var(--font-heading);font-size: 0.65rem;font-weight: 600;letter-spacing: 0.14em;text-transform: uppercase;color: rgba(255, 255, 255, 0.48);transition: color 0.25s}.footer-social__link:hover{color: var(--colour-white)}.footer-policies{padding: 1.75rem 0 2rem;border-top: 1px solid rgba(255, 255, 255, 0.08);border-bottom: 1px solid rgba(255, 255, 255, 0.08);margin-bottom: 0.5rem}.footer-policies__title{font-size: 0.62rem;font-weight: 600;color: rgba(255, 255, 255, 0.32);margin-bottom: 0.75rem;letter-spacing: 0.12em}.footer-policies__nav{display: flex;flex-wrap: wrap;gap: 0.5rem 1.25rem}.footer-policies__nav a{font-size: 0.72rem;color: rgba(255, 255, 255, 0.42);transition: color 0.25s}.footer-policies__nav a:hover{color: rgba(255, 255, 255, 0.75)}.footer-bottom{display: flex;justify-content: space-between;align-items: flex-start;gap: 2rem;flex-wrap: wrap;padding: 1.35rem 0 1.75rem}.footer-bottom p{font-size: 0.7rem;color: rgba(255, 255, 255, 0.24);line-height: 1.55;max-width: 520px;text-align: left}.footer-legal-nav{display: flex;gap: 1.25rem;flex-wrap: wrap;justify-content: flex-end;flex: 1}.footer-legal-nav a{font-size: 0.7rem;color: rgba(255, 255, 255, 0.24);transition: color 0.25s;white-space: nowrap}.footer-legal-nav a:hover{color: rgba(255, 255, 255, 0.55)}.footer-legal-nav__btn{font: inherit;font-size: 0.7rem;color: rgba(255, 255, 255, 0.24);background: none;border: 0;padding: 0;cursor: pointer;white-space: nowrap;transition: color 0.25s}.footer-legal-nav__btn:hover, .footer-legal-nav__btn:focus-visible{color: rgba(255, 255, 255, 0.55)}.cookie-banner{position: fixed;bottom: 0;left: 0;right: 0;z-index: 2000;background: var(--colour-white);border-top: 1px solid var(--colour-border);padding: 1rem 0;box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.06);transform: translateY(100%);visibility: hidden;transition: transform 0.45s ease, visibility 0s linear 0.45s}.cookie-banner.is-visible{transform: translateY(0);visibility: visible;transition: transform 0.45s ease, visibility 0s}.cookie-banner .container{display: flex;align-items: center;justify-content: space-between;gap: 1rem 1.5rem;flex-wrap: wrap}.cookie-banner p{font-size: 0.82rem;color: var(--colour-text);max-width: 560px;line-height: 1.55;margin: 0}.cookie-banner a, .cookie-modal a{color: var(--heritage-green);text-decoration: underline;text-underline-offset: 2px}.cookie-banner__actions, .cookie-modal__actions{display: flex;gap: 0.75rem;flex-wrap: wrap}.btn-cookie{font-family: var(--font-heading);font-size: 0.72rem;font-weight: 600;text-transform: uppercase;letter-spacing: 0.1em;padding: 0.65rem 1.25rem;border-radius: 4px;cursor: pointer;border: 1px solid transparent;transition: background 0.25s, color 0.25s, border-color 0.25s}.btn-cookie--accept{background: var(--heritage-green);color: var(--colour-white)}.btn-cookie--accept:hover{background: var(--heritage-green-deep)}.btn-cookie--prefs{background: transparent;color: var(--heritage-green);border-color: var(--heritage-green)}.btn-cookie--prefs:hover{background: var(--colour-cream)}.btn-cookie:focus-visible{outline: 2px solid var(--heritage-green);outline-offset: 2px}.cookie-modal{position: fixed;inset: 0;z-index: 2100;display: flex;align-items: center;justify-content: center;padding: 1rem}.cookie-modal[hidden]{display: none}.cookie-modal__backdrop{position: absolute;inset: 0;background: rgba(8, 61, 36, 0.55)}.cookie-modal__panel{position: relative;width: 100%;max-width: 560px;max-height: calc(100vh - 2rem);overflow-y: auto;background: var(--colour-white);border-radius: 10px;padding: 1.75rem;box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);outline: none}.cookie-modal__title{font-family: var(--font-heading);font-size: 1.15rem;font-weight: 700;color: var(--heritage-green);margin: 0 0 0.5rem}.cookie-modal__intro{font-size: 0.88rem;line-height: 1.55;color: var(--colour-text);margin: 0 0 1.25rem}.cookie-modal__row{display: flex;align-items: flex-start;justify-content: space-between;gap: 1.25rem;padding: 1rem 0;border-top: 1px solid var(--colour-border)}.cookie-modal__text h3{font-family: var(--font-heading);font-size: 0.9rem;font-weight: 600;color: #1d1d1d;margin: 0 0 0.25rem}.cookie-modal__text p{font-size: 0.82rem;line-height: 1.5;color: var(--colour-text);margin: 0}.cookie-modal__always{flex-shrink: 0;font-family: var(--font-heading);font-size: 0.7rem;font-weight: 600;text-transform: uppercase;letter-spacing: 0.08em;color: var(--colour-text-light);padding-top: 0.15rem}.cookie-modal__actions{justify-content: flex-end;padding-top: 1.25rem;border-top: 1px solid var(--colour-border)}.cookie-switch{position: relative;flex-shrink: 0;width: 44px;height: 24px;cursor: pointer}.cookie-switch input{position: absolute;inset: 0;opacity: 0;margin: 0;cursor: pointer}.cookie-switch__track{position: absolute;inset: 0;border-radius: 999px;background: #c9c4bb;transition: background 0.2s}.cookie-switch__track::after{content: '';position: absolute;top: 3px;left: 3px;width: 18px;height: 18px;border-radius: 50%;background: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);transition: transform 0.2s}.cookie-switch input:checked + .cookie-switch__track{background: var(--heritage-green)}.cookie-switch input:checked + .cookie-switch__track::after{transform: translateX(20px)}.cookie-switch input:focus-visible + .cookie-switch__track{outline: 2px solid var(--heritage-green);outline-offset: 2px}body.cookie-modal-open{overflow: hidden}@media (max-width: 600px){.cookie-banner__actions, .cookie-modal__actions{width: 100%}.cookie-banner__actions .btn-cookie, .cookie-modal__actions .btn-cookie{flex: 1 1 auto}.cookie-modal__panel{padding: 1.25rem}}@media (max-width: 768px){.footer-row-1{flex-direction: column;gap: 1.5rem}.footer-row-2{grid-template-columns: 1fr 1fr;gap: 1.75rem}.footer-bottom{flex-direction: column;align-items: flex-start}.footer-legal-nav{justify-content: flex-start}}.child-portals{padding: 2.5rem 0 4.5rem;background: var(--colour-cream)}.child-portals__grid{display: flex;flex-wrap: wrap;justify-content: center;gap: 1.75rem}.child-portal-card{flex: 0 1 calc(33.333% - 1.17rem);max-width: calc(33.333% - 1.17rem);display: block;background: var(--colour-white);border: 1px solid var(--colour-border);border-top: 10px solid var(--heritage-green);border-radius: 8px;overflow: hidden;text-decoration: none;color: inherit;transition: box-shadow 0.3s ease, transform 0.3s ease}.child-portal-card:hover{box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);transform: translateY(-2px)}.child-portal-card__media{aspect-ratio: 16 / 10;overflow: hidden;background: var(--colour-cream)}.child-portal-card__img{width: 100%;height: 100%;object-fit: cover;display: block;transition: transform 0.4s ease}.child-portal-card:hover .child-portal-card__img{transform: scale(1.04)}.child-portal-card__body{padding: 1.75rem 2rem 2rem}.child-portal-card h3{font-family: var(--font-heading);font-size: 1.15rem;font-weight: 600;color: var(--heritage-green);margin-bottom: 0.5rem;line-height: 1.3}.child-portal-card p{font-size: 0.9rem;color: var(--colour-text-light);line-height: 1.7}.child-portal-card__cta{display: inline-block;margin-top: 0.85rem;font-family: var(--font-heading);font-size: 0.68rem;letter-spacing: 0.1em;text-transform: uppercase;font-weight: 600;color: var(--heritage-green)}.child-portal-card__cta span{display: inline-block;transition: transform 0.3s ease}.child-portal-card:hover .child-portal-card__cta span{transform: translateX(4px)}@media (max-width: 900px){.child-portal-card{flex-basis: calc(50% - 0.875rem);max-width: calc(50% - 0.875rem)}}@media (max-width: 560px){.child-portal-card{flex-basis: 100%;max-width: 100%}}.nav-toggle{display: none;align-items: center;justify-content: center;width: 44px;height: 44px;margin: -8px -8px -8px 0;padding: 0;background: none;border: 0;cursor: pointer;color: var(--heritage-green)}.nav-toggle__bars{position: relative;display: block;width: 26px;height: 18px}.nav-toggle__bars span{position: absolute;left: 0;width: 100%;height: 2px;border-radius: 2px;background: currentColor;transition: transform 0.3s ease, opacity 0.2s ease}.nav-toggle__bars span:nth-child(1){top: 0}.nav-toggle__bars span:nth-child(2){top: 8px}.nav-toggle__bars span:nth-child(3){top: 16px}.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(1){transform: translateY(8px) rotate(45deg)}.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(2){opacity: 0}.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(3){transform: translateY(-8px) rotate(-45deg)}.mobile-menu-backdrop{display: none;position: fixed;inset: 0;z-index: 10000;background: rgba(8, 30, 20, 0.5);opacity: 0;pointer-events: none;transition: opacity 0.38s cubic-bezier(0.4, 0, 0.2, 1)}.mobile-menu-backdrop.is-open{opacity: 1;pointer-events: auto}.mobile-menu{display: none;position: fixed;top: 0;right: 0;z-index: 10001;flex-direction: column;width: min(86%, 360px);height: 100%;height: 100dvh;background: var(--colour-white);box-shadow: -12px 0 40px rgba(0, 0, 0, 0.16);transform: translateX(100%);visibility: hidden;transition: transform 0.38s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.38s;will-change: transform;overflow-y: auto;overscroll-behavior: contain}.mobile-menu.is-open{transform: translateX(0);visibility: visible}body.menu-open{overflow: hidden}.mobile-menu__head{display: flex;align-items: center;justify-content: flex-end;padding: 1rem 1.25rem 0.5rem}.mobile-menu__title{font-family: var(--font-heading);font-size: 0.72rem;font-weight: 700;letter-spacing: 0.16em;text-transform: uppercase;color: var(--colour-text-light)}.mobile-menu__close{display: flex;align-items: center;justify-content: center;width: 40px;height: 40px;margin: -8px -8px -8px 0;background: none;border: 0;cursor: pointer;font-size: 1.9rem;line-height: 1;color: var(--heritage-green)}.mobile-menu__nav{flex: 1;padding: 0.5rem 0}.mobile-menu__list, .mobile-menu__list .sub-menu{list-style: none;margin: 0;padding: 0}.mobile-menu__list li{position: relative}.mobile-menu__list a{display: block;padding: 0.95rem 1.5rem;font-family: var(--font-heading);font-size: 1.05rem;font-weight: 500;color: var(--heritage-green);text-decoration: none;border-bottom: 1px solid var(--colour-border)}.mobile-menu__list a:hover, .mobile-menu__list .current-menu-item > a{background: var(--colour-cream)}.mobile-menu__list .menu-item-has-children > a{padding-right: 3.5rem}.submenu-toggle{position: absolute;top: 0;right: 0;width: 3.25rem;height: 3.1rem;display: flex;align-items: center;justify-content: center;background: none;border: 0;border-bottom: 1px solid var(--colour-border);cursor: pointer;color: var(--heritage-green)}.submenu-toggle__icon{position: relative;width: 12px;height: 12px}.submenu-toggle__icon::before, .submenu-toggle__icon::after{content: '';position: absolute;top: 50%;left: 50%;background: currentColor;border-radius: 2px}.submenu-toggle__icon::before{width: 12px;height: 2px;transform: translate(-50%, -50%)}.submenu-toggle__icon::after{width: 2px;height: 12px;transform: translate(-50%, -50%);transition: transform 0.3s ease}.menu-item-has-children.is-open > .submenu-toggle .submenu-toggle__icon::after{transform: translate(-50%, -50%) rotate(90deg)}.mobile-menu__list .sub-menu{max-height: 0;overflow: hidden;background: var(--colour-cream);transition: max-height 0.3s ease}.menu-item-has-children.is-open > .sub-menu{max-height: 30rem}.mobile-menu__list .sub-menu a{padding-left: 2.5rem;font-size: 0.98rem;font-weight: 400}.mobile-menu__foot{padding: 1.5rem;border-top: 1px solid var(--colour-border);background: var(--colour-cream)}.mobile-menu__phone{display: flex;flex-direction: column;gap: 0.15rem;text-decoration: none;margin-bottom: 1.1rem}.mobile-menu__phone-label{font-family: var(--font-heading);font-size: 0.65rem;font-weight: 700;letter-spacing: 0.14em;text-transform: uppercase;color: var(--colour-text-light)}.mobile-menu__phone-number{font-family: var(--font-heading);font-size: 1.3rem;font-weight: 600;color: var(--heritage-green)}.mobile-menu__social{display: flex;flex-wrap: wrap;gap: 0.5rem 1.1rem}.mobile-menu__social-link{font-family: var(--font-heading);font-size: 0.72rem;font-weight: 600;letter-spacing: 0.08em;text-transform: uppercase;color: var(--urban-grey);text-decoration: none}.mobile-menu__social-link:hover{color: var(--heritage-green)}@media (prefers-reduced-motion: reduce){.mobile-menu, .mobile-menu-backdrop, .nav-toggle__bars span, .mobile-menu__list .sub-menu, .submenu-toggle__icon::after{transition: none}}.admin-bar .mobile-menu{top: 46px;height: calc(100dvh - 46px)}@media (max-width: 975px){.site-header .container > nav{display: none}.nav-toggle{display: inline-flex}.mobile-menu-backdrop{display: block}.mobile-menu{display: flex}}
/* sfs-theme */

/* sfs-components */
.visually-hidden{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border: 0}.contact-section--standalone{position: relative;overflow: hidden;background: var(--colour-white);padding: 6rem 0;border-top: 1px solid var(--colour-border)}.contact-section--standalone .contact-watermark{position: absolute;left: 0;top: 50%;width: min(72vw, 850px);margin-left: -23%;transform: translateY(-50%) rotate(11deg);transform-origin: center center;z-index: 0;pointer-events: none}.contact-section--standalone .contact-watermark__parallax{will-change: transform}.contact-section .container{position: relative;z-index: 1}.contact-watermark__img{width: 100%;height: auto;display: block;filter: brightness(0);opacity: 0.055}.contact-heading{text-align: center;margin-bottom: 3rem}.contact-heading h2{font-family: var(--font-heading);font-size: 2rem;color: var(--heritage-green);margin-bottom: 0.6rem}.contact-heading p{font-size: 0.95rem;color: var(--colour-text-light);max-width: 480px;margin: 0 auto}.contact-form{max-width: 680px;margin: 0 auto}.contact-form__notice{max-width: 680px;margin: 0 auto 1.75rem;padding: 1rem 1.25rem;border-radius: 8px;border: 1px solid transparent;font-size: 0.95rem;line-height: 1.6}.contact-form__notice--success{background: rgba(10, 75, 44, 0.06);border-color: rgba(10, 75, 44, 0.25);color: var(--heritage-green)}.contact-form__notice--error{background: rgba(179, 45, 46, 0.06);border-color: rgba(179, 45, 46, 0.3);color: #9c2427}.contact-section--split{background: var(--colour-white);padding: 5rem 0;border-top: 1px solid var(--colour-border)}.contact-layout{display: grid;grid-template-columns: 1fr 1fr;gap: 3.5rem;align-items: start}.contact-layout__text{margin-bottom: 0}.contact-layout__rule{border: 0;border-top: 1px solid var(--colour-border);margin: 2.25rem 0}.contact-layout__form .contact-heading{text-align: left;margin-bottom: 1.75rem}.contact-layout__form .contact-heading p{margin-left: 0}.contact-layout__form .contact-form, .contact-layout__form .contact-form__notice{max-width: none;margin-left: 0;margin-right: 0}.contact-map{border-radius: 10px;overflow: hidden;border: 1px solid var(--colour-border);box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06)}.contact-map__frame{display: block;width: 100%;height: 100%;min-height: 360px;border: 0}.contact-map__links{display: flex;flex-wrap: wrap;gap: 0.4rem 1.5rem;margin: 1rem 0 0;padding: 0;list-style: none;font-size: 0.95rem}.contact-map__links a{color: var(--heritage-green);text-decoration: underline;text-underline-offset: 3px}.contact-map__links a:hover{color: var(--heritage-green-deep)}@media (max-width: 900px){.contact-layout{grid-template-columns: 1fr;gap: 2.5rem}.contact-map__frame{min-height: 300px}}.contact-form .form-row{display: grid;grid-template-columns: 1fr 1fr;gap: 1.25rem}.contact-form .form-field{margin-bottom: 1.25rem;display: flex;flex-direction: column}.contact-form label{font-family: var(--font-heading);font-size: 0.7rem;font-weight: 600;text-transform: uppercase;letter-spacing: 0.14em;color: var(--urban-grey);margin-bottom: 0.5rem}.contact-form input[type="text"], .contact-form input[type="email"], .contact-form input[type="tel"], .contact-form select, .contact-form textarea{font-family: var(--font-body);font-size: 0.95rem;color: var(--colour-text);padding: 0.9rem 1.1rem;background: var(--colour-cream);border: 1px solid var(--colour-border);border-radius: 6px;transition: border-color 0.3s, background 0.3s, box-shadow 0.3s}.contact-form textarea{resize: vertical}.contact-form select{cursor: pointer;appearance: none;width: 100%}.contact-form input[type="tel"]{width: 100%}.contact-form input:focus, .contact-form textarea:focus{outline: none;border-color: var(--heritage-green);background: var(--colour-white);box-shadow: 0 0 0 3px rgba(10, 75, 44, 0.08)}.contact-form .form-footer{display: flex;justify-content: space-between;align-items: center;margin-top: 1.5rem;gap: 2rem;flex-wrap: wrap}.contact-form button[type="submit"]{margin-left: 0}.form-select-wrap{position: relative}.form-select-wrap::after{content: '';position: absolute;right: 1.1rem;top: 50%;margin-top: -3px;width: 0;height: 0;border-left: 5px solid transparent;border-right: 5px solid transparent;border-top: 6px solid var(--urban-grey);pointer-events: none}.field-required{color: var(--heritage-green);font-weight: 600}.contact-form__required-key{margin: 0 0 0.75rem;text-align: right;font-family: var(--font-heading);font-size: 0.7rem;font-weight: 600;text-transform: uppercase;letter-spacing: 0.14em;line-height: 1;color: var(--urban-grey)}.captcha{display: flex;align-items: center;gap: 0.75rem;cursor: pointer;padding: 0.65rem 1rem;border: 1px solid var(--colour-border);border-radius: 6px;background: var(--colour-cream);transition: border-color 0.3s, background 0.3s}.captcha:hover{border-color: var(--heritage-green)}.captcha input[type="checkbox"]{position: absolute;opacity: 0;pointer-events: none}.captcha-box{width: 20px;height: 20px;border: 1.5px solid var(--urban-grey);border-radius: 4px;background: var(--colour-white);position: relative;flex-shrink: 0;transition: background 0.25s, border-color 0.25s}.captcha-box::after{content: '';position: absolute;left: 6px;top: 2px;width: 5px;height: 10px;border: solid var(--colour-white);border-width: 0 2px 2px 0;transform: rotate(45deg) scale(0);transition: transform 0.25s ease}.captcha input:checked ~ .captcha-box{background: var(--cleaning);border-color: var(--cleaning)}.captcha input:checked ~ .captcha-box::after{transform: rotate(45deg) scale(1)}.captcha-label{font-size: 0.85rem;font-weight: 500;color: var(--colour-text)}.testimonials-section{position: relative;padding: 4.5rem 1.5rem 5rem;background: #e8e4dc;border-top: 1px solid var(--colour-border);border-bottom: 1px solid rgba(10, 75, 44, 0.08);overflow: hidden}.testimonials-section__inner{position: relative;z-index: 1;max-width: 920px;margin: 0 auto;text-align: center}.testimonials-carousel{position: relative;z-index: 1;min-height: min(14rem, 42vw);display: grid;align-items: center}.testimonial-slide{margin: 0;padding: 0 0.5rem;border: 0;grid-area: 1 / 1;opacity: 0;visibility: hidden;transition: opacity 0.85s ease, visibility 0.85s ease}.testimonial-slide.is-active{opacity: 1;visibility: visible;z-index: 1}.testimonial-slide:not(.is-active){pointer-events: none}.testimonial-slide .testimonial-slide__quote, .testimonial-slide .testimonial-slide__cite{opacity: 0;transform: translateY(1rem);transition: opacity 0.48s cubic-bezier(0.22, 1, 0.36, 1), transform 0.52s cubic-bezier(0.22, 1, 0.36, 1)}.testimonial-slide.is-active:not(.testimonial-slide--exiting) .testimonial-slide__quote{transition-delay: 0.08s}.testimonial-slide.is-active:not(.testimonial-slide--exiting) .testimonial-slide__cite{transition-delay: 0.18s}.testimonial-slide.is-active:not(.testimonial-slide--exiting) .testimonial-slide__quote, .testimonial-slide.is-active:not(.testimonial-slide--exiting) .testimonial-slide__cite{opacity: 1;transform: translateY(0)}.testimonial-slide.testimonial-slide--static-first.is-active:not(.testimonial-slide--exiting) .testimonial-slide__quote, .testimonial-slide.testimonial-slide--static-first.is-active:not(.testimonial-slide--exiting) .testimonial-slide__cite{opacity: 1;transform: none;transition: none}.testimonial-slide.is-active.testimonial-slide--exiting .testimonial-slide__quote, .testimonial-slide.is-active.testimonial-slide--exiting .testimonial-slide__cite{opacity: 0;transform: translateY(-0.75rem);transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)}.testimonial-slide.is-active.testimonial-slide--exiting .testimonial-slide__quote{transition-delay: 0.24s}.testimonial-slide.is-active.testimonial-slide--exiting .testimonial-slide__cite{transition-delay: 0.12s}.testimonial-slide__quote{font-family: var(--font-quote);font-size: clamp(1.2rem, 2.2vw, 1.75rem);font-style: italic;font-weight: 300;line-height: 1.32;color: var(--heritage-green);letter-spacing: 0.02em;text-transform: none;margin: 0 auto 1.25rem;max-width: 52rem}.testimonial-slide__cite{display: block;font-family: var(--font-body);font-size: 0.85rem;font-style: normal;color: var(--colour-text-light);letter-spacing: 0.06em;text-transform: uppercase}.testimonials-pagination{display: flex;justify-content: center;gap: 0.55rem;margin-top: 2.25rem;flex-wrap: wrap;align-items: center}.testimonials-pagination__dot{width: 24px;height: 24px;padding: 0;border: none;border-radius: 0;background: transparent;cursor: pointer;display: inline-flex;align-items: center;justify-content: center;line-height: 0;transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1)}.testimonials-pagination__dot-stack{position: relative;width: 24px;height: 24px;display: block}.testimonials-pagination__dot-img{position: absolute;left: 0;top: 0;width: 24px;height: 24px;object-fit: contain;display: block;pointer-events: none}.testimonials-pagination__dot-img--dark{filter: brightness(0);opacity: 0.4;transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1)}.testimonials-pagination__dot-img--light{opacity: 0;transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1)}.testimonials-pagination__dot:hover .testimonials-pagination__dot-img--dark, .testimonials-pagination__dot:focus-visible .testimonials-pagination__dot-img--dark, .testimonials-pagination__dot.is-active .testimonials-pagination__dot-img--dark{opacity: 0}.testimonials-pagination__dot:hover .testimonials-pagination__dot-img--light, .testimonials-pagination__dot:focus-visible .testimonials-pagination__dot-img--light, .testimonials-pagination__dot.is-active .testimonials-pagination__dot-img--light{opacity: 1}.testimonials-pagination__dot.is-active{transform: scale(1.1)}.testimonials-pagination__dot:focus-visible{outline: 2px solid rgba(10, 75, 44, 0.4);outline-offset: 4px}.project-block{padding: 3rem 0;border-top: 1px solid var(--colour-border)}.project-block__title{font-size: 1.3rem;color: var(--heritage-green);margin-top: 0;margin-bottom: 1rem}.project-block__inner{display: grid;grid-template-columns: 1fr 1fr;gap: 3rem;align-items: start}.project-block--reverse .project-block__image{order: 2}.project-block--reverse .project-block__text{order: 1}.project-block__image{margin: 0}.project-block__image img{width: 100%;height: auto;display: block;border-radius: 4px}.project-block__caption{margin-top: 0.5rem;font-size: 0.875rem;line-height: 1.5;color: var(--urban-grey, #6b6b6b);font-style: italic}.project-block__text{font-size: 1rem;color: var(--colour-text);line-height: 1.8}.project-block__text--full{max-width: 780px}.project-block__text h2, .project-block__text h3, .project-block__text h4{color: var(--heritage-green);margin-bottom: 0.75rem;margin-top: 1.5rem}.project-block__text h2:first-child, .project-block__text h3:first-child, .project-block__text h4:first-child{margin-top: 0}.project-block__text p{margin-bottom: 1rem}.project-block__text ul, .project-block__text ol{padding-left: 1.5rem;margin-bottom: 1rem}.project-block__text li{margin-bottom: 0.4rem}.project-block__text a{color: var(--heritage-green);text-decoration: underline;text-underline-offset: 3px}.project-block--accent .project-block__title::before{content: '';display: block;width: 52px;height: 4px;border-radius: 2px;margin-bottom: 0.9rem;background: var(--sfs-row-accent, var(--heritage-green))}.project-block__case-study{display: grid;grid-template-columns: calc(50% - 1.5rem) 1fr;gap: 0;margin-top: 2.25rem;background: var(--colour-white);border: 1px solid var(--colour-border);border-top: 4px solid var(--sfs-row-accent, var(--heritage-green));border-radius: 8px;overflow: hidden;text-decoration: none;box-shadow: 0 6px 28px rgba(0, 0, 0, 0.05);transition: box-shadow 0.35s ease, transform 0.35s ease}.project-block__case-study:hover{box-shadow: 0 16px 48px rgba(0, 0, 0, 0.1);transform: translateY(-3px)}.project-block__case-study-media{position: relative;overflow: hidden;min-height: 260px}.project-block__case-study-media img{position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover;display: block;filter: saturate(0.95) contrast(1.02);transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1)}.project-block__case-study:hover .project-block__case-study-media img{transform: scale(1.05)}.project-block--reverse .project-block__case-study{grid-template-columns: calc(50% + 1.5rem) 1fr}.project-block--reverse .project-block__case-study-media{order: 2}.project-block--reverse .project-block__case-study-content{order: 1}.project-block__case-study-content{display: flex;flex-direction: column;align-items: flex-start;gap: 0.7rem;padding: 2rem 2.25rem}.project-block__case-study-label{font-family: var(--font-heading);font-size: 0.6rem;font-weight: 700;letter-spacing: 0.2em;text-transform: uppercase;color: var(--colour-white);background: var(--sfs-row-accent, var(--heritage-green));border-radius: 3px;padding: 0.32rem 0.6rem}.project-block__case-study-title{font-family: var(--font-heading);font-size: clamp(1.2rem, 1.8vw, 1.5rem);font-weight: 700;color: var(--heritage-green);line-height: 1.25}.project-block__case-study-blurb{font-size: 0.95rem;line-height: 1.65;color: var(--colour-text-light)}.project-block__case-study-cta{margin-top: 0.25rem;font-family: var(--font-heading);font-size: 0.8rem;font-weight: 700;letter-spacing: 0.04em;text-transform: uppercase;color: var(--heritage-green);white-space: nowrap}.project-block__case-study-cta span{display: inline-block;transition: transform 0.3s ease}.project-block__case-study:hover .project-block__case-study-cta span{transform: translateX(4px)}@media (max-width: 680px){.project-block__case-study, .project-block--reverse .project-block__case-study{grid-template-columns: 1fr}.project-block--reverse .project-block__case-study-media, .project-block--reverse .project-block__case-study-content{order: unset}.project-block__case-study-media{aspect-ratio: 16 / 9;min-height: unset}.project-block__case-study-content{padding: 1.6rem 1.5rem}}@media (prefers-reduced-motion: reduce){.project-block__case-study, .project-block__case-study-media img, .project-block__case-study-cta span{transition: none}}.sfs-block-gallery-carousel{position: relative;margin-top: 1rem}.sfs-block-gallery-carousel__viewport{overflow: hidden;border-radius: 4px}.sfs-block-gallery-carousel__track{display: flex;gap: 6px;will-change: transform}.sfs-block-gallery-carousel__item{flex: 0 0 calc(33.333% - 4px);min-width: 0}.sfs-block-gallery-carousel__item img{display: block;width: 100%;aspect-ratio: 4 / 3;object-fit: cover;border-radius: 3px}.sfs-block-gallery-carousel__btn{position: absolute;top: 50%;transform: translateY(-50%);z-index: 2;width: 32px;height: 32px;border-radius: 50%;border: none;background: rgba(0, 0, 0, 0.5);color: #fff;font-size: 1rem;line-height: 1;cursor: pointer;display: flex;align-items: center;justify-content: center;transition: background 180ms ease, transform 180ms ease;padding: 0}.sfs-block-gallery-carousel__btn:hover{background: rgba(0, 0, 0, 0.75);transform: translateY(-50%) scale(1.08)}.sfs-block-gallery-carousel__btn--prev{left: 4px}.sfs-block-gallery-carousel__btn--next{right: 4px}.sfs-block-gallery-switcher{width: 100%}.sfs-block-gallery-switcher__main-img{display: block;width: 100%;aspect-ratio: 4 / 3;object-fit: cover;object-position: center;border-radius: 4px;transition: opacity 0.25s ease}.sfs-block-gallery-switcher__caption{overflow: hidden;opacity: 1;margin-top: 0.5rem;font-size: 0.875rem;line-height: 1.5;color: var(--urban-grey, #6b7280);font-style: italic;transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, margin-top 0.35s cubic-bezier(0.4, 0, 0.2, 1)}.sfs-block-gallery-switcher__caption.is-hidden{height: 0;opacity: 0;margin-top: 0}.sfs-block-gallery-switcher__strip-wrap{position: relative;margin-top: 0.75rem}.sfs-block-gallery-switcher__strip{overflow: hidden;position: relative;z-index: 0}.sfs-block-gallery-switcher__strip-track{display: flex;gap: 6px;will-change: transform}.sfs-block-gallery-switcher__thumb{flex: 0 0 calc(33.333% - 4px);aspect-ratio: 3 / 2;padding: 0;background: none;border: 2px solid transparent;border-radius: 3px;overflow: hidden;cursor: pointer;opacity: 0.6;transition: opacity 0.2s ease, border-color 0.2s ease}.sfs-block-gallery-switcher__thumb:hover:not(.is-active){opacity: 0.85;border-color: var(--colour-border, #d1d5db)}.sfs-block-gallery-switcher__thumb.is-active{opacity: 1;border-color: transparent}.sfs-block-gallery-switcher__thumb:focus:not(:focus-visible){outline: none}.sfs-block-gallery-switcher__thumb img{display: block;width: 100%;height: 100%;object-fit: cover;pointer-events: none}.sfs-block-gallery-switcher__nav{position: absolute;top: 50%;transform: translateY(-50%);z-index: 2;width: 28px;height: 28px;padding: 0;border: none;border-radius: 50%;background: rgba(0, 0, 0, .48);color: #fff;font-size: 14px;line-height: 1;cursor: pointer;display: flex;align-items: center;justify-content: center;transition: background 0.2s ease, transform 0.2s ease}.sfs-block-gallery-switcher__nav--prev{left: 4px}.sfs-block-gallery-switcher__nav--next{right: 4px}.sfs-block-gallery-switcher__nav:hover:not(:disabled){background: rgba(0, 0, 0, .72);transform: translateY(-50%) scale(1.08)}.sfs-block-gallery-switcher__nav:disabled{opacity: 0.3;cursor: default}.sfs-comparison{--sfs-pos: 50%;position: relative;width: 100%;max-width: 900px;margin: 0 auto;overflow: hidden;border-radius: 4px;background: #000;user-select: none;touch-action: pan-y;cursor: ew-resize;box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12)}.sfs-comparison__layer--after{position: relative;display: block}.sfs-comparison__layer--after .sfs-comparison__img{display: block;width: 100%;height: auto}.sfs-comparison__layer--before{position: absolute;inset: 0;overflow: hidden;clip-path: inset(0 calc(100% - var(--sfs-pos)) 0 0)}.sfs-comparison__layer--before .sfs-comparison__img{position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover}.sfs-comparison__img{-webkit-user-drag: none;pointer-events: none}.sfs-comparison__label{position: absolute;top: 1rem;padding: 0.4rem 0.85rem;font-family: var(--font-heading);font-size: 0.7rem;font-weight: 600;letter-spacing: 0.14em;text-transform: uppercase;color: var(--colour-white);background: rgba(10, 75, 44, 0.85);border-radius: 2px;pointer-events: none}.sfs-comparison__label--before{left: 1rem}.sfs-comparison__label--after{right: 1rem;background: rgba(0, 0, 0, 0.7)}.sfs-comparison__handle{position: absolute;top: 0;bottom: 0;left: var(--sfs-pos);width: 44px;margin-left: -22px;padding: 0;border: 0;background: transparent;cursor: ew-resize;z-index: 2;touch-action: none}.sfs-comparison__handle:focus{outline: none}.sfs-comparison__handle:focus-visible .sfs-comparison__handle-grip{box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.95), 0 0 0 6px var(--heritage-green)}.sfs-comparison__handle-line{position: absolute;top: 0;bottom: 0;left: 50%;width: 2px;margin-left: -1px;background: var(--colour-white);box-shadow: 0 0 8px rgba(0, 0, 0, 0.45)}.sfs-comparison__handle-grip{position: absolute;top: 50%;left: 50%;width: 44px;height: 44px;margin-top: -22px;margin-left: -22px;border-radius: 50%;background: var(--colour-white);color: var(--heritage-green);display: flex;align-items: center;justify-content: center;box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);transition: transform 0.2s ease}.sfs-comparison__handle:hover .sfs-comparison__handle-grip, .sfs-comparison.is-dragging .sfs-comparison__handle-grip{transform: scale(1.08)}.project-block__image:has(> img) .sfs-comparison--block, .project-block__image:has(> figcaption) .sfs-comparison--block{margin-top: 1.75rem}.project-block__caption--comparison{margin-top: 0.6rem;font-size: 0.875rem;color: var(--charcoal, #444);font-style: italic}.sfs-block-comparison-caption-wrap{margin-top: 12px;padding-top: 12px;border-top: 1px solid #e0e0e0}.projects-section{padding: 5rem 0;background-color: var(--colour-cream);background-image: linear-gradient(rgba(10, 75, 44, 0.016) 1px, transparent 1px), linear-gradient(90deg, rgba(10, 75, 44, 0.012) 1px, transparent 1px);background-size: 20px 20px;background-position: 0 0}.sectors-archive .projects-page-grid-wrap{padding: 4.5rem 0 1.5rem;background-color: var(--colour-cream)}.page-template-template-projects-archive .projects-page-grid-wrap, .page-template-template-services-archive .services{padding-bottom: 1.5rem}.policies-section{padding: 4.5rem 0 5rem;background-color: var(--colour-cream)}.policies-list{list-style: none;margin: 0 auto;padding: 0;max-width: 760px;display: grid;gap: 0.85rem}.policies-list__link{display: flex;align-items: center;gap: 1rem;padding: 1.15rem 1.4rem;background: var(--colour-white);border: 1px solid var(--colour-border);border-radius: 8px;text-decoration: none;color: var(--colour-text);box-shadow: 0 4px 18px rgba(0, 0, 0, 0.04);transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease}.policies-list__link:hover{box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);transform: translateY(-2px);border-color: var(--heritage-green)}.policies-list__icon{color: var(--heritage-green);font-size: 22px;width: 22px;height: 22px;flex-shrink: 0}.policies-list__title{font-family: var(--font-heading);font-weight: 600;font-size: 1.05rem;color: var(--heritage-green);flex: 1;line-height: 1.3}.policies-list__action{flex-shrink: 0;font-family: var(--font-heading);font-size: 0.68rem;font-weight: 700;letter-spacing: 0.1em;text-transform: uppercase;color: var(--colour-text-light);white-space: nowrap}.policies-list__action span{display: inline-block;transition: transform 0.25s ease}.policies-list__link:hover .policies-list__action span{transform: translateX(3px)}.policies-list__link.is-pdf:hover .policies-list__action span{transform: translateY(2px)}@media (max-width: 600px){.policies-list__link{flex-wrap: wrap;gap: 0.6rem 1rem}.policies-list__action{margin-left: 42px}}.footer-policies__nav a.is-pdf::after{content: "PDF";display: inline-block;margin-left: 0.4em;font-size: 0.6em;font-weight: 700;letter-spacing: 0.06em;vertical-align: middle;opacity: 0.55}.projects-heading{text-align: center;margin-bottom: 3rem}.projects-heading h2{font-family: var(--font-heading);font-size: 2rem;color: var(--heritage-green);margin-bottom: 0.6rem}.projects-heading p{font-size: 0.95rem;color: var(--colour-text-light);max-width: 600px;margin: 0 auto}.projects-grid{display: grid;grid-template-columns: repeat(3, 1fr);gap: 1.5rem}#projectsFilteredGrid{display: block;position: relative}#projectsFilteredGrid .project-grid-sizer, #projectsFilteredGrid .project-card{width: calc(33.333% - 16px)}#projectsFilteredGrid .project-grid-gutter{width: 24px}#projectsFilteredGrid .project-card{margin-bottom: 1.5rem}.projects-cta{text-align: center;margin-top: 2.5rem}.project-card{position: relative;overflow: hidden;border-radius: 6px}.project-card img{width: 100%;aspect-ratio: 4 / 3;object-fit: cover;display: block;transition: transform 0.6s ease;filter: saturate(0.92) contrast(1.02)}.project-card:hover img{transform: scale(1.07)}a.project-card--link{display: block;color: inherit;text-decoration: none}a.project-card--link:focus-visible{outline: 2px solid var(--heritage-green);outline-offset: 4px;border-radius: 6px}.project-overlay{position: absolute;bottom: 0;left: 0;right: 0;padding: 1.5rem 1.25rem;background: linear-gradient(to top, rgba(0, 0, 0, 0.55), transparent 65%);display: flex;flex-direction: column;align-items: center}.project-overlay::before{content: '';position: absolute;inset: 0;background: var(--service-colour, rgba(10, 75, 44, 0.97));opacity: 0;transition: opacity 0.45s ease;z-index: 0}.project-card:hover .project-overlay::before{opacity: 1}.project-overlay--cleaning{--service-colour: rgba(94, 177, 48, 0.97)}.project-overlay--restoration{--service-colour: rgba(88, 73, 152, 0.97)}.project-overlay--decorating{--service-colour: rgba(80, 179, 216, 0.97)}.project-overlay--survey{--service-colour: rgba(233, 123, 50, 0.97)}.project-overlay--heritage{--service-colour: rgba(10, 75, 44, 0.97)}.project-overlay h3, .project-overlay p{position: relative;z-index: 1}.project-overlay h3{font-family: var(--font-heading);font-size: 1rem;font-weight: 600;color: var(--colour-white);margin-bottom: 0;text-align: center;transform: translateY(0);transition: transform 0.4s ease}.project-card:hover .project-overlay h3{transform: translateY(-5px)}.project-overlay p{font-size: 0.7rem;font-weight: 500;text-transform: uppercase;letter-spacing: 0.12em;color: rgba(255, 255, 255, 0.9);opacity: 0;transform: translateY(8px);transition: opacity 0.35s ease 0.05s, transform 0.35s ease 0.05s;margin-top: 0.3rem}.project-card:hover .project-overlay p{opacity: 1;transform: translateY(0)}.project-overlay--heritage p{color: rgba(255, 255, 255, 0.85)}.projects-page-hero{padding: 4rem 0 1.5rem;background: var(--colour-white);border-bottom: 1px solid var(--colour-border)}.projects-page-hero__eyebrow{font-family: var(--font-heading);font-size: 0.7rem;font-weight: 600;letter-spacing: 0.2em;text-transform: uppercase;color: var(--colour-text-light);margin-bottom: 0.75rem}.projects-page-hero__title{font-family: var(--font-heading);font-size: clamp(1.75rem, 3vw, 2.5rem);color: var(--heritage-green);margin-bottom: 1rem}.projects-page-hero__lead{font-size: 1rem;color: var(--colour-text-light);max-width: none;line-height: 1.75}.projects-page-empty{text-align: center;color: var(--colour-text-light);margin-top: 2rem;font-size: 0.95rem}.projects-page-cta{text-align: center;padding: 3rem 0 4.5rem;background: var(--colour-cream)}@media (max-width: 768px){.projects-grid{grid-template-columns: 1fr}#projectsFilteredGrid .project-grid-sizer, #projectsFilteredGrid .project-card{width: calc(50% - 12px)}.project-block__inner{grid-template-columns: 1fr;gap: 1.75rem}.sfs-comparison__label{font-size: 0.65rem;padding: 0.3rem 0.7rem}.sfs-comparison__handle-grip{width: 38px;height: 38px;margin-top: -19px;margin-left: -19px}.contact-section--standalone{padding: 4rem 0}.contact-section--standalone .contact-watermark{margin-left: -35%;width: min(110vw, 620px)}.contact-watermark__img{opacity: 0.045}.contact-form .form-row{grid-template-columns: 1fr;gap: 0}.contact-form .form-footer{flex-direction: column;align-items: stretch}}@media (prefers-reduced-motion: reduce){.sfs-comparison__handle-grip{transition: none}.contact-watermark__parallax{transform: none !important;will-change: auto}.testimonials-pagination__dot{transition-duration: 0.01ms}.testimonials-pagination__dot-img--dark, .testimonials-pagination__dot-img--light{transition-duration: 0.01ms}.testimonial-slide{transition: none !important}.testimonial-slide.is-active{position: relative}.testimonial-slide .testimonial-slide__quote, .testimonial-slide .testimonial-slide__cite{opacity: 1 !important;transform: none !important;transition: none !important}}.faq-accordion__title{font-family: var(--font-heading);font-size: 1.5rem;color: var(--heritage-green);margin: 0 0 1.25rem}.faq-accordion__list{display: flex;flex-direction: column;gap: 0.75rem}.faq-accordion__item{border: 1px solid var(--colour-border);border-radius: 6px;background: var(--colour-white)}.faq-accordion__heading{margin: 0;font-size: inherit;line-height: inherit}.faq-accordion__trigger{width: 100%;display: flex;align-items: center;justify-content: space-between;gap: 1rem;margin: 0;padding: 1.05rem 1.25rem;background: none;border: 0;cursor: pointer;text-align: left;font-family: var(--font-heading);font-weight: 600;font-size: 1rem;line-height: 1.4;color: var(--heritage-green)}.faq-accordion__trigger:hover{color: var(--heritage-green-deep)}.faq-accordion__trigger:focus-visible{outline: 2px solid var(--heritage-green);outline-offset: -2px;border-radius: 6px}.faq-accordion__q{flex: 1}.faq-accordion__icon{position: relative;flex: 0 0 18px;width: 18px;height: 18px}.faq-accordion__icon::before, .faq-accordion__icon::after{content: '';position: absolute;top: 50%;left: 50%;background: currentColor;border-radius: 2px}.faq-accordion__icon::before{width: 14px;height: 2px;transform: translate(-50%, -50%)}.faq-accordion__icon::after{width: 2px;height: 14px;transform: translate(-50%, -50%) rotate(0deg);transition: transform 0.35s ease}.faq-accordion__item.is-open .faq-accordion__icon::after{transform: translate(-50%, -50%) rotate(90deg)}.faq-accordion__panel{display: grid;grid-template-rows: 0fr;transition: grid-template-rows 0.35s ease}.faq-accordion__item.is-open .faq-accordion__panel{grid-template-rows: 1fr}.faq-accordion__inner{overflow: hidden}.faq-accordion__a{padding: 0 1.25rem 1.15rem;line-height: 1.7;color: var(--colour-text)}.faq-accordion__a p{margin: 0 0 0.75rem}.faq-accordion__a p:last-child{margin: 0}@media (prefers-reduced-motion: reduce){.faq-accordion__panel, .faq-accordion__icon::after{transition: none}}.sfs-block-video{margin-top: 1.75rem}.project-block__text .sfs-block-video{margin-top: 1.5rem}.sfs-block-video__frame{position: relative;width: 100%;aspect-ratio: 16 / 9;background: #000;border-radius: 4px;overflow: hidden}.sfs-block-video__frame iframe{position: absolute;inset: 0;width: 100%;height: 100%;border: 0}.form-consent{margin: 0 0 1.25rem}.form-consent label{display: flex;align-items: flex-start;gap: 0.65rem;cursor: pointer;font-size: 0.8rem;line-height: 1.5;color: var(--colour-text-light)}.form-consent input[type="checkbox"]{flex: 0 0 auto;width: 16px;height: 16px;margin: 0.1rem 0 0;accent-color: var(--heritage-green);cursor: pointer}.form-consent a{color: var(--heritage-green);text-decoration: underline}.form-consent a:hover{color: var(--heritage-green-deep)}
/* sfs-project */
.projects-page-filters{background: var(--colour-white);padding: 0 0 1.5rem}.projects-filters{display: flex;flex-wrap: wrap;gap: 0.5rem 0.65rem;align-items: center}.projects-filter-btn{display: inline-flex;align-items: center;gap: 0.45rem;font-family: var(--font-heading);font-size: 0.65rem;font-weight: 600;letter-spacing: 0.1em;text-transform: uppercase;padding: 0.55rem 0.9rem;border-radius: 4px;border: 1px solid var(--colour-border);background: var(--colour-cream);color: var(--urban-grey);cursor: pointer;transition: background 0.25s, color 0.25s, border-color 0.25s}.projects-filter-btn::before{content: "";width: 8px;height: 8px;border-radius: 50%;background: var(--svc-colour, var(--colour-text-light));flex-shrink: 0}.projects-filter-btn--all::before{display: none}.projects-filter-btn:hover, .projects-filter-btn:focus-visible{border-color: var(--svc-colour, var(--heritage-green));color: var(--svc-colour, var(--heritage-green));outline: none}.projects-filter-btn.is-active{background: var(--svc-colour, var(--heritage-green));color: var(--colour-white);border-color: var(--svc-colour, var(--heritage-green))}.projects-filter-btn.is-active::before{background: var(--colour-white)}.projects-page-grid-wrap{padding: 3rem 0 4rem;background: var(--colour-cream)}.post-type-archive-sfs_project .projects-page-hero, .page-template-template-projects-archive .projects-page-hero{border-bottom: none}.project-single__nav{padding: 3.5rem 0 4.5rem}.project-single__nav .container{display: flex;flex-wrap: wrap;justify-content: center;align-items: center;gap: 1rem}.project-single__nav .btn + .btn{margin-left: 0}.single-sfs_service .service-single__body .project-single__content, .single-sfs_service .project-single__content, .single-sfs_sector .project-single__content{max-width: none}#projectsFilteredGrid .project-card__link{position: relative;display: block;width: 100%;height: 100%}.projects-page-count{font-size: 0.8rem;color: var(--colour-text-light);margin-bottom: 1.5rem}.projects-page-grid{display: grid;grid-template-columns: repeat(3, 1fr);gap: 1.75rem}.project-tile{background: var(--colour-white);border-radius: 6px;overflow: hidden;border: 1px solid var(--colour-border);transition: box-shadow 0.35s}.project-tile:hover{box-shadow: 0 10px 36px rgba(0, 0, 0, 0.08)}.project-tile__media img{width: 100%;aspect-ratio: 4 / 3;object-fit: cover;display: block;filter: saturate(0.92) contrast(1.02)}.project-tile__body{padding: 1.35rem 1.5rem 1.5rem}.project-tile__title{font-family: var(--font-heading);font-size: 1.05rem;font-weight: 600;color: var(--heritage-green);margin-bottom: 0.45rem;text-transform: none;letter-spacing: -0.02em}.project-tile__meta{font-size: 0.82rem;color: var(--colour-text-light);line-height: 1.5;margin: 0}.project-hero-image{width: 100%;overflow: hidden;aspect-ratio: 16 / 6;min-height: 200px;background: #111}.project-hero-image__img{display: block;width: 100%;height: 100%;object-fit: cover;object-position: center}.project-title-strip{background: var(--heritage-green);color: var(--colour-white);padding: 2rem 0 2.25rem}.project-title-strip__breadcrumb{color: rgba(255, 255, 255, 0.6);margin-bottom: 1rem}.project-title-strip__breadcrumb a{color: rgba(255, 255, 255, 0.7)}.project-title-strip__breadcrumb a:hover{color: var(--colour-white)}.project-title-strip__breadcrumb [aria-current="page"]{color: rgba(255, 255, 255, 0.85)}.project-title-strip__title{font-size: clamp(1.85rem, 3.6vw, 2.85rem);font-weight: 600;line-height: 1.12;color: var(--colour-white);margin-bottom: 0.85rem}.project-title-strip__meta{font-family: var(--font-heading);font-size: 0.8rem;font-weight: 500;letter-spacing: 0.16em;text-transform: uppercase;color: rgba(255, 255, 255, 0.72);margin: 0}.project-title-strip--emblem{position: relative;overflow: hidden}.project-title-strip__emblem{position: absolute;right: -4%;top: 50%;width: min(60vw, 480px);transform: translateY(-50%) rotate(-12deg);pointer-events: none;z-index: 0}.project-title-strip__emblem-img{width: 100%;height: auto;display: block;filter: brightness(0) invert(1);opacity: 0.07}.project-title-strip--emblem .container{position: relative;z-index: 1}@media (max-width: 768px){.project-title-strip__emblem{right: -12%;width: min(70vw, 360px)}}.project-intro{position: relative;overflow: hidden;padding: 4rem 0}.project-intro-watermark{position: absolute;right: -5%;top: 50%;width: min(72vw, 640px);transform: translateY(-50%) rotate(-12deg);pointer-events: none;z-index: 0}.project-intro-watermark__parallax{will-change: transform}.project-intro-watermark__img{width: 100%;height: auto;display: block;filter: brightness(0);opacity: 0.055}.project-intro .container{position: relative;z-index: 1}.project-intro__layout{display: grid;grid-template-columns: 1fr 340px;gap: 4rem;align-items: start}.project-intro__body{font-size: 1rem;line-height: 1.8;color: var(--colour-text)}.project-intro__body p{margin-bottom: 1rem}.project-intro__body p:last-child{margin-bottom: 0}.project-intro__body h2, .project-intro__body h3, .project-intro__body h4{color: var(--heritage-green);margin: 1.5rem 0 0.75rem}.project-intro__body ul, .project-intro__body ol{padding-left: 1.5rem;margin-bottom: 1rem}.project-details{margin: 0;padding: 0;border-top: 2px solid var(--heritage-green);padding-top: 1.25rem}.project-details__item{padding: 0.65rem 0;border-bottom: 1px solid var(--colour-border)}.project-details__item:last-child{border-bottom: none}.project-details__label{display: block;font-family: var(--font-heading);font-size: 0.68rem;font-weight: 700;letter-spacing: 0.14em;text-transform: uppercase;color: var(--heritage-green);margin-bottom: 0.2rem}.project-details__value{display: block;font-family: var(--font-body);font-size: 0.95rem;color: var(--colour-text);line-height: 1.5}.project-solutions-strip{background: var(--heritage-green);padding: 1.5rem 0}.project-solutions-strip__inner{display: flex;align-items: center;flex-wrap: wrap;gap: 0.75rem 1.5rem}.project-solutions-strip__label{font-family: var(--font-heading);font-size: 0.72rem;font-weight: 700;letter-spacing: 0.16em;text-transform: uppercase;color: rgba(255, 255, 255, 0.65);white-space: nowrap;flex-shrink: 0}.project-solutions-strip .service-tag, .project-solutions-strip .service-tag--cleaning, .project-solutions-strip .service-tag--survey, .project-solutions-strip .service-tag--restoration, .project-solutions-strip .service-tag--decorating, .project-solutions-strip .service-tag--additional{background: rgba(255, 255, 255, 0.18);border: 1px solid rgba(255, 255, 255, 0.35);color: var(--colour-white)}.project-testimonial{position: relative;overflow: hidden;padding: 4.5rem 1.5rem 5rem;background: var(--heritage-green)}.project-testimonial::before{content: '\201C';position: absolute;top: -0.18em;left: -0.06em;font-family: Georgia, 'Times New Roman', serif;font-size: clamp(32rem, 58vw, 52rem);font-weight: 400;line-height: 1;color: var(--colour-white);opacity: 0.06;pointer-events: none;user-select: none;z-index: 0}.project-testimonial .container{position: relative;z-index: 1}.project-testimonial__quote{max-width: 920px;margin: 0 auto;text-align: center;border: none;padding: 0}.project-testimonial__quote p{font-family: var(--font-quote);font-size: clamp(1.2rem, 2.2vw, 1.75rem);font-style: italic;font-weight: 300;line-height: 1.32;color: var(--colour-white);letter-spacing: 0.02em;margin-bottom: 1.25rem}.project-testimonial__cite{display: block;font-family: var(--font-body);font-size: 0.85rem;font-style: normal;color: rgba(255, 255, 255, 0.65);letter-spacing: 0.06em}.project-signoff{padding: 3.5rem 0;background: var(--colour-cream);border-top: 1px solid var(--colour-border)}.project-signoff__content{max-width: 780px;margin: 0 auto;color: var(--colour-text);text-align: center}.project-signoff__content--large p{font-size: var(--font-size-large);line-height: var(--line-height-large)}.project-signoff__content a{color: var(--heritage-green);text-decoration: underline;text-underline-offset: 3px}.project-signoff__content a:hover{color: var(--heritage-green-deep)}.project-signoff__content strong{color: var(--heritage-green)}@media (max-width: 1024px){.projects-page-grid{grid-template-columns: repeat(2, 1fr)}#projectsFilteredGrid{grid-template-columns: repeat(2, 1fr)}}@media (max-width: 900px){.project-intro__layout{grid-template-columns: 1fr;gap: 2.5rem}.project-intro-watermark{right: -12%;width: min(95vw, 520px);transform: translateY(-48%) rotate(-10deg)}.project-intro-watermark__img{opacity: 0.045}}@media (max-width: 768px){.projects-page-grid{grid-template-columns: 1fr}#projectsFilteredGrid{grid-template-columns: 1fr}.projects-filters{gap: 0.45rem}.project-intro{padding: 3rem 0}}@media (max-width: 640px){.project-solutions-strip__inner{flex-direction: column;align-items: flex-start;gap: 0.75rem}}.project-solutions{padding: 2.5rem 0 4rem;background: var(--colour-white);border-top: 1px solid var(--colour-border);border-bottom: 1px solid var(--colour-border)}.project-solutions__tags{display: flex;flex-wrap: wrap;gap: 0.6rem}a.service-tag{text-decoration: none;transition: opacity 0.2s ease, transform 0.2s ease}a.service-tag:hover{opacity: 0.85;transform: translateY(-1px)}.service-tag__arrow{margin-left: 0.35em;opacity: 0.65;font-weight: 700;display: inline-block;transition: transform 0.2s ease}a.service-tag:hover .service-tag__arrow{transform: translateX(2px)}
/* sfs-service */
.service-single__body{position: relative;overflow: hidden;padding: 4rem 0}.service-single__body .container{position: relative;z-index: 1}.service-single__body .project-single__content, .project-single__content{max-width: 780px;font-size: 1rem;line-height: 1.8;color: var(--colour-text)}.project-single__content h2, .project-single__content h3, .project-single__content h4{color: var(--heritage-green);margin-bottom: 0.75rem;margin-top: 1.5rem}.project-single__content p{margin-bottom: 1rem}.project-single__content ul, .project-single__content ol{padding-left: 1.5rem;margin-bottom: 1rem}.project-single__content a{color: var(--heritage-green);text-decoration: underline;text-underline-offset: 3px}
