/* @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:'Poppins', 'Open Sans', 'Arial', sans-serif;
    font-weight:300;
    color:#62676d;
}

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

a {
    text-decoration:none;
}

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

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

ol {
    padding-left:50px;
}

ul {
    padding-left:50px;
}

.bold {
    font-weight:bold;
}

.flex {
    display:flex;
    justify-content:center;
}

.marginTop {
    margin-top:10px;
}

.marginTop10 {
    margin-top:10px;
}

.marginTop20 {
    margin-top:20px;
}

.marginTop30 {
    margin-top:30px;
}

.marginTop40 {
    margin-top:40px;
}

.justifyCenter {
    justify-content:center;
}

.textLeft {
    text-align: left;
}

.textCenter {
    text-align: center;
}

.textRight {
    text-align: right;
}

.textJustify {
    text-align: justify;
}

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

.btnSmall:hover {
    opacity:0.7;
}

.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;
}

.header .logo-container {
}

.header .logo-container img {
    object-fit:contain;
}

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

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

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

.header .navigation {
    display:flex;
    gap:20px;
}

.header .navigation a {
    font-weight:500;
}

.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;
}

.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;
    height:500px;
    /* width:100%; */
    max-width:1250px;
    overflow:hidden;
    margin:0px auto;
    /* border-radius:0px; */
    border-radius:10px;
    margin-top:40px;
}

.hero {
    position:absolute;
    display:flex;
    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;
}

/* 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 .container {
    display:flex;
    flex-wrap:wrap;
    display:grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:20px;
    margin-top:20px;
}

.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 .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 {
    color:var(--primary-color);
}

.product-service-container 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;
}

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

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

.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 .content {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* padding: 50px; */
}

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

.block-photo-wrapper .content h1 {
    color: var(--primary-color)
}

.block-photo-wrapper .content h2 {
    font-size:16px;
}

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

.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 {
    display: flex;
    width: 100%;
    height: auto;
    min-height: 400px;
    position: relative;
    z-index: 8;
    object-fit: cover;
    opacity: .5;
}

.block-banner .overlay {
    z-index: 9;
    width: 50%;
    margin: 0 auto;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.block-banner .overlay .heading {
    /* color: var(--primary-color); */
    color:white;
    font-weight: 700;
    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 {
    display:flex;
    justify-content:center;
    flex-wrap: wrap;
    padding:50px 0px;
    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: flex;
    width: 100%;
    height: auto;
    min-height: 400px;
    position: relative;
    z-index: 8;
    object-fit: cover;
}

.footer-info {
    background:#222;
}

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

.footer-info-section {
    display:flex;
    flex-direction:column;
    min-width:250px;
    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 150px;
    color:white;
    font-size:12px;
}

.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}
}