1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <title>Contact Us For London Pharmacy Services</title> 6 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 7 8 <meta name="description" content="Contact Us For London Pharmacy Services. We have an excellent team of professionals ready to help you with your needs. Contact us today!" /> 9 <link rel="canonical" href="https://www.osbonpharmacy.co.uk/contact-us"/> 10 <meta property="og:title" content="Contact Us For London Pharmacy Services" /> 11 <meta property="og:description" content="Contact Us For London Pharmacy Services. We have an excellent team of professionals ready to help you with your needs. Contact us today!" /> 12 <meta property="og:type" content="website" /> 13 <meta property="og:url" content="https://www.osbonpharmacy.co.uk/contact-us" /> 14 <meta property="og:locale" content="en_GB" /> 15 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"> 16 <link rel="manifest" href="/manifest.webmanifest"> 17 <link rel="icon" href="https://0nline.uk/s3/easyfav/osbonpharmacycouk.jpg" type="image/x-icon" /> 18<link rel="apple-touch-icon" href="https://0nline.uk/s3/easyfav/osbonpharmacycouk.jpg" /> 19 <!--[if IE]>
19<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
19<![endif]--> 20 <style> 21 @media(min-width: 40rem) { 22.prescription-form iframe { 23 max-height: 1100px; 24} 25} 26@media(min-width: 50rem) and (max-width: 60rem) { 27.prescription-form iframe { 28 max-height: 1400px; 29} 30} 31@media(min-width: 60rem) { 32.prescription-form iframe { 33 max-height: 1150px; 34} 35} 36 37 38/* LOCATIONS SECTION STYLING */ 39 40.area-heading { 41 height: 100%; 42 display: flex; 43 flex-direction: column; 44 justify-content: space-between; 45 text-align: center; 46 padding: 1rem 0rem; 47} 48 49 50.area-heading p:hover { 51 color: rgb(100, 170, 224)!important; 52} 53 54 55 56 57 58@media (max-width: 50rem) { 59#container .area-heading p { 60 font-size: 16px; 61} 62} 63 64 65 66 67 68 69/* LOCATIONS SECTION STYLING END*/ 70 71 72.round-container a { 73 text-decoration: none!important; 74} 75 76article a { 77 text-decoration: none!important; 78} 79 80 81.bg-overlay:before { 82 background: rgb(0 0 0 / 60%); 83} 84 85.bg-overlay { 86 position: relative; 87} 88 89.bg-overlay:before { 90 display: block !important; 91 content: ""; 92 position: absolute; 93 background: rgb(0 0 0 / 60%); 94 left: 0; 95 top: 0; 96 bottom: 0; 97 right: 0; 98} 99 100 101#banner-wrapper .is-wrapper > div.is-section-30 { 102 height: 26vh!important; 103 min-height: 200px; 104} 105 106#banner-wrapper h1 span { 107 line-height: 21px; 108 display: block; 109 font-size: 21px; 110 color: #2e384d; 111 margin-bottom: 1rem; 112 opacity: 0.8; 113} 114 115 116#header_can header .company-branding > .header_logo { 117 max-width: 300px; 118} 119 120 121 122 123 124 125 126/* --------------------------------- 127 128STYLES TO UPDATE 129All that needs to be done here is update the colours to the customer colours. This can be done via rgb(0,0,0) or #hex. I'll attach what each section does. 130 131----------------------------------*/ 132 133/*The link colours on hover*/ 134body a:hover, #container #footer_links a:hover { 135 color: #287aab; 136} 137/*Notification Bar Background*/ 138body .notification-bar { 139 background: #0078cf; 140} 141/*Notification bar text colour*/ 142body .notification-bar span { 143 color: #fff; 144} 145body .notification-contact span:before { 146 background: white; 147} 148/*Header colour (only change the colour not the px)*/ 149#container #header_can { 150 background: #fff; 151} 152/*Updates the header h1 and h3 text*/ 153#container header h1, #container header .company-branding span, #container header h3 { 154 color: black; 155} 156/*The mobile icon on mobile - This is set to black. To change it to white incase the header background is dark alter the filter to invert(0)*/ 157header #header_contact h4 { 158 filter: invert(1); 159} 160/*Mobile hamburger toggle colours - just update where the hex code is with the colour needed*/ 161#container #nav-toggle { 162 background-image: linear-gradient(to right, #000 0%, #000 100%); 163} 164#container #nav-toggle:before, #container #nav-toggle:after { 165 background: #000; 166} 167/*Navigation link colours*/ 168#container #navigation a { 169 color: black; 170} 171/*Navigation link colour when the page is active - so someone knows what page they are on*/ 172#container #navigation .active { 173 color: #287aab; 174} 175/*This alters the colour of the line that appears on hover when you hover over the navigation link you want to go to*/ 176#container #nav > li > a:before { 177 background: #287aab; 178} 179 180 181/* General CSS*/ 182/* Updating the font colour of all the headings throughout */ 183#banner-wrapper h1, article h1, article h2, article h3,article h4 { 184 color: #2e384d; 185} 186/*Updating the background colour of the content container - default is white */ 187#content_can { 188 background: #f2f7fc; 189} 190/*The main colour of the general p text*/ 191article p { 192 color: #2e384d; 193} 194 195 196/* Service Overview Lists*/ 197/* Background colour of the contact form */ 198#container #contact_page fieldset { 199 background-color: #fff; 200} 201/* Font Colour of the labels on the contact form - this needs to be a lighter colour */ 202#contact_page li:nth-child(1) label, #contact_page li:nth-child(2) label, #contact_page li:nth-child(3) label, #contact_page li:nth-child(4) label { 203 color: #757575; 204} 205/* Changes the colour of the background on enquiry confirmation pages */ 206.body-review-confirmation #content_can, .body-contact_confirmation #content_container { 207 background: #fafafa; 208} 209/* Changes the border colour on the buttons on the enquiry confirmation pages */ 210.body-review-confirmation .contact-confirmation a, .body-contact_confirmation .contact-confirmation a { 211 border: 2.5px solid #fff; 212} 213 214 215/* Round Container */ 216/* Changes the colour of the contact details background box */ 217.contact .round-container { 218 background: #fff; 219} 220/* Changes the colour of the background boxes for the services */ 221.services-list .round-container { 222 background: #fff; 223} 224 225 226 227/*Social Media Blocks*/
228/* Background colour of the social links in the article */ 229.socials.ct-page a { 230 background: rgb(143 158 177 / 20%); 231} 232/* Updates the background colour on hover */ 233.socials.ct-page a:hover { 234 background: rgb(143 158 177 / 60%); 235} 236/* Updates the colour of the icon in the social media surrounding box */ 237.socials.ct-page a i { 238 color: rgb(0 92 121 / 25%); 239} 240/* Updates the colour of the icon on hover */ 241.socials.ct-page a:hover i { 242 color: rgb(46 56 77); 243} 244 245 246/* Sales System Banner */ 247/* Updates the font colour of the text in the sales banner */ 248#banner-wrapper .row.clearfix.banner-notif p { 249 color: black; 250} 251#banner-wrapper .banner-notif i { 252 margin-right: 0.5rem; 253} 254#banner-wrapper .column.third.not-ban-one, #banner-wrapper .column.third.not-ban-two, #banner-wrapper .column.third.not-ban-three { 255 color: #000; 256} 257#banner-wrapper .banner-head span { 258 color: black; 259} 260 261 262/* 3 Main Service Cards */ 263/* Updates the background colour of the 3 main service cards */ 264.curve-card { 265 background: #fff; 266} 267 268 269/* Overlap boxes */ 270/* Updates the background colour of the back card */ 271.bg-bottom-box { 272 background: #0078cf; 273} 274/* Updates the background colour of the front card */ 275.bg-top-box { 276 background: #64aae0; 277} 278 279 280/*areas*/ 281/* Updates the background and font colour of the area boxes */ 282.area { 283 background-color: #ebf1f4; 284 color: #2e384d; 285} 286/* Updates the background color and font colour of the area boxes on hover */ 287.area:hover { 288 background-color:rgb(0 132 183); 289 color: white; 290} 291 292 293 294/* Review Carousel */ 295/* Updates the background colour of the box of the review */ 296.review { 297 background: white; 298} 299/* Updates the font colour of the text in the review box */ 300.review p { 301 color: #2e384d; 302} 303/* Updates the colour of the review name */ 304.review-name p { 305 color: #8f9eb1; 306} 307/* If dots are enabled on the slider, this updates their colour to show how many slides there are */ 308.review-carousel .slick-dots li { 309 background: #ddd; 310} 311/* Updates the colour of the dot to show which slide is active */ 312.review-carousel .slick-dots li.slick-active, .review-carousel .slick-dots li:hover { 313 background: orange; 314} 315 316 317/* Latest Posts */ 318/* Updates the background colour of the latest blog posts */ 319.latest-blog-post a { 320 background: #ffff; 321} 322/* Updates the font colour of the author and date on latest blog posts */ 323.latest-blog-post li { 324 color: #8f9eb1; 325} 326/* If dots are enabled on the slider, this updates their colour to show how many slides there are */ 327.latest-carousel .slick-dots li { 328 background: #ddd; 329} 330/* Updates the colour of the dot to show which slide is active */ 331.latest-carousel .slick-dots li.slick-active, .latest-carousel .slick-dots li:hover { 332 background: orange; 333} 334 335 336/* service page blocks that link out */ 337/* Updates the background colour of the service boxes */ 338.round-container { 339 background: #fff; 340} 341/* Updates the background colour when it's hovered over */ 342.round-container:hover { 343 background: rgb(143 158 177 / 20%); 344} 345/* Updates the font colour of the heading */
346.round-container .text-container h2, .round-container .text-container h3, .round-container .text-container h4 { 347 color: #2e384d; 348} 349/* Updates the font colour of the description */ 350.round-container .text-container p { 351 color: #2e384d; 352} 353/* Updates the colour of the icon that shows it links to another page */ 354.round-container .text-container i { 355 color: #2e384d; 356} 357/* Updates the colour of the text on hover to a darker colour */ 358.round-container:hover .text-container > div, .round-container:hover .text-container h2, .round-container:hover .text-container h3, .round-container:hover .text-container h4, .round-container:hover .text-container p { 359 color: #2e384d; 360} 361 362 363/* Quick Links */ 364/* Updates the background colour of the basic service link */ 365.quick-link { 366 background: #fff; 367} 368/* Updates the color of the icon on the basic service link */ 369.quick-link .btn-placebo i { 370 color: black; 371} 372 373 374/* hidden footer */ 375/* Updates the colour of the links in the footer */ 376.contact-feature a { 377 color: white; 378} 379/* Only update the colour - updates the border colour of the social links in the footer */ 380.socials a { 381 border: 1px solid #fff; 382} 383/* Updates the background colour to show its been hovered over. You'll need to update the border colour to match */ 384.socials a:hover { 385 background: white; 386 border-color: white; 387} 388/* Updates the social media icon colours in the footer */ 389.hidden-footer .socials i { 390 color: white; 391} 392/* Updates the social media icon colours on hover */ 393.socials a:hover i { 394 color: black; 395} 396 397 398/*FAQ IF WE HAVE USED IT - the main background of the button/question*/ 399.faq-01 .description-toggle { 400 background: #f0f0f0; 401 color: rgb(102, 102, 102); 402} 403/*FAQ IF WE HAVE USED IT - the content that drops down background and border colour*/ 404.faq-01 .description-toggle+.product-content { 405 background: #fafafa; 406 border-bottom: 5px solid #287aab; 407} 408/*FAQ IF WE HAVE USED IT - Updates the colour of the arrow on the dropdown*/ 409.faq-01 .description-toggle i { 410 color: #287aab; 411} 412/*Updates the colour of the title in the footer*/ 413.hidden-footer .contact-title { 414 color: #0395FF; 415} 416/*Updates the colour of text in the footer - It needs to be the same colour as the ones below where stated*/ 417.hidden-footer .contact-feature { 418 color: white; 419} 420/*Updates the colour of text in the footer - It needs to be the same colour*/ 421.hidden-footer .contact-sub { 422 color: white; 423} 424/*Updates the colour of text in the footer - It needs to be the same colour*/ 425#container footer p { 426 color: white; 427} 428/*Updates the colour of text in the footer - It needs to be the same colour - LAST ONE */ 429#container #footer_links a { 430 color: white; 431} 432/*Updates the number and email link text colour on hover*/ 433span[style*="color"]>a:hover { 434 color: #3bb7ff; 435} 436 437/*ONLY IF NEEDED AND - Updates the contact form title colours, i.e full name etc*/ 438#container #contact_page label { 439 color: #444; 440} 441/*This is for the sitemap link colour just incase you change the colour of the article background */ 442.body-privacy-policy #container a, .body-sitemap #container a, .body-cookie-policy #container a, .body-terms-and-conditions #container a { 443 color: black; 444} 445/*Changes the colour of the background and text of the button on the contact form*/ 446#container .submit { 447 background-color: rgb(210, 230, 245); 448 color: rgb(5, 124, 207); 449} 450/*Changes the colour of the background and text of the button in the contact form when someone hovers over it*/ 451#container .submit:hover { 452 background-color: rgb(5, 124, 207); 453 color: #fff; 454} 455/*Updates the colour of line in the footer, only update the colour section*/ 456@media(min-width: 60rem) { 457 #footer_can #copy { 458 border-top: 1px solid rgba(255,255,255,.25); 459 } 460} 461 462 463/* -- 464BLOGS 465-- */ 466 467/* Styles the background colour and text colour of the blog categories */ 468.blog-section .blog-feed-container aside .sidebar_links li a { 469 background: #EEE; 470 color: #000; 471} 472/* Styles the text hover on blog feed and related articles */ 473.blog-section .blog-feed-container #news_feed:not(.news_article) .blog-post:hover h2, .related-post:hover h2 { 474 color: #2675a4; 475} 476/* ONLY UPDATE IF THE WHOLE WEBSITES BACKGROUND COLOUR IS ALTERED - Backgroun
476d colour of the row of the related articles */ 477.related-sect:before { 478 background: #fafafa; 479} 480/* ONLY UPDATE IF BACKGROUND COLOUR HAS CHANGED - Updates the colour of the blog date */ 481.related-post p { 482 color: #999; 483} 484/*ONLY UPDATE IF BACKGROUND COLOUR HAS CHANGED - you need to update this to the same colour so the blog background matches*/ 485#container .blog-feed-container aside, #container article #news_feed, #container .blog-feed-container #news_feed:not(.news_article) .blog-post, #container article .news_article #article_snippet { 486 background: inherit; 487} 488/*ONLY UPDATE IF BACKGROUND COLOUR HAS CHANGED - Incase you need to alter the colour of the blog titles*/ 489#container .blog-feed-container .sidebar_links .sidebar_heading:before, #container .blog-feed-container #news_feed h2:first-child { 490 color: #000; 491} 492/*ONLY UPDATE IF BACKGROUND COLOUR HAS CHANGED - Change the date and author text colour*/ 493#container #news_feed ul li { 494 color: #999; 495} 496 497 498/* -- 499Reviews Page 500-- */ 501 502/*When a form/review is submitted, this is the confirmation page box, so select the main company colour for the background of a box*/ 503.body-review-confirmation .contact-confirmation, .body-contact_confirmation .contact-confirmation { 504 background: #287aab; 505} 506/*Once altered the above, this alters the colour of the text inside the box*/ 507.body-review-confirmation .contact-confirmation h2, .body-contact_confirmation .contact-confirmation h2, .body-review-confirmation .contact-confirmation p, .body-contact_confirmation .contact-confirmation p { 508 color: #fff; 509} 510/*Within this box there is a button, this changes the colour of the button*/ 511.body-review-confirmation .contact-confirmation a, .body-contact_confirmation .contact-confirmation a { 512 background: transparent; 513 border-color: #fff; 514 color: #fff; 515} 516/*This changes the colour of the button on hover*/ 517.body-review-confirmation .contact-confirmation a:hover, .body-contact_confirmation .contact-confirmation a:hover { 518 background: #fff; 519 color: #287aab; 520} 521 522 523 524 525/* --------------------------------- 526 527DO NOT CHANGE ANYTHING BELOW THIS 528 529----------------------------------*/ 530 531/*General Template CSS*/ 532body h1, body h2, body h3, body h4, body p, body ul { 533 font-family: "Open Sans", sans-serif; 534 line-height: 1.6; 535} 536#banner-wrapper h1, article h1, article h2, article h3,article h4 { 537 font-weight: 600; 538} 539#banner-wrapper h1, article h1 { 540 font-size: 42px; 541} 542#banner-wrapper h2, article h2 { 543 font-size: 30px; 544 margin: 0; 545} 546article h3 { 547 font-size: 30px; 548} 549article h4 { 550 font-size: 28px; 551} 552#banner-wrapper h1 span, article h1 span, article h2 span, article h3 span, article h4 span { 553 display: block; 554} 555#banner-wrapper p { 556 margin: 0; 557} 558#banner-wrapper p, article p { 559 font-weight: 400; 560 font-size: 17px; 561} 562#container header #header_contact h4:nth-last-child(2):after { 563 display: none; 564} 565fieldset label:after { 566 display: none; 567} 568.row.clearfix.b-lazy { 569 background-size: cover !important; 570} 571span[style*="color"]>a { 572 font-weight: 400 !important; 573 color: inherit; 574 text-decoration: none !important; 575 word-break: break-all; 576} 577#container .clearfix:before, #container .clearfix:after { 578 display: block!important; 579} 580article img { 581 border-radius: 10px; 582} 583.list { 584 display: flex;
585 align-items: baseline; 586} 587.list > i { 588 margin-right: 0.5rem; 589} 590.r-stack .column.half, .r-stack .column.third, .r-stack .column.fourth, .r-stack .column.two-third, .r-stack .column.two-fourth { 591 max-width: 35rem; 592 flex: 1 0 100%; 593 padding: 0 2rem; 594} 595 596 597/* Notification Bar*/ 598body .notification-bar span { 599 font-family: "Open Sans", sans-serif; 600 position: relative; 601 line-height: 1.6; 602} 603body .notification-contact span:before { 604 content: ""; 605 display: block; 606 position: absolute; 607 left: -0.75rem; 608 top: 0; 609 bottom: 0; 610 width: 2px; 611 z-index: 1; 612 height: 50%; 613 margin-top: auto; 614 margin-bottom: auto; 615} 616 617 618/* Header & Navigation */ 619#container .header_logo img { 620 max-height: 150px; 621 height: auto; 622 width: 100%; 623} 624#container #navigation > ul > li > a, #container #nav > .nav_placeholder > ul > li > a { 625 font-family: "Open Sans", sans-serif; 626 font-weight: 600; 627 line-height: 1.6; 628 text-transform: capitalize; 629 letter-spacing: 0.5px; 630} 631#container #nav > .active > a:before { 632 width: 100%; 633} 634 635 636/* Banner */ 637body #banner-wrapper h1 { 638 font-size: 32px; 639 padding-bottom: 0; 640 position: relative; 641 color: #fff; 642} 643#banner-wrapper h1 span { 644 display: block; 645 color: #fff; 646} 647#banner-wrapper p { 648 position: relative; 649 font-size: 16px; 650 color: #fff; 651} 652#banner-wrapper .banner-btn, #container .submit { 653 text-decoration: none; 654 transition: all 0.16s ease 0s; 655 border: none; 656 cursor: pointer; 657 border-radius: 5px; 658 padding: 8px 16px; 659 line-height: 1.5; 660 text-transform: capitalize; 661 font-weight: 600; 662 font-size: 14px; 663 letter-spacing: 0; 664 position: relative; 665 font-family: "Open Sans", sans-serif; 666 line-height: 1.6; 667} 668 669 670/* Icon Rounded Box */ 671.service-list { 672 display: flex; 673 flex-direction: row; 674 flex-wrap: wrap; 675 align-items: baseline; 676} 677.service-list i { 678 font-size: 24px; 679 margin-right: 1rem; 680} 681.service-list h4 { 682 font-size: 24px; 683} 684.service-list p { 685 margin-top: 0; 686} 687 688 689/* Background Boxes */ 690.bg-box { 691 padding: 1rem; 692} 693 694 695/* Background Image Overlay */ 696.bg-overlay { 697 position: relative; 698} 699.bg-overlay:before { 700 display: block !important; 701 content: ""; 702 position: absolute; 703 left: 0; 704 top: 0; 705 bottom: 0; 706 right: 0; 707} 708 709 710/* FAQ Blocks */ 711#container .faq-01 { 712 padding: 0; 713} 714#container .faq-01 .column { 715 margin: 0; 716} 717.faq-01 .description-toggle+.product-content.toggled { 718 margin: 0; 719} 720.faq-01 .description-toggle+.product-content { 721 margin-top: -5px; 722 transition: .5s; 723} 724.faq-01 .description-toggle h1, .faq-01 .description-toggle h2, .faq-01 .description-toggle h3, .faq-01 .description-toggle h4, .faq-01 .description-toggle p { 725 padding: 0; 726} 727.faq-01 .content p { 728 padding-left: 0; 729 border-left: none; 730} 731 732 733/* Hidden Footer */ 734.hidden-footer .contact-title { 735 text-transform: uppercase; 736 letter-spacing: 2px; 737 font-size: 21px; 738 font-weight: 500; 739} 740.hidden-footer .contact-feature { 741 line-height: 1.4; 742 display: block; 743 margin: 0.5rem 0; 744} 745.hidden-footer .contact-sub { 746 display: block; 747 line-height: 1.4; 748 margin: 0.6rem 0; 749 letter-spacing: 2px; 750 font-weight: 600; 751 text-transform: uppercase; 752} 753.hidden-footer .contact-feature i { 754 margin-right: 0.5rem; 755} 756 757 758/* Official Footer */ 759#container #footer_can { 760 padding-top: 0; 761} 762#container #copy p span.copyright, #container #copy span.company-number { 763 font-family: "Open Sans", sans-serif; 764 font-weight: 600; 765 letter-spacing: 2px; 766 line-height: 1.6; 767 text-align: center; 768} 769#container footer p { 770 font-size: 16px; 771} 772#container #footer_links li { 773 margin: 0; 774} 775#container #footer_links a { 776 letter-spacing: 0.5px; 777 font-weight: 400; 778 text-transform: capitalize; 779 font-family: "Open Sans", sans-serif; 780 font-size: 17px; 781 text-align: left; 782 line-height: 1.6; 783 margin-bottom: 0.6rem; 784} 785 786 787/* Contact Form */ 788#container #contact_page fieldset { 789 padding: 2rem; 790 border-radius: 10px; 791} 792#container form fieldset { 793 max-width: 100%; 794} 795#container fieldset label { 796 font-size: 14px; 797} 798#container fieldset input, #container fieldset select, #container fieldset textarea { 799 padding: 10px; 800 font-size: 14px; 801 background-size: 15px; 802} 803fieldset label:after { 804 display: none; 805} 806#container fieldset li { 807 padding: 0; 808 margin-top: 1rem; 809} 810#contact_page fieldset li:first-child, #contact_page fieldset li:last-child { 811 margin: 0; 812} 813 814 815/* Review Confirmation and Contact Confirmations */ 816.body-review-confirmation #banner-wrapper { 817 display: none; 818} 819.body-review-confirmation #content_can, .body-contact_confirmation #content_container { 820 display: flex;
821 align-items: center; 822 justify-content: center; 823} 824.body-review-confirmation .contact-confirmation p, .body-contact_confirmation .contact-confirmation p { 825 font-size: 21px; 826} 827.body-review-confirmation .contact-confirmation a, .body-contact_confirmation .contact-confirmation a { 828 font-weight: 400; 829 border-radius: 0; 830} 831 832/* Contact Information Section */ 833.contact .round-container { 834 height: 115px; 835} 836.contact .round-container .img-container, .services-list .round-container.icon-select .img-container { 837 align-items: center; 838 justify-content: center; 839 display: flex; 840 flex: 0 0 25%; 841} 842.contact .round-container .img-container img, .services-list .round-container.icon-select .img-container img { 843 height: 45px; 844 width: 45px; 845} 846.contact .round-container .text-container, .services-list .round-container.icon-select .text-container { 847 padding-left: 0; 848} 849#container .embed-responsive.embed-responsive-16by9 { 850 border-radius: 10px; 851} 852.socials.ct-page a { 853 border: 2px solid transparent; 854 height: 50px; 855 width: 50px; 856 border-radius: 5px; 857} 858.socials.ct-page a i { 859 font-size: 36px; 860 line-height: 36px; 861} 862 863 864/* Sales System Banner */ 865.is-section.is-box.is-section-auto.is-ban-nav { 866 z-index: 2; 867} 868#banner-wrapper .is-ban-nav .is-boxes { 869 min-height: auto; 870 z-index: 10; 871 position: relative; 872} 873#banner-wrapper .column.third.not-ban-one, #banner-wrapper .column.third.not-ban-two, #banner-wrapper .column.third.not-ban-three { 874 text-align: center; 875} 876#banner-wrapper .row.clearfix.banner-notif { 877 padding: 0rem 1.5rem; 878 flex-direction: row; 879} 880#banner-wrapper .row.clearfix.banner-notif p { 881 text-align: center; 882 display: inline-block; 883 font-size: 16px; 884 margin: 0; 885 line-height: 1.2; 886} 887#banner-wrapper .column.third.not-ban-one, #banner-wrapper .column.third.not-ban-two, #banner-wrapper .column.third.not-ban-three { 888 padding: 1rem 0; 889 margin: 0.25rem 0; 890} 891.slider-on-box .slider-content .banner-head { 892 font-size: 28px !important; 893} 894#banner-wrapper p.banner-head { 895 font-size: 28px; 896 font-weight: 600; 897 margin-top: 0; 898 margin-bottom: 0rem; 899 line-height: 1.2; 900} 901#banner-wrapper .banner-head span { 902 display: block; 903} 904 905 906/* 3 Main Service Cards */ 907.curve-card { 908 padding: 1rem; 909 text-align: center; 910 border-radius: 10px; 911} 912.curve-card .card-title { 913 margin-top: -50px; 914 display: flex;
915 align-items: center; 916 justify-content: center; 917 width: 75%; 918 height: 100px; 919 margin-left: auto; 920 margin-right: auto; 921 border-radius: 10px; 922} 923 924 925/* Overlap Boxes */ 926.bg-bottom-box { 927 padding: 1rem; 928} 929.bg-top-box { 930 padding: 1rem; 931 max-width: 80%; 932 margin-left: auto; 933 margin-right: auto; 934 margin-top: -60px; 935} 936 937 938/* Areas */ 939.area-tags{ 940 display:flex; 941 flex-wrap:wrap; 942 list-style-type: none; 943 padding:0; 944 justify-content: center; 945} 946.area{ 947 padding:5px 10px; 948 margin:5px 5px; 949 font-size:15px; 950 font-weight: 500; 951} 952.contact-feature a { 953 text-decoration: none!important; 954} 955 956 957/* Review Carousel */ 958.review-carousel .slick-slide > div { 959 text-align: center; 960 transition: all 300ms ease; 961 height: auto; 962 margin: 10px; 963 display: block; 964 align-items: center; 965 padding: 1rem; 966 justify-content: center; 967 flex-flow: row wrap; 968 position: relative; 969} 970.review { 971 padding: 1.5rem; 972} 973.review-name { 974 margin-top: 1rem; 975} 976.review-name p { 977 font-weight: 600; 978 letter-spacing: 1px; 979} 980.reviews-container p { 981 margin: 0; 982} 983.review-carousel .slick-list { 984 margin: 0 15px; 985} 986.review-carousel .slick-arrow { 987 top: 50%; 988 filter: invert(1); 989 transform: translateY(-50%); 990} 991.review-carousel .slick-prev { 992 left: 0; 993} 994.review-carousel .slick-arrow:before, .review-carousel .slick-arrow:after { 995 background: none !important; 996} 997.review-carousel .slick-dots { 998 bottom: -30px; 999} 1000 1001 1002/* Latest Posts Carousel */ 1003.latest-carousel .slick-slide > div { 1004 text-align: center; 1005 transition: all 300ms ease; 1006 height: auto; 1007 margin: 10px; 1008 display: flex;
1009 align-items: center; 1010 justify-content: center; 1011 flex-flow: row wrap; 1012 position: relative; 1013} 1014.latest-carousel .slick-list { 1015 margin: 0 30px; 1016} 1017.latest-blog-post img { 1018 height: 175px; 1019 width: 100%; 1020 object-fit: cover; 1021 border-radius: 0; 1022} 1023.latest-blog-post a { 1024 padding: 1rem; 1025 width: 100%; 1026} 1027.latest-blog-post h3 { 1028 font-size: 21px; 1029 text-align: left; 1030 line-height: 21px; 1031} 1032.latest-blog-post ul { 1033 display: flex; 1034 flex-wrap: wrap; 1035 flex-direction: row; 1036 padding: 0; 1037 margin: 0; 1038} 1039.latest-blog-post li { 1040 list-style-type: none; 1041 margin:0 0.5rem; 1042 font-size: 14px; 1043} 1044.latest-blog-post li:before { 1045 display: block; 1046 content: "-"; 1047 position: absolute; 1048 left: -0.5rem; 1049} 1050.latest-blog-post li:first-child { 1051 margin-left: 0; 1052} 1053.latest-blog-post li:first-child:before { 1054 display: none; 1055} 1056.latest-carousel .slick-arrow { 1057 top: 50%; 1058 filter: invert(1); 1059 transform: translateY(-50%); 1060} 1061.latest-carousel .slick-prev { 1062 left: 0; 1063} 1064.latest-carousel .slick-arrow:before, .latest-carousel .slick-arrow:after { 1065 background: none !important; 1066} 1067.latest-carousel .slick-dots { 1068 bottom: -30px; 1069} 1070section h1 { 1071 position: absolute; 1072 top: 50%; 1073 left: 50%; 1074 z-index: 2; 1075 -webkit-transform: translate(-50%, -50%); 1076 transform: translate(-50%, -50%); 1077 color: #fff; 1078 text-align: center; 1079 white-space: nowrap; 1080} 1081#section04 a span { 1082 position: absolute; 1083 top: 0; 1084 left: 50%; 1085 width: 24px; 1086 height: 24px; 1087 margin-left: -12px; 1088 border-left: 5px solid #fff; 1089 border-bottom: 5px solid #fff; 1090 -webkit-transform: rotate(-45deg); 1091 transform: rotate(-45deg); 1092 -webkit-animation: sdb04 2s infinite; 1093 animation: sdb04 2s infinite; 1094 box-sizing: border-box; 1095} 1096.demo a { 1097 position: absolute; 1098 bottom: 20px; 1099 left: 50%; 1100 z-index: 2; 1101 display: inline-block; 1102 -webkit-transform: translate(0, -50%); 1103 transform: translate(0, -50%); 1104 color: #fff; 1105 letter-spacing: .1em; 1106 text-decoration: none; 1107 transition: opacity .3s; 1108} 1109.demo a:hover { 1110 opacity: .5; 1111} 1112@-webkit-keyframes sdb04 { 1113 0% { 1114 -webkit-transform: rotate(-45deg) translate(0, 0); 1115 } 1116 20% { 1117 -webkit-transform: rotate(-45deg) translate(-10px, 10px); 1118 } 1119 40% { 1120 -webkit-transform: rotate(-45deg) translate(0, 0); 1121 } 1122} 1123@keyframes sdb04 { 1124 0% { 1125 transform: rotate(-45deg) translate(0, 0); 1126 } 1127 20% { 1128 transform: rotate(-45deg) translate(-10px, 10px); 1129 } 1130 40% { 1131 transform: rotate(-45deg) translate(0, 0); 1132 } 1133} 1134 1135 1136/* Service Page Blocks */ 1137.round-container { 1138 display: flex; 1139 flex-direction: row; 1140 border-radius: 10px; 1141 overflow: hidden; 1142} 1143.round-container .img-container { 1144 flex: 0 0 33%; 1145} 1146.round-container .img-container img { 1147 height: 100%; 1148 width: 100%; 1149 object-fit: cover; 1150 border-radius: 0; 1151} 1152.round-container .text-container { 1153 flex: 0 0 66%; 1154 padding: 1rem; 1155 height: 100%; 1156 position: relative; 1157 padding-right: 2.25rem; 1158 display: flex; 1159 flex-direction: column; 1160 justify-content: center; 1161} 1162.round-container .text-container h2, .round-container .text-container h3, .round-container .text-container h4 { 1163 font-size: 21px; 1164} 1165.round-container .text-container p { 1166 margin: 0; 1167 font-size: 16px; 1168} 1169.third .round-container .text-container p { 1170 line-height: 18px; 1171} 1172.round-container .text-container i { 1173 font-size: 21px; 1174 position: absolute; 1175 bottom: 1rem; 1176 right: 1rem; 1177 line-height: 21px; 1178} 1179 1180 1181/* Quick Links */ 1182.services-list .column[style*="background-image"] { 1183 display: none; 1184} 1185.services-list .round-container { 1186 margin: 1rem 0; 1187} 1188.services-list .round-container:first-child { 1189 margin-top:0; 1190} 1191.services-list .round-container:last-child { 1192 margin-bottom:0; 1193} 1194.third .quick-link { 1195 margin: 0.5rem 0; 1196} 1197.quick-link { 1198 display: flex;
1199 align-items: stretch; 1200} 1201.round { 1202 border-radius: 10px; 1203 overflow: hidden; 1204} 1205.quick-link .img-container { 1206 flex:1 0 25%; 1207} 1208.quick-link .img-container img { 1209 height: 100%!important; 1210 width: 100%; 1211 object-fit: cover; 1212 display: block; 1213 border-radius: 0; 1214} 1215.quick-link .text-container { 1216 flex: 1 0 50%; 1217 padding: 1rem; 1218 height: 100%; 1219 padding-right: 0; 1220} 1221.quick-link .text-container h3, .quick-link .text-container h2, .quick-link .text-container h4 { 1222 font-size: 21px; 1223} 1224.quick-link .btn-placebo { 1225 flex: 0 0 auto; 1226 padding: 1rem; 1227 display: flex; 1228 align-items: center; 1229} 1230.quick-link .btn-placebo i { 1231 font-size: 24px; 1232} 1233 1234@media (min-width: 50rem) and (max-width: 60rem) { 1235#container .services-list .third { 1236 flex: 1 0 50%; 1237} 1238#container .services-list > .third:first-child { 1239 padding-left: 1rem; 1240 padding-right: 0.5rem; 1241} 1242#container .services-list > .third:last-child { 1243 padding-right: 1rem; 1244 padding-left: 0.5rem; 1245} 1246} 1247 1248 1249 1250 1251/* Hidden Footer */ 1252#container .hidden-footer .third { 1253 text-align: center; 1254} 1255.socials { 1256 margin: 1rem 0; 1257} 1258.socials a { 1259 width: 30px; 1260 height: 30px; 1261 padding: 2px 5px; 1262 display: inline-flex;
1263 align-items: center; 1264 justify-content: center; 1265 margin-right: 0.5rem; 1266 border-radius: 3px; 1267} 1268.hidden-footer .socials i { 1269 font-size: 18px; 1270 line-height: 18px; 1271} 1272 1273 1274@media (min-width:40rem) { 1275 .r-stack .column.third, .r-stack .column.two-third { 1276 padding: 0; 1277 } 1278 .r-stack .column.fourth:nth-child(2n+1) { 1279 padding-left: 0; 1280 } 1281 .r-stack .column.fourth:nth-child(2n+2) { 1282 padding-right: 0; 1283 } 1284 .r-stack .column.half, .r-stack .column.fourth, .r-stack .column.two-fourth { 1285 padding: 0 1rem; 1286 } 1287 .r-stack .column.fourth { 1288 flex: 1 0 49%; 1289 max-width: 49%; 1290 } 1291 div .hasSidebar article .row { 1292 display: flex; 1293 } 1294 #content_can .hasSidebar article .row { 1295 display: flex; 1296 padding: 1rem 2rem; 1297 } 1298 #content_can #content_container.hasSidebar { 1299 padding: 0; 1300 } 1301 body .notification-bar .container { 1302 justify-content: center; 1303 } 1304} 1305 1306@media (min-width: 60rem) and (max-width: 80rem) { 1307.contact .round-container .img-container { 1308 display: none; 1309} 1310.contact .round-container .text-container { 1311 padding: 1rem; 1312 text-align: center; 1313} 1314body #nav > .nav_placeholder > ul > li:nth-child(n+4) { 1315 padding-top: 2rem; 1316 padding-left: 1rem; 1317} 1318body #nav > .nav_placeholder > ul > li { 1319 padding-left: 1rem; 1320} 1321body #nav > .nav_placeholder > ul > li:not(.nav_placeholder) > a { 1322 display: flex;
1323 align-items: flex-start; 1324 font-size: 16px; 1325} 1326body #nav > .nav_placeholder > ul > li:not(.nav_placeholder) > a:only-of-type:after { 1327 height: 16px; 1328} 1329} 1330 1331@media(min-width:50rem) { 1332 .r-table { 1333 display: flex; 1334 flex-direction: column; 1335 } 1336 .swh { 1337 order: 1; 1338 } 1339 .r-stack > .third:first-child+.third { 1340 padding: 0; 1341 } 1342 .r-stack .column.half, .r-stack .column.third, .r-stack .column.fourth, .r-stack .column.two-third, .r-stack .column.two-fourth { 1343 max-width: 45rem; 1344 } 1345} 1346 1347 1348@media(min-width:60rem) { 1349 .blog-section .blog-feed-container .sidebar_links { 1350 padding-top: 0; 1351 padding-bottom: 1rem; 1352 } 1353 #container .blog-feed-container .sidebar_links .sidebar_heading:before, #container .blog-feed-container #news_feed h2:first-child { 1354 font-family: âOpen Sansâ, sans-serif; 1355 } 1356 #container .blog-feed-container .sidebar_links > div { 1357 flex: 0 0 100%; 1358 } 1359 .blog-section #news_feed.news_article .article_img img { 1360 height: 300px; 1361 object-fit: cover; 1362 object-position: center; 1363 } 1364 #container header #header_contact { 1365 display: none; 1366 } 1367 #container #header_can ~ #banner-wrapper { 1368 padding-top: 0; 1369 } 1370 .r-stack .half:last-child { 1371 padding-right: 0; 1372 } 1373 .r-stack .column.fourth:nth-child(2) { 1374 padding-left: 0; 1375 padding-right: 0.5rem; 1376 } 1377 .r-stack .column.fourth:nth-child(3) { 1378 padding-left: 0.5rem; 1379 padding-right: 0; 1380 } 1381 .r-table { 1382 flex-direction: row; 1383 } 1384 .r-stack .column.half, .r-stack .column.third, .r-stack .column.fourth, .r-stack .column.two-third, .r-stack .column.two-fourth { 1385 padding: 0 1rem; 1386 } 1387 .r-stack .column.half { 1388 max-width: calc(55rem / 2); 1389 flex: 1 0 49%; 1390 } 1391 .r-stack .column.third { 1392 max-width: calc(55rem / 3); 1393 flex: 1 0 33.3%; 1394 } 1395 .r-stack .column.fourth { 1396 flex: 1 0 24%; 1397 max-width: calc(55rem / 4); 1398 } 1399 .r-stack .column.two-third { 1400 max-width: calc(55rem / 3 * 2); 1401 flex: 1 0 66.7%; 1402 } 1403 .r-stack .column.two-fourth { 1404 flex: 1 0 74%; 1405 max-width: calc(55rem / 4 * 2); 1406 } 1407 .r-stack > .third:first-child+.third { 1408 padding: 0 1rem; 1409 } 1410 body .notification-bar .container > div:last-child { 1411 flex-grow: 0; 1412 } 1413 #container .header_logo { 1414 margin: -0.5rem 0; 1415 } 1416 #container #footer_can { 1417 padding: 3rem 2rem; 1418 padding-top: 0; 1419 } 1420 #container #footer_links a { 1421 margin-left: 0; 1422 } 1423 #container .hidden-footer .third:nth-child(1) { 1424 text-align: left; 1425 } 1426 #container .hidden-footer .third:nth-child(3) { 1427 text-align: right; 1428 } 1429 #container .embed-responsive.embed-responsive-16by9 { 1430 padding-bottom: 25%; 1431 } 1432 #banner-wrapper .column.third.not-ban-one { 1433 text-align: left; 1434 } 1435 #banner-wrapper .column.third.not-ban-two { 1436 text-align: center; 1437 } 1438 #banner-wrapper .column.third.not-ban-three { 1439 text-align: right; 1440 } 1441 #container .overlay-banner { 1442 padding-bottom: 120px; 1443 } 1444 .body-index article > .row:first-child { 1445 margin-top: -180px; 1446 } 1447 .bg-bottom-box { 1448 max-width: 70%; 1449 margin-left: 10%; 1450 margin-right: auto; 1451 } 1452 .bg-top-box { 1453 padding: 1rem; 1454 max-width: 60%; 1455 margin-left: auto; 1456 margin-right: 10%; 1457 margin-top: -90px; 1458 } 1459 .review-carousel .slick-list { 1460 margin: 0 50px; 1461 } 1462 .latest-carousel .slick-list { 1463 margin: 0 50px; 1464 } 1465 .third .round-container .img-container { 1466 flex: 0 0 20%; 1467 } 1468 .third .round-container .text-container { 1469 flex: 1 0 80%; 1470 } 1471 .services-list .column[style*="background-image"] { 1472 display: block; 1473 } 1474 #container #copy p span.copyright, #container #copy span.company-number { 1475 text-align: left; 1476 } 1477} 1478 1479 1480@media(min-width:80rem) { 1481 .r-stack .column.half { 1482 max-width: calc(75rem / 2); 1483 } 1484 .r-stack .column.third { 1485 max-width: calc(75rem / 3); 1486 } 1487 .r-stack .column.fourth { 1488 max-width: calc(75rem / 4); 1489 } 1490 .r-stack .column.two-third { 1491 max-width: calc(75rem / 3 * 2); 1492 } 1493 .r-stack .column.two-fourth { 1494 max-width: calc(75rem / 4 * 2); 1495 } 1496 #container fieldset textarea { 1497 height: 100px; 1498 min-height: 100px; 1499 } 1500}aside{display:none !important;} 1501 </style><link href="https://fonts.googleapis.com/css?family=Oswald:400,500" rel="stylesheet">
1502<script src="https://kit.fontawesome.com/a222f59e43.js" crossorigin="anonymous"></script>
1502 1503<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css">
1503<script type="application/ld+json"> 1504 { 1505 "@context": "http://schema.org", 1506 "@type": "LocalBusiness", 1507 "name" : "Osbon Pharmacy", 1508 "telephone" : "01689 837575", 1509 "address" : { 1510 "@type" : "PostalAddress", 1511 "streetAddress" : "55 High Street, St Mary Cray, Orpington", 1512 "addressRegion" : "", 1513 "addressCountry" : "United Kingdom", 1514 "postalCode" : "BR5 3NJ" 1515 }, 1516 "logo": "https://www.easysites.uk/filestore/editor/1321805626/osbon-pharmacy-logo.png", 1517 "url" : "https://www.osbonpharmacy.co.uk/contact-us" 1518 1519 ,"openingHoursSpecification": 1520 [{ 1521 "@type": "OpeningHoursSpecification", 1522 "dayOfWeek": [ 1523 "Monday" 1524 ], 1525 "opens": "9:00", 1526 "closes": "17:00" 1527 },{ 1528 "@type": "OpeningHoursSpecification", 1529 "dayOfWeek": [ 1530 "Tuesday" 1531 ], 1532 "opens": "9:00", 1533 "closes": "17:00" 1534 },{ 1535 "@type": "OpeningHoursSpecification", 1536 "dayOfWeek": [ 1537 "Wednesday" 1538 ], 1539 "opens": "9:00", 1540 "closes": "17:00" 1541 },{ 1542 "@type": "OpeningHoursSpecification", 1543 "dayOfWeek": [ 1544 "Thursday" 1545 ], 1546 "opens": "9:00", 1547 "closes": "17:00" 1548 },{ 1549 "@type": "OpeningHoursSpecification", 1550 "dayOfWeek": [ 1551 "Friday" 1552 ], 1553 "opens": "9:00", 1554 "closes": "17:00" 1555 }] } 1556 </script>
1556 1557 </head> 1558 1559 1560<body class="un28282 body-contact-us"> 1561 1562 <div class="notification-bar"> 1563 <div class="container"> 1564 <div class="notification-social"> 1565 <span class='notification-facebook'><a target='_blank' rel='noopener noreferrer' title='Facebook' href='https://www.facebook.com/people/Osbon-Pharmacy/100066888920507/'><i class='icon ion-social-facebook'></i></a></span><span class='notification-linkedin'><a target='_blank' rel='noopener noreferrer' title='Linkedin' href='https://uk.linkedin.com/company/osbon-pharmacy'><i class='icon ion-social-linkedin'></i></a></span> </div> 1566 1567 <div class="notification-contact"><span class="phone-number-notification"><a class="phone-call" href="tel:01689837575">01689 837575</a></span><span class="mobile-number-notification"><a class="phone-call" href="tel:02085559188">02085 559188</a></span></div> 1568 </div> 1569 </div> 1570 1571 <div id="container"> 1572 <div id="header_can"> 1573 <header> 1574 <div class="company-branding"> 1575 <a href="/" class="header_logo" title="Home"> 1576 <img alt="Osbon Pharmacy" src="https://www.easysites.uk/filestore/editor/1321805626/osbon-pharmacy-logo.png"> 1577 </a> 1578 </div> 1579 <div id="header_contact"> 1580 <h4 class="phone"> 1581 <span>Phone Number:</span> 1582 <strong> 1583 <a class="phone-call" href="tel:01689837575">01689 837575</a> 1584 </strong> 1585 </h4> 1586 <h4 class="mobile"> 1587 <span>Mobile Number:</span> 1588 <strong> 1589 <a class="phone-call" href="tel:02085559188">02085 559188</a> 1590 </strong> 1591 </h4> 1592 </div> 1593 </header> 1594 </div> 1595 <div id="navigation_can"> 1596 <div id="navigation"> 1597 <ul id="nav"> 1598 <li><a class="btn_" title="About Us" target="_self" href="//www.osbonpharmacy.co.uk/about-us">About Us</a></li> 1599<li><a class="btn_" title="Our Services" target="_self" href="//www.osbonpharmacy.co.uk/our-services">Our Services</a></li> 1600<li><a class="btn_" title="Shop Online" target="_blank" href="https://www.lifepharmacy.co.uk/">Shop Online</a></li> 1601<li data-contact><a class="active btn_" title="Contact Us" target="_self" href="//www.osbonpharmacy.co.uk/contact-us">Contact Us</a></li> 1602</ul> </div> 1603 </div> 1604 1605 1606 <div id="banner-wrapper" data-is-home="0" data-banner-default-size=""> 1607 <div class="is-wrapper"> 1608 1609 <div class="is-section is-box is-section-auto is-ban-nav" style="background-color: #fbfbfb; border-top: 2px solid #f1f1f1; border-bottom: 2px solid #f1f1f1;"> 1610 <div class="is-boxes"> 1611 <div class="is-box-centered" style="padding:0!important;"> 1612 <div class="is-container is-builder container is-content-1200" id="contentareaOYzFs19" style="margin: 0 auto;"> 1613 <div class="row clearfix banner-notif"><div class="column third not-ban-one"> 1614 <i class="bi bi-people"></i> 1615 <p>Experienced Professionals</p> 1616 </div> 1617 <div class="column third not-ban-two"> 1618 <i class="bi bi-clipboard2-pulse"></i> 1619 <p>Consultations & Testing</p> 1620 </div> 1621 <div class="column third not-ban-three"> 1622 <i class="bi bi-capsule"></i> 1623 <p>Prescription Services</p> 1624 </div></div> 1625 </div> 1626 </div> 1627 </div> 1628</div> 1629 1630<div class="is-section is-box is-bg-grey is-dark-text is-section-30"> 1631 <div class="is-overlay"> 1632 <div class="is-overlay-bg" style="background-image: url('https://www.easysites.uk/filestore/editor/1321805626/pharmacist-banner.jpg'); background-position: 50% 20%;"></div> 1633 <div class="is-overlay-color" style="background-color: rgb(0, 0, 0); display: block; opacity: 0.6;"></div> 1634 <div class="is-overlay-content"></div> 1635 </div> 1636 <div class="is-boxes"> 1637 <div class="is-box-centered"> 1638 <div class="is-container is-builder container is-content-1200" id="contentareak8Pv6"><div class="row clearfix"><div class="column full center"> 1639 <h1>Contact Us <span>London & The Surrounding Areas</span></h1> 1640 <p>Osbon Pharmacy - Contact Us</p> 1641 </div></div> 1642 1643 </div> 1644 </div> 1645 </div> 1646 </div> 1647 1648 </div> </div> 1649 <div id="content_can"> 1650 <div id="content_container" data-s="" data-g="none"> 1651 1652 <aside></aside><article><div class="row clearfix r-stack" style="padding-bottom: 0rem; padding-top: 60px;"> 1653 <div class="column half"> 1654 <h1 style="padding:0;">Contact Us</h1> 1655 <p>At Osbon Pharmacy we are dedicated to primary care. Our team are focused on providing high-quality services and customer care, we will do everything we can to meet your needs; your health matters.</p> 1656 <div class="socials ct-page"> 1657 <a href="https://www.facebook.com/people/Osbon-Pharmacy/100066888920507/"> 1658 <i class="icon ion-social-facebook"></i></a> 1659 <a href="https://uk.linkedin.com/company/osbon-pharmacy 1660"> 1661 <i class="icon ion-social-linkedin"></i></a> 1662 </div> 1663 </div> 1664 <div class="column half"> 1665 <!-- Start Contact Form --> 1666 <div class="row clearfix"> 1667 <div class="column full" data-noedit=""> 1668 <div id="contact_page"> 1669 <form action="https://www.easysites.uk/websites/contact/contactv5.php" method="post"><input type="hidden" name="auth" value="13218056266426044351554828172"><fieldset> 1670 <ol> 1671 <li> 1672 <label for="full_name">Full Name:</label> 1673 <input 1674 type="text" 1675 name="first_name" 1676 id="full_name" 1677 placeholder="Full Name" 1678 value="" 1679 required 1680 > 1681 </li> 1682 <li> 1683 <label for="email_address">E-mail Address:</label> 1684 <input 1685 type="email" 1686 name="email_address" 1687 id="email_address" 1688 placeholder="[email protected]" 1689 value="" 1690 required 1691 aria-describedby="email_hint" 1692 >
1693 <span id="email_hint" class="form_hint">Proper format "<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8fe1eee2eacfebe0e2eee6e1a1ece0e2">[email protected]</a>"</span> 1694 </li> 1695 <li> 1696 <label for="phone_number">Phone Number:</label> 1697 <input 1698 type="tel" 1699 name="phone_number" 1700 id="phone_number" 1701 placeholder="01253 000000" 1702 value="" 1703 > 1704 </li> 1705 <li> 1706 <label for="enquiry">Enquiry:</label> 1707 <textarea 1708 class="textarea" 1709 name="enquiry" 1710 id="enquiry" 1711 cols="120" 1712 rows="40" 1713 required 1714 ></textarea> 1715 </li> 1716 <li> 1717 <label class="contact_available" for="available_check"> 1718 Please leave this field blank 1719 <input 1720 type="text" 1721 name="available_check" 1722 id="available_check" 1723 placeholder="available_check" 1724 value="" 1725 > 1726 </label> 1727 </li> 1728 </ol> 1729 <div id="button"> 1730 <button class="submit" type="submit">Submit Form</button> 1731 </div> 1732</fieldset></form></div> 1733 </div> 1734 </div> 1735 <!-- End Contact Form --></div> 1736 </div> 1737 <div class="row clearfix contact" style="padding-bottom: 1rem;"> 1738 <div class="column third"> 1739 <div class="round-container"> 1740 <div class="img-container"> 1741 <img src="https://www.easysites.uk/filestore/editor/1321805626/Icons/email.png" alt=""> 1742 </div> 1743 <div class="text-container"> 1744 <h3>Email</h3> 1745 <p> 1746 <span style="color: #8f9eb1;"><a href="/contact-us" title="Contact us">info@osbonpharmacy.co.uk</a></span> 1747 </p> 1748 </div> 1749 </div> 1750 </div> 1751 <div class="column third"> 1752 <div class="round-container"> 1753 <div class="img-container"> 1754 <img src="https://www.easysites.uk/filestore/editor/1321805626/Icons/phone.png" alt=""> 1755 </div> 1756 <div class="text-container"> 1757 <h3>Phone</h3> 1758 <p> 1759 <span style="color: #8f9eb1;"><a class="phone-call" href="tel:01689837575">01689 837575</a></span> 1760 </p> 1761 <p style="color: rgb(255, 255, 255);"> 1762 <span style="color: #8f9eb1;"></span> 1763 </p> 1764 </div> 1765 </div> 1766 </div> 1767 <div class="column third"> 1768 <div class="round-container"> 1769 <div class="img-container"> 1770 <img src="https://www.easysites.uk/filestore/editor/1321805626/Icons/location.png" alt=""> 1771 </div> 1772 <div class="text-container"> 1773 <h3>Address</h3> 1774 <p style="color: rgb(255, 255, 255);"> 1775 <span style="color: #8f9eb1;">55 High Street, BR5 3NJ</span> 1776 </p> 1777 </div> 1778 </div> 1779 </div> 1780 </div> 1781 <div class="row clearfix" style="padding-top: 2rem; padding-bottom: 5rem;"> 1782 <div class="column full" style="margin-top: 0px; margin-bottom: 0px;"> 1783 <div class="embed-responsive embed-responsive-16by9"> 1784 <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2481.448546279517!2d-0.0021529840386542163!3d51.54167361601733!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47d8a789fdf05e0d%3A0xbeedb7b49e496751!2s54%20The%20Mall%2C%20London%20E15%201XE!5e0!3m2!1sen!2suk!4v1674725594803!5m2!1sen!2suk" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe> 1785 </div> 1786 </div> 1787 </div> 1788 <div class="row clearfix hidden-footer" style="padding-top: 3rem; padding-bottom: 0px; background-color: rgb(17, 17, 17);"> 1789 <div class="column third"> 1790 <p class="contact-title">Opening Hours</p> 1791 <p class="contact-feature">Our support is available to help you. </p> 1792 <p class="contact-feature">Monday - Friday: 9:00 AM - 6:00 PM</p> 1793 <p class="contact-feature">Saturday: 9:00 AM - 6:00 PM</p> 1794 <p class="contact-feature">Sunday: 11:00 AM - 5:00 PM</p> 1795 </div> 1796 <div class="column third"> 1797 <p class="contact-title">Contact Us</p> 1798 <p class="contact-feature"> 1799At Osbon Pharmacy we are dedicated to primary care. Our team are focused on providing high-quality services and customer care, we will do everything we can to meet your needs; your health matters. </p> 1800 </div> 1801 <div class="column third"> 1802 <p class="contact-title">Contact Details</p> 1803 <p class="contact-feature"> 1804 <i class="icon ion-ios-location"></i>55 High Street, BR5 3NJ 1805 </p> 1806 <p class="contact-feature"> 1807 <i class="icon ion-ios-telephone"></i><a class="phone-call" href="tel:01689837575">01689 837575</a> 1808 </p> 1809 <p class="contact-feature"> 1810 <i class="icon ion-ios-email"></i><a href="/contact-us" title="Contact us">info@osbonpharmacy.co.uk</a> 1811 </p> 1812 <div class="socials"> 1813 <a href="https://www.facebook.com/people/Osbon-Pharmacy/100066888920507/" target="_blank"> 1814 <i class="icon ion-social-facebook"></i></a> 1815 <a href="https://uk.linkedin.com/company/osbon-pharmacy" target="_blank"> 1816 <i class="icon ion-social-linkedin"></i></a> 1817 </div> 1818 </div> 1819 </div></article> </div> </div> 1820 <div id="footer_can"> 1821 <footer> 1822 <div id="footer_links"> 1823 <ul> 1824 <li><a class="btn_" title="About Us" target="_self" href="//www.osbonpharmacy.co.uk/about-us">About Us</a></li> 1825<li><a class="btn_" title="Our Services" target="_self" href="//www.osbonpharmacy.co.uk/our-services">Our Services</a></li> 1826<li><a class="btn_" title="Shop Online" target="_blank" href="https://www.lifepharmacy.co.uk/">Shop Online</a></li> 1827<li><a title="Contact Us" target="_self" href="//www.osbonpharmacy.co.uk/contact-us">Contact Us</a></li> 1828 <li><a href="/privacy-policy" title="Privacy Policy">Privacy Policy</a></li> 1829 <li><a href="/cookie-policy" title="Cookie Policy">Cookie Policy</a></li> 1830 <li><a href="/terms-and-conditions" title="Terms and Conditions">Terms and Conditions</a></li> 1831 <li><a href="/sitemap" title="sitemap">Sitemap</a></li> 1832 </ul> 1833 </div> 1834 <div id="copy"> 1835 <p> 1836 <span class="copyright">
1836Copyright © 1837 2026 </span> 1838 <span class="company"> 1839 Osbon Pharmacy </span> 1840 </p> 1841 </div> 1842 </footer> 1843 </div> 1844 </div>
vendor: 115 bytes, lines 1844-1845
1844 1845 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1845<script> 1846 var responsiveNav = (function (E, y) { 1847 var K = !!E.getComputedStyle; 1848 if (!E.getComputedStyle) { 1849 E.getComputedStyle = function (a) { 1850 this.el = a; 1851 this.getPropertyValue = function (b) { 1852 var c = /(\-([a-z]){1})/g; 1853 if (b === "float") { 1854 b = "styleFloat" 1855 } 1856 if (c.test(b)) { 1857 b = b.replace(c, function () { 1858 return arguments[2].toUpperCase() 1859 }) 1860 } 1861 return a.currentStyle[b] ? a.currentStyle[b] : null 1862 }; 1863 return this 1864 } 1865 } 1866 var F, A, H, J = y.documentElement, 1867 I = y.getElementsByTagName("head")[0], 1868 t = y.createElement("style"), 1869 u = false, 1870 x = function (b, d, c, e) { 1871 if ("addEventListener" in b) { 1872 try { 1873 b.addEventListener(d, c, e) 1874 } catch (a) { 1875 if (typeof c === "object" && c.handleEvent) { 1876 b.addEventListener(d, function (f) { 1877 c.handleEvent.call(c, f) 1878 }, e) 1879 } else { 1880 throw a 1881 } 1882 } 1883 } else { 1884 if ("attachEvent" in b) { 1885 if (typeof c === "object" && c.handleEvent) { 1886 b.attachEvent("on" + d, function () { 1887 c.handleEvent.call(c) 1888 }) 1889 } else { 1890 b.attachEvent("on" + d, c) 1891 } 1892 } 1893 } 1894 }, 1895 w = function (b, d, c, e) { 1896 if ("removeEventListener" in b) { 1897 try { 1898 b.removeEventListener(d, c, e) 1899 } catch (a) { 1900 if (typeof c === "object" && c.handleEvent) { 1901 b.removeEventListener(d, function (f) { 1902 c.handleEvent.call(c, f) 1903 }, e) 1904 } else { 1905 throw a 1906 } 1907 } 1908 } else { 1909 if ("detachEvent" in b) { 1910 if (typeof c === "object" && c.handleEvent) { 1911 b.detachEvent("on" + d, function () { 1912 c.handleEvent.call(c) 1913 }) 1914 } else { 1915 b.detachEvent("on" + d, c) 1916 } 1917 } 1918 } 1919 }, 1920 G = function (a) { 1921 var b = a.firstChild; 1922 while (b !== null && b.nodeType !== 1) { 1923 b = b.nextSibling 1924 } 1925 return b 1926 }, 1927 v = function (a, c) { 1928 for (var b in c) { 1929 a.setAttribute(b, c[b]) 1930 } 1931 }, 1932 C = function (a, b) { 1933 a.className += " " + b; 1934 a.className = a.className.replace(/(^\s*)|(\s*$)/g, "") 1935 }, 1936 z = function (a, c) { 1937 var b = new RegExp("(\\s|^)" + c + "(\\s|$)"); 1938 a.className = a.className.replace(b, " ").replace(/(^\s*)|(\s*$)/g, "") 1939 }, 1940 B = function (a, c) { 1941 var b; 1942 this.options = { 1943 animate: true, 1944 transition: 400, 1945 label: "Navigation", 1946 insert: "after", 1947 customToggle: "", 1948 openPos: "relative", 1949 jsClass: "js", 1950 init: function () { }, 1951 open: function () { }, 1952 close: function () { } 1953 }; 1954 for (b in c) { 1955 this.options[b] = c[b] 1956 } 1957 C(J, this.options.jsClass); 1958 this.wrapperEl = a.replace("#", ""); 1959 if (y.getElementById(this.wrapperEl)) { 1960 this.wrapper = y.getElementById(this.wrapperEl) 1961 } else { 1962 throw new Error("The nav element you are trying to select doesn't exist") 1963 } 1964 this.wrapper.inner = G(this.wrapper); 1965 A = this.options; 1966 F = this.wrapper; 1967 this._init(this) 1968 }; 1969 B.prototype = { 1970 destroy: function () { 1971 this._removeStyles(); 1972 z(F, "closed"); 1973 z(F, "opened"); 1974 F.removeAttribute("style"); 1975 F.removeAttribute("aria-hidden"); 1976 F = null; 1977 L = null; 1978 w(E, "load", this, false); 1979 w(E, "resize", this, false); 1980 w(H, "mousedown", this, false); 1981 w(H, "touchstart", this, false); 1982 w(H, "touchend", this, false); 1983 w(H, "keyup", this, false); 1984 w(H, "click", this, false); 1985 if (!A.customToggle) { 1986 H.parentNode.removeChild(H) 1987 } else { 1988 H.removeAttribute("aria-hidden") 1989 } 1990 }, 1991 toggle: function () { 1992 if (!u) { 1993 z(F, "closed"); 1994 C(F, "opened"); 1995 F.style.position = A.openPos; 1996 v(F, { 1997 "aria-hidden": "false" 1998 }); 1999 setNavFocusable(F, true); 2000 u = true; 2001 A.open() 2002 } else { 2003 z(F, "opened"); 2004 C(F, "closed"); 2005 v(F, { 2006 "aria-hidden": "true" 2007 }); 2008 setNavFocusable(F, false); 2009 if (A.animate) { 2010 setTimeout(function () { 2011 F.style.position = "absolute" 2012 }, A.transition + 10) 2013 } else { 2014 F.style.position = "absolute" 2015 } 2016 u = false;
2017 A.close() 2018 } 2019 }, 2020 handleEvent: function (a) { 2021 var b = a || E.event; 2022 switch (b.type) { 2023 case "mousedown": 2024 this._onmousedown(b); 2025 break; 2026 case "touchstart": 2027 this._ontouchstart(b); 2028 break; 2029 case "touchend": 2030 this._ontouchend(b); 2031 break; 2032 case "keyup": 2033 this._onkeyup(b); 2034 break; 2035 case "click": 2036 this._onclick(b); 2037 break; 2038 case "load": 2039 this._transitions(b); 2040 this._resize(b); 2041 break; 2042 case "resize": 2043 this._resize(b); 2044 break 2045 } 2046 }, 2047 _init: function () { 2048 C(F, "closed"); 2049 this._createToggle(); 2050 x(E, "load", this, false); 2051 x(E, "resize", this, false); 2052 x(H, "mousedown", this, false); 2053 x(H, "touchstart", this, false); 2054 x(H, "touchend", this, false); 2055 x(H, "keyup", this, false); 2056 x(H, "click", this, false) 2057 }, 2058 _createStyles: function () { 2059 if (!t.parentNode) { 2060 I.appendChild(t) 2061 } 2062 }, 2063 _removeStyles: function () { 2064 if (t.parentNode) { 2065 t.parentNode.removeChild(t) 2066 } 2067 }, 2068 _createToggle: function () { 2069 if (!A.customToggle) { 2070 var a = y.createElement("a"); 2071 a.innerHTML = A.label; 2072 v(a, { 2073 href: "#", 2074 id: "nav-toggle" 2075 }); 2076 if (A.insert === "after") { 2077 F.parentNode.insertBefore(a, F.nextSibling) 2078 } else { 2079 F.parentNode.insertBefore(a, F) 2080 } 2081 H = y.getElementById("nav-toggle") 2082 } else { 2083 var b = A.customToggle.replace("#", ""); 2084 if (y.getElementById(b)) { 2085 H = y.getElementById(b) 2086 } else { 2087 throw new Error("The custom nav toggle you are trying to select doesn't exist") 2088 } 2089 } 2090 }, 2091 _preventDefault: function (a) { 2092 if (a.preventDefault) { 2093 a.preventDefault(); 2094 a.stopPropagation() 2095 } else { 2096 a.returnValue = false 2097 } 2098 }, 2099 _onmousedown: function (a) { 2100 var b = a || E.event; 2101 if (!(b.which === 3 || b.button === 2)) { 2102 this._preventDefault(a); 2103 this.toggle(a) 2104 } 2105 }, 2106 _ontouchstart: function (a) { 2107 H.onmousedown = null; 2108 this._preventDefault(a); 2109 this.toggle(a) 2110 }, 2111 _ontouchend: function () { 2112 var a = this; 2113 F.addEventListener("click", a._preventDefault, true); 2114 setTimeout(function () { 2115 F.removeEventListener("click", a._preventDefault, true) 2116 }, A.transition) 2117 }, 2118 _onkeyup: function (a) { 2119 var b = a || E.event; 2120 if (b.keyCode === 13) { 2121 this.toggle(a) 2122 } 2123 }, 2124 _onclick: function (a) { 2125 this._preventDefault(a) 2126 }, 2127 _transitions: function () { 2128 if (A.animate) { 2129 var b = F.style, 2130 a = "max-height " + A.transition + "ms"; 2131 b.WebkitTransition = a; 2132 b.MozTransition = a; 2133 b.OTransition = a; 2134 b.transition = a 2135 } 2136 }, 2137 _calcHeight: function () { 2138 var a = F.inner.offsetHeight, 2139 b = "#" + this.wrapperEl + ".opened{max-height:" + a + "px}"; 2140 if (K) { 2141 t.innerHTML = b; 2142 b = "" 2143 } 2144 }, 2145 _resize: function () { 2146 if (E.getComputedStyle(H, null).getPropertyValue("display") !== "none") { 2147 v(H, { 2148 "aria-hidden": "false" 2149 }); 2150 if (F.className.match(/(^|\s)closed(\s|$)/)) { 2151 v(F, { 2152 "aria-hidden": "true" 2153 }); 2154 F.style.position = "absolute"; 2155 setNavFocusable(F, false) 2156 } 2157 this._createStyles(); 2158 this._calcHeight() 2159 } else { 2160 v(H, { 2161 "aria-hidden": "true" 2162 }); 2163 v(F, { 2164 "aria-hidden": "false" 2165 }); 2166 F.style.position = A.openPos; 2167 setNavFocusable(F, true); 2168 this._removeStyles() 2169 } 2170 A.init() 2171 } 2172 }; 2173 var L; 2174 2175 function D(a, b) { 2176 if (!L) { 2177 L = new B(a, b) 2178 } 2179 return L 2180 } 2181 return D 2182 })(window, document); 2183 2184 function setNavFocusable(container, makeFocusable) { 2185 // Any selector of focusable elements in your menu 2186 var focusable = container.querySelectorAll("a"); 2187 2188 focusable.forEach(function (el) { 2189 if (makeFocusable) { 2190 el.removeAttribute("tabindex"); 2191 } else { 2192 el.setAttribute("tabindex", "-1"); 2193 } 2194 }); 2195 } 2196 </script>
2196 2197 2198 <!--[if lte IE 9]> 2199
2199<script src="https://0nline.uk/s3/easysites/responsive/responsiveIE-min.js"></script>
2199 2200
2200<script src="https://0nline.uk/s3/easysites/ie/ieFix-min.js"></script>
2200 2201 <![endif]--> 2202 2203
2203<script> 2204 var navigation = responsiveNav("#navigation"); 2205 (function () { 2206 function getScript(url, success, failure) { 2207 var script = document.createElement('script'); 2208 script.src = url; 2209 var head = document.getElementsByTagName('head')[0], 2210 done = false; 2211 script.onload = script.onreadystatechange = function () { 2212 if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { 2213 done = true; 2214 success(); 2215 script.onload = script.onreadystatechange = null; 2216 head.removeChild(script); 2217 } 2218 }; 2219 script.onerror = function () { 2220 if (typeof failure === 'function') { 2221 failure(); 2222 } 2223 }; 2224 head.appendChild(script); 2225 } 2226 getScript('https://www.easysites.uk/websites/js/masterSeven.js', function () { 2227 getScript('https://www.easysites.uk/websites/themes/18/theme.js', function () { 2228 2229 var referrer = document.referrer; 2230 var pathname = window.location.pathname; 2231 var url = window.location.href; 2232 var useragent = navigator.userAgent; 2233 var browserid = 10000424; 2234 var isMobile = false; 2235 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) || 2236 /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.
2236substr(0, 4))) isMobile = true; 2237 var userIP = '000'; 2238 var adwords = false; 2239 var both = referrer + '§' + pathname + '§' + url + '§' + useragent + '§' + userIP + '§' + isMobile + '§' + browserid + '§' + adwords; 2240 var dataString = 'data=' + both; 2241 2242 $.ajax({ 2243 type: "POST", 2244 url: "/statistics/theCollectorv2.php", 2245 data: dataString, 2246 cache: false, 2247 success: function (data) { } 2248 }); 2249 2250 // Track phone call clicks 2251 $('.phone-call').on('click', function (e) { 2252 var websiteId = 10000424; 2253 trackContactClick(websiteId, 'phone'); 2254 }); 2255 2256 // Track WhatsApp clicks 2257 $('.whatsapp-widget').on('click', function (e) { 2258 var websiteId = 10000424; 2259 trackContactClick(websiteId, 'whatsapp'); 2260 }); 2261 2262 /** 2263 * Function to track contact clicks 2264 * @param {number} websiteId - The website ID 2265 * @param {string} contactType - Either 'phone' or 'whatsapp' 2266 */ 2267 function trackContactClick(websiteId, contactType) { 2268 // Create the data string with the format: websiteId§contactType 2269 var dataString = 'data=' + websiteId + '§' + contactType; 2270 2271 // Send the tracking data 2272 $.ajax({ 2273 type: "POST", 2274 url: "/statistics/callCollector.php", 2275 data: dataString, 2276 cache: false, 2277 success: function (data) { 2278 // Success - no action needed 2279 }, 2280 error: function (xhr, status, error) { 2281 // Optional: Silently log errors to console 2282 console.error("Contact tracking error:", error); 2283 } 2284 }); 2285 } 2286 2287 2288 window.onbeforeunload = function (event) { 2289 xmlhttp = new XMLHttpRequest(); 2290 xmlhttp.open("POST", "/statistics/theCollectorv2.php", true); 2291 xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 2292 var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds(); 2293 var currentPage = TimeMe.currentPageName; 2294 var task = 'pageTime'; 2295 var browserid = 10000424; 2296 var send = task + '|' + browserid + '|' + currentPage + '|' + timeSpentOnPage; 2297 xmlhttp.send(send); 2298 }; 2299 2300 2301 function applyAnimation(i) { 2302 var e = 0; 2303 i.find(".is-animated").each(function () { 2304 "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")) 2305 }) 2306 } 2307 2308 function removeAnimation(i) { 2309 i.find(".is-animated").each(function () { 2310 $(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") 2311 }) 2312 } 2313 2314 function applyAnimationSection(i) { 2315 var e = 0; 2316 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 () { 2317 "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")) 2318 }) 2319 } 2320 2321 function removeAnimationSection(i) { 2322 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 () { 2323 $(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") 2324 }) 2325 } 2326 2327 function playAllVideoBg() { 2328 jQuery(".is_video_bg").each(function () { 2329 var i = jQuery(this).find(".screen").attr("id"); 2330 $("#" + i).data("youtubePlayer").onYouTubePlayerAPIReady() 2331 }) 2332 } 2333 2334 function loadScript(i, e) { 2335 var s = document.createElement("script"); 2336 s.type = "text/javascript", s.readyState ? s.onreadystatechange = function () { 2337 "loaded" != s.readyState && "complete" != s.readyState || (s.onreadystatechange = null, e()) 2338 } : s.onload = function () { 2339 e() 2340 }, s.src = i, document.body.appendChild(s) 2341 } 2342 $(document).ready(function (i) { 2343 $(".is-arrow-down a").click(function (i) { 2344 return $(this).parents(".is-section").nextAll("div:not(.is-hidden
2344)").html() && $("html,body").animate({ 2345 scrollTop: $(this).parents(".is-section").nextAll("div:not(.is-hidden)").offset().top - parseInt($(".is-wrapper").css("padding-top")) 2346 }, 800), i.preventDefault(), i.stopImmediatePropagation(), !1 2347 }), $(".is-wrapper > div:first-child").find(".is-scale-animated").addClass("is-appeared"), $(".is-scale-animated").appear(), $(".is-scale-animated").on("appear", function () { 2348 $(this).addClass("is-appeared") 2349 }), $(".is-scale-animated").on("disappear", function () { 2350 $(this).removeClass("is-appeared") 2351 }), $(".is-animated").each(function () { 2352 $(this).addClass("animated"), $(this).addClass("fadeOut") 2353 }), $(".is-section").appear(), $(".is-section").each(function () { 2354 $(this).is(":appeared") && applyAnimationSection($(this)) 2355 }), 0 == $(window).scrollTop() && setTimeout(applyAnimationSection($(".is-section").first()), 2e3), $(".is-section").on("appear", function () { 2356 applyAnimationSection($(this)) 2357 }), $(".is-section").on("disappear", function () { 2358 removeAnimationSection($(this)) 2359 }), $(".is-container").appear(), $(".is-container").each(function () { 2360 $(this).is(":appeared") && applyAnimation($(this)) 2361 }), 0 == $(window).scrollTop() && $(".is-section").first().find(".is-container").each(function () { 2362 setTimeout(applyAnimation($(this)), 2e3) 2363 }), $(".is-container").on("appear", function () { 2364 applyAnimation($(this)) 2365 }), $(".is-container").on("disappear", function () { 2366 removeAnimation($(this)) 2367 }) 2368 }), 2369 function (i) { 2370 function e() { 2371 n = !1; 2372 for (var e = 0, s = t.length; e < s; e++) { 2373 var o = i(t[e]).filter(function () { 2374 return i(this).is(":appeared") 2375 }); 2376 if (o.trigger("appear", [o]), r[e]) { 2377 var a = r[e].not(o); 2378 a.trigger("disappear", [a]) 2379 } 2380 r[e] = o 2381 } 2382 } 2383 2384 function s(i) { 2385 t.push(i), r.push() 2386 } 2387 var t = [], 2388 o = !1, 2389 n = !1, 2390 a = { 2391 interval: 250, 2392 force_process: !1 2393 }, 2394 l = i(window), 2395 r = []; 2396 i.expr[":"].appeared = function (e) { 2397 var s = i(e); 2398 if (!s.is(":visible")) return !1; 2399 var t = l.scrollLeft(), 2400 o = l.scrollTop(), 2401 n = s.offset(), 2402 a = n.left, 2403 r = n.top; 2404 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() 2405 }, i.fn.extend({ 2406 appear: function (t) { 2407 var l = i.extend({}, a, t || {}), 2408 r = this.selector || this; 2409 if (!o) { 2410 var d = function () { 2411 n || (n = !0, setTimeout(e, l.interval)) 2412 }; 2413 i(window).scroll(d).resize(d), o = !0 2414 } 2415 return l.force_process && setTimeout(e, l.interval), s(r), i(r) 2416 } 2417 }), i.extend({ 2418 force_appear: function () { 2419 return !!o && (e(), !0) 2420 } 2421 }) 2422 }("undefined" != typeof module ? require("jquery") : jQuery), 2423 function (i) { 2424 "use strict"; 2425 "function" == typeof define && define.amd ? define(["jquery"], i) : "undefined" != typeof exports ? module.exports = i(require("jquery")) : i(jQuery) 2426 }(function (i) { 2427 "use strict"; 2428 var e = window.Slick || {}; 2429 (e = function () { 2430 var e = 0; 2431 return function (s, t) { 2432 var o, n = this; 2433 n.defaults = { 2434 accessibility: !0, 2435 adaptiveHeight: !1, 2436 appendArrows: i(s), 2437 appendDots: i(s), 2438 arrows: !0, 2439 asNavFor: null, 2440 prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>', 2441 nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>', 2442 autoplay: !1, 2443 autoplaySpeed: 3e3, 2444 centerMode: !1, 2445 centerPadding: "50px", 2446 cssEase: "ease", 2447 customPaging: function (i, e) { 2448 return '<button type="button" data-role="none" role="button" aria-required="false" tabindex="0">' + (e + 1) + "</button>" 2449 }, 2450 dots: !1, 2451 dotsClass: "slick-dots", 2452 draggable: !0, 2453 easing: "linear", 2454 edgeFriction: .35, 2455 fade: !1, 2456 focusOnSelect: !1, 2457 infinite: !0, 2458 initialSlide: 0, 2459 lazyLoad: "ondemand", 2460 mobileFirst: !1, 2461 pauseOnHover: !0, 2462 pauseOnDotsHover: !1, 2463 respondTo: "window", 2464 responsive: null, 2465 rows: 1, 2466 rtl: !1, 2467 slide: "", 2468 slidesPerRow: 1, 2469 slidesToShow: 1, 2470 slidesToScroll: 1, 2471 speed: 500, 2472 swipe: !0, 2473 swipeToSlide: !1, 2474 touchMove: !0, 2475 touchThreshold: 5, 2476 useCSS: !0, 2477 useTransform: !1, 2478 variableWidth: !1, 2479 vertical: !1, 2480 verticalSwiping: !1, 2481 waitForAnimate: !0, 2482 zIndex: 1e3 2483 }, n.initials = { 2484 animating: !1, 2485 dragging: !1, 2486 autoPlayTimer: null, 2487 currentDirection: 0, 2488 currentLeft: null, 2489 currentSlide: 0, 2490 direction: 1, 2491 $dots: null, 2492 listWidth: null, 2493 listHeight: null, 2494 loadIndex: 0, 2495 $nextArrow: null, 2496 $prevArrow: null, 2497 slideCount: null, 2498 slideWidth: null, 2499 $slideTrack: null, 2500 $slides: null, 2501 sliding: !1, 2502 slideOffset: 0, 2503 swipeLeft: null, 2504 $list: null, 2505 touchObject: {}, 2506 transformsEnabled: !1, 2507 unslicked: !1 2508 }, 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) 2509 } 2510 }()).prototype.addSlide = e.prototype.slickAdd = function (e, s, t) { 2511 var o = this; 2512 if ("boolean" == typeof s) t = s, s = null; 2513 else if (0 > s || s >= o.slideCount) return !1; 2514 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) { 2515 i(s).attr("data-slick-index", e) 2516 }), o.$slidesCache = o.$slides, o.reinit() 2517 }, e.prototype.animateHeight = function () { 2518 var i = this; 2519 if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) { 2520 var e = i.$slides.eq(i.currentSlide).outerHeight(!0); 2521 i.$list.animate({ 2522 height: e 2523 }, i.options.speed) 2524 } 2525 }, e.prototype.animateSlide = function (e, s) { 2526 var t = {}, 2527 o = this; 2528 o.animateHeight(), !0 === o.options.rtl && !1 === o.options.vertical && (e = -e), !1 === o.transformsEnabled ? !1 === o.options.vertical ? o.$slideTrack.animate({ 2529 left: e 2530 }, o.options.speed, o.options.easing, s) : o.$slideTrack.animate({ 2531 top: e 2532 }, o.options.speed, o.options.easing, s) : !1 === o.cssTransitions ? (!0 === o.options.rtl && (o.currentLeft = -o.currentLeft), i({ 2533 animStart: o.currentLeft 2534 }).animate({ 2535 animStart: e
2536 }, { 2537 duration: o.options.speed, 2538 easing: o.options.easing, 2539 step: function (i) { 2540 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)) 2541 }, 2542 complete: function () { 2543 s && s.call() 2544 } 2545 })) : (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 () { 2546 o.disableTransition(), s.call() 2547 }, o.options.speed)) 2548 }, e.prototype.asNavFor = function (e) { 2549 var s = this, 2550 t = s.options.asNavFor; 2551 t && null !== t && (t = i(t).not(s.$slider)), null !== t && "object" == typeof t && t.each(function () { 2552 var s = i(this).slick("getSlick"); 2553 s.unslicked || s.slideHandler(e, !0) 2554 }) 2555 }, e.prototype.applyTransition = function (i) { 2556 var e = this, 2557 s = {}; 2558 !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) 2559 }, e.prototype.autoPlay = function () { 2560 var i = this; 2561 i.autoPlayTimer && clearInterval(i.autoPlayTimer), i.slideCount > i.options.slidesToShow && !0 !== i.paused && (i.autoPlayTimer = setInterval(i.autoPlayIterator, i.options.autoplaySpeed)) 2562 }, e.prototype.autoPlayClear = function () { 2563 var i = this; 2564 i.autoPlayTimer && clearInterval(i.autoPlayTimer) 2565 }, e.prototype.autoPlayIterator = function () { 2566 var i = this; 2567 !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) 2568 }, e.prototype.buildArrows = function () { 2569 var e = this; 2570 !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({ 2571 "aria-disabled": "true", 2572 tabindex: "-1" 2573 })) 2574 }, e.prototype.buildDots = function () { 2575 var e, s, t = this; 2576 if (!0 === t.options.dots && t.slideCount > t.options.slidesToShow) { 2577 for (s = '<ul class="' + t.options.dotsClass + '">', e = 0; e <= t.getDotCount(); e += 1) s += "<li>" + t.options.customPaging.call(this, t, e) + "</li>"; 2578 s += "</ul>", t.$dots = i(s).appendTo(t.options.appendDots), t.$dots.find("li").first().addClass("slick-active").attr("aria-hidden", "false") 2579 } 2580 }, e.prototype.buildOut = function () { 2581 var e = this; 2582 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) { 2583 i(s).attr("data-slick-index", e).data("originalStyling", i(s).attr("style") || "") 2584 }), 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") 2585 }, e.prototype.buildRows = function () { 2586 var i, e, s, t, o, n, a, l = this; 2587 if (t = document.createDocumentFragment(), n = l.$slider.children(), l.options.rows > 1) { 2588 for (a = l.options.slidesPerRow * l.options.rows, o = Math.ceil(n.length / a), i = 0; o > i; i++) { 2589 var r = document.createElement("div"); 2590 for (e = 0; e < l.options.rows; e++) { 2591 var d = document.createElement("div"); 2592 for (s = 0; s < l.options.slidesPerRow; s++) { 2593 var c = i * a + (e * l.options.slidesPerRow + s); 2594 n.get(c) && d.appendChild(n.get(c)) 2595 } 2596 r.appendChild(d) 2597 } 2598 t.appendChild(r) 2599 } 2600 l.$slider.html(t), l.$slider.children().children().children().css({ 2601 width: 100 / l.options.slidesPerRow + "%", 2602 display: "inline-block" 2603 }) 2604 } 2605 }, e.prototype.checkResponsive = function (e, s) { 2606 var t, o, n, a = this, 2607 l = !1, 2608 r = a.$slider.width(), 2609 d = window.innerWidth || i(window).width(); 2610 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) { 2611 o = null; 2612 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])); 2613 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]) 2614 } 2615 }, e.prototype.changeSlide = function (e, s) { 2616 var t, o, n, a = this, 2617 l = i(e.target); 2618 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.
2618currentSlide) % a.options.slidesToScroll, e.data.message) { 2619 case "previous": 2620 o = 0 === t ? a.options.slidesToScroll : a.options.slidesToShow - t, a.slideCount > a.options.slidesToShow && a.slideHandler(a.currentSlide - o, !1, s); 2621 break; 2622 case "next": 2623 o = 0 === t ? a.options.slidesToScroll : t, a.slideCount > a.options.slidesToShow && a.slideHandler(a.currentSlide + o, !1, s); 2624 break; 2625 case "index": 2626 var r = 0 === e.data.index ? 0 : e.data.index || l.index() * a.options.slidesToScroll; 2627 a.slideHandler(a.checkNavigable(r), !1, s), l.children().trigger("focus"); 2628 break; 2629 default: 2630 return 2631 } 2632 }, e.prototype.checkNavigable = function (i) { 2633 var e, s; 2634 if (e = this.getNavigableIndexes(), s = 0, i > e[e.length - 1]) i = e[e.length - 1]; 2635 else 2636 for (var t in e) { 2637 if (i < e[t]) { 2638 i = s; 2639 break 2640 } 2641 s = e[t] 2642 } 2643 return i 2644 }, e.prototype.cleanUpEvents = function () { 2645 var e = this; 2646 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.
2646slick", 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) 2647 }, e.prototype.cleanUpRows = function () { 2648 var i, e = this; 2649 e.options.rows > 1 && ((i = e.$slides.children().children()).removeAttr("style"), e.$slider.html(i)) 2650 }, e.prototype.clickHandler = function (i) { 2651 !1 === this.shouldClick && (i.stopImmediatePropagation(), i.stopPropagation(), i.preventDefault()) 2652 }, e.prototype.destroy = function (e) { 2653 var s = this; 2654 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 () { 2655 i(this).attr("style", i(this).data("originalStyling")) 2656 }), 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]) 2657 }, e.prototype.disableTransition = function (i) { 2658 var e = this, 2659 s = {}; 2660 s[e.transitionType] = "", !1 === e.options.fade ? e.$slideTrack.css(s) : e.$slides.eq(i).css(s) 2661 }, e.prototype.fadeSlide = function (i, e) { 2662 var s = this; 2663 !1 === s.cssTransitions ? (s.$slides.eq(i).css({ 2664 zIndex: s.options.zIndex 2665 }), s.$slides.eq(i).animate({ 2666 opacity: 1 2667 }, s.options.speed, s.options.easing, e)) : (s.applyTransition(i), s.$slides.eq(i).css({ 2668 opacity: 1, 2669 zIndex: s.options.zIndex 2670 }), e && setTimeout(function () { 2671 s.disableTransition(i), e.call() 2672 }, s.options.speed)) 2673 }, e.prototype.fadeSlideOut = function (i) { 2674 var e = this; 2675 !1 === e.cssTransitions ? e.$slides.eq(i).animate({ 2676 opacity: 0, 2677 zIndex: e.options.zIndex - 2 2678 }, e.options.speed, e.options.easing) : (e.applyTransition(i), e.$slides.eq(i).css({ 2679 opacity: 0, 2680 zIndex: e.options.zIndex - 2 2681 })) 2682 }, e.prototype.filterSlides = e.prototype.slickFilter = function (i) { 2683 var e = this; 2684 null !== i && (e.$slidesCache = e.$slides, e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.filter(i).appendTo(e.$slideTrack), e.reinit()) 2685 }, e.prototype.getCurrent = e.prototype.slickCurrentSlide = function () { 2686 return this.currentSlide 2687 }, e.prototype.getDotCount = function () { 2688 var i = this, 2689 e = 0, 2690 s = 0, 2691 t = 0; 2692 if (!0 === i.options.infinite) 2693 for (; e < i.slideCount;) ++t, e = s + i.options.slidesToScroll, s += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; 2694 else if (!0 === i.options.centerMode) t = i.slideCount; 2695 else 2696 for (; e < i.slideCount;) ++t, e = s + i.options.slidesToScroll, s += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; 2697 return t - 1 2698 }, e.prototype.getLeft = function (i) { 2699 var e, s, t, o = this, 2700 n = 0; 2701 return o.slideOffset = 0, s = o.$slides.first().outerHeight(!0), !0 === o.options.infinite ? (o.slideCount >
2701 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 2702 }, e.prototype.getOption = e.prototype.slickGetOption = function (i) { 2703 return this.options[i] 2704 }, e.prototype.getNavigableIndexes = function () { 2705 var i, e = this, 2706 s = 0, 2707 t = 0, 2708 o = []; 2709 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; 2710 return o 2711 }, e.prototype.getSlick = function () { 2712 return this 2713 }, e.prototype.getSlideCount = function () { 2714 var e, s, t = this; 2715 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) { 2716 return n.offsetLeft - s + i(n).outerWidth() / 2 > -1 * t.swipeLeft ? (e = n, !1) : void 0 2717 }), Math.abs(i(e).attr("data-slick-index") - t.currentSlide) || 1) : t.options.slidesToScroll 2718 }, e.prototype.goTo = e.prototype.slickGoTo = function (i, e) { 2719 this.changeSlide({ 2720 data: { 2721 message: "index", 2722 index: parseInt(i) 2723 } 2724 }, e) 2725 }, e.prototype.init = function (e) { 2726 var s = this; 2727 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() 2728 }, e.prototype.initArrowEvents = function () { 2729 var i = this; 2730 !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.on("click.slick", { 2731 message: "previous" 2732 }, i.changeSlide), i.$nextArrow.on("click.slick", { 2733 message: "next" 2734 }, i.changeSlide)) 2735 }, e.prototype.initDotEvents = function () { 2736 var e = this; 2737 !0 === e.options.dots && e.slideCount > e.options.slidesToShow && i("li", e.$dots).on("click.slick", { 2738 message: "index" 2739 }, 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.
2739slick", i.proxy(e.setPaused, e, !1)) 2740 }, e.prototype.initializeEvents = function () { 2741 var e = this; 2742 e.initArrowEvents(), e.initDotEvents(), e.$list.on("touchstart.slick mousedown.slick", { 2743 action: "start" 2744 }, e.swipeHandler), e.$list.on("touchmove.slick mousemove.slick", { 2745 action: "move" 2746 }, e.swipeHandler), e.$list.on("touchend.slick mouseup.slick", { 2747 action: "end" 2748 }, e.swipeHandler), e.$list.on("touchcancel.slick mouseleave.slick", { 2749 action: "end" 2750 }, 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) 2751 }, e.prototype.initUI = function () { 2752 var i = this; 2753 !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() 2754 }, e.prototype.keyHandler = function (i) { 2755 var e = this; 2756 i.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === i.keyCode && !0 === e.options.accessibility ? e.changeSlide({ 2757 data: { 2758 message: "previous" 2759 } 2760 }) : 39 === i.keyCode && !0 === e.options.accessibility && e.changeSlide({ 2761 data: { 2762 message: "next" 2763 } 2764 })) 2765 }, e.prototype.lazyLoad = function () { 2766 function e(e) { 2767 i("img[data-lazy]", e).each(function () { 2768 var e = i(this), 2769 s = i(this).attr("data-lazy"), 2770 t = document.createElement("img"); 2771 t.onload = function () { 2772 e.animate({ 2773 opacity: 0 2774 }, 100, function () { 2775 e.attr("src", s).animate({ 2776 opacity: 1 2777 }, 200, function () { 2778 e.removeAttr("data-lazy").removeClass("slick-loading") 2779 }) 2780 }) 2781 }, t.src = s 2782 }) 2783 } 2784 var s, t, o, n = this; 2785 !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)) 2786 }, e.prototype.loadSlider = function () { 2787 var i = this; 2788 i.setPosition(), i.$slideTrack.css({ 2789 opacity: 1 2790 }), i.$slider.removeClass("slick-loading"), i.initUI(), "progressive" === i.options.lazyLoad && i.progressiveLazyLoad() 2791 }, e.prototype.next = e.prototype.slickNext = function () { 2792 this.changeSlide({ 2793 data: { 2794 message: "next" 2795 } 2796 }) 2797 }, e.prototype.orientationChange = function () { 2798 var i = this; 2799 i.checkResponsive(), i.setPosition() 2800 }, e.prototype.pause = e.prototype.slickPause = function () { 2801 var i = this; 2802 i.autoPlayClear(), i.paused = !0 2803 }, e.prototype.play = e.prototype.slickPlay = function () { 2804 var i = this; 2805 i.paused = !1, i.autoPlay() 2806 }, e.prototype.postSlide = function (i) { 2807 var e = this; 2808 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() 2809 }, e.prototype.prev = e.prototype.slickPrev = function () { 2810 this.changeSlide({ 2811 data: { 2812 message: "previous" 2813 } 2814 }) 2815 }, e.prototype.preventDefault = function (i) { 2816 i.preventDefault() 2817 }, e.prototype.progressiveLazyLoad = function () { 2818 var e, s = this; 2819 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 () { 2820 e.removeAttr("data-lazy"), s.progressiveLazyLoad(), !0 === s.options.adaptiveHeight && s.setPosition() 2821 }).error(function () { 2822 e.removeAttr("data-lazy"), s.progressiveLazyLoad() 2823 })) 2824 }, e.prototype.refresh = function (e) { 2825 var s, t, o = this; 2826 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, { 2827 currentSlide: s 2828 }), o.init(), e || o.changeSlide({ 2829 data: { 2830 message: "index", 2831 index: s 2832 } 2833 }, !1) 2834 }, e.prototype.registerBreakpoints = function () { 2835 var e, s, t, o = this, 2836 n = o.options.responsive || null; 2837 if ("array" === i.type(n) && n.length) { 2838 o.respondTo = o.options.respondTo || "window"; 2839 for (e in n) 2840 if (t = o.breakpoints.length - 1, s = n[e].breakpoint, n.hasOwnProperty(e)) { 2841 for (; t >= 0;) o.breakpoints[t] && o.breakpoints[t] === s && o.breakpoints.splice(t, 1), t--; 2842 o.breakpoints.push(s), o.breakpointSettings[s] = n[e].settings 2843 } o.breakpoints.sort(function (i, e) { 2844 return o.options.mobileFirst ? i - e : e - i 2845 }) 2846 } 2847 }, e.prototype.reinit = function () { 2848 var e = this; 2849 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() 2850 }, e.prototype.resize = function () { 2851 var e = this; 2852 i(window).width() !== e.windowWidth && (clearTimeout(e.windowDelay), e.windowDelay = window.setTimeout(function () { 2853 e.windowWidth = i(window).width(), e.checkResponsive(), e.unslicked || e.setPosition() 2854 }, 50)) 2855 }, e.prototype.removeSlide = e.prototype.slickRemove = function (i, e, s) { 2856 var t = this; 2857 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()) 2858 }, e.prototype.setCSS = function (i) { 2859 var e, s, t = this, 2860 o = {}; 2861 !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))) 2862 }, e.prototype.setDimensions = function () { 2863 var i = this; 2864 !1 === i.options.vertical ? !0 === i.options.centerMode && i.$list.css({ 2865 padding: "0px " + i.options.centerPadding 2866 }) : (i.$list.height(i.$slides.first().outerHeight(!0) * i.options.slidesToShow), !0 === i.options.centerMode && i.$list.css({ 2867 padding: i.options.centerPadding + " 0px" 2868 })), 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))); 2869 var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width(); 2870 !1 === i.options.variableWidth && i.$slideTrack.children(".slick-slide").width(i.slideWidth - e) 2871 }, e.prototype.setFade = function () { 2872 var e, s = this; 2873 s.$slides.each(function (t, o) { 2874 e = s.slideWidth * t * -1, !0 === s.options.rtl ? i(o).css({ 2875 position: "relative", 2876 right: e, 2877 top: 0, 2878 zIndex: s.options.zIndex - 2, 2879 opacity: 0 2880 }) : i(o).css({ 2881 position: "relative", 2882 left: e, 2883 top: 0, 2884 zIndex: s.options.zIndex - 2, 2885 opacity: 0 2886 }) 2887 }), s.$slides.eq(s.currentSlide).css({ 2888 zIndex: s.options.zIndex - 1, 2889 opacity: 1 2890 }) 2891 }, e.prototype.setHeight = function () { 2892 var i = this; 2893 if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) { 2894 var e = i.$slides.eq(i.currentSlide).outerHeight(!0); 2895 i.$list.css("height", e) 2896 } 2897 }, e.prototype.setOption = e.prototype.slickSetOption = function (e, s, t) { 2898 var o, n, a = this; 2899 if ("responsive" === e && "array" === i.type(s)) 2900 for (n in s) 2901 if ("array" !== i.type(a.options.responsive)) a.options.responsive = [s[n]]; 2902 else { 2903 for (o = a.options.responsive.length - 1; o >= 0;) a.options.responsive[o].breakpoint === s[n].breakpoint && a.options.responsive.splice(o, 1), o--; 2904 a.options.responsive.push(s[n]) 2905 } 2906 else a.options[e] = s; 2907 !0 === t && (a.unload(), a.reinit()) 2908 }, e.prototype.setPosition = function () { 2909 var i = this; 2910 i.setDimensions(), i.setHeight(), !1 === i.options.fade ? i.setCSS(i.getLeft(i.currentSlide)) : i.setFade(), i.$slider.trigger("setPosition", [i]) 2911 }, e.prototype.setProps = function () { 2912 var i = this, 2913 e = document.body.style; 2914 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 = "
2914webkitTransform", 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 2915 }, e.prototype.setSlideClasses = function (i) { 2916 var e, s, t, o, n = this; 2917 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() 2918 }, e.prototype.setupInfinite = function () { 2919 var e, s, t, o = this; 2920 if (!0 === o.options.fade && (o.options.centerMode = !1), !0 === o.options.infinite && !1 === o.options.fade && (s = null, o.slideCount > o.options.slidesToShow)) { 2921 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"); 2922 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"); 2923 o.$slideTrack.find(".slick-cloned").find("[id]").each(function () { 2924 i(this).attr("id", "") 2925 }) 2926 } 2927 }, e.prototype.setPaused = function (i) { 2928 var e = this; 2929 !0 === e.options.autoplay && !0 === e.options.pauseOnHover && (e.paused = i, i ? e.autoPlayClear() : e.autoPlay()) 2930 }, e.prototype.selectHandler = function (e) { 2931 var s = this, 2932 t = i(e.target).is(".slick-slide") ? i(e.target) : i(e.target).parents(".slick-slide"), 2933 o = parseInt(t.attr("data-slick-index")); 2934 return o || (o = 0), s.slideCount <= s.options.slidesToShow ? (s.setSlideClasses(o), void s.asNavFor(o)) : void s.slideHandler(o) 2935 }, e.prototype.slideHandler = function (i, e, s) { 2936 var t, o, n, a, l = null, 2937 r = this; 2938 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 () { 2939 r.postSlide(t) 2940 }) : 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 () { 2941 r.postSlide(t) 2942 }) : 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 () { 2943 r.postSlide(o) 2944 })) : r.postSlide(o), void r.animateHeight()) : void (!0 !== s ? r.animateSlide(l, function () { 2945 r.postSlide(o) 2946 }) : r.postSlide(o)))) 2947 }, e.prototype.startLoad = function () { 2948 var i = this; 2949 !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") 2950 }, e.prototype.swipeDirection = function () { 2951 var i, e, s, t, o = this; 2952 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" 2953 }, e.prototype.swipeEnd = function (i) { 2954 var e, s = this; 2955 if (s.dragging = !1, s.shouldClick = !(s.touchObject.swipeLength > 10), void 0 === s.touchObject.curX) return !1; 2956 if (!0 === s.touchObject.edgeHit && s.$slider.trigger("edge", [s, s.swipeDirection()]), s.touchObject.swipeLength >= s.touchObject.minSwipe) switch (s.swipeDirection()) {
2957 case "left": 2958 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"]); 2959 break; 2960 case "right": 2961 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"]) 2962 } else s.touchObject.startX !== s.touchObject.curX && (s.slideHandler(s.currentSlide), s.touchObject = {}) 2963 }, e.prototype.swipeHandler = function (i) { 2964 var e = this; 2965 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) { 2966 case "start": 2967 e.swipeStart(i); 2968 break; 2969 case "move": 2970 e.swipeMove(i); 2971 break; 2972 case "end": 2973 e.swipeEnd(i) 2974 } 2975 }, e.prototype.swipeMove = function (i) { 2976 var e, s, t, o, n, a = this; 2977 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) 2978 }, e.prototype.swipeStart = function (i) { 2979 var e, s = this; 2980 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)) 2981 }, e.prototype.unfilterSlides = e.prototype.slickUnfilter = function () { 2982 var i = this; 2983 null !== i.$slidesCache && (i.unload(), i.$slideTrack.children(this.options.slide).detach(), i.$slidesCache.appendTo(i.$slideTrack), i.reinit()) 2984 }, e.prototype.unload = function () { 2985 var e = this; 2986 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", "") 2987 }, e.prototype.unslick = function (i) { 2988 var e = this; 2989 e.$slider.trigger("unslick", [e, i]), e.destroy() 2990 }, e.prototype.updateArrows = function () { 2991 var i = this; 2992 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"))) 2993 }, e.prototype.updateDots = function () { 2994 var i = this; 2995 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")) 2996 }, e.prototype.visibility = function () { 2997 var i = this; 2998 document[i.hidden] ? (i.paused = !0, i.autoPlayClear()) : !0 === i.options.autoplay && (i.paused = !1, i.autoPlay()) 2999 }, e.prototype.initADA = function () { 3000 var e = this; 3001 e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({ 3002 "aria-hidden": "true", 3003 tabindex: "-1" 3004 }).find("a, input, button, select").attr({ 3005 tabindex: "-1" 3006 }), e.$slideTrack.attr("role", "listbox"), e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function (s) { 3007 i(this).attr({ 3008 role: "option", 3009 "aria-describedby": "slick-slide" + e.instanceUid + s 3010 }) 3011 }), null !== e.$dots && e.$dots.attr("role", "tablist").find("li").each(function (s) { 3012 i(this).attr({ 3013 role: "presentation", 3014 "aria-selected": "false", 3015 "aria-controls": "navigation" + e.instanceUid + s, 3016 id: "slick-slide" + e.instanceUid + s 3017 }) 3018 }).first().attr("aria-selected", "true").end().find("button").attr("role", "button").end().closest("div").attr("role", "toolbar"), e.activateADA() 3019 }, e.prototype.activateADA = function () { 3020 this.$slideTrack.find(".slick-active").attr({ 3021 "aria-hidden": "false" 3022 }).find("a, input, button, select").attr({ 3023 tabindex: "0" 3024 }) 3025 }
3025, e.prototype.focusHandler = function () { 3026 var e = this; 3027 e.$slider.on("focus.slick blur.slick", "*", function (s) { 3028 s.stopImmediatePropagation(); 3029 var t = i(this); 3030 setTimeout(function () { 3031 e.isPlay && (t.is(":focus") ? (e.autoPlayClear(), e.paused = !0) : (e.paused = !1, e.autoPlay())) 3032 }, 0) 3033 }) 3034 }, i.fn.slick = function () { 3035 var i, s, t = this, 3036 o = arguments[0], 3037 n = Array.prototype.slice.call(arguments, 1), 3038 a = t.length; 3039 for (i = 0; a > i; i++) 3040 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; 3041 return t 3042 } 3043 }), 3044 function (i) { 3045 i.youtubePlayer = function (e, s) { 3046 var t = { 3047 vid: [] 3048 }; 3049 this.settings = {}; 3050 var o, n, a = i(e), 3051 e = e, 3052 l = { 3053 autoplay: 0, 3054 autohide: 1, 3055 modestbranding: 0, 3056 rel: 0, 3057 showinfo: 0, 3058 controls: 0, 3059 disablekb: 1, 3060 enablejsapi: 0, 3061 iv_load_policy: 3 3062 }; 3063 this.init = function () { 3064 this.settings = i.extend({}, t, s), n = 0, loadScript("https://www.youtube.com/player_api", function () { 3065 $(window).on("load resize", function () { 3066 a.data("youtubePlayer").vidRescale() 3067 }); 3068 try { 3069 a.data("youtubePlayer").onYouTubePlayerAPIReady() 3070 } catch (i) { } 3071 }) 3072 }, this.onYouTubePlayerAPIReady = function () { 3073 o = new YT.Player(a.attr("id"), { 3074 events: { 3075 onReady: function () { 3076 o.loadVideoById(a.data("youtubePlayer").settings.vid[n]), o.mute() 3077 }, 3078 onStateChange: function (i) { 3079 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)) 3080 } 3081 }, 3082 playerVars: l 3083 }), a.data("youtubePlayer").vidRescale() 3084 }, this.vidRescale = function () { 3085 var i = $(window).width() + 200, 3086 e = $(window).height() + 200; 3087 i / e > 16 / 9 ? (o.setSize(i, i / 16 * 9), $(".is_video_bg .screen").css({ 3088 left: "0px" 3089 })) : (o.setSize(e / 9 * 16, e), $(".is_video_bg .screen").css({ 3090 left: -($(".is_video_bg .screen").outerWidth() - i) / 2 3091 })) 3092 }, this.init() 3093 }, i.fn.youtubePlayer = function (e) { 3094 return this.each(function () { 3095 if (void 0 == i(this).data("youtubePlayer")) { 3096 var s = new i.youtubePlayer(this, e); 3097 i(this).data("youtubePlayer", s) 3098 } 3099 }) 3100 } 3101 }(jQuery); 3102 // cookie 3103 3104 function close() { 3105 var e = document.getElementById("notification-bottom"); 3106 e.parentNode.removeChild(e), document.cookie = "cookie=1; path=/" 3107 } 3108 3109 function pageInit() { 3110 $('<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); 3111 var e = document.getElementById("closeBtn"); 3112 e.addEventListener ? e.addEventListener("click", close, !1) : e.attachEvent ? e.attachEvent("onclick", close) : e.onclick = close 3113 } 3114 document.cookie.match(/^(.*;)?\s*cookie\s*=\s*[^;]+(.*)?$/) || pageInit(); 3115 3116 (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')} 3117setMotionState(reducedMotion);toggle.addEventListener('click',function(){var paused=toggle.getAttribute('aria-pressed')!=='true';window.jQuery(track).slick(paused?'slickPause':'slickPlay');setMotionState(paused)})} 3118function initialiseAll(){var roots=document.querySelectorAll('[data-accreditations-carousel-01]');for(var index=0;
3118index<roots.length;index++){initialise(roots[index])}} 3119if(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)))} 3120function 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))})} 3121function initialise(){var comparisons=document.querySelectorAll('[data-before-after-projects-01-comparison]');for(var index=0;index<comparisons.length;index++){initialiseComparison(comparisons[index])}} 3122if(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} 3123button.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")}} 3124button.addEventListener("click",function(){var content=this.nextElementSibling;var icon=this.querySelector(".icon");if(!content){return} 3125content.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} 3126if(quote.scrollHeight>quote.clientHeight+1){toggle.classList.remove('is-hidden')}else{toggle.classList.add('is-hidden')}}} 3127function findAncestorWithClass(node,className,boundary){while(node&&node!==boundary){if(node.classList&&node.classList.contains(className))return node;node=node.parentNode} 3128return null} 3129function 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')}})} 3130function 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} 3131$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}}]})} 3132var 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])}} 3133if(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])}})}})() 3134 $('body').on('click', 'a[href*="#"]:not([href="#"])', function (e) {
3135 if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { 3136 var target = $(this.hash); 3137 var row = $(this.hash).closest('.row').offset().top - 90 3138 target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); 3139 if (target.length) { 3140 event.preventDefault(); 3141 $('html, body').stop().animate({ 3142 scrollTop: target.offset().top - 60 3143 }, 1000, function() { 3144 var $target = $(target); 3145 $target.focus(); 3146 if ($target.is(":focus")) { 3147 return false; 3148 } else { 3149 $target.attr('tabindex','-1'); 3150 $target.focus(); 3151 } 3152 }); 3153 } 3154 } 3155}); 3156 3157var keys = {37: 1, 38: 1, 39: 1, 40: 1}; 3158function preventDefault(e) { 3159 e = e || window.event; 3160 if (e.preventDefault) 3161 e.preventDefault(); 3162 e.returnValue = false; 3163} 3164 3165function preventDefaultForScrollKeys(e) { 3166 if (keys[e.keyCode]) { 3167 preventDefault(e); 3168 return false; 3169 } 3170} 3171 3172function disableScroll() { 3173 if (window.addEventListener) // older FF 3174 window.addEventListener('DOMMouseScroll', preventDefault, false); 3175 window.onwheel = preventDefault; // modern standard 3176 window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE 3177 window.ontouchmove = preventDefault; // mobile 3178 document.onkeydown = preventDefaultForScrollKeys; 3179} 3180 3181function enableScroll() { 3182 if (window.removeEventListener) 3183 window.removeEventListener('DOMMouseScroll', preventDefault, false); 3184 window.onmousewheel = document.onmousewheel = null; 3185 window.onwheel = null; 3186 window.ontouchmove = null; 3187 document.onkeydown = null; 3188} 3189 3190$.fn.scrollLimit = function() { 3191 return this.on( 'wheel', function ( e ) { 3192 var $this = $(this); 3193 if (0 > e.originalEvent.deltaY) { 3194 /* scrolling up */ 3195 return ($this.scrollTop() > 0); 3196 } else { 3197 /* scrolling down */ 3198 return ($this[0].scrollHeight > $this.innerHeight() + $this.scrollTop()); 3199 } 3200 }); 3201}; 3202 3203$('#nav').scrollLimit() 3204 3205$('#nav-toggle').on('mousedown touchstart', function (e) { 3206 if (e.which !== 3) { 3207 var state = ($(this).prev().hasClass('closed')) ? 'auto' : 'hidden'; 3208 var offset = window.innerWidth - document.documentElement.clientWidth; 3209 if (state === 'hidden') { 3210 $('body').addClass('nav-active').css({ 3211 'padding-right': offset 3212 }); 3213 $('html, body').css({ 3214 'overflow': state 3215 }); 3216 } else { 3217 $('body, html').removeClass('nav-active').removeAttr('style') 3218 } 3219 } 3220}); 3221 3222// Section for updating specific sections based on whether criteria is met on load. 3223(function() { 3224 3225 function changeNavPosition() { 3226 // Set height of placeholder fields 3227 if (document.documentElement.classList.contains('js')) { 3228 let header = document.getElementById('header_can') 3229 let height = header.offsetHeight; 3230 let navHeight = document.getElementById('nav-toggle').offsetHeight; 3231 let style = document.createElement('style'); 3232 style.id = 'y9gxb3'; 3233 3234 // Set values 3235 let margin = ''; 3236 let top = ((height / 2) - (navHeight / 2)); 3237 if (header.parentElement.previousElementSibling) { 3238 margin = 'margin-top: ' + top + 'px;'; 3239 } 3240 let css = document.createTextNode('#nav-toggle, #nav-toggle.js-is-sticky { '+ margin +' top: '+ top +'px !important } @media (min-width: 60rem) { #nav > li { height: '+ height +'px; } }'); 3241 style.appendChild(css); 3242 document.body.appendChild(style) 3243 } 3244 } 3245 3246 // Set phone numbers to data attributes 3247 const numbers = document.getElementById('header_can').getElementsByClassName('phone-call') 3248 for (var i = 0; numbers.length > i; i++) { 3249 numbers[i].setAttribute('data-call', '') 3250 } 3251 3252 // Set height on load 3253 changeNavPosition() 3254 3255 // Check if an email address has been included in the first custom field 3256 let emailCheck = false; 3257 const custom = document.getElementById('header_can').querySelectorAll('[class^=custom]') 3258 if (custom.length > 0) { 3259 for (var i = 0; custom.length > i; i++) { 3260 let field = custom[i].getElementsByTagName('span')[0] 3261 let text = field.textContent.toLowerCase() 3262 if (text.includes('mail')) { 3263 emailCheck = true; 3264 custom[i].classList.add('contact') 3265 } 3266 if (!emailCheck) { 3267 let strong = custom[i].getElementsByTagName('strong')[0] 3268 let number = strong.textContent.replace(' ', '') 3269 if (!isNaN(number)) { 3270 // Add custom label class to show the custom label 3271 field.classList.add('custom-label') 3272 3273 // Check if field is a landline or mobile 3274 if (number.substring(0, 2) === '07') { 3275 custom[i].classList.add('mobile') 3276 } else { 3277 custom[i].classList.add('phone') 3278 } 3279 3280 // Create link for phone number that doesn't have a link 3281 var link = document.createElement('a') 3282 link.classList.add('phone-call') 3283 link.href = 'tel:' + number; 3284 3285 while(strong.hasChildNodes()) { 3286 link.appendChild(strong.firstChild) 3287 } 3288 strong.appendChild(link) 3289 } 3290 } 3291 } 3292 } 3293 3294 // Load Stickybits 3295 var bits = 'https://cdnjs.cloudflare.com/ajax/libs/stickybits/3.7.2/jquery.stickybits.min.js'; 3296 $.ajaxSetup({ 3297 cache: true 3298 }); 3299 $.getScript(bits, function() { 3300 $('#header_can, #navigation > ul').stickybits();
3301 $('#nav-toggle').stickybits({useStickyClasses: true}); 3302 }); 3303 3304})(); 3305 3306$('.search-trigger').on('click', function () { 3307 $('.product-overlay').fadeIn(200) 3308 $('.product-overlay input').focus() 3309}); 3310 3311$('.product-overlay').on('click', function (e) { 3312 if (e.target !== this) return; 3313 $(this).fadeOut(200) 3314}); 3315 3316 3317$('.review-carousel').slick({ 3318 slidesToShow: 2, 3319 arrows: true, 3320 dots: false, 3321 centerMode: false, 3322 centerPadding: '15px', 3323 responsive: [ 3324 { 3325 breakpoint: 800, 3326 settings: { 3327 slidesToShow: 1 3328 } 3329 } 3330 ] 3331}); 3332 3333 3334$('.latest-carousel').slick({ 3335 slidesToShow: 3, 3336 slidesToScroll: 1, 3337 centerMode: false, 3338 arrows: true, 3339 responsive: [ 3340 { 3341 breakpoint: 1280, 3342 settings: { 3343 slidesToShow: 2 3344 } 3345 }, 3346 { 3347 breakpoint: 800, 3348 settings: { 3349 slidesToShow: 1 3350 } 3351 } 3352 ] 3353}); 3354 3355$(document).ready(function(){ 3356 $('input').removeAttr('placeholder'); 3357}); (function(d, t) { 3358 var v = d.createElement(t), s = d.getElementsByTagName(t)[0]; 3359 v.onload = function() { 3360 window.voiceflow.chat.load({ 3361 verify: { projectID: '67dd7629b5fd5d1d09ab7105' }, 3362 url: 'https://general-runtime.voiceflow.com', 3363 versionID: 'production', 3364 voice: { 3365 url: "https://runtime-api.voiceflow.com" 3366 } 3367 }); 3368 } 3369 v.src = "https://cdn.voiceflow.com/widget-next/bundle.mjs"; v.type = "text/javascript"; s.parentNode.insertBefore(v, s); 3370 })(document, 'script'); }) 3371 }); 3372 })(); 3373 </script>
3373 3374 <a href="#" id="scroll" class="scrollup">Scroll</a> 3375</div> 3376 3377 <link href="//www.osbonpharmacy.co.uk/includes/css/master.css?v=1787679037" rel="preload" as="style" /> 3378 <link href="//www.osbonpharmacy.co.uk/includes/css/master.css?v=1787679037" rel="stylesheet" /> 3379
3380<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"342f2a56ce594552aee62bc3e4d88892","r":1,"spa":2}' crossorigin="anonymous"></script>
3380 3381</body> 3382 3383</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.