/* @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300,600); */
/* @import url(https://fonts.googleapis.com/css?family=Poppins:200,300,400,500,600); */
/* @import url(https://fonts.googleapis.com/css?family=Montserrat:400,500); */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family:var(--body-font);
    font-weight:300;
    color:#62676d; /* or darker rgb(76, 80, 85) */
}

h1, h2 {
    font-family:var(--header-font);
    font-weight:var(--header-weight);
}

a, a:visited, a:hover, a:active {
  color: inherit;
}

a {
    text-decoration:none;
    transition: all 0.23s ease-out;
}

a:hover {
    color:var(--primary-color);
    transition: all 0.23s ease-out;
}

.linkUnderline {

}

.linkUnderline:hover {
    color:white;
    text-decoration:underline;
}

.shp {
    position:absolute; left:-9999px;
}

.primaryColor {
    color:var(--primary-color);
}

.blackColor {
    color:#333;
}

ol {
    padding-left:50px;
}

ul {
    padding-left:50px;
}

ol, ul, li {
    font-family: inherit;
}

li {
    font-size:18px;
    font-weight: 400;
    font-style: normal;
    line-height: 26px;
}

input {padding:10px 20px; background:white; border-radius:15px; border:0; font-size:16px; color:#333;}
textarea {padding:20px 20px; background:white; border-radius:15px; border:0px; resize:none; font-family:inherit;}

.bold {
    font-weight:bold;
}

.bold600 {
    font-weight:600;
}

.font11 {font-size:11px;}
.font12 {font-size:12px;}
.font13 {font-size:13px;}
.font14 {font-size:14px;}
.font15 {font-size:15px;}
.font16 {font-size:16px;}
.font17 {font-size:17px;}
.font18 {font-size:18px;}
.font19 {font-size:19px;}
.font20 {font-size:20px;}
.font22 {font-size:22px;}
.font24 {font-size:24px;}
.font26 {font-size:26px;}
.font28 {font-size:28px;}
.font30 {font-size:30px;}

.gap5 {gap:5px;}
.gap10 {gap:10px;}
.gap20 {gap:20px;}

.flex {
    display:flex;
}

.flexCenter {
    display:flex;
    align-items:center;
}

.marginTop {
    margin-top:10px;
}

.marginTop10 {
    margin-top:10px;
}

.marginTop15 {
    margin-top:15px;
}

.marginTop20 {
    margin-top:20px;
}

.marginTop30 {
    margin-top:30px;
}

.marginTop40 {
    margin-top:40px;
}

.marginTop50 {
    margin-top:50px;
}

.marginBottom10 {
    margin-bottom:10px;
}

.marginBottom20 {
    margin-bottom:20px;
}

.justifyCenter {
    justify-content:center;
}

.justifyEnd {
    justify-content:flex-end;
}

.textLeft {
    text-align: left;
}

.textCenter {
    text-align: center;
}

.textRight {
    text-align: right;
}

.textJustify {
    text-align: justify;
}

.fieldName {
    font-size:13px;
    font-weight:400;
    margin-bottom:5px;
}

.btnSmall {
    display:flex;
    background:var(--primary-color);
    padding:3px 10px;
    border-radius:5px;
    color:white;
    cursor:pointer;
}

.btnSmall:hover {
    opacity:0.7;
}

.btnLarge {
    padding:10px 20px;
    border-radius:15px;
    background:var(--primary-color);
    color:white;
    font-weight:bold;
    cursor:pointer;
    transition: all 0.23s ease-out;
}

.btnLarge:hover {
    opacity:0.6;
    transition: all 0.23s ease-out;
}

.btn-container {
    display:flex;
    align-self: flex-end;
    margin-top: auto;
    padding-top:10px;
}

header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:white;
    padding:20px 20px;
    gap:20px;
}

header .logo-container {
    min-width:140px;
    overflow:hidden;
    flex-shrink:0;
}

@media (max-width: 768px) {
    header .logo-container {
        min-width:70px;
        max-width:300px;
    }
}

header .logo-container img {
    width:100%;
    height:100%;
    object-fit:contain;
}

header .navigation-container {
    display:flex;
    flex-direction:column;
    align-items: end;
    overflow:hidden;
}

header .header-email {
    font-size:16px;
    font-weight:400;
}

header .header-email a {
    color:#333;
}

header .header-email a:hover {
    color:var(--primary-color);
}

header .header-number {
    font-size:24px;
    font-weight:400;
    color:var(--primary-color);
}

header .navigation {
    display:flex;
    flex-direction:row;
    justify-content:flex-end;
    flex-wrap:wrap;
    margin-top:15px;
    gap: 10px 40px;
}

header .navigation a {
    font-weight:500;
    color:#333;
    transition: all 0.23s ease-out;
}

header .navigation a:hover {
    color:var(--primary-color);
    transition: all 0.23s ease-out;
}

.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 4px;
    background: none;
    border: none;
}

.nav-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: #333;
}

@media (max-width: 768px) {
    header .navigation-container {
        display: flex;
        visibility: hidden;
        position: fixed;
        top: 0;
        right: 0;
        height: 100vh;
        width: 300px;
        z-index: 100;
        background: white;
        padding: 20px;
        flex-direction: column;
        align-items: flex-start;
        overflow:hidden;
        opacity:0;
        transition: opacity 0.3s ease-out;
    }

    header .header-email {
        overflow-wrap: break-word;
        word-break: break-all;
        max-width: 100%;
    }

    header .navigation-container.open {
        visibility: visible;
        opacity:1;
    }

    .nav-toggle { display: flex; }

    header .navigation {
        flex-direction: column;
        margin-top: 20px;
    }
}



.trail-bar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:#eee;
    padding:10px 20px;
}

.trail {
    display:flex;
    align-items:center;
    gap:10px;
    font-size:13px;
    font-weight:200;
}

@media (max-width: 768px) {
    .trail-bar {
        justify-content: flex-end;
    }
    .trail {
        display:none;
    }
}

.trail-icon {
    font-size:11px;
    font-weight:200;
    display:flex;
    height:100%;
}

.trail-socials {
    display:flex;
    align-items:center;
    gap:20px;
}

.trail-socials .trail-socials-icon {
    display:flex;
    align-items:center;
}

.trail-socials-icon:hover {
    opacity:0.7
}

.align-center {
    text-align: center;
}

.hero-container {
    position:relative;
    display:flex;
    flex-direction:row;
    height:500px;
    overflow:hidden;
}

.heroContainerFixed {
    max-width:1250px;
    border-radius:10px;
    margin:40px auto;
}

.heroContainerLarge {
    width:100%;
    border-radius:0px;
    margin:0px auto;
}

.hero {
    position:absolute;
    display:flex;
    flex-direction:row;
    flex-wrap: nowrap;
    height:100%;
    width:100%;
    background:#ddd;
}

.hero .hero-image {
    height:100%;
    width:70%;
}

.hero .hero-image img {
    height:100%;
    width:100%;
    object-fit:cover;
}

.hero .hero-counter {
    position: absolute;
    top:0px;
    left:0px;
    padding:10px;
    font-size:14px;
}

.hero .hero-text {
    text-wrap: wrap;
    width:30%;
    padding:30px 30px;
    background:var(--primary-color);
    color:#fff;
}

.hero .hero-text p {
    margin-top:10px;
    font-size:18px;
}

@media (max-width: 768px) {
    .hero-container {
        height:auto;
        overflow:visible;
    }
    .heroContainerFixed {
        border-radius:0px;
        margin:0px auto;
    }
    .hero {
        position:relative;
        flex-direction:column;
        height:auto;
    }
    .hero .hero-image {
        height:400px;
        width:100%;
        flex-shrink:0;
    }
    .hero .hero-text {
        position:relative;
        width:100%;
        height:auto;
    }
}

/* Next & previous buttons */
.prev, .next {
  cursor: pointer;
  z-index:2;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
}

/* Position the "next button" to the right */
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}

.block-text-wrapper {
    max-width:1250px;
    margin:0px auto;
    padding:50px 0px;
}

.block-text-wrapper p {
    font-weight: 300;
    font-style: normal;
    font-size: 18px;
    line-height: 26px;
    margin-top:10px;
}

.block-products-services {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    max-width:1250px;
    margin:0px auto;
    padding:50px 50px;
}

.block-products-services strong {
    font-weight:bold;
}

.block-products-services .container {
    display:flex;
    flex-wrap:wrap;
    display:grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:20px;
    margin-top:20px;
}

@media (max-width: 768px) {
    .block-products-services .container {
        grid-template-columns: 1fr;
    }
}

.block-products-services .product-service {
    display:flex;
    flex-direction:column;
    background:#f5f5f5;
    border-radius:10px;
    overflow:hidden;
    min-width:300px;
    flex: min-content;
}

.block-products-services .card-grid-1 {
    grid-template-columns: 1fr;
}

.block-products-services .card-grid-2 {
    grid-template-columns: 1fr 1fr;
}

.block-products-services .card-grid-3 {
    grid-template-columns: 1fr 1fr 1fr;
}

@media (max-width: 768px) {
    .block-products-services .card-grid-1 {
        grid-template-columns: 1fr;
    }
    .block-products-services .card-grid-2 {
        grid-template-columns: 1fr;
    }
    .block-products-services .card-grid-3 {
        grid-template-columns: 1fr;
    }
}

.block-products-services .product-service img {
    height:100px;
    width:100%;
    object-fit:cover;
}

.block-products-services .product-service .product-service-container {
    display:flex;
    flex-direction:column;
    height:100%;
    padding:20px;
}

.product-service-container h2 {
    font-family: var(--header-font);
    color:var(--primary-color);
    font-weight:var(--header-weight);
}

.product-service-container p {
    font-size:15px;
    margin-top:5px;
}

/* Team */

.block-products-services .team-member {
    display:flex;
    flex-direction:column;
    background:#f5f5f5;
    border:3px solid #f5f5f5;
    border-radius:10px;
    overflow:hidden;
    width:300px;
    flex: min-content;
}

.block-products-services .team-member img {
    width:100%;
    object-fit:cover;
}

.block-products-services .team-member .team-member-text {
    display:flex;
    flex-direction:column;
    height:100%;
    padding:20px;
}

.team-member-text h2 {
    font-family: var(--header-font);
    color:var(--primary-color);
    font-weight:var(--header-weight);
}

.team-member-text p {
    font-size:14px;
}



.block-photo-wrapper {
    clear: both;
    width: 100%;
    max-width: 100%;
    background: #f7f7f7;
    overflow: hidden;
}

.block-photo-container {
    display: flex;
    gap:50px;
    max-width:1250px;
    margin:0px auto;
    padding:50px 50px;
}

.contact-form {
    padding:20px;
    width:60%;
}

.contact-info {
    padding:30px 50px;
    background:var(--primary-color);
    color:white;
    width:40%;
    border-radius:50px;
}

.contact-name-fields {
    display:flex;
    gap:20px;
    margin-top:20px;
}

.contact-section-direction-row {
    flex-direction:row;
}

.contact-section-direction-row-reverse {
    flex-direction:row-reverse;
}

@media (max-width: 768px) {
    .contact-form {
        width:100%;
    }
    .contact-info {
        width:100%;
    }
    .contact-name-fields {
        flex-direction:column;
    }
    .block-photo-container {
        flex-direction:column;
    }
    .contact-section-direction-row {
        flex-direction:column;
    }

    .contact-section-direction-row-reverse {
        flex-direction:column;
    }
}

.block-photo-container .htmlContent {
    display: flex;
    flex-direction: column;
    flex-shrink:0;
    min-width:300px;
    padding:50px 0px;
}

.block-photo-wrapper .photo {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-shrink:0;
    border-radius:20px;
    overflow:hidden;
    align-self:center;
}

.block-photo-wrapper .photo-width-20 {
    width:20%;
}

.block-photo-wrapper .photo-width-30 {
    width:30%;
}

.block-photo-wrapper .photo-width-40 {
    width:40%;
}

@media (max-width: 768px) {
    .block-photo-wrapper .photo-width-20 {
    width:100%;
    }

    .block-photo-wrapper .photo-width-30 {
        width:100%;
    }

    .block-photo-wrapper .photo-width-40 {
        width:100%;
    }
}

.block-photo-wrapper .photo img {
    width:100%;
    height:100%;
    object-fit:cover; /* takes no affect from above so can keep */
    object-position:center; /* takes no affect from above so can keep */
}

.block-photo-wrapper .video {
    display:flex;
    flex-shrink:0;
    border-radius:20px;
    overflow:hidden;
}

.block-photo-wrapper .content {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-weight: 400;
    font-style: normal;
    font-size: 18px;
    line-height: 26px;
    /* padding: 50px; */
}

.block-photo-wrapper .content a {
    text-decoration:none;
    color:var(--primary-color);
}

.block-photo-wrapper .content h1 {
    font-family: var(--header-font);
    color: var(--primary-color);
    font-weight:var(--header-weight);
    margin-bottom:10px;
    line-height: 36px;
}

.block-photo-wrapper .content h2 {
    font-family: var(--header-font);
    font-weight:var(--header-weight);
    font-size:16px;
    line-height: 30px;
}

.block-photo-wrapper .content p {
    font-weight: 400;
    font-style: normal;
    font-size: 18px;
    line-height: 26px;
    margin-bottom: 15px;
}

.block-photo-wrapper .content p strong {
    font-weight:bold;
}

.block-banner {
    clear: both;
    position: relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    width: 100%;
    height: auto;
    background: #000;
    overflow: hidden;
}

.block-banner img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .5;
    z-index: 8;
}

.block-banner .overlay {
    z-index: 9;
    width: 100%;
    max-width:1250px;
    margin: 0 auto;
    position: relative;
    text-align: center;
    padding: 150px 50px;
}

.block-banner .overlay .heading {
    /* color: var(--primary-color); */
    font-family:var(--header-font);
    color:white;
    font-weight:var(--header-weight);
    font-size: 36px;
    line-height: 40px;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.block-banner .overlay p {
    color: #fff;
    font-weight: 300;
    font-size: 20px;
    line-height: 26px;
    margin-bottom: 20px;
}

.block-banner-images {
    overflow:hidden;
}

.block-banner-images .listImages {
    display:flex;
    flex-wrap: nowrap;
    padding:50px 0;
    width:max-content;
}

.block-banner-images .listImagesStatic {
    width:100%;
    justify-content:center;
    flex-wrap:wrap;
}

.block-banner-images .listImages:hover {
    animation-play-state: paused;
}


.block-banner-images .listImages img {
    margin: 0 25px;
}

/*
.block-banner-images .listImagesOld {
    display:flex;
    justify-content:center;
    flex-wrap: wrap;
    padding:50px 50px;
    gap:50px;
}
*/

.block-banner-images img {
    height:80px;
}

.images-section {
    clear: both;
    position: relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    width: 100%;
    height: auto;
    overflow: hidden;
}

.images-section img {
    display: block;
    width: 100%;
    height: auto;
}

.footer-info {
    background:#222;
}

.footer-info-container {
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    max-width:1250px;
    margin:0px auto;
    padding:50px 50px;
    gap:30px;
}

.footer-info-section {
    display:flex;
    flex-direction:column;
    min-width:200px;
    max-width:400px;
    font-size:15px;
    color:white;
}

.footer-info-section .logo-container img {
    height:100px;
    max-width:300px;
    object-fit:contain;
}

.footer-info-section .title {
    font-weight:bold;
    color:var(--primary-color);
}

.footer-info-accreditations {
    display:flex;
}

.footer {
    display:flex;
    justify-content:space-between;
    background:#222;
    padding:30px 50px;
    color:white;
    font-size:12px;
    gap:30px;
}

.footer .links-container {
    display:flex;
    align-items:flex-end;
    flex-direction:column;
}

.footer .links {
    display:flex;
    align-items:center;
    gap:20px;
}

.footer .siteflow-logo {
    display:flex;
    width:150px;
    margin-top:40px;
}

.footer .siteflow-logo img {
    width:100%;
    object-fit:contain;
}

.contentSeparatorWrapper {
    clear: both;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.contentSeparator {
    display: flex;
    max-width:1250px;
    margin:0px auto;
    border-top: 2px solid #999;
}



/* Fade-in animation styles */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered animations for multiple elements */
.fade-in-delay-1 { transition-delay: 0.1s; }
.fade-in-delay-2 { transition-delay: 0.2s; }
.fade-in-delay-3 { transition-delay: 0.3s; }



.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 1.5s;
  animation-name: fade;
  animation-duration: 1.5s;
}

@-webkit-keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}
}

.contactIcon {
    display:flex;
    flex-shrink:0;
    width:20px;
    height:20px;
}

.gallery-wrapper {
    clear: both;
    width: 100%;
    max-width: 100%;
    background: #f7f7f7;
    overflow: hidden;
}

.gallery-text-container {
    max-width:1250px;
    margin:0px auto;
    padding:50px 50px;
}

.gallery-container {
    max-width:1250px;
    margin:0px auto;
    padding:50px 50px;
}

.gallery-container h1 {
    font-family: var(--header-font);
    color: var(--primary-color);
    font-weight:var(--header-weight);
}

.gallery-container p {
    font-weight: 400;
    font-style: normal;
    font-size: 18px;
    line-height: 26px;
    margin-bottom: 15px;
}

.gallery-container a {
    text-decoration:none;
    color:var(--primary-color);
}

.gallery-grid {
    display: grid;
    grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
    gap:25px;
}

.gallery-grid div {
    width:100%;
    height:100%;
    aspect-ratio: 1 / 1;
    border-radius:20px;
    overflow:hidden;
}

.gallery-grid div:nth-child(5n) {
    grid-column: span 2;
    grid-row: span 2;
}

.gallery-grid img {
    display: block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    transition: all 0.23s ease-out;
}

.gallery-grid div:hover img {
    transform: scale(1.1);
    transition: all 0.23s ease-out;
}

.faq-wrapper {
    clear: both;
    width: 100%;
    max-width: 100%;
    background: white;
    overflow: hidden;
}

.faq {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:20px;
    margin-bottom:10px;
    cursor:pointer;
    transition: all 0.23s ease-out;
}

.faqBackground {
    background:#F8F9F9;
}

.faqSelectedBackground {
    background:white;
}

.faq:hover {
    opacity:0.7;
    transition: all 0.23s ease-out;
}

.faqQuestion {
    font-size:18px;
}

.faqExpandIcon {
    width:20px;
    height:20px;
}

.faqContractIcon {
    width:35px;
    height:35px;
}

.faqAnswer {
    font-size: 18px;
    line-height: 30px;
    padding: 0px 20px 40px 20px;
    text-align: left;
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.3s ease, padding-bottom 0.3s ease;
    overflow: hidden;
}

.faqAnswer > * {
    overflow: hidden;
}

.faqAnswer.hidden {
    display: grid;
    grid-template-rows: 0fr;
    padding-top: 0;
    padding-bottom: 0;
}

.hidden {
    display:none;
}

/* Google Reviews */
.gr-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px;
}

.gr-overall {
    display: flex;
    align-items: center;
    gap: 15px;
}

.gr-score {
    font-size: 48px;
    font-weight: 600;
    color: #333;
    line-height: 1;
}

.gr-stars {
    font-size: 22px;
    letter-spacing: 2px;
}

.gr-stars-wrap {
    position: relative;
    display: inline-block;
    font-size: 22px;
    letter-spacing: 2px;
    line-height: 1;
}

.gr-stars-bg {
    color: #ddd;
    white-space: nowrap;
}

.gr-stars-fg {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    white-space: nowrap;
    color: #FCBC06;
}

.gr-count {
    font-size: 14px;
    margin-top: 4px;
}

.gr-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
}

@media (max-width: 768px) {
    .gr-grid {
        grid-template-columns: 1fr;
    }
}

.gr-card {
    background: white;
    border-radius: 10px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.07);
    height: 300px;
    overflow: hidden;
}

.gr-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
}

.gr-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.gr-author {
    font-weight: 500;
    font-size: 15px;
}

.gr-time {
    font-size: 12px;
    opacity: 0.6;
}

.gr-text {
    font-size: 14px;
    line-height: 22px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 7;
}

.gr-read-more {
    font-size: 14px;
    font-weight: 500;
    color: var(--primary-color);
    white-space: nowrap;
}

.gr-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 15px;
}

.gr-footer a:not(.btnLarge) {
    font-size: 15px;
    font-weight: 500;
    color: #333;
    text-decoration: underline;
}

.gr-footer .btnLarge {
    color: white;
}