/**
Theme Name: circlesocial
Author: Circle Social Inc
Author URI: https://www.circlesocialinc.com
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: circlesocial
Template: astra
*/

body.page #primary{
	margin: 0;
}/*fix default astra page margins*/

#geogrid-widget-form p{
	font-family: lato;
}

.ast-logo-title-inline .ast-site-identity {
    padding: 0.25em 0 !important;
}/*header logo padding*/

/*header styles*/

/*top bar implementation*/
.ast-above-header-wrap {
	box-sizing: border-box;
	background: linear-gradient(to right, #8cc63f, #0f75bc), 
    linear-gradient(to right, #8cc63f, #0f75bc);
	border: 30px solid transparent;
	background-repeat: no-repeat;
	background-origin: padding-box, border-box;
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
}/*top header bar gradient background*/

.ast-above-header-bar.ast-header-sticked {
	box-sizing: border-box;
	background: linear-gradient(to right, #8cc63f, #0f75bc), 
    linear-gradient(to right, #8cc63f, #0f75bc);
	background-repeat: no-repeat;
	background-origin: padding-box, border-box;
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
	display: inline-block;
}/*top header bar gradient background with sticky menu active desktop*/

@media only screen and (max-width: 1080px){
	.ast-primary-header-bar.ast-header-sticked {
		top: 30px !important;
	}/*mobile - top header bar gradient background with sticky menu*/
	
	.ast-primary-sticky-header-active.ast-main-header-nav-open.ast-hfb-header #masthead>.ast-mobile-header-wrap .ast-mobile-header-content{
		top: 102px !important;
	}/*mobile menu list position*/
}
/*end top bar implementation*/



@media only screen and (min-width: 1081px) and (max-width: 1214px){
	.ast-logo-title-inline .ast-site-identity {
    	padding: .8em 0;
    	max-width: 180px;
	}
	.main-header-menu > .menu-item > .menu-link{
		font-size: .85rem;
		padding: 0 0.9em !important;
	}
}/*adjust menu items on small desktops*/

#ast-hf-menu-1 .menu-item-11411{
	background: #ed1c24;
	text-align: center;
}/*make contact link stand out on mobile*/

#ast-hf-menu-1 .menu-item-11411 a{
	color: #ffffff !important;
}/*make contact link text color*/

@media only screen and (min-width: 1081px){
	#ast-hf-menu-1 .menu-item-11411{
		display: none;
	}/*hide contact menu item on desktop in favor of button*/
}

.main-header-bar .main-header-bar-navigation .menu-item-has-children>a:after, .main-header-bar .main-header-bar-navigation .page_item_has_children>a:after{
	display: none;
}/*hide arrow for submenu*/"

/*end header styles*/





.testimonialText p {
    font-size: .8em !important;
    line-height: 1.3em;
}/*homepage Testimonials*/

.strong-view.modern .testimonial-content:before, .strong-view.modern .testimonial-content:after{
	color: #009344;
}/*quote icons on testimonials*/




/*image glowing effects*/

.round-image-glow-large::before{
  content: "";
  position: absolute;
  top: -7px; /* Adjust for glow size */
  left: -7px; /* Adjust for glow size */
  right: -7px; /* Adjust for glow size */
  bottom: -7px; /* Adjust for glow size */
  border-radius: 50%; /* Matches the image's roundness */
  filter: blur(5px); /* Adjust for desired blur intensity */
  z-index: -1; /* Puts the glow behind the image */
}/*larger image glow effect*/

.round-image-glow-small::before{
  content: "";
  position: absolute;
  top: -7px; /* Adjust for glow size */
  left: -7px; /* Adjust for glow size */
  right: -7px; /* Adjust for glow size */
  bottom: -7px; /* Adjust for glow size */
  border-radius: 50%; /* Matches the image's roundness */
  filter: blur(2px); /* Adjust for desired blur intensity */
  z-index: -1; /* Puts the glow behind the image */
}/*smaller image glow effect*/

.glow-blue::before{
	background: conic-gradient(from 0deg, #0f75bc, #0f75bc, #25aae1, #25aae1, #25aae1, #25aae1, #25aae1, #25aae1, #0f75bc);
} /* blue glow */

.glow-red::before{
  background: conic-gradient(from 90deg, #983229, #983229, #ed1c24, #ed1c24, #ed1c24, #ed1c24, #ed1c24, #ed1c24, #983229);
} /* red glow */

.glow-green::before{
  background: conic-gradient(from 180deg, #0b9444, #0b9444, #8cc63f, #8cc63f, #8cc63f, #8cc63f, #8cc63f, #8cc63f, #0b9444);
} /* green glow */

.glow-multicolor::before{
  background: conic-gradient(from 90deg, #25aae1, #0f75bc, #0b9444, #8cc63f, #8cc63f, #0b9444, #0f75bc, #25aae1);
} /* red-green-blue glow */

.glow-fast::before{
  animation: rotate-glow 3s linear infinite; /* Adjust duration and easing as needed */	
} /* slower glow rotation */

.glow-slow::before{
  animation: rotate-glow 4s linear infinite; /* Adjust duration and easing as needed */	
} /* slower glow rotation */

@keyframes rotate-glow {
  to {
    transform: rotate(360deg);
  }/*rotate the glow a full circle*/
}

/*end image glowing effects*/


/*heading styles*/
.bigHeading :is(h1, h2, h3, h4, h5, h6, p){
	font-size: 32px;
	font-family: 'Lato', sans-serif;
    line-height: 1.4em;
	font-weight: 900;
	margin-bottom: 20px;
}

@media only screen and (min-width: 768px){
	.bigHeading :is(h1, h2, h3, h4, h5, h6, p) {
		font-size: 40px !important;
	}/*home & service page headings*/
}


@media only screen and (min-width: 1425px){
	.bigHeading :is(h1, h2, h3, h4, h5, h6, p){
		font-size: 60px !important;
	}/*home & service page headings*/
}

.headingIntro p, .headingIntro h1{
	color: #0f75bc; /*dark blue*/
	font-weight: 600;
	margin-bottom: 0;
	font-size: 1.1rem;
}/*blue intro text before headings*/

/*heading styles*/


/*   text styles  */

ul li:not(.menu-item), ol li:not(.menu-item){
	margin-bottom: .6em;
}/*normal list margins - exclude menu items*/

@media only screen and (max-width: 767px){
	.smAlignCenter :is(p, h1, h2, h3, h4, h5, h6, div){
		text-align: center !important;
	}/*center right aligned text on mobile*/
	
  .thrv-button {
    width: 100%;
  }/*center thrive buttons on mobile*/
	
	.myTestimonial .testStars{
		margin: 5px auto;
	}
}

.csList li{
	list-style: none;
	list-style-image: url(https://27aa2dbd3f.nxcli.io/wp-content/uploads/2025/07/Bullet-Points-e1753707958675.png);
}/*icon list*/

@media only screen and (max-width: 1080px){
	.csList ul{
		margin-left: 30px !important;
	}/*icon list positioning*/
}

.fatBold .tve-number-wrapper span, .fatBold .tcb-label-bottom{
	font-weight: 900 !important;
}

/*  end text styles  */

/* Utilities Start */

.overflow-visible {
	overflow: visible !important;
}
/* Utilities End */

/* Swap Icon styling below */

  .swapIcon{
	transition: transform 500ms ease, opacity 500ms ease, scale 500ms;
 	opacity: 1;
	z-index: 2; 
	transform: scale(1);
}

 .swappedIcon {
  	position: absolute; 
	z-index: 0;
	inset: 0;
	transform: scale(1);
	transition: transform 500ms ease, opacity 500ms ease, scale 500ms;
}

.swapIcons {
	position: relative;
}
.swapIcons:hover .swapIcon {
 	opacity: 0;
	z-index: -1;
	transform: scale(1.25); 
}

.swapIcons:hover .swappedIcon {
	transform: scale(1.25);
	z-index: 2;
	opacity: 1; 
}

@media (max-width: 1023px){
	.lastIcon {
		width: 45% !important;
		margin-left: auto;
		margin-right: auto;
	} /*  We want all the icons to be the same size on mobile*/
}
/* Swap Icon styling above */

/* custom tabbed interface */

.custom-tab-section {
  display: flex;                        /* Arrange tabs and content side-by-side */
  flex-wrap: nowrap;                   /* Prevent wrapping on smaller screens */
  align-items: stretch;                /* Make both columns equal in height */
  justify-content: space-between;      /* Space the two columns evenly */
  min-height: 400px;                   /* Ensure enough vertical space for content */
}

.custom-tab-section h2 {
  padding-left: 20px; /* match the tab text left padding */
	max-width: 600px;
}

.custom-tab-section .tab-left {
  width: 50%;                          /* Left column takes up 50% width */
  padding: 2rem 0 2rem 8rem;           /* Add top/bottom and left padding */
  background: white;                   /* Set a white background for contrast */
  display: flex;                       /* Enable flex layout for stacking children */
  flex-direction: column;             /* Stack tab items vertically */
  justify-content: flex-start;        /* Align tabs to the top of the column */
}

.custom-tab-section .tab-menu {
  list-style: none;                    /* Remove default bullet points */
  padding: 0;                          /* Remove default padding */
}

.custom-tab-section .tab-menu .tab {
  display: block;                     /* Stack each tab vertically */
  padding: 12px 20px;                 /* Add spacing inside each tab */
  margin-bottom: 10px;                /* Space between tabs */
  cursor: pointer;                    /* Show pointer on hover */
  color: #0f75bc;                     /* Default blue text color */
  font-weight: bold;                  /* Make tab text bold */
  transition: all 0.3s ease;          /* Smooth hover/active transitions */
  border-radius: 25px;                /* Round edges of the tab button */
  background-color: transparent;      /* No background by default */
  position: relative;                 /* Needed for z-index stacking */
  z-index: 2;                         /* Place above background elements */
  font-size: 1.25rem; 				  /* increase tab label size */
}

.custom-tab-section .tab-menu .tab.active {
  background-color: #0f75bc;          /* Active tab has blue background */
  color: #fff;                        /* White text on active tab */
  border-top-right-radius: 0;         /* Square off the right edge (top) */
  border-bottom-right-radius: 0;      /* Square off the right edge (bottom) */
  z-index: 3;                         /* Ensure it's above other tabs/content */
  box-shadow: 2px 0 6px rgba(0, 0, 0, 0.1); /* Add subtle depth/shadow */
}

.custom-tab-section .tab-content-area {
  width: 50%;                         /* Right column takes up 50% width */
  position: relative;                 /* Set containing block for absolutely positioned content */
  display: flex;                      /* Enable layout control */
  flex-direction: column;            /* Stack internal children if needed */
  justify-content: stretch;          /* Stretch children vertically */
  overflow: hidden;                  /* Hide overflow for tab fade transitions */
  align-items: center;          /* vertically center tab content */
  justify-content: center;      /* horizontally center tab content */
  background-color: #1b75bc;  /* Stops the background from flashing on transition */
}

.custom-tab-section .tab-content {
  position: absolute;            /* Allows stacking inside tab-content-area */
  inset: 0;                      /* Fills the entire content area */
  padding: 2rem;                 /* Inner spacing for content */
  box-sizing: border-box;        /* Ensures padding doesn't affect width */
  z-index: 1;                    /* Layer behind active text */
  opacity: 0;                    /* Hidden by default for transition effect */
  visibility: hidden;           /* Not visible or accessible */
  transition: opacity 0.5s ease, visibility 0.5s ease; /* Smooth fade effect */
  background-size: cover;       /* Ensures background image covers full area */
  background-position: center;  /* Centers background image */
  display: flex;                /* Enables centering of child content */
  align-items: center;          /* Vertically centers child content */
  justify-content: center;      /* Horizontally centers child content */
  flex-direction: column;       /* Stacks heading, paragraph, and button vertically */
}

.custom-tab-section .tab-content.active {
  opacity: 1;                        /* Fully visible */
  visibility: visible;              /* Reveal the element */
  z-index: 2;                        /* Bring to front */
}


.custom-tab-section .tab-content .bg {
  position: absolute;                /* Position image behind content */
  inset: 0;                           /* Fill entire tab content area */
  background-size: cover;            /* Stretch image to cover */
  background-position: center;       /* Center the image */
  z-index: 1;                         /* Place behind text/button */
}

.custom-tab-section .tab-info {
  position: relative;                /* For z-index stacking above bg */
  z-index: 2;                         /* Ensure text is visible */
  color: white;                      /* Text color for readability on dark backgrounds */
  max-width: 500px;             /* limit text width */
  margin: 0 auto;               /* center horizontally */
	/*overflow-y: scroll; */           /* Make it so large quantities of text are accessible*/
}


.custom-tab-section .tab-btn {
  margin-top: 1rem;                  /* Space above the button */
  display: inline-block;             /* Let button size to content */
  padding: 0.5rem 1rem;              /* Inner spacing */
  border: 2px solid white;           /* White border for contrast */
  color: white;                      /* White text color */
  text-decoration: none;             /* Remove underline from link */
  border-radius: 75px;               /* Rounded pill-style button */
}

.custom-tab-section a {
	text-decoration: underline;
	color: #fff;
}
.custom-tab-section ul li.tve_tab_title_item {
	align-items: flex-start !important; /* aligns title text to the left */
}

.services-tabs .custom-tab-section {
/* 	min-height: 700px; */
}

.services-tabs .custom-tab-section .tab-content-area{
	width: 90%;
}

.services-tabs .custom-tab-section .tab-left {
	padding: 2rem 0 2rem 4rem;
}

.services-tabs .custom-tab-section .tab-info {
	max-width: unset;
}

.services-tabs .custom-tab-section .tab-content {
  position: static;            /* Allows stacking inside tab-content-area */
  display: none;                /* Enables centering of child content */

}

.services-tabs .custom-tab-section .tab-content.active {
  display: flex;                      /* Fully visible */
  visibility: visible;              /* Reveal the element */
}

/* responsive layout for smaller screens */
@media screen and (max-width: 768px) {
  .custom-tab-section {
    flex-direction: column;        /* Stack tabs and content */
    padding: 0;                    /* Remove section-level padding if any */
    box-sizing: border-box;        /* Ensure padding doesn't exceed 100% width */
    overflow-x: hidden;            /* Prevent right-edge overflow */
	min-height: auto !important;   /* Remove fixed desktop height */
    height: auto !important;       /* Let it grow with content */
  }

  .custom-tab-section .tab-left,
  .custom-tab-section .tab-content-area {
    width: 100%;                   /* Full width for both sides */
    padding: 1rem;                 /* Even padding all around */
    margin: 0;                     /* Remove any margin that causes shifting */
    box-sizing: border-box;        /* Ensure padding is included in width */
  }

  .custom-tab-section .tab-left {
    padding-bottom: 0;             /* Tighten spacing under tabs */
    text-align: center;            /* Center heading text */
  }

  .custom-tab-section .tab-menu {
    display: flex;                 /* Flexbox to align/stack tabs */
    flex-direction: column;       /* Stack tabs vertically */
    align-items: center;          /* Center tabs horizontally */
    gap: 0.5rem;                   /* Space between tabs */
    margin-top: 1rem;             /* Space below heading */
  }

  .custom-tab-section .tab-menu .tab {
    display: block;               /* Stack each tab */
    width: auto;                  /* Natural size */
    text-align: center;           /* Center tab text */
    margin-bottom: 0;             /* Clean spacing */
    border-radius: 25px !important; /* Fully rounded corners on mobile */
    box-shadow: none;             /* Remove desktop shadow for clean look */
  }

  .custom-tab-section .tab-menu .tab.active {
    margin-right: 0 !important;   /* Remove "bleed" margin */
    border-radius: 25px !important; /* Reset full radius */
  }

	.custom-tab-section .tab-content {
	  position: relative;         /* Stack naturally in document flow */
	  opacity: 0;                 /* Still hidden initially */
	  visibility: hidden;         /* Still not visible to user/screen readers */
	  display: none;              /* Remove from layout flow until active */
	  padding: 1.5rem 1rem;       /* Optional: mobile-friendly padding */
	}

	.custom-tab-section .tab-content.active {
	  opacity: 1;                 /* Show active tab content */
	  visibility: visible;
	  display: block;
	}
	
	.services-tabs .custom-tab-section .tab-content-area{
		width: 100%;
	}
	
	.services-tabs .custom-tab-section .tab-left{
		padding: 1rem;
		padding-bottom: 0;
	}
}

/* end custom tabbed interface */

.tve-tab-image{
	display: none;
}/*tab title image on mobile*/

/* === Testimonial Slider === */

/* Thrive Builder: show all testimonials normally */
body.tve_editor_page .myTestimonial {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  opacity: 1 !important;
  z-index: auto !important;
  display: block !important;
  transition: none !important;
  pointer-events: auto !important;
}

/* Base container */
.testimonial-slider {
  position: relative;
  overflow: hidden;
  display: block;
  transition: height 0.4s ease;
}

/* Desktop (768px and up): use absolute positioning for animation */
@media (min-width: 768px) {
  .testimonial-slider {
    min-height: 600px; /* Prevent footer overlap */
  }

  body:not(.tve_editor_page) .myTestimonial {
    position: absolute;
    width: 100%;
    top: 0;
    left: 100%;
    opacity: 0;
    transition: all 0.6s ease;
    z-index: 0;
    pointer-events: none;
    visibility: hidden;
  }

  body:not(.tve_editor_page) .myTestimonial.active {
    left: 0;
    opacity: 1;
    z-index: 2;
    pointer-events: auto;
    visibility: visible;
    position: relative;
  }

  body:not(.tve_editor_page) .myTestimonial.exit-left {
    left: -100%;
    opacity: 0;
    z-index: 1;
    visibility: hidden;
  }

  body:not(.tve_editor_page) .myTestimonial.exit-right {
    left: 100%;
    opacity: 0;
    z-index: 1;
    visibility: hidden;
  }
	
	.myTestimonial img {
		max-width: 400px;
	}
}

/* Mobile (below 768px): use block layout for natural height */
@media (max-width: 767px) {
	.testimonial-slider {
		display: block;
		height: auto !important;
		min-height: auto !important;
		overflow: visible !important;
	}
	body:not(.tve_editor_page) .myTestimonial {
		display: none;
		width: 100%;
		opacity: 0;
		transition: none;
		position: static;
		pointer-events: none;
	}

	body:not(.tve_editor_page) .myTestimonial.active {
		display: block;
		opacity: 1;
		pointer-events: auto;
	}
	
	.myTestimonial img {
		max-height: 200px;
		height: auto;
		width: auto !important;
		display: block;
		margin: 0 auto; /* center if not already */
	}
}

/* Slider nav buttons */
.slider-nav{
  position: absolute;
  top: 300px;
  transform: translateY(-50%);
  cursor: pointer;
  z-index: 9999;
  background: rgba(15, 117, 188, .5);
  color: white;
  padding: 13px 20px;
  font-size: 1.5rem;
  border-radius: 50%;
  user-select: none;
  pointer-events: auto; 
}

.slider-prev { left: 10px;}
.slider-next { right: 10px;} 

/* === End Testimonial Slider === */




.myButton{
	background: #ed1c24;
    border-radius: 200px;
    text-align: center;
	max-width: 300px;
	margin: 0 auto;
	color: #ffffff !important;
	padding: 15px 60px;
	line-height: 1;
}/*call buttons*/

.myButton a{
	color: #ffffff !important;
}/*call button text*/

.myButton:hover{
	cursor: pointer;
	background: #983229;
}/*call button hover*/


.themeTabs .tve_tab_title{
    padding: 0 10px;
}/*tabs for green & blue tabbed interface*/

.bigArrowGallery .tcb-image-gallery-container.slick-slider .tcb-carousel-arrow{
	color: #25aae1;
    font-size: 2rem;
}



/*case studies*/

.caseStudiesForm h3{
	color: #ffffff;
	text-align: center;
}/*case studies page form*/

.caseStudiesForm .nf-form-fields-required{
	display: none;
}/*case studies page form*/

.caseStudiesForm input, .caseStudiesForm select{
	border-radius: 5px;
	width: 100% !important;
}/*case studies page form*/

.caseStudy-slider .n2-ss-slide:nth-of-type(odd) .n2-ss-layer {
	background-image: repeating-linear-gradient(45deg,rgba(27,117,188,0.14),rgba(27,117,188,0.14) 3px,transparent 3px,transparent 6px),linear-gradient(rgb(41,170,226),rgb(41,170,226)) !important;
	background-repeat: no-repeat;
}

.caseStudy-slider .n2-ss-slide:nth-of-type(even) .n2-ss-layer {
	background-image: repeating-linear-gradient(45deg,rgba(27,117,188,0.14),rgba(27,117,188,0.14) 3px,transparent 3px,transparent 6px),linear-gradient(rgb(140,198,63),rgb(140,198,63)) !important;
	background-repeat: no-repeat;
}

.caseStudy-slider .n2-ss-slide a {
	box-shadow: rgba(0,0,0,0.25) 0px -1px 1px 1px inset !important;
}

.logo-shadow {
	filter: drop-shadow(0px 1px 0px rgb(0 0 0 / 0.8));
}

/*end case studies*/

/* Right pointed section */
.left-side_right-point .tcb-flex-col:first-of-type { 
	background: red !important;
	clip-path: polygon(0% 0%, 90% 0%, 100% 50%, 90% 100%, 0% 100%);
}
/* End Right pointed section */

.alphaImage img, .alphaImage svg{
	filter: drop-shadow(0px 1px 0px rgb(0 0 0 / 0.8)) !important;
}/*add drop shadow to image content on transparent backgrounds*/




@media only screen and (min-width: 768px){
	.roundBottom .tve-page-section-out{
		border-bottom-left-radius: 100%;
		border-bottom-right-radius: 100%;
	}/*rounded bottom of section*/
}

.remove-bottom-margin,
.entry-content .remove-bottom-margin :where(h1,h2,h3,h4,h5,h6) {
	margin-bottom: 0 !important;
}

/* Start Animations */
.rotate {
  	animation: 10s linear infinite rotate;	
}

@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}

.float-1 {
	animation: 10s linear 500ms infinite alternate float;	
}

.float-2 {
	animation: 9s linear 500ms infinite reverse float;	
}

.float-3 {
	animation: 7s linear infinite alternate float;	
}

.float-4 {
	animation: 8s linear infinite reverse float;	
}

@keyframes float {
  0% {
    transform: translateY(0);
  }
	25% {
    transform: translateY(25px);
  }
	50% {
    transform: translateY(-25px);
  }
  100% {
    transform: translateY(0);
  }
}

/* End Animations */

/* Where we're featured*/
.podcast-card__vertical {
	height: 100%;
}

.podcast-card__horizontal {
	min-height: 250px;
}
/* End where we're featured*/

/*footer styles*/

.site-above-footer-wrap #text-7{
	max-width: 250px;/*hours of operation*/
	margin: 0 auto;
}

.site-primary-footer-wrap{
	position: relative; /* Essential for positioning the pseudo-element */
	padding-top: 0; /*make the border be on the edge*/
}

.site-primary-footer-wrap:before{
 	content: ""; /* Necessary for pseudo-element to display */
 	display: block; /* Makes the pseudo-element act like a block-level element */
 	width: 75%; /* Adjust this percentage to control the border length */
 	margin: 0 auto; /* Centers the border */
 	border-top: 1px solid #6d6e71; /* Your desired border style */
	padding-bottom: 45px; /*even the padding above and below border*/
}

/*footer styles*/
