/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

img {
	max-width: 100%;
	max-height: 100%;
	height: auto;
}

.container-fluid {
	padding-left: 20px;
	padding-right: 20px;
	margin-left: auto;
	margin-right: auto;
}

.site-logo a {
	display: block;
	max-width: 176px;
}

body .site-header > div {
	padding-left: 20px;
	padding-right: 20px;
}

.overlay-video {
	position: absolute;
	z-index: 1;
	inset:0;
}

.overlay-video video{
	height: 100%;
	width: 100%;
	object-fit: cover;
	object-position: center center;
	opacity: 1;
}

.h2-dashed-top::before {
	content:"";
	display: block;
	width:51px;
	height: 12px;
	background-color: var(--contrast-2);
	margin-bottom: 25px;
}

.dash-top-md::before {
	content:"";
	display: block;
	width:39px;
	height: 8px;
	background-color: var(--contrast-2);
	margin-bottom: 20px;
}

.team-cta-box {
	position: relative;
	overflow: hidden;
}

.team-cta-box:hover .team-caption {
	transform: translateY(0px);
}

.team-cta-box .team-caption {
	position: absolute;
	bottom:0;
	left:0;
	right:0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 0;
	min-height: 125px;
	overflow: hidden;
	transition: all .3s ease-in-out;
	transform: translateY(70px);
}

.team-icon.wp-block-image {
	aspect-ratio:1/1;
	margin: 24px 0 0 0;
	width: 38px;
	transition: all .3s ease-in-out;
	opacity: 1;
}

.team-cta-box:hover .team-caption {
	padding-top: 45px;
}

body .address-block {
	background-size: 32px;
	background-position: top 8px left;
}

body .phone-label {
	background-size: 32px;
	background-position: top 8px left;
}

.phone-label a:not(:hover),
.address-block a:not(:hover),
.footer-icon-block a:not(:hover){
	color: #fff;
}

body .footer-icon-block {
	background-size: 32px;
	background-position: center left;
}

@media(max-width:767px) {
	body .phone-label {
		background-size: 32px;
		background-position: top 8px left;
	}
	body .footer-icon-block {
		background-size: 24px;
		background-position: center left;
		padding-left: 40px;
	}
	.team-cta-box img{
		width: 100%;
	}
}


/*Dot Navigation*/
.dot-nav {
  position: fixed;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 50px;
  z-index: 9999;
}
.dot {
  width: 16px;
  height: 16px;
  border: 3px solid #fff;
  box-sizing: border-box; /* Add this line */
  background-color: transparent;
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  transition: background-color 0.3s, border 0.3s;
}
.dot:hover {
  background-color: #fff; /* Solid fill on hover */
  border: 3px solid #fff; /* Optional: keep border same to avoid jump */
}
.dot:hover::after {
  content: attr(data-label);
  position: absolute;
  right: 120%;
  top: 50%; /* Add this */
  transform: translateY(-50%); /* Add this */
  background-color: transparent;
  color: #fff;
  padding-right: 15px;
  white-space: nowrap;
  font-size: 13px;
  text-transform: uppercase;
  pointer-events: none;
}

/*Animation*/
@keyframes slideFromTop {
  0% {
    transform: translate3d(0%, -100vh, 0); /* Start above the viewport */
    opacity: 0;
  }
  100% {
    transform: translate3d(0%, 0, 0); /* End at the final position */
    opacity: 1;
  }
}

.arrow-outer {
    position: absolute;
    bottom: 40px;
    /*left: 50%;*/
    left: calc(50% - 71px) !important;
    width: 71px;
    height: auto;
    max-width: 100px;
    transform: translate3d(-50%, -100vh, 0); /* Start above viewport */
    opacity: 0;
    z-index: 3;
    animation: slideFromTop 2.5s ease-out forwards;
		animation-delay:2.1s;
}

@media(max-width:767px) {
	.arrow-outer {
		left: calc(50% - 35px) !important;
	}
}

 /* 
.banner-text {
		position:absolute;
    transform: translateY(-100vh);
    opacity: 0;
    animation: slideFromTop 2.5s ease-out forwards;
		left:50%;
    animation-delay: 1.3s; 
}
 */

.banner-text {
		position:relative;
    transform: translateY(-100vh);
    animation: slideFromTop 2.5s ease-out forwards;
    animation-delay: 1.3s; 
}
.banner-text-outer {
  display: flex;
  justify-content: center; /* horizontal centering */
  align-items: center;     /* vertical centering */  
  position: relative;
  z-index: 3;
}


@media(max-width:467px) {
	h1{
		font-size: 34px;
	}
}


