PageSourceSearch

https://www.trimblearchitect.uk/blog/category/projects

html trimblearchitect.uk collected 2026-10-10 00:16:08 UTC 201,790 bytes, 3,539 lines download raw bytes

1<!--easy.cache.engine.26.08.19.2--><!DOCTYPE html><html lang="en"><head><link rel=preconnect href="https://fonts.googleapis.com"><link rel=preconnect href="https://fonts.gstatic.com" crossorigin><title>Projects</title><meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta name="description" content="Are you looking for Architects in Twickenham? View our Portfolio of recent Work here. We offer architectural services for new builds, home extensions and loft conversions."/><link rel="canonical" href="https://www.trimblearchitect.uk/blog"/><meta property="og:title" content="Projects"/><meta property="og:description" content="Are you looking for Architects in Twickenham? View our Portfolio of recent Work here. We offer architectural services for new builds, home extensions and loft conversions."/><meta property="og:type" content="website"/><meta property="og:url" content="https://www.trimblearchitect.uk/blog"/><meta property="og:image" content="https://www.easysites.uk/filestore/editor/2115136394/trimblepic.jpg"/><meta property="og:locale" content="en_GB"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"><link rel="manifest" href="/manifest.webmanifest"><link rel="icon" href="https://0nline.uk/s3/easyfav/trimblearchitectuk.jpg" type="image/x-icon"/><link rel="apple-touch-icon" href="https://0nline.uk/s3/easyfav/trimblearchitectuk.jpg"/><!--[if IE]>
1<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
1<![endif]--><link rel="stylesheet" type="text/css" href="//s3-eu-west-1.amazonaws.com/easysites/blog/min.easy-blog.css"/><style>#container article .news_article img {�     object-fit: cover;�     height: 250px;�     width: 100%;� }� � #container .med-ada {�    display: flex;�     align-items: center;�     flex-direction: row;�     flex-wrap: wrap;� }� #container .med-ada p {�     border: 3px solid rgb(247, 142, 0);�     padding: 0.5rem;�     margin: 0.5rem;�     font-weight: 600;� � }� � � #container #header_can {�     background: white;�     box-shadow: 0 0 5px 0 rgba(56, 56, 56, 0.5);� }� � #container #navigation a {�     color: #FF8F00;� }� #container header h1, header .company-branding span {�     display: none;� }� #container header> .header_logo, #container header .company-branding > .header_logo {
2    max-width: 200px;
3    margin: 0;
4}
5#container .header_logo img {
6    max-height: 100%;
7    max-width: 100%;
8    z-index: 1;
9}
10header:before {
11    content: "";
12    display: block;
13    position: absolute;
14    top: 0;
15    bottom: 0;
16    left: -80%;
17    right: 30%;
18    background: #ff8f00;
19    transform: skewX(-20deg);
20    z-index: 0;
21    box-shadow: 0 0 5px 0px black;
22}
23.blog-feed-container {
24    display: block; 
25}
26#container header #header_contact h4 {
27    filter: invert(1);
28}
29#container header #header_contact {
30    margin-left: calc(68% + 1rem);
31    margin-right: 0;
32}
33article p, article li {
34    color: black;
35    font-family: 'Muli';
36    font-weight: 400;
37    font-size: 16px;
38}
39article h1, article h2, article h3, article h4, article h5, .para-title {
40    text-transform: uppercase;
41    font-family: 'Muli';
42    letter-spacing: 2px;
43    font-weight: 700;
44}
45article a {
46    color: #ff8f00;
47    text-decoration: none!important;
48}
49#container #nav-toggle {
50    background: linear-gradient(to right, orange 0%, orange 100%);
51    background-size: 50px 2px;
52    background-repeat: no-repeat;
53    background-position: center center;
54}
55#container #nav-toggle:before, #container #nav-toggle:after {
56    background: orange;
57}
58#banner-wrapper i.icon.ion-android-add {
59    position: absolute;
60    top: 0;
61    bottom: 0;
62    right: 0;
63    background: black;
64    padding: 5px 20px;
65}
66#banner-wrapper {
67    text-align: right;
68}
69#banner-wrapper h1, .un22732 #banner-wrapper p {
70    text-transform: uppercase;
71    font-family: 'Muli';
72    color: #ff8f00;
73    letter-spacing: .25rem;
74    font-size: 36px;
75    padding-bottom: 0;
76}
77.un22732 #banner-wrapper p {
78    font-weight: 700;
79    margin: 0;
80  
81}
82.un22732 #banner-wrapper h1 {
83    font-weight: 600;
84    color: white;
85    font-size: 22px;
86}
87.un22732 #banner-wrapper h1 span {
88    margin-bottom: 5rem;
89    font-weight: 500;
90}
91#banner-wrapper h1 span, span.span-1 {
92    display: block;
93    font-size: 22px;
94}
95#banner-wrapper p, #banner-wrapper span.span-2 {
96    margin-top: 0;
97    margin-bottom: 5rem;
98    text-transform: uppercase;
99    font-size: 18px;
100    display: block;
101    letter-spacing: 0.2rem;
102    font-weight: 400;
103}
104.un22734 #banner-wrapper p {
105    margin-top: 1rem;
106}
107#banner-wrapper p span {
108    display: block;
109}
110#banner-wrapper a.co-ord-button {
111    background: #ff8f00;
112    padding: 15px 70px 15px 25px;
113    position: relative;
114    font-size: 18px;
115    font-weight: 300;
116}
117#banner-wrapper a.co-ord-button:hover {
118    color: white;
119    font-weight: 600;
120}
121
122
123
124
125
126
127#overlay-section {
128    align-content: baseline;
129    align-items: stretch;
130    transition: height .6s ease-in-out;
131    overflow: hidden;
132    padding-top: 0;
133    padding-bottom: 0;
134}
135#overlay-section > .two-third {
136position: relative;
137}
138#overlay-section > .third, #overlay-section > .two-third {
139    max-width: none;
140    padding: 0 2rem;
141}
142#overlay-section .column {
143    margin-bottom: 0;
144    margin-top: 0;
145}
146#overlay-section .column.half.text-left {
147        width: 100% !important;
148}
149#overlay-section .column.half.button-right {
150    width: 10%;
151    padding: 0;
152    right: 0;
153    bottom: 0;
154}
155#overlay-section .overlay-list {
156    background: rgba(0, 0, 0, 0.8);
157    height: 100%;
158    overflow: hidden;
159    position: relative;
160}
161#overlay-section .overlay-list ul {
162    display: inline-flex;
163    list-style: none;
164    margin: 0;
165    padding: 0;
166    transition: margin 1s ease-in-out;
167    white-space: nowrap
168}
169#overlay-section .overlay-list ul li:not([class*="overlay"]) {
170    transition: background .15s ease-in-out;
171}
172#overlay-section .overlay-list ul li:not([class]):hover {
173    background: rgba(0,0,0,0.4)
174}
175#overlay-section .overlay-list ul li.active {
176    background: #FF8F00;
177}
178#overlay-section .overlay-list ul li[class*="overlay"] {
179    align-items: center;
180    background: #FF8F00;
181    color: #000;
182    cursor: pointer;
183    display: flex;
184    font-size: 22px;
185    height: 100%;
186    opacity: 0;
187    padding: 0 1.25rem;
188    transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
189    visibility: hidden;
190}
191#overlay-section .overlay-list ul li.overlay-prev {
192    left: 0;
193    position: absolute;
194}
195#overlay-section .overlay-list ul li.overlay-next {
196    position: absolute;
197    right: 0;
198}
199#overlay-section .overlay-list ul li.visible {
200    opacity: 1;
201    visibility: visible;
202}
203#overlay-section .overlay-list ul li a {
204    align-items: center;
205    color: #fff;
206    cursor: pointer;
207    display: flex;
208    height: 100%;
209    padding: .75rem 1.25rem;
210}
211#overlay-section .overlay-list ul li.active a {
212    color: #000;
213    font-weight: 700;
214    font-size: 18px;
215}
216#overlay-section .overlay-wrap {
217    background-image: url(https://www.easysites.uk/filestore/editor/2115136394/bigstock__d_model_of_the_house_2404619620200220140959.jpg);
218    height: 100%;
219    padding: 2rem 1.25rem;
220    position: relative;
221    z-index: 2;
222    object-fit: contain;
223    background-position: center;
224    min-height: 552px;
225}
226.overlay-wrap:before {
227    content: "";
228    display: flex;
229    position: absolute;
230    background: rgba(255, 165, 0, 0.9);
231    top: 0;
232    right: 0;
233    left: 0;
234    bottom: 0;
235    z-index: -1;
236}
237#overlay-section a.is-btn.is-btn-ghost2.is-upper.plus-button {
238    position: absolute;
239    background: rgba(0, 0, 0, 0.7);
240    z-index: 3;
241    bottom: 0;
242    right: 0;
243    margin: 0;
244}
245.overlay-content.clearfix {
246    z-index: 3;
247}
248#overlay-section .overlay-content:not(:first-child) {
249    display: none;
250}
251#overlay-section h3 {
252    font-size: 25px;
253}
254#overlay-section p {
255     font-size: 16px;
256}
257#overlay-section h3, #overlay-section p {
258    color: #000;
259}
260#overlay-section a.is-btn.is-btn-ghost2.is-upper.plus-button:hover {
261    background: #000;
262}
263#overlay-section a.is-btn.is-btn-ghost2.is-upper.plus-button:before {
264    border: rgba(0, 0, 0, 0.1) solid 4px;
265}
266#overlay-section a.is-btn.is-btn-ghost2.is-upper.plus-button:hover:before {
267    content: "";
268    animation-name: ripple;
269    border-color: #000;
270}
271#overlay-section a.button {
272    color: white;
273    padding: 10px 20px;
274    background: rgba(0, 0, 0, 0.7);
275    position: absolute;
276    right: 0;
277    bottom: 0;
278    transition: .5s ease;
279}
280#overlay-section a.button:hover {
281    background: black;
282    border: 3px solid black;
283    padding: 15px 25px;
284}
285figure.container {
286    max-width: 1080px;
287    width: 100%;
288    position: relative;
289    transition: .5s ease;
290    z-index: 0;
291}
292figure.container:hover {
293    background: black;
294    z-index: 2;
295}
296figure.container:after {
297    box-shadow: 0 0 0 0 transparent inset;
298    content: "";
299    position: absolute;
300    top: 0;
301    bottom: 0;
302    left: 0;
303    right: 0;
304    transition: .5s ease;
305    z-index: 1;
306}
307.surrounding-locations p {
308    display: inline-block;
309    padding: 5px 10px;
310    background: transparent;
311    border: 3px solid #ff8f00;
312    text-transform: uppercase;
313    letter-spacing: 1px;
314    margin-bottom: 0;
315}
316figure.container:hover:after {
317     box-shadow: 0 0 0 5px #ff8f00 inset;
318}
319figure.container:hover figcaption {
320    opacity: 1;
321}
322figure.container figcaption {
323    transition: .5s ease;
324    opacity: 1;
325    position: absolute;
326    z-index: 1;
327    backface-visibility: hidden;
328    bottom: 0;
329    left: 0;
330    right: 0;
331}
332figure.container:hover img {
333    opacity: 0.4;
334}
335figure.container img {
336    margin: 0;
337    opacity: 1;
338    display: block;
339    width: 100% !important;
340    height: 275px;
341    transition: .5s ease;
342    backface-visibility: hidden;
343}
344figure.container:hover p {
345    padding-bottom: 25%;
346    padding-right: 20px;
347}
348figure.container p {
349    color: #FF8F00;
350    font-size: 18px;
351    padding: 10px 18px;
352    margin: 0;
353    padding-right: 30px;
354    text-transform: uppercase;
355    line-height: 1.4;
356    background: rgba(0, 0, 0, 0.8);
357    font-weight: 600;
358    transition: .5s ease;
359}
360figure.container p span {
361    line-height: inherit;
362    font-size: 16px;
363    display: block;
364    color: white;
365    font-weight: 500;
366}
367figure.container a.button {
368    color: #fffe;
369    background: rgba(0, 0, 0, 0);
370    padding: 5px 15px;
371    position: absolute;
372    bottom: 0;
373    right: 0;
374    transition: 0.5s ease;
375    z-index: 3;
376}
377figure.container:hover a.button {
378    background: #FF8F00;
379    color: black;
380}
381figure.container i.icon.ion-android-add {
382    font-size: 18px;
383}
384i.icon.ion-android-add {
385    font-size: 24px;
386}
387.photo-signature {
388    position: relative;
389    z-index: 1;
390    margin-bottom: 15%;
391}
392.photo-signature:before {
393    content: "";
394    display: block;
395    position: absolute;
396    top: 0;
397    left: 70px;
398    bottom: 0;
399    right: 0;
400    background: #ff8f00;
401    z-index: 0;
402    transform: translate(0%, 20%);
403}
404.photo-signature img {
405    position: relative;
406    box-shadow: 0 0 0 5px #ff8f00;
407    max-width: 85%;
408}
409.title {
410    position: relative;
411}
412.title:before {
413    content: "";
414    display: block;
415    position: absolute;
416    border-left: 5px solid rgba(255, 143, 0, 0.7);
417    height: 100%;
418    width: 10%;
419    top: -5px;
420    border-top: 5px solid rgba(255, 143, 0, 0.7);
421    border-bottom: 5px solid rgba(255, 143, 0, 0.7);
422}
423.title-position {
424    padding: 0.4rem 0.4rem 0.4rem 1rem;
425    font-size: 25px;
426}
427
428article .column.half.about-us-home {
429    order: 1;
430}
431.other-services {
432    margin: 0 2rem;
433}
434figure.testimonials-container {
435    max-width: 1080px;
436    width: 100%;
437    position: relative;
438    transition: .5s ease;
439    z-index: 0;
440    overflow: hidden;
441}
442figure.testimonials-container:hover {
443    border: 5px solid #FF8F00;
444    background: black;
445    transform: scale(1.05);
446    z-index: 2;
447}
448figure.testimonials-container:hover figcaption {
449    opacity: 1;
450}
451.about-us-home.column.two-third {
452    padding-bottom: 2rem;
453}
454figure.testimonials-container figcaption {
455    transition: .5s ease;
456    opacity: 1;
457    position: absolute;
458    z-index: 1;
459    backface-visibility: hidden;
460    bottom: 0;
461    left: 0;
462    right: 0;
463    overflow: auto;
464    width: 100%;
465    height: 100%;
466    transition: background .5s ease;
467}
468
469figure.testimonials-container:hover img {
470    opacity: 0.4;
471}
472
473figure.testimonials-container span.quote-name {
474    line-height: inherit;
475    font-size: 16px;
476    display: block;
477    color: white;
478    font-weight: 500;
479}
480figure.testimonials-container span.quote-loc {
481       font-size: 13px;
482       color: rgba(255, 255, 255, 0.5);
483}
484figure.boxtext {
485    width: 100%;
486    overflow: hidden;
487    position: relative;
488}
489figure.boxtext figcaption {
490    position: relative;
491    left: 0;
492    right: 0;
493    width: 100%;
494    height: 100%;
495    color: black;
496    font-size: .85em;
497    font-weight: 400;
498    z-index: 1;
499    max-height: 160px;
500    transition: 1s ease;
501}
502p.quote-details {
503    color: #ff8f00;
504    text-transform: uppercase;
505    font-size: 18px;
506    padding: 20px;
507    display: block;
508    margin: 0;
509    line-height: 1.4;
510    letter-spacing: .1rem;
511    font-weight: 600;
512    background: rgba(0, 0, 0, 0.8);
513    width: 100%;
514    z-index: 2;
515    position: relative;
516     transition: background .1s ease;
517}
518span.quote-name {
519    color: white;
520    display: block;
521    font-size: 16px;
522    font-weight: 500;
523    padding: 5px 0;
524}
525span.quote-loc {
526    color: rgba(255, 255, 255, 0.5);
527    font-weighT: 300;
528    font-size: 14px;
529    display: block;
530}
531p.full-quote {
532    padding: 20px;
533    margin: 0;
534    background: rgba(255, 143, 0, 0.8);
535    position: relative;
536    transform: translateY(-320px);
537    visibility: hidden;
538    transition: transform 1s ease, opacity 1s ease, visibility 2s ease;
539    opacity: 0;
540    z-index: 0;
541}
542.box-overlay {
543    position: absolute;
544    left: 0;
545    top: 0;
546    right: 0;
547    bottom: 0;
548}
549#container figure .box-overlay img {
550    width: 100%;
551    height: 100%;
552    object-fit: cover;
553    transform: translateY(-350px);
554    overflow: hidden;
555    visibility: hidden;
556    opacity: 0;
557    transition: transform .5s ease, visibility 2s ease, opacity 1s ease;
558}
559#container form:not(#pu-container form) {
560    background: rgba(17, 17, 17, 1);
561}
562#container fieldset label:not(#pu-container fieldset label) {
563    color: white;
564}
565#container fieldset label:after {
566    color: white;
567}
568.row.clearfix.get-in-touch {
569    align-items: center;
570}
571.contact-box i {
572    color: #ff8f00;
573}
574.contact-box a {
575    color: black;
576    text-decoration: none !important;
577}
578.contact-box a:hover {
579    color: white;
580    font-weight: 600 !important;
581}
582.contact-box {
583    padding: 20px;
584    z-index: 1;
585}
586.row.clearfix.get-in-touch .column.two-third {
587    padding: 0;
588    margin-bottom: -40px;
589}
590#container fieldset button.submit {
591    background: #ff8f00;
592}
593#container fieldset button.submit:hover {
594    filter: brightness(120%);
595}
596.spacer:before {
597    content: "";
598    display: block;
599    border-top: 2px solid rgba(255, 143, 0, 0.2);
600    width: 100%;
601    height: 40%;
602    position: absolute;
603    left: 75%;
604    border-left: 2px solid rgba(255, 143, 0, 0.2);
605    top: 40%;
606}
607.spacer:after {
608    content: "";
609    display: block;
610    border-bottom: 2px solid rgba(255, 143, 0, 0.2);
611    width: 100%;
612    height: 40%;
613    position: absolute;
614    right: 15%;
615    border-right: 2px solid rgba(255, 143, 0, 0.2);
616    bottom: 40%;
617}
618.spacer p:before {
619    content: "";
620    display: block;
621    border-top: 2px solid rgba(255, 143, 0, 0.2);
622    width: 100%;
623    height: 40%;
624    position: absolute;
625    left: 87%;
626    top: 35%;
627}
628.spacer p:after {
629    content: "";
630    display: block;
631    border-bottom: 2px solid rgba(255, 143, 0, 0.2);
632    width: 100%;
633    height: 40%;
634    position: absolute;
635    right: 27%;
636    bottom: 35%;
637}
638
639
640
641.blog-post .gallery-carousel .slick-slide div {
642  text-align: center;
643  transition: all 300ms ease;
644  height: 220px;
645  margin: 10px;
646  display: flex;
647  align-items: center;
648  padding: 0.5rem 0.75rem;
649  justify-content: center;
650  flex-flow: row wrap;
651  position: relative;
652}
653
654.blog-post .gallery-carousel .slick-center div {
655  -moz-transform: scale(1.08);
656  -webkit-transform: scale(1.08);
657  opacity: 1;
658  transform: scale(1.08);
659}
660
661.blog-post .gallery-carousel .slick-slide h4 {
662   flex: 1 0 100%;
663   padding: 0;
664   color: rgba(0, 0, 0, 0.3);
665   z-index: 1;
666   font-size: 19px;
667   line-height: 1.2;
668   font-weight: 400;
669   letter-spacing: 0;
670   margin-top: -70px;
671}
672.blog-post .gallery-carousel .slick-center h4 {
673    color: black;
674    font-size: 21px;
675}
676
677.blog-post .gallery-carousel .slick-slide div:before {
678    content: "";
679    display: block;
680    height: 100%;
681    width: 100%;
682    position: absolute;
683    background: white;
684    z-index: 1;
685    opacity: 0.9;
686}
687.blog-post .gallery-carousel .slick-center div:before {
688    background: #ff8f00;
689}
690.blog-post .gallery-carousel .slick-slide div:after {
691    content: "";
692    display: block;
693    height: 100%;
694    width: 100%;
695    position: absolute;
696    background-image: url(https://www.easysites.uk/filestore/editor/5230397041/BigStock/800bigstock-Angry-Couple-Argue-In-Therapy--30867067920200207095118.jpg);
697    background-size: cover;
698}
699
700.blog-post .gallery-carousel .slick-arrow {
701    top: 50%;
702    filter: invert(1);
703    transform: translateY(-50%);
704}
705.blog-post .gallery-carousel .slick-prev {
706    left: 0;
707}
708.blog-post .gallery-carousel .slick-arrow:before, .blog-post .gallery-carousel .slick-arrow:after {
709    background: none !important;
710}
711.blog-post .gallery-carousel .slick-dots {
712    bottom: -30px;
713}
714.blog-post .gallery-carousel .slick-dots li {
715    background: #ddd;
716}
717.blog-post .gallery-carousel .slick-dots li.slick-active, .blog-post .gallery-carousel .slick-dots li:hover {
718    background: orange;
719}
720
721.blog-post section h1 {
722  position: absolute;
723  top: 50%;
724  left: 50%;
725  z-index: 2;
726  -webkit-transform: translate(-50%, -50%);
727  transform: translate(-50%, -50%);
728  color: #fff;
729  text-align: center;
730  white-space: nowrap;
731}
732.blog-post #section04 a span {
733  position: absolute;
734  top: 0;
735  left: 50%;
736  width: 24px;
737  height: 24px;
738  margin-left: -12px;
739  border-left: 5px solid #fff;
740  border-bottom: 5px solid #fff;
741  -webkit-transform: rotate(-45deg);
742  transform: rotate(-45deg);
743  -webkit-animation: sdb04 2s infinite;
744  animation: sdb04 2s infinite;
745  box-sizing: border-box;
746}
747.blog-post .demo a {
748  position: absolute;
749  bottom: 20px;
750  left: 50%;
751  z-index: 2;
752  display: inline-block;
753  -webkit-transform: translate(0, -50%);
754  transform: translate(0, -50%);
755  color: #fff;
756  letter-spacing: .1em;
757  text-decoration: none;
758  transition: opacity .3s;
759}
760.blog-post .demo a:hover {
761  opacity: .5;
762}
763.gallery-carousel .slick-slide div {
764  text-align: center;
765  transition: all 300ms ease;
766  height: 150px;
767  margin: 10px;
768  display: flex;
769  align-items: center;
770  padding: 0 0.6rem;
771  justify-content: center;
772  flex-flow: row wrap;
773  position: relative;
774}
775.gallery-carousel .slick-center div {
776  -moz-transform: scale(1.08);
777  -webkit-transform: scale(1.08);
778  opacity: 1;
779  transform: scale(1.08);
780}
781.gallery-carousel .slick-slide h4 {
782   flex: 1 0 100%;
783   padding: 0;
784   color: rgba(0, 0, 0, 0.3);
785   z-index: 1;
786   font-size: 21px;
787   line-height: 1;
788   font-weight: 400;
789   letter-spacing: 0;
790}
791.gallery-carousel .slick-center h4 {
792    color: black;
793    font-size: 24px;
794}
795.gallery-carousel .slick-slide div:before {
796    content: "";
797    display: block;
798    height: 100%;
799    width: 100%;
800    position: absolute;
801    background: white;
802    z-index: 1;
803    opacity: 0.9;
804}
805.gallery-carousel .slick-center div:before {
806    background: #ff8f00;
807}
808.gallery-carousel .slick-slide div:after {
809    content: "";
810    display: block;
811    height: 100%;
812    width: 100%;
813    position: absolute;
814    background-image: url(https://www.easysites.uk/filestore/editor/5230397041/BigStock/800bigstock-Angry-Couple-Argue-In-Therapy--30867067920200207095118.jpg);
815    background-size: cover;
816}
817.gallery-carousel .slick-arrow {
818    top: 50%;
819    filter: invert(1);
820    transform: translateY(-50%);
821}
822.gallery-carousel .slick-prev {
823    left: 0;
824}
825.gallery-carousel .slick-arrow:before, .gallery-carousel .slick-arrow:after {
826    background: none !important;
827}
828.gallery-carousel .slick-dots {
829    bottom: -30px;
830}
831.gallery-carousel .slick-dots li {
832    background: #ddd;
833}
834.gallery-carousel .slick-dots li.slick-active, .gallery-carousel .slick-dots li:hover {
835    background: orange;
836}
837
838section h1 {
839  position: absolute;
840  top: 50%;
841  left: 50%;
842  z-index: 2;
843  -webkit-transform: translate(-50%, -50%);
844  transform: translate(-50%, -50%);
845  color: #fff;
846  text-align: center;
847  white-space: nowrap;
848}
849#section04 a span {
850  position: absolute;
851  top: 0;
852  left: 50%;
853  width: 24px;
854  height: 24px;
855  margin-left: -12px;
856  border-left: 5px solid #fff;
857  border-bottom: 5px solid #fff;
858  -webkit-transform: rotate(-45deg);
859  transform: rotate(-45deg);
860  -webkit-animation: sdb04 2s infinite;
861  animation: sdb04 2s infinite;
862  box-sizing: border-box;
863}
864.demo a {
865  position: absolute;
866  bottom: 20px;
867  left: 50%;
868  z-index: 2;
869  display: inline-block;
870  -webkit-transform: translate(0, -50%);
871  transform: translate(0, -50%);
872  color: #fff;
873  letter-spacing: .1em;
874  text-decoration: none;
875  transition: opacity .3s;
876}
877.demo a:hover {
878  opacity: .5;
879}
880@-webkit-keyframes sdb04 {
881  0% {
882    -webkit-transform: rotate(-45deg) translate(0, 0);
883  }
884  20% {
885    -webkit-transform: rotate(-45deg) translate(-10px, 10px);
886  }
887  40% {
888    -webkit-transform: rotate(-45deg) translate(0, 0);
889  }
890}
891@keyframes sdb04 {
892  0% {
893    transform: rotate(-45deg) translate(0, 0);
894  }
895  20% {
896    transform: rotate(-45deg) translate(-10px, 10px);
897  }
898  40% {
899    transform: rotate(-45deg) translate(0, 0);
900  }
901}
902.contact-redirect a {
903    color: white;
904    text-decoration: none !important;
905    padding: 15px 45px 15px 25px;
906    text-transform: uppercase;
907    background: black;
908    font-weight: 500;
909    position: absolute;
910    bottom: 50px;
911}
912.contact-redirect i.icon.ion-android-add {
913    font-size: 18px;
914    position: relative;
915    padding: 8px 15px;
916    bottom: 0;
917    right: 0;
918    top: 0;
919}
920.black-contact-box.column.half {
921    background: #222;
922    padding: 2rem;
923    margin-bottom: 0;
924}
925.black-contact-box.column.half:before {
926    content: "";
927    display: block;
928    position: absolute;
929    bottom: 48.5%;
930    left: 0;
931    right: 0;
932    background: #222;
933    height: 330px;
934    z-index: -1;
935}
936 .un22732 .column.half.experience, .un22732 .column.half.RIBA {
937    background: #f3f3f3;
938    margin: 0.5rem 1rem;
939    position: relative;
940    padding: 15px 20px 0 20px;
941    width: auto;
942    display: inline-block;
943    float: left;
944}
945.un22732 .column.half.experience:before, .un22732 .column.half.RIBA:before {
946    width: 0;
947    height: 0;
948    border-style: solid;
949    border-width: 0 0 25px 25px;
950    border-color: transparent transparent #ff8f00 transparent;
951    content: "";
952    display: block;
953    top: 0;
954    position: absolute;
955    left: 0;
956}
957.un22732 .column.half.experience:after, .un22732 .column.half.RIBA:after {
958    content: "";
959    display: block;
960    position: absolute;
961    width: 0;
962    height: 0;
963    border-style: solid;
964    border-width: 25px 25px 0 0;
965    border-color: #fff transparent transparent transparent;
966    top: 0;
967    left: 0;
968}
969.column.half.experience, .column.half.RIBA {
970    background: white;
971    margin: 0.5rem 1rem;
972    position: relative;
973    padding: 15px 20px 0 20px;
974    width: 50%
975}
976.column.half.experience:before, .column.half.RIBA:before {
977    width: 0;
978    height: 0;
979    border-style: solid;
980    border-width: 0 0 25px 25px;
981    border-color: transparent transparent #ff8f00 transparent;
982    content: "";
983    display: block;
984    top: 0;
985    position: absolute;
986    left: 0;
987}
988.column.half.experience img, .column.half.RIBA img {
989    height: 96px;
990}
991.column.half.experience:after, .column.half.RIBA:after {
992    content: "";
993    display: block;
994    position: absolute;
995    width: 0;
996    height: 0;
997    border-style: solid;
998    border-width: 25px 25px 0 0;
999    border-color: #222 transparent transparent transparent;
1000    top: 0;
1001    left: 0;
1002}
1003.orange-contact-box.column.half {
1004    height: 330px;
1005    background: url(https://www.trimblearchitect.uk/optimised/d_model_of_the_house_2404619620200220140959.webp);
1006    margin: 0;
1007    background-size: cover;
1008    padding: 2rem;
1009}
1010.orange-contact-box.column.half:before {
1011    content: "";
1012    display: block;
1013    background: #ffae34;
1014    position: absolute;
1015    left: 0;
1016    right: 0;
1017    z-index: 0;
1018    height: 330px;
1019    opacity: 0.9;
1020    bottom: 0;
1021}
1022.contact-redirect a:hover {
1023    color: white;
1024    font-weight: 700 !important;
1025}
1026.logo-name {
1027    display: block;
1028}
1029.logo-name p {
1030    color: #ff8f00;
1031    font-size: 30px;
1032    text-transform: uppercase;
1033    letter-spacing: 5px;
1034    font-weight: 700;
1035    margin: 0;
1036}
1037.logo-name span {
1038    font-weight: 200;
1039}
1040.logo-info {
1041    padding-left: 2rem;
1042}
1043.logo-location p {
1044    color: white;
1045    text-transform: uppercase;
1046    letter-spacing: 2px;
1047    display: block;
1048    margin: 0;
1049}
1050.logo-location {
1051    margin-bottom: 1rem;
1052}
1053p.contact-heading {
1054    font-size: 26px;
1055    font-weight: 700;
1056    text-transform: uppercase;
1057    letter-spacing: 5px;
1058}
1059.contact-redirect p {
1060    z-index: 1;
1061    position: relative;
1062}
1063    font-weight: 700;
1064    text-transform: uppercase;
1065    letter-spacing: 5px;
1066}
1067.contact-redirect p {
1068    z-index: 1;
1069    position: relative;
1070}
1071.fourth-background a.button {
1072    padding: 10px 20px;
1073    background: rgba(0, 0, 0, 0.7);
1074    position: absolute;
1075    color: white;
1076    right: 0;
1077    bottom: 0;
1078}
1079.fourth-background {
1080    position: relative;
1081}
1082.fourth-background a.button:hover {
1083    color: white;
1084    background: black;
1085}
1086.timeline span {
1087    text-transform: uppercase;
1088    padding-right: 0.5rem;
1089    font-weight: 600;
1090    color: #ff8f00;
1091}
1092.timeline, .timeline-design {
1093    position: relative;
1094}
1095.timeline:before {
1096    content: "";
1097    display: block;
1098    position: absolute;
1099    border-top: 5px solid rgba(255, 143, 0, 0.7);
1100    width: 100%;
1101    left: 0;
1102    top: 15px;
1103    z-index: 0;
1104}
1105.timeline-design:before {
1106    content: "";
1107    display: block;
1108    border-top: 5px solid rgba(255, 143, 0, 0.7);
1109    border-bottom: 5px solid rgba(255, 143, 0, 0.7);
1110    border-left: 5px solid rgba(255, 143, 0, 0.7);
1111    height: 50px;
1112    width: 5%;
1113    position: absolute;
1114    top: -12px;
1115    left: 25%;
1116    z-index: 2;
1117    right: 0;
1118    bottom: 0;
1119}
1120p.timeline-heading {
1121    text-align: center;
1122    font-size: 21px;
1123    text-transform: uppercase;
1124    font-weight: 700;
1125    position: relative;
1126    z-index: 3;
1127}
1128.timeline-design:after {
1129    content: "";
1130    display: block;
1131    position: absolute;
1132    background: white;
1133    width: 50%;
1134    top: 0;
1135    left: 25%;
1136    z-index: 1;
1137    right: -220%;
1138    bottom: 0;
1139    height: 50px;
1140}
1141p.contact-title {
1142    color: orange;
1143    text-transform: uppercase;
1144    letter-spacing: 2px;
1145    font-size: 21px;
1146    font-weight: 500;
1147}
1148p.contact-sub {
1149    display: block;
1150    line-height: 1.4;
1151    margin: 0.6rem 0;
1152    color: white;
1153    letter-spacing: 2px;
1154    font-weight: 600;
1155    text-transform: uppercase;
1156}
1157p.contact-feature {
1158    color: white;
1159    text-transform: uppercase;
1160    letter-spacing: 2px;
1161    line-height: 1.4;
1162    display: block;
1163    margin: 0;
1164}
1165.column.third.link-design a {
1166    color: white;
1167    text-decoration: none !important;
1168}
1169.column.third.link-design a:hover {
1170    font-weight: 700;
1171}
1172
1173#container article #news_feed #info_panel {
1174    display: none;
1175}
1176#container article #news_feed.news_article {
1177    margin: 0;
1178}
1179.column.half.portfolio-image {
1180    position: relative;
1181}
1182.column.half.portfolio-image img {
1183    position: relative;
1184    z-index: 1;
1185}
1186.landscape {
1187    position: absolute;
1188    bottom: -5%;
1189    right: 16%;
1190}
1191.portrait {
1192    position: absolute;
1193    bottom: -8%;
1194    right: 16%;
1195}
1196.column.half.portfolio-info {
1197    margin-top: 1rem;
1198}
1199.landscape:before, .portrait:before {
1200    content: "";
1201    display: block;
1202    background: #ec7000;
1203    height: 25px;
1204    width: 30px;
1205    transform: skewX(-45deg);
1206    position: absolute;
1207    bottom: 15%;
1208    right: -6%;
1209    z-index: 0;
1210}
1211img.refurb-icon, img.commercial, img.listed, img.misc, img.conversions, img.new-build {
1212    height: 92px;
1213    position: relative;
1214    z-index: 1;
1215}
1216img.domestic-icon {
1217    height: 92px;
1218    position: relative;
1219    z-index: 1;
1220}
1221#container td {
1222    border: none;
1223    text-align: left;
1224    color: #111;
1225    font-size: 16px;
1226    padding: 10px 15px 10px 0;
1227    text-transform: uppercase;
1228    letter-spacing: 2px;
1229}
1230#container td:hover {
1231    background: none;
1232}
1233td span {
1234    color: orange;
1235    text-transform: uppercase;
1236    letter-spacing: 2px;
1237    font-weight: 600;
1238}
1239.category-redirect a, .similar-project a {
1240    background: rgba(0, 0, 0, 0.7);
1241    padding: 5px 20px;
1242    font-size: 21px;
1243    position: absolute;
1244    right: 0;
1245    top: 0;
1246    bottom: 0;
1247    color: white;
1248    height: 100%;
1249    display: flex;
1250    align-items: center;
1251}
1252.category-redirect, .similar-project {
1253    background: #ff8f00;
1254    padding: 10px 20px;
1255    text-transform: uppercase;
1256    letter-spacing: 2px;
1257    font-weight: 600;
1258    position: relative;
1259    margin: 0.5rem 0;
1260}
1261.category-redirect p, .similar-project p {
1262    margin: 0;
1263    width: 90%;
1264}
1265.category-redirect a:hover, .similar-project a:hover {
1266    color: white;
1267    background: black;
1268}
1269.directories {
1270    padding-top: 0;
1271}
1272#container .column.half.portfolio-image .image {
1273    position: relative;
1274    z-index: 1;
1275}
1276.row.clearfix.other-projects #slick-content {
1277    padding-top: 30px;
1278}
1279.row.clearfix.other-projects {
1280    padding-top: 50px;
1281}
1282.blog-post .gallery-carousel .slick-slide div img.image {
1283    height: 96px;
1284    z-index: 1;
1285    margin-top: -30px;
1286    width: auto;
1287}
1288a.portfolio-button {
1289    z-index: 1;
1290    color: white;
1291    background: rgba(0, 0, 0, 0.7);
1292    padding: 5px 15px;
1293    position: absolute;
1294    right: 0;
1295    bottom: 0;
1296}
1297a.portfolio-button:hover {
1298    background: black;
1299    color: white;
1300}
1301#news_feed.news_article .article_img {
1302    display: block;
1303}
1304.blog-feed-container #news_feed:not(.news_article) .blog-post:before {
1305    display: none;
1306}
1307#container .blog-feed-container #news_feed:not(.news_article) .blog-post:first-child {
1308    flex: 1 0 100%;
1309}
1310#container .blog-feed-container #news_feed:not(.news_article) .blog-post {
1311    margin: 1rem;
1312    display: table;
1313}
1314#container .blog-feed-container #news_feed:not(.news_article) .blog-post {
1315    align-content: center;
1316    background: #FFF;
1317    display: inline-table;
1318    flex: 1 0 100%;
1319    flex-flow: column wrap;
1320    justify-content: flex-end;
1321    margin: 1rem;
1322    min-height: auto;
1323    position: relative;
1324    vertical-align: baseline;
1325    max-width: 100%;
1326    box-shadow: 0 0 0 5px #ff8f00;
1327}
1328#container .blog-feed-container #news_feed:not(.news_article) h2:first-child {
1329    color: #ff8f00;
1330    font-size: 24px;
1331    font-weight: 400;
1332    letter-spacing: 0;
1333    line-height: 1.4;
1334    transition: color .3s ease-in-out;
1335    display: table-cell;
1336    position: absolute;
1337    padding: 0.75rem;
1338    background: rgba(0, 0, 0, 0.85);
1339    z-index: 1;
1340    width: 100%;
1341    bottom: -5px;
1342    left: 0;
1343    right: 0;
1344}
1345#container #news_feed:not(.news_article) .blog-post .article_img {
1346    height: auto;
1347    left: 0;
1348    top: 0;
1349    width: 100%;
1350    display: table-footer-group;
1351    right: 0;
1352    bottom: 0;
1353    position: relative;
1354}
1355#container #news_feed:not(.news_article) .blog-post img {
1356    height: 400px;
1357    line-height: 1;
1358    margin: 0;
1359    min-width: 100%;
1360    object-fit: cover;
1361    overflow: hidden;
1362    position: initial;
1363}
1364#container article #news_feed #more_information p {
1365    visibility: hidden;
1366}
1367#more_information a:after {
1368    display: none;
1369}
1370#container .blog-feed-container #news_feed:not(.news_article) .blog-post:after {
1371    content: "";
1372    display: block;
1373    position: absolute;
1374    top: 0;
1375    bottom: 0;
1376    left: 0;
1377    right: 0;
1378    background: hsla(0, 0%, 0%, 0.5);
1379    transition: opacity .25s ease-in-out;
1380    opacity: 0;
1381}
1382#container .blog-feed-container #news_feed:not(.news_article) .blog-post:hover:after {
1383    opacity: 1;
1384}
1385#container article #news_feed #more_information a {
1386    z-index: 5;
1387}
1388#container .blog-feed-container aside .sidebar_links li a {
1389    background: #ff8f00;
1390    border: 0;
1391    border-radius: 0;
1392    color: black;
1393    font-weight: 500;
1394    letter-spacing: 1px;
1395    margin: .4rem 0;
1396    padding: .2rem .6rem;
1397    transition: background .25s ease-in-out, color .15s ease-in-out;
1398    text-transform: uppercase;
1399}
1400#container .blog-feed-container aside .sidebar_links li a:hover, .blog-feed-container aside .sidebar_links li a.selected-cat {
1401    background: black;
1402    color: orange;
1403}
1404#container .blog-feed-container .sidebar_links .sidebar_heading:before {
1405    color: #000;
1406    content: "Take A Look At our projects";
1407    display: block;
1408    font-family: 'Muli';
1409    font-weight: 600;
1410    font-size: 32px;
1411    letter-spacing: 2px;
1412    line-height: 1.4;
1413    padding-bottom: 1.2rem;
1414    text-transform: uppercase;
1415}
1416#container .blog-feed-container aside .sidebar_links li a:active, .blog-feed-container aside .sidebar_links li a.selected-cat {
1417    background: black;
1418    color: #ff8f00;
1419}
1420#container #banner_can {
1421    display: none;
1422}
1423.blog-section:not(.body-portfolio):not(.un22886) .sidebar_container.sidebar_links {
1424   display: none;
1425}
1426.blog-feed-container .sidebar_content {
1427   margin-top: 4rem;
1428}
1429.content li {
1430    list-style: none;
1431}
1432
1433
1434
1435
1436@media (min-width: 23rem) {
1437 #container header #header_contact {
1438    margin-left: calc(72% + 1rem);
1439}
1440}
1441
1442
1443@media (min-width: 28rem) {
1444.title span {
1445    display: inline-block;
1446}
1447.column.half.experience, .column.half.RIBA {
1448    width: auto;
1449    float: left;
1450}
1451}
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463@media (min-width: 30rem) {
1464.other-services .column.fourth {
1465    max-width: 50%;
1466    padding: 0 0.75rem;
1467}
1468.other-services {
1469    margin: 0 1rem;
1470}
1471#container header #header_contact {
1472    margin-left: calc(83% + 1rem);
1473}
1474.landscape, .portrait {
1475    right: 27%;
1476}
1477}
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487@media (min-width: 35rem) {
1488.landscape, .portrait {
1489    right: 37%;
1490}
1491}
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501@media (min-width: 40rem) {
1502#overlay-section .overlay-wrap {
1503   min-height: 370px;
1504}
1505#overlay-section .column.half.text-left {
1506        width: 80% !important;
1507}
1508article .row > .half {
1509    max-width: calc(35rem);
1510    flex: 1 0 100%;
1511}
1512.other-services .column.fourth {
1513    flex: 1 0 50%;
1514}
1515figure.testimonials-container .column.third {
1516    flex: 1 0 33%;
1517    max-width: calc(40rem / 3);
1518}
1519header:before {
1520    right: 40%;
1521}
1522#container header #header_contact {
1523    margin-left: calc(40% + 1rem);
1524}
1525.header_logo {
1526    margin: 1.25rem 0;
1527    margin-right: 1.5rem;
1528}
1529.row.clearfix.get-in-touch {
1530    align-items: center;
1531    padding: 0 0 0 3rem;
1532}
1533.row.clearfix.get-in-touch .column.two-third {
1534    padding: 0;
1535    margin: 0;
1536    max-width: 100%;
1537    z-index: 0;
1538}
1539.row.clearfix.get-in-touch .column.third {
1540    z-index: 2;
1541    margin-left: 1rem;
1542}
1543.contact-box {
1544    margin-right: 1rem;
1545}
1546.fourth-background a.button {
1547    padding: 10px 20px;
1548    background: rgba(0, 0, 0, 0.7);
1549    position: absolute;
1550    color: white;
1551    right: 0;
1552    bottom: 0;
1553}
1554.fourth-background {
1555    height: 90%;
1556}
1557.timeline:before {
1558    width: 100%;
1559}
1560.timeline-design:before {
1561    left: 37%;
1562}
1563.timeline-design:after {
1564    width: 25%;
1565    left: 37%;
1566}
1567.logo-location {
1568    margin-bottom: 0;
1569}
1570.row.clearfix.contact .column.third {
1571    max-width: calc(35rem / 3);
1572}
1573#article_snippet > .row > .half {
1574    width:100%;
1575}
1576.landscape, .portrait {
1577    right: 40%;
1578}
1579#container .blog-feed-container #news_feed:not(.news_article) .blog-post {
1580    flex: 1 0 40%;
1581    margin: 0.5rem;
1582}
1583}
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606@media (min-width: 50rem) {
1607article .row > .half {
1608    max-width: calc(45rem);
1609    flex: 1 0 100%;
1610}
1611article .column.half.about-us-home {
1612    padding-left: 0;
1613    padding-right: 0;
1614}
1615
1616.other-services .column.fourth {
1617    max-width: calc(45rem / 4);
1618    flex: 1 0 25%;
1619}
1620.other-services {
1621    margin: 0;
1622}
1623.row.clearfix.testimonials .column.third {
1624    flex: 1 0 33%;
1625    max-width: calc(45rem / 3);
1626}
1627figure.testimonials-container img {
1628   min-height: 500px;
1629   max-height: none;
1630}
1631span.quote-name {
1632    display: block;
1633}
1634p.quote-details {
1635    display: block;
1636}
1637.row.clearfix.about-us .column.third, .row.clearfix.about-us .about-us-home.column.two-third {
1638    max-width: calc(45rem / 2);
1639    flex: 1 0 50%;
1640}
1641.photo-signature:before {
1642    left: 0;
1643    transform: translate(10%, 20%);
1644}
1645.photo-signature img {
1646    max-width: 100%;  
1647}
1648header:before {
1649    right: 60%;
1650}
1651#container header #header_contact {
1652    margin-left: calc(50% + 1rem);
1653}
1654.timeline:before {
1655    width: 111%;
1656}
1657.timeline-design:before {
1658    left: 19%;
1659}
1660.timeline-design:after {
1661    left: 19%;
1662    width: 65%;
1663}
1664figure.boxtext:hover .quote-details {
1665    background: black;
1666}
1667figure.boxtext:hover .full-quote {
1668    transform: translateY(0);
1669    visibility: visible;
1670    opacity: 1;
1671}
1672figure.boxtext figcaption {
1673    max-height: 200px;
1674}
1675figure.boxtext:hover figcaption {
1676    max-height: 100%;
1677    padding-bottom: 3rem;
1678}
1679.row.clearfix.test {
1680    padding-bottom: 0;
1681}
1682.un22732 .embed-responsive.embed-responsive-16by9 {
1683    padding-bottom: 20%;
1684    transform: scale(1.1);
1685}
1686.row.clearfix.contact .column.third {
1687    max-width: calc(45rem / 3);
1688}
1689.column.third.indent, .column.two-third.indent {
1690    padding-left: 4rem;
1691}
1692#article_snippet > .row > .half {
1693    width: 50%;
1694}
1695#container .column.half.portfolio-image .image {
1696width: 90%;
1697}
1698.landscape, .portrait {
1699    right: 28%;
1700}
1701#container .blog-feed-container #news_feed:not(.news_article) .blog-post {
1702    flex: 1 0 30%;
1703    max-width: 30%;
1704    margin: 0.75rem
1705}
1706}
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732@media (min-width: 60rem) {
1733    #overlay-section > .third {
1734        max-width: calc(950px / 3);
1735    }    
1736
1737    #overlay-section > .two-third {
1738        max-width: calc(890px / 3 * 2);
1739    }
1740
1741    #overlay-section > .column:first-child {
1742        padding-right: 0;
1743    }
1744    #overlay-section > .column:first-child + .column {
1745        padding-left: 0;
1746    }
1747    #overlay-section .overlay-list ul {
1748        flex-flow: row wrap;
1749    }
1750    #overlay-section .overlay-list ul li {
1751        flex: 1 0 100%;
1752    }
1753   #overlay-section .overlay-list ul li[class*="overlay"] {
1754    display: none;
1755    }
1756    #overlay-section .overlay-list ul li a {
1757        padding: 1.5rem 2rem;
1758    }
1759#overlay-section .column.half {
1760    width: 80%;
1761}
1762#overlay-section .overlay-wrap {
1763   min-height: 460px;
1764}
1765.row > .half:first-child {
1766    padding-left: 0;
1767    padding-right: 1rem;
1768}
1769article .row > .half {
1770    max-width: calc(55rem / 2);
1771}
1772.other-services .column.fourth {
1773    max-width: calc(55rem / 4);
1774}
1775.row.clearfix.testimonials .column.third {
1776    max-width: calc(55rem / 3);
1777    flex: 1 0 33%;
1778}
1779figure.testimonials-container img {
1780       max-height: 400px;
1781}
1782.row.clearfix.about-us .column.third {
1783    max-width: calc(55rem / 3);
1784    flex: 1 0 33%;
1785}
1786.row.clearfix.about-us .about-us-home.column.two-third {
1787    max-width: calc(55rem / 3 * 2);
1788    flex: 1 0 66%;
1789}
1790header > .header_logo, header .company-branding > .header_logo {
1791    margin: 1rem 0;
1792}
1793header:before {
1794    right: 70%;
1795}
1796#container header #header_contact h4 {
1797    filter: invert(0);
1798}
1799#container header #header_contact {
1800    margin-left: 0;
1801}
1802#container .header_logo img {
1803    z-index: 2;
1804}
1805header:before {
1806    z-index: 2;
1807}
1808.contact-box {
1809    margin-right: 1rem;
1810}
1811.black-contact-box.column.half {
1812    background: #222;
1813    padding: 2rem;
1814    margin-bottom: 0px;
1815}
1816.logo-location {
1817    padding-bottom: 1rem;
1818}
1819.row.clearfix.contact .column.third {
1820    max-width: calc(55rem / 3);
1821}
1822article .black-contact-box.column.half:before {
1823right: 50%;
1824height: 100%;
1825}
1826article .orange-contact-box.column.half:before {
1827left: 50%;
1828height: 100%;
1829}
1830.directories {
1831    padding-top: 1rem;
1832}
1833.black-contact-box.column.half:before {
1834left: 0;
1835right: 0;
1836top: 0;
1837bottom: 0;
1838height: auto;
1839}
1840.orange-contact-box.column.half:before {
1841    left: 0%;
1842    height: 40%;
1843}
1844}
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855@media (min-width: 80rem) {
1856    #overlay-section > .third {
1857        max-width: calc(1000px / 3);
1858    }    
1859
1860    #overlay-section > .two-third {
1861        max-width: calc(1300px / 3 * 2);
1862    }
1863article .row > .half {
1864    max-width: calc(75rem / 2);
1865}
1866.other-services .column.fourth {
1867    max-width: calc(75rem / 4);
1868}
1869.row.clearfix.testimonials .column.third {
1870    max-width: calc(75rem / 3);
1871    flex: 1 0 33%;
1872}
1873.row.clearfix.about-us .column.third {
1874    max-width: calc(75rem / 3);
1875    flex: 1 0 33%;
1876}
1877.row.clearfix.about-us .about-us-home.column.two-third {
1878    max-width: calc(75rem / 3 * 2);
1879    flex: 1 0 66%;
1880}
1881header:before {
1882    right: 80%;
1883}
1884.timeline-design:before {
1885    left: 29%;
1886}
1887.timeline-design:after {
1888    width: 45%;
1889    left: 29%;
1890}
1891.row.clearfix.contact .column.third {
1892    max-width: calc(75rem / 3);
1893}
1894}
1895
1896.QA-Q {
1897width: 35%;
1898background: #ff8f00;
1899padding:1rem;
1900border-top-left-radius: 7px;
1901border-top-right-radius: 7px;
1902border-bottom-right-radius: 7px;
1903}
1904
1905.QA-A {
1906margin-top: 1rem;
1907float: right;
1908width: 75%;
1909background: lightgrey;
1910padding:1rem;
1911border-top-left-radius: 7px;
1912border-top-right-radius: 7px;
1913border-bottom-left-radius: 7px;
1914}
1915
1916.QA-Q:after {
1917content: '';
1918	position: absolute;
1919	bottom: 0;
1920	left: 0;
1921	width: 0;
1922	height: 0;
1923	border: 20px solid transparent;
1924	border-top-color: #ff8f00;
1925	border-bottom: 0;
1926	border-left: 0;
1927	margin-bottom: -20px;
1928}
1929
1930.QA-A:after {
1931content: '';
1932	position: absolute;
1933	bottom: 0;
1934	right: 0;
1935	width: 0;
1936	height: 0;
1937	border: 20px solid transparent;
1938	border-top-color: lightgrey;
1939	border-bottom: 0;
1940	border-right: 0;
1941	margin-left: -10px;
1942	margin-bottom: -20px;
1943}
1944
1945
1946.QA-Q h5 {
1947padding:0;}
1948
1949.QA-A p {
1950color: #222;
1951}
1952
1953#content_container td.heading {
1954font-weight: bold;
1955    text-transform: uppercase;
1956letter-spacing: 1px;
1957width: 20%;
1958padding-left: 1rem;
1959}
1960
1961#container td {
1962text-transform: none;
1963letter-spacing: 0;
1964font-family: 'Muli';
1965}
1966
1967#content_container tr.alt {
1968background: #f5f5f5;
1969}
1970
1971.accordion {
1972  background-color: #ff8f00;
1973  color: #444;
1974  cursor: pointer;
1975  padding: 18px;
1976  width: 100%;
1977  border: none;
1978  text-align: left;
1979  outline: none;
1980  font-size: 15px;
1981  transition: 0.4s;
1982  text-transform: uppercase;
1983    font-family: 'Muli';
1984    letter-spacing: 2px;
1985}
1986
1987.accordion.active, .accordion:hover {
1988  background-color: rgb(34 34 34); 
1989color: white;
1990}
1991
1992.panel {
1993  padding: 0 18px;
1994  display: none;
1995  background-color: white;
1996  overflow: hidden;
1997}
1998
1999.accordion h5 {
2000font-size: 18px;
2001}
2002
2003.accordion:hover h5, .accordion.active h5 {
2004color: #ff8f00;
2005}
2006
2007article h5 {
2008font-size: 18px;
2009}
2010
2011article div.column.fifth {
2012padding: 0.5rem;
2013}
2014
2015body .list {
2016display: table;
2017}
2018body .list i {
2019color: rgb(255, 177, 101);
2020margin-right: 8px;
2021}
2022
2023
2024@media (min-width: 40rem) {
2025.blog-section .blog-feed-container article .row>.half {
2026    width: 100%;
2027}
2028}
2029@media (min-width: 50rem) {
2030.blog-section .blog-feed-container article .row>.half {
2031    width: 100%;
2032}
2033}
2034@media (min-width: 60rem) {
2035.blog-section .blog-feed-container article .row>.half {
2036    width: 100%;
2037}
2038#container #nav ul li {
2039    display: inline-block;
2040    width: 220px;
2041}
2042#container #nav > li:not(.nav_placeholder) > ul {
2043    width: 440px;
2044    display: flex;
2045    flex-direction: row;
2046    flex-wrap: wrap;
2047}
2048
2049}
2050@media (min-width: 80rem) {
2051.blog-section .blog-feed-container article .row>.half {
2052    width: 50%;
2053}
2054}
2055
2056.slick-slide {
2057  pointer-events: none;
2058}
2059.slick-track .slick-center{
2060  pointer-events: inherit;
2061}
2062
2063@media (max-width: 640px){
2064#container .flatconbox{
2065  padding: 0;
2066}
2067}
2068
2069@media (max-width: 700px) {
2070body .row img.prightimage, body .row img.pmobile-sizes{
2071width: 100% !important;
2072height: 50vw !important;
2073object-fit: cover;
2074}
2075}
2076
2077body .row .prightimage {
2078    width: 40%;
2079    height: auto;
2080    float: right;
2081    margin-left: 2rem;
2082    min-width: 17rem;
2083    object-fit: contain;
2084    margin-top: 1rem;
2085    margin-bottom: 1rem;}
2086
2087.orangepoint li::marker {
2088color: rgb(255 143 0 / 70%);
2089}
2090
2091
2092
2093.blog-feed-container #news_feed ul {
2094    margin-left: 40px;
2095}
2096
2097
2098#content_container .faq-01 .content li {
2099    list-style: disc;
2100    margin-left: 35px;
2101
2102}
2103
2104body .product-content ul {
2105    border-left: 2px solid rgb(247, 142, 0);
2106}
2107
2108
2109
2110blog-section #news_feed .article_img img {
2111    height: 300px;
2112    object-fit: cover;
2113
2114
2115.blog-section .blog-feed-container #news_feed ul {
2116    padding-left: 20px;
2117}
2118
2119.area-links {
2120    display: flex;
2121    flex-wrap: wrap;
2122    justify-content: center;
2123}
2124
2125.area-links .area-link {
2126    display: inline-block;
2127    margin: 5px 10px;
2128    background: transparent;
2129    color: black;
2130    border: 3px solid rgb(255, 143, 0);
2131    padding: 0 10px 4px 10px;
2132    font-weight: 500;
2133    font-size: 16px;
2134    text-transform: uppercase;
2135    letter-spacing: 1px;
2136    text-decoration: none;
2137}
2138
2139.area-links .area-link::before {
2140    content: "\f1ff";
2141    font-family: "Ionicons";
2142    font-size: 24px;
2143    color: rgb(255, 143, 0);
2144    margin-right: 5px;
2145    text-transform: none;
2146    letter-spacing: 0;
2147}</style><link href="https://fonts.googleapis.com/css?family=Oswald:400,500&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css?family=Varela+Round&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css?family=Muli:300,400,500,800&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css?family=Work+Sans&display=swap" rel="stylesheet">
vendor: 63 bytes, line 2147
2147<script async src="https://www.googletagmanager.com/gtag/js?id=
2147AW-18293186738
vendor: 11 bytes, line 2147
2147"></script>
2147<script>window.dataLayer = window.dataLayer || [];
2148  function gtag(){dataLayer.push(arguments);}
2149  gtag('js', new Date());
2150  gtag('set', 'allow_enhanced_conversions', true);
2151  gtag('config', 'AW-18293186738');
2152  document.addEventListener('submit', function(e) {
2153    var f = e.target, em = f.querySelector('[name="email_address"]');
2154    if (em && em.value) {
2155      try { sessionStorage.setItem('user_email', em.value.trim().toLowerCase()); } catch(x) {}
2156    }
2157  });</script>
2157<script type="application/ld+json">{
2158			"@context": "http://schema.org",
2159			"@type": "LocalBusiness",
2160			"name" : "Trimble Architects",
2161						"address" : {
2162			"@type" : "PostalAddress",
2163			"streetAddress" : "36 York Street, Twickenham",
2164			"addressRegion" : "Middlesex",
2165			"addressCountry" : "United Kingdom",
2166			"postalCode" : "TW1 3LJ"
2167		},
2168			"logo": "https://www.easysites.uk/filestore/editor/2115136394/500tezrtrimbletextblackartboard1.png",
2169			"image": "https://www.easysites.uk/filestore/editor/2115136394/trimblepic.jpg",
2170			"url" : "https://www.trimblearchitect.uk/blog"
2171			
2172		,"openingHoursSpecification": 
2173		[{
2174				"@type": "OpeningHoursSpecification",
2175				"dayOfWeek": [
2176					"Monday"
2177				],
2178				"opens": "9:00",
2179				"closes": "17:00"
2180			},{
2181				"@type": "OpeningHoursSpecification",
2182				"dayOfWeek": [
2183					"Tuesday"
2184				],
2185				"opens": "9:00",
2186				"closes": "17:00"
2187			},{
2188				"@type": "OpeningHoursSpecification",
2189				"dayOfWeek": [
2190					"Wednesday"
2191				],
2192				"opens": "9:00",
2193				"closes": "17:00"
2194			},{
2195				"@type": "OpeningHoursSpecification",
2196				"dayOfWeek": [
2197					"Thursday"
2198				],
2199				"opens": "9:00",
2200				"closes": "17:00"
2201			},{
2202				"@type": "OpeningHoursSpecification",
2203				"dayOfWeek": [
2204					"Friday"
2205				],
2206				"opens": "9:00",
2207				"closes": "17:00"
2208			}]		}</script>
2208</head><body class="un40117 body-index blog-section"><div id="container"><div id="header_can"><header><a href="/" class="header_logo" title="Home"><img alt="Trimble Architects" src="https://www.easysites.uk/filestore/editor/2115136394/500tezrtrimbletextblackartboard1.png"> </a><h1>Trimble Architects</h1><h3>RIBA Architectural Services</h3><div id="header_contact"><h4 class="mobile"><span>Mobile Number:</span><strong><a class="phone-call" href="tel:07785711635">07785711635</a></strong></h4></div></header></div><div id="navigation_can"><div id="navigation"><ul id="nav"><li><a class="btn_" title="Home" target="_self" href="/">Home</a></li><li><a title="About Us" class="nav_drop btn_" target="_self" href="//www.trimblearchitect.uk/local-architect-firm">About Us</a><ul><li><a class="btn_" title="FAQ" target="_self" href="//www.trimblearchitect.uk/frequently-asked-questions">FAQ</a></li><li><a class="btn_" title="Projects" target="_self" href="https://www.trimblearchitect.uk/blog/category/projects">Projects</a></li><li><a class="btn_" title="Articles" target="_self" href="https://www.trimblearchitect.uk/blog/category/articles">Articles</a></li><li><a class="btn_" title="Areas" target="_self" href="//www.trimblearchitect.uk/local-london-architects">Areas</a></li></ul></li><li><a title="Our Services" class="nav_drop btn_" target="_self" href="//www.trimblearchitect.uk/architectural-services">Our Services</a><ul><li><a class="btn_" title="Commercial Property Development" target="_self" href="//www.trimblearchitect.uk/commercial-property-development">Commercial Property Development</a></li><li><a class="btn_" title="Construction Risk Assessment" target="_self" href="//www.trimblearchitect.uk/construction-risk-assessment">Construction Risk Assessment</a></li><li><a class="btn_" title="Structural Surveys" target="_self" href="//www.trimblearchitect.uk/structural-surveyor">Structural Surveys</a></li><li><a class="btn_" title="Party Wall Agreement Surveyor" target="_self" href="//www.trimblearchitect.uk/party-wall-agreements">Party Wall Agreement Surveyor</a></li><li><a class="btn_" title="Project Management" target="_self" href="//www.trimblearchitect.uk/project-management">Project Management</a></li><li><a class="btn_" title="Disabled Adaptations" target="_self" href="//www.trimblearchitect.uk/disabled-adaptations">Disabled Adaptations</a></li><li><a class="btn_" title="Refurbishment" target="_self" href="//www.trimblearchitect.uk/refurbishment-architect">Refurbishment</a></li><li><a class="btn_" title="New Build House" target="_self" href="//www.trimblearchitect.uk/new-build-house-architect">New Build House</a></li><li><a class="btn_" title="Property Conversions" target="_self" href="//www.trimblearchitect.uk/property-conversions-architect">Property Conversions</a></li><li><a class="btn_" title="Extensions" target="_self" href="//www.trimblearchitect.uk/extensions-architect">Extensions</a></li><li><a class="btn_" title="Loft Conversions" target="_self" href="//www.trimblearchitect.uk/loft-conversions-architect">Loft Conversions</a></li><li><a class="btn_" title="Architectural Drawings" target="_self" href="//www.trimblearchitect.uk/architectural-drawings">Architectural Drawings</a></li><li><a class="btn_" title="Residential Extensions" target="_self" href="//www.trimblearchitect.uk/residential-extensions">Residential Extensions</a></li><li><a class="btn_" title="Single Storey Extension" target="_self" href="//www.trimblearchitect.uk/single-storey-extension">Single Storey Extension</a></li><li><a class="btn_" title="Wrap Around Extension" target="_self" href="//www.trimblearchitect.uk/wrap-around-extension">Wrap Around Extension</a></li><li><a class="btn_" title="Flat Conversions" target="_self" href="//www.trimblearchitect.uk/flat-conversions">Flat Conversions</a></li><li><a class="btn_" title="Building Regulations Drawings" target="_self" href="//www.trimblearchitect.uk/building-regulations-drawings">Building Regulations Drawings</a></li><li><a class="btn_" title="Change of Use Extensions" target="_self" href="//www.trimblearchitect.uk/change-of-use-extensions">Change of Use Extensions</a></li><li><a class="btn_" title="Kitchen Extensions" target="_self" href="//www.trimblear
2208chitect.uk/kitchen-extensions">Kitchen Extensions</a></li><li><a class="btn_" title="Double Storey Extensions" target="_self" href="//www.trimblearchitect.uk/double-storey-extensions">Double Storey Extensions</a></li><li><a class="btn_" title="Basement Conversions" target="_self" href="//www.trimblearchitect.uk/basement-conversions">Basement Conversions</a></li><li><a class="btn_" title="Residential Architect" target="_self" href="//www.trimblearchitect.uk/residential-architect">Residential Architect</a></li></ul></li><li class="nav_placeholder"><a title="Planning Permission" class="nav_drop btn_">Planning Permission</a><ul><li><a class="btn_" title="Planning Permission Consultants" target="_self" href="//www.trimblearchitect.uk/planning-permission-advice">Planning Permission Consultants</a></li><li><a class="btn_" title="Listed Buildings" target="_self" href="//www.trimblearchitect.uk/listed-buildings-planning-permission">Listed Buildings</a></li></ul></li><li data-contact><a class="btn_" title="Contact" target="_self" href="//www.trimblearchitect.uk/contact-us">Contact</a></li></ul></div></div><div id="no-banner"><div class="nobanner"></div></div><div id="content_can"><div id="content_container" data-s="" data-g="none"><div class="blog-feed-container"><aside><div class="sidebar_container sidebar_search"><div class="sidebar_heading"><h2>Search Posts</h2></div><div class="sidebar_content"><p>Please enter a query below to search through the current blog posts.</p><form action="https://www.easysites.uk/websites/blog/search/blog_search.php" method="post" enctype="multipart/form-data"><input type="hidden" name="website_address" value="trimblearchitect.uk"> <input type="hidden" name="return_address" value="//www.trimblearchitect.uk/blog/category/projects"> <input name="search_post" style="width:95%;" type="text" placeholder="Search..." id="search_post" value="" pattern=".{3,}" required title="Please enter a search term with more than 3 characters"></p><input type="submit" name="Search" value="Search"/> </form></div></div><div class="sidebar_container sidebar_links"><div class="sidebar_heading"><h2>Categories</h2></div><div class="sidebar_content"><ul><li><a href="//www.trimblearchitect.uk/blog/category/architects" title="Architects">Architects</a></li><li><a href="//www.trimblearchitect.uk/blog/category/articles" title="Articles">Articles</a></li><li><a href="//www.trimblearchitect.uk/blog/category/commercial-extentions" title="Commercial Extentions">Commercial Extentions</a></li><li><a href="//www.trimblearchitect.uk/blog/category/domestic-extensions" title="Domestic Extensions">Domestic Extensions</a></li><li><a href="//www.trimblearchitect.uk/blog/category/future-projects" title="Future Projects">Future Projects</a></li><li><a href="//www.trimblearchitect.uk/blog/category/listed-buildings" title="Listed Buildings">Listed Buildings</a></li><li><a href="//www.trimblearchitect.uk/blog/category/misc-projects" title="Misc Projects">Misc Projects</a></li><li><a href="//www.trimblearchitect.uk/blog/category/new-build-houses" title="New Build Houses">New Build Houses</a></li><li><a class="selected-cat" href="//www.trimblearchitect.uk/blog/category/projects" title="Projects">Projects</a></li><li><a href="//www.trimblearchitect.uk/blog/category/property-conversions" title="Property Conversions">Property Conversions</a></li><li><a href="//www.trimblearchitect.uk/blog/category/total-refurbishment" title="Total Refurbishment">Total Refurbishment</a></li></ul></div></div></aside><article><div id="news_feed"><div class="blog-post"><h2>Extension to Leisure Centre in Hounslow</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-11-26T16:44:15+00:00">26-11-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/hcc-3d.jpg" title="Extension to Leisure Centre in Hounslow" alt="Extension to Leisure Centre in Hounslow" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A planned project for an extension to an existing Leisure Centre in Hounslow Project future Projects Location Hounslow Budget - Other future projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-11-26T16:44:15+00:00">26-11-2020</time> <a href="/extension-to-leisure-centre-in-hounslow" title="Extension to Leisure Centre in Hounslow">Read More</a></p></div></div><div class="blog-post"><h2>An Office Extension in Twickenham</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-11-26T16:41:28+00:00">26-11-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/thegreen-3d.jpg" title="An Office Extension in Twickenham" alt="An Office Extension in Twickenham" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A planned project for an office extension in Twickenham, Hounslow Project future Projects Location Twickenham, hounslow Budget - Other future projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-11-26T16:41:28+00:00">26-11-2020</time> <a href="/an-office-extension-in-twickenham" title="An Office Extension in Twickenham">Read More</a></p></div></div><div class="blog-post"><h2>A Car Dealership in Maidenhead</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-11-26T16:32:55+00:00">26-11-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/landrover-maidenhead3d.jpg" title="A Car Dealership in Maidenhead" alt="A Car Dealership in Maidenhead" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A planned project for a Land Rover Dealership in Maidenhead Project future Projects Location Maidenhead, Merseyside Budget - Other future projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-11-26T16:32:55+00:00">26-11-2020</time> <a href="/a-car-dealership-in-maidenhead" title="A Car Dealership in Maidenhead">Read More</a></p></div></div><div class="blog-post"><h2>A Community-Religious Centre in Southall</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-11-26T16:28:00+00:00">26-11-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/assami-3d.jpg" title="A Community-Religious Centre in Southall" alt="A Community-Religious Centre in Southall" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A planned project for a community/religious centre. Project future projects Location southall, ealing Budget - Other future projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-11-26T16:28:00+00:00">26-11-2020</time> <a href="/a-community-religious-centre-in-southall" title="A Community-Religious Centre in Southall">Read More</a></p></div></div><div class="blog-post"><h2>A Loft Conversion in Teddington</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-11-26T16:15:52+00:00">26-11-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/A Loft Conversion in Teddington.jpg" title="A Loft Conversion in Teddington" alt="A Loft Conversion in Teddington" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Loft conversion on detached residential property to add living space. Project Loft conversion Location Teddington, Richmond Upon Thames Budget &pound;60,000 Other Loft Conversion Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-11-26T16:15:52+00:00">26-11-2020</time> <a href="/a-loft-conversion-in-teddington" title="A Loft Conversion in Teddington">Read More</a></p></div></div><div class="blog-post"><h2>A Private House in Twickenham</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-11-26T16:01:58+00:00">26-11-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/20191216_083919.jpg" title="A Private House in Twickenham" alt="A Private House in Twickenham" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Extension on back of the property to add space for a new openspace kitchen and dining area. Project Domestic Extension Location Twickenham, Hounslow Budget &pound;60,000 Other domestic Extension Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-11-26T16:01:58+00:00">26-11-2020</time> <a href="/a-private-house-in-twickenham" title="A Private House in Twickenham">Read More</a></p></div></div><div class="blog-post"><h2>A Private House in Isleworth</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-11-26T15:52:05+00:00">26-11-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/20200109_
2208094237.jpg" title="A Private House in Isleworth" alt="A Private House in Isleworth" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Extension and alteration of residential property to install new features such as marble stone flooring and stairs. Project Extension/Alteration Location Isleworth, Hounslow Budget &pound;60,000 Other Domestic Extension Projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-11-26T15:52:05+00:00">26-11-2020</time> <a href="/a-private-house-in-isleworth" title="A Private House in Isleworth">Read More</a></p></div></div><div class="blog-post"><h2>New Build in Hounslow</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:38:09+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/hounslow_
2208new_build.jpeg" title="New Build in Hounslow" alt="New Build in Hounslow" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>3 new build town houses Project new build Location hounslow, london Budget &pound;300,000 Other&nbsp;new build projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:38:09+00:00">11-03-2020</time> <a href="/new-build-in-hounslow" title="New Build in Hounslow">Read More</a></p></div></div><div class="blog-post"><h2>Urban Infill in Holloway</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:37:45+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/tavistockterrace.jpg" title="Urban Infill in Holloway" alt="Urban Infill in Holloway" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A new house which is sandwiched into a gap in a Georgian terrace Project new build Location holloway, north london Budget &pound;125,000 Other&nbsp;new build projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:37:45+00:00">11-03-2020</time> <a href="/urban-infill-in-holloway" title="Urban Infill in Holloway">Read More</a></p></div></div><div class="blog-post"><h2>New Build in Winchester</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:37:33+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/winchester_new_building.jpg" title="New Build in Winchester" alt="New Build in Winchester" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Four houses for the local Housing Association Project new build Location winchester, hampshire Budget &pound;400,000 Other&nbsp;new build projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:37:33+00:00">11-03-2020</time> <a href="/new-build-in-winchester" title="New Build in Winchester">Read More</a></p></div></div><div class="blog-post"><h2>New Build in Weybridge</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:35:37+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/weybridge_new_build.jpg" title="New Build in Weybridge" alt="New Build in Weybridge" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Two new developer houses Project new build Location weybridge, surrey Budget &pound;500,000 Other&nbsp;new build projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:35:37+00:00">11-03-2020</time> <a href="/new-build-in-weybridge" title="New Build in Weybridge">Read More</a></p></div></div><div class="blog-post"><h2>New Build in Southgate</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:35:07+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/southgatenewbuild.jpg" title="New Build in Southgate" alt="New Build in Southgate" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A very tight urban site that is half sunk into the ground Project new build Location southgate, north london Budget n/a Other&nbsp;new build projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:35:07+00:00">11-03-2020</time> <a href="/new-build-in-southgate" title="New Build in Southgate">Read More</a></p></div></div><div class="blog-post"><h2>New Build in Islington</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:34:42+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/newbuildislingtob.jpg" title="New Build in Islington" alt="New Build in Islington" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A very tight urban site that is half sunk into the ground Project new build Location islington, north london Budget &pound;100,000 Other&nbsp;new build projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:34:42+00:00">11-03-2020</time> <a href="/new-build-in-islington" title="New Build in Islington">Read More</a></p></div></div><div class="blog-post"><h2>Property Conversion in Thirsk</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:33:20+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/thirskpropertyconversion.jpg" title="Property Conversion in Thirsk" alt="Property Conversion in Thirsk" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>An old malting building converted to a furniture factory and showroom Project property conversion Location thirsk, north yorkshire Budget n/a Other&nbsp;property conversion Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:33:20+00:00">11-03-2020</time> <a href="/property-conversion-in-thirsk" title="Property Conversion in Thirsk">Read More</a></p></div></div><div class="blog-post"><h2>Property Conversion in Finsbury Park</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:33:04+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/finsburyparkrdpropertyconversion.jpg" title="Property Conversion in Finsbury Park" alt="Property Conversion in Finsbury Park" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A four storey house converted to three flats with rear extension Project property conversion Location finsbury park, london Budget &pound;125,000 Other&nbsp;property conversion Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:33:04+00:00">11-03-2020</time> <a href="/property-conversion-in-finsbury-park" title="Property Conversion in Finsbury Park">Read More</a></p></div></div><div class="blog-post"><h2>Property Conversion in Cannonbury</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:32:38+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/sothebyrdcannonburyproperty.jpg" title="Property Conversion in Cannonbury" alt="Property Conversion in Cannonbury" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A four storey house in North London converted into two flats Project property conversion Location cannonbury, north london Budget &pound;75,000 Other&nbsp;property conversion Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:32:38+00:00">11-03-2020</time> <a href="/property-conversion-in-cannonbury" title="Property Conversion in Cannonbury">Read More</a></p></div></div><div class="blog-post"><h2>Property Conversion London City Border</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:31:48+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/cityborders.jpg" title="Property Conversion London City Border" alt="Property Conversion London City Border" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A conversion of a four storey property to two separate flats Project property conversion Location London city border Budget &pound;75,000 Other&nbsp;property conversion Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:31:48+00:00">11-03-2020</time> <a href="/property-conversion-london-city-border" title="Property Conversion London City Border">Read More</a></p></div></div><div class="blog-post"><h2>Rebuild Existing Lifeboat House in Filey</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:30:43+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/lifeboathouse.jpg" title="Rebuild Existing Lifeboat House in Filey" alt="Rebuild Existing Lifeboat House in Filey" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>
2208Re-building of an existing Lifeboat House Project MISCELLANEOUS Location Filey, north yorkshire Budget &pound;500,000 Other&nbsp;miscellaneous projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:30:43+00:00">11-03-2020</time> <a href="/rebuild-existing-lifeboat-house-in-filey" title="Rebuild Existing Lifeboat House in Filey">Read More</a></p></div></div><div class="blog-post"><h2>Sikh Temple Refurb in Birmingham</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:30:26+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/sikhtemplemisc.jpg" title="Sikh Temple Refurb in Birmingham" alt="Sikh Temple Refurb in Birmingham" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A refurbishment of a sikh temple which was given a new marble and granite facing&nbsp; Project MISCELLANEOUS Location Saltey, birmingham Budget n/a Other&nbsp;miscellaneous projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:30:26+00:00">11-03-2020</time> <a href="/sikh-temple-refurb-in-birmingham" title="Sikh Temple Refurb in Birmingham">Read More</a></p></div></div><div class="blog-post"><h2>Hotel Refurb in Dublin</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:30:05+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/dublin_worklistedbuilding.jpg" title="Hotel Refurb in Dublin" alt="Hotel Refurb in Dublin" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Stone applied to bedrooms and public areas in a new 260 room hotel Project miscellaneous Location dublin, ireland Budget n/a Other&nbsp;miscellaneous projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:30:05+00:00">11-03-2020</time> <a href="/hotel-refurb-in-dublin" title="Hotel Refurb in Dublin">Read More</a></p></div></div><div class="blog-post"><h2>Office Block Refurbishment</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:29:52+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/officebuildingmisccoventgarden.jpg" title="Office Block Refurbishment" alt="Office Block Refurbishment" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A refurbishment of a 1960s office block with a new entrance courtyard Project MISCELLANEOUS Location covent garden,london Budget &pound;100,000 Other&nbsp;miscellaneous projects Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:29:52+00:00">11-03-2020</time> <a href="/office-block-refurbishment" title="Office Block Refurbishment">Read More</a></p></div></div><div class="blog-post"><h2>Listed Building at Gate House Richmond</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:28:46+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/gate_houselistedbuilding.jpeg" title="Listed Building at Gate House Richmond" alt="Listed Building at Gate House Richmond" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Complete refurbishment of one half of the Gate House to Ham House Project listed building Location Gate House, richmond Budget &pound;60,000 Other listed buildings Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:28:46+00:00">11-03-2020</time> <a href="/listed-building-at-gate-house-richmond" title="Listed Building at Gate House Richmond">Read More</a></p></div></div><div class="blog-post"><h2>Listed Building in Dover</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:28:28+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/dover_listed building20200313101420.jpeg" title="Listed Building in Dover" alt="Listed Building in Dover" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Refurb and conversion facing the harbour &amp; beneath the iconic Cliffs of Dover Project listed building Location dover Budget &pound;200,000 Other listed buildings Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:28:28+00:00">11-03-2020</time> <a href="/listed-building-in-dover" title="Listed Building in Dover">Read More</a></p></div></div><div class="blog-post"><h2>Listed Building in Kendal</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:28:14+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/kendallistedbuildin.jpg" title="Listed Building in Kendal" alt="Listed Building in Kendal" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Restoration of a [Grade II] house in the Lake District Project listed building Location kendal, lake district Budget n/a Other listed buildings Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:28:14+00:00">11-03-2020</time> <a href="/listed-building-in-kendal" title="Listed Building in Kendal">Read More</a></p></div></div><div class="blog-post"><h2>Listed Building in Chippenham</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:27:59+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/listedbuildinggreencottage.jpg" title="Listed Building in Chippenham" alt="Listed Building in Chippenham" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Restoration of a Grade II arts and crafts house and barn conversion in Wiltshire Project Listed building Location chippenham Budget n/A Other listed buildings Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:27:59+00:00">11-03-2020</time> <a href="/listed-building-in-chippenham" title="Listed Building in Chippenham">Read More</a></p></div></div><div class="blog-post"><h2>Listed Building in Richmond</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:27:46+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/listed_new_richmond.jpg" title="Listed Building in Richmond" alt="Listed Building in Richmond" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Alterations to former Church Hall [Grade II] now office space Project Listed building Location richmond, London Budget n/A Other listed buildings Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:27:46+00:00">11-03-2020</time> <a href="/listed-building-in-richmond" title="Listed Building in Richmond">Read More</a></p></div></div><div class="blog-post"><h2>Commercial Extension in Fulham</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:27:16+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/fulhamhighst.jpg" title="Commercial Extension in Fulham" alt="Commercial Extension in Fulham" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>An extension to an existing 1950s office block Project commercial Extension Location Fulham, London Budget &pound;150,000 Other commercial Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:27:16+00:00">11-03-2020</time> <a href="/commercial-extension-in-fulham" title="Commercial Extension in Fulham">Read More</a></p></div></div><div class="blog-post"><h2>Commercial Extension in Kentish Town</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:25:58+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/kentish_towncommericial.jpg" title="Commercial Extension in Kentish Town" alt="Commercial Extension in Kentish Town" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A office extension on industrial estate Project commercial Extension Location kentish town, London Budget &pound;75,000 Other commercial Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:25:58+00:00">11-03-2020</time> <a href="/commercial-extension-in-kentish-town" title="Commercial Extension in Kentish Town">Read More</a></p></div></div><div class="blog-post"><h2>Total Refurbishment in Weybridge</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:25:25+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/refurbweybridge.jpg" title="Total Refurbishment in Weybridge" alt="Total Refurbishment in Weybridge" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A complete makeover &amp; extension of 1930's Arts &amp; Craft House Project Total refurbishment Location weybridge, London Budget &pound;400,000 Other refurbishments Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:25:25+00:00">11-03-2020</time> <a href="/total-refurbishment-in-weybridge" title="Total Refurbishment in Weybridge">Read More</a></p></div></div><div class="blog-post"><h2>Total Refurbishment in Islington</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:25:03+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/islingtonrefurb.jpg" title="Total Refurbishment in Islington" alt="Total Refurbishment in Islington" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A complete make-over of a two floor maisonette Project total refurbishment Location islington, london Budget &pound;75,000 Other refurbishments Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:25:03+00:00">11-03-2020</time> <a href="/total-refurbishment-in-islington" title="Total Refurbishment in Islington">Read More</a></p></div></div><div class="blog-post"><h2>Total Refurbishment in Great Saughton</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:24:42+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/refurbgtstaughton.jpg" title="Total Refurbishment in Great Saughton" alt="Total Refurbishment in Great Saughton" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>The conversion of a Victorian school in Cambridgeshire to a family home. Project total refurbishment Location great saughton, cambridgeshire Budget &pound;100,000 Other refurbishments Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:24:42+00:00">11-03-2020</time> <a href="/total-refurbishment-in-great-saughton" title="Total Refurbishment in Great Saughton">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Hillingdon</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:23:10+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domesticextensionhillingdon.jpg" title="Domestic Extension in Hillingdon" alt="Domestic Extension in Hillingdon" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Side extension to a Victoria Villa Project Domestic Extension Location Finchley, North London Budget &pound;100,000 Other Domestic Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:23:10+00:00">11-03-2020</time> <a href="/domestic-extension-in-hillingdon" title="Domestic Extension in Hillingdon">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Strawberry Hill</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:22:26+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domesticextensionstrawberry-hill-dom-ext.jpg" title="Domestic Extension in Strawberry Hill" alt="Domestic Extension in Strawberry Hill" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A side extension of a 1930 house. Project Domestic Extension Location strawberry hill, twickenham Budget &pound;50,000 Other Domestic Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:22:26+00:00">11-03
2208-2020</time> <a href="/domestic-extension-in-strawberry-hill" title="Domestic Extension in Strawberry Hill">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension and Refurb</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:22:02+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domesticextensionandrefurb.jpg" title="Domestic Extension and Refurb" alt="Domestic Extension and Refurb" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>An end terrace extension and refurb Project Domestic Extension Location twickenham, London Budget &pound;250,000 Other Domestic Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:22:02+00:00">11-03-2020</time> <a href="/domestic-extension-and-refurb" title="Domestic Extension and Refurb">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Chiswick</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:21:33+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domesticextensionchiswick.jpeg" title="Domestic Extension in Chiswick" alt="Domestic Extension in Chiswick" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>House refurbishment with a kitchen, dining room extension in a Conservation area. Project Domestic Extension Location bedford park, chiswick Budget &pound;200,000 Other Domestic Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:21:33+00:00">11-03-2020</time> <a href="/domestic-extension-in-chiswick" title="Domestic Extension in Chiswick">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Thames Ditton</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:21:16+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domesticextensionthames.jpeg" title="Domestic Extension in Thames Ditton" alt="Domestic Extension in Thames Ditton" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>"Extension added to the rear of the house to add space for a dining table within the kitchen" Project Domestic Extension Location thames ditton, London Budget &pound;70,000 Other Domestic Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:21:16+00:00">11-03-2020</time> <a href="/domestic-extension-in-thames-ditton" title="Domestic Extension in Thames Ditton">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Twickenham</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:21:05+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/twickenham-extention.jpg" title="Domestic Extension in Twickenham" alt="Domestic Extension in Twickenham" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>An extension built on the back of a victoria terrace to increase space for a dining room Project Domestic Extension Location Twickenham, London Budget &pound;25,000 Other Domestic Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:21:05+00:00">11-03-2020</time> <a href="/domestic-extension-in-twickenham" title="Domestic Extension in Twickenham">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Teddington</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:20:55+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domestic-teddington-small.jpg" title="Domestic Extension in Teddington" alt="Domestic Extension in Teddington" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>Rear extension to arts &amp; crafts house Project Domestic Extension Location Teddington, London Budget &pound;90,000 Other Domestic Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:20:55+00:00">11-03-2020</time> <a href="/domestic-extension-in-teddington" title="Domestic Extension in Teddington">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Guildford</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:20:45+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domesticextensionguildford.jpg" title="Domestic Extension in Guildford" alt="Domestic Extension in Guildford" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A extension to a 1930's Arts and Crafts house&nbsp; Project Domestic Extension Location guildford, London Budget &pound;200,000 Other Domestic Extensions Similar Project? Get In Touch</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:20:45+00:00">11-03-2020</time> <a href="/domestic-extension-in-guildford" title="Domestic Extension in Guildford">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Kingston</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:20:06+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domesticextensioninkingston.jpg" title="Domestic Extension in Kingston" alt="Domestic Extension in Kingston" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A garage and dining room extension to the side of the house.&nbsp; Project Domestic Extension Location KINGSTON, London Budget &pound;600,000 Other Domestic Extensions Similar Project? Get In Touch ...</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:20:06+00:00">11-03-2020</time> <a href="/domestic-extension-in-kingston" title="Domestic Extension in Kingston">Read More</a></p></div></div><div class="blog-post"><h2>Domestic Extension in Finchley</h2><div id='info_panel'><ul><li><strong>Posted by:</strong></li><li>Admin</li><li><strong>Tags:</strong></li><li></li><li><strong>Posted date:</strong></li><li><time datetime="2020-03-11T09:18:08+00:00">11-03-2020</time></li></ul></div><div class="article_img"><img src="https://www.easysites.uk/filestore/editor/2115136394/Blog Images/domesticextensioninfinchley.jpg" title="Domestic Extension in Finchley" alt="Domestic Extension in Finchley" onerror="this.parentNode.className='article-noimage';this.style.display='none';"></div><div id="article_snippet"><p>A dining room extension at the back of the house which gives more room for living space Project Domestic Extension Location Finchley, North London Budget &pound;25,000 Other Domestic Extensions Similar Project? Get In Touch ...</p></div><div id="more_information"><p><strong>Posted by:</strong>Admin<strong> on:</strong><time datetime="2020-03-11T09:18:08+00:00">11-03-2020</time> <a href="/domestic-extension-in-finchley" title="Domestic Extension in Finchley">Read More</a></p></div></div></div></div></article></div></div></div><div id="footer_can"><footer><div id="footer_links"><ul><li><a class="btn_" title="Home" target="_self" href="/">Home</a></li><li><a class="btn_" title="FAQ" target="_self" href="//www.trimblear
2208chitect.uk/frequently-asked-questions">FAQ</a></li><li><a class="btn_" title="Projects" target="_self" href="https://www.trimblearchitect.uk/blog/category/projects">Projects</a></li><li><a class="btn_" title="Articles" target="_self" href="https://www.trimblearchitect.uk/blog/category/articles">Articles</a></li><li><a class="btn_" title="Areas" target="_self" href="//www.trimblearchitect.uk/local-london-architects">Areas</a></li><li><a class="btn_" title="Commercial Property Development" target="_self" href="//www.trimblearchitect.uk/commercial-property-development">Commercial Property Development</a></li><li><a class="btn_" title="Construction Risk Assessment" target="_self" href="//www.trimblearchitect.uk/construction-risk-assessment">Construction Risk Assessment</a></li><li><a class="btn_" title="Structural Surveys" target="_self" href="//www.trimblearchitect.uk/structural-surveyor">Structural Surveys</a></li><li><a class="btn_" title="Party Wall Agreement Surveyor" target="_self" href="//www.trimblearchitect.uk/party-wall-agreements">Party Wall Agreement Surveyor</a></li><li><a class="btn_" title="Project Management" target="_self" href="//www.trimblearchitect.uk/project-management">Project Management</a></li><li><a class="btn_" title="Disabled Adaptations" target="_self" href="//www.trimblearchitect.uk/disabled-adaptations">Disabled Adaptations</a></li><li><a class="btn_" title="Refurbishment" target="_self" href="//www.trimblearchitect.uk/refurbishment-architect">Refurbishment</a></li><li><a class="btn_" title="New Build House" target="_self" href="//www.trimblearchitect.uk/new-build-house-architect">New Build House</a></li><li><a class="btn_" title="Property Conversions" target="_self" href="//www.trimblearchitect.uk/property-conversions-architect">Property Conversions</a></li><li><a class="btn_" title="Extensions" target="_self" href="//www.trimblearchitect.uk/extensions-architect">Extensions</a></li><li><a class="btn_" title="Loft Conversions" target="_self" href="//www.trimblearchitect.uk/loft-conversions-architect">Loft Conversions</a></li><li><a class="btn_" title="Architectural Drawings" target="_self" href="//www.trimblearchitect.uk/architectural-drawings">Architectural Drawings</a></li><li><a class="btn_" title="Residential Extensions" target="_self" href="//www.trimblearchitect.uk/residential-extensions">Residential Extensions</a></li><li><a class="btn_" title="Single Storey Extension" target="_self" href="//www.trimblearchitect.uk/single-storey-extension">Single Storey Extension</a></li><li><a class="btn_" title="Wrap Around Extension" target="_self" href="//www.trimblearchitect.uk/wrap-around-extension">Wrap Around Extension</a></li><li><a class="btn_" title="Flat Conversions" target="_self" href="//www.trimblearchitect.uk/flat-conversions">Flat Conversions</a></li><li><a class="btn_" title="Building Regulations Drawings" target="_self" href="//www.trimblearchitect.uk/building-regulations-drawings">Building Regulations Drawings</a></li><li><a class="btn_" title="Change of Use Extensions" target="_self" href="//www.trimblearchitect.uk/change-of-use-extensions">Change of Use Extensions</a></li><li><a class="btn_" title="Kitchen Extensions" target="_self" href="//www.trimblearchitect.uk/kitchen-extensions">Kitchen Extensions</a></li><li><a class="btn_" title="Double Storey Extensions" target="_self" href="//www.trimblearchitect.uk/double-storey-extensions">Double Storey Extensions</a></li><li><a class="btn_" title="Basement Conversions" target="_self" href="//www.trimblearchitect.uk/basement-conversions">Basement Conversions</a></li><li><a class="btn_" title="Residential Architect" target="_self" href="//www.trimblearchitect.uk/residential-architect">Residential Architect</a></li><li><a class="btn_" title="Planning Permission Consultants" target="_self" href="//www.trimblearchitect.uk/planning-permission-advice">Planning Permission Consultants</a></li><li><a class="btn_" title="Listed Buildings" target="_self" href="//www.trimblearchitect.uk/listed-buildings-planning-permission">Listed Buildings</a></li><li><a class="btn_" title="Contact" target="_self" href="//www.trimblear
2208chitect.uk/contact-us">Contact</a></li><li><a href="/privacy-policy" title="Privacy Policy">Privacy Policy</a></li><li><a href="/cookie-policy" title="Cookie Policy">Cookie Policy</a></li><li><a href="/terms-and-conditions" title="Terms and Conditions">Terms and Conditions</a></li><li><a href="/sitemap" title="sitemap">Sitemap</a></li></ul></div><div id="copy"><p><span class="copyright">Copyright &copy; 2026</span><span class="company"> Trimble Architects</span></p></div></footer></div></div>
2208<script>var responsiveNav = (function (E, y) {
2209					var K = !!E.getComputedStyle;
2210					if (!E.getComputedStyle) {
2211						E.getComputedStyle = function (a) {
2212							this.el = a;
2213							this.getPropertyValue = function (b) {
2214								var c = /(\-([a-z]){1})/g;
2215								if (b === "float") {
2216									b = "styleFloat"
2217								}
2218								if (c.test(b)) {
2219									b = b.replace(c, function () {
2220										return arguments[2].toUpperCase()
2221									})
2222								}
2223								return a.currentStyle[b] ? a.currentStyle[b] : null
2224							};
2225							return this
2226						}
2227					}
2228					var F, A, H, J = y.documentElement,
2229						I = y.getElementsByTagName("head")[0],
2230						t = y.createElement("style"),
2231						u = false,
2232						x = function (b, d, c, e) {
2233							if ("addEventListener" in b) {
2234								try {
2235									b.addEventListener(d, c, e)
2236								} catch (a) {
2237									if (typeof c === "object" && c.handleEvent) {
2238										b.addEventListener(d, function (f) {
2239											c.handleEvent.call(c, f)
2240										}, e)
2241									} else {
2242										throw a
2243									}
2244								}
2245							} else {
2246								if ("attachEvent" in b) {
2247									if (typeof c === "object" && c.handleEvent) {
2248										b.attachEvent("on" + d, function () {
2249											c.handleEvent.call(c)
2250										})
2251									} else {
2252										b.attachEvent("on" + d, c)
2253									}
2254								}
2255							}
2256						},
2257						w = function (b, d, c, e) {
2258							if ("removeEventListener" in b) {
2259								try {
2260									b.removeEventListener(d, c, e)
2261								} catch (a) {
2262									if (typeof c === "object" && c.handleEvent) {
2263										b.removeEventListener(d, function (f) {
2264											c.handleEvent.call(c, f)
2265										}, e)
2266									} else {
2267										throw a
2268									}
2269								}
2270							} else {
2271								if ("detachEvent" in b) {
2272									if (typeof c === "object" && c.handleEvent) {
2273										b.detachEvent("on" + d, function () {
2274											c.handleEvent.call(c)
2275										})
2276									} else {
2277										b.detachEvent("on" + d, c)
2278									}
2279								}
2280							}
2281						},
2282						G = function (a) {
2283							var b = a.firstChild;
2284							while (b !== null && b.nodeType !== 1) {
2285								b = b.nextSibling
2286							}
2287							return b
2288						},
2289						v = function (a, c) {
2290							for (var b in c) {
2291								a.setAttribute(b, c[b])
2292							}
2293						},
2294						C = function (a, b) {
2295							a.className += " " + b;
2296							a.className = a.className.replace(/(^\s*)|(\s*$)/g, "")
2297						},
2298						z = function (a, c) {
2299							var b = new RegExp("(\\s|^)" + c + "(\\s|$)");
2300							a.className = a.className.replace(b, " ").replace(/(^\s*)|(\s*$)/g, "")
2301						},
2302						B = function (a, c) {
2303							var b;
2304							this.options = {
2305								animate: true,
2306								transition: 400,
2307								label: "Navigation",
2308								insert: "after",
2309								customToggle: "",
2310								openPos: "relative",
2311								jsClass: "js",
2312								init: function () { },
2313								open: function () { },
2314								close: function () { }
2315							};
2316							for (b in c) {
2317								this.options[b] = c[b]
2318							}
2319							C(J, this.options.jsClass);
2320							this.wrapperEl = a.replace("#", "");
2321							if (y.getElementById(this.wrapperEl)) {
2322								this.wrapper = y.getElementById(this.wrapperEl)
2323							} else {
2324								throw new Error("The nav element you are trying to select doesn't exist")
2325							}
2326							this.wrapper.inner = G(this.wrapper);
2327							A = this.options;
2328							F = this.wrapper;
2329							this._init(this)
2330						};
2331					B.prototype = {
2332						destroy: function () {
2333							this._removeStyles();
2334							z(F, "closed");
2335							z(F, "opened");
2336							F.removeAttribute("style");
2337							F.removeAttribute("aria-hidden");
2338							F = null;
2339							L = null;
2340							w(E, "load", this, false);
2341							w(E, "resize", this, false);
2342							w(H, "mousedown", this, false);
2343							w(H, "touchstart", this, false);
2344							w(H, "touchend", this, false);
2345							w(H, "keyup", this, false);
2346							w(H, "click", this, false);
2347							if (!A.customToggle) {
2348								H.parentNode.removeChild(H)
2349							} else {
2350								H.removeAttribute("aria-hidden")
2351							}
2352						},
2353						toggle: function () {
2354							if (!u) {
2355								z(F, "closed");
2356								C(F, "opened");
2357								F.style.position = A.openPos;
2358								v(F, {
2359									"aria-hidden": "false"
2360								});
2361								setNavFocusable(F, true);
2362								u = true;
2363								A.open()
2364							} else {
2365								z(F, "opened");
2366								C(F, "closed");
2367								v(F, {
2368									"aria-hidden": "true"
2369								});
2370								setNavFocusable(F, false);
2371								if (A.animate) {
2372									setTimeout(function () {
2373										F.style.position = "absolute"
2374									}, A.transition + 10)
2375								} else {
2376									F.style.position = "absolute"
2377								}
2378								u = false;
2379								A.close()
2380							}
2381						},
2382						handleEvent: function (a) {
2383							var b = a || E.event;
2384							switch (b.type) {
2385								case "mousedown":
2386									this._onmousedown(b);
2387									break;
2388								case "touchstart":
2389									this._ontouchstart(b);
2390									break;
2391								case "touchend":
2392									this._ontouchend(b);
2393									break;
2394								case "keyup":
2395									this._onkeyup(b);
2396									break;
2397								case "click":
2398									this._onclick(b);
2399									break;
2400								case "load":
2401									this._transitions(b);
2402									this._resize(b);
2403									break;
2404								case "resize":
2405									this._resize(b);
2406									break
2407							}
2408						},
2409						_init: function () {
2410							C(F, "closed");
2411							this._createToggle();
2412							x(E, "load", this, false);
2413							x(E, "resize", this, false);
2414							x(H, "mousedown", this, false);
2415							x(H, "touchstart", this, false);
2416							x(H, "touchend", this, false);
2417							x(H, "keyup", this, false);
2418							x(H, "click", this, false)
2419						},
2420						_createStyles: function () {
2421							if (!t.parentNode) {
2422								I.appendChild(t)
2423							}
2424						},
2425						_removeStyles: function () {
2426							if (t.parentNode) {
2427								t.parentNode.removeChild(t)
2428							}
2429						},
2430						_createToggle: function () {
2431							if (!A.customToggle) {
2432								var a = y.createElement("a");
2433								a.innerHTML = A.label;
2434								v(a, {
2435									href: "#",
2436									id: "nav-toggle"
2437								});
2438								if (A.insert === "after") {
2439									F.parentNode.insertBefore(a, F.nextSibling)
2440								} else {
2441									F.parentNode.insertBefore(a, F)
2442								}
2443								H = y.getElementById("nav-toggle")
2444							} else {
2445								var b = A.customToggle.replace("#", "");
2446								if (y.getElementById(b)) {
2447									H = y.getElementById(b)
2448								} else {
2449									throw new Error("The custom nav toggle you are trying to select doesn't exist")
2450								}
2451							}
2452						},
2453						_preventDefault: function (a) {
2454							if (a.preventDefault) {
2455								a.preventDefault();
2456								a.stopPropagation()
2457							} else {
2458								a.returnValue = false
2459							}
2460						},
2461						_onmousedown: function (a) {
2462							var b = a || E.event;
2463							if (!(b.which === 3 || b.button === 2)) {
2464								this._preventDefault(a);
2465								this.toggle(a)
2466							}
2467						},
2468						_ontouchstart: function (a) {
2469							H.onmousedown = null;
2470							this._preventDefault(a);
2471							this.toggle(a)
2472						},
2473						_ontouchend: function () {
2474							var a = this;
2475							F.addEventListener("click", a._preventDefault, true);
2476							setTimeout(function () {
2477								F.removeEventListener("click", a._preventDefault, true)
2478							}, A.transition)
2479						},
2480						_onkeyup: function (a) {
2481							var b = a || E.event;
2482							if (b.keyCode === 13) {
2483								this.toggle(a)
2484							}
2485						},
2486						_onclick: function (a) {
2487							this._preventDefault(a)
2488						},
2489						_transitions: function () {
2490							if (A.animate) {
2491								var b = F.style,
2492									a = "max-height " + A.transition + "ms";
2493								b.WebkitTransition = a;
2494								b.MozTransition = a;
2495								b.OTransition = a;
2496								b.transition = a
2497							}
2498						},
2499						_calcHeight: function () {
2500							var a = F.inner.offsetHeight,
2501								b = "#" + this.wrapperEl + ".opened{max-height:" + a + "px}";
2502							if (K) {
2503								t.innerHTML = b;
2504								b = ""
2505							}
2506						},
2507						_resize: function () {
2508							if (E.getComputedStyle(H, null).getPropertyValue("display") !== "none") {
2509								v(H, {
2510									"aria-hidden": "false"
2511								});
2512								if (F.className.match(/(^|\s)closed(\s|$)/)) {
2513									v(F, {
2514										"aria-hidden": "true"
2515									});
2516									F.style.position = "absolute";
2517									setNavFocusable(F, false)
2518								}
2519								this._createStyles();
2520								this._calcHeight()
2521							} else {
2522								v(H, {
2523									"aria-hidden": "true"
2524								});
2525								v(F, {
2526									"aria-hidden": "false"
2527								});
2528								F.style.position = A.openPos;
2529								setNavFocusable(F, true);
2530								this._removeStyles()
2531							}
2532							A.init()
2533						}
2534					};
2535					var L;
2536
2537					function D(a, b) {
2538						if (!L) {
2539							L = new B(a, b)
2540						}
2541						return L
2542					}
2543					return D
2544				})(window, document);
2545
2546				function setNavFocusable(container, makeFocusable) {
2547					// Any selector of focusable elements in your menu
2548					var focusable = container.querySelectorAll("a");
2549
2550					focusable.forEach(function (el) {
2551						if (makeFocusable) {
2552							el.removeAttribute("tabindex");
2553						} else {
2554							el.setAttribute("tabindex", "-1");
2555						}
2556					});
2557				}</script>
2557<!--[if lte IE 9]>
2557<script src="https://0nline.uk/s3/easysites/responsive/responsiveIE-min.js"></script>
2557<script src="https://0nline.uk/s3/easysites/ie/ieFix-min.js"></script>
2557<![endif]-->
2557<script>var navigation = responsiveNav("#navigation"); 			(function () { 				function getScript(url, success, failure) { 					var script = document.createElement('script'); 					script.src = url; 					var head = document.getElementsByTagName('head')[0], 						done = false; 					script.onload = script.onreadystatechange = function () { 						if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { 							done = true; 							success(); 							script.onload = script.onreadystatechange = null; 							head.removeChild(script); 						} 					}; 					script.onerror = function () { 						if (typeof failure === 'function') { 							failure(); 						} 					}; 					head.appendChild(script); 				} 				getScript('https://www.easysites.uk/websites/js/masterSeven.js', function () { 					getScript('https://www.easysites.uk/websites/themes/18/theme.js', function () {  						var referrer = document.referrer; 						var pathname = window.location.pathname; 						var url = window.location.href; 						var useragent = navigator.userAgent; 						var browserid = 9882453; 						var isMobile = false; 						if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) || 							/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.
2557substr(0, 4))) isMobile = true; 						var userIP = '000'; 						var adwords = false; 						var both = referrer + '§' + pathname + '§' + url + '§' + useragent + '§' + userIP + '§' + isMobile + '§' + browserid + '§' + adwords; 						var dataString = 'data=' + both;  						$.ajax({ 							type: "POST", 							url: "/statistics/theCollectorv2.php", 							data: dataString, 							cache: false, 							success: function (data) { } 						});  						// Track phone call clicks 						$('.phone-call').on('click', function (e) { 							var websiteId = 9882453; 							trackContactClick(websiteId, 'phone'); 						});  						// Track WhatsApp clicks 						$('.whatsapp-widget').on('click', function (e) { 							var websiteId = 9882453; 							trackContactClick(websiteId, 'whatsapp'); 						});  						 						function trackContactClick(websiteId, contactType) { 							// Create the data string with the format: websiteId§contactType 							var dataString = 'data=' + websiteId + '§' + contactType;  							// Send the tracking data 							$.ajax({ 								type: "POST", 								url: "/statistics/callCollector.php", 								data: dataString, 								cache: false, 								success: function (data) { 									// Success - no action needed 								}, 								error: function (xhr, status, error) { 									// Optional: Silently log errors to console 									console.error("Contact tracking error:", error); 								} 							}); 						}   						window.onbeforeunload = function (event) { 							xmlhttp = new XMLHttpRequest(); 							xmlhttp.open("POST", "/statistics/theCollectorv2.php", true); 							xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 							var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds(); 							var currentPage = TimeMe.currentPageName; 							var task = 'pageTime'; 							var browserid = 9882453; 							var send = task + '|' + browserid + '|' + currentPage + '|' + timeSpentOnPage; 							xmlhttp.send(send); 						};  						 						function applyAnimation(i) { 							var e = 0; 							i.find(".is-animated").each(function () { 								"done" != $(this).data("animated") && (e> 0 && $(this).css("animation-delay", e + "s"), e += .2, $(this).removeClass("fadeOut"), $(this).hasClass("is-pulse") && $(this).addClass("pulse"), $(this).hasClass("is-bounceIn") && $(this).addClass("bounceIn"), $(this).hasClass("is-fadeIn") && $(this).addClass("fadeIn"), $(this).hasClass("is-fadeInDown") && $(this).addClass("fadeInDown"), $(this).hasClass("is-fadeInLeft") && $(this).addClass("fadeInLeft"), $(this).hasClass("is-fadeInRight") && $(this).addClass("fadeInRight"), $(this).hasClass("is-fadeInUp") && $(this).addClass("fadeInUp"), $(this).hasClass("is-flipInX") && $(this).addClass("flipInX"), $(this).hasClass("is-flipInY") && $(this).addClass("flipInY"), $(this).hasClass("is-slideInUp") && $(this).addClass("slideInUp"), $(this).hasClass("is-slideInDown") && $(this).addClass("slideInDown"), $(this).hasClass("is-slideInLeft") && $(this).addClass("slideInLeft"), $(this).hasClass("is-slideInRight") && $(this).addClass("slideInRight"), $(this).hasClass("is-zoomIn") && $(this).addClass("zoomIn"), $(this).hasClass("once") && $(this).data("animated", "done"))
2558							})
2559						}
2560
2561						function removeAnimation(i) {
2562							i.find(".is-animated").each(function () {
2563								$(this).removeClass("pulse"), $(this).removeClass("bounceIn"), $(this).removeClass("fadeIn"), $(this).removeClass("fadeInDown"), $(this).removeClass("fadeInLeft"), $(this).removeClass("fadeInRight"), $(this).removeClass("fadeInUp"), $(this).removeClass("flipInX"), $(this).removeClass("flipInY"), $(this).removeClass("slideInUp"), $(this).removeClass("slideInDown"), $(this).removeClass("slideInLeft"), $(this).removeClass("slideInRight"), $(this).removeClass("zoomIn"), $(this).hasClass("once") || $(this).addClass("fadeOut")
2564							})
2565						}
2566
2567						function applyAnimationSection(i) {
2568							var e = 0;
2569							i.hasClass("is-animated") && "done" != i.data("animated") && (e > 0 && i.css("animation-delay", e + "s"), e += .2, i.removeClass("fadeOut"), i.hasClass("is-pulse") && i.addClass("pulse"), i.hasClass("is-bounceIn") && i.addClass("bounceIn"), i.hasClass("is-fadeIn") && i.addClass("fadeIn"), i.hasClass("is-fadeInDown") && i.addClass("fadeInDown"), i.hasClass("is-fadeInLeft") && i.addClass("fadeInLeft"), i.hasClass("is-fadeInRight") && i.addClass("fadeInRight"), i.hasClass("is-fadeInUp") && i.addClass("fadeInUp"), i.hasClass("is-flipInX") && i.addClass("flipInX"), i.hasClass("is-flipInY") && i.addClass("flipInY"), i.hasClass("is-slideInUp") && i.addClass("slideInUp"), i.hasClass("is-slideInDown") && i.addClass("slideInDown"), i.hasClass("is-slideInLeft") && i.addClass("slideInLeft"), i.hasClass("is-slideInRight") && i.addClass("slideInRight"), i.hasClass("is-zoomIn") && i.addClass("zoomIn"), i.hasClass("once") && i.data("animated", "done")), i.find(".is-box.is-animated").each(function () {
2570								"done" != $(this).data("animated") && (e > 0 && $(this).css("animation-delay", e + "s"), e += .2, $(this).removeClass("fadeOut"), $(this).hasClass("is-pulse") && $(this).addClass("pulse"), $(this).hasClass("is-bounceIn") && $(this).addClass("bounceIn"), $(this).hasClass("is-fadeIn") && $(this).addClass("fadeIn"), $(this).hasClass("is-fadeInDown") && $(this).addClass("fadeInDown"), $(this).hasClass("is-fadeInLeft") && $(this).addClass("fadeInLeft"), $(this).hasClass("is-fadeInRight") && $(this).addClass("fadeInRight"), $(this).hasClass("is-fadeInUp") && $(this).addClass("fadeInUp"), $(this).hasClass("is-flipInX") && $(this).addClass("flipInX"), $(this).hasClass("is-flipInY") && $(this).addClass("flipInY"), $(this).hasClass("is-slideInUp") && $(this).addClass("slideInUp"), $(this).hasClass("is-slideInDown") && $(this).addClass("slideInDown"), $(this).hasClass("is-slideInLeft") && $(this).addClass("slideInLeft"), $(this).hasClass("is-slideInRight") && $(this).addClass("slideInRight"), $(this).hasClass("is-zoomIn") && $(this).addClass("zoomIn"), $(this).hasClass("once") && $(this).data("animated", "done"))
2571							})
2572						}
2573
2574						function removeAnimationSection(i) {
2575							i.hasClass("is-animated") && (i.removeClass("pulse"), i.removeClass("bounceIn"), i.removeClass("fadeIn"), i.removeClass("fadeInDown"), i.removeClass("fadeInLeft"), i.removeClass("fadeInRight"), i.removeClass("fadeInUp"), i.removeClass("flipInX"), i.removeClass("flipInY"), i.removeClass("slideInUp"), i.removeClass("slideInDown"), i.removeClass("slideInLeft"), i.removeClass("slideInRight"), i.removeClass("zoomIn"), i.hasClass("once") || i.addClass("fadeOut")), i.find(".is-animated").each(function () {
2576								$(this).removeClass("pulse"), $(this).removeClass("bounceIn"), $(this).removeClass("fadeIn"), $(this).removeClass("fadeInDown"), $(this).removeClass("fadeInLeft"), $(this).removeClass("fadeInRight"), $(this).removeClass("fadeInUp"), $(this).removeClass("flipInX"), $(this).removeClass("flipInY"), $(this).removeClass("slideInUp"), $(this).removeClass("slideInDown"), $(this).removeClass("slideInLeft"), $(this).removeClass("slideInRight"), $(this).removeClass("zoomIn"), $(this).hasClass("once") || $(this).addClass("fadeOut")
2577							})
2578						}
2579
2580						function playAllVideoBg() {
2581							jQuery(".is_video_bg").each(function () {
2582								var i = jQuery(this).find(".screen").attr("id");
2583								$("#" + i).data("youtubePlayer").onYouTubePlayerAPIReady()
2584							})
2585						}
2586
2587						function loadScript(i, e) {
2588							var s = document.createElement("script");
2589							s.type = "text/javascript", s.readyState ? s.onreadystatechange = function () {
2590								"loaded" != s.readyState && "complete" != s.readyState || (s.onreadystatechange = null, e())
2591							} : s.onload = function () {
2592								e()
2593							}, s.src = i, document.body.appendChild(s)
2594						}
2595						$(document).ready(function (i) {
2596							$(".is-arrow-down a").click(function (i) {
2597								return $(this).parents(".is-section").nextAll("div:not(.is-hidden
2597)").html() && $("html,body").animate({
2598									scrollTop: $(this).parents(".is-section").nextAll("div:not(.is-hidden)").offset().top - parseInt($(".is-wrapper").css("padding-top"))
2599								}, 800), i.preventDefault(), i.stopImmediatePropagation(), !1
2600							}), $(".is-wrapper > div:first-child").find(".is-scale-animated").addClass("is-appeared"), $(".is-scale-animated").appear(), $(".is-scale-animated").on("appear", function () {
2601								$(this).addClass("is-appeared")
2602							}), $(".is-scale-animated").on("disappear", function () {
2603								$(this).removeClass("is-appeared")
2604							}), $(".is-animated").each(function () {
2605								$(this).addClass("animated"), $(this).addClass("fadeOut")
2606							}), $(".is-section").appear(), $(".is-section").each(function () {
2607								$(this).is(":appeared") && applyAnimationSection($(this))
2608							}), 0 == $(window).scrollTop() && setTimeout(applyAnimationSection($(".is-section").first()), 2e3), $(".is-section").on("appear", function () {
2609								applyAnimationSection($(this))
2610							}), $(".is-section").on("disappear", function () {
2611								removeAnimationSection($(this))
2612							}), $(".is-container").appear(), $(".is-container").each(function () {
2613								$(this).is(":appeared") && applyAnimation($(this))
2614							}), 0 == $(window).scrollTop() && $(".is-section").first().find(".is-container").each(function () {
2615								setTimeout(applyAnimation($(this)), 2e3)
2616							}), $(".is-container").on("appear", function () {
2617								applyAnimation($(this))
2618							}), $(".is-container").on("disappear", function () {
2619								removeAnimation($(this))
2620							})
2621						}),
2622						function (i) {
2623							function e() {
2624								n = !1;
2625								for (var e = 0, s = t.length; e <s; e++) { 									var o = i(t[e]).filter(function () { 										return i(this).is(":appeared") 									}); 									if (o.trigger("appear", [o]), r[e]) { 										var a = r[e].not(o); 										a.trigger("disappear", [a]) 									} 									r[e] = o 								} 							}  							function s(i) { 								t.push(i), r.push() 							} 							var t = [], 								o = !1, 								n = !1, 								a = { 									interval: 250, 									force_process: !1 								}, 								l = i(window), 								r = []; 							i.expr[":"].appeared = function (e) { 								var s = i(e); 								if (!s.is(":visible")) return !1; 								var t = l.scrollLeft(), 									o = l.scrollTop(), 									n = s.offset(), 									a = n.left, 									r = n.top; 								return r + s.height()>= o && r - (s.data("appear-top-offset") || 0) <= o + l.height() - 200 && a + s.width()>= t && a - (s.data("appear-left-offset") || 0) <= t + l.width()
2626							}, i.fn.extend({
2627								appear: function (t) {
2628									var l = i.extend({}, a, t || {}),
2629										r = this.selector || this;
2630									if (!o) {
2631										var d = function () {
2632											n || (n = !0, setTimeout(e, l.interval))
2633										};
2634										i(window).scroll(d).resize(d), o = !0
2635									}
2636									return l.force_process && setTimeout(e, l.interval), s(r), i(r)
2637								}
2638							}), i.extend({
2639								force_appear: function () {
2640									return !!o && (e(), !0)
2641								}
2642							})
2643						}("undefined" != typeof module ? require("jquery") : jQuery),
2644						function (i) {
2645							"use strict";
2646							"function" == typeof define && define.amd ? define(["jquery"], i) : "undefined" != typeof exports ? module.exports = i(require("jquery")) : i(jQuery)
2647						}(function (i) {
2648							"use strict";
2649							var e = window.Slick || {};
2650							(e = function () {
2651								var e = 0;
2652								return function (s, t) {
2653									var o, n = this;
2654									n.defaults = {
2655										accessibility: !0,
2656										adaptiveHeight: !1,
2657										appendArrows: i(s),
2658										appendDots: i(s),
2659										arrows: !0,
2660										asNavFor: null,
2661										prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',
2662										nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',
2663										autoplay: !1,
2664										autoplaySpeed: 3e3,
2665										centerMode: !1,
2666										centerPadding: "50px",
2667										cssEase: "ease",
2668										customPaging: function (i, e) {
2669											return '<button type="button" data-role="none" role="button" aria-required="false" tabindex="0">' + (e + 1) + "</button>"
2670										},
2671										dots: !1,
2672										dotsClass: "slick-dots",
2673										draggable: !0,
2674										easing: "linear",
2675										edgeFriction: .35,
2676										fade: !1,
2677										focusOnSelect: !1,
2678										infinite: !0,
2679										initialSlide: 0,
2680										lazyLoad: "ondemand",
2681										mobileFirst: !1,
2682										pauseOnHover: !0,
2683										pauseOnDotsHover: !1,
2684										respondTo: "window",
2685										responsive: null,
2686										rows: 1,
2687										rtl: !1,
2688										slide: "",
2689										slidesPerRow: 1,
2690										slidesToShow: 1,
2691										slidesToScroll: 1,
2692										speed: 500,
2693										swipe: !0,
2694										swipeToSlide: !1,
2695										touchMove: !0,
2696										touchThreshold: 5,
2697										useCSS: !0,
2698										useTransform: !1,
2699										variableWidth: !1,
2700										vertical: !1,
2701										verticalSwiping: !1,
2702										waitForAnimate: !0,
2703										zIndex: 1e3
2704									}, n.initials = {
2705										animating: !1,
2706										dragging: !1,
2707										autoPlayTimer: null,
2708										currentDirection: 0,
2709										currentLeft: null,
2710										currentSlide: 0,
2711										direction: 1,
2712										$dots: null,
2713										listWidth: null,
2714										listHeight: null,
2715										loadIndex: 0,
2716										$nextArrow: null,
2717										$prevArrow: null,
2718										slideCount: null,
2719										slideWidth: null,
2720										$slideTrack: null,
2721										$slides: null,
2722										sliding: !1,
2723										slideOffset: 0,
2724										swipeLeft: null,
2725										$list: null,
2726										touchObject: {},
2727										transformsEnabled: !1,
2728										unslicked: !1
2729									}, i.extend(n, n.initials), n.activeBreakpoint = null, n.animType = null, n.animProp = null, n.breakpoints = [], n.breakpointSettings = [], n.cssTransitions = !1, n.hidden = "hidden", n.paused = !1, n.positionProp = null, n.respondTo = null, n.rowCount = 1, n.shouldClick = !0, n.$slider = i(s), n.$slidesCache = null, n.transformType = null, n.transitionType = null, n.visibilityChange = "visibilitychange", n.windowWidth = 0, n.windowTimer = null, o = i(s).data("slick") || {}, n.options = i.extend({}, n.defaults, o, t), n.currentSlide = n.options.initialSlide, n.originalSettings = n.options, void 0 !== document.mozHidden ? (n.hidden = "mozHidden", n.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (n.hidden = "webkitHidden", n.visibilityChange = "webkitvisibilitychange"), n.autoPlay = i.proxy(n.autoPlay, n), n.autoPlayClear = i.proxy(n.autoPlayClear, n), n.changeSlide = i.proxy(n.changeSlide, n), n.clickHandler = i.proxy(n.clickHandler, n), n.selectHandler = i.proxy(n.selectHandler, n), n.setPosition = i.proxy(n.setPosition, n), n.swipeHandler = i.proxy(n.swipeHandler, n), n.dragHandler = i.proxy(n.dragHandler, n), n.keyHandler = i.proxy(n.keyHandler, n), n.autoPlayIterator = i.proxy(n.autoPlayIterator, n), n.instanceUid = e++, n.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, n.registerBreakpoints(), n.init(!0), n.checkResponsive(!0)
2730								}
2731							}()).prototype.addSlide = e.prototype.slickAdd = function (e, s, t) {
2732								var o = this;
2733								if ("boolean" == typeof s) t = s, s = null;
2734								else if (0 > s || s >= o.slideCount) return !1;
2735								o.unload(), "number" == typeof s ? 0 === s && 0 === o.$slides.length ? i(e).appendTo(o.$slideTrack) : t ? i(e).insertBefore(o.$slides.eq(s)) : i(e).insertAfter(o.$slides.eq(s)) : !0 === t ? i(e).prependTo(o.$slideTrack) : i(e).appendTo(o.$slideTrack), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slides.each(function (e, s) {
2736									i(s).attr("data-slick-index", e)
2737								}), o.$slidesCache = o.$slides, o.reinit()
2738							}, e.prototype.animateHeight = function () {
2739								var i = this;
2740								if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) {
2741									var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
2742									i.$list.animate({
2743										height: e
2744									}, i.options.speed)
2745								}
2746							}, e.prototype.animateSlide = function (e, s) {
2747								var t = {},
2748									o = this;
2749								o.animateHeight(), !0 === o.options.rtl && !1 === o.options.vertical && (e = -e), !1 === o.transformsEnabled ? !1 === o.options.vertical ? o.$slideTrack.animate({
2750									left: e
2751								}, o.options.speed, o.options.easing, s) : o.$slideTrack.animate({
2752									top: e
2753								}, o.options.speed, o.options.easing, s) : !1 === o.cssTransitions ? (!0 === o.options.rtl && (o.currentLeft = -o.currentLeft), i({
2754									animStart: o.currentLeft
2755								}).animate({
2756									animStart: e
2757								}, {
2758									duration: o.options.speed,
2759									easing: o.options.easing,
2760									step: function (i) {
2761										i = Math.ceil(i), !1 === o.options.vertical ? (t[o.animType] = "translate(" + i + "px, 0px)", o.$slideTrack.css(t)) : (t[o.animType] = "translate(0px," + i + "px)", o.$slideTrack.css(t))
2762									},
2763									complete: function () {
2764										s && s.call()
2765									}
2766								})) : (o.applyTransition(), e = Math.ceil(e), !1 === o.options.vertical ? t[o.animType] = "translate3d(" + e + "px, 0px, 0px)" : t[o.animType] = "translate3d(0px," + e + "px, 0px)", o.$slideTrack.css(t), s && setTimeout(function () {
2767									o.disableTransition(), s.call()
2768								}, o.options.speed))
2769							}, e.prototype.asNavFor = function (e) {
2770								var s = this,
2771									t = s.options.asNavFor;
2772								t && null !== t && (t = i(t).not(s.$slider)), null !== t && "object" == typeof t && t.each(function () {
2773									var s = i(this).slick("getSlick");
2774									s.unslicked || s.slideHandler(e, !0)
2775								})
2776							}, e.prototype.applyTransition = function (i) {
2777								var e = this,
2778									s = {};
2779								!1 === e.options.fade ? s[e.transitionType] = e.transformType + " " + e.options.speed + "ms " + e.options.cssEase : s[e.transitionType] = "opacity " + e.options.speed + "ms " + e.options.cssEase, !1 === e.options.fade ? e.$slideTrack.css(s) : e.$slides.eq(i).css(s)
2780							}, e.prototype.autoPlay = function () {
2781								var i = this;
2782								i.autoPlayTimer && clearInterval(i.autoPlayTimer), i.slideCount > i.options.slidesToShow && !0 !== i.paused && (i.autoPlayTimer = setInterval(i.autoPlayIterator, i.options.autoplaySpeed))
2783							}, e.prototype.autoPlayClear = function () {
2784								var i = this;
2785								i.autoPlayTimer && clearInterval(i.autoPlayTimer)
2786							}, e.prototype.autoPlayIterator = function () {
2787								var i = this;
2788								!1 === i.options.infinite ? 1 === i.direction ? (i.currentSlide + 1 === i.slideCount - 1 && (i.direction = 0), i.slideHandler(i.currentSlide + i.options.slidesToScroll)) : (i.currentSlide - 1 == 0 && (i.direction = 1), i.slideHandler(i.currentSlide - i.options.slidesToScroll)) : i.slideHandler(i.currentSlide + i.options.slidesToScroll)
2789							}, e.prototype.buildArrows = function () {
2790								var e = this;
2791								!0 === e.options.arrows && (e.$prevArrow = i(e.options.prevArrow).addClass("slick-arrow"), e.$nextArrow = i(e.options.nextArrow).addClass("slick-arrow"), e.slideCount > e.options.slidesToShow ? (e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.prependTo(e.options.appendArrows), e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.appendTo(e.options.appendArrows), !0 !== e.options.infinite && e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({
2792									"aria-disabled": "true",
2793									tabindex: "-1"
2794								}))
2795							}, e.prototype.buildDots = function () {
2796								var e, s, t = this;
2797								if (!0 === t.options.dots && t.slideCount > t.options.slidesToShow) {
2798									for (s = '<ul class="' + t.options.dotsClass + '">', e = 0; e <= t.getDotCount(); e += 1) s += "<li>" + t.options.customPaging.call(this, t, e) + "</li>";
2799									s += "</ul>", t.$dots = i(s).appendTo(t.options.appendDots), t.$dots.find("li").first().addClass("slick-active").attr("aria-hidden", "false")
2800								}
2801							}, e.prototype.buildOut = function () {
2802								var e = this;
2803								e.$slides = e.$slider.children(e.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), e.slideCount = e.$slides.length, e.$slides.each(function (e, s) {
2804									i(s).attr("data-slick-index", e).data("originalStyling", i(s).attr("style") || "")
2805								}), e.$slider.addClass("slick-slider"), e.$slideTrack = 0 === e.slideCount ? i('<div class="slick-track"/>').appendTo(e.$slider) : e.$slides.wrapAll('<div class="slick-track"/>').parent(), e.$list = e.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(), e.$slideTrack.css("opacity", 0), (!0 === e.options.centerMode || !0 === e.options.swipeToSlide) && (e.options.slidesToScroll = 1), i("img[data-lazy]", e.$slider).not("[src]").addClass("slick-loading"), e.setupInfinite(), e.buildArrows(), e.buildDots(), e.updateDots(), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), !0 === e.options.draggable && e.$list.addClass("draggable")
2806							}, e.prototype.buildRows = function () {
2807								var i, e, s, t, o, n, a, l = this;
2808								if (t = document.createDocumentFragment(), n = l.$slider.children(), l.options.rows > 1) {
2809									for (a = l.options.slidesPerRow * l.options.rows, o = Math.ceil(n.length / a), i = 0; o > i; i++) {
2810										var r = document.createElement("div");
2811										for (e = 0; e < l.options.rows; e++) {
2812											var d = document.createElement("div");
2813											for (s = 0; s < l.options.slidesPerRow; s++) {
2814												var c = i * a + (e * l.options.slidesPerRow + s);
2815												n.get(c) && d.appendChild(n.get(c))
2816											}
2817											r.appendChild(d)
2818										}
2819										t.appendChild(r)
2820									}
2821									l.$slider.html(t), l.$slider.children().children().children().css({
2822										width: 100 / l.options.slidesPerRow + "%",
2823										display: "inline-block"
2824									})
2825								}
2826							}, e.prototype.checkResponsive = function (e, s) {
2827								var t, o, n, a = this,
2828									l = !1,
2829									r = a.$slider.width(),
2830									d = window.innerWidth || i(window).width();
2831								if ("window" === a.respondTo ? n = d : "slider" === a.respondTo ? n = r : "min" === a.respondTo && (n = Math.min(d, r)), a.options.responsive && a.options.responsive.length && null !== a.options.responsive) {
2832									o = null;
2833									for (t in a.breakpoints) a.breakpoints.hasOwnProperty(t) && (!1 === a.originalSettings.mobileFirst ? n <a.breakpoints[t] && (o = a.breakpoints[t]) : n> a.breakpoints[t] && (o = a.breakpoints[t]));
2834									null !== o ? null !== a.activeBreakpoint ? (o !== a.activeBreakpoint || s) && (a.activeBreakpoint = o, "unslick" === a.breakpointSettings[o] ? a.unslick(o) : (a.options = i.extend({}, a.originalSettings, a.breakpointSettings[o]), !0 === e && (a.currentSlide = a.options.initialSlide), a.refresh(e)), l = o) : (a.activeBreakpoint = o, "unslick" === a.breakpointSettings[o] ? a.unslick(o) : (a.options = i.extend({}, a.originalSettings, a.breakpointSettings[o]), !0 === e && (a.currentSlide = a.options.initialSlide), a.refresh(e)), l = o) : null !== a.activeBreakpoint && (a.activeBreakpoint = null, a.options = a.originalSettings, !0 === e && (a.currentSlide = a.options.initialSlide), a.refresh(e), l = o), e || !1 === l || a.$slider.trigger("breakpoint", [a, l])
2835								}
2836							}, e.prototype.changeSlide = function (e, s) {
2837								var t, o, n, a = this,
2838									l = i(e.target);
2839								switch (l.is("a") && e.preventDefault(), l.is("li") || (l = l.closest("li")), n = a.slideCount % a.options.slidesToScroll != 0, t = n ? 0 : (a.slideCount - a.
2839currentSlide) % a.options.slidesToScroll, e.data.message) {
2840									case "previous":
2841										o = 0 === t ? a.options.slidesToScroll : a.options.slidesToShow - t, a.slideCount > a.options.slidesToShow && a.slideHandler(a.currentSlide - o, !1, s);
2842										break;
2843									case "next":
2844										o = 0 === t ? a.options.slidesToScroll : t, a.slideCount > a.options.slidesToShow && a.slideHandler(a.currentSlide + o, !1, s);
2845										break;
2846									case "index":
2847										var r = 0 === e.data.index ? 0 : e.data.index || l.index() * a.options.slidesToScroll;
2848										a.slideHandler(a.checkNavigable(r), !1, s), l.children().trigger("focus");
2849										break;
2850									default:
2851										return
2852								}
2853							}, e.prototype.checkNavigable = function (i) {
2854								var e, s;
2855								if (e = this.getNavigableIndexes(), s = 0, i > e[e.length - 1]) i = e[e.length - 1];
2856								else
2857									for (var t in e) {
2858										if (i <e[t]) { 											i = s; 											break 										} 										s = e[t] 									} 								return i 							}, e.prototype.cleanUpEvents = function () { 								var e = this; 								e.options.dots && null !== e.$dots && (i("li", e.$dots).off("click.slick", e.changeSlide), !0 === e.options.pauseOnDotsHover && !0 === e.options.autoplay && i("li", e.$dots).off("mouseenter.slick", i.proxy(e.setPaused, e, !0)).off("mouseleave.slick", i.proxy(e.setPaused, e, !1))), !0 === e.options.arrows && e.slideCount> e.options.slidesToShow && (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide), e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide)), e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler), e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler), e.$list.off("touchend.slick mouseup.slick", e.swipeHandler), e.$list.off("touchcancel.slick mouseleave.
2858slick", e.swipeHandler), e.$list.off("click.slick", e.clickHandler), i(document).off(e.visibilityChange, e.visibility), e.$list.off("mouseenter.slick", i.proxy(e.setPaused, e, !0)), e.$list.off("mouseleave.slick", i.proxy(e.setPaused, e, !1)), !0 === e.options.accessibility && e.$list.off("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().off("click.slick", e.selectHandler), i(window).off("orientationchange.slick.slick-" + e.instanceUid, e.orientationChange), i(window).off("resize.slick.slick-" + e.instanceUid, e.resize), i("[draggable!=true]", e.$slideTrack).off("dragstart", e.preventDefault), i(window).off("load.slick.slick-" + e.instanceUid, e.setPosition), i(document).off("ready.slick.slick-" + e.instanceUid, e.setPosition)
2859							}, e.prototype.cleanUpRows = function () {
2860								var i, e = this;
2861								e.options.rows > 1 && ((i = e.$slides.children().children()).removeAttr("style"), e.$slider.html(i))
2862							}, e.prototype.clickHandler = function (i) {
2863								!1 === this.shouldClick && (i.stopImmediatePropagation(), i.stopPropagation(), i.preventDefault())
2864							}, e.prototype.destroy = function (e) {
2865								var s = this;
2866								s.autoPlayClear(), s.touchObject = {}, s.cleanUpEvents(), i(".slick-cloned", s.$slider).detach(), s.$dots && s.$dots.remove(), s.$prevArrow && s.$prevArrow.length && (s.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), s.htmlExpr.test(s.options.prevArrow) && s.$prevArrow.remove()), s.$nextArrow && s.$nextArrow.length && (s.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), s.htmlExpr.test(s.options.nextArrow) && s.$nextArrow.remove()), s.$slides && (s.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function () {
2867									i(this).attr("style", i(this).data("originalStyling"))
2868								}), s.$slideTrack.children(this.options.slide).detach(), s.$slideTrack.detach(), s.$list.detach(), s.$slider.append(s.$slides)), s.cleanUpRows(), s.$slider.removeClass("slick-slider"), s.$slider.removeClass("slick-initialized"), s.unslicked = !0, e || s.$slider.trigger("destroy", [s])
2869							}, e.prototype.disableTransition = function (i) {
2870								var e = this,
2871									s = {};
2872								s[e.transitionType] = "", !1 === e.options.fade ? e.$slideTrack.css(s) : e.$slides.eq(i).css(s)
2873							}, e.prototype.fadeSlide = function (i, e) {
2874								var s = this;
2875								!1 === s.cssTransitions ? (s.$slides.eq(i).css({
2876									zIndex: s.options.zIndex
2877								}), s.$slides.eq(i).animate({
2878									opacity: 1
2879								}, s.options.speed, s.options.easing, e)) : (s.applyTransition(i), s.$slides.eq(i).css({
2880									opacity: 1,
2881									zIndex: s.options.zIndex
2882								}), e && setTimeout(function () {
2883									s.disableTransition(i), e.call()
2884								}, s.options.speed))
2885							}, e.prototype.fadeSlideOut = function (i) {
2886								var e = this;
2887								!1 === e.cssTransitions ? e.$slides.eq(i).animate({
2888									opacity: 0,
2889									zIndex: e.options.zIndex - 2
2890								}, e.options.speed, e.options.easing) : (e.applyTransition(i), e.$slides.eq(i).css({
2891									opacity: 0,
2892									zIndex: e.options.zIndex - 2
2893								}))
2894							}, e.prototype.filterSlides = e.prototype.slickFilter = function (i) {
2895								var e = this;
2896								null !== i && (e.$slidesCache = e.$slides, e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.filter(i).appendTo(e.$slideTrack), e.reinit())
2897							}, e.prototype.getCurrent = e.prototype.slickCurrentSlide = function () {
2898								return this.currentSlide
2899							}, e.prototype.getDotCount = function () {
2900								var i = this,
2901									e = 0,
2902									s = 0,
2903									t = 0;
2904								if (!0 === i.options.infinite)
2905									for (; e < i.slideCount;) ++t, e = s + i.options.slidesToScroll, s += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow;
2906								else if (!0 === i.options.centerMode) t = i.slideCount;
2907								else
2908									for (; e < i.slideCount;) ++t, e = s + i.options.slidesToScroll, s += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; 								return t - 1 							}, e.prototype.getLeft = function (i) { 								var e, s, t, o = this, 									n = 0; 								return o.slideOffset = 0, s = o.$slides.first().outerHeight(!0), !0 === o.options.infinite ? (o.slideCount>
2908 o.options.slidesToShow && (o.slideOffset = o.slideWidth * o.options.slidesToShow * -1, n = s * o.options.slidesToShow * -1), o.slideCount % o.options.slidesToScroll != 0 && i + o.options.slidesToScroll > o.slideCount && o.slideCount > o.options.slidesToShow && (i > o.slideCount ? (o.slideOffset = (o.options.slidesToShow - (i - o.slideCount)) * o.slideWidth * -1, n = (o.options.slidesToShow - (i - o.slideCount)) * s * -1) : (o.slideOffset = o.slideCount % o.options.slidesToScroll * o.slideWidth * -1, n = o.slideCount % o.options.slidesToScroll * s * -1))) : i + o.options.slidesToShow > o.slideCount && (o.slideOffset = (i + o.options.slidesToShow - o.slideCount) * o.slideWidth, n = (i + o.options.slidesToShow - o.slideCount) * s), o.slideCount <= o.options.slidesToShow && (o.slideOffset = 0, n = 0), !0 === o.options.centerMode && !0 === o.options.infinite ? o.slideOffset += o.slideWidth * Math.floor(o.options.slidesToShow / 2) - o.slideWidth : !0 === o.options.centerMode && (o.slideOffset = 0, o.slideOffset += o.slideWidth * Math.floor(o.options.slidesToShow / 2)), e = !1 === o.options.vertical ? i * o.slideWidth * -1 + o.slideOffset : i * s * -1 + n, !0 === o.options.variableWidth && (t = o.slideCount <= o.options.slidesToShow || !1 === o.options.infinite ? o.$slideTrack.children(".slick-slide").eq(i) : o.$slideTrack.children(".slick-slide").eq(i + o.options.slidesToShow), e = !0 === o.options.rtl ? t[0] ? -1 * (o.$slideTrack.width() - t[0].offsetLeft - t.width()) : 0 : t[0] ? -1 * t[0].offsetLeft : 0, !0 === o.options.centerMode && (t = o.slideCount <= o.options.slidesToShow || !1 === o.options.infinite ? o.$slideTrack.children(".slick-slide").eq(i) : o.$slideTrack.children(".slick-slide").eq(i + o.options.slidesToShow + 1), e = !0 === o.options.rtl ? t[0] ? -1 * (o.$slideTrack.width() - t[0].offsetLeft - t.width()) : 0 : t[0] ? -1 * t[0].offsetLeft : 0, e += (o.$list.width() - t.outerWidth()) / 2)), e 							}, e.prototype.getOption = e.prototype.slickGetOption = function (i) { 								return this.options[i] 							}, e.prototype.getNavigableIndexes = function () { 								var i, e = this, 									s = 0, 									t = 0, 									o = []; 								for (!1 === e.options.infinite ? i = e.slideCount : (s = -1 * e.options.slidesToScroll, t = -1 * e.options.slidesToScroll, i = 2 * e.slideCount); i> s;) o.push(s), s = t + e.options.slidesToScroll, t += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow; 								return o 							}, e.prototype.getSlick = function () { 								return this 							}, e.prototype.getSlideCount = function () { 								var e, s, t = this; 								return s = !0 === t.options.centerMode ? t.slideWidth * Math.floor(t.options.slidesToShow / 2) : 0, !0 === t.options.swipeToSlide ? (t.$slideTrack.find(".slick-slide").each(function (o, n) { 									return n.offsetLeft - s + i(n).outerWidth() / 2> -1 * t.swipeLeft ? (e = n, !1) : void 0
2909								}), Math.abs(i(e).attr("data-slick-index") - t.currentSlide) || 1) : t.options.slidesToScroll
2910							}, e.prototype.goTo = e.prototype.slickGoTo = function (i, e) {
2911								this.changeSlide({
2912									data: {
2913										message: "index",
2914										index: parseInt(i)
2915									}
2916								}, e)
2917							}, e.prototype.init = function (e) {
2918								var s = this;
2919								i(s.$slider).hasClass("slick-initialized") || (i(s.$slider).addClass("slick-initialized"), s.buildRows(), s.buildOut(), s.setProps(), s.startLoad(), s.loadSlider(), s.initializeEvents(), s.updateArrows(), s.updateDots()), e && s.$slider.trigger("init", [s]), !0 === s.options.accessibility && s.initADA()
2920							}, e.prototype.initArrowEvents = function () {
2921								var i = this;
2922								!0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.on("click.slick", {
2923									message: "previous"
2924								}, i.changeSlide), i.$nextArrow.on("click.slick", {
2925									message: "next"
2926								}, i.changeSlide))
2927							}, e.prototype.initDotEvents = function () {
2928								var e = this;
2929								!0 === e.options.dots && e.slideCount > e.options.slidesToShow && i("li", e.$dots).on("click.slick", {
2930									message: "index"
2931								}, e.changeSlide), !0 === e.options.dots && !0 === e.options.pauseOnDotsHover && !0 === e.options.autoplay && i("li", e.$dots).on("mouseenter.slick", i.proxy(e.setPaused, e, !0)).on("mouseleave.
2931slick", i.proxy(e.setPaused, e, !1))
2932							}, e.prototype.initializeEvents = function () {
2933								var e = this;
2934								e.initArrowEvents(), e.initDotEvents(), e.$list.on("touchstart.slick mousedown.slick", {
2935									action: "start"
2936								}, e.swipeHandler), e.$list.on("touchmove.slick mousemove.slick", {
2937									action: "move"
2938								}, e.swipeHandler), e.$list.on("touchend.slick mouseup.slick", {
2939									action: "end"
2940								}, e.swipeHandler), e.$list.on("touchcancel.slick mouseleave.slick", {
2941									action: "end"
2942								}, e.swipeHandler), e.$list.on("click.slick", e.clickHandler), i(document).on(e.visibilityChange, i.proxy(e.visibility, e)), e.$list.on("mouseenter.slick", i.proxy(e.setPaused, e, !0)), e.$list.on("mouseleave.slick", i.proxy(e.setPaused, e, !1)), !0 === e.options.accessibility && e.$list.on("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler), i(window).on("orientationchange.slick.slick-" + e.instanceUid, i.proxy(e.orientationChange, e)), i(window).on("resize.slick.slick-" + e.instanceUid, i.proxy(e.resize, e)), i("[draggable!=true]", e.$slideTrack).on("dragstart", e.preventDefault), i(window).on("load.slick.slick-" + e.instanceUid, e.setPosition), i(document).on("ready.slick.slick-" + e.instanceUid, e.setPosition)
2943							}, e.prototype.initUI = function () {
2944								var i = this;
2945								!0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.show(), i.$nextArrow.show()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.show(), !0 === i.options.autoplay && i.autoPlay()
2946							}, e.prototype.keyHandler = function (i) {
2947								var e = this;
2948								i.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === i.keyCode && !0 === e.options.accessibility ? e.changeSlide({
2949									data: {
2950										message: "previous"
2951									}
2952								}) : 39 === i.keyCode && !0 === e.options.accessibility && e.changeSlide({
2953									data: {
2954										message: "next"
2955									}
2956								}))
2957							}, e.prototype.lazyLoad = function () {
2958								function e(e) {
2959									i("img[data-lazy]", e).each(function () {
2960										var e = i(this),
2961											s = i(this).attr("data-lazy"),
2962											t = document.createElement("img");
2963										t.onload = function () {
2964											e.animate({
2965												opacity: 0
2966											}, 100, function () {
2967												e.attr("src", s).animate({
2968													opacity: 1
2969												}, 200, function () {
2970													e.removeAttr("data-lazy").removeClass("slick-loading")
2971												})
2972											})
2973										}, t.src = s
2974									})
2975								}
2976								var s, t, o, n = this;
2977								!0 === n.options.centerMode ? !0 === n.options.infinite ? (t = n.currentSlide + (n.options.slidesToShow / 2 + 1), o = t + n.options.slidesToShow + 2) : (t = Math.max(0, n.currentSlide - (n.options.slidesToShow / 2 + 1)), o = n.options.slidesToShow / 2 + 1 + 2 + n.currentSlide) : (t = n.options.infinite ? n.options.slidesToShow + n.currentSlide : n.currentSlide, o = t + n.options.slidesToShow, !0 === n.options.fade && (t > 0 && t--, o <= n.slideCount && o++)), e(n.$slider.find(".slick-slide").slice(t, o)), n.slideCount <= n.options.slidesToShow ? (s = n.$slider.find(".slick-slide"), e(s)) : n.currentSlide>= n.slideCount - n.options.slidesToShow ? (s = n.$slider.find(".slick-cloned").slice(0, n.options.slidesToShow), e(s)) : 0 === n.currentSlide && (s = n.$slider.find(".slick-cloned").slice(-1 * n.options.slidesToShow), e(s))
2978							}, e.prototype.loadSlider = function () {
2979								var i = this;
2980								i.setPosition(), i.$slideTrack.css({
2981									opacity: 1
2982								}), i.$slider.removeClass("slick-loading"), i.initUI(), "progressive" === i.options.lazyLoad && i.progressiveLazyLoad()
2983							}, e.prototype.next = e.prototype.slickNext = function () {
2984								this.changeSlide({
2985									data: {
2986										message: "next"
2987									}
2988								})
2989							}, e.prototype.orientationChange = function () {
2990								var i = this;
2991								i.checkResponsive(), i.setPosition()
2992							}, e.prototype.pause = e.prototype.slickPause = function () {
2993								var i = this;
2994								i.autoPlayClear(), i.paused = !0
2995							}, e.prototype.play = e.prototype.slickPlay = function () {
2996								var i = this;
2997								i.paused = !1, i.autoPlay()
2998							}, e.prototype.postSlide = function (i) {
2999								var e = this;
3000								e.$slider.trigger("afterChange", [e, i]), e.animating = !1, e.setPosition(), e.swipeLeft = null, !0 === e.options.autoplay && !1 === e.paused && e.autoPlay(), !0 === e.options.accessibility && e.initADA()
3001							}, e.prototype.prev = e.prototype.slickPrev = function () {
3002								this.changeSlide({
3003									data: {
3004										message: "previous"
3005									}
3006								})
3007							}, e.prototype.preventDefault = function (i) {
3008								i.preventDefault()
3009							}, e.prototype.progressiveLazyLoad = function () {
3010								var e, s = this;
3011								i("img[data-lazy]", s.$slider).length > 0 && ((e = i("img[data-lazy]", s.$slider).first()).attr("src", null), e.attr("src", e.attr("data-lazy")).removeClass("slick-loading").load(function () {
3012									e.removeAttr("data-lazy"), s.progressiveLazyLoad(), !0 === s.options.adaptiveHeight && s.setPosition()
3013								}).error(function () {
3014									e.removeAttr("data-lazy"), s.progressiveLazyLoad()
3015								}))
3016							}, e.prototype.refresh = function (e) {
3017								var s, t, o = this;
3018								t = o.slideCount - o.options.slidesToShow, o.options.infinite || (o.slideCount <= o.options.slidesToShow ? o.currentSlide = 0 : o.currentSlide> t && (o.currentSlide = t)), s = o.currentSlide, o.destroy(!0), i.extend(o, o.initials, {
3019									currentSlide: s
3020								}), o.init(), e || o.changeSlide({
3021									data: {
3022										message: "index",
3023										index: s
3024									}
3025								}, !1)
3026							}, e.prototype.registerBreakpoints = function () {
3027								var e, s, t, o = this,
3028									n = o.options.responsive || null;
3029								if ("array" === i.type(n) && n.length) {
3030									o.respondTo = o.options.respondTo || "window";
3031									for (e in n)
3032										if (t = o.breakpoints.length - 1, s = n[e].breakpoint, n.hasOwnProperty(e)) {
3033											for (; t >= 0;) o.breakpoints[t] && o.breakpoints[t] === s && o.breakpoints.splice(t, 1), t--;
3034											o.breakpoints.push(s), o.breakpointSettings[s] = n[e].settings
3035										} o.breakpoints.sort(function (i, e) {
3036											return o.options.mobileFirst ? i - e : e - i
3037										})
3038								}
3039							}, e.prototype.reinit = function () {
3040								var e = this;
3041								e.$slides = e.$slideTrack.children(e.options.slide).addClass("slick-slide"), e.slideCount = e.$slides.length, e.currentSlide >= e.slideCount && 0 !== e.currentSlide && (e.currentSlide = e.currentSlide - e.options.slidesToScroll), e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0), e.registerBreakpoints(), e.setProps(), e.setupInfinite(), e.buildArrows(), e.updateArrows(), e.initArrowEvents(), e.buildDots(), e.updateDots(), e.initDotEvents(), e.checkResponsive(!1, !0), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler), e.setSlideClasses(0), e.setPosition(), e.$slider.trigger("reInit", [e]), !0 === e.options.autoplay && e.focusHandler()
3042							}, e.prototype.resize = function () {
3043								var e = this;
3044								i(window).width() !== e.windowWidth && (clearTimeout(e.windowDelay), e.windowDelay = window.setTimeout(function () {
3045									e.windowWidth = i(window).width(), e.checkResponsive(), e.unslicked || e.setPosition()
3046								}, 50))
3047							}, e.prototype.removeSlide = e.prototype.slickRemove = function (i, e, s) {
3048								var t = this;
3049								return "boolean" == typeof i ? (e = i, i = !0 === e ? 0 : t.slideCount - 1) : i = !0 === e ? --i : i, !(t.slideCount <1 || 0> i || i > t.slideCount - 1) && (t.unload(), !0 === s ? t.$slideTrack.children().remove() : t.$slideTrack.children(this.options.slide).eq(i).remove(), t.$slides = t.$slideTrack.children(this.options.slide), t.$slideTrack.children(this.options.slide).detach(), t.$slideTrack.append(t.$slides), t.$slidesCache = t.$slides, void t.reinit())
3050							}, e.prototype.setCSS = function (i) {
3051								var e, s, t = this,
3052									o = {};
3053								!0 === t.options.rtl && (i = -i), e = "left" == t.positionProp ? Math.ceil(i) + "px" : "0px", s = "top" == t.positionProp ? Math.ceil(i) + "px" : "0px", o[t.positionProp] = i, !1 === t.transformsEnabled ? t.$slideTrack.css(o) : (o = {}, !1 === t.cssTransitions ? (o[t.animType] = "translate(" + e + ", " + s + ")", t.$slideTrack.css(o)) : (o[t.animType] = "translate3d(" + e + ", " + s + ", 0px)", t.$slideTrack.css(o)))
3054							}, e.prototype.setDimensions = function () {
3055								var i = this;
3056								!1 === i.options.vertical ? !0 === i.options.centerMode && i.$list.css({
3057									padding: "0px " + i.options.centerPadding
3058								}) : (i.$list.height(i.$slides.first().outerHeight(!0) * i.options.slidesToShow), !0 === i.options.centerMode && i.$list.css({
3059									padding: i.options.centerPadding + " 0px"
3060								})), i.listWidth = i.$list.width(), i.listHeight = i.$list.height(), !1 === i.options.vertical && !1 === i.options.variableWidth ? (i.slideWidth = Math.ceil(i.listWidth / i.options.slidesToShow), i.$slideTrack.width(Math.ceil(i.slideWidth * i.$slideTrack.children(".slick-slide").length))) : !0 === i.options.variableWidth ? i.$slideTrack.width(5e3 * i.slideCount) : (i.slideWidth = Math.ceil(i.listWidth), i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0) * i.$slideTrack.children(".slick-slide").length)));
3061								var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width();
3062								!1 === i.options.variableWidth && i.$slideTrack.children(".slick-slide").width(i.slideWidth - e)
3063							}, e.prototype.setFade = function () {
3064								var e, s = this;
3065								s.$slides.each(function (t, o) {
3066									e = s.slideWidth * t * -1, !0 === s.options.rtl ? i(o).css({
3067										position: "relative",
3068										right: e,
3069										top: 0,
3070										zIndex: s.options.zIndex - 2,
3071										opacity: 0
3072									}) : i(o).css({
3073										position: "relative",
3074										left: e,
3075										top: 0,
3076										zIndex: s.options.zIndex - 2,
3077										opacity: 0
3078									})
3079								}), s.$slides.eq(s.currentSlide).css({
3080									zIndex: s.options.zIndex - 1,
3081									opacity: 1
3082								})
3083							}, e.prototype.setHeight = function () {
3084								var i = this;
3085								if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) {
3086									var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
3087									i.$list.css("height", e)
3088								}
3089							}, e.prototype.setOption = e.prototype.slickSetOption = function (e, s, t) {
3090								var o, n, a = this;
3091								if ("responsive" === e && "array" === i.type(s))
3092									for (n in s)
3093										if ("array" !== i.type(a.options.responsive)) a.options.responsive = [s[n]];
3094										else {
3095											for (o = a.options.responsive.length - 1; o >= 0;) a.options.responsive[o].breakpoint === s[n].breakpoint && a.options.responsive.splice(o, 1), o--;
3096											a.options.responsive.push(s[n])
3097										}
3098								else a.options[e] = s;
3099								!0 === t && (a.unload(), a.reinit())
3100							}, e.prototype.setPosition = function () {
3101								var i = this;
3102								i.setDimensions(), i.setHeight(), !1 === i.options.fade ? i.setCSS(i.getLeft(i.currentSlide)) : i.setFade(), i.$slider.trigger("setPosition", [i])
3103							}, e.prototype.setProps = function () {
3104								var i = this,
3105									e = document.body.style;
3106								i.positionProp = !0 === i.options.vertical ? "top" : "left", "top" === i.positionProp ? i.$slider.addClass("slick-vertical") : i.$slider.removeClass("slick-vertical"), (void 0 !== e.WebkitTransition || void 0 !== e.MozTransition || void 0 !== e.msTransition) && !0 === i.options.useCSS && (i.cssTransitions = !0), i.options.fade && ("number" == typeof i.options.zIndex ? i.options.zIndex <3 && (i.options.zIndex = 3) : i.options.zIndex = i.defaults.zIndex), void 0 !== e.OTransform && (i.animType = "OTransform", i.transformType = "-o-transform", i.transitionType = "OTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.MozTransform && (i.animType = "MozTransform", i.transformType = "-moz-transform", i.transitionType = "MozTransition", void 0 === e.perspectiveProperty && void 0 === e.MozPerspective && (i.animType = !1)), void 0 !== e.webkitTransform && (i.animType = "
3106webkitTransform", i.transformType = "-webkit-transform", i.transitionType = "webkitTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.msTransform && (i.animType = "msTransform", i.transformType = "-ms-transform", i.transitionType = "msTransition", void 0 === e.msTransform && (i.animType = !1)), void 0 !== e.transform && !1 !== i.animType && (i.animType = "transform", i.transformType = "transform", i.transitionType = "transition"), i.transformsEnabled = i.options.useTransform && null !== i.animType && !1 !== i.animType 							}, e.prototype.setSlideClasses = function (i) { 								var e, s, t, o, n = this; 								s = n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"), n.$slides.eq(i).addClass("slick-current"), !0 === n.options.centerMode ? (e = Math.floor(n.options.slidesToShow / 2), !0 === n.options.infinite && (i>= e && i <= n.slideCount - 1 - e ? n.$slides.slice(i - e, i + e + 1).addClass("slick-active").attr("aria-hidden", "false") : (t = n.options.slidesToShow + i, s.slice(t - e + 1, t + e + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === i ? s.eq(s.length - 1 - n.options.slidesToShow).addClass("slick-center") : i === n.slideCount - 1 && s.eq(n.options.slidesToShow).addClass("slick-center")), n.$slides.eq(i).addClass("slick-center")) : i>= 0 && i <= n.slideCount - n.options.slidesToShow ? n.$slides.slice(i, i + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : s.length <= n.options.slidesToShow ? s.addClass("slick-active").attr("aria-hidden", "false") : (o = n.slideCount % n.options.slidesToShow, t = !0 === n.options.infinite ? n.options.slidesToShow + i : i, n.options.slidesToShow == n.options.slidesToScroll && n.slideCount - i <n.options.slidesToShow ? s.slice(t - (n.options.slidesToShow - o), t + o).addClass("slick-active").attr("aria-hidden", "false") : s.slice(t, t + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false")), "ondemand" === n.options.lazyLoad && n.lazyLoad() 							}, e.prototype.setupInfinite = function () { 								var e, s, t, o = this; 								if (!0 === o.options.fade && (o.options.centerMode = !1), !0 === o.options.infinite && !1 === o.options.fade && (s = null, o.slideCount> o.options.slidesToShow)) {
3107									for (t = !0 === o.options.centerMode ? o.options.slidesToShow + 1 : o.options.slidesToShow, e = o.slideCount; e > o.slideCount - t; e -= 1) s = e - 1, i(o.$slides[s]).clone(!0).attr("id", "").attr("data-slick-index", s - o.slideCount).prependTo(o.$slideTrack).addClass("slick-cloned");
3108									for (e = 0; t > e; e += 1) s = e, i(o.$slides[s]).clone(!0).attr("id", "").attr("data-slick-index", s + o.slideCount).appendTo(o.$slideTrack).addClass("slick-cloned");
3109									o.$slideTrack.find(".slick-cloned").find("[id]").each(function () {
3110										i(this).attr("id", "")
3111									})
3112								}
3113							}, e.prototype.setPaused = function (i) {
3114								var e = this;
3115								!0 === e.options.autoplay && !0 === e.options.pauseOnHover && (e.paused = i, i ? e.autoPlayClear() : e.autoPlay())
3116							}, e.prototype.selectHandler = function (e) {
3117								var s = this,
3118									t = i(e.target).is(".slick-slide") ? i(e.target) : i(e.target).parents(".slick-slide"),
3119									o = parseInt(t.attr("data-slick-index"));
3120								return o || (o = 0), s.slideCount <= s.options.slidesToShow ? (s.setSlideClasses(o), void s.asNavFor(o)) : void s.slideHandler(o)
3121							}, e.prototype.slideHandler = function (i, e, s) {
3122								var t, o, n, a, l = null,
3123									r = this;
3124								return e = e || !1, !0 === r.animating && !0 === r.options.waitForAnimate || !0 === r.options.fade && r.currentSlide === i || r.slideCount <= r.options.slidesToShow ? void 0 : (!1 === e && r.asNavFor(i), t = i, l = r.getLeft(t), a = r.getLeft(r.currentSlide), r.currentLeft = null === r.swipeLeft ? a : r.swipeLeft, !1 === r.options.infinite && !1 === r.options.centerMode && (0> i || i > r.getDotCount() * r.options.slidesToScroll) ? void (!1 === r.options.fade && (t = r.currentSlide, !0 !== s ? r.animateSlide(a, function () {
3125									r.postSlide(t)
3126								}) : r.postSlide(t))) : !1 === r.options.infinite && !0 === r.options.centerMode && (0 > i || i > r.slideCount - r.options.slidesToScroll) ? void (!1 === r.options.fade && (t = r.currentSlide, !0 !== s ? r.animateSlide(a, function () {
3127									r.postSlide(t)
3128								}) : r.postSlide(t))) : (!0 === r.options.autoplay && clearInterval(r.autoPlayTimer), o = 0 > t ? r.slideCount % r.options.slidesToScroll != 0 ? r.slideCount - r.slideCount % r.options.slidesToScroll : r.slideCount + t : t >= r.slideCount ? r.slideCount % r.options.slidesToScroll != 0 ? 0 : t - r.slideCount : t, r.animating = !0, r.$slider.trigger("beforeChange", [r, r.currentSlide, o]), n = r.currentSlide, r.currentSlide = o, r.setSlideClasses(r.currentSlide), r.updateDots(), r.updateArrows(), !0 === r.options.fade ? (!0 !== s ? (r.fadeSlideOut(n), r.fadeSlide(o, function () {
3129									r.postSlide(o)
3130								})) : r.postSlide(o), void r.animateHeight()) : void (!0 !== s ? r.animateSlide(l, function () {
3131									r.postSlide(o)
3132								}) : r.postSlide(o))))
3133							}, e.prototype.startLoad = function () {
3134								var i = this;
3135								!0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.hide(), i.$nextArrow.hide()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.hide(), i.$slider.addClass("slick-loading")
3136							}, e.prototype.swipeDirection = function () {
3137								var i, e, s, t, o = this;
3138								return i = o.touchObject.startX - o.touchObject.curX, e = o.touchObject.startY - o.touchObject.curY, s = Math.atan2(e, i), 0 > (t = Math.round(180 * s / Math.PI)) && (t = 360 - Math.abs(t)), 45 >= t && t >= 0 ? !1 === o.options.rtl ? "left" : "right" : 360 >= t && t >= 315 ? !1 === o.options.rtl ? "left" : "right" : t >= 135 && 225 >= t ? !1 === o.options.rtl ? "right" : "left" : !0 === o.options.verticalSwiping ? t >= 35 && 135 >= t ? "left" : "right" : "vertical"
3139							}, e.prototype.swipeEnd = function (i) {
3140								var e, s = this;
3141								if (s.dragging = !1, s.shouldClick = !(s.touchObject.swipeLength > 10), void 0 === s.touchObject.curX) return !1;
3142								if (!0 === s.touchObject.edgeHit && s.$slider.trigger("edge", [s, s.swipeDirection()]), s.touchObject.swipeLength >= s.touchObject.minSwipe) switch (s.swipeDirection()) {
3143									case "left":
3144										e = s.options.swipeToSlide ? s.checkNavigable(s.currentSlide + s.getSlideCount()) : s.currentSlide + s.getSlideCount(), s.slideHandler(e), s.currentDirection = 0, s.touchObject = {}, s.$slider.trigger("swipe", [s, "left"]);
3145										break;
3146									case "right":
3147										e = s.options.swipeToSlide ? s.checkNavigable(s.currentSlide - s.getSlideCount()) : s.currentSlide - s.getSlideCount(), s.slideHandler(e), s.currentDirection = 1, s.touchObject = {}, s.$slider.trigger("swipe", [s, "right"])
3148								} else s.touchObject.startX !== s.touchObject.curX && (s.slideHandler(s.currentSlide), s.touchObject = {})
3149							}, e.prototype.swipeHandler = function (i) {
3150								var e = this;
3151								if (!(!1 === e.options.swipe || "ontouchend" in document && !1 === e.options.swipe || !1 === e.options.draggable && -1 !== i.type.indexOf("mouse"))) switch (e.touchObject.fingerCount = i.originalEvent && void 0 !== i.originalEvent.touches ? i.originalEvent.touches.length : 1, e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold, !0 === e.options.verticalSwiping && (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold), i.data.action) {
3152									case "start":
3153										e.swipeStart(i);
3154										break;
3155									case "move":
3156										e.swipeMove(i);
3157										break;
3158									case "end":
3159										e.swipeEnd(i)
3160								}
3161							}, e.prototype.swipeMove = function (i) {
3162								var e, s, t, o, n, a = this;
3163								return n = void 0 !== i.originalEvent ? i.originalEvent.touches : null, !(!a.dragging || n && 1 !== n.length) && (e = a.getLeft(a.currentSlide), a.touchObject.curX = void 0 !== n ? n[0].pageX : i.clientX, a.touchObject.curY = void 0 !== n ? n[0].pageY : i.clientY, a.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(a.touchObject.curX - a.touchObject.startX, 2))), !0 === a.options.verticalSwiping && (a.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(a.touchObject.curY - a.touchObject.startY, 2)))), s = a.swipeDirection(), "vertical" !== s ? (void 0 !== i.originalEvent && a.touchObject.swipeLength > 4 && i.preventDefault(), o = (!1 === a.options.rtl ? 1 : -1) * (a.touchObject.curX > a.touchObject.startX ? 1 : -1), !0 === a.options.verticalSwiping && (o = a.touchObject.curY > a.touchObject.startY ? 1 : -1), t = a.touchObject.swipeLength, a.touchObject.edgeHit = !1, !1 === a.options.infinite && (0 === a.currentSlide && "right" === s || a.currentSlide >= a.getDotCount() && "left" === s) && (t = a.touchObject.swipeLength * a.options.edgeFriction, a.touchObject.edgeHit = !0), !1 === a.options.vertical ? a.swipeLeft = e + t * o : a.swipeLeft = e + t * (a.$list.height() / a.listWidth) * o, !0 === a.options.verticalSwiping && (a.swipeLeft = e + t * o), !0 !== a.options.fade && !1 !== a.options.touchMove && (!0 === a.animating ? (a.swipeLeft = null, !1) : void a.setCSS(a.swipeLeft))) : void 0)
3164							}, e.prototype.swipeStart = function (i) {
3165								var e, s = this;
3166								return 1 !== s.touchObject.fingerCount || s.slideCount <= s.options.slidesToShow ? (s.touchObject = {}, !1) : (void 0 !== i.originalEvent && void 0 !== i.originalEvent.touches && (e = i.originalEvent.touches[0]), s.touchObject.startX = s.touchObject.curX = void 0 !== e ? e.pageX : i.clientX, s.touchObject.startY = s.touchObject.curY = void 0 !== e ? e.pageY : i.clientY, void (s.dragging = !0)) 							}, e.prototype.unfilterSlides = e.prototype.slickUnfilter = function () { 								var i = this; 								null !== i.$slidesCache && (i.unload(), i.$slideTrack.children(this.options.slide).detach(), i.$slidesCache.appendTo(i.$slideTrack), i.reinit()) 							}, e.prototype.unload = function () { 								var e = this; 								i(".slick-cloned", e.$slider).remove(), e.$dots && e.$dots.remove(), e.$prevArrow && e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove(), e.$nextArrow && e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove(), e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "") 							}, e.prototype.unslick = function (i) { 								var e = this; 								e.$slider.trigger("unslick", [e, i]), e.destroy() 							}, e.prototype.updateArrows = function () { 								var i = this; 								Math.floor(i.options.slidesToShow / 2), !0 === i.options.arrows && i.slideCount> i.options.slidesToShow && !i.options.infinite && (i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === i.currentSlide ? (i.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - i.options.slidesToShow && !1 === i.options.centerMode ? (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - 1 && !0 === i.options.centerMode && (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")))
3167							}, e.prototype.updateDots = function () {
3168								var i = this;
3169								null !== i.$dots && (i.$dots.find("li").removeClass("slick-active").attr("aria-hidden", "true"), i.$dots.find("li").eq(Math.floor(i.currentSlide / i.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden", "false"))
3170							}, e.prototype.visibility = function () {
3171								var i = this;
3172								document[i.hidden] ? (i.paused = !0, i.autoPlayClear()) : !0 === i.options.autoplay && (i.paused = !1, i.autoPlay())
3173							}, e.prototype.initADA = function () {
3174								var e = this;
3175								e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({
3176									"aria-hidden": "true",
3177									tabindex: "-1"
3178								}).find("a, input, button, select").attr({
3179									tabindex: "-1"
3180								}), e.$slideTrack.attr("role", "listbox"), e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function (s) {
3181									i(this).attr({
3182										role: "option",
3183										"aria-describedby": "slick-slide" + e.instanceUid + s
3184									})
3185								}), null !== e.$dots && e.$dots.attr("role", "tablist").find("li").each(function (s) {
3186									i(this).attr({
3187										role: "presentation",
3188										"aria-selected": "false",
3189										"aria-controls": "navigation" + e.instanceUid + s,
3190										id: "slick-slide" + e.instanceUid + s
3191									})
3192								}).first().attr("aria-selected", "true").end().find("button").attr("role", "button").end().closest("div").attr("role", "toolbar"), e.activateADA()
3193							}, e.prototype.activateADA = function () {
3194								this.$slideTrack.find(".slick-active").attr({
3195									"aria-hidden": "false"
3196								}).find("a, input, button, select").attr({
3197									tabindex: "0"
3198								})
3199							}
3199, e.prototype.focusHandler = function () {
3200								var e = this;
3201								e.$slider.on("focus.slick blur.slick", "*", function (s) {
3202									s.stopImmediatePropagation();
3203									var t = i(this);
3204									setTimeout(function () {
3205										e.isPlay && (t.is(":focus") ? (e.autoPlayClear(), e.paused = !0) : (e.paused = !1, e.autoPlay()))
3206									}, 0)
3207								})
3208							}, i.fn.slick = function () {
3209								var i, s, t = this,
3210									o = arguments[0],
3211									n = Array.prototype.slice.call(arguments, 1),
3212									a = t.length;
3213								for (i = 0; a > i; i++)
3214									if ("object" == typeof o || void 0 === o ? t[i].slick = new e(t[i], o) : s = t[i].slick[o].apply(t[i].slick, n), void 0 !== s) return s;
3215								return t
3216							}
3217						}),
3218						function (i) {
3219							i.youtubePlayer = function (e, s) {
3220								var t = {
3221									vid: []
3222								};
3223								this.settings = {};
3224								var o, n, a = i(e),
3225									e = e,
3226									l = {
3227										autoplay: 0,
3228										autohide: 1,
3229										modestbranding: 0,
3230										rel: 0,
3231										showinfo: 0,
3232										controls: 0,
3233										disablekb: 1,
3234										enablejsapi: 0,
3235										iv_load_policy: 3
3236									};
3237								this.init = function () {
3238									this.settings = i.extend({}, t, s), n = 0, loadScript("https://www.youtube.com/player_api", function () {
3239										$(window).on("load resize", function () {
3240											a.data("youtubePlayer").vidRescale()
3241										});
3242										try {
3243											a.data("youtubePlayer").onYouTubePlayerAPIReady()
3244										} catch (i) { }
3245									})
3246								}, this.onYouTubePlayerAPIReady = function () {
3247									o = new YT.Player(a.attr("id"), {
3248										events: {
3249											onReady: function () {
3250												o.loadVideoById(a.data("youtubePlayer").settings.vid[n]), o.mute()
3251											},
3252											onStateChange: function (i) {
3253												1 === i.data ? $("#" + a.attr("id")).addClass("active") : 2 === i.data && ($("#" + a.attr("id")).removeClass("active"), (n += 1) > a.data("youtubePlayer").settings.vid.length - 1 && (n = 0), o.loadVideoById(a.data("youtubePlayer").settings.vid[n]), o.seekTo(a.data("youtubePlayer").settings.vid[n].startSeconds))
3254											}
3255										},
3256										playerVars: l
3257									}), a.data("youtubePlayer").vidRescale()
3258								}, this.vidRescale = function () {
3259									var i = $(window).width() + 200,
3260										e = $(window).height() + 200;
3261									i / e > 16 / 9 ? (o.setSize(i, i / 16 * 9), $(".is_video_bg .screen").css({
3262										left: "0px"
3263									})) : (o.setSize(e / 9 * 16, e), $(".is_video_bg .screen").css({
3264										left: -($(".is_video_bg .screen").outerWidth() - i) / 2
3265									}))
3266								}, this.init()
3267							}, i.fn.youtubePlayer = function (e) {
3268								return this.each(function () {
3269									if (void 0 == i(this).data("youtubePlayer")) {
3270										var s = new i.youtubePlayer(this, e);
3271										i(this).data("youtubePlayer", s)
3272									}
3273								})
3274							}
3275						}(jQuery);
3276					// cookie
3277					
3278						function close() {
3279							var e = document.getElementById("notification-bottom");
3280							e.parentNode.removeChild(e), document.cookie = "cookie=1; path=/"
3281						}
3282
3283						function pageInit() {
3284							$('<div id="notification-bottom"><p>We use cookies to provide you with a better user experience. By continuing to use this website, you consent to our use of cookies in accordance with our <a href="/cookie-policy">cookie policy</a>.</p><a id="closeBtn" class="btn btn-primary cookie-consent-close">Close</a></div>').hide().appendTo($("body")).fadeIn(200);
3285							var e = document.getElementById("closeBtn");
3286							e.addEventListener ? e.addEventListener("click", close, !1) : e.attachEvent ? e.attachEvent("onclick", close) : e.onclick = close
3287						}
3288						document.cookie.match(/^(.*;)?\s*cookie\s*=\s*[^;]+(.*)?$/) || pageInit();
3289					
3290					(function(){'use strict';function initialise(root){var track=root.querySelector('.accreditations-carousel-01__track');var toggle=root.querySelector('[data-accreditations-carousel-01-toggle]');if(!track||track.getAttribute('data-accreditations-carousel-01-ready')==='true')return;if(!window.jQuery||!window.jQuery.fn||!window.jQuery.fn.slick)return;var reducedMotion=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;var desktopSlides=parseInt(root.getAttribute('data-accreditations-carousel-01-slides'),10);if(desktopSlides<3||desktopSlides>5)desktopSlides=3;track.setAttribute('data-accreditations-carousel-01-ready','true');window.jQuery(track).slick({slidesToShow:desktopSlides,slidesToScroll:1,autoplay:!reducedMotion,autoplaySpeed:0,speed:8000,cssEase:'linear',arrows:!1,dots:!1,infinite:!0,pauseOnHover:!1,swipe:!0,responsive:[{breakpoint:960,settings:{slidesToShow:2}},{breakpoint:640,settings:{slidesToShow:1}}]});if(!toggle)return;function setMotionState(paused){toggle.setAttribute('aria-pressed',String(paused));toggle.setAttribute('aria-label',paused?'Start carousel motion':'Pause carousel motion');toggle.setAttribute('title',paused?'Start carousel motion':'Pause carousel motion');toggle.querySelector('path').setAttribute('d',paused?'M8 5l11 7-11 7z':'M7 5v14M17 5v14');toggle.querySelector('path').setAttribute('fill',paused?'currentColor':'none')}
3291setMotionState(reducedMotion);toggle.addEventListener('click',function(){var paused=toggle.getAttribute('aria-pressed')!=='true';window.jQuery(track).slick(paused?'slickPause':'slickPlay');setMotionState(paused)})}
3292function initialiseAll(){var roots=document.querySelectorAll('[data-accreditations-carousel-01]');for(var index=0;
3292index<roots.length;index++){initialise(roots[index])}}
3293if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',initialiseAll)}else{initialiseAll()}})();(function(){'use strict';function setPosition(comparison,handle,clientX){var bounds=comparison.getBoundingClientRect();var position=bounds.width?((clientX-bounds.left)/bounds.width)*100:50;position=Math.max(0,Math.min(100,position));comparison.style.setProperty('--before-after-projects-01-position',position+'%');handle.setAttribute('aria-valuenow',String(Math.round(position)))}
3294function initialiseComparison(comparison){var handle=comparison.querySelector('[data-before-after-projects-01-handle]');if(!handle||handle.getAttribute('data-before-after-projects-01-ready')==='true')return;handle.setAttribute('data-before-after-projects-01-ready','true');handle.addEventListener('pointerdown',function(event){event.preventDefault();handle.setPointerCapture(event.pointerId);setPosition(comparison,handle,event.clientX)});handle.addEventListener('pointermove',function(event){if(handle.hasPointerCapture(event.pointerId)){setPosition(comparison,handle,event.clientX)}});handle.addEventListener('pointerup',function(event){if(handle.hasPointerCapture(event.pointerId)){handle.releasePointerCapture(event.pointerId)}});handle.addEventListener('pointercancel',function(event){if(handle.hasPointerCapture(event.pointerId)){handle.releasePointerCapture(event.pointerId)}});handle.addEventListener('keydown',function(event){var current=Number(handle.getAttribute('aria-valuenow'));if(isNaN(current))current=50;var next=current;if(event.key==='ArrowLeft'||event.key==='ArrowDown')next-=5;if(event.key==='ArrowRight'||event.key==='ArrowUp')next+=5;if(event.key==='Home')next=0;if(event.key==='End')next=100;if(next===current)return;event.preventDefault();var bounds=comparison.getBoundingClientRect();setPosition(comparison,handle,bounds.left+(bounds.width*Math.max(0,Math.min(100,next))/100))})}
3295function initialise(){var comparisons=document.querySelectorAll('[data-before-after-projects-01-comparison]');for(var index=0;index<comparisons.length;index++){initialiseComparison(comparisons[index])}}
3296if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',initialise)}else{initialise()}})();$(document).ready(function(){var btn=document.getElementsByClassName("description-toggle");var html=document.documentElement;for(var i=0;i<btn.length;i++){var button=btn[i];var set=button.nextElementSibling;if(!set||button.getAttribute("data-faq-toggle-init")==="1"){continue}
3297button.setAttribute("data-faq-toggle-init","1");button.setAttribute("aria-expanded","false");set.style.maxHeight="0px";if(html&&html.classList.contains("js")){var startIcon=button.querySelector(".icon");set.classList.add("hide-content");if(startIcon){startIcon.classList.remove("ion-chevron-up");startIcon.classList.add("ion-chevron-down")}}
3298button.addEventListener("click",function(){var content=this.nextElementSibling;var icon=this.querySelector(".icon");if(!content){return}
3299content.classList.toggle("toggled");if(content.style.maxHeight!=="0px"){content.style.maxHeight="0px";this.setAttribute("aria-expanded","false");if(icon){icon.classList.remove("ion-chevron-up");icon.classList.add("ion-chevron-down")}}else{content.style.maxHeight=content.scrollHeight+"px";this.setAttribute("aria-expanded","true");if(icon){icon.classList.add("ion-chevron-up");icon.classList.remove("ion-chevron-down")}}})}});(function(){function updateToggles(root){var cards=root.querySelectorAll('.google-reviews__card');for(var i=0;i<cards.length;i++){var quote=cards[i].querySelector('.google-reviews__quote');var toggle=cards[i].querySelector('.google-reviews__toggle');if(!quote||!toggle)continue;if(quote.classList.contains('is-expanded')){toggle.classList.remove('is-hidden');continue} if(quote.scrollHeight>quote.clientHeight+1){toggle.classList.remove('is-hidden')}else{toggle.classList.add('is-hidden')}}}
3300function findAncestorWithClass(node,className,boundary){while(node&&node!==boundary){if(node.classList&&node.classList.contains(className))return node;node=node.parentNode}
3301return null}
3302function bindReadMore(root){root.addEventListener('click',function(event){var toggle=findAncestorWithClass(event.target,'google-reviews__toggle',root);if(!toggle)return;var card=findAncestorWithClass(toggle,'google-reviews__card',root);var quote=card?card.querySelector('.google-reviews__quote'):null;if(!quote)return;var expanded=quote.classList.toggle('is-expanded');toggle.textContent=expanded?'Read less':'Read more';var track=root.querySelector('.google-reviews__track');if(track&&window.jQuery&&window.jQuery.fn&&window.jQuery.fn.slick){window.jQuery(track).slick('setPosition')}})}
3303function initSlider(root){var track=root.querySelector('.google-reviews__track');if(!track||!window.jQuery||!window.jQuery.fn||!window.jQuery.fn.slick)return;var $track=window.jQuery(track);if($track.hasClass('slick-initialized')){updateToggles(root);return}
3304$track.on('init setPosition breakpoint',function(){updateToggles(root)});$track.slick({slidesToShow:3,slidesToScroll:1,dots:!1,arrows:!0,infinite:!0,responsive:[{breakpoint:1024,settings:{slidesToShow:2,slidesToScroll:1}},{breakpoint:700,settings:{slidesToShow:1,slidesToScroll:1}}]})}
3305var roots=document.querySelectorAll('.google-reviews');for(var i=0;i<roots.length;i++){if(!roots[i].__googleReviewsInitialised){roots[i].__googleReviewsInitialised=!0;bindReadMore(roots[i]);initSlider(roots[i]);updateToggles(roots[i])}}
3306if(document.fonts&&document.fonts.ready&&document.fonts.ready.then){document.fonts.ready.then(function(){for(var i=0;i<roots.length;i++){updateToggles(roots[i])}})}})()	$('body').on('click', 'a[href*="#"]:not([href="#"])', function (e) {� 	if (location.pathname.replace(/^\//, '') 
3306== this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {� 		var target = $(this.hash);� 		target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');� 		if (target.length) {� 			event.preventDefault();� 			$('html, body').stop().animate({� 				scrollTop: target.offset().top - 60� 			}, 1000, function() {� 				var $target = $(target);� 				$target.focus();� 				if ($target.is(":focus")) {� 					return false;� 				} else {� 					$target.attr('tabindex','-1');� 					$target.focus();� 				}� 			});� 		}� 	}� });� � var keys = {37: 1, 38: 1, 39: 1, 40: 1};� function preventDefault(e) {� 	e = e || window.event;� 	if (e.preventDefault)� 		e.preventDefault();� 		e.returnValue = false;� }� � function preventDefaultForScrollKeys(e) {� 	if (keys[e.keyCode]) {� 		preventDefault(e);� 		return false;� 	}� }� � function disableScroll() {� 	if (window.addEventListener) // older FF� 		window.addEventListener('DOMMouseScroll', preventDefault, false);� 	window.onwheel = preventDefault; // modern standard� 	window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE� 	window.ontouchmove  = preventDefault; // mobile� 	document.onkeydown  = preventDefaultForScrollKeys;� }� � function enableScroll() {� 	if (window.removeEventListener)� 		window.removeEventListener('DOMMouseScroll', preventDefault, false);� 	window.onmousewheel = document.onmousewheel = null;� 	window.onwheel = null;� 	window.ontouchmove = null;� 	document.onkeydown = null;� }� � $.fn.scrollLimit = function() {� 	return this.on( 'wheel', function ( e ) {� 		var $this = $(this);� 		if (0> e.originalEvent.deltaY) {
3307			
3308			return ($this.scrollTop() > 0);
3309		} else {
3310			
3311			return ($this[0].scrollHeight > $this.innerHeight() + $this.scrollTop());
3312		}
3313	});
3314};
3315
3316$('#nav').scrollLimit()
3317
3318$('#nav-toggle').on('mousedown touchstart', function (e) {
3319	if (e.which !== 3) {
3320		var state = ($(this).prev().hasClass('closed')) ? 'auto' : 'hidden';
3321		var offset = window.innerWidth - document.documentElement.clientWidth;
3322		if (state === 'hidden') {
3323			$('body').addClass('nav-active').css({
3324				'overflow-y': state,
3325				'padding-right': offset,
3326			});
3327		} else {
3328			$('body').removeClass('nav-active').removeAttr('style')
3329		}
3330	}
3331});
3332
3333// Section for updating specific sections based on whether criteria is met on load.
3334(function() {
3335
3336	function changeNavPosition() {
3337		// Set height of placeholder fields 
3338		if (document.documentElement.classList.contains('js')) {
3339			var height = document.getElementById('header_can').offsetHeight;
3340			var navHeight = document.getElementById('nav-toggle').offsetHeight;
3341			var style = document.createElement('style');
3342				style.id = 'y9gxb3';
3343			var css = document.createTextNode('#nav-toggle, #nav-toggle.js-is-sticky { top: '+ ((height / 2) - (navHeight / 2)) +'px !important } @media (min-width: 60rem) { #nav > li { height: '+ height +'px; } }');
3344			style.appendChild(css);
3345			document.body.appendChild(style)
3346		}
3347	}
3348
3349	// Set phone numbers to data attributes
3350	const numbers = document.getElementById('header_can').getElementsByClassName('phone-call')
3351	for (var i = 0; numbers.length > i; i++) {
3352		numbers[i].setAttribute('data-call', '')
3353	}
3354
3355	// Set height on load
3356	changeNavPosition()
3357
3358	// Check if an email address has been included in the first custom field
3359	let emailCheck = false;
3360	const custom = document.getElementById('header_can').querySelectorAll('[class^=custom]')
3361	if (custom.length > 0) {
3362		for (var i = 0; custom.length > i; i++) {
3363			let field = custom[i].getElementsByTagName('span')[0]
3364			let text = field.textContent.toLowerCase()
3365			if (text.includes('mail')) {
3366				emailCheck = true;
3367				custom[i].classList.add('contact')
3368			}
3369			if (!emailCheck) {
3370				let strong = custom[i].getElementsByTagName('strong')[0]
3371				let number = strong.textContent.replace(' ', '')
3372				if (!isNaN(number)) {
3373					// Add custom label class to show the custom label
3374					field.classList.add('custom-label')
3375
3376					// Check if field is a landline or mobile
3377					if (number.substring(0, 2) === '07') {
3378						custom[i].classList.add('mobile')
3379					} else {
3380						custom[i].classList.add('phone')
3381					}
3382
3383					// Create link for phone number that doesn't have a link
3384					var link = document.createElement('a')
3385					link.classList.add('phone-call')
3386					link.href = 'tel:' + number;
3387
3388					while(strong.hasChildNodes()) {
3389						link.appendChild(strong.firstChild)
3390					}
3391					strong.appendChild(link)
3392				}
3393			}
3394		}
3395	}
3396
3397	// Load Stickybits
3398	var bits = 'https://cdnjs.cloudflare.com/ajax/libs/stickybits/3.7.2/jquery.stickybits.min.js';
3399	$.ajaxSetup({
3400		cache: true
3401	});
3402	$.getScript(bits, function() {
3403		$('#header_can, #navigation > ul').stickybits();
3404		$('#nav-toggle').stickybits({useStickyClasses: true});
3405	});
3406
3407})();
3408
3409$('.gallery-carousel').slick({
3410  centerMode: true,
3411  centerPadding: '25px',
3412  slidesToShow: 5,
3413  responsive: [
3414    {
3415      breakpoint: 1200,
3416      settings: {
3417        arrows: true,
3418        dots: true,
3419        centerMode: true,
3420        centerPadding: '15px',
3421        slidesToShow: 3
3422      }
3423    },
3424    {
3425      breakpoint: 640,
3426      settings: {
3427        arrows: true,
3428        dots: false,
3429        centerMode: true,
3430        centerPadding: '15px',
3431        slidesToShow: 1
3432      }
3433    }
3434  ]
3435});
3436
3437(function () {
3438    
3439        // Image section toggle
3440        $('.overlay-list a').on('click', function () {
3441            let parent = $(this).parent()
3442            let index = parent.index() - 1
3443            // Height
3444            let oldHeight = $('#overlay-section').css('height', '').outerHeight()
3445            // List
3446            $('.overlay-list').find('.active').removeAttr('class')
3447            parent.addClass('active')
3448            // Content
3449            $('.overlay-content').hide()
3450            $('.overlay-content').eq(index).show()
3451            let height = $('#overlay-section').outerHeight()
3452            $('#overlay-section').css('height', oldHeight)
3453            setTimeout(function () {
3454                $('#overlay-section').css('height', height)
3455            }, 1)
3456        });
3457        // Show heading slider
3458        var parent = $('.overlay-list')
3459        var child = parent.find('ul')
3460        if (child.width() > parent.width()) {
3461            $('.overlay-next').addClass('visible')
3462        }
3463    }());
3464    (function () {
3465        jQuery.expr.filters.offscreen = function(el) {
3466            var rect = el.getBoundingClientRect();
3467            var index = $(el).data('index')
3468            if (index === 0) {
3469                // Go left
3470                return rect.x < 0 || rect.y <0; } else {�                 // Go right�                 return (�                     (rect.x + rect.width)> el.parentElement.parentElement.clientWidth ||
3471                    (rect.y + rect.height) > window.innerHeight
3472                );
3473            }
3474        };
3475        
3476        function css_time_to_milliseconds(time_string) {
3477           var num = parseFloat(time_string, 10),
3478               unit = time_string.match(/m?s/),
3479               milliseconds;
3480           if (unit) {
3481               unit = unit[0];
3482           }
3483           switch (unit) {
3484               case "s": // seconds
3485                   milliseconds = num * 1000;
3486                   break;
3487               case "ms": // milliseconds
3488                   milliseconds = num;
3489                   break;
3490               default:
3491                   milliseconds = 0;
3492                   break;
3493           }
3494           return milliseconds;
3495        }
3496        // Set constant values
3497        const el = $('.overlay-list ul')
3498        const els = el.find('li:not(.overlay-toggle)')
3499        const width = el.width()
3500        $('.overlay-toggle').on('click', function () {
3501            let $this = $(this) // Cache this
3502            // Show slide left toggle
3503            if (!$('.overlay-prev').hasClass('visible')) {
3504                $('.overlay-prev').addClass('visible')
3505            }
3506            // Set num values
3507            let count = 0;
3508            let index = $this.index()
3509            let w = 0;
3510            for (var i = 0; i <els.length; i++) {�                 let child = $(els[i])�                 child.data('index', index)�                 let check = child.is(':offscreen')�                 if (index === 0) w = 0;�                 if (check) {�                     // Set start/end point for sliding�                     let x = (index !== 0) ? $this.outerWidth() : 0;�                     // Remove width from calc if element is last?�                     if (els.length - 1 === i) {�                         let ii = i - 1;�                         w = w - $(els[ii]).outerWidth();�                     }�                     // Store value�                     let value = w - x�                     // Slide the elements�                     el.css('margin-left', '-' + value + 'px')�                     // Apply timeout to account for margin transition�                     let seconds = css_time_to_milliseconds(el.css('transition-duration'))�                     setTimeout(function () {�                         // Check if last element is in view�                         if (!el.find('li').eq(-2).is(':offscreen') || (els.length - 1 === i)) {�                             $this.removeClass('visible')�                         }�                     }, seconds);�                     break;�                 } else {�                     // Set width to slide�                     w += child.width()�                 }�             }�             if (index === 0) {�                 // Go left�                 if (count> 0) {
3511                    count--;
3512                } else {
3513                    $this.removeClass('visible')
3514                    $('.overlay-next').addClass('visible')
3515                }
3516            } else {
3517                // Go right
3518                count++;
3519            }
3520        });
3521    }())
3522
3523var acc = document.getElementsByClassName("accordion");
3524var i;
3525
3526for (i = 0; i < acc.length; i++) {
3527  acc[i].addEventListener("click", function() {
3528    this.classList.toggle("active");
3529    var panel = this.nextElementSibling;
3530    if (panel.style.display === "block") {
3531      panel.style.display = "none";
3532    } else {
3533      panel.style.display = "block";
3534    }
3535  });
3536}									})
3537			});
3538		})();</script>
3538<a href="#" id="scroll" class="scrollup">Scroll</a></div><link href="//www.trimblearchitect.uk/includes/css/master.css?v=1787680890" rel="preload" as="style"/><link href="//www.trimblearchitect.uk/includes/css/master.css?v=1787680890" rel="stylesheet"/><div class="floating-widgets"><a href="https://wa.me/447785711635" class="widget whatsapp-widget" target="_blank" aria-label="Chat with us on WhatsApp"><img src="https://0nline.uk/website/whatsapp/green.png" alt="WhatsApp"/> </a></div>
3538<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"54fb2e8878b94bcb8e0b1af95256a123","r":1,"spa":2}' crossorigin="anonymous"></script>
3538
3539</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.